fix date / time stamp decoding
authorminima <minima>
Wed, 23 Feb 2005 17:27:28 +0000 (17:27 +0000)
committerminima <minima>
Wed, 23 Feb 2005 17:27:28 +0000 (17:27 +0000)
perl/Aranea.pm
perl/Thingy/Dx.pm

index 3a2190e7389ccabfe697172d615245594a4db180..5663b80adc89a337ffe779557f5752fbf32e84b1 100644 (file)
@@ -286,7 +286,7 @@ sub genheader
 sub decode_dts
 {
        my $dts = shift;
-       my ($dt, $seqno) = map {hex} unpack "H6H4", $dts;
+       my ($dt, $seqno) = map {hex} unpack "A6 A4", $dts;
        my $secs = $dt & 0x3FFFF;
        $dt >>= 18;
        my $day = $dt >> 1;
@@ -374,6 +374,7 @@ sub input
        my $class = 'Thingy::' . ucfirst(lc $cmd);
        my $thing;
        my ($t, $seqno, $ntp) = decode_dts($dts) unless $err;
+       dbg("dts: $dts = $ntp $t($main::systime) $seqno") if isdbg('dts');
        $err .= "invalid date/seq," unless $t;
        
        if ($err) {
index c94760c25378809e7959fabcca595e76fab408b8..1311e8f15fa6e99fd776d276703781f5f1a5818f 100644 (file)
@@ -31,7 +31,7 @@ sub gen_Aranea
                $thing->{f} = $sd->[0];
                $thing->{c} = $sd->[1];
                $thing->{b} = $sd->[4] unless $thing->{user};
-               my $t = int($sd->[2] / 60);
+               my $t = $sd->[2];
                $thing->{t} = sprintf("%X", $t) unless $t eq int($main::systime / 60);
                $thing->{o} =  $sd->[7] unless $sd->[7] eq $main::mycall; 
                $thing->{i} = $sd->[3] if $sd->[3];
@@ -45,7 +45,7 @@ sub from_Aranea
        my $thing = shift;
        return unless $thing;
        my $t = hex($thing->{t}) if exists $thing->{t};
-       $t ||= $thing->{time} / 60;     # if it is an aranea generated
+       $t ||= int($thing->{time} / 60);        # if it is an aranea generated
        my @spot = Spot::prepare(
                                                         $thing->{f},
                                                         $thing->{c},