use callout from aversive
[protos/xbee-avr.git] / commands.c
index 2e02551..df76f47 100644 (file)
@@ -73,7 +73,7 @@ static struct callout range_event;
 static int range_count = 100;
 static int range_cur_count = 0;
 
-static void monitor_cb(struct callout_manager *cm,
+static void monitor_cb(struct callout_mgr *cm,
                       struct callout *clt, void *dummy)
 {
        (void)clt;
@@ -84,12 +84,10 @@ static void monitor_cb(struct callout_manager *cm,
 
        xbeeapp_send_atcmd(monitor_current->atcmd, NULL, 0, 0, NULL, NULL);
        monitor_current = LIST_NEXT(monitor_current, next);
-       callout_reset(cm, &monitor_event,
-                     monitor_period_ms / monitor_count,
-                     SINGLE, monitor_cb, NULL);
+       callout_reschedule(cm, clt, monitor_period_ms / monitor_count);
 }
 
-static void range_cb(struct callout_manager *cm,
+static void range_cb(struct callout_mgr *cm,
                     struct callout *clt, void *dummy)
 {
        (void)cm;
@@ -124,9 +122,7 @@ static void range_cb(struct callout_manager *cm,
                return;
        }
 
-       callout_reset(cm, &range_event,
-                     range_period_ms,
-                     SINGLE, range_cb, NULL);
+       callout_reschedule(cm, clt, range_period_ms);
 #endif
 }
 
@@ -744,9 +740,8 @@ static void cmd_range_parsed(void *parsed_result, void *data)
                        return;
                }
                range_cur_count = range_count;
-               callout_init(&range_event);
-               callout_reset(&cm, &range_event, 0,
-                             SINGLE, range_cb, NULL);
+               callout_init(&range_event, range_cb, NULL, 0);
+               callout_schedule(&cm, &range_event, 0); /* immediate */
                range_running = 1;
        }
        else if (!strcmp(res->action, "end")) {
@@ -994,8 +989,8 @@ static void cmd_monitor_parsed(void *parsed_result, void *data)
                        printf_P(PSTR("no regs to be monitored\r\n"));
                        return;
                }
-               callout_init(&monitor_event);
-               callout_reset(&cm, &monitor_event, 0, SINGLE, monitor_cb, NULL);
+               callout_init(&monitor_event, monitor_cb, NULL, 0);
+               callout_schedule(&cm, &monitor_event, 0); /* immediate */
                monitor_running = 1;
                monitor_current = LIST_FIRST(&xbee_monitor_list);
                printf_P(PSTR("monitor cb: %S %s\r\n"),