Bittly 是一个支持多种通讯方式或通讯协议的通讯调试工具。 支持串口,网络,蓝牙,HTTP,Websocket,MQTT以及Modbus。 支持通过指令绑定快速实现上位机控制面板。支持针对通讯指令进行自动化测试并输出测试报告。
指令调试界面布局
布局说明:
模块
:功能模块菜单用于切换当前工作区域的功能内容。 目前该菜单包括指令管理,面板绘制,测试管理,环境变量以及项目管理。指令目录
:用于管理保存的指令列表,支持文件夹和拖拽管理。点击指令后将会在右侧工作区打开指令详情用于进行调试操作。打开的指令列表
:显示当前已打开的指令列表,可通过邮件来快速关闭其他指令,也可通过点击x
图标关闭当前。通过点击Tab标签来进行指令之间的切换操作。通讯配置
: 通讯配置区域用于配置各种通讯的参数信息,第一个下拉框用于选择通讯方式,例如串口,网络,蓝牙等。 在选择完成通讯方式后,即可配置对应的通讯参数,例如串口号,通讯速率等, 根据通讯方式的不同,所需要配置的通讯参数也不同。参数构建
:参数构建区域用于构建请求参数,通过上方的单选按钮进行选择参数的构建模式。- HEX模式 :用于快速构建十六进制请求参数内容, 例如 :
01 02 03 AA BB CC
- 文本模式:用于快速构建文本请求参数内容,例如:
how are you
- 文件模式:用于将一个文件作为请求参数进行发送,支持逐行发送或逐字节发送以及全文发送三种模式。
- 表单模式:用于快速创建比较复杂的请求参数,通过指定数据类型自动构建请求数据,无需手动进行进制转换或大小端处理。
- HEX模式 :用于快速构建十六进制请求参数内容, 例如 :
响应查看
:支持多种方式查看响应内容,便于观察和分析响应数据。- 数据流: 数据流模式将会记录每次发送和接收的数据内容,并通过列表的方式显示出来,可点击列表条目查看完整响应内容。
- 文本:将响应内容解析为文本并显示。
- HEX:将响应内容转换为十六进制字符串并显示。
- 格式化:通过配置数据类型和长度来自动解析和转换接收到的数据。
- 绘图:将数据通过指定的解析方式进行解析并通过折线图的方式显示。
活跃连接列表
:显示所有当前已经连接的设备或服务,可通过x
图标断开指定的连接。
控制面板界面布局
布局说明:
面板列表
:每个项目可以创建任意多个控制面板,面板直接可以通过点击的方式进行切换。面板控制
: 显示当前面板名称,以及切换日志,变量列表的显示状态。 或者切换面板的工作模式。 切换到编辑模式可编辑面板组件。面板组件区域
:面板组件区域用于显示该面板的所有组件,该区域可在编辑模式中通过拖拽的方式自由定义组件以及组件的工作模式。变量列表
:变量列表用于显示当前面板的所有变量取值,可通过面板控制区域的变量
按钮来进行切换显示与关闭状态。指令日志区域
:显示当前面板通讯日志,可通过面板控制区域的日志
按钮来进行切换显示与关闭状态
Bittly 数据发送可通过新建指令TAB或者从左侧目录中打开一个指令来进行操作。
操作步骤说明:
- 选择通讯方式, 根据需要选择需要进行通讯的类型,例如串口,网络或其他类型。
- 通讯方式选择完成后,通讯配置会根据所选择的通讯方式显示出需要配置的参数内容。例如此处选择为
WebSocket
方式,则需要配置连接的服务器地址。 - 发送请求,当请求参数配置完成后即可点击发送按钮发送数据。如果请求连接没有建立,则会先建立连接然后再进行发送操作。如果连接已经存则会直接发送请求内容。
- 请求参数构建模式,选择适合的请求参数构建模式,例如,当请求参数比较简单时, 可选择文本或者HEX模式,如果参数比较负责则可以选择表单模式进行快速构建。
- 请求参数构建,这里以表单模式为例, 根据文档要求的数据类型来进行数据内容构建。名称列用于说明该属性名称,类型用于说明该属性数据类型,取值列用于编辑该属性取值。描述列用于扩展说明该属性,例如取值范围或者其他必要说明。
- 响应查看模式用于选择合适的响应数据查看方式,例如:
- 当发送和接收频率比较多,请求内容比较简单时,可使用数据流模式来查看内容交互;
- 当数据为文本内容时,可使用文本模式查看响应文本;
- 当数据为二进制数据时,也可以使用HEX模式查看响应数据的十六进制内容;
- 当数据内容比较复杂,但是属于可解析的结构化数据时,可采用格式化模式自动解析响应内容;
- 也可以指定或者自定义解析模式来解析数据,并渲染为折线图。
- Bittly 数据格式化与解析
- 当请求内容比较复杂的时候,通过手动创建二进制数据就变得十分棘手,现在我们可以通过 Bittly 来改变这种情况。
- 请求参数构建
- 例如,我们以Modbus协议中读取数据为例, 在文档中要求我们传递的参数如下:
- 则我们我们可以使用表单来进行创建该结构:
名称
:用于标记该属性的名称类型
:指定该属性的数据类型,支持的数据结构如下:字节(uint8)
,单字节整型(int8)
,字符(int8/char)
,无符号字符(uint8)
,短整型(uint16)
,无符号短整型(int16)
,整型(int32)
,无符号整型(uint32)
,长整型(int32)
,无符号长整型(uint32)
,长长整型(int64)
,无符号长长整型(uint64)
,单精度浮点型
,双精度浮点型
,字符串
,字节数组
,文件
。取值
:编辑属性取值。- 当属性为无符号数据时,可以指定取值格式为
二进制(BIN)
,八进制(OCT)
,十进制(DEC)
或十六进制(HEX)
, 并且在数据发送时自动进行转换操作。 - 可以使用占位符
{{env.name}}
来使用环境变量中的数据,例如有环境变量测试=YES
, 则在数据发送时{{env.测试}}
会被替换为YES
。 - 可以使用占位符
{{name}}
来使用脚本中的变量,例如在脚本中执行$this.variableSet("变量","HELLO");
则{{变量}}
在发送时会被替换为HELLO
- 可以使用状态占位符
{{status.name}}
来使用指令状态中的值, 例如存在状态COUNT=1
, 则{{status.COUNT}}
在发送时会被替换为1
- 可以使用
{{@func()}}
来执行快速调用的函数,例如上图中{{@crc16modbus($1,$2,$3,$4)}}
则会在发送时,调用crc16modbus
函数,并将前四个属性作为参数执行该函数,最后讲函数结果作为数据发送出去。
- 当属性为无符号数据时,可以指定取值格式为
描述
: 用于备注并说明属性。- 数据响应解析
- 当 Bittly 收到响应内容后,我们可以配置响应数据的格式化方式,如下:
- 这样配置完成后,以后再次执行将会自动进行解析操作。
- 其中:
名称
: 用于说明响应属性的名称类型
: 指定响应属性的数据类型, 支持的数据类型如下:字节(uint8)
,单字节整型(int8)
,字符(int8/char)
,无符号字符(uint8)
,短整型(uint16)
,无符号短整型(int16)
,整型(int32)
,无符号整型(uint32)
,长整型(int32)
,无符号长整型(uint32)
,长长整型(int64)
,无符号长长整型(uint64)
,单精度浮点型
,双精度浮点型
,字符串
,字节数组
; 对于不定长数据,例如字符串和字节数组,则需要指定数据长度。取值
: 用于显示解析后的数据结果,当数据类型为无符号时,可指定其数值进制类型。描述
: 用于备注属性其他信息。- Bittly 的数据绘图分析
- Bittly 支持根据响应数据来绘制折线图,例如:
- 当前解析方式支持以下几种:
[num] [num]CRLF
:该解析方式为固定格式,即响应数据为[num] [num]CRLF
的格式,例如 :1 2 3rn4 5 6
,则其中1,2,3为第一个频道, 第二个频道以及第三个频道的第一个数据, 4,5,6为第二个数据。数据帧
:数据帧格式支持配置帧头,帧尾,数据长度,数据类型,以及频道数量矩阵
: 矩阵格式是讲所有响应数据作为解析数据,通过指定数据格式和频道数量来进行解析格式化数据
: 格式化数据是讲已经配置好的格式化解析方式作为模板来进行数据解析,并支持进绘制指定属性的数据。如上图所示。自定义解析
: 支持自定义解析脚本来进行数据解析。
Bittly 的控制面板
当需要频繁执行多条指令时,来回切换指令TAB就变成了一个比较麻烦的事情,这样我们可以通过讲需要执行的指令绑定到按钮,或者滑动条组件来实现快速的执行多条指令,而省却切换TAB的操作。并且通过面板可以更加方便的实现一个模拟的上位机控制面板。
运行模式
如上图所示,当面板编辑完成时,即可切换到运行模式进行操作。
在运行模式中, 可以点击上方的 日志
按钮来展开该面板运行的过程中的通讯日志,来查看响应的指令执行情况。
点击上方的,变量
按钮来查看当前面板中的变量数据。
编辑模式
编辑模式用于编辑该面板的内容,例如面板中应该包含哪些组件,需要哪些变量等。我们以按钮为例来添加一个组件:
0x01. 拖拽按钮到面板的合适位置
0x02. 绑定指令并解析响应内容到变量,完成后点击确定按钮关闭配置
0x03. 回到运行模式运行
这样就完成了指令绑定以及变量的绑定,其他组件操作与此类似。
Bittly 的自动化测试
单元测试
您可以使用 Bittly 来针对指令进行自动化测试,如上图所示,您可以选中您需要测试的指令,然后在右侧工作区中点击 创建测试用例
按钮来创建一个针对该指令的测试用例。
测试用例通过指定请求参数和期待响应内容来进行工作, 在执行时,测试用例发送配置好的请求参数,在收到响应内容后,与期待响应内容进行对比,如果对比成功,则测试通过,否则该测试失败,其执行流程图如下:
评论列表(284条)
牛年
感谢分享,学习
学习
不错
学习学习111学习222
学习学习
@帝降子兮:111
学习学习
相互学习,共同进步
潇洒打算
学习
学习一下
Modbus Slave Emulator
学习学习学习一波
6
很好
666
试试看
厉害
666厉害
@匿名:123
1234567
看起来很好
@辉:123
@匿名:123
学习了
学习
下载
1
学习一下
111111
666
555
下载学习
@框吉:555
@框吉:555
@框吉:555
@框吉:1*555
@框吉:1′”
@框吉:0111