用html自己開發自己的串口TCP通訊調試軟體

  • 2021 年 4 月 29 日
  • 筆記

今天給大家介紹一個通訊工具,可以自己寫html頁面,自己寫Js腳本實現數據收發。
本程式在不斷完善中,請大家不要噴,多多理解,有意見只管提。

系列文章
概述
串口基礎功能
TCP客戶端收發
參數篇
串口快捷命令列表
api

介面

客戶端,本程式模擬客戶端

模擬服務端(這個是第三方的,後期本程式也會加入服務端功能)

功能說明

在html頁面中,也就是在網頁中開發串口或者TCP通訊工具,網頁不需要編譯,修改後刷新就可以顯示,所以非常方便。訂製性特彆強,使用者完全可以根據自己的需要訂製自己的調試工具。
支援串口數據收發,TCP客戶端數據收發等。

TCP客戶端

<body>
    <div>tcp測試客戶端</div>

    <input type="text" id="txtServer" value="127.0.0.1" />

    <input type="text" id="txtPort" value="60000" />

    <button onclick="conn()">連接</button>
    <button onclick="close()">斷開</button>
    <button onclick="sendData()">發送</button>
    <button onclick="recvData()">接收</button>
</body>
<script type="text/javascript">
    (async function () {
        await CefSharp.BindObjectAsync("tcpClientHelper");
        
    })();


    function conn() {
        (async function () {
            await CefSharp.BindObjectAsync("tcpClientHelper");
            var server = document.getElementById("txtServer").value;
            var port = document.getElementById("txtPort").value;
            console.log(server, port);
            await tcpClientHelper.conn(server, parseInt(port));

            //建立連接後發登錄
            await tcpClientHelper.sendData("383635333734303530363031353933");

            setTimeout("recvData()", 1000);
        })();
    }

    function close() {
        (async function () {
            await CefSharp.BindObjectAsync("tcpClientHelper");

            await tcpClientHelper.close();
        })();
    }

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

            await tcpClientHelper.sendData("313233");

            console.log('sendData');
        })();
    }

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

            let recvString = await tcpClientHelper.recvData();
            console.log('[' + recvString+ ']');
            if (recvString.trim() == '680100010068FFFFFFFFFFFF010100CE16') {
                console.log('ok 31');
                await tcpClientHelper.sendData('68 03 00 03 00 68 FF FF FF FF FF FF 81 01 00 01 AA BB B8 16');
            }
            else if (recvString.trim() == '680100010068FFFFFFFFFFFF020000552316') {
                console.log('ok 32');
                await tcpClientHelper.sendData('68 01 00 01 00 68 FF FF FF FF FF FF 82 01 00 FF 4E 16');
            }

            setTimeout("recvData()", 1000);
        })();       
    }  
</script>

串口

<body>
    <div>串口測試</div>
</body>
<script type="text/javascript">
    (async function () {
        await CefSharp.BindObjectAsync("serialPortHelper");

        await serialPortHelper.init();


        //setTimeout("changeState()", 1000);
    })();
  

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

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

            setTimeout("changeState()", 1000);
        })();       
    }  
</script>

文檔

完善中。。。

其他

下載地址

有其他需求或者使用上的問題,請加群討論。