use Data::Dump qw(dump);
use File::Slurp;
+use POSIX qw(strftime);
-use lib '.';
+use FindBin;
+use lib "$FindBin::Bin/.";
use Protocol;
-my $debug = $ENV{DEBUG};
+my $debug = $ENV{DEBUG} // 0;
$| = 1;
if ( $debug > 1 ) {
my $raw;
foreach my $filename ( @ARGV ) {
- my $up_down = $1 if $filename =~ m/(up|down|sent)/;
+ my ( $up_down, $t );
+ if ( $filename =~ m/(\d+)\.(up|down|sent)/ ) {
+ $t = $1;
+ $up_down = $2;
+ } else {
+ warn "ERROR: can't parse $filename, skipping\n";
+ next;
+ }
my $raw = read_file $filename;
- print "# $filename size:", -s $filename, " ";
+ print "# ",strftime("%Y-%m-%dT%H:%M:%S",localtime($t)), " $filename size:", -s $filename, " ";
$up_down = 'down' if $up_down eq 'sent';
my $hash = protocol_decode( $up_down, $raw );
warn "hash = ",dump($hash) if $debug;
+ my $imei = $1 if $filename =~ m{queue/(\d+)};
+
my $function_code = $hash->{function_code} || die "no function_code";
my $fc_desc = $function_code_description->{$up_down}->{$function_code} || die "no function_code_description for $up_down $function_code";
print " function_code=$function_code ",
foreach my $data_id ( @{ $hash->{data_id_order} } ) {
print join(" | ",
+ $imei,
$hash->{up_down},
unpack('H*', chr($data_id)),
$protocol->{$data_id}->{description},