文档章节

二维码扫描枪对接手册

smileNicky
 smileNicky
发布于 2018/12/02 22:47
字数 1146
阅读 300
收藏 0

前言 本博客介绍二维码扫描枪对接,本博客仅仅写写实现过程,仅仅是给学习者作为一个了解,二维码扫描枪需要相关硬件厂家做好一些dll动态链接库,当然也有一些不需要dll动态链接库,动态链接库的需要厂家提供,各有不同,所以本博客仅仅是作为学习参考。

DLL动态链接库和ActiveX的相关概念

DLL是Dynamic Link Library的缩写,意为动态链接库。DLL是一个包含可由多个程序同时使用的代码和数据的库。

<br> >ActiveX是Microsoft对于一系列策略性面向对象程序技术和工具的称呼,其中主要的技术是组件对象模型(COM)。在有目录和其它支持的网络中,COM变成了分布式COM(DCOM)。

二维码生成 现在要实现的功能是这样的,网站打开按钮,就启动扫描枪,扫描二维码之后,网站自动跳转一个页面 页面上,我们可以用jquery一些插件生成一个二维码,二维码里可以放一个查询的id就好。

定义一个div,来放二维码

<div name="tQrcode" id="tQrcode" style="margin-left: 100px;"></div>

引入jquery生成二维码的插件jquery.qrcode.js,脚本实现

<script language="javascript">
	$(function(){
		$("div[name='tQrcode']").each(function(index,element){
			createtQrcode(element);
		})
	});
	
	//生成办件二维码
	function createtQrcode(obj){
		var qrcode = $(obj).qrcode({
			text: '${t.seq}',//加上统一查询码
			width: 100,
			height: 100,
			colorDark : '#000000',
			colorLight : '#ffffff',
			correctLevel:3
		});
		var canvas = $(obj).children("canvas");
		var img = canvas[0].toDataURL("image/png")
		$(obj).html("<img src='" + img + "'>")
	}
</script>

驱动安装和dll注册 1.先确认电脑是否有安装过VC库 若没有,需安装

2、安装udp_and_vcom_drv_x86x64V2.0.1.msi

3、注册COM组件 根据电脑多少位将【扫描枪Dll注册.zip】的所有dll复制到 32位:C:\WINDOWS\system32或者64位:C:\ WINDOWS\SysWOW64 在CMD下运行下面命令注册COM组件 regsvr32 NLcpfw_Com.dll

regsvr32 NLcpfw_Com.dll或者regsvr32 C:\Windows\SysWOW64\NLcpfw_Com.dll

4、安装驱动【USB-COM-Driver-x32.msi 适用于32位操作系统】/【USB-COM-x64.msi 适用于64位操作系统】

5、把【approveUnit.txt】放C盘根目录下,然后修改如下图的三个位置的数字,改为设备管理器里的端口号。端口号在设备管理器里能看到,右键“我的电脑”--管理--设备管理器,

6、测试 若发现串口号是com4的话,则需继续修改C盘目录下的approveUnit文件 最后测试是否可以正确读取二维码信息,若可以正确读取,则在下面空白框中自动显示所读取数据

注意问题: 硬件对接的必须用ie浏览器,先设为受信任站点,在进去自定义级别设置支持ActiveX控件

这里写图片描述

扫描枪对接 页面加上这些代码

<div style="display:none"><!-- 扫描抢 -->
	<object id="idtPort" classid="CLSID:xxx" codebase="com.cab#version=1,0,0,1"></object>
	</div>

触发函数,扫描枪扫二维码后,获取的数据dataStr

<script language="javascript" event="ReadDataEvent(lParam)" for="idtPort"> 
    var len = idtPort.get_data_len();
    var arr = idtPort.get_data(len);	
    var vbarray = new VBArray(arr);

	var jsarray = vbarray.toArray();
	
	for(var i=0;i<jsarray.length;i++)
	{
		jsarray[i]=String.fromCharCode(jsarray[i]);
	}
	var dataStr = jsarray.join("");
	
   //扫描二维码后直接跳到相应的办件页面
    toApprovePageHZ(dataStr);
   

</script>

扫描枪的一些脚本


