def update_operation_states(**kwargs): chemical_elements = get_strings(os.environ['SPACE_SHIP_HOME'] + '/logbook/enums/chemical_elements') changed_elements = {} where = {} for param in kwargs: if not 'set_' in param: where[param] = kwargs[param] elif param.replace( 'set_', '') in chemical_elements and not math.isnan(kwargs[param]): changed_elements[param.replace('set_', '')] = kwargs[param] select_result = select('operation_state', where, dicted=True) #print('ch',changed_elements) for row in select_result: quantities = [] for key in row: if key in chemical_elements: if key in changed_elements: quantities.append(changed_elements[key]) else: quantities.append(row[key]) #print(quantities) OperationState.validate_elements_quantities(quantities) return update(table='operation_state', params=kwargs)
import sys, os from datetime import datetime import math from cassandra.cqlengine import columns from cassandra.cqlengine.models import Model from cassandra.cqlengine import ValidationError sys.path.append('adapters') import neo4j_adapter import mongo_adapter from data_adapters import get_strings OPERATION_STATUSES = get_strings(os.environ['SPACE_SHIP_HOME'] + '/logbook/enums/operation_statuses') CHEMICAL_ELEMENTS = get_strings(os.environ['SPACE_SHIP_HOME'] + '/logbook/enums/chemical_elements') import configparser config = configparser.ConfigParser() config.read(os.environ.get('SPACE_SHIP_HOME') + '/databases.config') BOATS_COLLECTION_NAME = os.environ.get( 'BOATS_COLLECTION_NAME') or config['MONGO']['boats_collection_name'] class OperationState(Model): date = columns.Date(required=True, partition_key=True) time = columns.Time(required=True, primary_key=True)
import sys, os from datetime import datetime from cassandra.cqlengine import columns from cassandra.cqlengine.models import Model from cassandra.cqlengine import ValidationError sys.path.append('adapters') import neo4j_adapter from data_adapters import get_strings WARNING_LEVELS = get_strings(os.environ['SPACE_SHIP_HOME'] + '/logbook/enums/shift_warning_levels') class ShiftState(Model): date = columns.Date(required = True, partition_key = True) time = columns.Time(required = True, primary_key = True) shift_id = columns.Bytes(required = True) warning_level = columns.Text(required = True) remaining_cartridges = columns.TinyInt(required = True) remaining_air = columns.TinyInt(required = True) remaining_electricity = columns.TinyInt(required = True) comment = columns.Text() def validate(self): super(ShiftState, self).validate() ShiftState.validate_shift_id(self.shift_id)
import sys, os from datetime import datetime from cassandra.cqlengine import columns from cassandra.cqlengine.models import Model from cassandra.cqlengine import ValidationError sys.path.append('adapters') import neo4j_adapter from data_adapters import get_strings WARNING_LEVELS = get_strings(os.environ['SPACE_SHIP_HOME'] + '/logbook/enums/shift_warning_levels') class ShiftState(Model): date = columns.Date(required=True, partition_key=True) time = columns.Time(required=True, primary_key=True) shift_id = columns.Bytes(required=True) warning_level = columns.Text(required=True) remaining_cartridges = columns.TinyInt(required=True) remaining_air = columns.TinyInt(required=True) remaining_electricity = columns.TinyInt(required=True) comment = columns.Text() def validate(self): super(ShiftState, self).validate()
from random import randint from random import random import os, sys import time import datetime import csv sys.path.append(os.path.dirname(os.path.dirname(__file__))) from data_adapters import get_strings WARNING_LEVELS = get_strings('enums/shift_warning_levels') DELIMITER = ' :: ' PERIOD = 3 def datetime_to_unix_time(datetime_to_convert): return time.mktime(datetime_to_convert.timetuple()) def generate_shift(time, shift_id, scale, probabilities_of_changing_level_up, probabilities_of_changing_level_down, filename): try: os.remove(filename) except OSError: pass
[0.4, 0.2, 0.8, 0.95], \ [0.3, 0.2, 0.8, 0.95], \ [0.3, 0.2, 0.8, 0.95], \ [0.3, 0.2, 0.8, 0.95], \ [0.3, 0.2, 0.8, 0.95]] SYSTEM_CURRENT_STATES = [0, 0, 0, 0, 0, 0] #sensor_data SENSOR_DATA_DATA_PATH = 'data/sensor_data.csv' #SENSORS = ['MINAS_MORGUL T400', 'STADDLE N23', 'VALMAR 17'] SENSORS = mongo_adapter.get_all_ids('source_test') LOCATIONS = ['top_edge', 'left_side', 'laboratory'] VALUE_TYPES = get_strings('enums/value_types') VALUE_UNITS = get_strings('enums/units') VALUE_RANDOM_KOEFFICIENTS = [12, 100, 24, 100] def try_switch_system_state(id): if random() < SYSTEM_PROBABILITIES[id][SYSTEM_CURRENT_STATES[id]]: SYSTEM_CURRENT_STATES[id] += 1 if (SYSTEM_CURRENT_STATES[id] >= len(SYSTEM_STATES)): SYSTEM_CURRENT_STATES[id] = 0 def datetime_to_unix_time(datetime_to_convert): return time.mktime(datetime_to_convert.timetuple())
import sys, os from datetime import datetime from cassandra.cqlengine import columns from cassandra.cqlengine.models import Model from cassandra.cqlengine import ValidationError sys.path.append('adapters') import mongo_adapter from data_adapters import get_strings EVENTS = get_strings(os.environ['SPACE_SHIP_HOME'] + '/logbook/enums/sensor_events') VALUE_TYPES = get_strings(os.environ['SPACE_SHIP_HOME'] + '/logbook/enums/value_types') VALUE_UNITS = get_strings(os.environ['SPACE_SHIP_HOME'] + '/logbook/enums/units') import configparser config = configparser.ConfigParser() config.read(os.environ.get('SPACE_SHIP_HOME') + '/databases.config') SENSORS_COLLECTION_NAME = os.environ.get('SENSORS_COLLECTION_NAME') or config['MONGO']['sensors_collection_name'] class SensorData(Model): date = columns.Date(required = True, partition_key = True) time = columns.Time(required = True, primary_key = True) source_id = columns.Bytes(required = True) event = columns.Text(required = True) value_name = columns.Text(required = True) value = columns.Double(required = True)
import sys, os from datetime import datetime import math from cassandra.cqlengine import columns from cassandra.cqlengine.models import Model from cassandra.cqlengine import ValidationError sys.path.append('adapters') import neo4j_adapter import mongo_adapter from data_adapters import get_strings OPERATION_STATUSES = get_strings(os.environ['SPACE_SHIP_HOME'] + '/logbook/enums/operation_statuses') CHEMICAL_ELEMENTS = get_strings(os.environ['SPACE_SHIP_HOME'] + '/logbook/enums/chemical_elements') import configparser config = configparser.ConfigParser() config.read(os.environ.get('SPACE_SHIP_HOME') + '/databases.config') BOATS_COLLECTION_NAME = os.environ.get('BOATS_COLLECTION_NAME') or config['MONGO']['boats_collection_name'] class OperationState(Model): date = columns.Date(required = True, partition_key = True) time = columns.Time(required = True, primary_key = True) boat_id = columns.Bytes() operation_id = columns.Bytes(required = True)
from random import randint from random import random import os, sys import time import datetime import csv sys.path.append(os.path.dirname(os.path.dirname(__file__))) from data_adapters import get_strings WARNING_LEVELS = get_strings('enums/shift_warning_levels') DELIMITER = ' :: ' PERIOD = 3 def datetime_to_unix_time(datetime_to_convert): return time.mktime(datetime_to_convert.timetuple()) def generate_shift(time, shift_id, scale, probabilities_of_changing_level_up, probabilities_of_changing_level_down, filename): try: os.remove(filename) except OSError: pass log = open(filename,'w', newline='')