定义帧格式 我用的MSComm控件实现的串口通信,查了资料都是只要讲述帧格式定义的方式,没有见到程序中如何体现帧格式。请问大侠们是够可以提供一个简单的定义帧格式实现发送数据的代码,我参考一下,现在了解的只是如何定义在程序中如何实现没有一点概念。我是初学者,希望得到大家的帮忙!谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 给个例子struct PACKET{ char cHead; // 自定义帧头标志,如0x02或者'A'(这个任意) int nLength; // 说明后点vbData的长度 BYTE vbData[1]; // 实际上应该是变长的结构,这里只定义一个字节}; 1 定义一个结构体。2 填充完毕结构体内容3 把这个结构体序列话为byte[]数组,发生出去。4 接收这里,直接解析byte[]为对应的结构体即可。注意:byte[]开头一定要加上version字段。例如: strct NFileFrame{byte m_version;string m_fileName;int m_phonenum;}看完后,如果还不明白,请直接问。 结构体序列化为byte[]数组这步怎么实现呢?楼上的,我来晚了 我发现在发送帧的时候,我定义的结构体是以字符‘:’为帧头的,它对应的十六进制数应该为3A,但我在数据调试时发现它的数据为3A CC CC CC,这个不知道是什么原因呢?这样会影响接收到的数据的呀,该怎么办呢?请懂帧格式的朋友帮忙下。谢谢! 弄明白了 原来结构体中有字节对齐问题 只要在结构体前加上伪指令#pragma pack (n),C编译器将按照n个字节对齐。就可以了 只要将n设为1就可以了不用再填充了 结贴!谢谢大家啦 大哥能发我一份代码吗,谢了阿 [email protected] 请问下有没有可以编辑pdf的第三方类库呀? 关于自动在线升级的程序! C语言char类型的字符串有什么办法可以提取一部分的数据吗? 请问CListCtrl中如何用鼠标点击能选中一行 而不只是第一列啊? 怎样比较日期? 小弟我正在学习STL,所以问一个关于STL的问题,还请高手前辈指教。 我使用vc.net为什么没有WN_INITDIALOG消息? 关于打印页面设置的问题(高分求教)! 如何在视图上添加自定义的背景! 请问在VC中能否通过IDE环境直接定制菜单资源的OwnerDraw属性? udp检验和计算实现的代码 出错 请问原因 socket 数据打包的问题
{
char cHead; // 自定义帧头标志,如0x02或者'A'(这个任意)
int nLength; // 说明后点vbData的长度
BYTE vbData[1]; // 实际上应该是变长的结构,这里只定义一个字节
};
2 填充完毕结构体内容
3 把这个结构体序列话为byte[]数组,发生出去。4 接收这里,直接解析byte[]为对应的结构体即可。注意:byte[]开头一定要加上version字段。例如:
strct NFileFrame
{
byte m_version;
string m_fileName;
int m_phonenum;
}
看完后,如果还不明白,请直接问。