桌面软件如何连接串口?

位置:首页 / 新闻中心 / 新框架教程

新框架教程 Admin 2024-03-26 17:20:21 457

前提:必须通过木子天禾打包网页的桌面exe软件才可以

1. 在JS代码里引用SerialPort类 (需要打包的时候勾选启用api)

const SerialPort = HTMLPackHelper.getSerialPort().SerialPort;

2. 详细使用的细节参考 “串口通信的html代码例子.html” 文件

3. 串口类移植于node serialport, 官方英文文档: https://serialport.io/docs/10.x.x/guide-usage

4. 一些可以参考的中文文档: 

https://www.cnblogs.com/reachteam/p/17696071.html

https://blog.csdn.net/Naisu_kun/article/details/125146766


连接DEMO如下:

<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>


以上就是“桌面软件如何连接串口?”的详细内容,更多请关注木子天禾科技其它相关文章!

15934152105 扫描微信