From: Olivier Matz Date: Sat, 8 Mar 2014 20:16:26 +0000 (+0100) Subject: fix range_cb command X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=6ee8078b5fe7f8310961a072a5d9637230f2ded8;p=protos%2Fxbee-avr.git fix range_cb command --- diff --git a/commands.c b/commands.c index 2c663c1..b64dfb1 100644 --- a/commands.c +++ b/commands.c @@ -67,7 +67,7 @@ struct monitor_reg *monitor_current; static int range_period_ms = 1000; static int range_powermask = 0x1F; -//static uint8_t range_power = 0; +static uint8_t range_power = 0; static int range_running = 0; static uint64_t range_dstaddr = 0xFFFF; /* broadcast by default */ static struct callout range_event; @@ -92,12 +92,9 @@ static void monitor_cb(struct callout_mgr *cm, static void range_cb(struct callout_mgr *cm, struct callout *clt, void *dummy) { - (void)cm; - (void)clt; - (void)dummy; -#if 0 + struct rc_proto_power_probe power_probe; + struct xbee_msg msg; uint8_t i, mask; - struct rc_proto_range rangepkt; (void)clt; (void)dummy; @@ -112,20 +109,26 @@ static void range_cb(struct callout_mgr *cm, } range_power = ((range_power + i) & 0x7); - xbeeapp_send_atcmd("PL", &range_power, sizeof(range_power), 0, NULL, NULL); + xbeeapp_send_atcmd("PL", &range_power, sizeof(range_power), NULL, NULL); + + power_probe.type = RC_PROTO_POWER_PROBE; + power_probe.power_level = range_power; - rangepkt.type = RC_PROTO_TYPE_RANGE; - rangepkt.power_level = range_power; + msg.iovlen = 1; + msg.iov[0].buf = &power_probe; + msg.iov[0].len = sizeof(power_probe); - xbeeapp_send_msg(range_dstaddr, &rangepkt, sizeof(rangepkt), 0); + xbeeapp_send_msg(range_dstaddr, &msg, NULL, NULL); if (range_cur_count == 0) { range_running = 0; callout_stop(cm, clt); + return; } callout_reschedule(cm, clt, range_period_ms); -#endif +} + /* callback invoked when a xbee_send is done */ static int8_t send_msg_cb(int8_t retcode, void *frame, unsigned len, void *arg)