X-Git-Url: https://rtime.felk.cvut.cz/gitweb/tiny-bt.git/blobdiff_plain/4e1f6a2d9715473d24a9648ca65895927226c2e7..e139768c51d9370475578e9476cd5eff3b3d99f5:/src2/tiny_bt_hci_cmd.c diff --git a/src2/tiny_bt_hci_cmd.c b/src2/tiny_bt_hci_cmd.c index ef11b3d..76bf09f 100644 --- a/src2/tiny_bt_hci_cmd.c +++ b/src2/tiny_bt_hci_cmd.c @@ -131,13 +131,15 @@ int send_hci_disconnect_cmd(__u16 handle) return 0; } -int send_hci_data(char *p_data, __u16 lenght, __u16 *p_chandle) +int send_hci_data(char *p_data, __u16 lenght, __u16 *p_chandle, __u16 PB_flag, __u16 B_flag) { hci_data_request dreq, *p_dreq = &dreq; p_dreq->p_data = p_data; p_dreq->lenght = lenght; p_dreq->p_chandle = p_chandle; + p_dreq->PB_flag = PB_flag; + p_dreq->B_flag = B_flag; if (send_data(p_dreq) < 0) { perror("hci_accept_conn_req_cmd wasn't sent\n"); @@ -177,12 +179,19 @@ int send_data(hci_data_request *p_dreq) { int ii; __u8 array[p_dreq->lenght + 4]; + __u16 handle_flags; + printf("old handle:%d\n", *p_dreq->p_chandle); + p_dreq->PB_flag = p_dreq->PB_flag << 12; + p_dreq->B_flag = p_dreq->B_flag << 12; + handle_flags = *p_dreq->p_chandle | p_dreq->PB_flag | p_dreq->B_flag; + printf("new hadle:%d\n", handle_flags); array[0] = HCI_ACLDATA_PKT; - memcpy(&array[1], p_dreq->p_chandle, 2); + memcpy(&array[1], &handle_flags, 2); memcpy(&array[3], &p_dreq->lenght, 2); memcpy(&array[5], p_dreq->p_data, p_dreq->lenght); + printf("Outgoing data:\n"); for (ii = 0; ii < sizeof(array); ii++) { printf(" %x",array[ii]); }