Project

General

Profile

Statistics
| Revision:

root / trunk / code / projects / colonet / lib / colonet_wireless / colonet_wireless_test2.cpp @ 11

History | View | Annotate | Download (2.26 KB)

1
/** @file colonet_wireless_test2.cpp
2
 * @brief colonet_wireless_test2 - tests the colonet_wireless library with
3
 * manual control.
4
 *
5
 * @author Eugene Marinelli
6
 * @date 2/5/06
7
 */
8

    
9
#include <iostream>
10
#include <signal.h>
11
#include <fcntl.h>
12
#include <signal.h>
13

    
14
#include "colonet_wireless.h"
15
#include "colonet_defs.h"
16

    
17
ColonetWireless* cw;
18

    
19
int msg_handler(ColonetPacket* pkt)
20
{
21
  printf("Handler!\n");
22
  return 0;
23
}
24

    
25
char get_mouse()
26
{
27
  int fd;
28
  char buf[10];
29

    
30
  fd = open("/dev/input/mouse0", O_RDONLY);
31

    
32
  read(fd, buf, 1);
33

    
34
  close(fd);
35

    
36
  return buf[0];
37
}
38

    
39
void exit_handler(int sig)
40
{
41
  unsigned char data[10];
42

    
43
  printf("Sending kill packet...\n");
44
  cw->send(GLOBAL_DEST, COLONET_COMMAND, MOTORS_OFF, data);
45

    
46
  printf("Exiting...\n");
47

    
48
  sleep(2);
49
  exit(0);
50
}
51

    
52
int main()
53
{
54
  unsigned char data[10];
55
  char dir;
56
  int paused = 0;
57

    
58
  unsigned char motor_back_args[6] = {0, 0, 0, 0xFF, 0};
59
  unsigned char motor_forward_args[6] = {0, 1, 0, 0xFF, 0};
60

    
61
  cw = new ColonetWireless(SERIAL_PORT, msg_handler, NULL, true, true);
62

    
63
  signal(SIGINT, exit_handler);
64

    
65
  cw->run_listener_thread();
66

    
67
  while(1){
68
    dir = get_mouse();
69

    
70
    usleep(300000);
71

    
72
    printf("%d\n", dir);
73

    
74
    switch (dir) {
75
    case 40:
76
      /* Forward */
77
      cw->send(GLOBAL_DEST, COLONET_COMMAND, MOTOR1_SET, motor_forward_args);
78
      cw->send(GLOBAL_DEST, COLONET_COMMAND, MOTOR2_SET, motor_forward_args);
79
      break;
80
    case 8:
81
      /* Back */
82
      cw->send(GLOBAL_DEST, COLONET_COMMAND, MOTOR1_SET, motor_back_args);
83
      cw->send(GLOBAL_DEST, COLONET_COMMAND, MOTOR2_SET, motor_back_args);
84
      break;
85
    case 24:
86
      /* Left */
87
      //cw->send(GLOBAL_DEST, COLONET_COMMAND, MOTORS_OFF, data);
88
      cw->send(GLOBAL_DEST, COLONET_COMMAND, MOTOR1_SET, motor_forward_args);
89
      break;
90
    case 56:
91
      /* Right */
92
      //cw->send(GLOBAL_DEST, COLONET_COMMAND, MOTORS_OFF, data);
93
      cw->send(GLOBAL_DEST, COLONET_COMMAND, MOTOR2_SET, motor_forward_args);
94
      break;
95
    case 9:
96
      /* Left click */
97
      /* Stop */
98
      cw->clear_message_queue();
99
      cw->send(GLOBAL_DEST, COLONET_COMMAND, MOTORS_OFF, data);
100
      break;
101
    case 10:
102
      /* Right click */
103
      /* Execute first user-defined function */
104
      cw->send(GLOBAL_DEST, COLONET_COMMAND, 0xF0, data);
105
      break;
106
    }
107
  }
108

    
109
  return 0;
110
}