]> rtime.felk.cvut.cz Git - tiny-bt.git/blobdiff - src2/tiny_bt_hci_cmd.c
outgoing data packet was modified. Now I can send packet and receive it on second...
[tiny-bt.git] / src2 / tiny_bt_hci_cmd.c
index ef11b3dc5ee11cebd8fdb4e7c356e68e43590ff5..76bf09f080a230bc981c7500183838cdd874d892 100644 (file)
@@ -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]);
        }