- 1. 指令debug界面布局
- 2. 控制面板界面布局
- 3. 运行模式
- 4. Edit模式
- 5. 单元测试
- 6. BittlyDownload
Bittly 是一个支持多种通讯方式或通讯协议的通讯Debug Tools。 支持串口,网络,蓝牙,HTTP,Websocket,MQTT以及Modbus。 支持通过指令绑定快速实现上位机控制面板。支持针对通讯指令进行自动化测试并输出测试报告。

指令debug界面布局

布局说明:
模块:Function模块菜单用于Switch当前工作区域的Function内容。 目前该菜单包括指令管理,面板绘制,测试管理,环境变量以及项目管理。指令目录:用于管理保存的指令列表,支持文件夹和拖拽管理。点击指令后将会在右侧工作区打开指令详情用于进行debugOperation。打开的指令列表:显示当前已打开的指令列表,可通过邮件来快速Close其他指令,也可通过点击x图标Close当前。通过点击TabTags来进行指令之间的SwitchOperation。通讯配置: 通讯配置区域用于配置各种通讯的参数信息,第一个下拉框用于选择通讯方式,例如串口,网络,蓝牙等。 在选择Complete通讯方式后,即可配置对应的通讯参数,例如串口号,通讯速率等, 根据通讯方式的不同,所需要配置的通讯参数也不同。参数构建:参数构建区域用于构建Request参数,通过上方的单选button进行选择参数的构建模式。- HEX模式 :用于快速构建hexadecimalRequest参数内容, 例如 :
01 02 03 AA BB CC - Text模式:用于快速构建TextRequest参数内容,例如:
how are you - 文件模式:用于将一个文件作为Request参数进行send,支持逐行send或逐bytesend以及全文send三种模式。
- 表单模式:用于快速创建比较复杂的Request参数,通过指定data type自动构建Requestdata,无需手动进行进制转换或大小端处理。
- HEX模式 :用于快速构建hexadecimalRequest参数内容, 例如 :
ResponseView:支持多种方式ViewResponse内容,便于观察和分析Responsedata。- data流: data流模式将会记录每次send和receive的data内容,并通过列表的方式显示出来,可点击列表条目View完整Response内容。
- Text:将Response内容Parse为Text并显示。
- HEX:将Response内容转换为hexadecimal字符串并显示。
- format化:通过配置data type和Length来自动Parse和转换receive到的data。
- 绘图:将data通过指定的Parse方式进行Parse并通过折线图的方式显示。
活跃connect列表:显示所有当前已经connectequipment或服务,可通过x图标断开指定的connect。
控制面板界面布局

布局说明:
面板列表:每个项目可以创建任意多个控制面板,面板直接可以通过点击的方式进行Switch。面板控制: 显示当前面板名称,以及Switch日志,变量列表的显示状态。 或者Switch面板的工作模式。 Switch到Edit模式可Edit面板组件。面板组件区域:面板组件区域用于显示该面板的所有组件,该区域可在Edit模式中通过拖拽的方式自由定义组件以及组件的工作模式。变量列表:变量列表用于显示当前面板的所有变量取值,可通过面板控制区域的变量button来进行Switch显示与Close状态。指令日志区域:显示当前面板通讯日志,可通过面板控制区域的日志button来进行Switch显示与Close状态
Bittly datasend可通过新建指令TAB或者从左侧目录中打开一个指令来进行Operation。

