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");
{
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]);
}