首页 > 其他分享 >HTML一键打包工具1.9.92更新发布, 支持串口通信,获取mac地址,自定义header等新功能

HTML一键打包工具1.9.92更新发布, 支持串口通信,获取mac地址,自定义header等新功能

时间:2023-10-07 17:11:18浏览次数:43  
标签:自定义 err value header HTML 串口 port 打包

HTML一键打包EXE工具(HTML封装EXE,桌件)是一款神奇的工具,它可以让您把任何HTML项目(网址)变成一个独立的EXE文件,无需安装浏览器和服务器,只要双击就能运行。无论您是想制作KRPano全景VR项目,还是想开发WebGL游戏项目(Egret游戏打包,Cocos游戏打包,RPG MV Maker游戏打包),或者是想创建课件打包,网址打包等,这款工具都能满足您的需求,让您轻松分享自己的作品.

 

 

HTML一键打包工具1.9.92更新


1. 新增获取Mac地址API

2. 新增自定义header的功能

3. 新增串口通信相关api

 

新功能介绍


 

1. 获取Mac地址API

打包的时候勾选启用API, 然后在HTML页面里,即可获取电脑的Mac地址信息: 

// 返回结果类似 0b:00:28:00:00:0c
window.HTMLPackHelper.getMac()

 

 

2. 自定义Header信息

打包首页,可以配置自定义Header信息,这样打包的网页里的所有请求都会带上这个Header信息

例如,可以设置Basic Auth的Header如下所示:

Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

 

3. 串口通信API

打包的时候勾选启用API, 即可在HTML页面的任意位置调用串口通信API,进行串口通信。示例代码如下:

const SerialPort = HTMLPackHelper.getSerialPort().SerialPort;

 

获得串口列表代码:

const ports = await SerialPort.list();
console.log(ports.map(port => port.path + ":" + port.friendlyName).join("\n"));

 

上面的代码可以打印出类似如下的串口信息

COM1:Electronic Team Virtual Serial Port (COM1->COM2)
COM2:Electronic Team Virtual Serial Port (COM2->COM1)

 

打开COM1串口,并添加监听事件,用于接收串口发到上位机的数据

const port = new SerialPort({ path: "COM1", baudRate: 9600, autoOpen: false });

port.on('error', err => {
  console.log('发生错误: ' + err.message + "\n");
});

port.on('data', data => {
  console.log('收到数据: ' + data + "\n");
});

port.open(function (err) {
  if (err) {
    console.log('端口打开失败: ' + err.message + "\n");return;
  }
  console.log('打开端口成功' + "\n");
}); 

 

向COM1串口发送数据

try {
  port.write("你好"+ "\n");
}
catch (err) {
  console.log('发送数据失败: ' + err.message+'\n');
}

 

一个完整的网页示例如下所示:

<html>

<head>
    <script>
        const SerialPort = HTMLPackHelper.getSerialPort().SerialPort;
        let port;
        let isOpened;
        async function showPorts() {
            let ports = await SerialPort.list();
            document.getElementById("textArea").value += ports.map(port => port.path + ":" + port.friendlyName).join("\n") + "\n";
        }
        async function openPort() {
            const portName = document.getElementById("portName").value;
            port = new SerialPort({ path: portName, baudRate: 9600, autoOpen: false });
            if (port.isOpened) {
                try {
                    await port.close()
                }
                catch (err) {
                    document.getElementById("textArea").value += '端口关闭失败!' + err.message + "\n";
                    return;
                }
            }

            port.on('error', err => {
                document.getElementById("textArea").value += '发生错误: ' + err.message + "\n";
            });

            port.on('data', data => {
                document.getElementById("textArea").value += '收到数据: ' + data + "\n";
            });

            port.open(function (err) {
                if (err) {
                    document.getElementById("textArea").value += '端口打开失败: ' + err.message + "\n";
                    return;
                }
                isOpened = true;
                document.getElementById("textArea").value += '打开端口成功' + "\n";
            });


        }
        async function sendData() {
            const data = document.getElementById("data").value;
            try {
                port.write(data + "\n");
                document.getElementById("textArea").value += '发送数据成功\n';
            }
            catch (err) {
                document.getElementById("textArea").value += '发送数据失败: ' + err.message+'\n';
            }
        }
    </script>
</head>

