在我们的SMS服务器中,我们有一个通过COM端口连接的旧GSM调制解调器(西门子iRZ ES75iT)。 我们有一个python脚本,允许发送短信。 这是短信发送者功能的代码:
def sendsms(to, message):
message = message.replace('@', '\0')
if (len(message) > 140 ):
message = message[0:140]
print "Connecting phone"
ser = serial.Serial('/dev/ttyS0', 115200, timeout=12)
time.sleep(1)
ser.write('AT\r')
time.sleep(1)
print "AT"
ser.write('AT+CMGD="ALL"\r')
time.sleep(2)
print "AT+CMGDA=DEL ALL"
ser.write('AT+CMGF=1\r')
time.sleep(1)
print "AT+CMGF=1, text mode"
ser.write('''AT+CMGS="''' + to + '''"\r''')
time.sleep(2)
ser.write(message + "\r")
time.sleep(3)
ser.write(chr(26))
time.sleep(1)
print message
print "disconnecting"
ser.flush()
ser.close()
脚本通常按预期工作,但有时我们会在文本中收到包含“AT”字符串的SMS,例如
"**AT** <text we expect to see>"
或
"<text we expect to see> **AT**"
问题是为什么我们在邮件中收到这样的文本以及如何避免它?提前谢谢。
答案 0 :(得分:0)
这是与命令echo相关的问题,每次发送AT命令时,它都会在串行上回显。我们有用于发送短信的python脚本。 我们通常做的是在发送任何AT命令之前禁用回声。 发送此命令
code{
stage('Checkout')
{
echo 'Getting source code...'
checkout scm
}
stage('Build Test Environment')
{
echo 'Building dependencies...'
sh 'npm i'
}
stage('Runnin Test')
{
echo 'Testing...'
sh 'npm run test'
}
此命令将关闭回声
发送前
ser.write('ATE0\r')
希望这有帮助