]> cloudbase.mooo.com Git - irmp.git/commitdiff
version 1.9.2: corrected RUWIDO protocol
authorukw <ukw@aeb2e35e-bfc4-4214-b83c-9e8de998ed28>
Mon, 21 Feb 2011 11:52:25 +0000 (11:52 +0000)
committerukw <ukw@aeb2e35e-bfc4-4214-b83c-9e8de998ed28>
Mon, 21 Feb 2011 11:52:25 +0000 (11:52 +0000)
git-svn-id: svn://mikrocontroller.net/irmp@54 aeb2e35e-bfc4-4214-b83c-9e8de998ed28

IR-Data/t-home-mediareceiver-15kHz.txt [new file with mode: 0644]
IR-Data/t-home-mediareceiver.txt
IR-Data/test-suite.sh
README.txt
irmp.c
irmp.h
irmpconfig.h

diff --git a/IR-Data/t-home-mediareceiver-15kHz.txt b/IR-Data/t-home-mediareceiver-15kHz.txt
new file mode 100644 (file)
index 0000000..5fd6151
--- /dev/null
@@ -0,0 +1,61 @@
+#1\r
+000000111111110000001111000000000011110000011111111100000111100000000001111111110000000000111111110000001111000001111000000111000000111100000111100000000001111111100000011111111111111111\r
+000001111111110000011110000000000011100000011111111000000111100000000001111111100000000000111111110000011110000001111000001111000000111000000111100000000001111111100000011111111111111111\r
+000000111111110000001111000000000011110000011111111100000111100000000001111111110000000000111111110000001111000001111000000111000000111100000111100000000001111111110000011111111111111111\r
+000001111111110000001111000000000111110000011111111100000111100000000001111111100000000000111111110000011110000001111000000111000000111000000111100000000001111111100000011111111111111111\r
+000000111111111000001111000000000011110000001111111100000011100000000000111111110000000000111111111000001111000000111000000111100000111100000011100000000000111111110000001111111111111111\r
+#2\r
+0000001111111100000011110000000000111100000111111111000001111000000000011111111000000000001111111100000011100000011110000001110000001110000000000011111111000000000011111111111111\r
+0000001111111100000011110000000000111100000111111111000001111000000000011111111000000000001111111100000011100000011110000001110000001110000000000011111111000000000011111111111111\r
+000000111111111000001111000000000011110000001111111100000011100000000000111111110000000000111111111000001111000000111000000111100000111100000000001111111110000000000111111111111111111111\r
+0000001111111100000011100000000000111000000111111110000001111000000000011111111000000000001111111100000011100000011110000011110000001110000000000011111111000000000011111111111111\r
+000000111111110000001111000000000011110000011111111100000011100000000001111111110000000000111111110000001111000001111000000111000000111100000000001111111100000000000111111111111111111111\r
+#3\r
+000000011111111000000111000000000001110000001111111100000011110000000000111111110000000000111111111000000111000000111000000111100000011100000000001111000000111111110000001111111111111111\r
+000000111111110000011110000000000011100000011111111000000111100000000001111111100000000000111111110000001110000011111000001111000000111000000000011110000001111111100000011111111111111111\r
+000000111111110000001110000000000011100000011111111000000111100000000001111111100000000000111111110000001110000001111000001111000000111000000000001110000001111111100000011111111111111111\r
+000000111111111000001111000000000011110000001111111100000011100000000001111111110000000000111111110000001111000000111000000111000000111100000000001111000001111111110000011111111111111111\r
+000000111111110000001111000000000011110000011111111100000111100000000001111111100000000000111111110000011110000001111000000111000000111000000000001110000001111111100000011111111111111111\r
+#4\r
+0000001111111100000011100000000000111000000111111110000001111000000000011111111000000000001111111100000011100000011110000011110000000000111111111000001111000000000011111111111111\r
+0000001111111100000011110000000000111100000111111111000001111000000000011111111100000000001111111100000011110000011110000001110000000000011111111000000111000000000011111111111111\r
+000000111111111000001111000000000011110000011111111100000111100000000001111111110000000000111111111000001111000001111000000111100000000001111111100000011110000000000111111111111111111111\r
+000000111111110000001111000000000011110000011111111100000111100000000001111111110000000000111111110000001111000001111000000111000000000001111111100000111100000000000111111111111111111111\r
+000000111111110000001111000000000011110000011111111100000111100000000001111111110000000000111111110000001111000001111000000111000000000011111111100000011100000000000111111111111111111111\r
+#5\r
+000000011111111000000111000000000011110000001111111100000011100000000000111111110000000000111111111000001111000000111000000111100000000001111111100000000000111111110000001111111111111111\r
+000000111111110000001110000000000011100000011111111000000111100000000001111111100000000000111111110000001110000001111000001111000000000011111111000000000001111111100000011111111111111111\r
+000000111111110000001111000000000011110000011111111100000111100000000001111111110000000000111111110000001111000001111000000111000000000001111111100000000001111111110000011111111111111111\r
+000000111111111000001111000000000011110000001111111100000011100000000000111111110000000000111111111000001111000000111000000111100000000001111111100000000000111111110000001111111111111111\r
+000000111111111000001111000000000011110000001111111100000011100000000000111111110000000000111111111000001111000000111000000111100000000001111111100000000000111111110000001111111111111111\r
+#6\r
+000000111111111000001111000000000011110000001111111100000011100000000000111111110000000000111111110000001111000001111000000111000000000001110000001111111100000000000111111111111111111111\r
+000000111111110000001111000000000011110000011111111100000111100000000001111111110000000000111111110000001111000001111000000111000000000001110000001111111100000000000111111111111111111111\r
+000000111111111000001111000000000011110000001111111100000011100000000000111111110000000000111111110000001111000000111000000111000000000001110000001111111100000000000111111111111111111111\r
+0000001111111100000011100000000000111000000111111110000001111000000000011111111000000000001111111100000011100000011110000011110000000000111100000011111111000000000011111111111111\r
+000000011111111000000111000000000001110000001111111100000011100000000000111111110000000000111111111000000111000000111000000111100000000001111000001111111110000000000111111111111111111111\r
+#7\r
+000000111111110000001110000000000011100000011111111000000111100000000001111111100000000000111111110000001110000001111000001111000000000011110000001110000001111111100000011111111111111111\r
+000000111111111000001111000000000011110000001111111100000011100000000000111111110000000000111111111000001111000000111000000111100000000001111000001111000000111111110000001111111111111111\r
+000000111111110000001111000000000011110000011111111100000111100000000001111111110000000000111111110000001111000001111000000111000000000001110000001111000001111111110000011111111111111111\r
+000000111111110000001111000000000011110000011111111100000111100000000001111111110000000000111111110000001111000001111000000111000000000001110000001111000001111111110000011111111111111111\r
+000000111111110000001111000000000011110000011111111100000111100000000001111111110000000000111111110000001111000001111000000111000000000001110000001111000001111111110000011111111111111111\r
+#8\r
+000000111111110000001111000000000011110000011111111100000111100000000001111111110000000000111111110000001111000001111000000000011111111100000111100000011100000000000111111111111111111111\r
+0000001111111100000011110000000000111000000111111111000001111000000000011111111000000000001111111100000011100000011110000000000111111110000001111000001111000000000011111111111111\r
+000000111111111000001111000000000011110000001111111100000011100000000000111111110000000000111111110000001111000000111000000000011111111100000011100000011100000000000111111111111111111111\r
+000000111111111000001111000000000011110000001111111100000011100000000000111111110000000000111111111000001111000000111000000000001111111100000011100000011110000000000111111111111111111111\r
+000000111111111000001111000000000011110000001111111100000011100000000000111111110000000000111111111000001111000000111000000000001111111100000011100000011110000000000111111111111111111111\r
+#9\r
+000000111111110000001110000000000011100000011111111000000111100000000001111111100000000000111111110000001110000001111000000000011111111000000111100000000001111111100000011111111111111111\r
+000000111111110000001110000000000011100000011111111000000111100000000001111111100000000000111111110000001110000001111000000000011111111000000111100000000001111111100000011111111111111111\r
+000000111111110000001111000000000011110000011111111100000111100000000001111111100000000000111111110000001110000001111000000000011111111000000111100000000001111111100000011111111111111111\r
+000000111111111000001111000000000011110000001111111100000011100000000000111111110000000000111111111000001111000000111000000000001111111100000011100000000000111111110000001111111111111111\r
+000000111111110000001110000000000011100000011111111000000111100000000001111111100000000000111111110000001110000001111000000000011111111000000111100000000001111111100000011111111111111111\r
+#0\r
+0000001111111100000011100000000000111000000111111110000001111000000000011111111000000000001111111100000011100000011100000000000111111110000000000111111111000000000011111111111111\r
+000000111111111000001111000000000011110000001111111100000011100000000000111111110000000000111111111000001111000000111000000000001111111100000000001111111110000000000111111111111111111111\r
+0000001111111100000011110000000000111100000111111111000001111000000000011111111100000000001111111100000011110000011110000000000111111110000000000011111111000000000011111111111111\r
+000000111111111000001111000000000011110000011111111100000011100000000001111111110000000000111111110000001111000001111000000000011111111100000000001111111100000000000111111111111111111111\r
+0000001111111100000011100000000000111000000111111110000001111000000000011111111000000000001111111100000011100000011110000000000111111110000000000011111111000000000011111111111111\r
+\r
index 7731dcf000d824797033f93358d0f911abf5cfcb..70bf0ad938fa197e53287011b79f65c391108d88 100644 (file)
@@ -1,69 +1,60 @@
-# T-Home Mediareceiver (Ruwido)\r
 #1\r
