#define HID_SET_OUTPUT_REPORT 0x52
#define HID_SET_FEATURE_REPORT 0x53
+#define HID_SEND_DATA 0xa2
+
static void hid_prepare_reply_protocol_mode(const void *data, uint16_t len)
{
struct test_data *t_data = tester_get_data();
static void hid_intr_cid_hook_cb(const void *data, uint16_t len,
void *user_data)
{
+ uint8_t header = ((uint8_t *) data)[0];
+
+ switch (header) {
+ case HID_SEND_DATA:
+ tester_test_passed();
+ }
}
static void hid_intr_connect_cb(uint16_t handle, uint16_t cid, void *user_data)
case HID_SET_INPUT_REPORT:
case HID_SET_OUTPUT_REPORT:
case HID_SET_FEATURE_REPORT:
+ case HID_SEND_DATA:
tester_test_passed();
}
}
tester_test_failed();
}
+static void test_hidhost_send_data(const void *test_data)
+{
+ struct test_data *data = tester_get_data();
+ const uint8_t *hid_addr = hciemu_get_client_bdaddr(data->hciemu);
+ bt_bdaddr_t bdaddr;
+ bt_status_t bt_status;
+ char *buf = "fe0201";
+
+ data->cb_count = 0;
+ bdaddr2android((const bdaddr_t *) hid_addr, &bdaddr);
+ bt_status = data->if_hid->send_data(&bdaddr, buf);
+ if (bt_status != BT_STATUS_SUCCESS)
+ tester_test_failed();
+}
+
#define test_bredrle(name, data, test_setup, test, test_teardown) \
do { \
struct test_data *user; \
test_bredrle("HIDHost SetReport Success",
NULL, setup_hidhost_connect,
test_hidhost_set_report, teardown);
+
+ test_bredrle("HIDHost SendData Success",
+ NULL, setup_hidhost_connect,
+ test_hidhost_send_data, teardown);
return tester_run();
}