这是我使用的一个函数,它通过串行端口与我的笔记本电脑相连,用来查询GSM调制解调器接收到的新消息。我创建了一个串行对象“phone”,我用它来读写数据。在
“phone”将数据读入列表x
当我收到一条新消息时,我得到的回复是这样的:
+CMTI: "SM",0
这里0是一个索引,它指示在SIM上存储消息的索引位置。 下面的代码用于轮询包含我正在读写的数据的列表x 从串行端口。我正在使用正则表达式来解析x,它已被转换为字符串myRegexableString,以查看是否收到通知。在
^{pr2}$我想把上面的代码用于AT命令,检查网络注册。当我执行其他命令时,我也需要轮询新消息,或者任何与此相关的命令,但是为了这个问题,我将以网络注册为例。下面是它在不使用轮询函数的情况下正常运行的方式。在
AT+CREG? #command
+CREG: 0,1 #response
OK #status
这是密码。在
def register():
print "Checking for network registration"
phone.write(b'AT+CREG?\r')
sleep()
x=phone.read(50)
sleep()
print x
现在假设我在这里包含轮询,代码将更改为
def register():
print "Checking for network registeration"
phone.write(b'AT+CREG?\r')
sleep()
x=phone.read(50)
poll(x)
sleep()
print x
我从修改后的代码得到的输出是
Checking for network registeration
Printing myRegexableString
'AT+CREG?\r\r\n+CREG: 0,1\r\n\r\nOK\r\n'
You have received a new message!
You have received a new message!
You have received a new message!
You have received a new message!
You have received a new message!
You have received a new message!
You have received a new message!
You have received a new message!
You have received a new message!
You have received a new message!
You have received a new message!
You have received a new message!
You have received a new message!
You have received a new message!
You have received a new message!
You have received a new message!
You have received a new message!
You have received a new message!
You have received a new message!
You have received a new message!
You have received a new message!
You have received a new message!
You have received a new message!
You have received a new message!
You have received a new message!
You have received a new message!
You have received a new message!
You have received a new message!
You have received a new message!
AT+CREG?
+CREG: 0,1
OK
为什么要打印“你收到了一条新消息!”这么多次?在
尤其是当我还没有收到新消息的时候!在
请帮忙。在
您只需使用
regex.findall(myRegexableString)
。这将返回匹配的组的列表,因此为数字。在我已经将
re.compile()
调用移出了函数,不需要每次都重新编译表达式。在循环遍历
myRegexableString
中的每个字符,然后在一个匹配one的列表上循环,然后测试myRegexableString
是否为True ish(如果它不是空的话)。这意味着对于输入中的每个字符,您将添加一个空匹配(表达式永远不会匹配单个字符串中的任何内容)。在相关问题 更多 >
编程相关推荐