From 6ee8078b5fe7f8310961a072a5d9637230f2ded8 Mon Sep 17 00:00:00 2001
From: Olivier Matz <zer0@droids-corp.org>
Date: Sat, 8 Mar 2014 21:16:26 +0100
Subject: [PATCH] fix range_cb command

---
 commands.c | 25 ++++++++++++++-----------
 1 file changed, 14 insertions(+), 11 deletions(-)

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)
-- 
2.39.5