bugfix switch netstack mode
This commit is contained in:
parent
fd12dcccf0
commit
5de29079ae
1 changed files with 18 additions and 6 deletions
|
@ -56,6 +56,7 @@
|
|||
#include "adc.h"
|
||||
#include "hw-arduino.h"
|
||||
#include "contiki.h"
|
||||
#include "net/netstack.h"
|
||||
|
||||
#define DEBUG 0
|
||||
#if DEBUG
|
||||
|
@ -110,20 +111,26 @@ PROCESS(arduino_sketch, "Arduino Sketch Wrapper");
|
|||
#define LOOP_INTERVAL (1 * CLOCK_SECOND)
|
||||
#endif
|
||||
|
||||
#ifndef SLEEP_NETWORK_INTERVAL
|
||||
#define SLEEP_NETWORK_INTERVAL (60 * CLOCK_SECOND)
|
||||
#endif
|
||||
|
||||
PROCESS_THREAD(arduino_sketch, ev, data)
|
||||
{
|
||||
static struct etimer loop_periodic_timer;
|
||||
|
||||
static struct etimer network_off_periodic_timer;
|
||||
PROCESS_BEGIN();
|
||||
adc_init ();
|
||||
mcu_sleep_init ();
|
||||
setup ();
|
||||
/* Define application-specific events here. */
|
||||
etimer_set(&loop_periodic_timer, LOOP_INTERVAL);
|
||||
etimer_set(&network_off_periodic_timer, SLEEP_NETWORK_INTERVAL);
|
||||
while (1) {
|
||||
PROCESS_WAIT_EVENT();
|
||||
#if PLATFORM_HAS_BUTTON
|
||||
if(ev == sensors_event && data == &button_sensor) {
|
||||
NETSTACK_MAC.off(1);
|
||||
mcu_sleep_off();
|
||||
PRINTF("*******BUTTON*******\n");
|
||||
|
||||
|
@ -136,11 +143,16 @@ PROCESS_THREAD(arduino_sketch, ev, data)
|
|||
}
|
||||
#endif /* PLATFORM_HAS_BUTTON */
|
||||
|
||||
if(etimer_expired(&loop_periodic_timer)) {
|
||||
mcu_sleep_off();
|
||||
loop ();
|
||||
mcu_sleep_on();
|
||||
etimer_reset(&loop_periodic_timer);
|
||||
if(etimer_expired(&network_off_periodic_timer)) {
|
||||
// NETSTACK_MAC.off(0);
|
||||
NETSTACK_MAC.on();
|
||||
etimer_reset(&network_off_periodic_timer);
|
||||
}
|
||||
if(etimer_expired(&loop_periodic_timer)) {
|
||||
mcu_sleep_off();
|
||||
loop ();
|
||||
mcu_sleep_on();
|
||||
etimer_reset(&loop_periodic_timer);
|
||||
}
|
||||
}
|
||||
PROCESS_END();
|
||||
|
|
Loading…
Reference in a new issue