当前位置: 首页 > article >正文

实现一个可配置的TCP设备模拟器,支持交互和解析配置

前言

        诸位在做IOT开发的时候是否有遇到一个问题,那就是模拟一个设备来联调测试,虽然说现在的物联网通信主要是用mqtt通信,但还是有很多设备使用TCP这种协议交互,例如充电桩,还有一些工业设备,TCP这类报文交互的可读性比较差,在做服务端开发的时候只能自己写写模拟的报文,还有那么多的报文,每个又不太一样,有些还又臭又长,眼睛都看花了。。

        我时常在想,有没有一个TCP协议的设备模拟器,我把报文格式定义好,包括每个字段多少个字节,是Ascii,Bin,BCD还是时间格式,然后设备就会按着这个模板发送和解析,最好还有报文配对的功能,类似请求响应模型,收到A报文会回复B报文,那测试起来就方便了,还可以模拟多个设备做一下压测,这就很巴适了~~

        说干就干。

Wails

        一开始在纠结使用web还是桌面应用,考虑到这是个工具,还是随时点开能用最好,所以选择使用跨桌面应用开发框架,最好支持window和mac,因为java做太重了,所以最终选择了wails,用go语言做服务端,以下是官网的一些介绍:

        wails官网:https://wails.io/zh-Hans/

        Wails 是一个可让您使用 Go 和 Web 技术编写桌面应用的项目。

        将它看作为 Go 的快并且轻量的 Electron 替代品。 您可以使用 Go 的灵活性和强大功能,结合丰富的现代前端,轻松的构建应用程序。

应用规划

协议定义

        每种TCP协议基本都有基础的外层格式,如固定头,数据长度,数据域,校验帧等信息,所以这里想对协议的外层先做定义,让后对动态部分的报文再做二次定义,这样就组成一个完整的报文了。以下是协议定义的截图

报文交互

        这部分内容是对每个帧的详细描述,例如是主动上报还是被动响应,对应的配对报文是哪个,主动上报的话每个字读的数据访问时多少,对于递增类的数据增速步长时多少等。

设备管理

         这部分主要是添加设备和查看设备的日志,因为想方便后面做一些压测,所以做了多设备的添加和管理,并支持点开具体设备查看日志方便调试

结束语 

        系统目前开发接近尾声了,有兴趣的同学可以一起交流一下,联系信息:1247854621@qq.com


http://www.kler.cn/a/411738.html

相关文章:

  • 学习Java的日子 Day56 数据库连接池,Druid连接池
  • 电商项目高级篇06-缓存
  • 对比C++,Rust在内存安全上做的努力
  • SycoTec 4060 ER-S德国高精密主轴电机如何支持模具的自动化加工?
  • 【STM32】在 STM32 USB 设备库添加新的设备类
  • 菊风视频能力平台开发服务正式入驻华为云云商店,成为华为云联营联运合作伙伴
  • Linux下环境基础开放工具
  • 林业产品推荐系统:Spring Boot解决方案
  • flink学习(7)——window
  • 基于SpringBoot+Vue的智慧社区网站-无偿分享 (附源码+LW+调试)
  • 企业后端多租户管理平台
  • Redis底层数据结构
  • c++音视频学习环境搭建
  • 如何还原 HTTP 请求日志中的 URL 编码参数?详解 %40 到 @
  • 全渠道供应链变革下“小程序 AI 智能名片 S2B2C 商城系统”的赋能与突破
  • Jmeter中的测试片段和非测试原件
  • 网络安全加解密原理
  • Springboot项目搭建(5)-前端注册界面
  • 十九:HTTP包体的传输方式(2):不定长包体
  • Vue 中父子组件间的参数传递与方法调用
  • sed awk 第二版学习(十一)—— 交互式拼写检查器 spellcheck.awk
  • uni-app 发布媒介功能(自由选择媒介类型的内容) 设计
  • Testbench仿真脚本编写指北
  • 机器学习周报(11.18-11.24)
  • C++:final 关键字用于阻止类被继承或阻止虚函数被进一步重写
  • Node.js笔记(三)局域网聊天室构建1