高手帮忙看看这个通信协议是怎么弄啊!

wxf_7guai 2007-10-26 07:44:39
第一次接触串口,实在菜,高手帮帮啊!
通信格式:
1 2 3 4 5 6 7
STX(1Byte) address(2Byte) RSD(3Byte) ,(1Byte) 个数(2Byte) ,(1Byte) 地址(4Byte)
6
以Ascii 编号从STX 下一文字至此位以前的各文字加上,以16 进制数表示下位2-byte
8 9
CR(1Byte) LF(1Byte)
/////////////////////
其中[STX]=0x02 [CR]=0x0d [lf]=0x0a
现假设发送[stx]01RSD,02,0001C5[cr][lf] //数据是对的

现在想问下:
1,那个C5是怎么算出来的,对以Ascii 编号从STX 下一文字至此位以前的各文字加上,以16 进制数表示下位2-byte这句话不懂
2,这个格式该怎么发送啊,我只会发16进制的东西,这样发能行不:
CByteArray sendArr;
WORD wLength;
CString m_send="0201RSD,02,0001C50d0a";
wLength = m_send.GetLength();
sendArr.SetSize(wLength);
for(int i =0; i<wLength; i++)
{
sendArr.SetAt(i, m_send.GetAt(i));
}
m_MSComm1.SetOutput(COleVariant(sendArr));
高手帮帮忙啊,实在是新手.
...全文
117 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wxf_7guai 2007-10-27
  • 打赏
  • 举报
回复
1 2 3 4 5 6 7
STX(1Byte) address(2Byte) RSD(3Byte) ,(1Byte) 个数(2Byte) ,(1Byte) 地址(4Byte)
8
以Ascii 编号从STX 下一文字至此位以前的各文字加上,以16 进制数表示下位2-byte
9 10
CR(1Byte) LF(1Byte)
/////////////////////
其中[STX]=0x02 [CR]=0x0d [lf]=0x0a
上面那个就是协议啊,就是不懂: 以Ascii 编号从STX 下一文字至此位以前的各文字加上,以16 进制数表示下位2-byte 这句话的意思。
shanhqk 2007-10-27
  • 打赏
  • 举报
回复
需要先理解协议,这是都是协议中规定的。
没有什么好商量的。
主要是看协议中是如何规定的。
另外,调试可以使用串口调试工具。
wxf_7guai 2007-10-27
  • 打赏
  • 举报
回复
总算有高手给了个建议,激动啊.
什么是真实数据啊,我上面的已经给了啊 01RSD,02,0001 怎么校验出C5来啊?
i_love_pc 2007-10-27
  • 打赏
  • 举报
回复
1.c5怎么计算的协议里应该说明吧,难道要自己猜??
2.发送方式就两种,16进制(二进制)和文本方式,如果是文本方式就用字符串填充发送
Pipi0714 2007-10-27
  • 打赏
  • 举报
回复
按照你的真实数据使用异或算出结果,可能是个校验和
wxf_7guai 2007-10-27
  • 打赏
  • 举报
回复
没人帮我啊.
wuwu,wuwu

3,248

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