Revision 294
Got the data response to work, however analog8 reads are failing to get good data.
data_requests.c | ||
---|---|---|
3 | 3 |
#include <stdio.h> |
4 | 4 |
#include <pthread.h> |
5 | 5 |
#include "../../../libwireless/lib/wireless.h" |
6 |
#include <string.h> |
|
6 | 7 |
|
7 | 8 |
PacketGroupHandler pgh; |
8 | 9 |
pthread_t* dr_thread; |
... | ... | |
43 | 44 |
} |
44 | 45 |
|
45 | 46 |
void* pthread_handle(void* arg){ |
46 |
|
|
47 | 47 |
RawData* data = (RawData*)arg; |
48 | 48 |
unsigned char* packet = data->packet; |
49 | 49 |
int length = data->length; |
... | ... | |
74 | 74 |
case IR_TYPE: |
75 | 75 |
/*An IR packet consists of just the 5 bytes representing the IR |
76 | 76 |
values, in order.*/ |
77 |
if(length != 4){
|
|
77 |
if(length != 5){
|
|
78 | 78 |
//The packet is incomplete... bail. |
79 | 79 |
break; |
80 | 80 |
} |
81 | 81 |
else{ |
82 |
unsigned char data[4];
|
|
83 |
for(i=0;i<4;i++){
|
|
82 |
unsigned char data[5];
|
|
83 |
for(i=0;i<5;i++){
|
|
84 | 84 |
data[i] = packet[i]; |
85 | 85 |
} |
86 | 86 |
IR_handle(data); |
... | ... | |
91 | 91 |
/*I have no idea, unsupported.*/ |
92 | 92 |
break; |
93 | 93 |
} |
94 |
free(data->packet); |
|
95 |
free(data); |
|
94 | 96 |
} |
97 |
|
|
95 | 98 |
void receive_handle(char type, int source, unsigned char* packet, int length){ |
96 |
RawData data; |
|
97 |
data.packet=packet; |
|
98 |
data.source=source; |
|
99 |
data.length=length; |
|
100 |
data.type=type; |
|
101 |
pthread_create(dr_thread,NULL,pthread_handle,(void*)&data); |
|
99 |
|
|
100 |
RawData* data = malloc(sizeof(RawData)); |
|
101 |
if(!data){ |
|
102 |
return; |
|
103 |
} |
|
104 |
unsigned char* newPacket = malloc(length); |
|
105 |
memcpy(newPacket, packet,length); |
|
106 |
|
|
107 |
|
|
108 |
data->packet=newPacket; |
|
109 |
data->source=source; |
|
110 |
data->length=length; |
|
111 |
data->type=type; |
|
112 |
|
|
113 |
dr_thread = malloc(sizeof(pthread_t)); |
|
114 |
pthread_create(dr_thread,NULL,pthread_handle,(void*)data); |
|
102 | 115 |
} |
Also available in: Unified diff