gpt4 book ai didi

python - 尝试在 Python 中使用 GSM 调制解调器调用电话时收到 "NO CARRIER"错误

转载 作者:太空狗 更新时间:2023-10-29 17:58:36 25 4
gpt4 key购买 nike

我想使用我的 GSM 调制解调器调用电话。所以我写了下面的程序:

import time
import serial

recipient = "+98xxxxxxxxxx"

phone = serial.Serial("COM10", 115200, timeout=5)
try:
time.sleep(0.5)
phone.write(b'ATZ\r')
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'ATZ\r\r\n'
b'OK\r\n'
b'ATDxxxxxxxxxx\r\r\n'
b'NO CARRIER\r\n'

这个“NO CARRIER”错误是什么意思?

请注意,我可以成功发送短信。


这是我用来发送短信的程序:

import time
import serial

recipient = "+98xxxxxxxxxx"
message = "Test"

phone = serial.Serial("COM10", 115200, timeout=5)


try:
time.sleep(0.5)
phone.write(b'ATZ\r')
time.sleep(0.5)
phone.write(b'AT+CMGF=1\r')
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()

最佳答案

我找到了错误的根源:

语法是 ATD+98xxxxxxxxxx; 后跟终止字符串。我忘了在数字后面加上分号。

所以我替换

phone.write(b'ATD"'+recipient.encode() +b'"\r')

phone.write(b'ATD"'+recipient.encode() +b';"\r')

现在它工作正常。


基于 this 中的括号文档,我认为使用“;”是可选的。但似乎我错了。 enter image description here

关于python - 尝试在 Python 中使用 GSM 调制解调器调用电话时收到 "NO CARRIER"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30952079/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com