13 my $path = shift @ARGV;
14 die "Usage: $0 queue/IMEI\n" unless $path;
18 if ( $path =~ m{$queue/(\w+)/} ) {
21 die "can't find IMEI in $path\n";
26 if ( $ARGV[0] =~ m/interval/ ) {
28 my $interval = $ARGV[1] || 300;
29 print "set heartbeat interval to $interval s\n";
30 $raw = write_parameter_frame( "\x21" => "\x04" . pack('l',$interval) );
31 } elsif ( $ARGV[0] =~ m/zero/ ) {
32 my $rel_zero = $ARGV[1] || 0;
33 print "Set relative zero $rel_zero\n";
34 $raw = write_parameter_frame( "\x3a" => "\x01" . pack('C',$rel_zero) );
37 print "read_parameter_frame\n";
38 $raw = read_parameter_frame( "\x00" => "\x04\xe8\x03\x00\x00",
43 "\x1a\x21\x22\x23\x24\x33\x34\x35\x3a\x3b" );
46 # temporary store to done
48 write_file "$queue/$imei/.todo.$t", $raw;
49 # atomic rename to ensure that file is complete
51 rename "$queue/$imei/.todo.$t", "$queue/$imei/.pending/$t";