最新要闻
- 奥赛康:股东拟减持公司不超1%股份|环球焦点
- 每日看点!李蓓回应基金封盘:宁肯选择维持第二梯队的规模并争取维持一流的业绩
- 小伙日行三万步逛杭州 “特种兵式旅游”致半月板损伤
- 国内一集装箱惊现三辆特斯拉新跑车:被遗弃13年-全球讯息
- 凌晨四点的淄博什么样?烧烤店老板凌晨抢肉:热闹非凡_今日聚焦
- 自媒体称4月份接2笔理想商单共计30万 李想:造谣、法务部出来干活|每日消息
- 官方晒蒂法8岁、13岁美术设定图 身着连衣裙天真烂漫
- 烟台高新区不断推进工程建设项目审批“应享尽享”水平 世界速看料
- 不愧是高端旗舰 RTX 4090游戏本性能爆棚:前提不差钱
- 高达12种!小米13成为史上颜色最多的小米手机
- 掀翻OLED!苹果自研MicroLED屏幕:进展顺利-每日速看
- 咋回事?董明珠1150万股格力股份遭冻结 市值约4亿元
- 对标拼多多?抖音推出“超便宜的小店”:试水低价电商|全球快看点
- 无锡市举办纪念五四运动 104周年主题团日活动
- 深圳:港澳青年在深创业个人最高可贷60万元
- 苹果联合创始人炮轰马斯克自动驾驶画饼:想死就买特斯拉!
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
今日热门!Vue3项目(Vite+TS)使用Web Serial Api全记录
前言
之前写了一个vue+django的一个通过串口控制的上位机系统。但是实际生产中,不如部署到服务器上,这样可以更好的节约成本。但是这样就需要弄一个客户端来控制处理串口信息。那我就在想能不能通过网页直接拿到客户端的串口信息。所以问了万能的chatgpt,得到了以下答案:是的,前端可以使用 Web SerialAPI直接与客户端机器的串口通信,而Diango只需要负责存储数据。当客户端机器发送数据时,前端可以将数据发送到 Diango服务器,Diango 服务器再将数据存储到数据库中。当需要读取数据时,前端可以从 Django服务器中获取数据并显示在页面上。所以我去研究了下Web Serial Api
一、什么是Web Serial Api
官方:https://wicg.github.io/serial/#open-methodWeb Serial API 是一个用于访问串行设备的 Web API,它允许 web 应用程序与串行设备(如 Arduino、传感器、GPS 接收器等)进行通信。使用 Web Serial API,你可以在 web 应用程序中读取和写入串行数据,就像使用本地应用程序一样。
(资料图)
Web Serial API 是由 W3C Web 原生设备和传感器工作组开发的,它已经成为标准的一部分,目前已经在主流浏览器中得到了支持,包括 Chrome、Edge、Firefox 和 Opera。
使用 Web Serial API,你可以在 web 应用程序中执行以下操作:
- 请求用户授权访问串行端口
- 打开和关闭串行端口
- 读取和写入串行数据
- 监听来自串行设备的数据
- 设置串行端口的参数,例如波特率、数据位、停止位、奇偶校验等。
Web Serial API 的优点在于它可以在没有任何插件或安装软件的情况下访问串行设备,因此它非常适合用于构建基于 web 的物联网应用程序。
二、vite项目运行在https协议
如果想使用Web Serial Api就需要把项目运行在https模式下其实可以简单验证下:
if ("serial" in navigator) { console.log("Web Serial API is supported!"); } else { console.log("Web Serial API is not supported!"); }
正常在http模式下是不成功的。
首先需要把项目在https模式运行,这里先用简单证书去处理。错误示范:
直接加--https运行时在https上 但是会报错:
这个时候需要自己获取SSL证书
Windows使用mkcert颁发证书及应用1、下载:
https://github.com/FiloSottile/mkcert/releases/tag/v1.4.4
在下载好的文件下
打开cd 找到文件 输入mkcert-v1.4.3-windows-amd64.exe -install(根据你实际包来)
这个时候我们就看到2个pem文件了
Vite配置
把上面生成的两个文件放到项目根目录keys文件夹在vite.config.ts中修改为(请根据情况按需修改):
import*asfsfrom"fs"importpathfrom"path"// https://vitejs.dev/config/exportdefaultdefineConfig({ plugins:[vue()], resolve:{ alias:{ "@":path.join(__dirname, "src") } }, server:{ host:"192.168.149.1", port:8080, open:true, https:{ key:fs.readFileSync(path.join(__dirname, "key/install-key.pem")), cert:fs.readFileSync(path.join(__dirname, "key/install.pem")), }, },})
选择高级这样我们的项目就运行在
这样就解决了这个问题。
三、Web Serial Api简单使用
串口的选择
<script> const port = await navigator.serial.requestPort(); await port.open({baudRate:9600}); const reader = port.readable.getReader();</script>
串口接受消息
// 提示用户选择一个串口const port = await navigator.serial.requestPort();await port.open({baudRate:9600});const reader = port.readable.getReader();let buffer = ""; // 缓冲区// 监听来自串口的数据while (true) { const { value } = await reader.read(); if (value) { const textDecoder = new TextDecoder("utf-8"); const str = textDecoder.decode(value); buffer += str; // 将读取到的数据添加到缓冲区中 // 判断缓冲区中是否存在完整的数据包 const completePacketIndex = buffer.indexOf("\n"); if (completePacketIndex !== -1) { const completePacket = buffer.substring(0, completePacketIndex); buffer = buffer.substring(completePacketIndex + 1); // 处理完整的数据包 console.log(completePacket); } }}
串口发送消息
const writer = port.writable.getWriter(); const data = new Uint8Array([104, 101, 108, 108, 111]); // hello setInterval(async () => { await writer.write(data); }, 2000);
关键词:
今日热门!Vue3项目(Vite+TS)使用Web Serial Api全记录
【快播报】抓住医院信息集成平台建设核心诉求
奥赛康:股东拟减持公司不超1%股份|环球焦点
世界黄金协会:一季度黄金总需求同比增长1% 央行购金仍可能成为今年支撑黄金需求的基石
每日看点!李蓓回应基金封盘:宁肯选择维持第二梯队的规模并争取维持一流的业绩
小伙日行三万步逛杭州 “特种兵式旅游”致半月板损伤
国内一集装箱惊现三辆特斯拉新跑车:被遗弃13年-全球讯息
凌晨四点的淄博什么样?烧烤店老板凌晨抢肉:热闹非凡_今日聚焦
自媒体称4月份接2笔理想商单共计30万 李想:造谣、法务部出来干活|每日消息
官方晒蒂法8岁、13岁美术设定图 身着连衣裙天真烂漫
网盘教育专享版,助力高校信息化和科研
环球信息:基于原子范数的深度展开网络实现
天天看热讯:Apache 配置https虚拟主机
世界快看点丨到底什么是小程序插件?
天天报道:如何不显示我的电脑、回收站等图标?
烟台高新区不断推进工程建设项目审批“应享尽享”水平 世界速看料
不愧是高端旗舰 RTX 4090游戏本性能爆棚:前提不差钱
高达12种!小米13成为史上颜色最多的小米手机
掀翻OLED!苹果自研MicroLED屏幕:进展顺利-每日速看
咋回事?董明珠1150万股格力股份遭冻结 市值约4亿元
对标拼多多?抖音推出“超便宜的小店”:试水低价电商|全球快看点
无锡市举办纪念五四运动 104周年主题团日活动
【天天速看料】Java基础学习之大数字处理相关的类有哪些?
将Windows系统设置NTP服务器-NetTime篇
金仓数据库字符串分割函数_天天速看料
深圳:港澳青年在深创业个人最高可贷60万元
苹果联合创始人炮轰马斯克自动驾驶画饼:想死就买特斯拉!
李佳琦面试75岁奶奶主播引围观:老人直呼为推广国货努力 这是国家自信
环球即时:调试器是个大骗子!
快速高效的C#FTP文件传输库FluentFTP|全球速讯
开心档之MySQL 导入数据-焦点报道
开封市通许县四所楼镇:让社情民意联络点当好民声传话筒|全球快讯
支持华为HMS服务!酷比魔方Pad 50Pro发布 首发899元
世界热点评!陌陌被苹果下架 官方回应:技术问题正解决 老用户不影响
这五一超20万人去淄博:鲁C变身网红旅游名城_快资讯
当前讯息:怎么看?老人欲插队被服务员严词拒绝:前有插队婆孙被网曝 还被做车贴很恶心
功能不成熟 马斯克推特直播秒变马赛克 网友吐槽:8-Bit埃隆_世界新要闻
今年全国快递业务量突破400亿件
常用的热门 API 汇总 环球热推荐
即时看!jasperreport开发手册--ireport教程
世界百事通!什么是EMR?为什么要以电子病历(EMR)为核心,建设医院信息集成平台?
安全验证必备——语音验证码短信 API 当前快看
火山引擎 DataTester 上线全新 MAB 智能调优实验
坎普斯boss怎么打_坎普斯怎么打_当前快讯
一机多用:劲能电钻/电动螺丝刀39元起(100元大额券) 每日速递
【天天热闻】向华为供货740万块硬盘 被重罚3亿美元!希捷:已和解并开始付罚金
当前观点:特斯拉公共充电桩功率仅23KW 比亚迪车主一度愧疚:把人家功率吸走了
又一五菱神车!宝骏悦也5月15日首发:车尾背个“大手表”
iPhone平均售价越来越高了!Pro和Pro Max最受果粉喜爱
当前短讯!浙江师范大学2023年硕士研究生复试录取办法
seventeen是哪个公司?seventeen在韩国是几线?seventeen有几个人?
冰淇淋和冰激凌区别是什么?明胶在冰淇淋中的作用是什么?
厨师的高帽子叫什么?为什么厨师要戴白色高帽子?
梦华录里的西京是哪里?梦华录是在哪些地方取景?
富士山在日本的哪里?富士山是私人的吗?富士山为什么是私人的?
boot priority是什么意思?boot priority怎么设置?
小米3s什么时候上市的?小米3s参数配置
百度网盘邀请码怎么使用?百度网盘邀请码大全
辽篮回沈阳!全员餐厅吃饭,张镇麟狂笑,莫兰德搞怪,回去仍加练-今亮点
centos7安装oracle11g11.2.0.4.0
【解决办法】三层交换机通过静态路由和接口互联,实现不同VLAN间通信的两种方法
ES全文检索,Neo4J,activiti审批流的知识库管理系统
thinkpad扩展坞接口怎么用?thinkpad的扩展坞有什么用?
移动磁盘无法写入文件怎么回事?移动磁盘无法写入文件怎么解决?
调查显示:电影“五一”档女性观众购票用户首次突破六成
699元 70迈4K旗舰行车记录仪A810发布:首发索尼IMX678_环球热头条
祝融号有重大发现:火星低纬度存在液态水
联想小新K3机械键盘发布:199元 91键小而全
天天头条:国内油价有望怒跌超3毛!基本抵消掉第八轮的微涨4毛
热血又感人!海外影迷评《长空之王》:5岁儿子非常喜欢
有景区免费发冰棍,有景区一盘炒鸡蛋48元——记者调查五一小长假山西景区旅游现状
当前关注:Zabbix“专家坐诊”第190期问答汇总
Linux IMX6ULL RTC掉电不保存问题解决|全球快报
苏宁零钱宝在哪里查看_苏宁零钱宝 环球看点
小记者手抄报 赛场小记者手抄报
放心买吧!最新研究:电动车电池比车本身更耐用|天天微资讯
真我11系列来了:2亿新影像 支持多焦段无损变焦
视点!小米13 Ultra全新限量定制色成了!雷军称特别多人喜欢 非常意外
赔钱卖车?福特汽车加入价格战 电动车利润率-102%
7人吃自助4小时炫300多个螃蟹 还有四五十盒榴莲等:网友直呼厉害_环球热讯
『徐州味·旅游季』料足滋味长 天天热头条
ios证书免费分享
滚动:【财经分析】清洁能源基础设施REITs发展空间广阔 应高度重视项目前期培育
天天快看:3699元起!联想小新mini主机上市:13代酷睿标压处理器加持
全球快报:全球多地出现罕见高温!厄尔尼诺或将带来全球变暖新高峰
秒杀安卓所有!苹果发财报:iPhone全球卖爆 营收历史新高 库克感谢国人|全球焦点
环球即时:演员张智霖在线求华为Mate X3息屏显示长开 华为李小龙回应
世界今热点:政策多管齐下撬动农村大市场
工银国际对美联储5月FOMC点评:加息“暂停” 降息“未定” 环球实时
【财经分析】欧洲央行最激进的货币紧缩周期将进入尾声_焦点信息
今热点:厂里不签合同还扣工资
欧盟警告苹果不准加密USB-C接口:必须兼容安卓数据线/充电器 否则禁售-快报
vivo X90S曝光:处理器升级为天玑9200+ 安卓最强芯-新要闻
男子误把每月汇款当捐款 4年收到24万竟是工资引热议:专家喊话薪酬透明化
世界看点:学系统集成项目管理工程师(中项)系列17b_范围管理(下)
淄博鸭头小哥直播中气到落泪:被女粉骚扰 1天18万人逛仅卖6千元-观察
当前关注:孝敬父母事迹(关于孝敬父母的名言)
【解决方法】调整CRT终端窗口的配色,透明度,标题栏内容,并自定义配色
销量火爆!AMD 12nm Zen+锐龙APU重出江湖:专供中国 热推荐
注意!一种藏在厨房的致癌物 很多人都忽略了 天天关注