日韩欧美人妻无码精品白浆,www.大香蕉久久网,狠狠的日狠狠的操,日本好好热在线观看

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

HTML一鍵打包EXE串口功能介紹

admin
2025年6月23日 23:45 本文熱度 622

HTML一鍵打包EXE軟件(HTML轉(zhuǎn)EXE) 支持將Web前端項(xiàng)目轉(zhuǎn)換為Windows平臺(tái)下的獨(dú)立可執(zhí)行程序(EXE),適用于Windows 7及以上系統(tǒng),無(wú)需額外配置系統(tǒng)環(huán)境, 軟件包含多種內(nèi)核, 包括IE內(nèi)核, Chrome內(nèi)核, 以及WebView2(永久免費(fèi)), 適用于不同的使用場(chǎng)景. 

本文主要對(duì)串口API進(jìn)行介紹, 詳細(xì)說(shuō)明如何使用HTML一鍵打包EXE文件支持串口連接等功能。

什么是串口

首先簡(jiǎn)單介紹下串口, 首先串口(Serial Port)是一種非常經(jīng)典的數(shù)據(jù)通信接口。它的核心特點(diǎn)是一位一位地順序傳輸數(shù)據(jù)(串行傳輸),這與同時(shí)傳輸多位數(shù)據(jù)的并行接口不同。雖然速度通常不快,但串口以其簡(jiǎn)單、可靠、成本低的優(yōu)勢(shì),在特定領(lǐng)域一直扮演著重要角色。

最常見(jiàn)的串口類(lèi)型是異步串口(比如電腦上曾經(jīng)的COM口)。它不需要專(zhuān)門(mén)的時(shí)鐘線,通信雙方依靠事先約定好的速度(波特率)和數(shù)據(jù)格式(如起始位、停止位)來(lái)同步數(shù)據(jù)。RS-232是早期最普及的標(biāo)準(zhǔn),而RS-485則因其使用差分信號(hào),抗干擾能力強(qiáng)、傳輸距離遠(yuǎn)(可達(dá)上千米),成為工業(yè)環(huán)境中的主力。

串口在我們?nèi)粘I钪凶畛R?jiàn)的使用常見(jiàn)便是一些刷卡設(shè)備, 通常使用串口連接計(jì)算機(jī)進(jìn)行通信, 可以方便的進(jìn)行用戶(hù)認(rèn)證等場(chǎng)景。

HTML轉(zhuǎn)EXE內(nèi)部支持了串口API, 如果需要使用, 可以在打包時(shí)勾選上 啟用API:

勾選后, 打包的網(wǎng)頁(yè)即可以使用串口相關(guān)的API了, 下面是一個(gè)完整的串口通信的HTML的例子, 它可以進(jìn)行串口連接, 發(fā)送數(shù)據(jù):

<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, baudRate9600autoOpenfalse });            if (port.isOpened) {                try {                    await port.close()                }                catch (err) {                    document.getElementById("textArea").value += '端口關(guān)閉失??!' + err.message + "\n";                    return;                }            }
            port.on('error'err => {                document.getElementById("textArea").value += '發(fā)生錯(cuò)誤: ' + err.message + "\n";            });
            port.on('data'data => {                document.getElementById("textArea").value += '收到數(shù)據(jù): ' + data + "\n";            });
            port.open(function (err) {                if (err) {                    document.getElementById("textArea").value += '端口打開(kāi)失敗: ' + err.message + "\n";                    return;                }                isOpened = true;                document.getElementById("textArea").value += '打開(kāi)端口成功' + "\n";            });

        }        async function sendData() {            const data = document.getElementById("data").value;            try {                port.write(data + "\n");                document.getElementById("textArea").value += '發(fā)送數(shù)據(jù)成功\n';            }            catch (err) {                document.getElementById("textArea").value += '發(fā)送數(shù)據(jù)失敗: ' + 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>串口名稱(chēng)</label>    <input id="portName" type="text"></input>    <button onclick="sendData()">發(fā)送數(shù)據(jù)</button>    <input id="data" type="text"></input></body></html>
把上面的文件保存到一個(gè)單獨(dú)的文件夾中, 然后用HTML一鍵打包EXE工具進(jìn)行打包, 打包生成的EXE文件如下:

此時(shí), 我們可以在打包生成的EXE中, 先點(diǎn)擊顯示所有串口信息, 即可列出當(dāng)前系統(tǒng)中的所有串口名稱(chēng), 此時(shí)我們?cè)诖虬蒃XE的下方, 輸入串口名稱(chēng)(例如COM4), 然后點(diǎn)擊連接串口, 即可對(duì)窗口進(jìn)行連接, 此時(shí)我們便可以發(fā)送數(shù)據(jù)了.

API詳解

打包的時(shí)候勾選啟用API, 即可在HTML頁(yè)面的任意位置調(diào)用串口通信API,進(jìn)行串口通信。示例代碼如下:

const SerialPort = HTMLPackHelper.getSerialPort().SerialPort;

獲得串口列表代碼:

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

上面的代碼可以打印出類(lèi)似如下的串口信息

COM1:Electronic Team Virtual Serial Port (COM1->COM2)COM2:Electronic Team Virtual Serial Port (COM2->COM1)
打開(kāi)COM1串口,并添加監(jiān)聽(tīng)事件,用于接收串口發(fā)到上位機(jī)的數(shù)據(jù)
const port = new SerialPort({ path"COM1"baudRate9600autoOpenfalse });
port.on('error'err => {  console.log('發(fā)生錯(cuò)誤: ' + err.message + "\n");});
port.on('data'data => {  console.log('收到數(shù)據(jù): ' + data + "\n");});
port.open(function (err) {  if (err) {    console.log('端口打開(kāi)失敗: ' + err.message + "\n");return;  }  console.log('打開(kāi)端口成功' + "\n");}); 

向COM1串口發(fā)送數(shù)據(jù)

try {  port.write("你好""\n");}catch (err) {  console.log('發(fā)送數(shù)據(jù)失敗: ' + err.message+'\n');}
以上便是串口功能的介紹。


閱讀原文:原文鏈接


該文章在 2025/6/24 10:48:34 編輯過(guò)
關(guān)鍵字查詢(xún)
相關(guān)文章
正在查詢(xún)...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專(zhuān)業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車(chē)隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類(lèi)企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷(xiāo)售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶(hù)的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

苹果大香蕉伊人在线| 亚洲av自拍图| 国产偷拍区| 久久伊人日韩老妇视频| 日激情免费视频| 大香蕉69精品视频 | 人妻电影基地| 国产视频精品一区二区三区| av小说在再线观看| 国产欧美在线一二| 艹艹影院 6高清| 日本不卡3区| 墨西哥av一区二区| 爽爽爽爽A片| 色亭亭五月天一区二区| 黑人在线视频精品一区| 久久精品在中山| 成年人在线免费观看网站美国日韩| 一区高清无码的| 日韩欧美23页| 亚洲精品一区123| 亚洲中文字幕九九在线| 欧美三区成人| 欧美人妻后入在线观看| 国产日产亚洲视频| 日韩在线视频二区不卡| 久久影院欧美一级黄| 日韩精品电影网站| 国产久久久久久久就| 欧美97com| 久久香蕉国产精品黄色电影一级毛片| 欧美一区二区三区人妖视频| 午夜福利网在线| 欧美浓毛大穴视频| 夜夜人妻夜夜爽一区二区三区| 国产高清四区| 亚洲第一综合网站-亚洲精品| 日本h久久片| 亚洲日韩不卡一区| 久久精品色浮熟妇丰满人妻3 | 久久亚洲精品20|