-00000000011111111111111000000001111111000000000000000011111100000000011111111111111000000001111110000000000000000111111111111110000000000000000111111111111110000000001111110000000001111110000000001111110000000011111110000000011111110000000000000000111111111111110000000011111111111111111111\r
-00000000011111111111111000000000111111000000000000000011111110000000011111111111111000000000111111000000000000000011111111111111000000000000000011111111111111000000001111111000000001111111000000001111111000000001111110000000001111110000000000000000111111111111110000000001111111111111111111\r
-00000000011111111111111000000001111111000000000000000011111100000000011111111111111000000001111111000000000000000111111111111110000000000000000111111111111110000000001111110000000001111110000000001111110000000001111110000000001111110000000000000000111111111111110000000011111111111111111111\r
-00000000011111111111111000000001111111000000000000000011111100000000011111111111111000000000111111000000000000000011111111111110000000000000000011111111111110000000001111110000000001111110000000001111110000000001111110000000001111110000000000000000011111111111110000000001111111111111111111\r
-00000000011111111111111000000000111111000000000000000001111100000000001111111111111000000000111111000000000000000011111111111111000000000000000011111111111111000000000111110000000000111110000000000111110000000000111110000000001111110000000000000000011111111111110000000001111111111111111111\r
-00000000011111111111111000000000111111000000000000000011111100000000011111111111110000000000111110000000000000000011111111111110000000000000000011111111111110000000001111110000000001111110000000001111110000000001111110000000001111110000000000000000111111111111110000000001111111111111111111\r
-00000000011111111111111000000000111111000000000000000011111100000000011111111111110000000000111110000000000000000011111111111110000000000000000011111111111110000000001111110000000001111110000000001111110000000001111110000000001111110000000000000000111111111111110000000001111111111111111111\r
-00000000011111111111111000000000111111000000000000000011111100000000011111111111110000000000111110000000000000000011111111111110000000000000000011111111111110000000001111110000000001111110000000001111110000000001111110000000001111110000000000000000111111111111110000000001111111111111111111\r
-00000000011111111111111000000000111111000000000000000011111100000000011111111111110000000000111110000000000000000011111111111110000000000000000011111111111110000000001111110000000001111110000000001111110000000001111110000000001111110000000000000000111111111111110000000001111111111111111111\r
-00000000011111111111111000000000111111000000000000000011111100000000011111111111110000000000111110000000000000000011111111111110000000000000000011111111111110000000001111110000000001111110000000001111110000000001111110000000001111110000000000000000111111111111110000000001111111111111111111\r
-00000000011111111111111000000000111111000000000000000011111100000000011111111111110000000000111110000000000000000011111111111110000000000000000011111111111110000000001111110000000001111110000000001111110000000001111110000000001111110000000000000000111111111111110000000001111111111111111111\r
-00000000011111111111111000000000111111000000000000000011111100000000011111111111110000000000111110000000000000000011111111111110000000000000000011111111111110000000001111110000000001111110000000001111110000000001111110000000001111110000000000000000111111111111110000000001111111111111111111\r
-\r
+000011111000011100000001100001111100001100000001111110000000111110000111000111000011000011000011000000011111100001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000011111000011000000011100011111100001100000001111110000000111110000110000110000111000011000011000000011111100011111111111111111\r
+000011111000011000000011100001111100001100000001111110000000111110000110000111000111000011000011000000011111100011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000111111000011000000011000011111100001100000001111100000001111110000110000110000111000111000011000000011111000011111111111111111\r
+000011111100001100000001100001111110001110000000111110000000111111000011000011000011000011100011100000001111100001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000011111100011100000001100001111100001110000000111110000000111110000111000111000011000011000011100000011111100001111111111111111\r
+000011111000011100000011100001111100001100000001111110000000111110000110000111000111000011000011000000011111100001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011111000011000000011100011111100001100000001111110000001111110000110000110000111000111000011000000011111000011111111111111111\r
+000011111000011100000011100001111100001100000001111110000000111110000110000111000111000011000011000000011111100001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011111000011000000011100011111100001100000001111110000001111110000110000110000111000111000011000000011111000011111111111111111\r
 #2\r
-000000000111111111111110000000011111110000000000000000111111000000000111111111111110000000011111100000000000000001111111111111100000000000000001111111111111100000000011111100000000011111100000000011111100000000011111100000000000000001111111111111100000000000000001111111111111111111\r
-000000000111111111111110000000001111110000000000000000111111000000000111111111111100000000001111100000000000000000111111111111100000000000000000111111111111100000000011111100000000011111100000000011111100000000011111100000000000000001111111111111100000000000000001111111111111111111\r
-000000000111111111111110000000001111110000000000000000111111000000000111111111111100000000001111100000000000000000111111111111100000000000000000111111111111100000000011111100000000011111100000000011111100000000011111100000000000000001111111111111100000000000000001111111111111111111\r
-000000000111111111111110000000011111100000000000000001111111000000001111111111111100000000011111100000000000000001111111111111100000000000000001111111111111100000000111111100000000111111100000000111111100000000111111100000000000000001111111111111100000000000000011111111111111111111\r
-000000000111111111111100000000001111100000000000000000111111000000000111111111111100000000011111100000000000000000111111111111100000000000000000111111111111100000000011111100000000011111100000000011111100000000011111000000000000000001111111111111000000000000000001111111111111111111\r
+0000111110000111000000111000011111000011000000011111100000001111100001100001110000110000110000000111111000000111111111111111111111\r
+0000111111000011000000011100011111100001100000001111100000001111110000110000110000111000111000000011111000000011111111111111111111\r
+0000111111000011000000011000011111100001100000001111100000001111110000110000110000111000111000000011111000000011111111111111111111\r
+000011111100011100000001100001111110001110000000111110000000111111000111000011000011000011000000011111100000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000011111000011100000011100001111100001100000001111110000000111110000111000111000011000011000000011111100000011111111111111111111\r
+000011111000011000000011100011111100001100000001111110000000111110000110000111000111000011000000011111000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000111111000011000000011000011111100001100000001111100000001111110000110000110000110000111000000011111000000011111111111111111111\r
 #3\r
-00000000011111111111111000000000111111000000000000000011111100000000011111111111111000000001111111000000000000000011111111111110000000000000000111111111111110000000001111110000000001111110000000001111110000000001111110000000000000000111111000000000111111111111110000000011111111111111111111\r
-00000000011111111111111000000000111111000000000000000011111100000000011111111111111000000001111111000000000000000011111111111111000000000000000011111111111110000000001111110000000001111110000000001111110000000001111110000000000000000111111100000000111111111111110000000001111111111111111111\r
-00000000011111111111111000000001111111000000000000000011111100000000011111111111111000000001111110000000000000000111111111111110000000000000000111111111111110000000001111110000000001111110000000001111110000000001111110000000000000000111111000000000111111111111110000000011111111111111111111\r
-00000000011111111111111000000001111111000000000000000011111100000000011111111111111000000001111111000000000000000111111111111110000000000000000111111111111110000000001111110000000001111110000000001111110000000001111110000000000000000111111000000000111111111111110000000011111111111111111111\r
-00000000011111111111111000000001111111000000000000000011111100000000011111111111111000000001111111000000000000000011111111111110000000000000000111111111111110000000001111110000000001111110000000001111110000000001111110000000000000000111111000000000111111111111110000000011111111111111111111\r
+000011111000011100000001100001111100001110000001111110000000111110000111000111000011000011000000011100011111100001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000011111000011000000011100011111100001100000001111110000000111110000110000111000111000011000000011000011111100011111111111111111\r
+000011111000011100000001100001111100001110000001111110000000111110000111000111000011000011000000011100011111100001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000011111000011000000011100001111100001100000001111110000000111110000110000111000111000011000000011000011111100011111111111111111\r
+000011111000011000000011100001111100001100000001111110000000111110000110000111000111000011000000011000011111100011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000111111000011000000011000011111100001100000001111100000001111110000110000110000111000111000000011000011111000011111111111111111\r
+000011111000011100000001100001111100001110000001111110000000111110000111000111000011000011000000011100011111100001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000011111000011000000011100011111100001100000001111110000000111110000110000111000111000011000000011000011111100011111111111111111\r
+000011111000011100000011100001111100001100000001111110000000111110000110000111000011000011000000011000011111100001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011111000011000000011100011111100001100000001111110000001111110000110000110000111000111000000011000011111100011111111111111111\r
 #4\r
-000000000111111111111110000000011111110000000000000000111111000000001111111111111100000000011111100000000000000001111111111111100000000000000001111111111111100000000011111100000000111111100000000111111100000000000000001111111111111100000000111111100000000000000001111111111111111111\r
-000000000111111111111110000000011111100000000000000001111111000000000111111111111100000000011111100000000000000000111111111111100000000000000000111111111111100000000011111100000000011111100000000111111100000000000000001111111111111100000000111111000000000000000001111111111111111111\r
-000000000111111111111110000000001111110000000000000000111111000000000111111111111110000000011111110000000000000000111111111111110000000000000000111111111111110000000001111100000000011111100000000001111100000000000000000111111111111100000000011111100000000000000000111111111111111111\r
-000000000111111111111110000000011111100000000000000001111111000000001111111111111100000000011111100000000000000001111111111111100000000000000001111111111111100000000111111100000000111111100000000111111100000000000000001111111111111100000000111111000000000000000011111111111111111111\r
-000000000111111111111110000000011111110000000000000000111111000000000111111111111100000000011111100000000000000001111111111111100000000000000001111111111111100000000011111100000000011111100000000111111100000000000000001111111111111100000000111111100000000000000001111111111111111111\r
+000011111100001100000001100001111110000110000000111110000000111111000011000011000011000000011111100001100000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000011111100011100000001100001111100001110000000111110000000111110000111000011000011000000011111100011100000001111111111111111111\r
+000011111000011000000011100001111100001100000001111110000000111110000110000111000111000000011111000011000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000111111000011000000011000011111100001100000001111100000001111110000110000110000110000000111111000011000000011111111111111111111\r
+000011111000011000000011100011111100001100000001111110000000111110000110000111000111000000011111000011000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000111111000011000000011000011111100001100000001111100000001111110000110000110000110000000111111000011000000011111111111111111111\r
+000011111000011000000011100011111100001100000001111110000000111110000110000111000111000000011111000011000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000111111000011000000011000011111100001100000001111100000001111110000110000110000110000000111111000011000000011111111111111111111\r
+000001111100001100000001110001111110000110000000111111000000111111000011000011000011100000001111100001100000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000011111100001100000001100001111110001110000000111110000000111111000111000011000011000000011111100001100000001111111111111111111\r
 #5\r
-00000000011111111111111000000000111111000000000000000011111100000000011111111111111000000001111111000000000000000011111111111111000000000000000011111111111111000000001111110000000001111110000000001111110000000000000000111111111111110000000000000000111111111111110000000001111111111111111111\r
-00000000011111111111111000000000111111000000000000000001111100000000001111111111111000000000111111000000000000000011111111111111000000000000000011111111111111000000000111110000000000111110000000000111110000000000000000011111111111110000000000000000011111111111110000000001111111111111111111\r
-00000000011111111111111000000001111111000000000000000111111100000000111111111111110000000001111110000000000000000111111111111110000000000000000111111111111110000000011111110000000011111110000000011111110000000000000000111111111111110000000000000000111111111111100000000011111111111111111111\r
-00000000011111111111111000000000111111000000000000000011111100000000011111111111111000000001111111000000000000000011111111111111000000000000000011111111111111000000001111110000000001111110000000001111110000000000000000111111111111110000000000000000111111111111110000000001111111111111111111\r
-00000000011111111111111000000000111111000000000000000001111110000000001111111111111000000000111111000000000000000001111111111111000000000000000011111111111111000000000111111000000000111111000000000111110000000000000000011111111111110000000000000000011111111111110000000001111111111111111111\r
+000011111000011000000011100001111100001100000001111110000000111110000110000111000111000000011111000000011111100011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000111111000011000000011000011111100001100000001111100000001111110000110000110000111000000111111000000011111000011111111111111111\r
+000011111000011000000011100001111100001100000001111110000000111110000110000111000111000000011111000000011111100011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000111111000011000000011000011111100001100000001111100000001111110000110000110000111000000111111000000011111000011111111111111111\r
+000011111100011100000001100001111110001110000000111110000000111111000111000011000011000000011111100000001111100001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000011111000011100000011100001111100001100000001111110000000111110000111000111000011000000011111000000011111100001111111111111111\r
+0000111110000110000000111000011111000011000000011111100000001111100001100001110001110000000111110000000111111000111111111111111111\r
+000011111000011100000001100001111100001110000001111110000000111110000111000111000011000000011111000000011111100001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000011111000011000000011100011111100001100000001111110000000111110000110000111000111000000011111000000011111100011111111111111111\r
 #6\r
