Project

General

Profile

Revision 157

Sweet stuff. Eugene use this. It's good.
(But not tested yet, should work, modular, works for all server side applications,
even those that aren't explicitly colonet related.)

View differences:

test_main.c
1 1
#include <stdlib.h>
2 2
#include <stdio.h>
3
#include <unistd.h>
3 4
#include "data_requests.h"
5
#include "wireless.h"
6
#include "wl_token_ring.h"
4 7

  
8
void IR_handler(unsigned char* data);
9
void bom_handler(BomNode* head);
10
void encoder_handler(unsigned char* data);
11

  
12
char bom_responded_flag;
13
char ir_responded_flag;
14
char encoder_responded_flag;
15

  
5 16
int main(void){
6
  printf("Hello\n");
7
  data_requests_init(NULL,NULL,NULL);
8
  return -1;
17
  wl_init();
18
  wl_token_ring_register(); 
19
  data_requests_init(bom_handler,IR_handler,encoder_handler);
20
  int robot_id;
21
  bom_responded_flag = 0;
22
  ir_responded_flag = 0;
23
  encoder_responded_flag = 0;
24
  while(1){
25
      wl_token_iterator_begin();
26
      printf("This far.\n");
27
      while(wl_token_iterator_has_next()){
28
        robot_id = wl_token_iterator_next();
29

  
30
        bom_responded_flag = 0;
31
        ir_responded_flag = 0;
32
        encoder_responded_flag = 0;
33
/*
34
        request_bom_data(robot_id);
35
        while(!bom_responded_flag){
36
          delay_ms(50);
37
        }
38
*/        
39
        request_IR_data(robot_id);
40
        while(!ir_responded_flag){
41
          usleep(50000);
42
        }
43
/*       
44
        request_encoder_data(robot_id);
45
        while(!encoder_responded_flag){
46
          delay_ms(50);
47
        }
48
*/
49
      }
50
  }
9 51
}
52

  
53
void IR_handler(unsigned char* data){
54
  char i;
55
  for(i=0;i<5;i++){
56
    printf("IR %i is %u\n\n",i,data[i]);
57
  }
58
  ir_responded_flag=1;
59
}
60

  
61
void bom_handler(BomNode* head){
62
  bom_responded_flag=1;
63
}
64

  
65
void encoder_handler(unsigned char* data){
66
  encoder_responded_flag=1;
67
}
68

  

Also available in: Unified diff