JavaScript 扫描枪应用(一)

com.js为主要的代码实现,test.html文件为测试的页面,其中包括了com.js文件中方法的调用。以下为测试成功代码:

com.js

//com.js

/**

* 初始化MSComm1对象,并打开串口

*/

function initMSComm(){

document.write("");

document.write(" ");

document.write(" ");

document.write("");

document.write("");

document.write("");

document.write("");

document.write("");

document.write("");

document.write(" ");

document.write("");

document.write("");

document.write("");

document.write("");

document.write("");

document.write("");

document.write("");

document.write("");

document.write("");

if(MSComm1.PortOpen==false){

try{

MSComm1.PortOpen=true;

}catch(ex){

alert("com1端口打开失败:"+ex.message);

}

}

}

var mscomm_scan_value = "";

// 串口响应事件

function MSComm1_OnComm(callBackFunction){

switch(MSComm1.CommEvent){

case 2: //接收事件

if(mscomm_scan_value == "") {

mscomm_scan_value = MSComm1.Input;

// 定时读取缓存信息

setTimeout("getMSCommScanValue("+callBackFunction+")",300);

}

break;

default: alert("Event Raised!"+MSComm1.CommEvent);

}

}

function getMSCommScanValue(callBackFunction){

// 读取缓存中剩余的信息

while(MSComm1.InBufferSize > 0) {

mscomm_scan_value += MSComm1.Input;

}

// 执行页面传递过来的函数

callBackFunction(mscomm_scan_value);

// 清空当前读取信息

mscomm_scan_value = ""

}

test.html

JavaScript串口测试

// MSComm1控件每遇到 OnComm 事件就调用 MSComm1_OnComm()函数

MSComm1_OnComm(mscommCallBack)

function mscommCallBack(scanValue) {

var ewtm = document.getElementById("ewtm");

ewtm.value = scanValue;

}

initMSComm();

二维条码:

得出以上结果经过几次失败尝试,尝试内容如下:

1. 将test.html文件中的

// MSComm1控件每遇到 OnComm 事件就调用 MSComm1_OnComm()函数

MSComm1_OnComm(mscommCallBack)

段代码调整为:

window.onload = function() {

MSComm1.OnComm = MSComm1_OnComm;//采用其他方式取代闭包的实现过程

}

2. 在页面head的JavaScript代码中调用initMSComm方法,将Object标签对象添加到页面的一个div中,页面提示加载ActiveX控件,但是无法绑定OnComm事件响应。

3. 当MSComm1.CommEvent为7时表示接收结束,可是只能接收到状态为2的情况,所以无法采用状态为7时的响应事件。

4. 当initMSComm方法调用时,且MSComm1.CommEvent为2的情况下,判断MSComm1.inBufferCount为0时进行事件响应,可能是缓冲等多种原因(具体不太清楚),会导致inBufferCount出现多吃0的情况,所以没有办法使用,最终采用首次执行,定时获取的方式完成缓存内容的读取操作。

我的目的是通过一次方法调用,能够实现对象的加载,响应事件的绑定,以及接收结束执行响应事件操作。由于我对JavaScript不够熟练,所以没能够达到预期的目的,如果有更好的解决办法,希望大家能够给我留言。

