to github
[svn42.git] / rf433rcv / pc / decode.pl
index c5822e5..f9aeb32 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 use strict;
-my @data =  split /,/,<>;
+my @data =  split //,<>;
 
 my @statistics;
 
@@ -22,35 +22,45 @@ for my $input (@data)
 
 for my $i (0..1)
 {
-  print "$i:\n";
+  print STDERR "$i:\n";
   my $stat = $statistics[$i];
   for my $key (sort {$a <=> $b} keys %$stat)
   {
-    print "$key $stat->{$key}\n";
+    if ($stat->{$key+1})
+    {
+      if ($stat->{$key+1}>$stat->{$key})
+      {
+        $stat->{$key+1}+=$stat->{$key};
+        delete $stat->{$key};
+      } else {
+        $stat->{$key}+=$stat->{$key+1};
+        delete $stat->{$key+1};
+      }
+    }
+    print STDERR "$key $stat->{$key}\n";
   }
 }
 my $seq;
-if (my $delemiter = $ARGV[0])
+if (defined $ARGV[0])
 {
-  print "Starting decoding: $delemiter\n";
-  my ($state,$time)=split /,/,$delemiter;
+  my ($state)=$ARGV[0];
+  my ($time) = reverse sort {$a <=> $b}  keys %{$statistics[$state]} ;
   my $start = 0;
+  my $counter=0;
   for my $data (@lengths)
   {
-    if ($start)
-    {
-      print $data->[0] . " => " . $data->[1] ."\n";
-      $seq.= ($data->[0].',') x $data->[1];
-    }
     if ($data->[0]==$state && $data->[1]==$time)
     {
       if ($start)
-      { last;
+      { 
+        print $counter-2,"\n";
+        last;
       } else {
         $start =1;
+        print $counter-1," ";
       }
     }
+    $counter+=$data->[1];
   }
-  chop $seq;
-  print STDERR "$seq\n";
 }
+