Reputation: 71
I created this python script on rpi2, the message goes through, but it is a blank message. Is it a encoding issue?
import serial
import time
from sys import version_info
from curses import ascii
phone = serial.Serial("/dev/ttyAMA0", 115200, timeout=0.5)
def send_text(number,message):
phone.write(b'AT+CMGF=1\r')
phone.write(b'AT+CMGS="' + number.encode() + b'"\r')
phone.write(message.encode())
phone.write(ascii.ctrl('z'))
for i in range(len(reply)):
reply[i] = reply[i].rstrip()
print reply
AT commands (where 0000000000 is a 10 digit mobile number) in Minicom, still blank message
minicom -D /dev/ttyAMA0 -b 115200 -o
AT
OK
AT+CMGS="0000000000"
>Hello
<ctrl-z>
+CMGS: 14
OK
Screenshot of Message from GSM Module
Upvotes: 4
Views: 5554
Reputation: 1
AT+CSMP=17,167,0,0
Parameters Depending on the command or result code: first octet of GSM 03.40 SMS-DELIVER, SMS-SUBMIT (default 17),
SMS-STATUS-REPORT, or SMS-COMMAND (default 2) an integer format. SMS status report is supported under text mode if is set to 49.
Depending on SMS-SUBMIT setting: GSM 03.40 TP-Validity-Period either in integer format (default 167) or in time-string format (refer )
GSM 03.40 TP-Protocol-Identifier in integer format (default 0).
GSM 03.38 SMS Data Coding Scheme in Integer format.
Upvotes: 0
Reputation: 71
There was an issue with the text mode parameters. The AT command below fixed it -
AT+CSMP=17,167,0,0
--info about it
AT+CSMP=<fo>,<vp>,<pid>,<dcs>
<fo>=17 Sets reply pat, user data header, status report request, validity period format, reject duplicates and message type.
<vp>=167 Sets validity period.
<pid>=0 Higher layer protocol indicator.
<dcs>=0 Information encode format.
OK Modem Response.
Upvotes: 3