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