Esempio n. 1
0
char TOS_COMMAND(YELLOW_LED_OFF)(){

  printf("Y_off");
  SET_YELLOW_LED_PIN();
  VAR(leds_on) &= 0x3;
  return 1;
}
Esempio n. 2
0
char TOS_COMMAND(LEDS_INIT)(){
  VAR(leds_on) = 0;
  SET_RED_LED_PIN();
  SET_YELLOW_LED_PIN();
  SET_GREEN_LED_PIN();
  return 1;

}
Esempio n. 3
0
char            TOS_COMMAND(SEND_DV_FP_INIT) () {
    CLR_RED_LED_PIN();
    CLR_GREEN_LED_PIN();
    CLR_YELLOW_LED_PIN();
    TOS_CALL_COMMAND(SEND_DV_FP_SUB_INIT) ();
    printf("SEND_DV_FP initialized\n");
    SET_RED_LED_PIN();
    SET_GREEN_LED_PIN();
    SET_YELLOW_LED_PIN();

    return 1;
}
Esempio n. 4
0
char TOS_EVENT(AGRO_SUB_DATA_READY)(short data){
	if(data > VAR(my_strength)) VAR(my_strength) = data;
	VAR(count) ++;
	if(VAR(count) == 8){
	    VAR(count) = 0;
	    if(VAR(id_gen) == 0) VAR(id_gen) = data;
	    if(VAR(my_strength) > VAR(max_strength) && VAR(my_strength) > MAG_THRESHOLD){
		uint8_t i;
    	    	TOS_CALL_COMMAND(AGRO_LED1_ON)();	
		agroDataPacket* pack = (agroDataPacket*)VAR(rel_ptr)->data;
		pack->pack_ID = VAR(id_gen);
		pack->from = TOS_LOCAL_ADDRESS;
		pack->readings[0].nodeID = TOS_LOCAL_ADDRESS;
		pack->readings[0].value = VAR(my_strength);
		for(i = 1; i < 4; i ++){
        		pack->readings[i].value = VAR(dataBlock)[i-1].value;
        		pack->readings[i].nodeID = VAR(dataBlock)[i-1].nodeID;
        		VAR(dataBlock)[i-1].value = 0;
        		VAR(dataBlock)[i-1].nodeID = 0xff;
		}
		bar_foo();
	    }else{
    	    	TOS_CALL_COMMAND(AGRO_LED1_OFF)();
	    }
	    VAR(my_strength) = 0;
	    VAR(max_strength) = 0;
	    
	}else {
	  if(data > MAG_THRESHOLD && VAR(msg_send_pending) == 0){
		CLR_YELLOW_LED_PIN();
   		agroDataPacket* pack = (agroDataPacket*)VAR(msg)->data;		
		pack->readings[0].nodeID = TOS_LOCAL_ADDRESS;
		pack->readings[0].value = data;
		//TIME to send out an data messgae.
		VAR(msg)->length = 6;
		VAR(msg_send_pending) = TOS_CALL_COMMAND(AGRO_SUB_SEND_MSG)(TOS_BCAST_ADDR, AM_MSG(AGRO_DATA_MSG), VAR(msg));
	   }else{
		SET_YELLOW_LED_PIN();
    	    	TOS_CALL_COMMAND(AGRO_LED1_OFF)();
	   }
	}
        return 1;
}