-000000000111111111111110000000001111110000000000000000111111000000000111111111111110000000011111110000000000000000111111111111110000000000000000111111111111100000000011111100000000011111100000000011111100000000000000001111111000000001111111111111100000000000000001111111111111111111\r
-000000000111111111111110000000001111110000000000000000111111000000000111111111111110000000011111110000000000000000111111111111110000000000000000111111111111110000000011111100000000011111100000000011111100000000000000001111111000000001111111111111100000000000000001111111111111111111\r
-000000000111111111111110000000011111110000000000000001111111000000001111111111111100000000011111100000000000000001111111111111100000000000000001111111111111100000000111111100000000111111100000000111111100000000000000001111110000000001111111111111100000000000000011111111111111111111\r
-000000000111111111111110000000011111110000000000000000111111000000000111111111111100000000001111100000000000000000111111111111100000000000000000111111111111100000000011111100000000011111100000000011111100000000000000001111110000000001111111111111100000000000000001111111111111111111\r
-000000000111111111111110000000011111100000000000000000111111000000000111111111111100000000011111100000000000000000111111111111100000000000000000111111111111100000000011111100000000011111100000000011111100000000000000001111110000000001111111111111000000000000000001111111111111111111\r
+000011111000011000000011100001111100001100000001111110000000111110000110000111000111000000011000011111000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000111111000011000000011000011111100001100000001111100000001111110000110000110000111000000111000011111000000011111111111111111111\r
+000011111100011100000001100001111100001110000001111110000000111110000111000111000011000000011000011111100000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000011111000011000000011100001111100001100000001111110000000111110000110000111000111000000011000011111000000011111111111111111111\r
+000011111000011000000011100001111100001100000001111110000000111110000110000111000111000000011000011111000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000111111000011000000011000011111100001100000001111100000001111110000110000110000111000000111000011111000000011111111111111111111\r
+000001111100001100000001110001111110000110000000111111000000111111000011000011000011100000001100001111100000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000011111100001100000001100001111110001110000000111110000000111111000011000011000011000000011100011111100000001111111111111111111\r
+000011111000011000000011100011111100001100000001111110000000111110000110000111000111000000011000011111000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000111111000011000000011000011111100011100000001111100000001111110000110000110000110000000111000011111000000011111111111111111111\r
 #7\r
-00000000011111111111111000000001111111000000000000000011111100000000011111111111111000000001111110000000000000000111111111111110000000000000000111111111111110000000001111110000000001111110000000001111110000000000000000111111000000000111111000000000111111111111110000000011111111111111111111\r
-00000000011111111111111000000000111111000000000000000011111100000000011111111111111000000001111111000000000000000011111111111110000000000000000111111111111110000000001111110000000001111110000000001111110000000000000000111111100000000111111000000000111111111111110000000011111111111111111111\r
-00000000011111111111111000000001111111000000000000000011111100000000011111111111111000000001111111000000000000000011111111111110000000000000000111111111111110000000001111110000000001111110000000001111110000000000000000111111000000000111111000000000111111111111110000000011111111111111111111\r
-00000000011111111111111000000001111111000000000000000011111100000000011111111111110000000001111110000000000000000111111111111110000000000000000111111111111110000000001111110000000001111110000000001111110000000000000000111111000000000111111000000000111111111111110000000011111111111111111111\r
-00000000011111111111111000000001111111000000000000000011111100000000111111111111110000000001111110000000000000000111111111111110000000000000000111111111111110000000001111110000000011111110000000011111110000000000000000111111000000000111111000000000111111111111110000000011111111111111111111\r
+000001111100001100000001110001111110000110000000111111000000111111000011000011000011100000001100001100001111110001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000011111100001100000001100001111110001110000000111110000000111111000011000011000011000000011100011100001111100001111111111111111\r
+000011111100001100000001100001111110001110000000111110000000111111000111000011000011000000011100011100001111100001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000011111000011100000001100001111100001100000001111110000000111110000111000111000011000000011000011100011111100001111111111111111\r
+000011111100011100000001100001111110001110000000111110000000111111000111000011000011000000011100011100001111100001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000011111000011100000011100001111100001100000001111110000000111110000111000111000011000000011000011000011111100001111111111111111\r
+000011111100011100000001100001111100001110000000111110000000111111000111000011000011000000011000011100001111100001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000011111000011100000011100001111100001100000001111110000000111110000110000111000111000000011000011000011111100001111111111111111\r
+000011111000011000000011100011111100001100000001111110000000111110000110000111000111000000011000011000011111100011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000111111000011000000011000011111100001100000001111100000001111110000110000110000110000000111000011000011111000011111111111111111\r
 #8\r
-000000000111111111111110000000001111100000000000000000111111000000000111111111111100000000011111100000000000000000111111111111100000000000000000111111111111100000000011111100000000111111100000000000000001111111111111100000000011111100000000011111000000000000000001111111111111111111\r
-000000000111111111111110000000001111110000000000000000111111000000000111111111111100000000011111100000000000000000111111111111100000000000000000111111111111100000000011111100000000011111100000000000000001111111111111100000000011111100000000011111100000000000000001111111111111111111\r
-000000000111111111111110000000001111110000000000000000111111000000000111111111111100000000011111100000000000000000111111111111100000000000000000111111111111100000000011111100000000011111100000000000000001111111111111100000000011111100000000011111100000000000000001111111111111111111\r
-000000000111111111111110000000001111100000000000000000111111000000000111111111111100000000011111100000000000000000111111111111100000000000000000111111111111100000000011111100000000011111100000000000000001111111111111100000000011111100000000011111000000000000000001111111111111111111\r
-000000000111111111111110000000001111110000000000000000111111000000000111111111111100000000001111100000000000000000111111111111100000000000000000111111111111100000000011111100000000011111100000000000000001111111111111100000000011111100000000011111100000000000000001111111111111111111\r
+000011111000011100000011100001111100001100000001111110000000111110000110000111000000011111000011000011100000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000111111000011000000011100011111100001100000001111110000001111110000110000110000000111111000011000011000000011111111111111111111\r
+000011111100001100000001100001111110000110000000111110000000111111000011000011000000011111100011100001100000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000011111100011100000001100001111100001110000000111110000000111110000111000111000000011111000011100011100000001111111111111111111\r
+000011111100011100000001100001111110001110000000111110000000111111000111000011000000011111000011100011100000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000011111000011100000011100001111100001100000001111110000000111110000111000111000000011111000011000011100000011111111111111111111\r
+000011111000011100000001100001111100001100000001111110000000111110000111000111000000011111000011000011100000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000011111000011000000011100011111100001100000001111110000001111110000110000110000000111111000011000011000000011111111111111111111\r
+000011111000011000000011100011111100001100000001111110000000111110000110000110000000111111000011000011000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000111111000011000000011000011111100001100000001111100000001111110000110000110000000111111000111000011000000011111111111111111111\r
 #9\r
-00000000011111111111111000000000111111000000000000000011111100000000011111111111111000000001111111000000000000000011111111111111000000000000000011111111111110000000001111110000000001111110000000000000000111111111111110000000001111110000000000000000111111111111110000000001111111111111111111\r
-00000000011111111111111000000000111111000000000000000011111110000000011111111111111000000000111111000000000000000001111111111111000000000000000011111111111111000000000111111000000000111111000000000000000011111111111110000000000111110000000000000000011111111111110000000001111111111111111111\r
-00000000011111111111111000000000111111000000000000000001111100000000001111111111111000000000111111000000000000000011111111111111000000000000000011111111111110000000000111110000000000111110000000000000000011111111111110000000001111110000000000000000011111111111110000000001111111111111111111\r
-00000000011111111111111000000001111111000000000000000011111100000000011111111111110000000001111110000000000000000111111111111110000000000000000111111111111110000000001111110000000001111110000000000000000111111111111110000000011111110000000000000000111111111111110000000011111111111111111111\r
-00000000011111111111111000000000111111000000000000000001111100000000001111111111111000000000111111000000000000000011111111111111000000000000000011111111111111000000000111110000000000111110000000000000000011111111111110000000001111110000000000000000011111111111110000000001111111111111111111\r
+0000111110000111000000111000011111000011000000011111100000001111100001100001110000000111110000110000000111111000011111111111111111\r
+0000111111000011000000011100011111100001100000001111100000001111110000110000110000000111111000011000000011111000011111111111111111\r
+0000111111000011000000011000011111100011100000001111100000001111110001110000110000000111111000111000000011111000011111111111111111\r
+000011111000011000000011100011111100001100000001111110000000111110000110000110000000111111000011000000011111100011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000111111000011000000011000011111100011100000001111100000001111110000110000110000000111111000111000000011111000011111111111111111\r
+0000111111000011000000011100011111100001100000001111110000001111110000110000110000000111111000011000000011111000011111111111111111\r
 #0\r
-000000000111111111111110000000001111110000000000000000111111100000000111111111111110000000001111110000000000000000111111111111110000000000000000111111111111110000000011111110000000011111100000000000000001111111111111100000000000000001111111111111100000000000000001111111111111111111\r
-000000000111111111111110000000011111110000000000000000111111000000000111111111111110000000011111110000000000000000111111111111100000000000000001111111111111100000000011111100000000011111100000000000000001111111111111100000000000000001111111111111100000000000000001111111111111111111\r
-000000000111111111111110000000001111110000000000000000111111100000000111111111111110000000001111110000000000000000111111111111110000000000000000111111111111110000000011111110000000011111110000000000000001111111111111100000000000000001111111111111100000000000000001111111111111111111\r
-000000000111111111111110000000011111100000000000000001111111000000001111111111111100000000011111100000000000000001111111111111100000000000000001111111111111100000000111111100000000111111100000000000000001111111111111100000000000000001111111111111000000000000000011111111111111111111\r
-000000000111111111111110000000001111110000000000000000111111000000000111111111111110000000011111110000000000000000111111111111110000000000000000111111111111100000000011111100000000011111100000000000000001111111111111100000000000000001111111111111100000000000000001111111111111111111\r
+000011111000011100000011100001111100001100000001111110000000111110000111000111000000011111000000011111100000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011111000011000000011100011111100001100000001111110000001111110000110000110000000111111000000011111000000011111111111111111111\r
+000011111100001100000001100001111110000110000000111110000000111111000011000011000000011111100000001111100000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000011111100011100000001100001111110001110000000111110000000111111000111000011000000011111000000011111100000001111111111111111111\r
+000011111000011100000001100001111100001110000001111110000000111110000111000111000000011111000000011111100000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000011111000011000000011100011111100001100000001111110000000111110000110000110000000111111000000011111000000011111111111111111111\r
+000011111100001100000001100001111110001110000000111110000000111111000011000011000000011111100000001111100000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000011111100011100000001100001111100001110000001111110000000111110000111000111000000011111000000011111100000001111111111111111111\r
+000011111000011100000001100001111100001110000001111110000000111110000111000111000000011111000000011111100000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000011111000011000000011100011111100001100000001111110000000111110000110000110000000111111000000011111000000011111111111111111111\r
index 7148cc2f232a35b654e07fdd1b2211e4bc84c87a..e749b0a69cc83507cb09bff1c480eb29553cecfe 100644 (file)
@@ -63,7 +63,6 @@ for j in                            \
     rc5x.txt                        \
     rc6-hold.txt                    \
     rc6.txt                         \
