def __init__(self, SendToPhoneNumber, LocalModemPath, baud=115200, DEBUG_LEVEL=2): self._RemotePhoneNumber = SendToPhoneNumber self._DEBUG_LEVEL = DEBUG_LEVEL self._ModemLocation = LocalModemPath f=fifo() self._MavlinkHelperObject = mavlink.MAVLink(f) self._ModemLock = multiprocessing.Lock() self._ModemConnection = gsmmodem.GsmModem(port=LocalModemPath, baudrate=baud) try: self._PrepareModem() except Exception, err: self.Logger("Modem Init failed"+str(err), message_importance=1) self._ModemConnection=None
def __init__(self, id, params): super(Sms, self).__init__(id, params) try: self.port = params["port"] self.baud = int(params.get("baud", 115200)) self.network_timeout = int(params.get("network_timeout", 60)) self.pin = params.get("pin", None) self.recipients = [ rec.strip() for rec in params["recipients"].split(",") ] except KeyError as ke: # if config parameters are missing logging.error( "Sms: Wasn't able to initialize the notifier, it seems there is a config parameter missing: %s" % ke) self.corrupted = True return except ValueError as ve: # if one configuration parameter can't be parsed as int logging.error( "Sms: Wasn't able to initialize the notifier, please check your configuration: %s" % ve) self.corrupted = True return # Initialization of modem self.modem = gsmmodem.GsmModem(self.port, self.baud) try: self.modem.connect(self.pin) except gsmmodem.exceptions.PinRequiredError: # PIN required logging.exception("Sms: SIM PIN required") self.corrupted = True except gsmmodem.exceptions.IncorrectPinError: # wrong PIN logging.exception("Sms: SIM PIN is wrong") self.corrupted = True except gsmmodem.exceptions.TimeoutException: # maybe because it can't access the sim? not sure yet logging.exception( "Sms: Timeout while establishing serial connection to usb modem" ) self.corrupted = True except serial.serialutil.SerialException: # wrong device path or no modem plugged in logging.exception("Sms: Wasn't able to open specified port") self.corrupted = True except gsmmodem.exceptions.CmeError: # no SIM inside? logging.exception( "Sms: Wasn't able to access SIM, maybe there is none?") self.corrupted = True else: logging.info("Sms: Notifier initialized")
def __init__(self, port): super().__init__() logger.debug(f"Start new thread {port}") self.port = port self.alive = True self.modem: GsmModem = gsmmodem.GsmModem( self.port, smsReceivedCallbackFunc=self.receive_sms, cpinCallbackFunc=self.on_cpin) self.clear_data() self.last_check_signal = 0 self.signal = 'Off' self.phone_number = "--" self.sms_lock = threading.Lock() self.status = "" self.set_status('Initializing...')
def __init__(self, port): super().__init__() logger.info(f"Start new thread {port}") self.port = port self.alive = True self.modem: GsmModem = gsmmodem.GsmModem( self.port, smsReceivedCallbackFunc=self.receive_sms, smsStatusReportCallback=self.on_sms_status, cpinCallbackFunc=self.on_cpin) self.clear_data() self.last_check_signal = 0 self.signal = 'Off' self.sms_count = 0 self.sms_fail = 0 self.sms_lock = threading.Lock() self.set_status('Initializing...')
def connect(self, port, baudrate=115200): try: self.log.debug('Connecting modem') self.modem = gsmmodem.GsmModem( port, baudrate, smsStatusReportCallback=self.msgSentCallback, requestDelivery=False) self.modem.smsTextMode = False self.reset_logger(self.modem.log, logConfig=self.logConfig) self.modem.deleteStoredSms = types.MethodType( _deleteStoredSms, self.modem) # bug fix to support T35i modem self.modem.connect() self.connected = True self.log.debug('Connected modem') except SerialException as e: self.log.warn( "Unable to connect to COM port=%s. Please check your settings. Only loopback SMS will work. msg=%s", self.commPort, e.message)
if 'shortcuts' in config.sections(): for opt in config.options('shortcuts'): shortcuts[opt] = config.get('shortcuts', opt) logger.info(f'{len(shortcuts)} shortcuts loaded from config.ini file') if 'smsforward' in config.sections(): for opt in config.options('smsforward'): if opt == 'email_account': email_account = config.get('smsforward', opt) elif opt == 'email_passwd': email_passwd = config.get('smsforward', opt) elif opt == 'email_to': email_to = config.get('smsforward', opt) logger.info('Forward sms data loaded from config.ini file') gsm_modem = gsmmodem.GsmModem('1111', email_account, email_passwd, email_to) queue = multiprocessing.Queue() rotary_dial_thread = multiprocessing.Process( target=rotarydial.collect_number, args=(queue, )) rotary_dial_thread.start() logger.info("Rotary dial process started") handset_thread = multiprocessing.Process(target=handset.handle_handset, args=(queue, )) handset_thread.start() logger.info("Handset process started") while True: msg = queue.get()