Exemplo n.º 1
0
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)
Exemplo n.º 2
0
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)
Exemplo n.º 3
0
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)
Exemplo n.º 4
0
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()
Exemplo n.º 5
0
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
Exemplo n.º 6
0
      [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())

Exemplo n.º 7
0
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)
Exemplo n.º 8
0
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)
    
Exemplo n.º 9
0
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='')