-    t-home-mediareceiver.txt        \
     sharp-denon.txt                 \
     sharp-denon2.txt                \
     xbox360-10kHz.txt
@@ -71,9 +70,9 @@ do
     echo "testing $j ..."
     if tmpsrc/irmp -v < $j | grep -q error
     then
-        tmpsrc/irmp -v < $j | grep error
-        echo "test failed"
-        exit 1
+       tmpsrc/irmp -v < $j | grep error
+       echo "test failed"
+       exit 1
     fi
 done
 
@@ -81,14 +80,15 @@ for j in                                \
     Siemens-Gigaset-M740AV-15kHz.txt    \
     bo_beolink1000-15kHz.txt            \
     denon-15kHz.txt                     \
+    t-home-mediareceiver-15kHz.txt      \
     xbox360-15kHz.txt
 do
     echo "testing $j ..."
     if tmpsrc/irmp-15kHz -v < $j | grep -q error
     then
-        tmpsrc/irmp-15kHz -v < $j | grep error
-        echo "test failed"
-        exit 1
+       tmpsrc/irmp-15kHz -v < $j | grep error
+       echo "test failed"
+       exit 1
     fi
 done
 
@@ -100,9 +100,9 @@ do
     echo "testing $j ..."
     if tmpsrc/irmp-20kHz -v < $j | grep -q error
     then
-        tmpsrc/irmp-20kHz -v < $j | grep error
-        echo "test failed"
-        exit 1
+       tmpsrc/irmp-20kHz -v < $j | grep error
+       echo "test failed"
+       exit 1
     fi
 done
 
index b04bff61fb734bad55c2c264fae0b667d4c48e69..8e9ead2d020ebe184789f9c9d632072cafd6d587 100644 (file)
@@ -1,7 +1,7 @@
 IRMP - Infrared Multi Protocol Decoder\r
 --------------------------------------\r
 \r
-Version IRMP:  1.9.2  08.02.2010\r
+Version IRMP:  1.9.3  21.02.2010\r
 Version IRSND: 1.9.1  25.01.2010\r
 \r
 Dokumentation:\r
diff --git a/irmp.c b/irmp.c
index 7bbb6f83080a9d4582835cd91ea7008de417d556..f44ef99665bd8e728128f7270d429dad30227b45 100644 (file)
--- a/irmp.c
+++ b/irmp.c
@@ -3,7 +3,7 @@
  *\r
  * Copyright (c) 2009-2010 Frank Meyer - frank(at)fli4l.de\r
  *\r
- * $Id: irmp.c,v 1.88 2011/02/08 08:40:27 fm Exp $\r
+ * $Id: irmp.c,v 1.90 2011/02/21 11:49:37 fm Exp $\r
  *\r
  * ATMEGA88 @ 8 MHz\r
  *\r
  *\r
  *---------------------------------------------------------------------------------------------------------------------------------------------------\r
  *\r
- *   SIEMENS:\r
- *   --------\r
+ *   SIEMENS or RUWIDO:\r
+ *   ------------------\r
  *\r
  *   SIEMENS frame:  1 start bit + 22 data bits + no stop bit\r
  *   SIEMENS data:   13 address bits + 1 repeat bit + 7 data bits + 1 unknown bit\r
@@ -344,7 +344,16 @@ typedef unsigned int16  uint16_t;
 #define IRMP_SUPPORT_GRUNDIG_OR_NOKIA_PROTOCOL  0\r
 #endif\r
 \r
-#if IRMP_SUPPORT_RC5_PROTOCOL == 1 || IRMP_SUPPORT_RC6_PROTOCOL == 1 || IRMP_SUPPORT_GRUNDIG_OR_NOKIA_PROTOCOL == 1 || IRMP_SUPPORT_SIEMENS_PROTOCOL == 1 \r
+#if IRMP_SUPPORT_SIEMENS_PROTOCOL == 1 || IRMP_SUPPORT_RUWIDO_PROTOCOL == 1\r
+#define IRMP_SUPPORT_SIEMENS_OR_RUWIDO_PROTOCOL 1\r
+#else\r
+#define IRMP_SUPPORT_SIEMENS_OR_RUWIDO_PROTOCOL 0\r
+#endif\r
+\r
+#if IRMP_SUPPORT_RC5_PROTOCOL == 1 ||               \\r
+    IRMP_SUPPORT_RC6_PROTOCOL == 1 ||               \\r
+    IRMP_SUPPORT_GRUNDIG_OR_NOKIA_PROTOCOL == 1 ||  \\r
+    IRMP_SUPPORT_SIEMENS_OR_RUWIDO_PROTOCOL == 1\r
 #define IRMP_SUPPORT_MANCHESTER                 1\r
 #else\r
 #define IRMP_SUPPORT_MANCHESTER                 0\r
@@ -470,7 +479,11 @@ typedef unsigned int16  uint16_t;
 #define DENON_PULSE_LEN_MAX                     ((uint8_t)(F_INTERRUPTS * DENON_PULSE_TIME * MAX_TOLERANCE_10 + 0.5) + 1)\r
 #define DENON_1_PAUSE_LEN_MIN                   ((uint8_t)(F_INTERRUPTS * DENON_1_PAUSE_TIME * MIN_TOLERANCE_10 + 0.5) - 1)\r
 #define DENON_1_PAUSE_LEN_MAX                   ((uint8_t)(F_INTERRUPTS * DENON_1_PAUSE_TIME * MAX_TOLERANCE_10 + 0.5) + 1)\r
-#define DENON_0_PAUSE_LEN_MIN                   ((uint8_t)(F_INTERRUPTS * DENON_0_PAUSE_TIME * MIN_TOLERANCE_10 + 0.5) - 1)\r
+#if IRMP_SUPPORT_SIEMENS_OR_RUWIDO_PROTOCOL == 1\r
+#define DENON_0_PAUSE_LEN_MIN                   ((uint8_t)(F_INTERRUPTS * DENON_0_PAUSE_TIME * MIN_TOLERANCE_10 + 0.5))     // no -1, avoid conflict with RUWIDO\r
+#else\r
+#define DENON_0_PAUSE_LEN_MIN                   ((uint8_t)(F_INTERRUPTS * DENON_0_PAUSE_TIME * MIN_TOLERANCE_10 + 0.5) - 1) // be more tolerant\r
+#endif\r
 #define DENON_0_PAUSE_LEN_MAX                   ((uint8_t)(F_INTERRUPTS * DENON_0_PAUSE_TIME * MAX_TOLERANCE_10 + 0.5) + 1)\r
 \r
 #define RC6_START_BIT_PULSE_LEN_MIN             ((uint8_t)(F_INTERRUPTS * RC6_START_BIT_PULSE_TIME * MIN_TOLERANCE_10 + 0.5) - 1)\r
@@ -549,12 +562,22 @@ typedef unsigned int16  uint16_t;
 #define GRUNDIG_OR_NOKIA_PRE_PAUSE_LEN_MIN      ((uint8_t)(F_INTERRUPTS * GRUNDIG_OR_NOKIA_PRE_PAUSE_TIME * MIN_TOLERANCE_20 + 0.5) + 1)\r
 #define GRUNDIG_OR_NOKIA_PRE_PAUSE_LEN_MAX      ((uint8_t)(F_INTERRUPTS * GRUNDIG_OR_NOKIA_PRE_PAUSE_TIME * MAX_TOLERANCE_20 + 0.5) + 1)\r
 \r
