ff6a882ccc69a90f2a8ac41237a1128444d39ebf
[zc] / zc-send
1 #!/usr/bin/perl
2 use strict;
3 use warnings;
4
5 use File::Slurp;
6 use autodie;
7
8 use lib '.';
9 use Protocol;
10
11 my $queue = "queue";
12
13 my $path = shift @ARGV;
14 die "Usage: $0 queue/IMEI\n" unless $path;
15
16
17 my $imei;
18 if ( $path =~ m{$queue/(\w+)/} ) {
19         $imei = $1;
20 } else {
21         die "can't find IMEI in $path\n";
22 }
23
24 my $raw = read_parameter_frame( "\x00" => "\x04\xe8\x03\x00\x00",
25         "\x21",
26         "\x44",
27         "\x12",
28         "\x14",
29         "\x1a\x21\x22\x23\x24\x33\x34\x35\x3b" );
30
31 # heartbeat interval
32 my $raw = write_parameter_frame( "\x21" => "\x04" . pack('l',60) );
33
34 # temporary store to done
35 my $t = time();
36 write_file "$queue/$imei/.todo.$t", $raw;
37 # atomic rename to ensure that file is complete
38
39 rename "$queue/$imei/.todo.$t", "$queue/$imei/.pending/$t";
40