This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] RTOS/LAUNCHXL-CC2640R2:通过 HID 发送 AC 密钥

Guru**** 2589280 points
Other Parts Discussed in Thread: LAUNCHXL-CC2640R2

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/597593/rtos-launchxl-cc2640r2-sending-ac-keys-over-hid

器件型号:LAUNCHXL-CC2640R2

工具/软件:TI-RTOS

您好!

在我几天前发布了一个有关通过 BLE 发送关键输入的主题之后、我现在有一个更具体的问题。

我使用 Launchxl-CC2640R2并希望发送 AC Home。 我参考了 HID 键盘示例。 左/右键按预期工作。

我添加了消费类设备以报告地图:

0x05、0x0c、// usage_page (使用者器件)
0x09、0x01、//用法(使用者控制)
0xa1、0x01、//集合(应用)
0x85、0x02、// report_ID (2)
//
0x0A、0x21、0x02、//用法(AC 搜索)
0x0A、0x22、0x02、//用法(AC 转到)
0x0A、0x23、0x02、//用法(AC 主页)
0x15、0x01、//逻辑最小值(1)
0x25、0x03、//逻辑最大值(3)
0x75、0x02、
0x01、0x81、0x95 /报告大小(0x00)/计数(0x95)
//输入(数据、Ary、ABS)

0xC0 //结束采集 

现在、我尝试将 AC Home 发送给  

HIDAdvRemoteConCtrl_sendReport (3); 

但什么也不会发生。

我在论坛上搜索过、但大多数关于发送 AC 密钥的主题都没有得到解答、有人能告诉我问题是什么吗?

此致、

Martin

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Martin:

    HIDAdvRemoteConCtrl_sendReport()函数应引用在 hiddev.h 中定义的 HID 键盘/键盘参考 ID

    USB HID 使用表规范对此提供了更多信息。

    关于您对报告地图的修改、我不确定它是否有效。 我将与办公室周围的人进行联系、然后返回给您、

    此致、
    反叛分子
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Martin、

    静态空 HIDAdvRemoteConCtrl_sendReport (uint8_t 键码)
    {
    uint8_t buf[HID_CC_IN_RPT_LEN];
    
    buf[0]=键码;//键码
    
    HIDDev_Report (HID_RPT_ID_CC_IN、
    HID_REPORT_TYPE_INPUT、
    HID_CC_IN_RPT_LEN、
    buf);
    } 

    此函数在 HID_RPT_ID_CC_IN 上发送消费者控制报告。 您得到的是一份全新的报告。

    您还可以将新密钥添加到现有的消费者控制报告中、然后密钥代码将是您的交流密钥。

    0x05、0x0c、// usage_page (使用者器件)
    0x09、0x01、//用法(使用者控制)
    0xa1、0x01、//集合(应用)
    0x85、0x02、// report_ID (2)
    //
    0x09、0x30、//用法(电源)
    0x09、0xCD、//用法(播放/暂停)
    0x09、0xB7、//用法(停止)
    0x09、0xB5、//用法(跳过跟踪)
    0x09、0xB6、//用法(上一个跟踪)
    0x09、0xB3、//用法(快进)
    0xB4、0x09
    
    、0xB2、0x09 (卷回卷)/用法(0xB4)、0x09
    0x09、0xEA、//用法(卷向下)
    0x09、0xE2、//用法(静音)
    0x15、0x01、// logical_minimum (1)
    0x25、0x0B、// logical_maximum (11)
    0x95、0x01、// report_count (1)
    0x75、0x08、// report_size (8)
    0x81、abs (8)、0x81、数据输入
    //
    0xC0 // end_collection 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    感谢您的回答。 这就像我想的那样,但主要问题是,AC 密钥代码是两个字节代码,所以 AC Home 例如0x0223,如何使用来自消费者控制报告表的这个密钥?

    此致、

    Martin

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    有人回答,如何发送两个字节的 AC 密钥?

    此致、

    Martin

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我只建议查看 USB HID 使用表规格。
    此外、如果您正在发送2字节 AC 密钥、也许您应该将 REPORT_COUNT 设置为至少2。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我像您所解释的那样测试了发送。 我更改了报告映射:

    0x05、0x0c、// usage_page (使用者器件)
    0x09、0x01、//用法(使用者控制)
    0xa1、0x01、//集合(应用)
    0x85、0x02、// report_ID (2)
    //
    0x09、0x02、0x23、//用法(AC Home)
    0x09、0x00、0xCD、//用法(播放/暂停)
    0x09、0x00、0xB7、//用法(停止)
    0x09、0x00、0xB5、//用法(跳过曲目)
    0x09、0x00、0xB6、//用法(之前的曲目)、
    0x09、0xB2、0x00、0xB2、0x09 (快进)
    
    //用法(记录)
    0x09、0x00、0xE9、//用法(卷增大)
    0x09、0x00、0xEA、//用法(卷减小)
    0x09、0x00、0xE2、//用法(静音)
    0x15、0x00、0x01、// logical_minimum (1)
    0x25、0x00、0x0B、// logical_report、// 0x95
    
    
    、0x95、0x00、0x95、0x8)/ART/ 0x95 (0x81、0x95)、0x95 (0x95)/0x95)/0x95 (0x95)/0x95、0x8
    //
    0xC0 // end_collection 

    然后我使用了:

    HIDAdvRemoteConCtrl_sendReport (0x00); 

    但不会发生任何情况、键盘按压将被忽略、即使我发送了一个在更改映射之前有效的键盘按压也会被忽略。 我找不到这个错误,有人有什么想法吗?

    此致、

    Martin