コード例 #1
0
import time
from pygsm import GsmModem

gsm = GsmModem(port="/dev/ttyUSB0", logger=GsmModem.debug_logger).boot()

print("Waiting for network...")
s = gsm.wait_for_network()

with open("messaggio.txt", "rt") as f:
    messaggio = f.read()

with open("lista.csv", "rt") as f:
    for i, l in enumerate(f):
        gsm.send_sms(l.strip(), messaggio)
        time.sleep(1)

gsm.disconnect()
コード例 #2
0
ファイル: smsdb.py プロジェクト: GunioRobot/sms-mailing
import time
from pygsm import GsmModem

gsm = GsmModem(
    port="/dev/ttyUSB0",
    logger=GsmModem.debug_logger).boot()


cursor.execute('select * from mails where sent=0')
data=cursor.fetchall()

msg=[]


i=0

for row in data:
    mess=str(row[2]+'\n'+row[3])
    ids=row[0]
    msg.append((ids,mess))
    
    i+=1

for ids,mess in msg:
    print ids,mess
    gsm.send_sms('+919940138729',mess)
    cursor.execute('update mails set sent=1 where mailid=%s',ids)

#print mailid,email,fromid,subject,mobile,idm

コード例 #3
0
ファイル: gsmtrack.py プロジェクト: gituu4567/GSMTracker
                if abs(Altitude - PreviousAltitude) >= VerticalDelta:
                    Send = True
                    print("Send because of vertical movement")

                if Send:
                    PreviousSeconds = Seconds
                    PreviousAltitude = Altitude
                    PreviousLatitude = Latitude
                    PreviousLongitude = Longitude

                    # Text to my mobile
                    Message = PayloadID + ' position: ' + UTC + ', ' + str(
                        Latitude) + ', ' + str(Longitude) + ', ' + str(
                            int(Altitude)
                        ) + ' http://maps.google.com/?q=' + str(
                            Latitude) + ',' + str(Longitude)
                    print "Sending to mobile " + MobileNumber + ": " + Message
                    gsm.send_sms(MobileNumber, Message)

                    # Text to my gateway
                    if GatewayNumber:
                        print("Sending text to gateway")
                        Message = 'HAB:' + PayloadID + ',1,' + UTC + ',' + str(
                            Latitude) + ',' + str(Longitude) + ',' + str(
                                int(Altitude))
                        print "Sending to gateway " + GatewayNumber + ": " + Message
                        gsm.send_sms(GatewayNumber, Message)

    time.sleep(1)
コード例 #4
0
ファイル: testmodem.py プロジェクト: lynnUg/topcoder
#!env python

from pygsm import GsmModem

gsm = GsmModem(port="COM22",baudrate=115200,logger=GsmModem.debug_logger).boot()

s = gsm.wait_for_network()
#gsm.send_sms('+256784726116', 'This is a message')
numbers=['+256779127009','+256782481746']
for number in numbers:
	gsm.send_sms(number, 'This is a message from a modem')
コード例 #5
0
ファイル: GPSLuke.py プロジェクト: Luketise/Luketise
    # Check messages
    message = gsm.next_message()

    if message:
        print(message)
        text = message.text

        if text[0:5] == 'Check':
            print("Controllo GPS...")
            SendGPSPosition()
            Message = ' Check Position: ' + UTC + ', ' + str(
                Latitude) + ', ' + str(Longitude) + ', ' + str(
                    Altitude) + ' http://maps.google.com/?q=' + str(
                        Latitude) + ',' + str(Longitude)
            print("Sending to mobile " + MobileNumber + ": " + Message)
            gsm.send_sms(MobileNumber, Message)

            PreviousAltitude = float(Altitude)
            PreviousLatitude = float(Latitude)
            PreviousLongitude = float(Longitude)
            time.sleep(300)

    else:
        # get position info from GPS
        reply = gsm.command('AT+CGNSINF')
        list = reply[0].split(",")

        if len(list[2]) > 14:
            UTC = list[2][8:10] + ':' + list[2][10:12] + ':' + list[2][12:14]
            Latitude = list[3]
            Longitude = list[4]
