Skip to content

Commit deceb2b

Browse files
author
brentru
committed
adding methods to enumerate/read sms
1 parent 441e449 commit deceb2b

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

adafruit_fona/adafruit_fona.py

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -527,6 +527,48 @@ def send_sms(self, phone_number, message):
527527
return False
528528
return True
529529

530+
@property
531+
def num_sms(self):
532+
"""Returns the number of SMS messages stored in memory, False otherwise.
533+
"""
534+
# text mode
535+
if not self._send_check_reply(b"AT+CMGF=1", reply=REPLY_OK):
536+
return False
537+
538+
# ask how many SMS are stored
539+
self._send_parse_reply(b"AT+CPMS?", b"\"SM_P\"" + b",")
540+
print("Reply: ", self._buf)
541+
# TODO
542+
543+
def read_sms(self, sms_slot=None):
544+
"""Reads SMS messages from FONA device.
545+
If no sms_slot is selected, read_sms returns all sms messages on the device.
546+
:param int sms_slot: SMS memory slot number.
547+
548+
"""
549+
# text mode
550+
if not self._send_check_reply(b"AT+CMGF=1", reply=REPLY_OK):
551+
return False
552+
553+
if not self._send_check_reply(b"AT+CSDH=1", reply=REPLY_OK):
554+
return False
555+
556+
sms_length = 0
557+
558+
if sms_slot is None:
559+
self.uart_write(b"AT+CMGL=\"ALL\"" + b"\r\n")
560+
self._read_line()
561+
self._read_line()
562+
self._read_line()
563+
self._read_line()
564+
return True
565+
566+
self.uart_write(b"AT+CMGR=" + str(sms_slot).encode() + b"\r\n")
567+
self._read_line()
568+
return True
569+
570+
571+
530572
### Socket API (TCP, UDP) ###
531573

532574
def get_socket(self):

0 commit comments

Comments
 (0)