关于AT指令(或其他类似)操作时,如何辨别某返回的信号是自己刚刚发起请求的响应的问题
比如我发一个AT,芯片会返回一个\r\nOK\r\n之类的信息。
但是可能同时我又收到一条短信,那么在我的输入流中就有可能会混进一个CMTI XXXX 之类的东西。
那么如果我想做一个函数方法,比如String getAtCommandResponse(String cmd),输入参数cmd是我要发送的AT指令,返回值是针对我这条指令返回的信息,而不包括CMTI这种不定时发回的信息,应该怎么实现?
另外即使不考虑CMTI这种问题,有的设备在inputstream读取时,即使读完了也不返回-1,那么就一直停在read方法那儿了,我这个方法也没法返回了,这种情况应该怎么处理?我看有的代码是做一个缓冲池,把能读到的都放进去,然后再处理(比如模式匹配OK,ERROR之类的字符)。但是这样的话,程序也很难辨别混在一起的一堆字符,哪些是刚刚自己发起的请求的响应?
请高手指教~