[scripts] AggCheck: -n prints transmitters

When called with -n, owlps-aggcheck now prints the transmitter of each
request as the first column.
This commit is contained in:
Matteo Cypriani 2014-07-24 12:04:54 -04:00
parent a56a8d3d5d
commit 8c5e8c62f6
1 changed files with 13 additions and 4 deletions

View File

@ -45,7 +45,10 @@ Print signal strength distribution in CSV format.
=item B<-n> =item B<-n>
Print per-request statistics in CSV format, as well as the total number of Print per-request statistics in CSV format, as well as the total number of
packets received by each capture point. packets received by each capture point. Please note that this display is ordered
by timestamp (unlike the default display which respects the order of the lines
in the input file); this might not correspond to the actual order of
transmission if the devices' clocks are not synchronised.
=item B<-v> =item B<-v>
@ -89,6 +92,11 @@ use constant PREFIX_FIELDS => 9;
# Line number # Line number
my $line_nb = 0; my $line_nb = 0;
# Association between timestamp and transmitter of each request
# key = timestamp
# value = transmitter's MAC address
my %transmitters;
# Structure that holds the global count of packets # Structure that holds the global count of packets
# key = timestamp # key = timestamp
# value = dictionary {key = CP's MAC address # value = dictionary {key = CP's MAC address
@ -231,6 +239,7 @@ while (<>) {
} }
# Save the values for the stats # Save the values for the stats
$transmitters{$timestamp} = $mac_trx;
$global_stats{$timestamp} = {%present_cps}; $global_stats{$timestamp} = {%present_cps};
# Print the number of packets for each CP and count the number of CPs # Print the number of packets for each CP and count the number of CPs
@ -257,13 +266,13 @@ if ($print_stats) {
# Print the header line # Print the header line
my @cps_names = sort keys %global_present_cps; my @cps_names = sort keys %global_present_cps;
print "Timestamp"; print "Transmitter;Timestamp";
print ";$_" foreach (@cps_names); print ";$_" foreach (@cps_names);
print "\n"; print "\n";
# Print the requests # Print the requests
foreach my $timestamp (sort keys %global_stats) { foreach my $timestamp (sort keys %global_stats) {
print "$timestamp"; print "$transmitters{$timestamp};$timestamp";
my $present_cps = $global_stats{$timestamp}; my $present_cps = $global_stats{$timestamp};
# Print the CPs in the same order as in the header and count the totals # Print the CPs in the same order as in the header and count the totals
foreach my $mac (@cps_names) { foreach my $mac (@cps_names) {
@ -275,7 +284,7 @@ if ($print_stats) {
} }
# Print the totals # Print the totals
print "Total"; print "Total;";
print ";$total_nb_pkts{$_}" foreach (@cps_names); print ";$total_nb_pkts{$_}" foreach (@cps_names);
print "\n"; print "\n";
} }