Skip to content

Commit 441e449

Browse files
author
brentru
committed
better sms validation
1 parent 5a1e39e commit 441e449

File tree

1 file changed

+25
-6
lines changed

1 file changed

+25
-6
lines changed

adafruit_fona/adafruit_fona.py

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -500,13 +500,32 @@ def send_sms(self, phone_number, message):
500500
if not self._send_check_reply(b"AT+CMGF=1", reply=REPLY_OK):
501501
return False
502502

503-
self.uart_write(b"AT+CMGS" + b"+\'" + str(phone_number).encode() + b"'")
504-
# <CR><CR><LF>><Space>
505-
self._uart.write(b"\r\r\n> ")
506-
self._uart.write(b"\n")
507-
self._read_line(30000)
508-
503+
self.uart_write(b"AT+CMGS=\"+" + str(phone_number).encode() + b"\"" + b"\r")
504+
self._read_line()
505+
506+
# expect >
507+
if self._buf[0] != 62:
508+
# promoting mark ('>') not found
509+
return False
510+
self._read_line()
509511

512+
# write out message and ^z
513+
self.uart_write((message + chr(26)).encode())
514+
515+
if self._fona_type == FONA_3G_A or self._fona_type == FONA_3G_E:
516+
# eat 2x CRLF
517+
self._read_line(200)
518+
self._read_line(200)
519+
# read +CMGS, wait ~10sec.
520+
self._read_line(10000)
521+
522+
if not "+CMGS" in self._buf:
523+
return False
524+
525+
# read OK
526+
if not self._expect_reply(REPLY_OK):
527+
return False
528+
return True
510529

511530
### Socket API (TCP, UDP) ###
512531

0 commit comments

Comments
 (0)