xbee_proto: fix parsing hdr len
[protos/xbee-avr.git] / rc_proto.c
1 #include <aversive.h>
2 #include <aversive/queue.h>
3
4 #include <stdint.h>
5
6 #include <uart.h>
7
8 #include <scheduler.h>
9 #include <clock_time.h>
10 #include <parse.h>
11 #include <rdline.h>
12 #include <timer.h>
13
14 #include "xbee_proto.h"
15 #include "callout.h"
16 #include "rc_proto.h"
17 #include "main.h"
18
19
20
21
22 struct power_levels {
23         int ttl;
24         int power_db;
25 };
26
27 struct power_levels power_levels[MAX_POWER_LEVEL];
28
29 static int set_power_level(void *frame, unsigned len, void *arg)
30 {
31         struct xbee_atresp_hdr *atresp = (struct xbee_atresp_hdr *)frame;
32         int level = (intptr_t)arg;
33         uint8_t db;
34         db = atresp->data[0];
35
36         power_levels[level].power_db = db;
37         power_levels[level].ttl = 2;
38         return 0;
39 }
40
41 void rc_proto_rx_range(int power_level)
42 {
43         xbeeapp_send_atcmd("DB", NULL, 0, 0,
44                            set_power_level, (void *)(intptr_t)power_level);
45
46 }
47
48