*\r
* Copyright (c) 2013 Frank Meyer - frank(at)fli4l.de\r
*\r
- * $Id: irmpprotocols.h,v 1.11 2013/03/19 15:11:55 fm Exp $\r
+ * $Id: irmpprotocols.h,v 1.14 2013/04/09 11:59:12 fm Exp $\r
*\r
* This program is free software; you can redistribute it and/or modify\r
* it under the terms of the GNU General Public License as published by\r
#define IRMP_A1TVBOX_PROTOCOL 32 // A1 TV Box\r
#define IRMP_ORTEK_PROTOCOL 33 // ORTEK - Hama\r
#define IRMP_TELEFUNKEN_PROTOCOL 34 // Telefunken (1560)\r
+#define IRMP_ROOMBA_PROTOCOL 35 // iRobot Roomba vacuum cleaner\r
\r
-#define IRMP_N_PROTOCOLS 34 // number of supported protocols\r
+#define IRMP_N_PROTOCOLS 35 // number of supported protocols\r
\r
/*---------------------------------------------------------------------------------------------------------------------------------------------------\r
* timing constants:\r
#define A1TVBOX_FRAME_REPEAT_PAUSE_TIME 50.0e-3 // 50 msec pause between frames, don't know if it is correct\r
\r
/*---------------------------------------------------------------------------------------------------------------------------------------------------\r
- * ORTEK (Hama):\r
+ * ORTEK (Hama): 6 address bits + 2 frame type bits + 6 command bits + 1 parity bit + 1 unknown bit + "1" + "0"\r
*---------------------------------------------------------------------------------------------------------------------------------------------------\r
*/\r
#define ORTEK_START_BIT_PULSE_TIME 2000.0e-6 // 2000 usec pulse\r
#define ORTEK_START_BIT_PAUSE_TIME 1000.0e-6 // 1000 usec pause\r
#define ORTEK_BIT_TIME 500.0e-6 // 500 usec pulse/pause\r
#define ORTEK_FRAME_REPEAT_PAUSE_TIME 45.0e-3 // frame repeat after 45ms\r
-#define ORTEK_ADDRESS_OFFSET 0 // skip "1" + 3 unknown bits + 1 toggle bit\r
-#define ORTEK_ADDRESS_LEN 6 // read 7 address bits\r
-#define ORTEK_COMMAND_OFFSET 8 // skip 5 bits ("1" + 3 mode + 1 toggle bit)\r
-#define ORTEK_COMMAND_LEN 6 // read 5 command bits\r
+#define ORTEK_ADDRESS_OFFSET 0 // skip 0 bits\r
+#define ORTEK_ADDRESS_LEN 8 // read 6 address bits + 2 special bits\r
+#define ORTEK_COMMAND_OFFSET 8 // skip 6 address bits + 2 special bits\r
+#define ORTEK_COMMAND_LEN 6 // read 6 command bits\r
#define ORTEK_COMPLETE_DATA_LEN 18 // complete length\r
#define ORTEK_STOP_BIT 0 // has no stop bit\r
#define ORTEK_LSB 0 // MSB...LSB\r
#define TELEFUNKEN_PULSE_TIME 600.0e-6 // 600 usec pulse\r
#define TELEFUNKEN_1_PAUSE_TIME 1500.0e-6 // 1500 usec pause\r
#define TELEFUNKEN_0_PAUSE_TIME 600.0e-6 // 600 usec pause\r
-#define TELEFUNKEN_FRAME_REPEAT_PAUSE_TIME 22.0e-3 // frame repeat after 22ms\r
+#define TELEFUNKEN_FRAME_REPEAT_PAUSE_TIME 22.0e-3 // frame repeat after XX ms ?????\r
#define TELEFUNKEN_ADDRESS_OFFSET 0 // skip 0 bits\r
#define TELEFUNKEN_ADDRESS_LEN 0 // read 0 address bits\r
#define TELEFUNKEN_COMMAND_OFFSET 0 // skip 0 bits\r
#define TELEFUNKEN_LSB 0 // LSB...MSB\r
#define TELEFUNKEN_FLAGS 0 // flags\r
\r
+/*---------------------------------------------------------------------------------------------------------------------------------------------------\r
+ * ROOMBA\r
+ *---------------------------------------------------------------------------------------------------------------------------------------------------\r
+ */\r
+#define ROOMBA_START_BIT_PULSE_TIME 2790.0e-6 // 2790 usec pulse\r
+#define ROOMBA_START_BIT_PAUSE_TIME 930.0e-6 // 930 usec pause\r
+#define ROOMBA_0_PULSE_TIME 930.0e-6 // 930 usec pulse\r
+#define ROOMBA_1_PULSE_TIME 2790.0e-6 // 2790 usec pulse\r
+#define ROOMBA_0_PAUSE_TIME 2790.0e-6 // 2790 usec pause\r
+#define ROOMBA_1_PAUSE_TIME 930.0e-6 // 930 usec pause\r
+#define ROOMBA_FRAME_REPEAT_PAUSE_TIME 18.0e-3 // frame repeat after 18ms\r
+#define ROOMBA_ADDRESS_OFFSET 0 // skip 0 bits\r
+#define ROOMBA_ADDRESS_LEN 0 // read 0 address bits\r
+#define ROOMBA_COMMAND_OFFSET 0 // skip 0 bits\r
+#define ROOMBA_COMMAND_LEN 7 // read 7 bits\r
+#define ROOMBA_COMPLETE_DATA_LEN 7 // complete length\r
+#define ROOMBA_STOP_BIT 0 // has stop bit\r
+#define ROOMBA_LSB 0 // MSB...LSB\r
+#define ROOMBA_FLAGS 0 // flags\r
+\r
#define AUTO_FRAME_REPETITION_TIME 80.0e-3 // SIRCS/SAMSUNG32/NUBERT: automatic repetition after 25-50ms\r
\r
#endif // _IRMP_PROTOCOLS_H_\r