串口调试助手V5.0使用说明
1. 历史命令功能
(1)作用:
a.可记住经常使用的命令,
b. 点击历史命令右侧的下拉列表,存储的历史命令数据就会出现在发送区域
c. 避免重复输入,方便调试
(2) 输入方法1: 比如要生成一条数据为 12 34 56 78 的历史命令
a. 在发送输入里面输入: <说明性文字>12 34 56 78 或者 12 34 56 78
其中: 说明性文字用于描述本条数据的作用.必须用 <>括起.
也可以不需要说明性文字.
b. 点击 "加入"按钮
(3) 输入方法2:
a.编辑一个文本文件,输入若干条命令,每行一条命令:
<命令1> xxxxxxx
<命令2> xxxxxxx
<命令3> xxxxxxx
...........
b. 点击"导入",选择该文件就将该文件内的命令导入了
(4) 点击"导出",可将历史列表导出到一个文件中,下回可从文件中导入
2. Hex: 查看发送区输入的文本对应的十六进制形式,
如 Sending Area -> 53 65 6E 64 69 6E 67 20 41 72 65 61
Char: 查看发送区输入的十六进制的对应的字符串形式,
如 53 65 6E 64 69 6E 67 20 41 72 65 61 -> Sending Area
3. 校验功能
(1) 作用: 可提供若干内置和外置的校验和计算工具,方便数据包的调试
(2) 操作方法:
a. 选中十六进制发送,输入原始的数据
b. 选择校验方法,
c. 点击"校验",则校验之后的数据出现在发送区域
(3) 支持3个自定义校验程序,选择自定义1,自定义2,自定义3时,需要分别提供对应的
校验程序,名字对应为SELF_1.EXE,SELF_2.EXE,SELF_3.EXE
(4) 校验程序为控制台程序,数据返回方式有2种:
a. main函数返回值为4个字节,输入参数为十六进制数据字符串,
如待校验的数据为4字节数据: 12 34 56 78,则main函数的命令行参数为 12345678
b. 当最高字节为1~3时候,表明返回值的低字节为1~3字节校验数据,该校验数据将附加在原数据尾部
c. 当最高字节为4时候,表明校验或者加密后的数据存放在SELF.txt中.
(5) 为方便编写自定义的校验程序,提供一个校验程序例子:
/////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include <conio.h>
__inline char ch2hex(char ch)
{
if( '0' <= ch && ch <= '9' )
return ch-'0';
if( 'a' <= ch && ch <= 'f' )
return ch-'a'+10;
if( 'A' <= ch && ch <= 'F' )
return ch-'A'+10;
return -1;
}
int str2hex(const char* str,char* buffer)
{
int len = 0;
while(*str)
{
char ch = ch2hex(*str++);
if( ch < 0 )
break;
len++;
if( len%2 )
*buffer = ch;
else
*buffer++ = (*buffer<<4) | ch;
}
return (len+1)/2;
}
/**
argv[1] 为待校验的数据的16进制字符串
**/
int main(int argc, char* argv[])
{
int i,len;
char buffer[1024];
short sum = 0; // 本例子简单计算算术和
if( argc < 2 )
return -1;
len = str2hex(argv[1],buffer); // 从16进制字符串中提取待校验的数据
//printf("%d: %s!\r\n",len,argv[1]);
for( i = 0; i < len; i++)
{
//printf("%02x ",(unsigned char)buffer
);
sum += buffer;// 本例子简单计算算术和
}
//printf("\r\n");
if( 1 )
{// 通过文件c:\self.txt返回校验甚至加密后的所有数据
FILE* fp = fopen("c:\\self.txt","wb");
fwrite(buffer,len,1,fp);
fwrite(&sum,1,2,fp);
fclose(fp);
return (4<<24);
}
return (0x02<<24) | sum; //通过返回值返回1~3字节的校验数据,该校验数据将附加在原数据尾部
}
/////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////
(6) 自动解析器API
说明待完善,可解释执行类似 parser.txt里面的类C语言代码,
(100) 关于
Highly Improved by 狐飞飞狐<13685997@qq.com>