-
Notifications
You must be signed in to change notification settings - Fork 26
/
Copy pathtest_sms.py
114 lines (91 loc) · 3.55 KB
/
test_sms.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#!/usr/bin/python3
from test_shared import *
from lib.sim900.smshandler import SimGsmSmsHandler, SimSmsPduCompiler
import random
COMPORT_NAME = "com22"
#logging levels
CONSOLE_LOGGER_LEVEL = logging.INFO
LOGGER_LEVEL = logging.INFO
#WARN: scecify recipient number here!!!
TARGET_PHONE_NUMBER = "+38 097 123 45 67"
#You can specify SMS center number, but it's not necessary. If you will not specify SMS center number, SIM900
#module will get SMS center number from memory
# SMS_CENTER_NUMBER = "+1 050 123 45 67"
SMS_CENTER_NUMBER = ""
def printScaPlusPdu(pdu, logger):
#printing SCA+PDU just for debug
d = pdu.compile()
if d is None:
return False
for (sca, pdu, ) in d:
logger.info("sendSms(): sca + pdu = \"{0}\"".format(sca + pdu))
def sendSms(sms, pdu, logger):
#just for debug printing all SCA + PDU parts
printScaPlusPdu(pdu, logger)
if not sms.sendPduMessage(pdu, 1):
logger.error("error sending SMS: {0}".format(sms.errorText))
return False
return True
def main():
"""
Tests SMS sending.
:return: true if everything was OK, otherwise returns false
"""
#adding & initializing port object
port = initializeUartPort(portName=COMPORT_NAME)
#initializing logger
(formatter, logger, consoleLogger,) = initializeLogs(LOGGER_LEVEL, CONSOLE_LOGGER_LEVEL)
#making base operations
d = baseOperations(port, logger)
if d is None:
return False
(gsm, imei) = d
#creating object for SMS sending
sms = SimGsmSmsHandler(port, logger)
#ASCII
logger.info("sending ASCII (Latin-1) SMS")
pduHelper = SimSmsPduCompiler(
SMS_CENTER_NUMBER,
TARGET_PHONE_NUMBER,
"Hello, world! Message from GSM module. Testing ASCII (Latin-1) message. "
"It must be single SMS (maximum length of message is 160 symbols). Enjoy!"
)
if not sendSms(sms, pduHelper, logger):
return False
#UCS2
logger.info("sending UCS2 message")
pduHelper = SimSmsPduCompiler(
SMS_CENTER_NUMBER,
TARGET_PHONE_NUMBER,
"Test message, тестовое сообщение"
)
if not sendSms(sms, pduHelper, logger):
return False
#long UCS2 message
logger.info("sending long UCS2 (Unicode) SMS")
pduHelper = SimSmsPduCompiler(
SMS_CENTER_NUMBER,
TARGET_PHONE_NUMBER,
"Це час, коли із затінку гілок "
"Лунає дзвінко пісня солов'я. "
"Це час, коли закохані шепочуть "
"Такі солодкі клятви і слова. "
"І хлюпіт річки, й ніжний трепет вітерця "
"Звучить як музика в покинутих серцях. "
"І кожну квітку приголубила роса, "
"І зорі пострічались в небесах, "
"І в хвилях зупинилася блакить, "
"І на листочках тьмяна барва спить. "
"А в небі загадкова невідомість "
"Так ніжно-темна й лагідно-прозора, "
"Що настає, як день згаса привітний, "
"І тануть сутінки у місячному світлі."
)
pduHelper.setValidationPeriodInDays(10)
if not sendSms(sms, pduHelper, logger):
return False
gsm.closePort()
return True
if __name__ == "__main__":
main()
print("DONE")