X-Git-Url: http://git.droids-corp.org/?p=protos%2Fxbee-avr.git;a=blobdiff_plain;f=rc_proto.c;h=4c09ac3026fdc8e52f8244d282012b24a4d3d89b;hp=8ea3767b26b7fc54d8ba8bfcb57e6b78a2849406;hb=704c313fd4d921d356e6fe846554591b03e20de7;hpb=6811941dc02f68dd0305a30f3c1cf72a23566b6b diff --git a/rc_proto.c b/rc_proto.c index 8ea3767..4c09ac3 100644 --- a/rc_proto.c +++ b/rc_proto.c @@ -149,7 +149,7 @@ static void rc_proto_rx_power_probe(int power_level) (void *)(intptr_t)power_level); } -/* called every second */ +/* called every second to decide which power should be used */ static void compute_best_power(void) { int8_t best_power_level = -1; @@ -183,8 +183,13 @@ static void compute_best_power(void) power_level_global = best_power_level; } -static uint8_t get_best_power(void) +/* return the best power level, or -1 if best power level computation is + * disabled. */ +static int8_t get_best_power(void) { + if ((rc_proto_flags & RC_PROTO_FLAGS_COMPUTE_BEST_POW) == 0) + return -1; + /* special values */ if (power_level_global == -1) { power_level_global = -4; @@ -728,10 +733,12 @@ static void rc_proto_cb(struct callout_mgr *cm, struct callout *tim, void *arg) } /* send stats to peer every second */ - diff = t - prev_compute_pow; - if (diff >= 1000) { - compute_best_power(); - prev_compute_pow = t; + if (rc_proto_flags & RC_PROTO_FLAGS_COMPUTE_BEST_POW) { + diff = t - prev_compute_pow; + if (diff >= 1000) { + compute_best_power(); + prev_compute_pow = t; + } } /* send stats to peer every second */