Hello,

>On occasion(after a few days) a random mote will stop sending data and the red 
>led will
>stay on until the reset button is pressed. (motes that fail do not recover).

Yes, it's annoying isn't it! I looked into this problem and couldn't decide 
whether the problem was in Delta 
or in the rest of the networking code. 


>On a side note, can the watchdog be implemented in low-power
>mode? And would this be a possible solution of if moving to tinyos 2.0 would 
>help?

Yes, implement the WDT watchdog timer. This is what I did in Delta:

  void touch_watchdog(){
    WDTCTL = WDT_ARST_1000;
  }


Have a timer touch_watchdog() every 500ms. Since I have Delta sending messages 
every 10 minutes (DELTA_TIME = 614400), I use:

  uint32_t count = 0;
  //DELTA_TIME plus 30 secs
  uint32_t WDT_TIME = (int)(((DELTA_TIME/1000)*2)+60);

  event result_t TimerWatchdog.fired() {
        if(count < WDT_TIME){
                touch_watchdog();
                count = count + 1;
        }
    return SUCCESS;
  }


  event result_t SendDeltaMsg.sendDone(TOS_MsgPtr _msg, result_t _success) {
    call Leds.redOff();
    count = 0;
    return SUCCESS;
  }


This ensures that if a message fails to send after 10 mins and 30 secs, the 
mote will reboot. 
I haven't had any lock-ups since.


Regards

Simon Davis


=


_______________________________________________
Tinyos-help mailing list
Tinyos-help@Millennium.Berkeley.EDU
https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to