-#define SIEMENS_START_BIT_LEN_MIN               ((uint8_t)(F_INTERRUPTS * SIEMENS_BIT_TIME * 1 + 0.5) - 1)\r
-#define SIEMENS_START_BIT_LEN_MAX               ((uint8_t)(F_INTERRUPTS * SIEMENS_BIT_TIME * 1 + 0.5) + 1)\r
-#define SIEMENS_BIT_LEN_MIN                     ((uint8_t)(F_INTERRUPTS * SIEMENS_BIT_TIME * 1 + 0.5) - 1)\r
-#define SIEMENS_BIT_LEN_MAX                     ((uint8_t)(F_INTERRUPTS * SIEMENS_BIT_TIME * 1 + 0.5) + 1)\r
-#define SIEMENS_BIT_LEN_MIN_2                   ((uint8_t)(F_INTERRUPTS * 2 * SIEMENS_BIT_TIME * 1 + 0.5) - 1)\r
-#define SIEMENS_BIT_LEN_MAX_2                   ((uint8_t)(F_INTERRUPTS * 2 * SIEMENS_BIT_TIME * 1 + 0.5) + 1)\r
+#define SIEMENS_OR_RUWIDO_START_BIT_PULSE_LEN_MIN          ((uint8_t)(F_INTERRUPTS * SIEMENS_OR_RUWIDO_START_BIT_PULSE_TIME * MIN_TOLERANCE_10 + 0.5) - 1)\r
+#define SIEMENS_OR_RUWIDO_START_BIT_PULSE_LEN_MAX          ((uint8_t)(F_INTERRUPTS * SIEMENS_OR_RUWIDO_START_BIT_PULSE_TIME * MAX_TOLERANCE_10 + 0.5) + 1)\r
+#define SIEMENS_OR_RUWIDO_START_BIT_PAUSE_LEN_MIN          ((uint8_t)(F_INTERRUPTS * SIEMENS_OR_RUWIDO_START_BIT_PAUSE_TIME * MIN_TOLERANCE_10 + 0.5) - 1)\r
+#define SIEMENS_OR_RUWIDO_START_BIT_PAUSE_LEN_MAX          ((uint8_t)(F_INTERRUPTS * SIEMENS_OR_RUWIDO_START_BIT_PAUSE_TIME * MAX_TOLERANCE_10 + 0.5) + 1)\r
+#define SIEMENS_OR_RUWIDO_START_BIT_PULSE_LEN_MIN_2        ((uint8_t)(F_INTERRUPTS * 2 * SIEMENS_OR_RUWIDO_START_BIT_PULSE_TIME * MIN_TOLERANCE_10 + 0.5) - 1)\r
+#define SIEMENS_OR_RUWIDO_START_BIT_PULSE_LEN_MAX_2        ((uint8_t)(F_INTERRUPTS * 2 * SIEMENS_OR_RUWIDO_START_BIT_PULSE_TIME * MAX_TOLERANCE_10 + 0.5) + 1)\r
+#define SIEMENS_OR_RUWIDO_START_BIT_PAUSE_LEN_MIN_2        ((uint8_t)(F_INTERRUPTS * 2 * SIEMENS_OR_RUWIDO_START_BIT_PAUSE_TIME * MIN_TOLERANCE_10 + 0.5) - 1)\r
+#define SIEMENS_OR_RUWIDO_START_BIT_PAUSE_LEN_MAX_2        ((uint8_t)(F_INTERRUPTS * 2 * SIEMENS_OR_RUWIDO_START_BIT_PAUSE_TIME * MAX_TOLERANCE_10 + 0.5) + 1)\r
+#define SIEMENS_OR_RUWIDO_BIT_PULSE_LEN_MIN                ((uint8_t)(F_INTERRUPTS * SIEMENS_OR_RUWIDO_BIT_PULSE_TIME * MIN_TOLERANCE_10 + 0.5) - 1)\r
+#define SIEMENS_OR_RUWIDO_BIT_PULSE_LEN_MAX                ((uint8_t)(F_INTERRUPTS * SIEMENS_OR_RUWIDO_BIT_PULSE_TIME * MAX_TOLERANCE_10 + 0.5) + 1)\r
+#define SIEMENS_OR_RUWIDO_BIT_PAUSE_LEN_MIN                ((uint8_t)(F_INTERRUPTS * SIEMENS_OR_RUWIDO_BIT_PAUSE_TIME * MIN_TOLERANCE_10 + 0.5) - 1)\r
+#define SIEMENS_OR_RUWIDO_BIT_PAUSE_LEN_MAX                ((uint8_t)(F_INTERRUPTS * SIEMENS_OR_RUWIDO_BIT_PAUSE_TIME * MAX_TOLERANCE_10 + 0.5) + 1)\r
+#define SIEMENS_OR_RUWIDO_BIT_PULSE_LEN_MIN_2              ((uint8_t)(F_INTERRUPTS * SIEMENS_OR_RUWIDO_BIT_PULSE_TIME_2 * MIN_TOLERANCE_10 + 0.5) - 1)\r
+#define SIEMENS_OR_RUWIDO_BIT_PULSE_LEN_MAX_2              ((uint8_t)(F_INTERRUPTS * SIEMENS_OR_RUWIDO_BIT_PULSE_TIME_2 * MAX_TOLERANCE_10 + 0.5) + 1)\r
+#define SIEMENS_OR_RUWIDO_BIT_PAUSE_LEN_MIN_2              ((uint8_t)(F_INTERRUPTS * SIEMENS_OR_RUWIDO_BIT_PAUSE_TIME_2 * MIN_TOLERANCE_10 + 0.5) - 1)\r
+#define SIEMENS_OR_RUWIDO_BIT_PAUSE_LEN_MAX_2              ((uint8_t)(F_INTERRUPTS * SIEMENS_OR_RUWIDO_BIT_PAUSE_TIME_2 * MAX_TOLERANCE_10 + 0.5) + 1)\r
 \r
 #define FDC_START_BIT_PULSE_LEN_MIN             ((uint8_t)(F_INTERRUPTS * FDC_START_BIT_PULSE_TIME * MIN_TOLERANCE_10 + 0.5) - 1)\r
 #define FDC_START_BIT_PULSE_LEN_MAX             ((uint8_t)(F_INTERRUPTS * FDC_START_BIT_PULSE_TIME * MAX_TOLERANCE_10 + 0.5) + 1)\r
@@ -609,19 +632,6 @@ typedef unsigned int16  uint16_t;
 #define NIKON_0_PAUSE_LEN_MAX                   ((uint8_t)(F_INTERRUPTS * NIKON_0_PAUSE_TIME * MAX_TOLERANCE_20 + 0.5) + 1)\r
 #define NIKON_FRAME_REPEAT_PAUSE_LEN_MAX        (uint16_t)(F_INTERRUPTS * NIKON_FRAME_REPEAT_PAUSE_TIME * MAX_TOLERANCE_20 + 0.5)\r
 \r
-#define RUWIDO_START_BIT_PULSE_LEN_MIN          ((uint8_t)(F_INTERRUPTS * RUWIDO_START_BIT_PULSE_TIME * MIN_TOLERANCE_20 + 0.5) - 1)\r
-#define RUWIDO_START_BIT_PULSE_LEN_MAX          ((uint8_t)(F_INTERRUPTS * RUWIDO_START_BIT_PULSE_TIME * MAX_TOLERANCE_20 + 0.5) + 1)\r
-#define RUWIDO_START_BIT_PAUSE_LEN_MIN          ((uint8_t)(F_INTERRUPTS * RUWIDO_START_BIT_PAUSE_TIME * MIN_TOLERANCE_20 + 0.5) - 1)\r
-#define RUWIDO_START_BIT_PAUSE_LEN_MAX          ((uint8_t)(F_INTERRUPTS * RUWIDO_START_BIT_PAUSE_TIME * MAX_TOLERANCE_20 + 0.5) + 1)\r
-#define RUWIDO_BIT_PULSE_LEN_MIN                ((uint8_t)(F_INTERRUPTS * RUWIDO_BIT_PULSE_TIME * MIN_TOLERANCE_10 + 0.5) - 1)\r
-#define RUWIDO_BIT_PULSE_LEN_MAX                ((uint8_t)(F_INTERRUPTS * RUWIDO_BIT_PULSE_TIME * MAX_TOLERANCE_10 + 0.5) + 1)\r
-#define RUWIDO_BIT_PAUSE_LEN_MIN                ((uint8_t)(F_INTERRUPTS * RUWIDO_BIT_PAUSE_TIME * MIN_TOLERANCE_10 + 0.5) - 1)\r
-#define RUWIDO_BIT_PAUSE_LEN_MAX                ((uint8_t)(F_INTERRUPTS * RUWIDO_BIT_PAUSE_TIME * MAX_TOLERANCE_10 + 0.5) + 1)\r
-#define RUWIDO_BIT_PULSE_LEN_MIN_2              ((uint8_t)(F_INTERRUPTS * RUWIDO_BIT_PULSE_TIME_2 * MIN_TOLERANCE_10 + 0.5) - 1)\r
-#define RUWIDO_BIT_PULSE_LEN_MAX_2              ((uint8_t)(F_INTERRUPTS * RUWIDO_BIT_PULSE_TIME_2 * MAX_TOLERANCE_10 + 0.5) + 1)\r
-#define RUWIDO_BIT_PAUSE_LEN_MIN_2              ((uint8_t)(F_INTERRUPTS * RUWIDO_BIT_PAUSE_TIME_2 * MIN_TOLERANCE_10 + 0.5) - 1)\r
-#define RUWIDO_BIT_PAUSE_LEN_MAX_2              ((uint8_t)(F_INTERRUPTS * RUWIDO_BIT_PAUSE_TIME_2 * MAX_TOLERANCE_10 + 0.5) + 1)\r
-\r
 #define AUTO_FRAME_REPETITION_LEN               (uint16_t)(F_INTERRUPTS * AUTO_FRAME_REPETITION_TIME + 0.5)       // use uint16_t!\r
 \r
 #ifdef ANALYZE\r
@@ -1173,27 +1183,27 @@ static PROGMEM IRMP_PARAMETER grundig_param =
 \r
 #endif\r
 \r
-#if IRMP_SUPPORT_SIEMENS_PROTOCOL == 1\r
+#if IRMP_SUPPORT_SIEMENS_OR_RUWIDO_PROTOCOL == 1\r
 \r
-static PROGMEM IRMP_PARAMETER siemens_param =\r
+static PROGMEM IRMP_PARAMETER ruwido_param =\r
 {\r
-    IRMP_SIEMENS_PROTOCOL,                                              // protocol:        ir protocol\r
-    SIEMENS_BIT_LEN_MIN,                                                // pulse_1_len_min: here: minimum length of short pulse\r
-    SIEMENS_BIT_LEN_MAX,                                                // pulse_1_len_max: here: maximum length of short pulse\r
-    SIEMENS_BIT_LEN_MIN,                                                // pause_1_len_min: here: minimum length of short pause\r
-    SIEMENS_BIT_LEN_MAX,                                                // pause_1_len_max: here: maximum length of short pause\r
-    SIEMENS_BIT_LEN_MIN_2,                                              // pulse_0_len_min: here: minimum length of long pulse\r
-    SIEMENS_BIT_LEN_MAX_2,                                              // pulse_0_len_max: here: maximum length of long pulse\r
-    SIEMENS_BIT_LEN_MIN_2,                                              // pause_0_len_min: here: minimum length of long pause\r
-    SIEMENS_BIT_LEN_MAX_2,                                              // pause_0_len_max: here: maximum length of long pause\r
-    SIEMENS_ADDRESS_OFFSET,                                             // address_offset:  address offset\r
-    SIEMENS_ADDRESS_OFFSET + SIEMENS_ADDRESS_LEN,                       // address_end:     end of address\r
-    SIEMENS_COMMAND_OFFSET,                                             // command_offset:  command offset\r
-    SIEMENS_COMMAND_OFFSET + SIEMENS_COMMAND_LEN,                       // command_end:     end of command\r
-    SIEMENS_COMPLETE_DATA_LEN,                                          // complete_len:    complete length of frame\r
-    SIEMENS_STOP_BIT,                                                   // stop_bit:        flag: frame has stop bit\r
-    SIEMENS_LSB,                                                        // lsb_first:       flag: LSB first\r
-    SIEMENS_FLAGS                                                       // flags:           some flags\r
+    IRMP_RUWIDO_PROTOCOL,                                               // protocol:        ir protocol\r
+    SIEMENS_OR_RUWIDO_BIT_PULSE_LEN_MIN,                                // pulse_1_len_min: here: minimum length of short pulse\r
+    SIEMENS_OR_RUWIDO_BIT_PULSE_LEN_MAX,                                // pulse_1_len_max: here: maximum length of short pulse\r
+    SIEMENS_OR_RUWIDO_BIT_PAUSE_LEN_MIN,                                // pause_1_len_min: here: minimum length of short pause\r
+    SIEMENS_OR_RUWIDO_BIT_PAUSE_LEN_MAX,                                // pause_1_len_max: here: maximum length of short pause\r
+    SIEMENS_OR_RUWIDO_BIT_PULSE_LEN_MIN_2,                              // pulse_0_len_min: here: minimum length of long pulse\r
+    SIEMENS_OR_RUWIDO_BIT_PULSE_LEN_MAX_2,                              // pulse_0_len_max: here: maximum length of long pulse\r
+    SIEMENS_OR_RUWIDO_BIT_PAUSE_LEN_MIN_2,                              // pause_0_len_min: here: minimum length of long pause\r
+    SIEMENS_OR_RUWIDO_BIT_PAUSE_LEN_MAX_2,                              // pause_0_len_max: here: maximum length of long pause\r
+    RUWIDO_ADDRESS_OFFSET,                                              // address_offset:  address offset\r
+    RUWIDO_ADDRESS_OFFSET + RUWIDO_ADDRESS_LEN,                         // address_end:     end of address\r
+    RUWIDO_COMMAND_OFFSET,                                              // command_offset:  command offset\r
+    RUWIDO_COMMAND_OFFSET + RUWIDO_COMMAND_LEN,                         // command_end:     end of command\r
+    SIEMENS_COMPLETE_DATA_LEN,                                          // complete_len:    complete length of frame, here: SIEMENS instead of RUWIDO!\r
+    SIEMENS_OR_RUWIDO_STOP_BIT,                                         // stop_bit:        flag: frame has stop bit\r
+    SIEMENS_OR_RUWIDO_LSB,                                              // lsb_first:       flag: LSB first\r
+    SIEMENS_OR_RUWIDO_FLAGS                                             // flags:           some flags\r
 };\r
 \r
 #endif\r
