大家好!
在做一个利用Visa event来读取扫描枪串口发过来的条码信息,发现这样一个问题,当Visa event触发事件类型设置为Serial TermChar时,Visa启用事件VI报-1073807339错误;设置为Serial Character类型是,可以读取条码信息,但Visa读取VI报-1073807339错误。
下图是简化的试例:
有哪位大神遇到过这种问题吗?
已解决! 转到解答。
是的,通常是不用写的。但这个的应用场景是想不依赖鼠标光标的指示,而是直接从连接扫描枪的串口抓取数据。
-1073807339错误是超时.
如果1024不是准确的数字, 可以忽略这个错误.
也可以写一个子程序, 开始运行时就将key focus on a string, 随时准备接收输入.
是的,是超时引起的错误。
后来原因查明了,是扫描枪的设置问题。因为我没有配置串口,所以默认的字符终止符是0XA,而测试用的这把扫描枪默认在扫描字符串后加0XD,导致无法触发串口事件。配置之后就解决了。
读取超时的问题和设置1024定值有关系,改成先读取串口缓存里的字符数再读取可以避免错误。或者直接忽略掉也问题。