亲爱的员工对话框,
我试图创建一个通用的HID蓝牙设备使用HOGPD配置文件,以交换数据之间的服务器和客户端类似http://support.dialog-semiconductor.com/hid-profile.虽然我已经读过了RW-BLE-PRF-HOGP-IS.pdf,UM-B-051 DA1458x软件平台参考v1.0.pdf,软件开发指南v1.0.pdf和USB_HID1_11.pdf.但我还是不清楚:
- 消息流是怎样的以及哪些消息必须进行调整;
- 哪些参数需要设置HOGPD。特别是创建一个通用的HID设备。似乎只有键盘和鼠标的例子存在。
我尝试了示例DA14580_KBD_3.10.6,但是我不能让它在评估工具包上运行;它没有被发现。
你能帮我个忙吗?你有通用的HID设备例子可用吗?
问候,
Wouter
系统信息:
DA14580 USB评估板
SDK版本:5.0.3
关键词:
设备:
嗨Wouter Vos,
我不明白第一个问题,你说哪些消息需要修改是什么意思,服务器上的服务取决于服务器上的输入。一般的想法是有一个报告映射,描述你的设备的输入(这个报告映射是根据HID协议),然后当你的一个设备输入被按下或释放,你发送一个通知给主机。因为主机一得到通知就有报告映射,所以他可以将其映射到适当的按键或释放。您可以从检查HOGPD_CREATE_DB_REQ (app_hid_create_db()函数)开始,以便设置设备上的数据库,并设置HID实例的数量和其他配置。之后,当您启用该服务时,当确认处理程序(hogpd_create_db_cfm_handler)返回成功创建的数据库时,它还将发送HOGPD_SET_REPORT_MAP_REQ。如前所述,报表映射是客户端将用于映射您在通知中向他发送的报表的数据。在此之后,当您的设备连接上时,您将必须启用服务(发送HOGPD_ENABLE_REQ)。连接后,主机应该启用服务器上的通知,因为每次发送HOGP_REPORT_UPD_REQ (app_hid_send_report)时都会启用适当的通知,所以主机将获得通知并将其映射到相应的操作。
对于HID设备没有一个通用的例子,也许一个更好的参考例子是鼠标,因为它比键盘更简单。至于在评估工具包上运行参考设计,你指的是键盘参考设计或开发工具包(你可以在专家开发工具包上运行kbd ref des——它有一些额外的按钮,以便映射到键盘网格)。你也不能同时调试(从keil)和睡觉。为了580年禁用调试器必须睡觉这样你可以消除睡眠(未定义CFG_EXT_SLEEP和CFG_DEEP_SLEEP da14580_config)并运行应用程序从凯尔和调试或者你可以离开睡眠是下载代码通过凯尔和停止调试,那么你应该看到你的设备广告。也请查看下面的帖子http://support.dialog-semiconductor.com/keyboard-and-mouse-examples-wont..。
由于MT_dialog
你好MT_dialog,
报告描述符、用法和在USB HID规范和HOGPD实现中提到的HID描述符之间的链接对我来说不是很清楚。我猜HID描述符与HOGPD数据库相关,而报告描述符与报告映射相关。在HOGPD软件中实现的用法似乎是鼠标和键盘。我想使用不同的用法,但不清楚如何指示和实现。
请您澄清提到的HID规范条款和HOGPD实现之间的联系,特别是那些与表5中描述的参数有关的。X的RW-BLE-PRF-HOGP-IS.pdf?
问候,
Wouter
嗨Wouter Vos,
因为你想要你的设备有不同的用法,你必须参考HID规范来检查你的报表映射的语法。现在关于HID和HOGPD的链接,如果我理解正确,你想澄清的变化,你必须实现您的数据库创建时,你改变了设备的报告地图,这两者之间最重要的连接是您的报表映射的报表号(您的报表映射支持多少具有不同id的不同报表)以及这些报表是什么(INPUT、OUTPUT、FEATURE)。例如鼠标参考设计报告中地图包含三种不同的报告(运动、键、先进键)在报告中宣布地图,在你创建数据库(app_hid_create_db)你必须显式地声明3不同的报告你的设备支持以及报告功能(这是一个输入,输出或特性报告)。The features->report_char_cfg[0,1,2] = HOGPD_CFG_REPORT_IN | HOGPD_REPORT_NTF_CFG_MASK | HOGPD_CFG_REPORT_WR;(在鼠标参考设计中)将在您的数据库中创建3种不同的输入特征,更新后它们将映射到您的报告中,请查看knd或鼠标参考设计手册,了解为相应设备创建的特征。这是报表映射和数据库之间的连接,除此之外,所有其他配置都与设备的不同功能有关,例如设备是否支持启动协议模式等。希望这能让事情更清楚。
由于MT_dialog