@@ -1273,31 +1283,6 @@ static PROGMEM IRMP_PARAMETER nikon_param =
 \r
 #endif\r
 \r
-#if IRMP_SUPPORT_RUWIDO_PROTOCOL == 1\r
-\r
-static PROGMEM IRMP_PARAMETER ruwido_param =\r
-{\r
-    IRMP_RUWIDO_PROTOCOL,                                               // protocol:        ir protocol\r
-    RUWIDO_BIT_PULSE_LEN_MIN,                                           // pulse_1_len_min: here: minimum length of short pulse\r
-    RUWIDO_BIT_PULSE_LEN_MAX,                                           // pulse_1_len_max: here: maximum length of short pulse\r
-    RUWIDO_BIT_PAUSE_LEN_MIN,                                           // pause_1_len_min: here: minimum length of short pause\r
-    RUWIDO_BIT_PAUSE_LEN_MAX,                                           // pause_1_len_max: here: maximum length of short pause\r
-    RUWIDO_BIT_PULSE_LEN_MIN_2,                                         // pulse_0_len_min: here: minimum length of long pulse\r
-    RUWIDO_BIT_PULSE_LEN_MAX_2,                                         // pulse_0_len_max: here: maximum length of long pulse\r
-    RUWIDO_BIT_PAUSE_LEN_MIN_2,                                         // pause_0_len_min: here: minimum length of long pause\r
-    RUWIDO_BIT_PAUSE_LEN_MAX_2,                                         // pause_0_len_max: here: maximum length of long pause\r
-    RUWIDO_ADDRESS_OFFSET,                                              // address_offset:  address offset\r
-    RUWIDO_ADDRESS_OFFSET + RUWIDO_ADDRESS_LEN,                         // address_end:     end of address\r
-    RUWIDO_COMMAND_OFFSET,                                              // command_offset:  command offset\r
-    RUWIDO_COMMAND_OFFSET + RUWIDO_COMMAND_LEN,                         // command_end:     end of command\r
-    RUWIDO_COMPLETE_DATA_LEN,                                           // complete_len:    complete length of frame\r
-    RUWIDO_STOP_BIT,                                                    // stop_bit:        flag: frame has stop bit\r
-    RUWIDO_LSB,                                                         // lsb_first:       flag: LSB first\r
-    RUWIDO_FLAGS                                                        // flags:           some flags\r
-};\r
-\r
-#endif\r
-\r
 static uint8_t                              irmp_bit;                   // current bit position\r
 static IRMP_PARAMETER                       irmp_param;\r
 \r
@@ -1378,8 +1363,9 @@ irmp_get_data (IRMP_DATA * irmp_data_p)
                 }\r
                 break;\r
 #endif\r
-#if IRMP_SUPPORT_SIEMENS_PROTOCOL == 1\r
+#if IRMP_SUPPORT_SIEMENS_OR_RUWIDO_PROTOCOL == 1\r
             case IRMP_SIEMENS_PROTOCOL:\r
+            case IRMP_RUWIDO_PROTOCOL:\r
                 if (((irmp_command >> 1) & 0x0001) == (~irmp_command & 0x0001))\r
                 {\r
                     irmp_command >>= 1;\r
@@ -1789,6 +1775,7 @@ irmp_ISR (void)
                         }\r
                         else\r
 #endif // IRMP_SUPPORT_FDC_PROTOCOL == 1\r
+\r
 #if IRMP_SUPPORT_RCCAR_PROTOCOL == 1\r
                         if (irmp_pulse_time >= RCCAR_START_BIT_PULSE_LEN_MIN && irmp_pulse_time <= RCCAR_START_BIT_PULSE_LEN_MAX &&\r
                             irmp_pause_time >= RCCAR_START_BIT_PAUSE_LEN_MIN && irmp_pause_time <= RCCAR_START_BIT_PAUSE_LEN_MAX)\r
@@ -1918,21 +1905,24 @@ irmp_ISR (void)
                     else\r
 #endif // IRMP_SUPPORT_GRUNDIG_OR_NOKIA_PROTOCOL == 1\r
 \r
-#if IRMP_SUPPORT_SIEMENS_PROTOCOL == 1\r
-                    if (((irmp_pulse_time >= SIEMENS_START_BIT_LEN_MIN && irmp_pulse_time <= SIEMENS_START_BIT_LEN_MAX) ||\r
-                         (irmp_pulse_time >= 2 * SIEMENS_START_BIT_LEN_MIN && irmp_pulse_time <= 2 * SIEMENS_START_BIT_LEN_MAX)) &&\r
-                        ((irmp_pause_time >= SIEMENS_START_BIT_LEN_MIN && irmp_pause_time <= SIEMENS_START_BIT_LEN_MAX) ||\r
-                         (irmp_pause_time >= 2 * SIEMENS_START_BIT_LEN_MIN && irmp_pause_time <= 2 * SIEMENS_START_BIT_LEN_MAX)))\r
-                    {                                                           // it's SIEMENS\r
-                        ANALYZE_PRINTF ("protocol = SIEMENS, start bit timings: pulse: %3d - %3d, pause: %3d - %3d\n",\r
-                                        SIEMENS_START_BIT_LEN_MIN, SIEMENS_START_BIT_LEN_MAX,\r
-                                        SIEMENS_START_BIT_LEN_MIN, SIEMENS_START_BIT_LEN_MAX);\r
-                        irmp_param_p = (IRMP_PARAMETER *) &siemens_param;\r
+#if IRMP_SUPPORT_SIEMENS_OR_RUWIDO_PROTOCOL == 1\r
+                    if (((irmp_pulse_time >= SIEMENS_OR_RUWIDO_START_BIT_PULSE_LEN_MIN && irmp_pulse_time <= SIEMENS_OR_RUWIDO_START_BIT_PULSE_LEN_MAX) ||\r
+                         (irmp_pulse_time >= SIEMENS_OR_RUWIDO_START_BIT_PULSE_LEN_MIN_2 && irmp_pulse_time <= SIEMENS_OR_RUWIDO_START_BIT_PULSE_LEN_MAX_2)) &&\r
+                        ((irmp_pause_time >= SIEMENS_OR_RUWIDO_START_BIT_PAUSE_LEN_MIN && irmp_pause_time <= SIEMENS_OR_RUWIDO_START_BIT_PAUSE_LEN_MAX) ||\r
+                         (irmp_pause_time >= SIEMENS_OR_RUWIDO_START_BIT_PAUSE_LEN_MIN_2 && irmp_pause_time <= SIEMENS_OR_RUWIDO_START_BIT_PAUSE_LEN_MAX_2)))\r
+                    {                                                           // it's RUWIDO or SIEMENS\r
+                        ANALYZE_PRINTF ("protocol = RUWIDO, start bit timings: pulse: %3d - %3d or %3d - %3d, pause: %3d - %3d or %3d - %3d\n",\r
+                                        SIEMENS_OR_RUWIDO_START_BIT_PULSE_LEN_MIN,   SIEMENS_OR_RUWIDO_START_BIT_PULSE_LEN_MAX,\r
+                                        SIEMENS_OR_RUWIDO_START_BIT_PULSE_LEN_MIN_2, SIEMENS_OR_RUWIDO_START_BIT_PULSE_LEN_MAX_2,\r
+                                        SIEMENS_OR_RUWIDO_START_BIT_PAUSE_LEN_MIN,   SIEMENS_OR_RUWIDO_START_BIT_PAUSE_LEN_MAX,\r
+                                        SIEMENS_OR_RUWIDO_START_BIT_PAUSE_LEN_MIN_2, SIEMENS_OR_RUWIDO_START_BIT_PAUSE_LEN_MAX_2);\r
+                        irmp_param_p = (IRMP_PARAMETER *) &ruwido_param;\r
                         last_pause = irmp_pause_time;\r
                         last_value  = 1;\r
                     }\r
                     else\r
-#endif // IRMP_SUPPORT_SIEMENS_PROTOCOL == 1\r
+#endif // IRMP_SUPPORT_SIEMENS_OR_RUWIDO_PROTOCOL == 1\r
+\r
 #if IRMP_SUPPORT_FDC_PROTOCOL == 1\r
                     if (irmp_pulse_time >= FDC_START_BIT_PULSE_LEN_MIN && irmp_pulse_time <= FDC_START_BIT_PULSE_LEN_MAX &&\r
                         irmp_pause_time >= FDC_START_BIT_PAUSE_LEN_MIN && irmp_pause_time <= FDC_START_BIT_PAUSE_LEN_MAX)\r
@@ -1944,6 +1934,7 @@ irmp_ISR (void)
                     }\r
                     else\r
 #endif // IRMP_SUPPORT_FDC_PROTOCOL == 1\r
+\r
 #if IRMP_SUPPORT_RCCAR_PROTOCOL == 1\r
                     if (irmp_pulse_time >= RCCAR_START_BIT_PULSE_LEN_MIN && irmp_pulse_time <= RCCAR_START_BIT_PULSE_LEN_MAX &&\r
                         irmp_pause_time >= RCCAR_START_BIT_PAUSE_LEN_MIN && irmp_pause_time <= RCCAR_START_BIT_PAUSE_LEN_MAX)\r
@@ -1954,23 +1945,6 @@ irmp_ISR (void)
                         irmp_param_p = (IRMP_PARAMETER *) &rccar_param;\r
                     }\r
                     else\r
