Ejemplo n.º 1
0
    def __init__(self, name, core, transport_managers, settings):

        self.__name = name
        self.__core = core
        self.__transport_managers = transport_managers

        # Store a few of the settings that we use outside of init.
        self.__update_message = settings['update_message']
        self.__alarm_message = settings['alarm_message']
        self.__command_access = settings['command_access']
        self.__transport = settings['transport']

        # Massage the enabled setting into the type/format we want.
        if type(settings['enabled']) == bool:
            self.__enabled = settings['enabled']
        elif type(settings['enabled']) == str:
            enabled = settings['enabled'].lower()
            if enabled == "true":
                self.__enabled = True
            elif enabled == "false":
                self.__enabled = False
            else:
                self.__enabled = settings['enabled']
        else:
            self.__enabled = False

        # Get our device ID
        self.__deviceid = get_device_id()
        self.__tracer = get_tracer(name)

        # Allocate the transport method we should use for this client.
        try:
            if settings['transport'] == "sms":
                self.__transport_obj = SMSTransportClient(
                    self, self.__transport_managers['SMS'], settings['number'])
            elif settings['transport'] == "iridium":
                self.__transport_obj = IridiumTransportClient(
                    self, self.__transport_managers['Iridium'])
            else:
                raise Exception, "Unknown Transport Type"
        except:
            raise