git.droids-corp.org
/
protos
/
xbee-avr.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
prevent going in raw mode when monitor/range is running
[protos/xbee-avr.git]
/
commands.c
diff --git
a/commands.c
b/commands.c
index
2e02551
..
10b62cc
100644
(file)
--- a/
commands.c
+++ b/
commands.c
@@
-56,7
+56,7
@@
extern const parse_inst_t PROGMEM cmd_log;
extern const parse_inst_t PROGMEM cmd_log_show;
extern const parse_inst_t PROGMEM cmd_log_type;
extern const parse_inst_t PROGMEM cmd_stack_space;
extern const parse_inst_t PROGMEM cmd_log_show;
extern const parse_inst_t PROGMEM cmd_log_type;
extern const parse_inst_t PROGMEM cmd_stack_space;
-extern const parse_inst_t PROGMEM cmd_
scheduler
;
+extern const parse_inst_t PROGMEM cmd_
callout
;
static int monitor_period_ms = 1000;
static int monitor_running = 0;
static int monitor_period_ms = 1000;
static int monitor_running = 0;
@@
-73,7
+73,7
@@
static struct callout range_event;
static int range_count = 100;
static int range_cur_count = 0;
static int range_count = 100;
static int range_cur_count = 0;
-static void monitor_cb(struct callout_m
anage
r *cm,
+static void monitor_cb(struct callout_m
g
r *cm,
struct callout *clt, void *dummy)
{
(void)clt;
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);
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_m
anage
r *cm,
+static void range_cb(struct callout_m
g
r *cm,
struct callout *clt, void *dummy)
{
(void)cm;
struct callout *clt, void *dummy)
{
(void)cm;
@@
-121,12
+119,10
@@
static void range_cb(struct callout_manager *cm,
if (range_cur_count == 0) {
range_running = 0;
if (range_cur_count == 0) {
range_running = 0;
-
return
;
+
callout_stop(cm, clt)
;
}
}
- callout_reset(cm, &range_event,
- range_period_ms,
- SINGLE, range_cb, NULL);
+ callout_reschedule(cm, clt, range_period_ms);
#endif
}
#endif
}
@@
-744,9
+740,9
@@
static void cmd_range_parsed(void *parsed_result, void *data)
return;
}
range_cur_count = range_count;
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(&xbeeboard.mainloop_cm
,
+ &range_event, 0); /* immediate */
range_running = 1;
}
else if (!strcmp(res->action, "end")) {
range_running = 1;
}
else if (!strcmp(res->action, "end")) {
@@
-755,7
+751,7
@@
static void cmd_range_parsed(void *parsed_result, void *data)
return;
}
range_running = 0;
return;
}
range_running = 0;
- callout_stop(&cm, &range_event);
+ callout_stop(&
xbeeboard.mainloop_
cm, &range_event);
}
}
}
}
@@
-994,8
+990,9
@@
static void cmd_monitor_parsed(void *parsed_result, void *data)
printf_P(PSTR("no regs to be monitored\r\n"));
return;
}
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(&xbeeboard.mainloop_cm,
+ &monitor_event, 0); /* immediate */
monitor_running = 1;
monitor_current = LIST_FIRST(&xbee_monitor_list);
printf_P(PSTR("monitor cb: %S %s\r\n"),
monitor_running = 1;
monitor_current = LIST_FIRST(&xbee_monitor_list);
printf_P(PSTR("monitor cb: %S %s\r\n"),
@@
-1009,7
+1006,7
@@
static void cmd_monitor_parsed(void *parsed_result, void *data)
return;
}
monitor_running = 0;
return;
}
monitor_running = 0;
- callout_stop(&cm, &monitor_event);
+ callout_stop(&
xbeeboard.mainloop_
cm, &monitor_event);
}
}
}
}
@@
-1172,7
+1169,7
@@
static void cmd_monitor_del_parsed(void *parsed_result, void *data)
monitor_count --;
if (monitor_count == 0) {
printf_P(PSTR("Disable monitoring, no more event\r\n"));
monitor_count --;
if (monitor_count == 0) {
printf_P(PSTR("Disable monitoring, no more event\r\n"));
- callout_stop(&cm, &monitor_event);
+ callout_stop(&
xbeeboard.mainloop_
cm, &monitor_event);
monitor_running = 0;
return;
}
monitor_running = 0;
return;
}
@@
-1250,6
+1247,11
@@
static void cmd_raw_parsed(void *parsed_result, void *data)
{
(void)parsed_result;
(void)data;
{
(void)parsed_result;
(void)data;
+
+ if (range_running || monitor_running) {
+ printf_P(PSTR("stop running range or monitor first\r\n"));
+ return;
+ }
printf_P(PSTR("switched to raw mode, CTRL-D to exit\r\n"));
rdline_stop(&xbeeboard.rdl); /* don't display prompt when return */
xbee_raw = 1;
printf_P(PSTR("switched to raw mode, CTRL-D to exit\r\n"));
rdline_stop(&xbeeboard.rdl); /* don't display prompt when return */
xbee_raw = 1;
@@
-1897,7
+1899,7
@@
const parse_ctx_t PROGMEM main_ctx[] = {
&cmd_log_show,
&cmd_log_type,
&cmd_stack_space,
&cmd_log_show,
&cmd_log_type,
&cmd_stack_space,
- &cmd_
scheduler
,
+ &cmd_
callout
,
&cmd_help,
&cmd_neigh_del,
&cmd_neigh_add,
&cmd_help,
&cmd_neigh_del,
&cmd_neigh_add,