UniSaSA  1.0
C Gateway
start_gateway.c
1 #include <stdio.h>
2 #include "gateway.h"
3 #include <signal.h>
4 #include "simulationConnector.h"
5 #include "serialConnector.h"
6 #ifdef linux
7 #include "wiimoteConnector.h"
8 #endif
9 
10 void ctrl_c(int s)
11 {
12  printf("Ctrl-C\n");
13  close_gateway();
14  exit(0);
15 }
16 
17 
18 void toStringSensor(sensor_t sensor)
19 {
20  printf("- Sensor ID: %u -\n",sensor.ID.integer);
21  printf("Type Sensor: %u\n",sensor.typeSensor.integer);
22  printf("Size Otput: %u\n",sensor.sizeOutput);
23  printf("Type Output: %u\n", sensor.typeOutput);
24 }
25 
26 void toStringActuator(actuator_t actuator)
27 {
28  printf("- Actuator ID: %u -\n",actuator.ID.integer);
29  printf("Type Actuator: %u\n",actuator.typeActuator.integer);
30  printf("Size Input: %u\n",actuator.sizeInput);
31  printf("Type Input: %u\n", actuator.typeInput);
32 }
33 
34 void toStringDevice(device_t device)
35 {
36  printf("==================================================\n");
37  printf("Device, ID: %u, address: %u\n",device.ID.integer,device.address.integer);
38  printf("Connector: \"%s\"\n",device.connector.name);
39  printf("Size msg2dev: %u\n",device.sizeIO);
40  printf("Size IDSen: %u, size IDAct: %u\n", device.sizeIDSensor,device.sizeIDActuator);
41  printf("==================================================\n");
42 }
43 
44 void printAll(unsigned int numDevices,device_t* devs)
45 {
46  unsigned int d,s,a;
47  for(d=0; d < numDevices; d++)
48  {
49  toStringDevice(devs[d]);
50 
51  for(s=0; s < devs[d].numSensors.integer; s++)
52  toStringSensor(devs[d].sensors[s]);
53  printf("~~~~~~~~\n");
54  for(a=0; a < devs[d].numActuators.integer; a++)
55  toStringActuator(devs[d].actuators[a]);
56  }
57 }
58 
59 int main()
60 {
61  int loop = 1;
62  int client;
63 
64  //atexit(close_gateway);
65  signal(SIGINT, &ctrl_c);
66 
67  //load_table("./table.txt");
68 
69  init_gateway();
70  //addConnector(createStaticConnector());
71 #ifdef __linux__
72  //addConnector(createWiiMoteConnector());
73  addConnector(createSerialConnector("/dev/ttyACM0",9600));
74 #endif
75 #ifdef __FreeBSD__
76  addConnector(createSerialConnector("/dev/cuaU0",9600));
77 #endif
79 
80  printAll(getNumDevices(),getDevices());
81 
82  create_tcp_server(11003);
83 
84  while(loop)
85  {
86  client = wait_client();
87  client_communication(client);
88  }
89 
90  return 0;
91 
92 }
device_t * getDevices()
Definition: gateway.c:292
void close_gateway()
Definition: gateway.c:356
void init_gateway()
Definition: gateway.c:67
void create_tcp_server(unsigned int port)
Definition: gateway.c:330
void addConnector(connectorInterface_t newConnector)
Definition: gateway.c:105
void discoveryAndCreateTable()
Definition: gateway.c:111
int wait_client()
Definition: gateway.c:363
unsigned int getNumDevices()
Definition: gateway.c:297
void client_communication(int client_sock)
Definition: gateway.c:374