public void timeoutTimer(SpotTimer timeout) throws IOException 
	{
		//switch states
		switch(this.currentState.getIdName())
		{
			case READY_ST_NUM://ready status
				break;
			case WAIT_ST_NUM://wait response
				//control to be sure that the PID of the Timer is the ID of the FSM
				if(timeout.getPID().compareTo(this.ID)==0)
				{
					//if is a GiveUp Timer
					if(timeout.getTID().compareTo(GIVE_UP_TIMER)==0)
					{
						SunSpotUtil.blinkLeds();//blink leds
						this.currentState= this.ready;//go in ready status
					}
				}
				break;
			case SEND_ST_NUM://sending
				if(timeout.getPID().compareTo(this.ID)==0)
				{
					//if is a send again timer
					if(timeout.getTID().compareTo(SEND_AGAIN_TIMER)==0)
					{
						//start send again timer
						sendAgain = this.createTimer(SEND_AGAIN_TIMER,TIME_OF_SEND_AGAIN_TIMER);
						//add to Handler
						HandleTimer.addTimer(sendAgain);
						//reading the light sensors
						int result = SunSpotUtil.getLightAvg();
						Message out = new Message(getMySender(),receiver,Message.Reading+result);
						//System.out.println(Message.Reading+result);
						communicate.sendRemoteMessage(out);
						//change the state
						this.currentState= this.send;
					}
				}
				break;
		}
		
	}