<body>
    <button onclick="showPorts()">显示所有串口信息</button>
    <div>
        <textarea id="textArea" style="width: 800px;height: 600px;"></textarea>
    </div>
    <br>
    <button onclick="openPort()">连接串口</button>
    <label>串口名称</label>
    <input id="portName" type="text"></input>
    <button onclick="sendData()">发送数据</button>
    <input id="data" type="text"></input>
</body>
</html>

 

 打包上面的网页即可实现一个简单的串口发送接收测试程序

 

最新版下载地址


 

使用说明文档: HTML网页/KRPano项目一键打包EXE工具(HTML网页打包成单个windows可执行文件exe)

下载地址: HTML一键打包EXE工具下载地址

 

标签:自定义,err,value,header,HTML,串口,port,打包
From: https://www.cnblogs.com/reachteam/p/17746771.html

相关文章

  • vue2自定义指令实现el-dropdown下拉菜单项最小宽度等于内容宽度
    //在main.js添加Vue.directive('siem-dropdown',function(el,binding,vNode){letul=el.querySelector("ul")letuid=vNode.componentInstance._uid;//获取下拉菜单实例的uidletsiemDropdownClass=`siem-dropdown-${uid}`;ul.cla......
  • openstack自定义ubuntu、centos镜像
     #镜像制作官网参考文档https://docs.openstack.org/image-guide/#这里仅演示centos镜像制作,ubuntu配置一样。也可以参考官方文档制作。#cloud-init:#cloud-init是linux的一个工具,需要在制作镜像时安装。当系统启动时,cloud-init可从novametadata服务或......
  • 串口打包长度与打包时间
    串口打包长度与打包时间 USR-WIFI232系列模块串口数据打包说明,串口是数据本身是无序的,一个字节一个字节的发送,网络数据一个包一个包发送,所有有了串口数据打包的问题。 WIFI232系列模块有三个打包选项,任一条件满足都会打包:1、打包时间间隔    即收到模块的最后一个字节......
  • DTU,RTU,边缘网关,串口服务器,IO控制器 等等的区别
    DTU,RTU,边缘网关,串口服务器,IO控制器  等等的区别 工业DTUData Transfer Unit数据传输单元,又名“数据传输单元、集中器、转换器、转发器”等,通常就是路由器、网关,支持多种工业协议如mqtt\iec101\modbus等协议有线输入,再用有线或无线向远端传送。当前联网系统,所有其他设备都......
  • idea自定义设置背景图片
      这样就设置完成了......
  • Minecraft个人服务器搭建自己的皮肤站并实现外置登录更换自定义皮肤组件
    Minecraft个人服务器搭建自己的皮肤站并实现外置登录更换自定义皮肤组件大家好,我是艾西有不少小伙伴非常喜欢我的世界Minecraft游戏,今天小编跟大家分享下Minecraft个人服务器怎么设置皮肤站。Minecraft皮肤站是什么?其实官网就有皮肤站,在正版用户选择正版的登录后,MC客户端就会到官方......
  • 自定义注解实现AOP
    自定义注解AOPpackagecom.log;importorg.aspectj.lang.JoinPoint;importorg.aspectj.lang.annotation.Aspect;importorg.aspectj.lang.annotation.Before;importorg.aspectj.lang.annotation.Pointcut;importorg.aspectj.lang.reflect.MethodSignature;importorg.s......
  • 自定义表单设计之六-行字段计算配置
    AddFormRowCal.aspx<htmlxmlns="http://www.w3.org/1999/xhtml"><headrunat="server"><title>行字段规则</title><scriptlanguage="javascript">functionsaveRole(){rowcalfrm......
  • Solidworks 文件属性、自定义属性傻傻分不清?究竟是“李逵”还是“李鬼”?
    在此记录学习Solidworks的历程一步一个脚印,道阻且长,慢慢走吧问题:为什么同一零件中两个位置的自定义属性不一样?究竟是“李逵”还是“李鬼”?举例:通过“程序-属性选项卡编辑器20XX”修改零部件的属性后,新建一个零部件,分别打开“文件-属性”与“任务窗口-零部件属性”,会发现两个......
  • uni自定义onBackPress事件
    onBackPress函数return非true以外的值都会执行默认的返回行为,只有returntrue才不会执行返回事件,所以在执行自定义事件时一定要返回truedata(){return{isConfirm:false,//处理返回逻辑};},methods:{onBackPress()......