关于AT指令(或其他类似)操作时,如何辨别某返回的信号是自己刚刚发起请求的响应的问题

clapton 2011-10-24 05:15:21
比如我发一个AT,芯片会返回一个\r\nOK\r\n之类的信息。
但是可能同时我又收到一条短信,那么在我的输入流中就有可能会混进一个CMTI XXXX 之类的东西。
那么如果我想做一个函数方法,比如String getAtCommandResponse(String cmd),输入参数cmd是我要发送的AT指令,返回值是针对我这条指令返回的信息,而不包括CMTI这种不定时发回的信息,应该怎么实现?

另外即使不考虑CMTI这种问题,有的设备在inputstream读取时,即使读完了也不返回-1,那么就一直停在read方法那儿了,我这个方法也没法返回了,这种情况应该怎么处理?我看有的代码是做一个缓冲池,把能读到的都放进去,然后再处理(比如模式匹配OK,ERROR之类的字符)。但是这样的话,程序也很难辨别混在一起的一堆字符,哪些是刚刚自己发起的请求的响应?

请高手指教~
...全文
178 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
clapton 2011-10-25
  • 打赏
  • 举报
回复
真没什么好办法了?
woshi_ziyu 2011-10-25
  • 打赏
  • 举报
回复
帮顶 没什么好办法
clapton 2011-10-25
  • 打赏
  • 举报
回复
自己顶一下吧
寂寞读南华 2011-10-24
  • 打赏
  • 举报
回复
帮顶一下

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