html页面自己写js脚本收发数据,支持串口和TCP通讯(一)串口基础功能

9 篇文章 0 订阅
7 篇文章 1 订阅

实现基础的串口数据收发。

效果图

在这里插入图片描述
在这里插入图片描述

完整示例:

<body>
    <div>串口测试</div>
    <input type="text" id="txtPort" value="COM2" /><br />
    波特率:<input type="text" id="txtBaudRate" value="57600" />
    数据位:<input type="text" id="txtDataBits" value="8" />
    停止位:<input type="text" id="txtStopBits" value="1" />
    校验位:<input type="text" id="txtParity" value="0" />
    <button onclick="testOpen()">open</button>
    <button onclick="testClose()">close</button>
    <button onclick="sendData()">发送</button>
    <button onclick="recvData()">接收</button>
    <button onclick="startCyclicRecvData()">循环接收</button>
    <button onclick="stopCyclicRecvData()">取消循环接收</button>
</body>
<script type="text/javascript">

    var cyclicTimeId;
    (async function () {
        await CefSharp.BindObjectAsync("serialPortHelper");

        var portName = document.getElementById("txtPort").value;
        var baudRate = parseInt(document.getElementById("txtBaudRate").value);
        var dataBits = parseInt(document.getElementById("txtDataBits").value);
        var stopBits = parseInt(document.getElementById("txtStopBits").value);
        var parity = parseInt(document.getElementById("txtParity").value);
        await serialPortHelper.init(portName, baudRate, dataBits, stopBits, parity);
    })();

    function testOpen() {
        return (async function () {
            console.log('open');

            await CefSharp.BindObjectAsync("serialPortHelper");

            await serialPortHelper.open();
        })();
    }

    function testClose() {
        console.log('close');
        (async function () {
            await CefSharp.BindObjectAsync("serialPortHelper");

            await serialPortHelper.close();
        })();
    }

    function sendData() {
        (async function () {
            await CefSharp.BindObjectAsync("serialPortHelper");

            await serialPortHelper.sendData("313233");
        })();
    }

    function recvData() {
        (async function () {
            await CefSharp.BindObjectAsync("serialPortHelper");

            let recvString = await serialPortHelper.recvData();
            console.log('[' + recvString + ']');
        })();
    }

    function startCyclicRecvData() {
        cyclicRecvData();
    }

    function stopCyclicRecvData() {
        clearTimeout(cyclicTimeId);
    }

    function cyclicRecvData() {
        (async function () {
            await CefSharp.BindObjectAsync("serialPortHelper");

            let recvString = await serialPortHelper.recvData();
            console.log('-' + recvString + '-');
            if (recvString.trim() == '11') {
                console.log('ok');
                await serialPortHelper.sendData('22');
            }

            cyclicTimeId = setTimeout("cyclicRecvData()", 1000);
        })();
    }


</script>

解说

上面的参数的设置,下面是串品的打开,关闭和收发。所有功能都有。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大鹏展翅888

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值