1.本机可以使用 串口虚拟串口程序

test.js
    //遍历获取串口名称
    var added = true;
    var onGetDevices = function(ports) {
        var newArr = [];
        for (var i = 0; i < ports.length; i++) {
            newArr.push(ports[i].path);
            var select = document.getElementById("selectch");
            if (i==0) {
                
            }else{
                select.options.add(new Option(newArr[i],newArr[i]));
            }
            
        }
        var chuankou = document.getElementById("selectch").value
        //chrome.serial.disconnect(connectionId,disConnet);
        chrome.serial.connect(chuankou, {
            bitrate: 9600
        }, onConnect);

}
    //获取串口设备名,并将串口设备信息当参数传入指定的onGetDevices函数
    chrome.serial.getDevices(onGetDevices);     
    //串口数据接收函数并将arraybuffer转16进制数组
    var onReceiveCallback = function(info) {
        console.log('received', info.data);
        if(info.data.byteLength != 7){
            arr =  new Uint8Array(info.data);
            var newArr = [];
            for( let i of arr ){
                newArr.push( i.toString(16));
            }
            console.log(newArr);
            if(newArr[5].length == 1){
                newArr[5]="0"+newArr[5];
            }
            if(newArr[6].length == 1){
                newArr[6]="0"+newArr[6];
            }
            var ka16 = newArr[5]+newArr[6]
            var kahao=parseInt(ka16,16)
            console.log('卡号:', kahao);
        }else{
            console.log("卡信息异常,请重刷")
        }

};

var connectionId;

var onConnect = function(connectionInfo) {
        if(typeof(connectionInfo)=="undefined"){
            console.log("串口连接错误,请选择其他串口")

}else{
        console.log(chrome.runtime.lastError, connectionInfo); //输出连接信息
        //chrome.serial.onReceive.addListener(onReceiveCallback);//指定串口数据接收函数
        connectionId = connectionInfo.connectionId;
        console.log(connectionId)
    }

};

var btn = document.getElementById("btn_submit")
btn.onclick =function(){
    var chuankou = document.getElementById("selectch").value
        //chrome.serial.disconnect(connectionId,disConnet);
        chrome.serial.connect(chuankou, {
            bitrate: 9600
        }, onConnect);
    }
    var read = document.getElementById("read")
    read.onclick =function(){
        if (added) {
        chrome.serial.onReceive.addListener(onReceiveCallback);//指定串口数据接收函数
        added=false
    }
    
    var buffer = new ArrayBuffer(6);
    var dataView = new DataView(buffer);
    dataView.setInt8(0, 0xaa);
    dataView.setInt8(1, 0x08);
    dataView.setInt8(2, 0x01);
    dataView.setInt8(3, 0x85);
    dataView.setInt8(4, 0x8C);
    dataView.setInt8(5, 0xBB); 
    chrome.serial.send(connectionId, buffer, function(){}); //发送数据
}
var disConnet = function(result){
    console.log(result)
}

html页面

<!DOCTYPE html>
<html>
 
<head>
    <title>serialportDemo</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    选择串口<select id="selectch">
            </select>
            <input  id="btn_submit" type="button" value="连接串口" >
    <div><input  id="read" type="button" value="读取卡信息" ></div>

</head>
 
<body>
<script src="test.js"></script>
</body>
 
</html>

Mainfest.json

{
    "app": {
        "background": {
            "scripts": ["background.js"]
        }
    },
    "manifest_version": 2,
    "name": "Performance Monitor",
    "version": "1.0",
    "description": "A performance monitor to show cpu and memory status.",
    "icons": {
        "16": "images/icon16.png",
        "48": "images/icon48.png",
        "128": "images/icon128.png"
    },
    "permissions": [
        "serial"
    ]
}

background.js

chrome.app.runtime.onLaunched.addListener(function() {
    chrome.app.window.create('main.html', {
        'id': 'main',
        'bounds': {
            'width': 542,
            'height': 360
        },
        'resizable': false,
        'frame': 'none'
    });
});

