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
Beispiel #2
0
    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...')
Beispiel #5
0
 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)
Beispiel #6
0
    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()