Получение ошибки "no CARRIER" во время tring для вызова с помощью GSM-модема в Python
Я хочу позвонить через мой модем. Поэтому я написал следующую программу:
import time
import serial
recipient = "+98xxxxxxxxxx"
phone = serial.Serial("COM10", 115200, timeout=5)
try:
time.sleep(0.5)
phone.write(b'ATZr')
time.sleep(1)
phone.write(b'ATD"'+recipient.encode() +b'"r')
while(1):
print(phone.readline())
time.sleep(0.5)
finally:
phone.close()
но когда я запускаю его, я получаю этот выход:
>>> ================================ RESTART ================================
>>>
b'ATZrrn'
b'OKrn'
b'ATDxxxxxxxxxxrrn'
b'NO CARRIERrn'
что означает эта ошибка" без носителя"?
обратите внимание, что я могу отправить SMS успешно.
Это программа, которую я использую для отправки SMS:
import time
import serial
recipient = "+98xxxxxxxxxx"
message = "Test"
phone = serial.Serial("COM10", 115200, timeout=5)
try:
time.sleep(0.5)
phone.write(b'ATZr')
time.sleep(0.5)
phone.write(b'AT+CMGF=1r')
time.sleep(0.5)
phone.write(b'AT+CMGS="' + recipient.encode() + b'"r')
time.sleep(0.5)
phone.write(message.encode() + b"r")
time.sleep(0.5)
phone.write(bytes([26]))
time.sleep(0.5)
finally:
phone.close()
1 ответов
Я нашел источник ошибки :
синтаксис ATD+98xxxxxxxxxx;
с последующим завершением строки. Я забыл поставить точку с запятой в конце после номера.
поэтому я заменяю
phone.write(b'ATD"'+recipient.encode() +b'"\r')
С
phone.write(b'ATD"'+recipient.encode() +b';"\r')
и теперь он отлично работает.
на основе скобки этой документы, я думал, что через ";" необязательно. Но, похоже, я ошибался.