//关闭扫描枪端口
function ClosePort()
{
var ret = idtPort.close();
if(ret == 0)
 {					
	 //alert("关闭扫描枪成功");
	}else {
		//alert("关闭扫描枪失败");
	}
}
//打开扫描枪端口
function OpenPort()
{
	var PorNum = initByFile();
	var PortType = "com";
	if(PorNum==null || PorNum=="")
	{
		PorNum = "1";
	}
 	//var newfilepath = PorNum+";baud=115200";
	var newfilepath = "com="+PorNum+";baud=000";
	
	var ret = idtPort.open(PortType,newfilepath);
	if(ret == 0)
	{							
		alert("打开扫描枪成功");
	}
	else
		{
			alert("二维码扫描枪接口打开失败,错误码"+ret);
	}
}
//把十进制数换成相应的16进制
function d2x(x)
{
var temp = 0;
var ftable = new Array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F");
x = x.split(",");
for (var i = 0; i < x.length; i++)
{
 temp = parseInt(x[i]);
 x[i] = ftable[Math.floor(temp / 16)] + ftable[temp % 16];
}
return x.join("");
}
//读C盘下的COM口配置文件
function initByFile(){
var filePath = "c:\\approveUnit.txt";
var sRet = "3";
try { 
 var fso=new ActiveXObject("Scripting.FileSystemObject"); 
 var reading=1; 
 var f=fso.OpenTextFile(filePath,reading); 
 f.ReadLine();
 f.ReadLine();
 f.ReadLine();
 sRet = f.ReadLine();
 f.close();
} catch(err) {
	sRet = "3";
 //alert("文件:"+filePath+"(第4行二维描描枪号)不存在或读取出错了!"+err);
}
return sRet;
}

© 著作权归作者所有

smileNicky
粉丝 12
博文 19
码字总数 24361
作品 2
西城
程序员
私信 提问
智络连锁系统商家用微信、支付宝支付需要准备哪些资料?

不少商家都在问,在使用的智络连锁版会员管理软件时想用微信、支付宝来进行商品的结算,需要那些资料的办理?该如何来操作? 一、支付条件 1、支付宝扫码支付 2、微信扫码支付 备注:客户消费...

zhiluojiao
2016/11/17
2
0
使用模拟键盘(扫描枪)输入,python如何将多行字符串合并?

设备用的是树莓派+扫描枪 python代码如下: 运行代码后的界面如下: 使用扫描枪扫描二维码后,获得的结果如下: 最后问题如下: 如何将输出的字符串合并成为assdfa? 请让我体验一下python语...

BENNEE
2017/04/24
799
4
关于扫码硬件原理 , 如何实现扫描解码的 , 而不是拍照解码 ?

Java程序实现了 二维码的生成和解析 . 但是硬件方面我比较迷茫。 如果是手机的话。解析二维码。他是怎么实现的 ? 我现在是直接根据图片解码。 那么手机的原理是啥 ? 他是扫描。 以及所有的扫...

孟浩奇
2015/06/11
1K
3
如何用PHP或者JAVA实现扫描大量货品二维码,并将二维码信息写入数据库中?

重金酬谢:用PHP或者Java写一个小程序:实现大量扫描货品二维码信息,并将二维码信息存入数据 库中。类似于超市结账时用扫码枪连续扫描几件、几十件商品,并将扫描到信息写入数据库中。想做一...

海滩小男孩
2018/03/17
939
2
产品经理小技术(三):二维码这把利刃,产品应该用到极致

二维码,业界当然是人人听说,人人用过。 这个话题,我倒是百感交集,我一直认为,我有一种“二维码情节”。 一方面, 我自认为是国内“钻研”二维码比较早的一个人了,大学时也自己业余开发...

AlanCooper
2016/05/10
54
0

没有更多内容

加载失败,请刷新页面

加载更多

Archiva 不小心删掉了管理员权限怎么办

Archiva 的界面和 UI 比较容易出问题。 在添加用户和为用户进行权限修改的时候,不小心连 admin 这个用户的权限都删掉了。 这个时候应该如何恢复 admin 这个用户的权限? 这个时候你可以尝试...

honeymoose
32分钟前
4
0
Java8新特性之空指针异常的克星Optional类

Java8新特性系列我们已经介绍了Stream、Lambda表达式、DateTime日期时间处理,最后以“NullPointerException” 的克星Optional类的讲解来收尾。 背景 作为开发人员每天与NullPointerExceptio...

程序新视界
44分钟前
4
0
OSChina 周四乱弹 —— 福布斯终身秃头奖

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @宇辰OSC :分享如是我闻的单曲《地藏经上卷》: 如是我闻#今日歌曲推荐# 《地藏经上卷》- 如是我闻 手机党少年们想听歌,请使劲儿戳(这里) ...

小小编辑
47分钟前
159
8
Mybatis Plus删除

/** @author beth @data 2019-10-17 00:30 */ @RunWith(SpringRunner.class) @SpringBootTest public class DeleteTest { @Autowired private UserInfoMapper userInfoMapper; /** 根据id删除......

一个yuanbeth
今天
6
0
总结

一、设计模式 简单工厂:一个简单而且比较杂的工厂,可以创建任何对象给你 复杂工厂:先创建一种基础类型的工厂接口,然后各自集成实现这个接口,但是每个工厂都是这个基础类的扩展分类,spr...

BobwithB
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部