zoukankan      html  css  js  c++  java
  • UDK通信协议数据抓包

    标准的UDK协议数据包是分六步完成的,以下是六个步骤的介绍,以复位命令为例。

    一 向设备发送写的命令
      代码:

    ret = BulkWriteTerminal(hHandle,0x02,(BYTE *)"\x55\x53\x42\x43\x00\x0e\x60\x82\x08\x00\x00\x00\x00\x00\x10\xfe\xf0\x00\x00\x00\x00\x00\x00\x00\xf0\x00\x00\x00\x00\x00\x00",31,10);

      通过bushound抓的数据:

    25.2  OUT    55 53 42 43  b8 2d 5a 89  08 00 00 00  00 00 0c fe f0 08 00 00  00 00 00 00  00 00 00 00  00 00 00 

    二 向设备发送命令

    代码:

    ret = BulkWriteTerminal(hHandle,0x02,(BYTE *)"\x13\x00\x05\x00\x12\x00\x00\x00",8,10); //复位

      通过bushound抓的数据:25.2  OUT    13 00 05 00  12 00 00 00                          

    读取发送复位命令的状态码

    代码:

    ret = BulkReadTerminal(hHandle,0x81,pbBuffer,256,10,&ibuflen);

      通过bus hound 抓取的数据:25.2  IN     55 53 42 53  b8 2d 5a 89  00 00 00 00  00          

    经过以上三步,一条复位的命令已经发送完成,下面三步是读取复位命令的返回数据。

    这一步标识开始读USB设备向PC机返回的数据。

    ret = BulkWriteTerminal(hHandle,0x02,(BYTE *)"\x55\x53\x42\x43\x00\x0e\x60\x82\x00\x08\x00\x00\x80\x00\x10\xfe\xf1\x00\x00\x00\x00\x00\x00\x00\xf1\x00\x00\x00\x00\x00\x00",31,10);

    通过bus hound 抓取的数据:
       25.2  OUT    55 53 42 43  b8 2d 5a 89  00 20 00 00  80 00 0c fe  f1 00 00 00  00 00 00 00  00 00 00 00  00 00 00 

    USB实际返回的数据

    ret = BulkReadTerminal(hHandle,0x81,pbBuffer,256,10,&ibuflen);


    通过bus hound 抓取的数据: 25.2  IN     31 00 14 3b  6e 00 00 57  44 36 22 64  86 93 51 bf   05 0a 07 3b  35 90 00


    读取状态码:

    ret = BulkReadTerminal(hHandle,0x81,pbBuffer,256,10,&ibuflen);

    通过bus hound抓取的数据: 25.2  IN     55 53 42 53  b8 2d 5a 89  00 00 00 00  00

  • 相关阅读:
    Vue-dialog(弹框组件)
    Vue封装select下拉组件
    RAID总结
    消息队列
    存储
    算法开始
    硬件杂记
    要看的
    关于kernel的疑问,不解
    杂技
  • 原文地址:https://www.cnblogs.com/watchdatalearn2012620/p/2627052.html
Copyright © 2011-2022 走看看