扫描仪串口程序开发总结
2011-02-24 10:54
651 查看
由于公司新展开一个业务,需要用到扫描仪,买来的是个USB口的,可是我们应用程序界面上是没有光标的,需要USB转 COM口后,再用程序来读串口的数据,买的这个扫描枪型号是Metrologic的 M S5415,随附的扫描仪设置手册里有个条码是:设置扫描仪USB模拟串口输出(需装驱动),扫一下就可以将扫描仪的USB 转换成COM口.用扫描仪扫一下这个条目后,我的电脑设备管理器出现一个其它设备,黄色的,然后更新驱动程序,找到官方网站下载的驱动后,确定,一会驱动安装完成,扫描仪出现一声响,此时在我的电脑,设备管理器的端口下的列表里出现了个COM3.这个COM3就是现在的扫描仪了。此时再通过程序监视COM3的数据。
通过.NET的SerialPort类可以实现该功能, 以下是我测试用的一个DEMO程序,根据《C# 与VB.NET 网络通信开发实战》完成的一个DEMO,该书的第二章有详细串口通信解释.
View Code
code4
mshtml.IHTMLDocument2 currentDoc = (mshtml.IHTMLDocument2) CurrendWB.Document.DomDocument;
mshtml.IHTMLWindow2 win = (mshtml.IHTMLWindow2) currentDoc.parentWindow;
win.execScript("toNextPage(\""+ unstring +"\")", "javascript");
问题出在下面这一句
win.execScript("toNextPage(\""+ unstring +"\")", "javascript");
变量 unstring是扫描仪扫出来的值,默认情况,扫出来的字符是带回车符的 ,假如unstring是“20110224回车符”这样传进去,到执行Javascript的时候,Javascript程序就会变成如下这样的形式
function toNextPage(“
20110224
”)
这样是不符合Javascript语法的,会出现HRESULT:0x80020101 的语法错误.
如果把这一句话改成
win.execScript("toNextPage("+ unstring +")", "javascript");
在调用的时候,不是把扫描值当成字符,javascript在接收到全是数字的扫描结果就会直接把它当成科学计数法,如果unstring = 8801124811022218270060101700060007,javascript接收到以后直接变成int型的8.801124811022218e 33,失去了原有意义。这个问题的解决要感谢一下同事WuWei.
以下是开发过程中的一些参考资料
http://msdn.microsoft.com/zh-cn/library/system.io.ports.serialport(v=vs.80).aspx
http://book.51cto.com/art/200807/81872.htm
http://hi.baidu.com/qq305965235/blog/item/955116cd49f7531c01e928ad.html
其它参资料
串口:略
SerialPort类
DataReceived事件 :从 SerialPort 对象接收数据时,将在辅助线程上引发 DataReceived 事件。由于此事件在辅助线程而非主线程上引发,因此尝试修改主线程中的一些元素(如 UI 元素)时会引发线程异常。如果有必要修改主 Form 或 Control 中的元素,请使用 Invoke 回发更改请求,这将在正确的线程上执行。
通过.NET的SerialPort类可以实现该功能, 以下是我测试用的一个DEMO程序,根据《C# 与VB.NET 网络通信开发实战》完成的一个DEMO,该书的第二章有详细串口通信解释.
View Code
code4
mshtml.IHTMLDocument2 currentDoc = (mshtml.IHTMLDocument2) CurrendWB.Document.DomDocument;
mshtml.IHTMLWindow2 win = (mshtml.IHTMLWindow2) currentDoc.parentWindow;
win.execScript("toNextPage(\""+ unstring +"\")", "javascript");
问题出在下面这一句
win.execScript("toNextPage(\""+ unstring +"\")", "javascript");
变量 unstring是扫描仪扫出来的值,默认情况,扫出来的字符是带回车符的 ,假如unstring是“20110224回车符”这样传进去,到执行Javascript的时候,Javascript程序就会变成如下这样的形式
function toNextPage(“
20110224
”)
这样是不符合Javascript语法的,会出现HRESULT:0x80020101 的语法错误.
如果把这一句话改成
win.execScript("toNextPage("+ unstring +")", "javascript");
在调用的时候,不是把扫描值当成字符,javascript在接收到全是数字的扫描结果就会直接把它当成科学计数法,如果unstring = 8801124811022218270060101700060007,javascript接收到以后直接变成int型的8.801124811022218e 33,失去了原有意义。这个问题的解决要感谢一下同事WuWei.
以下是开发过程中的一些参考资料
http://msdn.microsoft.com/zh-cn/library/system.io.ports.serialport(v=vs.80).aspx
http://book.51cto.com/art/200807/81872.htm
http://hi.baidu.com/qq305965235/blog/item/955116cd49f7531c01e928ad.html
其它参资料
串口:略
SerialPort类
DataReceived事件 :从 SerialPort 对象接收数据时,将在辅助线程上引发 DataReceived 事件。由于此事件在辅助线程而非主线程上引发,因此尝试修改主线程中的一些元素(如 UI 元素)时会引发线程异常。如果有必要修改主 Form 或 Control 中的元素,请使用 Invoke 回发更改请求,这将在正确的线程上执行。
相关文章推荐
- 最近又开发串口通信程序总结1
- ARM裸机程序开发20(2440串口总结:寄存器篇)
- Linux 下开发串口程序的一些总结
- 微信小程序开发经验总结(三)
- C#的SerialPort串口程序设计总结
- [转]VS2008中开发智能设备程序的一些总结
- c#开发串口操作程序-续
- 64位机器使用java开发串口程序心得
- 第五弹:微信小程序开发思考总结—“文章阅读器和电影信息”项目实践---电影详请开发
- windows 7 内核程序开发经验总结
- 第六弹:微信小程序开发思考总结—“文章阅读器和电影信息”项目实践---项目结束和补充总结
- [15单片机] STC15F104W开发入门及模拟串口程序
- 一个java swt桌面程序开发到打包的总结(1)
- 老程序总结的开发小技巧
- 程序开发经验总结
- 微信小程序开发基础知识总结
- 在开发iOS程序时对日期处理的总结
- VS2008中开发智能设备程序的一些总结收藏
- Linux+树莓派3开发总结——根据设备ID等信息固定串口号
- 在开发iOS程序时对日期处理的总结