为H5浏览器添加串口操作能力

概述

 在浏览器操作串口方式有多种,其中最为简单的方法是使用IE浏览器,然后使用ActiveX控件(mscomm.ocx)来进行串口操作;对于Chrome以及FireFox,可以NPAPI来进行串口操作。本文章,展示一种支持所有H5浏览器的思路——websocket实现。
 接下来简单展示其实现思路。

需求

需求列表

表1.需求列表

概要设计

概念架构

在这里插入图片描述

图1. 概念架构

 如上图所示,实现H5监听串口的方法便是在本地运行一个支持websocket的HTTP服务,通过该服务对串口进行访问。

关键流程

  • 发送数据

在这里插入图片描述

图2. 数据发送流程
  • 接收数据

在这里插入图片描述

图2. 数据接收流程

接口设计

串口枚举

请求数据:

{"type":"enum"}

JSON返回:

["COM1","COM2"]

打开串口

请求数据:

{"type":"open","serial_name":"COM1"}

JSON返回:

{"success": true, "message":"打开串口成功"}

 打开串口成功后,在服务端会存储串口与当前websocket连接会话的对应关系,在后续操作中,都会使用该对应关系来确认数据来源/去向。

写入数据

 写入数据采用16进制字符串进行编码。
请求数据:

{"type":"send","data":"010203040506070809"}

JSON返回:

{"type":"send","success": true, "message":"写入数据成功"}

监听数据回调

 当串口返回数据时,通过websocket向浏览器页面推送数据,数据内容用16进制字符串进行编码。
JSON数据:

{"type":"data", "data":"010203040506070809"}

关闭串口

请求数据:

{"type":"close"}

JSON返回:

{"success": true, "message":"关闭串口成功"}

 串口关闭后,服务端的会话与串口的对应关系将被解除,同时服务端会关闭串口。

详细设计

实现

基于boost的服务器实现

开源中国
Github

GO语言实现 - 待完成

Python实现-待完成

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值