Устаноавливаю pyserial
apt-get install python-serial
За основу взял скипт http://smart-talk.ru/2009/07/script-get-balanse-usb-gprs-modem/
cat ussd.py #!/usr/bin/python2 # coding: UTF-8 import sys import serial import string S_PORT='/dev/ttyUSB2' # Девайс S_REQ = '*100#' # Номер S_SPEED=115200 sp = serial.Serial(S_PORT, S_SPEED, timeout=3) # Пытаемся открыть порт if __name__ == '__main__': s_query = 'AT+CUSD=1,AA180C3602,15\015' sp.write(s_query) # Отправляем запрос rst = "" c = 0 while not(rst.startswith('+CUSD:') or rst.startswith('+CME ERROR:')): rst=sp.readline() # читаем пока не получим ответ c+=1 if c>20: break try: s=string.replace(rst.split(',')[1],'"','') except IndexError: s="Ответа не дождались..." ss=unicode(s.decode("hex"), "utf-16-be").encode("utf8") # преобразую из PDU в нормальный текст ss=ss.split(' ')[0] print(ss) # выводим результат sp.close() # закрываем порт sys.exit(0) # выход
Результат работы моего скрипта.
./ussd.py 92.46р.
Ссылки:
http://smart-talk.ru/2009/07/script-get-balanse-usb-gprs-modem/
http://www.ab-log.ru/forum/viewtopic.php?f=1&t=219&start=20
http://mrcat.ru/sms-send-receive
https://github.com/gnomeby/ussd
http://hardisoft.ru/soft/poluchenie-i-dekodirovanie-sms-soobshhenij-v-formate-pdu/
http://subscribe.ru/archive/comp.soft.freebsd/201408/15100619.html
http://www.linux.org.ru/forum/development/5901636