用html自己开发自己的串口TCP通讯调试软件
今天给大家介绍一个通讯工具,可以自己写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>
文档
完善中。。。
其他
有其他需求或者使用上的问题,请加群讨论。

用html自己开发自己的串口TCP通讯调试软件的更多相关文章
- 关于网页实现串口或者TCP通讯的说明
概述 最近经常有网页联系我,反馈为什么他按我说的方法,写的HTML代码,无法在chrome网页中运行.这里我统一做一个解释,我发现好多网页并没有理解我的意思. 其实,要实现在HTML中进行串口或者TC ...
- 配置开发支持高并发TCP连接的Linux应用程序全攻略
http://blog.chinaunix.net/uid-20733992-id-3447120.html http://blog.chinaunix.net/space.php?uid=16480 ...
- .Net开发笔记(十五) 基于“泵”的TCP通讯(接上篇)
上一篇博客中说了基于“泵”的UDP通讯,附上了一个Demo,模拟飞鸽传书的功能,功能不太完善,主要是为了说明“泵”在编程中的应用.本篇文章我再附上一个关于TCP通讯的两个Demo,也都采用了“泵”模式 ...
- C#TCP通讯框架
开源的C#TCP通讯框架 原来收费的TCP通讯框架开源了,这是一款国外的开源TCP通信框架,使用了一段时间,感觉不错,介绍给大家 框架名称是networkcomms 作者开发了5年多,目前已经停止开发 ...
- 推荐一款开源的C#TCP通讯框架
原来收费的TCP通讯框架开源了,这是一款国外的开源TCP通信框架,使用了一段时间,感觉不错,介绍给大家 框架名称是networkcomms 作者开发了5年多,目前已经停止开发,对于中小型的应用场景,够 ...
- 基于QTcpSocket和QTcpServer的Tcp通讯以及QDataStream序列化数据
最近要在QT下开发Tcp通讯,发送序列化数据以便于接收. 这里涉及到几个问题: 1.QTcpSocket.QTcpServer的通讯 2.QDataStream序列化数据 多的不说,直接上干货!!! ...
- wp8使用Beetle.NetPackage实现基于TCP通讯的订单查询
在新版本的Beetle.NetPackage中提供了对Protobuf和Controller的支持,所以在WP8下使用Beetle.NetPackage进行基于TCP的数据交互则一件非常简单事情.下面 ...
- 异常和TCP通讯
第七章 异常处理 * 异常处理机制中的try-catch * 语法: * try{ * 代码片段 * }catch(XXXException e){ * 当try中的代码片段出现了XXXExcepti ...
- GCDAsyncSocket类库,IOS下TCP通讯使用心得
关于在IOS下使用Socket进行通讯的技术文章也许诺很久了,今日又是一个还债的日子,网上虽然很多介绍过AsyncSocket或GCDAsyncSocket的文章,但其实就那么一两篇大部分都是转载,于 ...
随机推荐
- Spring-04 Bean的自动装配
Spring-04 Bean的自动装配 Bean的自动装配 1.自动装配说明 自动装配是使用spring满足bean依赖的一种方法. spring会在应用上下文中为某个bean寻找其依赖的bean. ...
- 通达OA 前台任意用户登录漏洞复现
漏洞描述 通达OA是一套办公系统.通达OA官方于4月17日发布安全更新.经分析,在该次安全更新中修复了包括任意用户登录在内的高危漏洞.攻击者通过构造恶意请求,可以直接绕过登录验证逻辑,伪装为系统管理身 ...
- 记录一个在配置虚拟环境是遇到的错误(virtualenv)
原配置文件 export WORKON_HOME=~/Envs #设置virtualenv的统一管理目录 export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no- ...
- Jmeter 分布式架构和服务器性能监控解决方案
在对项目做大并发性能测试时,常会碰到并发数比较大(比如需要支持10000并发),单台电脑的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能来搭建分布式并发环境 . 一. ...
- C语言知识汇总,史上最全面总结,没有之一
C语言基础 C语言学习路线 C语言入门笔记 初识C语言 简单的C程序示例 我们编写的C代码是怎样跑起来的? 简单示例,VS2019调试C语言程序 C语言基础-数据类型 深入理解变量,变量的声明,定义, ...
- MyBatis的XML配置文件
属性(properties) 通过properties的子元素设置配置项: <properties> <property name="driver" value= ...
- P1303_A*B Problem(JAVA语言)
思路:BigInteger 三杀! //四行搞定 题目描述 求两数的积. 输入输出格式 输入格式: 两行,两个数. 输出格式: 积 输入输出样例 输入样例#1: 复制 1 2 输出样例#1: 复制 2 ...
- Hi3559AV100 NNIE开发(7) Ruyistudio 输出mobileface_func.wk与板载运行mobileface_chip.wk输出中间层数据对比
前面随笔讲了关于NNIE的整个开发流程,并给出了Hi3559AV100 NNIE开发(5)mobilefacenet.wk仿真成功量化及与CNN_convert_bin_and_print_featu ...
- 从两个模型带你了解DAOS 分布式异步对象存储
摘要:分布式异步对象存储 (DAOS) 是一个开源的对象存储系统,专为大规模分布式非易失性内存 (NVM, Non-Volatile Memory) 设计,利用了 SCM(Storage-Class ...
- js--如何实现继承?
前言 学习过 java 的同学应该都知道,常见的继承有接口继承和实现继承,接口继承只需要继承父类的方法签名,实现继承则继承父类的实际的方法,js 中主要依靠原型链来实现继承,无法做接口继承. 学习 j ...