Javascript code prettifier

вторник, 11 августа 2015 г.

Скрипт проверки состояния gsm-модема

У нас есть старый gsm-модем Sony Ericson, который используется для отправки sms-сообщений. Иногда он зависает, поэтому нужно следить за его работоспособностью. Для данной цели я сделал следующий скрипт. В случае, если устройство откликается на стандартную команду "AT" и сообщает, что уровень сигнала больше -93 дБ - выводится "ок", во всех остальных случаях - ошибка. Так же скрипт можно запустить с параметром, который будет передан в качестве команды модему.

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys
import serial
import time

name_port = '/dev/ttyS0'
speed_port = 9600
good_signal = -93

def request(command):
    try:
        port = serial.Serial(name_port, speed_port, timeout=3)
    except:
        print('Error open \"%s\"') % name_port
        exit(1)
    port.write(command + '\r')
    out = ''
    time.sleep(1)
    while port.inWaiting() > 0:
        out += port.readline()
    port.close()

    return out

def main():
    if len(sys.argv)>1:
        command=sys.argv[1]
        out = request(command)
        print(out)
        exit(0)

    try:
        at = request("AT").split()[1]
        csq = request("AT+CSQ").split('+CSQ:')[1].split()[0].split(',')[0]
        db = (int(csq) * 2) - 113

        if at != 'OK':
            print('Error at response')
        elif db < good_signal:
            print('Error at+csq response')
        else:
            print('ok')
    except:
        print('Error request')

if __name__== '__main__':
    main()

Комментариев нет:

Отправка комментария