realraum code rsl336t (conrad)
[svn42.git] / rf433rcv / pc / realraum_codes.pl
index 774d6df..6508167 100755 (executable)
@@ -4,8 +4,9 @@ use strict;
 my %remotes =
 (
   schwarz => [\&schwarz, "01110101a1b1c1000000dddd"] ,
-  weiss => \&weiss,
-  pollin => \&pollin,
+  weiss => [\&weiss,"0c0d01010b0001010001010a"],
+  pollin => [\&pollin,"0q0w0e0r0tbbbbbbbbbbaaaa"],
+  rsl336t => [\&rsl336t,"switchbutton010101oo"],
 );
 
 &main();
@@ -38,10 +39,59 @@ sub schwarz
 
 sub weiss
 {
-
+  my ($switch,$taste,$on) = @_ or die "parameters {a|b|c|d} {1|2} {0|1}";
+  my $data = {
+              a=> ($on?'1':'0'),
+              b=> ($taste==1?'0':'1'),
+              c=>0,
+              d=>0,
+              }; 
+  if($switch eq 'b')
+  {
+    $data->{c}=1;
+  } elsif ($switch eq 'c') {
+    $data->{d}=1;
+  } elsif ($switch eq 'd') {
+    $data->{c}=1;
+    $data->{d}=1;
+  }
+  return $data;
 }
 
 sub pollin
 {
+  my ($switch,$taste,$on) = @_ or die "parameters 00000 {a|b|c|d} {0|1}";
+  my %tasten = (
+    a => '0001010101',
+    b => '0100010101',
+    c => '0101000101',
+    d => '0101010001',
+    e => '0101010100',
+  );
+  my $data = {
+              aaaa=> ($on?'0001':'0100'),
+              bbbbbbbbbb=> $tasten{$taste},
+              }; 
+  my @switches = split //,$switch;
+  @switches =  map { $_?'0':'1'} @switches;
+  @{$data}{qw/q w e r t/}=@switches;
+#  print join ',',%$data;
+  return $data;
+}
 
+sub rsl336t
+{
+  my ($switch,$button,$on) = @_ or die "parameters {a|b|c|d} {a|b|c|d} {0|1}";
+  my %tasten = (
+    a => '00010101',
+    b => '01000101',
+    c => '01010001',
+    d => '01010100',
+  );
+  my $data = {
+              oo=> ($on?'01':'00'),
+              switch=> $tasten{$switch},
+              button=> $tasten{$button},
+              }; 
+  return $data;
 }