--- /dev/null
+#!/usr/bin/perl
+use strict;
+use warnings;
+
+use File::Slurp;
+use autodie;
+
+use lib '.';
+use Protocol;
+
+my $queue = "queue";
+
+my $path = shift @ARGV;
+die "Usage: $0 queue/IMEI\n" unless $path;
+
+
+my $imei;
+if ( $path =~ m{$queue/(\w+)/} ) {
+ $imei = $1;
+} else {
+ die "can't find IMEI in $path\n";
+}
+
+my $raw = read_parameter_frame( "\x00" => "\x04\xe8\x03\x00\x00",
+ "\x21",
+ "\x44",
+ "\x12",
+ "\x14",
+ "\x1a\x21\x22\x23\x24\x33\x34\x35\x3b" );
+
+# heartbeat interval
+my $raw = write_parameter_frame( "\x21" => "\x04" . pack('l',60) );
+
+# temporary store to done
+my $t = time();
+write_file "$queue/$imei/down/.done/$t", $raw;
+# atomic rename to ensure that file is complete
+
+rename "$queue/$imei/down/.done/$t", "$queue/$imei/down/$t";
+