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

  • 相关阅读:
    彻底弄懂flex布局
    剖析Vue原理&实现双向绑定MVVM
    【Mysql进阶-3】大量实例悟透EXPLAIN与慢查询
    mysql 排序
    从ReentrantLock的实现看AQS的原理及应用
    Java面试之Synchronized解析
    基于vue-cli搭建vue项目开发环境
    在win环境下使用yarn安装 vue-cli
    优化器追踪示例
    MySQL常见的七种锁详细介绍
  • 原文地址:https://www.cnblogs.com/watchdatalearn2012620/p/2627052.html
Copyright © 2011-2022 走看看