コード例 #1
0
    def __init__(self, name, core_services):
        self.__name = name
        self.__core = core_services
        
        self._logger = init_module_logger(name)        

        ## Local State Variables:
        self.__lora_manager = None
        
        self._extended_address_setting = None
        
        # Settings
        #
        # xbee_device_manager: must be set to the name of an XBeeDeviceManager
        #                      instance.
        # extended_address: the extended address of the XBee Sensor device you
        #                   would like to monitor.
        #
        # Advanced settings:
        #
        # None

        settings_list = [
                         
            Setting(
                name='lora_device_manager', type=str, required=True),
            Setting(
                name='extended_address', type=str, required=True),                         
                  
            Setting(
                name='log_level', type=str, required=False, default_value='DEBUG', verify_function=check_debug_level_setting),                  
          
            ]

        ## Channel Properties Definition:
        property_list = [
            # getable properties
            ChannelSourceDeviceProperty(name='software_version', type=str,
                initial=Sample(timestamp=digitime.time(), value=VERSION_NUMBER),
                perms_mask= DPROP_PERM_GET,
                options=DPROP_OPT_AUTOTIMESTAMP),
                         
            # setable properties
            ChannelSourceDeviceProperty(name='simulate_xbee_frame', type=str,
                initial=Sample(timestamp=0, value=''),
                perms_mask= DPROP_PERM_SET,
                options=DPROP_OPT_AUTOTIMESTAMP,
                set_cb=self._simulate_xbee_frame_cb),
            ChannelSourceDeviceProperty(name='command', type=str,
                initial=Sample(timestamp=0, value=''),
                perms_mask= DPROP_PERM_SET,
                options=DPROP_OPT_AUTOTIMESTAMP,
                set_cb=self._send_command_to_sensor_cb),                         
                         
         ]
        
        ## Initialize the DeviceBase interface:
        DeviceBase.__init__(self, self.__name, self.__core,
                                        settings_list, property_list)
コード例 #2
0
    def __init__(self, name, core_services):
        ## Initialize and declare class variables
        self.__name = name
        self.__core = core_services

        self.__logger = init_module_logger(name)

        ## Settings Table Definition:
        settings_list = [
            Setting(name='baudrate',
                    type=int,
                    required=False,
                    default_value=38400,
                    verify_function=lambda x: x > 0),
            Setting(name='port', type=str, required=False, default_value='11'),
            Setting(name='mainloop_serial_read_timeout',
                    type=int,
                    required=False,
                    default_value=30),
            Setting(name='log_level',
                    type=str,
                    required=False,
                    default_value='DEBUG',
                    verify_function=check_debug_level_setting),
        ]

        ## Channel Properties Definition:
        property_list = [
            ChannelSourceDeviceProperty(name='software_version',
                                        type=str,
                                        initial=Sample(
                                            timestamp=digitime.time(),
                                            value=VERSION_NUMBER),
                                        perms_mask=DPROP_PERM_GET,
                                        options=DPROP_OPT_AUTOTIMESTAMP),
            ChannelSourceDeviceProperty(name="LoRaPlugAndSenseFrame",
                                        type=str,
                                        initial=Sample(timestamp=0, value=''),
                                        perms_mask=DPROP_PERM_GET,
                                        options=DPROP_OPT_AUTOTIMESTAMP),
        ]

        ## Initialize the DeviceBase interface:
        DeviceBase.__init__(self, self.__name, self.__core, settings_list,
                            property_list)

        ## Thread initialization:
        self.__stopevent = threading.Event()
        threading.Thread.__init__(self, name=name)
        threading.Thread.setDaemon(self, True)
コード例 #3
0
    def __init__(self, name, core_services):
        self.__name = name
        self.__core = core_services

        self.__logger = init_module_logger(name)

        ## Settings Table Definition:
        settings_list = [
            Setting(name='log_level',
                    type=str,
                    required=False,
                    default_value='DEBUG',
                    verify_function=check_debug_level_setting),
        ]

        ## Channel Properties Definition:
        property_list = [
            # gettable properties
            ChannelSourceDeviceProperty(name="raw_out",
                                        type=str,
                                        initial=Sample(timestamp=0, value=""),
                                        perms_mask=DPROP_PERM_GET,
                                        options=DPROP_OPT_AUTOTIMESTAMP),

            # settable properties
            ChannelSourceDeviceProperty(name="raw_in",
                                        type=str,
                                        initial=Sample(
                                            timestamp=0,
                                            value='__INITIAL_SAMPLE__'),
                                        perms_mask=DPROP_PERM_SET,
                                        set_cb=self.__prop_set_raw_in),
            ChannelSourceDeviceProperty(name='software_version',
                                        type=str,
                                        initial=Sample(timestamp=0,
                                                       value=_VERSION_NUMBER),
                                        perms_mask=DPROP_PERM_GET,
                                        options=DPROP_OPT_AUTOTIMESTAMP),
        ]

        ## Initialize the DeviceBase interface:
        DeviceBase.__init__(self, self.__name, self.__core, settings_list,
                            property_list)

        ## Thread initialization:
        self.__stopevent = threading.Event()
        threading.Thread.__init__(self, name=name)
        threading.Thread.setDaemon(self, True)