-#endif // IRMP_SUPPORT_RCCAR_PROTOCOL == 1\r
-#if IRMP_SUPPORT_RUWIDO_PROTOCOL == 1\r
-                    if ((irmp_pulse_time >= RUWIDO_START_BIT_PULSE_LEN_MIN && irmp_pulse_time <= RUWIDO_START_BIT_PULSE_LEN_MAX) &&\r
-                        (irmp_pause_time >= RUWIDO_START_BIT_PAUSE_LEN_MIN && irmp_pause_time <= RUWIDO_START_BIT_PAUSE_LEN_MAX))\r
-                    {                                                           // it's RUWIDO\r
-                        {\r
-                            ANALYZE_PRINTF ("protocol = RUWIDO, start bit timings: pulse: %3d - %3d, pause: %3d - %3d\n",\r
-                                            RUWIDO_START_BIT_PULSE_LEN_MIN, RUWIDO_START_BIT_PULSE_LEN_MAX,\r
-                                            RUWIDO_START_BIT_PAUSE_LEN_MIN, RUWIDO_START_BIT_PAUSE_LEN_MAX);\r
-                        }\r
-\r
-                        irmp_param_p = (IRMP_PARAMETER *) &ruwido_param;\r
-                        last_pause = irmp_pause_time;\r
-\r
-                        last_value  = 1;\r
-                    }\r
-                    else\r
 #endif // IRMP_SUPPORT_RCCAR_PROTOCOL == 1\r
                     {\r
                         ANALYZE_PRINTF ("protocol = UNKNOWN\n");\r
@@ -1990,9 +1964,9 @@ irmp_ISR (void)
                         else\r
                         {\r
                             ANALYZE_PRINTF ("pulse: %3d - %3d or %3d - %3d\n", irmp_param.pulse_1_len_min, irmp_param.pulse_1_len_max,\r
-                                            irmp_param.pulse_0_len_max + 1, irmp_param.pulse_0_len_max);\r
+                                            irmp_param.pulse_0_len_min, irmp_param.pulse_0_len_max);\r
                             ANALYZE_PRINTF ("pause: %3d - %3d or %3d - %3d\n", irmp_param.pause_1_len_min, irmp_param.pause_1_len_max,\r
-                                            irmp_param.pause_0_len_max + 1, 2 * irmp_param.pause_0_len_max);\r
+                                            irmp_param.pause_0_len_min, irmp_param.pause_0_len_max);\r
                         }\r
 \r
 #if IRMP_SUPPORT_RC5_PROTOCOL == 1 && (IRMP_SUPPORT_FDC_PROTOCOL == 1 || IRMP_SUPPORT_RCCAR_PROTOCOL == 1)\r
@@ -2037,9 +2011,11 @@ irmp_ISR (void)
                     irmp_bit = 0;\r
 \r
 #if IRMP_SUPPORT_MANCHESTER == 1\r
-                    if ((irmp_param.flags & IRMP_PARAM_FLAG_IS_MANCHESTER) && irmp_param.protocol != IRMP_RC6_PROTOCOL)    // Manchester, but not RC6\r
+                    if ((irmp_param.flags & IRMP_PARAM_FLAG_IS_MANCHESTER) &&\r
+                         irmp_param.protocol != IRMP_RUWIDO_PROTOCOL && // Manchester, but not RUWIDO\r
+                         irmp_param.protocol != IRMP_RC6_PROTOCOL)      // Manchester, but not RC6\r
                     {\r
-                        if (irmp_pause_time > irmp_param.pulse_1_len_max && irmp_pause_time <= irmp_param.pulse_0_len_max)\r
+                        if (irmp_pause_time > irmp_param.pulse_1_len_max && irmp_pause_time <= irmp_param.pulse_0_len_max)      // XXXXXXXX!!!\r
                         {\r
                             ANALYZE_PRINTF ("%8d [bit %2d: pulse = %3d, pause = %3d] ", time_counter, irmp_bit, irmp_pulse_time, irmp_pause_time);\r
                             ANALYZE_PUTCHAR ((irmp_param.flags & IRMP_PARAM_FLAG_1ST_PULSE_IS_1) ? '0' : '1');\r
@@ -2159,6 +2135,36 @@ irmp_ISR (void)
                         }\r
                         else\r
 #endif\r
+#if IRMP_SUPPORT_SIEMENS_OR_RUWIDO_PROTOCOL == 1\r
+                        if (irmp_param.protocol == IRMP_RUWIDO_PROTOCOL && !irmp_param.stop_bit)\r
+                        {\r
+                            if (irmp_pause_time > irmp_param.pause_0_len_max && irmp_bit >= RUWIDO_COMPLETE_DATA_LEN - 2)\r
+                            {                                                           // special manchester decoder\r
+                                irmp_param.complete_len = RUWIDO_COMPLETE_DATA_LEN;     // correct complete len\r
+                                got_light = TRUE;                                       // this is a lie, but generates a stop bit ;-)\r
+                                irmp_param.stop_bit = TRUE;                             // set flag\r
+                            }\r
+                            else if (irmp_bit >= RUWIDO_COMPLETE_DATA_LEN)\r
+                            {\r
+                                ANALYZE_PRINTF ("Switching to SIEMENS protocol\n");\r
+                                irmp_param.protocol         = IRMP_SIEMENS_PROTOCOL;    // change protocol\r
+                                irmp_param.address_offset   = SIEMENS_ADDRESS_OFFSET;\r
+                                irmp_param.address_end      = SIEMENS_ADDRESS_OFFSET + SIEMENS_ADDRESS_LEN;\r
+                                irmp_param.command_offset   = SIEMENS_COMMAND_OFFSET;\r
+                                irmp_param.command_end      = SIEMENS_COMMAND_OFFSET + SIEMENS_COMMAND_LEN;\r
+\r
+                                //                   76543210\r
+                                // RUWIDO:  AAAAAAAAACCCCCCCp\r
+                                // SIEMENS: AAAAAAAAAAACCCCCCCCCCp\r
+                                irmp_tmp_address <<= 2;\r
+                                irmp_tmp_address |= (irmp_tmp_command >> 6);\r
+                                irmp_tmp_command &= 0x003F;\r
+                                irmp_tmp_command <<= 4;\r
+                                irmp_tmp_command |= last_value;\r
+                            }\r
+                        }\r
+                        else\r
+#endif\r
 #if IRMP_SUPPORT_MANCHESTER == 1\r
                         if ((irmp_param.flags & IRMP_PARAM_FLAG_IS_MANCHESTER) &&\r
                             irmp_pause_time > irmp_param.pause_0_len_max && irmp_bit >= irmp_param.complete_len - 2 && !irmp_param.stop_bit)\r
@@ -2896,9 +2902,13 @@ print_timings (void)
             GRUNDIG_OR_NOKIA_START_BIT_LEN_MIN, GRUNDIG_OR_NOKIA_START_BIT_LEN_MAX, GRUNDIG_OR_NOKIA_PRE_PAUSE_LEN_MIN, GRUNDIG_OR_NOKIA_PRE_PAUSE_LEN_MAX,\r
             GRUNDIG_OR_NOKIA_BIT_LEN_MIN, GRUNDIG_OR_NOKIA_BIT_LEN_MAX);\r
 \r