Operation步骤说明:
- 选择通讯方式, 根据需要选择需要进行通讯的Type,例如串口,网络或其他Type。
- 通讯方式选择Complete后,通讯配置会根据所选择的通讯方式显示出需要配置的参数内容。例如此处选择为
WebSocket方式,则需要配置connect的服务器address。 - sendRequest,当Request参数配置Complete后即可点击sendbuttonsenddata。如果Requestconnect没有建立,则会先建立connect然后再进行sendOperation。如果connect已经存则会直接sendRequest内容。
- Request参数构建模式,选择适合的Request参数构建模式,例如,当Request参数比较简单时, 可选择Text或者HEX模式,如果参数比较负责则可以选择表单模式进行快速构建。
- Request参数构建,这里以表单模式为例, 根据Document要求的data type来进行data内容构建。名称列用于说明该属性名称,Type用于说明该属性data type,取值列用于Edit该属性取值。描述列用于扩展说明该属性,例如取值范围或者其他必要说明。
- ResponseView模式用于选择合适的ResponsedataView方式,例如:
- 当send和receive频率比较多,Request内容比较简单时,可使用data流模式来View内容交互;
- 当data为Text内容时,可使用Text模式ViewResponseText;
- 当data为binarydata时,也可以使用HEX模式ViewResponsedata的hexadecimal内容;
- 当data内容比较复杂,但是属于可Parse的结构化data时,可采用format化模式自动ParseResponse内容;
- 也可以指定或者CustomizationParse模式来Parsedata,并渲染为折线图。
- Bittly data format化与Parse
- 当Request内容比较复杂的时候,通过手动创建binarydata就变得十分棘手,现在我们可以通过 Bittly 来改变这种情况。
- Request参数构建
- 例如,我们以Modbus协议中读取data为例, 在Document中要求我们传递的参数如下:
- 则我们我们可以使用表单来进行创建该结构:
名称:用于标记该属性的名称Type:指定该属性的data type,支持的data结构如下:byte(uint8),单byte整型(int8),字符(int8/char),无符号字符(uint8),短整型(uint16),无符号短整型(int16),整型(int32),无符号整型(uint32),长整型(int32),无符号长整型(uint32),长长整型(int64),无符号长长整型(uint64),单精度浮点型,双精度浮点型,字符串,byte count组,文件。取值:Edit属性取值。- 当属性为无符号data时,可以指定取值format为
binary(BIN),八进制(OCT),decimal(DEC)或hexadecimal(HEX), 并且在datasend时自动进行转换Operation。 - 可以使用占位符
{{env.name}}来使用环境变量中的data,例如有环境变量测试=YES, 则在datasend时{{env.测试}}会被替换为YES。 - 可以使用占位符
{{name}}来使用脚本中的变量,例如在脚本中执行$this.variableSet("变量","HELLO");则{{变量}}在send时会被替换为HELLO - 可以使用状态占位符
{{status.name}}来使用指令状态中的值, 例如existence状态COUNT=1, 则{{status.COUNT}}在send时会被替换为1 - 可以使用
{{@func()}}来执行快速调用的函数,例如上图中{{@crc16modbus($1,$2,$3,$4)}}则会在send时,调用crc16modbus函数,并将前四个属性作为参数执行该函数,最后讲函数结果作为datasend出去。
- 当属性为无符号data时,可以指定取值format为
描述: 用于备注并说明属性。- dataResponseParse
- 当 Bittly 收到Response内容后,我们可以配置Responsedata的format化方式,如下:
- 这样配置Complete后,以后再次执行将会自动进行ParseOperation。
- 其中:
名称: 用于说明Response属性的名称Type: 指定Response属性的data type, 支持的data type如下:byte(uint8),单byte整型(int8),字符(int8/char),无符号字符(uint8),短整型(uint16),无符号短整型(int16),整型(int32),无符号整型(uint32),长整型(int32),无符号长整型(uint32),长长整型(int64),无符号长长整型(uint64),单精度浮点型,双精度浮点型,字符串,byte count组; 对于不定长data,例如字符串和byte count组,则需要指定dataLength。取值: 用于显示Parse后的data结果,当data type为无符号时,可指定其numerical value进制Type。描述: 用于备注属性其他信息。- Bittly 的data绘图分析

- Bittly 支持根据Responsedata来绘制折线图,例如:
- 当前Parse方式支持以下几种:
[num] [num]CRLF:该Parse方式为固定format,即Responsedata为[num] [num]CRLF的format,例如 :1 2 3rn4 5 6,则其中1,2,3为第一个频道, 第二个频道以及第三个频道的第一个data, 4,5,6为第二个data。data帧:data帧format支持配置帧头,帧尾,dataLength,data type,以及频道quantity矩阵: 矩阵format是讲所有Responsedata作为Parsedata,通过指定data format和频道quantity来进行Parseformat化data: format化data是讲已经配置好的format化Parse方式作为模板来进行dataParse,并支持进绘制指定属性的data。如上图所示。CustomizationParse: 支持CustomizationParse脚本来进行dataParse。
Bittly 的控制面板
当需要频繁执行多条指令时,来回Switch指令TAB就变成了一个比较麻烦的事情,这样我们可以通过讲需要执行的指令绑定到button,或者滑动条组件来实现快速的执行多条指令,而省却SwitchTAB的Operation。并且通过面板可以更加方便的实现一个模拟的上位机控制面板。

运行模式
如上图所示,当面板EditComplete时,即可Switch到运行模式进行Operation。
在运行模式中, 可以点击上方的 日志 button来展开该面板运行的过程中的通讯日志,来ViewResponse的指令执行情况。
Click上方的,变量 button来View当前面板中的变量data。
Edit模式

Edit模式用于Edit该面板的内容,例如面板中应该包含哪些组件,需要哪些变量等。我们以button为例来添加一个组件:
0x01. 拖拽button到面板的合适位置

0x02. 绑定指令并ParseResponse内容到变量,Complete后点击确定buttonClose配置

0x03. 回到运行模式运行

这样就Complete了指令绑定以及变量的绑定,其他组件Operation与此类似。
Bittly 的自动化测试
单元测试

您可以使用 Bittly 来针对指令进行自动化测试,如上图所示,您可以选中您需要测试的指令,然后在右侧工作区中点击 创建测试用例 button来创建一个针对该指令的测试用例。
测试用例通过指定Request参数和期待Response内容来进行工作, 在执行时,测试用例send配置好的Request参数,在收到Response内容后,与期待Response内容进行对比,如果对比成功,则测试通过,否则该测试失败,其执行流程图如下:


Download不了
Download使用,提宝贵意见
学习mark一下
好
学习学习
11
好好学习
看下是否能用;
学习学习
666
看了好像不错
学习,
haoyangde
学习学习
Download下来试试看
很不错,学习学习。
用佛websocket,试试
Download
不知道真假,Download的 easymodbusjava说是源码结果是个jar包
Download下来试试看
不错!
666
看看
~AAAAAA
先试一试
被说明深深吸引,正是我们所需要的,希望一试。
Downloadbitlly
Download
学习一波
学习学习