• 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

  • 相关阅读:
    xml的schema约束(Java)
    simpleXML技术解析xml文件(php)
    xpath技术解析xm文件(php)
    提升树AdaBoost算法【自适应增强算法(集成学习算法)】
    岭回归与Lasso回归模型
    机器学习--线性回归模型
    Centos7下如何安装Python3.7以及java JDK?
    Python3的map、filter与reduce函数
    Python函数
    Win10下解决matplotlib中文乱码-亲测有效
  • 原文地址:https://www.cnblogs.com/watchdatalearn2012620/p/2627052.html
Copyright © 2020-2023  润新知