-    printf ("SIEMENS        1  %3d - %3d  %3d - %3d  %3d - %3d\n",\r
-            SIEMENS_START_BIT_LEN_MIN, SIEMENS_START_BIT_LEN_MAX, SIEMENS_START_BIT_LEN_MIN, SIEMENS_START_BIT_LEN_MAX,\r
-            SIEMENS_BIT_LEN_MIN, SIEMENS_BIT_LEN_MAX);\r
+    printf ("SIEMENS/RUWIDO 1  %3d - %3d  %3d - %3d  %3d - %3d  %3d - %3d  %3d - %3d  %3d - %3d\n",\r
+            SIEMENS_OR_RUWIDO_START_BIT_PULSE_LEN_MIN, SIEMENS_OR_RUWIDO_START_BIT_PULSE_LEN_MAX,\r
+            SIEMENS_OR_RUWIDO_START_BIT_PAUSE_LEN_MIN, SIEMENS_OR_RUWIDO_START_BIT_PAUSE_LEN_MAX,\r
+            SIEMENS_OR_RUWIDO_BIT_PULSE_LEN_MIN, SIEMENS_OR_RUWIDO_BIT_PULSE_LEN_MAX,\r
+            SIEMENS_OR_RUWIDO_BIT_PAUSE_LEN_MIN, SIEMENS_OR_RUWIDO_BIT_PAUSE_LEN_MAX,\r
+            SIEMENS_OR_RUWIDO_BIT_PULSE_LEN_MIN_2, SIEMENS_OR_RUWIDO_BIT_PULSE_LEN_MAX_2,\r
+            SIEMENS_OR_RUWIDO_BIT_PAUSE_LEN_MIN_2, SIEMENS_OR_RUWIDO_BIT_PAUSE_LEN_MAX_2);\r
 \r
     printf ("FDC            1  %3d - %3d  %3d - %3d  %3d - %3d  %3d - %3d  %3d - %3d  %3d - %3d\n",\r
             FDC_START_BIT_PULSE_LEN_MIN, FDC_START_BIT_PULSE_LEN_MAX, FDC_START_BIT_PAUSE_LEN_MIN, FDC_START_BIT_PAUSE_LEN_MAX,\r
diff --git a/irmp.h b/irmp.h
index 4e6629ee458d631e19e60ea13d6b21c818417879..d16da6013e0aa54348e253fe8c0456964df98540 100644 (file)
--- a/irmp.h
+++ b/irmp.h
@@ -3,7 +3,7 @@
  *\r
  * Copyright (c) 2009-2010 Frank Meyer - frank(at)fli4l.de\r
  *\r
- * $Id: irmp.h,v 1.47 2011/02/08 08:46:22 fm Exp $\r
+ * $Id: irmp.h,v 1.49 2011/02/21 11:49:37 fm Exp $\r
  *\r
  * ATMEGA88 @ 8 MHz\r
  *\r
@@ -302,16 +302,28 @@ typedef uint8_t     PAUSE_LEN;
 #define NOKIA_COMMAND_LEN                       8                               // read 8 command bits\r
 #define NOKIA_COMPLETE_DATA_LEN                 17                              // complete length: 1 start bit + 8 address bits + 8 command bits\r
 \r
-#define SIEMENS_BIT_TIME                        250.0e-6                        // 250 usec pulse/pause\r
-#define SIEMENS_FRAME_REPEAT_PAUSE_TIME          45.0e-3                        // frame repeat after 45ms\r
-#define SIEMENS_ADDRESS_OFFSET                  2                               // skip 2 start bits\r
-#define SIEMENS_ADDRESS_LEN                     12                              // read 12 address bits\r
-#define SIEMENS_COMMAND_OFFSET                  15                              // skip 15 bits (2 start bits + 12 address bits + 1 inverted bit)\r
-#define SIEMENS_COMMAND_LEN                     8                               // read 7 + 1 command bits, last bit is only check bit.\r
-#define SIEMENS_COMPLETE_DATA_LEN               23                              // complete length\r
-#define SIEMENS_STOP_BIT                        0                               // has no stop bit\r
-#define SIEMENS_LSB                             0                               // MSB...LSB\r
-#define SIEMENS_FLAGS                           (IRMP_PARAM_FLAG_IS_MANCHESTER | IRMP_PARAM_FLAG_1ST_PULSE_IS_1)  // flags\r
+#define SIEMENS_OR_RUWIDO_START_BIT_PULSE_TIME    275.0e-6                      //  275 usec pulse\r
+#define SIEMENS_OR_RUWIDO_START_BIT_PAUSE_TIME    550.0e-6                      //  550 usec pause\r
+#define SIEMENS_OR_RUWIDO_BIT_PULSE_TIME          275.0e-6                      //  275 usec short pulse\r
+#define SIEMENS_OR_RUWIDO_BIT_PULSE_TIME_2        550.0e-6                      //  550 usec long pulse\r
+#define SIEMENS_OR_RUWIDO_BIT_PAUSE_TIME          275.0e-6                      //  275 usec short pause\r
+#define SIEMENS_OR_RUWIDO_BIT_PAUSE_TIME_2        550.0e-6                      //  550 usec long pause\r
+#define SIEMENS_OR_RUWIDO_FRAME_REPEAT_PAUSE_TIME 45.0e-3                       // frame repeat after 45ms\r
+#define SIEMENS_OR_RUWIDO_STOP_BIT                0                             // has no stop bit\r
+#define SIEMENS_OR_RUWIDO_LSB                     0                             // MSB...LSB\r
+#define SIEMENS_OR_RUWIDO_FLAGS                   (IRMP_PARAM_FLAG_IS_MANCHESTER | IRMP_PARAM_FLAG_1ST_PULSE_IS_1)  // flags\r
+\r
+#define RUWIDO_ADDRESS_OFFSET                   0                               // skip 0 bits\r
+#define RUWIDO_ADDRESS_LEN                      9                               // read 9 address bits\r
+#define RUWIDO_COMMAND_OFFSET                   9                               // skip 9 bits\r
+#define RUWIDO_COMMAND_LEN                      8                               // read 7 + 1 command bits, last bit is only check bit\r
+#define RUWIDO_COMPLETE_DATA_LEN                17                              // complete length\r
+\r
+#define SIEMENS_ADDRESS_OFFSET                  0                               // skip 0 bits\r
+#define SIEMENS_ADDRESS_LEN                     11                              // read 11 bits\r
+#define SIEMENS_COMMAND_OFFSET                  11                              // skip 11 bits\r
+#define SIEMENS_COMMAND_LEN                     11                              // read 10 + 1 command bits, last bit is only check bit\r
+#define SIEMENS_COMPLETE_DATA_LEN               22                              // complete length\r
 \r
 #define FDC_START_BIT_PULSE_TIME                 2085.0e-6                      // 2085 usec pulse\r
 #define FDC_START_BIT_PAUSE_TIME                  966.0e-6                      //  966 usec pause\r
@@ -373,22 +385,6 @@ typedef uint8_t     PAUSE_LEN;
 #define NIKON_LSB                               0                               // LSB...MSB\r
 #define NIKON_FLAGS                             0                               // flags\r
 \r
-#define RUWIDO_START_BIT_PULSE_TIME              889.0e-6                       //  900 usec pulse\r
-#define RUWIDO_START_BIT_PAUSE_TIME             1400.0e-6                       // 1400 usec pause\r
-#define RUWIDO_BIT_PULSE_TIME                    889.0e-6                       //  889 usec short pulse\r
-#define RUWIDO_BIT_PULSE_TIME_2                 1622.0e-6                       // 1622 usec long pulse\r
-#define RUWIDO_BIT_PAUSE_TIME                    611.0e-6                       //  611 usec short pause\r
-#define RUWIDO_BIT_PAUSE_TIME_2                 1361.0e-6                       // 1361 usec long pause\r
-#define RUWIDO_FRAME_REPEAT_PAUSE_TIME            45.0e-3                       // frame repeat after 45ms\r
-#define RUWIDO_ADDRESS_OFFSET                   2                               // skip 2 start bits\r
-#define RUWIDO_ADDRESS_LEN                      8                               // read 8 address bits\r
-#define RUWIDO_COMMAND_OFFSET                   10                              // skip 10 bits (2 start + 8 address)\r
-#define RUWIDO_COMMAND_LEN                      7                               // read 7 command bits, ignore last parity bit\r
-#define RUWIDO_COMPLETE_DATA_LEN                18                              // complete length\r
-#define RUWIDO_STOP_BIT                         0                               // has no stop bit\r
-#define RUWIDO_LSB                              0                               // MSB...LSB\r
-#define RUWIDO_FLAGS                            (IRMP_PARAM_FLAG_IS_MANCHESTER | IRMP_PARAM_FLAG_1ST_PULSE_IS_1)  // flags\r
-\r
 #define AUTO_FRAME_REPETITION_TIME              80.0e-3                         // SIRCS/SAMSUNG32/NUBERT: automatic repetition after 25-50ms\r
                                                                                 // KASEIKYO: automatic repetition after 75ms\r
 \r
index dda727326f86cc962bbb050eadc98f11fc8571e2..469daec3dbd53fa4f81425926aa97a562b7c598c 100644 (file)
@@ -3,7 +3,7 @@
  *\r
  * Copyright (c) 2010 Frank Meyer - frank(at)fli4l.de\r
  *\r
- * $Id: irmpconfig.h,v 1.48 2011/02/08 08:40:27 fm Exp $\r
+ * $Id: irmpconfig.h,v 1.50 2011/02/21 11:49:37 fm Exp $\r
  *\r
  * ATMEGA88 @ 8 MHz\r
  *\r
 #define IRMP_SUPPORT_DENON_PROTOCOL             1       // DENON, Sharp         >= 10000                 ~250 bytes\r
 #define IRMP_SUPPORT_JVC_PROTOCOL               1       // JVC                  >= 10000                 ~250 bytes\r
 #define IRMP_SUPPORT_RC5_PROTOCOL               1       // RC5                  >= 10000                 ~250 bytes\r
-#define IRMP_SUPPORT_RC6_PROTOCOL               0       // RC6 & RC6A           >= 10000                 ~200 bytes\r
-#define IRMP_SUPPORT_RUWIDO_PROTOCOL            0       // RUWIDO, T-Home       >= 10000                 ~250 bytes\r
-#define IRMP_SUPPORT_GRUNDIG_PROTOCOL           0       // Grundig              >= 10000                 ~150 bytes\r
-#define IRMP_SUPPORT_NOKIA_PROTOCOL             0       // Nokia                >= 10000                 ~150 bytes\r
-#define IRMP_SUPPORT_NUBERT_PROTOCOL            0       // NUBERT               >= 10000                  ~50 bytes\r
-#define IRMP_SUPPORT_BANG_OLUFSEN_PROTOCOL      0       // Bang & Olufsen       >= 10000                 ~200 bytes\r
-#define IRMP_SUPPORT_NIKON_PROTOCOL             0       // NIKON                >= 10000                 ~250 bytes\r
-#define IRMP_SUPPORT_FDC_PROTOCOL               0       // FDC3402 keyboard     >= 10000 (better 15000)   ~50 bytes (~400 in combination with RC5)\r
-#define IRMP_SUPPORT_RCCAR_PROTOCOL             0       // RC Car               >= 10000 (better 15000)  ~150 bytes (~500 in combination with RC5)\r
-#define IRMP_SUPPORT_SIEMENS_PROTOCOL           0       // Siemens Gigaset      >= 15000                 ~150 bytes\r
-#define IRMP_SUPPORT_RECS80_PROTOCOL            0       // RECS80               >= 20000                  ~50 bytes\r
-#define IRMP_SUPPORT_RECS80EXT_PROTOCOL         0       // RECS80EXT            >= 20000                  ~50 bytes\r
+#define IRMP_SUPPORT_RC6_PROTOCOL               1       // RC6 & RC6A           >= 10000                 ~200 bytes\r
+#define IRMP_SUPPORT_GRUNDIG_PROTOCOL           1       // Grundig              >= 10000                 ~150 bytes\r
+#define IRMP_SUPPORT_NOKIA_PROTOCOL             1       // Nokia                >= 10000                 ~150 bytes\r
+#define IRMP_SUPPORT_NUBERT_PROTOCOL            1       // NUBERT               >= 10000                  ~50 bytes\r
+#define IRMP_SUPPORT_BANG_OLUFSEN_PROTOCOL      1       // Bang & Olufsen       >= 10000                 ~200 bytes\r
+#define IRMP_SUPPORT_NIKON_PROTOCOL             1       // NIKON                >= 10000                 ~250 bytes\r
+#define IRMP_SUPPORT_FDC_PROTOCOL               1       // FDC3402 keyboard     >= 10000 (better 15000)   ~50 bytes (~400 in combination with RC5)\r
+#define IRMP_SUPPORT_RCCAR_PROTOCOL             1       // RC Car               >= 10000 (better 15000)  ~150 bytes (~500 in combination with RC5)\r
+#define IRMP_SUPPORT_SIEMENS_PROTOCOL           1       // Siemens Gigaset      >= 15000                 ~200 bytes\r
+#define IRMP_SUPPORT_RUWIDO_PROTOCOL            1       // RUWIDO, T-Home       >= 15000                 ~200 bytes\r
+#define IRMP_SUPPORT_RECS80_PROTOCOL            1       // RECS80               >= 20000                  ~50 bytes\r
+#define IRMP_SUPPORT_RECS80EXT_PROTOCOL         1       // RECS80EXT            >= 20000                  ~50 bytes\r
 \r
 /*---------------------------------------------------------------------------------------------------------------------------------------------------\r
  * Change hardware pin here:\r
 #define IRMP_SUPPORT_SIEMENS_PROTOCOL           0\r
 #endif\r
 \r
+#if IRMP_SUPPORT_RUWIDO_PROTOCOL == 1 && F_INTERRUPTS < 15000\r
+#warning F_INTERRUPTS too low, RUWIDO protocol disabled (should be at least 15000)\r
+#undef IRMP_SUPPORT_RUWIDO_PROTOCOL\r
+#define IRMP_SUPPORT_RUWIDO_PROTOCOL            0\r
+#endif\r
+\r
 #if IRMP_SUPPORT_RECS80_PROTOCOL == 1 && F_INTERRUPTS < 20000\r
 #warning F_INTERRUPTS too low, RECS80 protocol disabled (should be at least 20000)\r
 #undef IRMP_SUPPORT_RECS80_PROTOCOL\r
 #define IRMP_SUPPORT_NEC_PROTOCOL               1\r
 #endif\r
 \r
+#if F_INTERRUPTS > 20000\r
+#error F_INTERRUPTS too high (should be not more than 20000)\r
+#endif\r
+\r
 #endif /* _WC_IRMPCONFIG_H_ */\r