Chrome APP 操作读卡器串口相关推荐

  1. uniapp app蓝牙打印_编程器加装蓝牙串口模块与手机APP操作演示

    编程器加装蓝牙模块后,可以方便的使用手机查看打印信息,进入控制台执行各种串口命令.本款蓝牙串口APP具有保存打印信息.分享打印信息.设置字体大小.清除屏幕信息.进入控制台.发送串口命令.执行串口命令- ...

  2. uniapp app蓝牙打印_给编程器加装蓝牙串口模块,用手机APP操作打印信息进控制台...

    公众号回复[编程器]可下载蓝牙串口APP 专用蓝牙串口模块购买: https://item.taobao.com/item.htm?id=619731291566 编程器加装蓝牙模块后,可以方便的使用 ...

  3. 使用drawio进行画图真的很方便(WEB版/Chrome APP版/桌面版)

    要说画图,最好还是用纸和笔,所见即所得,还没有工具的学习成本,直接撸起即可.但是这是假象. 你觉得纸笔画图的学习成本和使用计算机工具画图的学习成本哪个高?计算机画图工具成本高是吧?其实不是. 你还记得 ...

  4. 基于APP Designer 实现串口数据监测功能App总结(2)——app设计

    本文具体介绍app设计的过程,该app接收的数据格式是16位整形数,分byte以字符方式打印.打印U16变量var,打印格式为 printf("%c%c\n",U8(var> ...

  5. MATLAB在app中扫描串口并在下拉菜单中显示

    MATLAB在app中扫描串口并在下拉菜单中显示 更新 背景故事 实现串口扫描 App中的操作 更新 经评论提醒,R2019已有现成APIhttps://ww2.mathworks.cn/help/m ...

  6. 串口输出换行_stm32初学者必会操作----usart串口调试工具

    stm32初学者必会操作----usart串口调试工具 今天笔者介绍stm32初学者必会的工具 usart的串口设备. usart很重要,可以传输数据,可以检查代码的错误位置,查看输出数据. 下图就是 ...

  7. AS下怎样录制APP操作生成Gif动态图

    本文主要讲解Android下怎样录制APP操作生成gif动态图. Android App开发完成后,我们希望录制个gif做个展示.视频也可以展示,但是它没有gif轻量简单省流量.所以这篇文章就是讲解下 ...

  8. Chrome DevTools 操作归纳

    目录 前言 1.打开开发者工具快捷键 2.在element 查看DOM节点 3. 实习编辑HTML 和 DOM (临时) 4.在console 中访问节点 5.给DOM断点调试(断点生效自能通过JS来 ...

  9. chrome app之创建第一个开发程序

    chrome app开发 一 概述 二 开发流程 第1步:创建清单 第2步:创建后台脚本 第3步:创建一个窗口页面 第4步:创建图标 第5步:启动您的应用 打开浏览器可扩展api选项 加载您的应用 执 ...

最新文章

  1. gis 大屏_胡中南:Web端GIS技术新进展 | (PPT+速记)
  2. 一步一步写算法(之prim算法 中)
  3. Design Pattern - Singleton(C#)
  4. 最新版安全狗打狗棒法
  5. CASE_01 基于FPGA的交通灯控制器
  6. 南京财经大学计算机专业读研,计算机考研报录比比较的院校:南京财经大学
  7. 记一次惨烈的电话面试题
  8. webpack的css样式文件加载依赖
  9. poj 2987 Firing (最大权 闭合 图)
  10. [2019杭电多校第五场][hdu6625]three arrays(01字典树)
  11. web版文件管理系统_临沂管家婆母婴版进销存软件产品特色
  12. centos7安装python3
  13. c语言编译器官网,C语言编译器app_c语言编译器app官网下载_c语言编译器手机版app-多特软件站安卓网...
  14. [TF进阶] 卷积神经网络
  15. 【Java基础】:类的概念,成员变量和局部变量,成员方法,构造方法与对象
  16. PreparedStatement操作Blob类型的变量报错
  17. 都说学3D建模赚钱,到底学了能做什么?
  18. tesseract -图像识别
  19. 自考计算机毕业论文答辩视频,自考毕业论文答辩的全过程
  20. Linux安装jdk,mysql,tomcat,redis和nginx

热门文章

  1. 【作废】Inventor 二次开发学习指南入门到精通(含Inventor最新二次开发教程下载)
  2. 炎炎夏日适合在屋里学习深度学习
  3. python 批量下载小说
  4. Android 10.0 SystemUI下拉状态栏UI定制化开发系列(十二)
  5. POJ 3627 Bookshelf (贪心)
  6. 基于Flask的web微信
  7. underscore随机数
  8. scanf() 与 scanf_s() 的区别
  9. 杭州站 · 参会指南 | 2018中国软件生态大会
  10. 百度地图API跨域问题解决