HTML/JS/浏览器与串口通信(一)

在一些应用场景中,Web应用程序需要获取访问者电脑上连接的硬件设备,即浏览器和串口通信。通常的做法是为这些硬件设备开发ActiveX控件,并将其嵌入到HTML网页中供InternetExplorer浏览器访问这些设备信息。而采用ActiveX控件要求浏览器必须为InternetExplorer,不兼容Chrome等其他浏览器。下面是结合广大网友资料的总结,顺便记录下实现的过程和碰到的问题。

一、使用mscomm32.ocx使用串口资源

该方法是使用微软的ActiveX控件MSCOMM32.ocx的串口控件对串口进行控制,但是ActiveX控件目前只针对IE浏览器支持较好,要想兼容其他浏览器可以去找下自定义ActiveX控件相关资料

二、用C#之类的自己写一个dll,然后使用

使用C#语言的控件对串口进行控制,然后使用JS+AJAX与C#进行交互获得串口数据,缺点就是数据同步方面可能相对稍有延迟,毕竟AJAX是一个异步传输的标准

三、用Node.js 的serial模块实现

暂无实际项目开发经验。附上别人家的代码一份供参考
http://www.qihuawu.com/serial-data-obtained-using-nodejs.html

四、使用Google的Chrome.serial实现

开发这位大神总结的很nice:https://www.jianshu.com/p/873b5403bf05

下面我详细说一下用微软的ActiveX控件实现串口通信的过程

1.注册MSCOMM32.ocx控件

A.下载控件https://github.com/davidanger/MSCOMM32
B.复制MSCOMM32.OCX 到 C:\WINDOWS\SysWOW64(
注意:如果是32位系统就是C:\WINDOWS\SysWOW32)
C.在C:\WINDOWS\SysWOW64(C:\WINDOWS\SysWOW32)搜索cmd.exe,以管理员身份运行,执行命令: regsvr32 mscomm32.ocx,弹出注册成功
HTML/JS/浏览器与串口通信(一)_第1张图片

2.设置注册表

A. 复制下面的内容,文件命名为mscomm.bat
copy mscomm*.* %windir%\system32\ /y
Regsvr32 %windir%\system32\mscomm32.ocx /s
Regsvr32 %windir%\system32\actxprxy.dll /s
Regsvr32 %windir%\system32\shdocvw.dll /s
Reg add"HKEY_CLASSES_ROOT\Licenses\4250E830-6AC2-11cf-8ADB-00AA00C00905" /v “” /d “kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun” /f
pause
B.将文件复制到C:\Windows\SysWOW64 目录下
C.右击mscomm.bat 文件选择以管理员身份运行
D.出现如图:即操作成功,完成后即可关闭命令窗口
HTML/JS/浏览器与串口通信(一)_第2张图片

3.设置IE对ActiveX的安全控制

A.打开IE浏览器 — 设置 — Internet 选项 — 安全模块 — 自定义级别
B.自定义级别——安全——ActiveX控件和插件
C.如下图操作:

HTML/JS/浏览器与串口通信(一)_第3张图片
HTML/JS/浏览器与串口通信(一)_第4张图片
HTML/JS/浏览器与串口通信(一)_第5张图片
方点击确定,是,重启浏览器。

4.IE 管理项加载

A.新建文档,复制下面的内容,文件为mscomm.html


	
		
	
	
		
		     
		     
		     
		     
		         
		 
		     
		     
		     
		     
		    
		 
		           
		        
		           
		         
		     
		     
		     
		     
		
	

B.在IE中运行mscomm.html
HTML/JS/浏览器与串口通信(一)_第6张图片
C.查看控件是否加载 设置——管理加载项——所有加载项
HTML/JS/浏览器与串口通信(一)_第7张图片
HTML/JS/浏览器与串口通信(一)_第8张图片

3.附上代码



	
		JavaScript串口测试
		

		

		

		
	

	

		
配置串口

串口号:
波特率:
校验位:
数据位:
停止位:

发送区域

16进制
接收区域

16进制
4.代码调试

没有实际的USb串口的话,即为模拟环境,注意模拟环境要安装虚拟串口
1)下载调试工具
Configure Virtural Serial Port 创建虚拟串口的 试用期 14天
串口调试精灵 调试串口的
2)虚拟调试方法
在Configure Virtural Serial Port 里添加端口,添加的端口都为一对

3)实际串口调试方法
待更新…

5.问题汇总

安装虚拟端口
https://www.cnblogs.com/javatiandi/p/11180765.html

设置虚拟端口
https://jingyan.baidu.com/article/4ae03de31828973eff9e6b8e.html

调试方法
https://blog.csdn.net/u013769695/article/details/80408139

串口调试助手怎么知道串口打开是否成功
https://zhidao.baidu.com/question/2053929245831631307.html

解决IE的Automation 服务器不能创建对象的问题
http://xinzhi.wenda.so.com/a/1539093807203701
http://www.qiuyexitong.com/article/1024.html

模块"scrrun.dll"已加载,但对DllRegisterServer的调用失败,错误代码为0x80004005
https://zhidao.baidu.com/question/537433274.html

算是个最完整的实例:
https://www.cnblogs.com/x-j-p/p/7819724.html

控件参数详解
https://blog.csdn.net/dongyue786/article/details/8177047

通信常见问题
https://www.iteye.com/blog/linuxgao-1925099

你可能感兴趣的:(串口通信,javascript,html,html5,前端)