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