コード例 #4
0
    def __init__(self, name, core_services):
        self.__name = name
        self.__core = core_services

        self.__logger = init_module_logger(logger_name=name, max_backups=1)

        ## Settings Table Definition:
        settings_list = [
            Setting(name='update_rate',
                    type=float,
                    required=False,
                    default_value=5.0,
                    verify_function=lambda x: x > 0.0),
            Setting(name='blinks',
                    type=int,
                    required=False,
                    default_value=20,
                    verify_function=lambda x: (x > 0 and x < 50)),
            Setting(name='blink_speed',
                    type=float,
                    required=False,
                    default_value=0.25,
                    verify_function=lambda x: (x > 0.0 and x < 5.0)),
            Setting(name='cli_command',
                    type=str,
                    required=False,
                    default_value=''),
            Setting(name='command_channel', type=str, required=True),
            Setting(name='log_level',
                    type=str,
                    required=False,
                    default_value='DEBUG',
                    verify_function=check_debug_level_setting),
        ]

        ## Channel Properties Definition:
        property_list = []

        ## Initialize the DeviceBase interface:
        DeviceBase.__init__(self, self.__name, self.__core, settings_list,
                            property_list)

        ## Thread initialization:
        self.__stopevent = threading.Event()
        threading.Thread.__init__(self, name=name)
        threading.Thread.setDaemon(self, True)
コード例 #5
0
    def __init__(self, name, core_services):
        
        
        ## Initialize and declare class variables
        self.__name = name
        self.__core = core_services
        self.__cm = self.__core.get_service("channel_manager")
        self.__cp = self.__cm.channel_publisher_get()
        self.__cdb = self.__cm.channel_database_get()
        self._ec_key_to_dia_command_channel_name_cache = {}
        
        self._logger = init_module_logger(name)
        self._subscribed_channels = []
        
        self._ec_access_point_pub_key_setting = None
        self._dia_module_name_to_ec_device_public_key_setting_map = None
        self._sensor_channel_list_to_subscribe_to_setting = None
        self._incoming_command_channel_setting = None
        
        # semaphores and synchronization variables
        self._receive_sensor_data_callback_lock = threading.Lock()
        
        # will be appended to a DIA module name to get the name of the
        # channel to be used to send received commands
        self._sensor_channel_name_where_to_forward_commands = "command"
        
        settings_list = [
            Setting(name='ec_access_point_pub_key', type=str, required=False),
            Setting(name='channels', type=list, required=True, default_value=[]),
            Setting(name='exclude', type=list, required=False, default_value=[]),
            Setting(name='dia_channel_to_ec_sensor', type=dict, required=False, default_value={}),
            Setting(name='dia_module_to_ec_pub_key', type=dict, required=False, default_value={}),
            Setting(name='incoming_command_channel', type=str, required=False, default_value=''),

            Setting(name='log_level', type=str, required=False, default_value='DEBUG', verify_function=check_debug_level_setting),

        ]
        
        # Channel Properties Definition:
        
        property_list = [
                         
            #  properties
            
            ChannelSourceDeviceProperty(name='json_data', type=str,
                initial=Sample(timestamp=digitime.time(), value=""),
                perms_mask= DPROP_PERM_GET,
                options=DPROP_OPT_AUTOTIMESTAMP), 
                         
            ChannelSourceDeviceProperty(name='software_version', type=str,
                initial=Sample(timestamp=digitime.time(), value=VERSION_NUMBER),
                perms_mask= DPROP_PERM_GET,
                options=DPROP_OPT_AUTOTIMESTAMP),                         

        ]        
        
        
        ## Initialize the DeviceBase interface:
        DeviceBase.__init__(self, self.__name, self.__core,
                                        settings_list, property_list)
        
        self.__stopevent = threading.Event()        
        
        threading.Thread.__init__(self, name=name)
        threading.Thread.setDaemon(self, True)       
コード例 #6
0
    def __init__(self, name, core_services):

        self.__name = name
        self.__core = core_services

        self._logger = init_module_logger(name)
        self._published_ip_address = None

        # Configuration Settings:

        settings_list = [
            Setting(name="hostname", type=str, required=True),
            Setting(name="domainname",
                    type=str,
                    required=False,
                    default_value="dtdns.net"),
            Setting(name="dtdns_server_host",
                    type=str,
                    required=False,
                    default_value="www.dtdns.com"),
            Setting(name="dtdns_server_port",
                    type=int,
                    required=False,
                    default_value=80),
            Setting(name="dtdns_password", type=str, required=True),
            Setting(name="use_proxy",
                    type=bool,
                    required=False,
                    default_value=False),
            Setting(name="proxy_host",
                    type=str,
                    required=False,
                    default_value="proxy"),
            Setting(name="proxy_port",
                    type=int,
                    required=False,
                    default_value=8080),
            Setting(name="address_update_rate",
                    type=int,
                    required=False,
                    default_value=600),
            Setting(name="check_for_valid_address_rate",
                    type=int,
                    required=False,
                    default_value=30),
            Setting(name="interface",
                    type=str,
                    required=False,
                    default_value='mobile0'),
            Setting(name="no_digicli",
                    type=bool,
                    required=False,
                    default_value=False),
            Setting(name='log_level',
                    type=str,
                    required=False,
                    default_value='DEBUG',
                    verify_function=check_debug_level_setting),
        ]

        PresentationBase.__init__(self, name=name, settings_list=settings_list)

        self.__stopevent = threading.Event()

        return