Beispiel #1
0
 def __init__(self, config_uri):
     FarmProcess.__init__(self, 'FM', config_uri)
     logging.info('FM: Initializing')
     self.parameters = None
     self.regulators = None
     self.real_regulators = None
     self.devices = None
     self.max_regulation_order = 0
     now = datetime.now()
     # query database
     self.cultivation_start = FieldSetting.get_cultivation_start(
         self.db_session)
     self.reload_parameters()
     self.reload_devices()
     self.handle_parameters(now)
     self.handle_device_setpoints(now)
     self.reload_regulators()
     self.handle_regulators(now)
     # listen for database changes (broadcat on redis channels)
     self.pubsub = self.redis_conn.pubsub(ignore_subscribe_messages=True)
     self.pubsub.subscribe('parameter_changes', 'device_changes',
                           'calendar_changes', 'field_setting_changes',
                           'regulator_changes',
                           'periphery_controller_changes',
                           'component_input_changes',
                           'component_property_changes')
     logging.info('FM: initialisation finished')
 def __init__(self, config_uri):
     FarmProcess.__init__(self, 'FM', config_uri)
     logging.info('FM: Initializing')
     self.parameters = None
     self.regulators = None
     self.real_regulators = None
     self.devices = None
     self.max_regulation_order = 0
     now = datetime.now()
     # query database
     self.cultivation_start = FieldSetting.get_cultivation_start(self.db_session)
     self.reload_parameters()
     self.reload_devices()
     self.handle_parameters(now)
     self.handle_device_setpoints(now)
     self.reload_regulators()
     self.handle_regulators(now)
     # listen for database changes (broadcat on redis channels)
     self.pubsub = self.redis_conn.pubsub(ignore_subscribe_messages=True)
     self.pubsub.subscribe('parameter_changes',
                           'device_changes',
                           'calendar_changes',
                           'field_setting_changes',
                           'regulator_changes',
                           'periphery_controller_changes',
                           'component_input_changes',
                           'component_property_changes')
     logging.info('FM: initialisation finished')
Beispiel #3
0
 def handle_field_setting_changes(self, msg):
     if msg == 'loop_time':
         self.loop_time = FieldSetting.get_loop_time(self.db_session)
     elif msg == 'cultivation_start':
         self.cultivation_start = FieldSetting.get_cultivation_start(self.db_session)
         # make shure calendars are recomputed
         for key in self.parameters:
             self.parameters[key].current_calendar_entry = None
         for key in self.devices:
             self.devices[key].current_calendar_entry = None
 def handle_field_setting_changes(self, msg):
     if msg == 'loop_time':
         self.loop_time = FieldSetting.get_loop_time(self.db_session)
     elif msg == 'cultivation_start':
         self.cultivation_start = FieldSetting.get_cultivation_start(self.db_session)
         # make shure calendars are recomputed
         for key in self.parameters:
             self.parameters[key].current_calendar_entry = None
         for key in self.devices:
             self.devices[key].current_calendar_entry = None