一台电脑上处理来自多个扫描枪的条码。。。。。。。

印刷PRINT 2010-09-15 01:55:26
一个扫描枪处理起来,倒是问题不大。但是多个扫描枪如何处理,因为一些扫描枪供应商说是支持7个甚至是更多。我改如何去处理,如何去鉴别来之不同扫描枪的条码这个可以处理,可以在各个扫描枪扫到数据后追加标识符区分。我的问题是,是该用线程做控制的吧?我对单线程还是有点认识应该不难,但是考虑到扫到条码后要处理的做的步骤还是蛮多,怕单线程处理不过来,是不是该用多线程,改怎么去实现?请大侠们给个想法,解决方案,实在是欠缺多线程编程的经验。还有个问题,能不能在不影响其他扫描设备扫描的同时,程序还能提供给客户查询的功能,一般大家都是让一个文本框获得焦点,但是如果有人想去核对下扫描的数据,又涉及到焦点的丢失影响到其他设备的扫描。难道非得独立提供查询界面(该界面按照我的理解还是另外一台PC)。
...全文
1412 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
印刷PRINT 2010-09-15
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 ckl881003 的回复:]
没有焦点这个确实比较麻烦。。可以使用2台机器 简单稳定。。开发难度低。。
[/Quote]
谢谢你给了个想法。先那样实现吧,之后再去研究那HOOT。不知道闪电对这个熟不。先把帖子结掉,谢谢了闪电
ckl881003 2010-09-15
  • 打赏
  • 举报
回复
没有焦点这个确实比较麻烦。。可以使用2台机器 简单稳定。。开发难度低。。
印刷PRINT 2010-09-15
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 ckl881003 的回复:]
我有个问题啊,你就1个界面怎么给多个人用?
如果多人同时操作。。就算是排队处理。那操作员怎么知道当前处理的是自己扫描的内容= =
[/Quote]
只有在出错的时候,他到程序界面上(设备对应的控件中)查看就好了。不会同时很多人操作= =
印刷PRINT 2010-09-15
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 l13873666736 的回复:]
如果是COM口的也許可以實現,後台線程輪詢

但如果是模擬鍵盤(USB / PS2)的我覺得有點懸,萬一同一時間有多個在掃描怎麼辦??
[/Quote]
像闪电说的加入队列处理两个线程一个扫,一个处理,USB模拟键盘的应该没问题的。同时扫的话,它也是经过通讯底座先做处理的,程序这边就不存在同一时间扫这种情况了。总归是有顺序的
ckl881003 2010-09-15
  • 打赏
  • 举报
回复
我有个问题啊,你就1个界面怎么给多个人用?
如果多人同时操作。。就算是排队处理。那操作员怎么知道当前处理的是自己扫描的内容= =
印刷PRINT 2010-09-15
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 ckl881003 的回复:]
你要处理什么东西会处理不过来?
你就用2个线程,一个线程把读到的数据放入队列,然后另一个线程不断的查询这个队列,有数据时就处理,没有则等待。
这样不管你几个枪怎么扫都没问题
[/Quote]
我是这样的,首先扫描条码先要做下区分,有两种条码,一个箱子的条码,一个箱子里面产品的条码。在扫描产品的时候要做检测,条码跟箱子的条码是否是匹配,如不匹配语音提醒。匹配则插人数据库,在控件上将扫描到的CODEBAR绑上去。问下闪电大哥,如果该程序还要同时提供查询的操作方便他校对,这样的焦点就有可能改变而影响其他设备的扫描。我想问下,是只能在另外提供界面让他查询呢?还是有人说用钩子捕捉键盘事件。一般都是用文本框做扫描枪焦点来接受数据。
l13873666736 2010-09-15
  • 打赏
  • 举报
回复
如果是COM口的也許可以實現,後台線程輪詢

但如果是模擬鍵盤(USB / PS2)的我覺得有點懸,萬一同一時間有多個在掃描怎麼辦??
印刷PRINT 2010-09-15
  • 打赏
  • 举报
回复
键盘和串口都行的
ckl881003 2010-09-15
  • 打赏
  • 举报
回复
你要处理什么东西会处理不过来?
你就用2个线程,一个线程把读到的数据放入队列,然后另一个线程不断的查询这个队列,有数据时就处理,没有则等待。
这样不管你几个枪怎么扫都没问题
Baesky 2010-09-15
  • 打赏
  • 举报
回复
你扫码器枪用串口读的还是怎么读的?
chaoge180 2010-09-15
  • 打赏
  • 举报
回复
用多线程处理~~就OK了
印刷PRINT 2010-09-15
  • 打赏
  • 举报
回复
希望大侠们给个想法。。我实在不知道如何去处理这些数据,到时候后N多人同时扫,而且很频繁
印刷PRINT 2010-09-15
  • 打赏
  • 举报
回复
标识符是有的都确认过了。扫描枪都是经过通讯底座过来然后促发个回车事件这样子(数据是经过通讯底座处理的)。我就想知道程序中如何做对应的处理,是单线程,还是用多线程,我怕到时候处理不过来。在如何区分扫描枪,还有获取条码这块是没问题的了。我就想知道并发处理该怎么做,没经验
ckl881003 2010-09-15
  • 打赏
  • 举报
回复
你看你买的扫描枪的开发文档,如果他支持多个扫描枪:
1,你要去了解每次扫描枪扫到数据后如何传送给你的,即你如何得到这个数据的,在得到数据的同时应该要得到枪的标识符,这样就可以了区分了
2,要是得不到标识符,那你用1个枪和10个枪没区别,主要看你的硬件开发文档和DEMO
印刷PRINT 2010-09-15
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 vividw 的回复:]
看下硬件接口说明就可以了。
[/Quote]
晕死就个回车事件。我的意思是。如果是7个甚至更多扫描枪同时对一台电脑扫,程序中改如何处理扫描到的条码。我怕有冲突,这跟硬件接口有什么关系?不明白
天涯倦客 2010-09-15
  • 打赏
  • 举报
回复
看下硬件接口说明就可以了。
印刷PRINT 2010-09-15
  • 打赏
  • 举报
回复
现在的无线扫描枪都有个通讯底座,然后一个通讯底座连接电脑。然后其他7个扫描枪通过通讯底座跟PC交互。
aofengdaxia 2010-09-15
  • 打赏
  • 举报
回复
扫描枪应该相当于键盘吧。就好像你在一个电脑上赛了俩USB键盘一样的效果。
怫悰 2010-09-15
  • 打赏
  • 举报
回复
mark

这个和硬件有关系吧?扫描枪怎样和电脑相连的?有没有设备的接口说明?
怫悰 2010-09-15
  • 打赏
  • 举报
回复
没看完

这个什么顺序,你那个和计算机接口的带7个枪的那个设备决定的,也可能已经排好顺序了,而且有一定的缓存。
所以你要看看接口说明是怎么设定的呀

反正速度在保存在数据库上大概,其他的现在都什么计算机速度赶不上?当然这不是说不要注意冲突
加载更多回复(1)

110,502

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