各位大师,您好!
我的智能模块的协议发送HEX(长度为固定数10),接收为HEX不定长协议,一发一收模式()其中2组协议示意如下)
发送1:01 00 01 00 06 04 00 0B C0 93
接收1:00 00 00 00 00 01 00 01 00 71 00 00 1E 00 31 39 58 52 56 5F 49 49 00 80 64 45 52 54 5F45 53 54 00 C1 74 EE 90 42 08 00 00 07 3B 07 51 04 01 00 00 09 19 14 00 00 0000 00 00 00 00 00 00 32 34 33 2D 3E 45 76 61 70 6F 72 61 74 6F 72 20 52 65 6672 69 67 20 54 65 6D 70 20 23 33 20 65 78 63 65 65 64 65 64 20 6C 69 6D 69 7420 6F 66 20 23 34 2E 00 00 00 00 00 00 00 00 00 00 00 00 BC 69
说明:1、00 00 00 00 00为不定长,有时为00 00,有时为00 00 00 00 00 00 00有时为00 00。长度不定
2、71为该接收字符串的长度(协议中的有效数据长度)
发送2:01 00 01 00 01 05 00 0B 91 53
接收2:00 00 00 00 00 00 01 00 01 00 01 03 00 15 05 EE 47
说明:1、00 00 00 00 00 00为不定长,有时为00 00,有时为00 00 00 00 00 00 00有时为00 00。长度不定
2、01为该接收字符串的长度(协议中的有效数据长度)
问题1:由于接受字符串不定长,不能固定数量来接收,只能用BYTE AT PORT。在VISA接收延时上,如果按短指令设置延时时间,短指令数据正常,长指令 出错;如果按照长指令设置时间。等待时间过长,无法满足响应时间。有什么办法在不出错的前提下能够提高采集的速度?
问题2:接收方式上能否一个一个的接收,在接收到字符串长度的字符串时,再根据固定长度来接收所有的?