Игорь Пашев

Feb. 18th, 2011

08:24 pm - Отправка SMS с USB-модема

Упростил запрос баланса и, главное,
добавил отправку SMS. Пока только латиницей.

http://lj.rossia.org/users/igorpashev/95763.html
http://www.developershome.com/sms/smsIntro.asp
http://www.communica.se/multitech/gprs_at.pdf

#!/usr/bin/env python3
#coding: utf8

import io

class Modem:
    def __init__(self, dev='/dev/ttyUSB1'):
        self.stream = io.open(dev, 'w+b', 0)

    def __write(self, s):
        self.stream.write(str.encode('{}\r\n'.format(s)))

    def close(self):
        self.stream.close()

    def ussd(self, code):
        self.__write('AT+CUSD=1,{},15'.format(code))

    def balance(self, code='*100#'):
        self.ussd(code)
        for l in self.stream:
            if l.startswith(b'+CUSD'):
                msg = l[10:l.rfind(b'"')].decode('ascii')
                return bytes.fromhex(msg).decode('utf-16-be')

    def sendSMS(self, phone, msg):
        self.__write('AT+CMGS="{}"'.format(phone))
        self.__write('{}\x1a'.format(msg))



modem = Modem()
modem.sendSMS('+7XXXXXXXXXX', 'test')

Альбом: Any key

Tags: , , , ,
(1 комментарий | Оставить комментарий)