比如报文头是0xeb90,求高人给个范例,谢谢
解决方案 »
- 对话框控件的坐标范围问题
- MFC 中的 listbox 设置styles:extended的时候 m_list.SetCurSel(i)就失效了,怎么办?
- 深圳新宇龙 这个垃圾公司,大家不要去了,顶者有分。
- 我在shell编程时不小心把注册表弄坏了,请问怎么恢复呀?
- 关于mfc中默认ID_FILE_OPEN的问题,帮帮我!!!!!!!
- error C2512: 'Adolinking' : no appropriate default constructor available
- 请问怎样读写串口?
- B/S市场前景怎么样?
- 求助
- odbc+sqlserver+windows的难题!!
- 怎么把一个access的数据库导入到c++的mfc里并实现功能呢
- 让我的程序获取城市达人的页面地址有关问题?
1.结构:这需要双方约定好字节对齐方式,适合复杂协议
2.数组:这不需要约定好字节对齐方式,能简单些,但不适合复杂的协议.
举个简单的例子:
0xaa(报文头)+命令+长度+数据域+校验+0xbb(结束符)
其中数据域可以是结构:
struct 命令1
{
int 电流;
int 电压;
int 容量;
}
struct 命令2
{
int 发送电压;
int 发送电流
}
就是类似这么定义
USHORT Length;
UCHAR ScsiStatus;
UCHAR PathId;
UCHAR TargetId;
UCHAR Lun;
UCHAR CdbLength;
UCHAR SenseInfoLength;
UCHAR DataIn;
ULONG DataTransferLength;
ULONG TimeOutValue;
ULONG_PTR DataBufferOffset;
ULONG SenseInfoOffset;
UCHAR Cdb[16];
}SCSI_PASS_THROUGH, *PSCSI_PASS_THROUGH;
比如定义这么一个结构体,你往下发什么你自己定义,协议要自己能对的上
cdb里是命令格式,发的相对的命令,协议里要规定命令的含义和执行操作~