X-Git-Url: http://git.droids-corp.org/?p=protos%2Fxbee-avr.git;a=blobdiff_plain;f=rc_proto.c;h=4b1ffb19361a788a16fd7481a7264eb458f50ac8;hp=8ea3767b26b7fc54d8ba8bfcb57e6b78a2849406;hb=859f064e214825eceeef724007a52e96ea1fb407;hpb=6811941dc02f68dd0305a30f3c1cf72a23566b6b diff --git a/rc_proto.c b/rc_proto.c index 8ea3767..4b1ffb1 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 */ @@ -783,7 +790,7 @@ void rc_proto_dump_stats(void) printf_P(PSTR(" servo_tx: %"PRIu32"\r\n"), peer_stats.servo_tx); printf_P(PSTR(" stats_rx: %"PRIu32"\r\n"), peer_stats.stats_rx); printf_P(PSTR(" stats_tx: %"PRIu32"\r\n"), peer_stats.stats_tx); - if (stats.echo_ans_rx != 0) { + if (peer_stats.echo_ans_rx != 0) { printf_P(PSTR(" echo_ans_latency_ms: %"PRIu32"\r\n"), peer_stats.echo_ans_latency_sum / peer_stats.echo_ans_rx); }