一、功能
1、 可以在网络内任意与服务端保持联接的计算机上运行,用于监控平台上正在通信的任意数据。
2、 可以自定义复杂的数据结构,从而产生自定义格式的数据消息并且发送,方便其他需要该结构数据的节点调试。
3、 通过自定义的数据结构来解析接收到的复杂消息数据,解析后便于用户直观读取数据。
4、 按16进制方式显示接收的复杂消息数据,提供按字节解析的功能,方便用户在没有定义对应的数据结构时进行数据分析。
5、保存监视数据,读取并回放历史数据文件。方便用户重现数据现场。
6、可分析协议文件,自动解析复杂数据到变量
二、主界面
三、自定义复杂信息数据结构
1、 设置复杂消息界面
例如:char temp1[2];
鼠标右击维数单元格后,将其设置为2,并可通过右击赋值单元格后输入初值。
注意:赋值规则:从前向后取值,如果数据不足则赋值为0。上图中temp1[2]={2,40},如果在赋值格内只输入了一个2,则temp1[2]={2,0}。
输入字符串方法:如:char str[32];数据类型定义为char,维数设为32,然后在赋值时,以英文的引号 ” 作为起始字符,” 符号后面的所有字符均为输入内容
只有在选择复杂信息后,定义复杂结构消息操作才能进行。进行了修改后,别忘了点击“<<更新”按钮,否则不起作用。
2、 保存复杂消息数据格式
输入的所有的复杂消息数据可以保存为文件。通过菜单:文件——保存,弹出对话框。
编辑复杂消息数据文件
除了在界面中编辑复杂消息,还可以直接编辑消息数据文件。XML格式为:
<消息集合>
<消息单元 参数1="0" 参数2="0" 名="1" 消息名="1" 消息宏值="5127" 消息类型="1" 简单复杂="complex">
<复杂结构体>
<变量定义 变量名="temp1" 类型="char" 粒度="1" 赋值="0"/>
<变量定义 变量名="temp2" 类型="char" 粒度="1" 赋值="0"/>
复杂结构体>
消息单元>
<消息单元 参数1="0" 参数2="0" 名="2" 消息名="4" 消息宏值="5127" 消息类型="4" 简单复杂="complex">
<复杂结构体>
<变量定义 变量名="temp1" 类型="short" 粒度="3" 赋值="0"/>
<变量定义 变量名="temp5" 类型="struct" 粒度="2">
<变量定义 变量名="temp1" 类型="short" 粒度="3" 赋值="0"/>
变量定义>
<变量定义 变量名="temp2" 类型="double" 粒度="2" 赋值="0"/>
<变量定义 变量名="temp3" 类型="int" 粒度="2" 赋值="0"/>
<变量定义 变量名="temp6" 类型="struct" 粒度="1">
<变量定义 变量名="temp1" 类型="short" 粒度="3" 赋值="0"/>
<变量定义 变量名="temp2" 类型="double" 粒度="2" 赋值="0"/>
变量定义>
复杂结构体>
消息单元>
消息集合>
文本格式与C语言格式类似:
格式说明:
1)每个 C 语言的格式结构前必须说明命名 1 和命名 2,格式如下:
//name1 命名 1
//name2 命名 2
typedef struct STRUCT_ENV
{
float fWindC;//风向 度
short fWindV;//风速米秒
double fT[2];//温度℃
int fP;//气压 hPa
long long fH;//湿度 %RH
unsigned char fD[18];//海深 米
char m_cWaveGrade; // 波浪等级
}TAGENV;//环境结构
2)结构内允许 int,short,long,double 等基本类型定义,不允许有 union、enum
这些类型定义
3)结构内不允许有函数定义
4)可以用//表示注释,不允许单斜号/。
示例:
//name1 SYS
//name2 TAG_HEAD
typedef struct TAG_HEAD
{
unsigned short totallen;//
unsigned short reserved;//
}TAG_HEAD;//
//name1 SYS
//name2 TAG_HEAD_MSG
typedef struct TAG_HEAD_MSG
{
unsigned char index;
unsigned long timestamp;//
}TAG_HEAD_MSG;//
3、 读取复杂消息数据格式
通过菜单:文件——打开,弹出打开对话框后选择对应的协议文件。
四、基本操作步骤
操作步骤:
1、 生成环境(点击生成按钮)
2、 联接服务端(输入地址,端口通常不改,点击“联接”。成功后在右下方提示,如果服务端没有准备好,将自动重联)
3、 定义简单与复杂消息。(简单消息:只有三个整数数据,即uMsg,wParam,lParam。复杂消息:uMsg为固定值5127,wParam指向复杂数据区首地址,lParam为复杂数据字节长度。信息说明只用于在AgentDebug内部区分各消息,注意不要重复。)
4、 选择希望定购的消息并上报。(在信息列表中选择相应消息,可以多选,然后点击“网络定购”,选择的消息将出现于左下方的定购列表内,最后点击“确定上报”。如果上报成功,将在接收详情中显示提示)
5、 如果网络中存在所定购的消息,将自动接收并显示于接收详情中。
6、 发送消息。(选择网络发送模式,选择可靠或者性能模式,点击“开始发送”,选择定时后将重复发送,否则只发出一次)
注意:通过选择结构成员对齐下拉列表可以选择结构的字节对齐方式,只有通信双方的字节对齐方式相同时才能保证数据理解正确。
五、解析复杂数据
1、 双击接收详情中的复杂消息
2、 弹出监视窗口
3、 如果已经定义好了对应的复杂消息数据结构,则可以通过“解析数据”直接分析出数据。
4、 也可以恢复到原始数据后直接选择字节查看数据。
六、保存历史数据
步骤:
1、停止接收按钮,停止更新数据
2、保存数据按钮,弹出数据保存对话框:
七、回放数据文件
步骤:
1、点击数据复演,弹出对话框:
2、点击读取文件,选择需要复演的数据文件
3、消息加入复演列表
4、回放控制:拖动滑动条可以控制回放速度
循环发送:列表中数据循环发出
顺序发送:按列表顺序发出一遍后停止
单个发送:一次只发出一条消息
注意:要在主界面中选择发送模式:
5、查看复杂消息:双击列表中的复杂消息项,会弹出消息解析窗口。