mirror of
git://projects.qi-hardware.com/ben-wpan.git
synced 2024-11-26 05:17:19 +02:00
tools/atrf-txrx/atrf-txrx.c: -R and -H can be combined for HardMAC RTT
This commit is contained in:
parent
911eb4d4b5
commit
276613da51
@ -68,6 +68,7 @@ enum mode {
|
|||||||
mode_per,
|
mode_per,
|
||||||
mode_ping,
|
mode_ping,
|
||||||
mode_rtt,
|
mode_rtt,
|
||||||
|
mode_rtt_hmac,
|
||||||
mode_cont_tx,
|
mode_cont_tx,
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -483,6 +484,24 @@ static void rtt_slave(struct atrf_dsc *dsc)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void rtt_slave_hmac(struct atrf_dsc *dsc)
|
||||||
|
{
|
||||||
|
uint8_t buf[MAX_PSDU];
|
||||||
|
int n;
|
||||||
|
|
||||||
|
atrf_rx_mode(dsc, 1);
|
||||||
|
while (run) {
|
||||||
|
n = atrf_rx(dsc, buf, sizeof(buf), 0, NULL);
|
||||||
|
if (n < 0)
|
||||||
|
exit(1);
|
||||||
|
// uncomment if master doesn't turn around fast enough
|
||||||
|
//usleep(10*1000);
|
||||||
|
atrf_tx(dsc, buf, n-2);
|
||||||
|
}
|
||||||
|
atrf_rx_mode(dsc, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static void rtt_master(struct atrf_dsc *dsc, int packets, int size)
|
static void rtt_master(struct atrf_dsc *dsc, int packets, int size)
|
||||||
{
|
{
|
||||||
uint8_t buf[size+2]; /* +CRC */
|
uint8_t buf[size+2]; /* +CRC */
|
||||||
@ -569,7 +588,7 @@ static void usage(const char *name)
|
|||||||
" %s [common_options] -H [message]\n"
|
" %s [common_options] -H [message]\n"
|
||||||
" %s [common_options] -E pause_s [repetitions]\n"
|
" %s [common_options] -E pause_s [repetitions]\n"
|
||||||
" %s [common_options] -P [max_wait_s]\n"
|
" %s [common_options] -P [max_wait_s]\n"
|
||||||
" %s [common_options] -R [packets size]\n"
|
" %s [common_options] -R [-H|packets size]\n"
|
||||||
" %s [common_options] -T offset [command]\n\n"
|
" %s [common_options] -T offset [command]\n\n"
|
||||||
" text message mode:\n"
|
" text message mode:\n"
|
||||||
" message message string to send (if absent, receive)\n"
|
" message message string to send (if absent, receive)\n"
|
||||||
@ -617,6 +636,11 @@ static void set_mode(enum mode *mode, enum mode new)
|
|||||||
*mode = new;
|
*mode = new;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if ((*mode == mode_hmac && new == mode_rtt) ||
|
||||||
|
(*mode == mode_rtt && new == mode_hmac)) {
|
||||||
|
*mode = mode_rtt_hmac;
|
||||||
|
return;
|
||||||
|
}
|
||||||
fprintf(stderr, "multiple mode selections\n");
|
fprintf(stderr, "multiple mode selections\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
@ -751,6 +775,10 @@ int main(int argc, char *const *argv)
|
|||||||
set_power_dBm(dsc, power, 1);
|
set_power_dBm(dsc, power, 1);
|
||||||
rtt_slave(dsc);
|
rtt_slave(dsc);
|
||||||
break;
|
break;
|
||||||
|
case mode_rtt_hmac:
|
||||||
|
set_power_dBm(dsc, power, 1);
|
||||||
|
rtt_slave_hmac(dsc);
|
||||||
|
break;
|
||||||
case mode_cont_tx:
|
case mode_cont_tx:
|
||||||
set_power_dBm(dsc, power, 0);
|
set_power_dBm(dsc, power, 0);
|
||||||
status = test_mode(dsc, cont_tx, NULL);
|
status = test_mode(dsc, cont_tx, NULL);
|
||||||
@ -766,7 +794,7 @@ int main(int argc, char *const *argv)
|
|||||||
break;
|
break;
|
||||||
case mode_per:
|
case mode_per:
|
||||||
case mode_ping:
|
case mode_ping:
|
||||||
/* fall through */
|
case mode_rtt_hmac:
|
||||||
case mode_cont_tx:
|
case mode_cont_tx:
|
||||||
usage(*argv);
|
usage(*argv);
|
||||||
case mode_rtt:
|
case mode_rtt:
|
||||||
@ -817,6 +845,7 @@ int main(int argc, char *const *argv)
|
|||||||
ping(dsc, pause_s, 1);
|
ping(dsc, pause_s, 1);
|
||||||
break;
|
break;
|
||||||
case mode_rtt:
|
case mode_rtt:
|
||||||
|
case mode_rtt_hmac:
|
||||||
usage(*argv);
|
usage(*argv);
|
||||||
break;
|
break;
|
||||||
case mode_cont_tx:
|
case mode_cont_tx:
|
||||||
|
Loading…
Reference in New Issue
Block a user