#!/usr/bin/perl use common::sense; my %types; while (<>) { chomp; my ($button, $timings) = split /\t/; my @timings = split /\s+/, $timings; pop @timings; my $bit = 1; my @out = (); for my $t (@timings) { my $out = "<$bit:$t>"; if ($bit) { if ($t >= 9000 && $t <= 9100) { $out = "^"; } elsif ($t >= 580 && $t <= 680) { $out = "*"; } } else { if ($t >= 4400 && $t <= 4500) { $out = "#"; } elsif ($t >= 450 && $t <= 550) { $out = "A"; } elsif ($t >= 1500 && $t <= 1700) { $out = "B"; } } $bit = 1 - $bit; push @out, $out; push @{$types{$out}}, $t; } print $button, "\t", join("", @out), "\n"; } print "\n# Median timings [μs]\n\n"; for my $k (sort keys %types) { my @v = sort @{$types{$k}}; print "$k\t", $v[@v/2], "\n"; }