我用TApdComPort控件已经能读取串口连续发送来的数据,但是怎么继续操作接收到的数据信息呢?通讯协议是:每帧数据以80为帧头,每个数据包包含一个帧头,12个8位数据组成,传输格式按照标准的232协议。例如:80 20 08 1A 08 2D 08 1B 08 2C 08 3E 08,我想对08左移8位,在和20组成一个十六位二进制数,再将这个二进制数转换位十进制数,就能得到陀螺仪一个轴的速度信息。请各位大牛指点,谢谢了先!

解决方案 »

  1.   

    你对该数据报的描述不够清晰。说几点意见:假设收到的数据报为PChar类型,
    type
      PCommDataPack=^TCommDataPack;
      TCommDataPack=packed record
          Head:Byte;
          d1:Word;
          d2:Word;
          ...
          d6:Word;
       end;
    在Com组件的OnDataRecieved(猜的,收到数据的事件,该事件含有一个buf参数,PChar类型)
     var
      pData:PCommDataPack;
    begin
      PData:=PCommDataPack(buf);
      //下面可以用pData^.d1取得所需的数据。
    end;
      
      

  2.   

    zdgdh(老吴子)
    老吴子说的漂亮!
      

  3.   

    楼主一定没学过汇编,并且没用修改器改过游戏。zdgdh(老吴子) 的说法是正确的。