Project

General

Profile

Revision 294

Got the data response to work, however analog8 reads are failing to get good data.

View differences:

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