コード例 #6
0
ファイル: pysms.py プロジェクト: babialemayehu/pysms
class Sms:
    gsm = None
    logger = ""

    def __init__(self, port, logger=""):
        self.logger = logger
        self.gsm = GsmModem(port=port, logger=logger).boot()

    def _decode(self, text):
        try:
            return text.replace("\"", "").decode("hex").replace("\x00", "")
        except Exception:
            return text

    def _compose(self, msg, properties=["id", "status", "phone", "x"]):
        date_pattern = re.compile(
            r'\d\d/\d\d/\d\d,\d\d:\d\d:\d\d\+\d\d').search(msg)
        date = ""

        if date_pattern:
            date = date_pattern.group()

        message = msg.split(",")
        if self.logger == GsmModem.debug_logger:
            print("")
            print("messages")
            print("===============================")
            print(message)
            print("===============================")
        if (gsm.gsm.query("AT+CMGF?")[-1] == 0):
            obj = {
                properties[i]: self._decode(message[i])
                for i in range(0, len(properties))
            }
        else:
            obj = {
                properties[i]: message[i]
                for i in range(0, len(properties))
            }
        obj["date"] = date
        obj["status"] = re.compile(r'"\w+\s?\w+"').search(
            obj["status"]).group().replace("\"", "")

        return obj

    def storedSms(self, filter="ALL", _from="SM"):
        self.gsm.command("AT+CPMS=\"" + _from + "\",\"" + _from + "\",\"" +
                         _from + "\"")
        self.gsm.command("AT+CMGF=1")

        messages = self.gsm.query_list("AT+CMGL=\"" + filter + "\"")
        message_objs = []
        if self.logger == GsmModem.debug_logger:
            print("*************************")
            for msg in messages:
                print(msg)
            print("*************************")
        for msg in messages:
            message = msg.split(",")
            if (len(message) != 1):
                obj = self._compose(msg)
            else:
                message_objs[-1]["message"] = self._decode(message[0])

            message_objs.append(obj)

        return message_objs

    def getMessage(self, id, _from="SM"):
        self.gsm.command("AT+CPMS=\"" + _from + "\",\"" + _from + "\",\"" +
                         _from + "\"")
        self.gsm.command("AT+CMGF=1")

        message = self.gsm.query_list("AT+CMGR=" + str(id))
        obj = self._compose(message[0], properties=["status", "phone"])
        obj["message"] = self._decode(message[1])

        return obj

    def inbox(self, _from="SM"):
        unseen = self.storedSms("REC UNREAD", _from=_from)
        seen = self.storedSms("REC READ", _from=_from)
        return unseen + seen

    def outbox(self, _from="SM"):
        unsent = self.storedSms("STO UNSENT", _from=_from)
        sent = self.storedSms("STO SENT", _from=_from)
        return unsent + sent

    def sent(self, _from="SM"):
        sent = self.storedSms("STO SENT", _from=_from)
        return sent

    def newMessages(self, _from="SM"):
        unseen = self.storedSms("REC UNREAD", _from=_from)
        return unseen

    def faildMessages(self, _from="SM"):
        unsent = self.storedSms("STO UNSENT", _from=_from)
        return unsent

    def sendSms(self, message):
        print(">>>>", message)
        phone_pattern = re.compile(r'^\+\d{12}$')

        if (message["phone"][0] == "0"):
            message["phone"] = "+251" + message["phone"][1:len(message["phone"]
                                                               )]

        if (len(message["message"]) > 160):
            raise Exception(
                "Message is too long" + str(len(message["message"])) +
                ", the messasage should not be graterthan 160 characters")
        elif (not phone_pattern.search(message["phone"])):
            raise Exception("The phone number is invalid")
        else:
            return self.gsm.send_sms(message["phone"], message["message"])

    def sendSmses(self, messages):
        print("+++", message)
        phone_pattern = re.compile(r'^\+\d{12}$')
        self.gsm.command("AT+CMGF=1")
        faild_sms = []

        for msg in messages:
            try:
                if self.sendSms(msg) == None:
                    faild_sms.append(msg)
            except Exception as e:
                print(">>", e)
                faild_sms.append(msg)

        return faild_sms