NI LabVIEW,CVI,数据采集等产品讨论区

取消
显示结果 
搜索替代 
您的意思是: 

扫描枪利用Visa event读取串口数据 Serial TermChar和Serial Character事件类型的不同

已解决!
转到解答

大家好!

在做一个利用Visa event来读取扫描枪串口发过来的条码信息,发现这样一个问题,当Visa event触发事件类型设置为Serial TermChar时,Visa启用事件VI报-1073807339错误;设置为Serial Character类型是,可以读取条码信息,但Visa读取VI报-1073807339错误。

下图是简化的试例:1.PNG

 有哪位大神遇到过这种问题吗?

 

0 项奖励
1 条消息(共 5 条)
2,928 次查看

通常扫描枪是同键盘一样的, 不需要自己写程序.

2维码可能例外.

 

George Zou
0 项奖励
2 条消息(共 5 条)
2,890 次查看

是的,通常是不用写的。但这个的应用场景是想不依赖鼠标光标的指示,而是直接从连接扫描枪的串口抓取数据。

0 项奖励
3 条消息(共 5 条)
2,868 次查看

-1073807339错误是超时.

如果1024不是准确的数字, 可以忽略这个错误.

 

也可以写一个子程序, 开始运行时就将key focus on a string, 随时准备接收输入.

 

George Zou
0 项奖励
4 条消息(共 5 条)
2,855 次查看
解答
已被主题作者 Kanjianximie 接受

是的,是超时引起的错误。

后来原因查明了,是扫描枪的设置问题。因为我没有配置串口,所以默认的字符终止符是0XA,而测试用的这把扫描枪默认在扫描字符串后加0XD,导致无法触发串口事件。配置之后就解决了。

读取超时的问题和设置1024定值有关系,改成先读取串口缓存里的字符数再读取可以避免错误。或者直接忽略掉也问题。

0 项奖励
5 条消息(共 5 条)
2,816 次查看