首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

WINAPI串口通讯

2013-01-05 
WINAPI串口通信做与硬件的串口通信,有点迷糊了。。。。。请各位帮忙看看平台发送报文序号数据内容长度说明1报文

WINAPI串口通信
做与硬件的串口通信,有点迷糊了。。。。。请各位帮忙看看

平台发送报文
序号数据内容长度说明
1报文头2固定值:0xAA2F
2报文长度4HEX,包含头与校验字节
3报文类型1固定值:0x00
4ACC校验字2HEX

我的数组是这样定义的:
  


  sendtemp:array[0..3] of LongInt;
  messageHead := $AA2F;
  messageLen := $00000009;
  messageType := $00;
  messageAcc := $00E2;
  sendtemp[0] := messageHead;
  sendtemp[1] := messageLen;
  sendtemp[2] := messageType;
  sendtemp[3] := messageAcc;

然后发送。

?平台发送报文
序号数据内容长度说明
1报文头2固定值:0xAA2F
2报文长度4HEX,包含头与校验字节
3报文类型1固定值:0x02
4白名单版本号4BCD
5白名单总数2HEX
6卡号10HEX
7人员姓名8GB2312汉字(4个汉字)
8身份序号1HEX(身份标号)

这个该怎么定义数组?或者有别的方法?姓名是GB2312汉字,把它转换为HEX?


[解决办法]

Type
  PSendDataStru = ^TSendDataStru;
  TSendDataStru = packed record
    wHeadKey     : WORD;    //1 报文头   2 固定值:0xAA2F
    dwSize       : DWORD;   //2 报文长度 4 HEX,包含头与校验字节
    wType        : Byte;    //3 报文类型 1 固定值:0x02
    dwWhiteList  : DWORD;   //4 白名单版本号 4 BCD
    dwWhiteCount : DWORD;   //5 白名单总数 2 HEX
    sCardNO      : array [0..9] of AnsiChar; //6 卡号 10 HEX
    sName        : array [0..7] of AnsiChar; //7 人员姓名 8 GB2312汉字(4个汉字)
     sCardID      : Byte;   //8 身份序号 1 HEX(身份标号)      
  end;

对应赋值,然后发送这个结构即可

热点排行