int main(void){
	struct timespec t;
	t.tv_sec = 0;
	t.tv_nsec = 30000000;
	
	//setup sockets
	struct sockaddr_in relays_socket, analog_in_socket, analog_out_socket, digital_in_socket, digital_out_socket;
	socklen_t slen = sizeof(struct sockaddr_in);	
	int s_relays, s_analog_in, s_analog_out, s_digital_in, s_digital_out;
	
	initServerSocket(25101, &s_analog_in, &analog_in_socket);
	initServerSocket(25301, &s_digital_in, &digital_in_socket);
	
	while(1){
		char buf[255];
		EBUanalogIn analogIn = new_EBUanalogIn;
		
		//wait for analog in packet
		recvfrom(s_analog_in, buf, 255, 0, (struct sockaddr*) &analog_in_socket, &slen);
		memcpy(&analogIn, buf, sizeof(EBUanalogIn)); //copy data to type
		
		system("clear");
		float value;
		for(int i=0; i<24; i++){
			value = getAnalogIn(&analogIn, i);
			printf("A%d= %f\n", (i+1), value);
		}
		
	}
}
int main(void){
	char rcvBuf[255];
	
	commandPacket comPacket;
	int packetId = 1;
	struct sockaddr_in commandInSocket, commandOutSocket;
	socklen_t slen = sizeof(struct sockaddr_in);	
	int s_commandInSocket, s_commandOutSocket;
	
	//setup socket to send to wheel loader
	initClientSocket(CMDO_PORT, &s_commandOutSocket, WL_WIRELESSIP, &commandOutSocket);
//	initClientSocket(CMDO_PORT, &s_commandOutSocket, "127.0.0.1", &commandOutSocket);

	//setup socket to receive packets from simulator
	initServerSocket(CMDI_PORT, &s_commandInSocket, &commandInSocket);
	
	while(1){
		recvfrom(s_commandInSocket, rcvBuf, 255, 0, (struct sockaddr*) &commandInSocket, &slen);
		memcpy(&comPacket, rcvBuf, sizeof(commandPacket));
		
		comPacket.packetId = packetId++;
		clock_gettime(CLOCK_REALTIME, &comPacket.timeSent);
		printf("sending packet\n");
		sendto(s_commandOutSocket, (char*)&comPacket, sizeof(commandPacket), 0, (struct sockaddr*) &commandOutSocket, slen);
	}
	return 0;
}
int main (int argc, char* argv [])
{
  int sockConnection, port;
  char str[128];
  count = 0;
  
  checkArgs(argc, argv);
  sscanf(argv[2],"%d", &port);
  signal(SIGINT,sigHandler);
  if(initServerSocket(&serverSock, argv[1], port)!=0)
  {
    sprintf(str,"I can't use %s:%d\n",argv[1],port);
    perror(str);
    return -1;
  }
  if (count < 50) {
	  while(waitConexion(serverSock,&sockConnection)!=-1)
	  {
	  	pthread_create(&threadArray[count], NULL, attendClientThread, (void *) sockConnection);
	  	count++;
	  }
  } else {
  	printf("Server busy, aborting...\n");
  	return -1;
  }
  return 0;
}