js 条码枪扫描_JavaScript 扫描枪使用(一)相关推荐

  1. 条码软件即时打印扫描条码打印空白的处理方法

    使用条形码制作软件制作条码是非常基本的功能,最近有用户在使用条码软件的打印时输入功能时,出现扫描条码后打印空白的情况,这种肯定是不正常的,下面我们就来看一下该如何处理: 首先我们来看一下在中琅条码软件 ...

  2. 在js中调用微信的扫描二维码功能

    在js中调用微信的扫描二维码功能* 关键代码 <html> <head>`在这里插入代码片`<title>js调用微信扫一扫功能测试</title>&l ...

  3. JS获取扫码设备扫描到的值

    一.JS获取扫码设备扫描二维码或者条形码得到的值 扫码设备在扫码二维码或者条形码时,相当于将获取到的值连续并快速的按下对应的键盘按键. 看自己想要怎么获取扫码后的值,一个是实时监听,一个是通过主动触发 ...

  4. html5.js百度网盘,HTML5 Canvas+js仿百度网盘扫描文件过程加载动画

    HTML5 Canvas+js仿百度网盘扫描文件过程加载动画 这是一款简单的HTML5 Canvas+js仿百度网盘扫描文件过程加载动画效果,网盘文件扫描百分比加载动画特效. var w=docume ...

  5. 前端vue js 高德地图实现雷达扫描加载,借鉴百度地图等方法,采用Canvas解决雷达背景透明度问题,解决Canvas动态指针扫描造成浏览器卡顿问题

    前端vue js 高德地图实现雷达扫描加载,借鉴百度地图等方法,采用Canvas解决雷达背景透明度问题,解决Canvas动态指针扫描造成浏览器卡顿问题 经过3天的尝试,借鉴了好几个博客的思路,开发了一 ...

  6. 从入门到入土:基于Python|ACK|FIN|Null|Xmas|windows|扫描|端口扫描|scapy库编写|icmp协议探测主机|对开放端口和非开放端口完成半连接扫描|全连接扫描|

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

  7. IP地址扫描程序/扫描工具

    随着许多组织采用自带设备 (BYOD) 等策略,IT 网络变得越来越复杂.随着越来越多的设备连接到网络,IP 地址扫描势在必行,以确保设备在连接到网络时不会遇到问题.IP 地址扫描器是 OpUtils ...

  8. 在线cms识别|旁站|c段|信息泄露|cms漏洞扫描|端口扫描|

    工具 onlinetools Windows python3.7的版本是ok的,kali python3.8的版本还存在问题 可以尝试用3.7版本尝试 在线cms识别|旁站|c段|信息泄露|工控|系统 ...

  9. 二维码图片扫描 绘制扫描的图片的边框(Swift)

    二维码图片扫描 绘制扫描的图片的边框 (简单的添加一张图片来识别的没有访问相簿) 以后可能会加上 想知道的请关注一下 @IBAction func detectorQRCode() {// .1 获取 ...

  10. 安装Nessus工具完成对你的windows虚拟机进行扫描 生成扫描报告

    1.解压Nessus安装包 unzip 2.进入安装包进行安装,dpkg是用来安装deb软件包的命令,-i选项可以指定安装包的安装路径 3.开启服务8834端口 4.访问nessus页面https:/ ...

最新文章

  1. [kuangbin带你飞]专题六-生成最小树
  2. SpringBoot整合Swagger测试api构建
  3. 云宇宙iwemeta: 亚马逊全面进军元宇宙
  4. java.lang.NoSuchMethodError
  5. JavaScript基础02【强制类型转换(String Number Boolean) 其它进制数】
  6. linux终端帮助,Linux下的帮助命令
  7. html居右显示语言设置,iOS开发:纯代码设置UIButton文字居左或者居右显示
  8. vue锚点定位(代码通用) - 总结篇
  9. Dubbo面试 - Dubbo通信协议
  10. win7 未授予用户在此计算机上的请求登录类型,Win7提示未授予用户在此计算机上的请求登录类型...
  11. 电大 计算机网络 网考,2018-2019年最新电大《计算机网络(本)》网络核心课形考网考作业答案.docx...
  12. python字典有序还是无序_python--基础语法
  13. 计算机硬盘大小一般都是整数,电脑硬盘怎么精准整数分区
  14. Qt 中Socket编程实例
  15. 张亚勤退休百度:一个耐人寻味的微笑
  16. (附源码)springboot电影院售票与管理系统 毕业设计 011449
  17. 控制元素到达可视区域内触发动效
  18. 江南爱窗帘十大品牌 窗帘发展状况怎么样
  19. Typora:Typora快捷键
  20. 原生前端实现响应式个人简历网站设计(附源码)

热门文章

  1. mbedtls里面的rsa应用函数
  2. Windows10开启电脑卓越性能模式,运行速度提升10%,CUP利用率达到50%
  3. 跟着实例学eclipse插件开发--第一篇:翻译插件
  4. 教你轻松搞懂vue-codemirror的基本用法:主要实现代码编辑、验证提示、代码格式化
  5. php对接腾讯云直播
  6. 全自动高清录播服务器,全自动高清录播服务器 高清录播系统
  7. sap erp 消息服务器,九慧信息|SAP_SAP ERP_SAP系统_SAP s/4hana
  8. 教你如何真正玩转XP共享
  9. 配置vhost、https、重定向
  10. HTML标签img--改变图片尺寸