Игорь Пашев - Post a comment

Feb. 17th, 2011

[info]igorpashev

12:38 pm - Скрипт для USB модема

Подсмотрел здесь: http://ru.gentoo-wiki.com/wiki/MF626
Переписал на Python 3, сделал расширяемым.
В таком виде показывает баланс и рекламу :-)

Раскрасил так:

pygmentize -f html -O 'noclasses=true' 1.py


#!/usr/bin/env python3
#coding: utf8
import time, io

class Modem:
    p = None
    def __init__(self, dev='/dev/ttyUSB1'):
        self.open(dev)

    def open(self, dev):
        #self.close()
        self.p = io.open(dev, 'w+b', 0)
    
    def write(self, s):
        self.p.write(str.encode(s) + b'\r\n')
        time.sleep(0.1)

    def close(self):
        self.p.close()

    def ussd(self, code):
        self.write('AT+CPBS="SM"')
        self.write('AT+CPMS="SM","SM",""')
        self.write('AT+ZSNT=0,0,2')
        self.write('AT+CUSD=1,' + code + ',15')

        for ln in self.p:
            if ln.startswith(b'+CUSD'):
                msg = ln[10:ln.rfind(b'"')].decode('ascii')
                return bytes.fromhex(msg).decode('utf-16-be')

    def balance(self, code='*100#'):
        return self.ussd(code)

modem = Modem()
print(modem.balance())

Read Comments

Reply:

From:
(will be screened)
Identity URL: 
имя пользователя:    
Вы должны предварительно войти в LiveJournal.com
 
E-mail для ответов: 
Вы сможете оставлять комментарии, даже если не введете e-mail.
Но вы не сможете получать уведомления об ответах на ваши комментарии!
Внимание: на указанный адрес будет выслано подтверждение.
Username:
Password:
Subject:
No HTML allowed in subject
Message: