如何用MSCOMM控件完整接收长度不定的十六进制的数据
答案:2 悬赏:0 手机版
解决时间 2022-01-01 08:26
- 提问者网友:川水往事
- 2021-12-31 23:20
如何用MSCOMM控件完整接收长度不定的十六进制的数据
最佳答案
- 五星知识达人网友:玩世
- 2021-12-31 23:53
你的程序里,MSComm1.RThreshold = 1,就是说每收到一个字节都要产生一次事件,其实这样很简单,一开始将你的MSComm1.RThreshold设为5,判别收到的第一个字节是否正确,正确的话再提取4、5两个字节,得出你的数据长度,然后将MSComm1.RThreshold设为该数据长度+1,因为你说有一个校验的,这样你就能收完整个数据后再触发事件。收到数据后再将MSComm1.RThreshold设为5,收下一批数据。
全部回答
- 1楼网友:夜余生
- 2022-01-01 01:22
刚查了一下mscomm控件的output属性“output 向传输缓冲区写一个字符串”,应该是该控件只支持字符型数据,如果你要发送数值型数据,那就只能通过str()函数先转换,接收后再通过val()函数转回。如果数据有小数点,要注意这两个函数的参数设置。
“达到以一个字节的长度发送任意一个八位二进制数能表示的数值呢?”,你可以直接把这个八位二进制数作为字符串发送,接收后再根据你需要作相关处理。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