heise online · c't · iX · Technology Review · Telepolis · mobil · Security · Netze · heise open · heise resale · Autos · c't-TV · Jobs · Kiosk
Zum Inhalt
c't

c't Projekte - c't-Bot und c't-Sim - Mailinglisten

c't-Bot und c't-Sim


[Voriger (Datum)] [Nächster (Datum)] [Voriger (Thread)] [Nächster (Thread)]
[Nach Datum][Nach Thread]

[ct-bot] Alle bekannten FB-Codes in rc5-codes.h

Absender: Michail Brzitwa
Datum: Fr, 17.03.2006 22:03:17


N'abend,

die aktuelle Lösung, jeden Benutzer seine eigenen RC5-Codes pflegen zu
lassen, und via .cvsignore zu schützen, ist nicht sehr freundlich zu
Anfängern oder Zu-Spät-Kommern, erst recht, da wohl sehr viele FBs doch
ähnliche Codes aufweisen.

Ich schlage deshalb eine leichte Vereinfachung in rc5-codes.h vor, in
der jeder die Codes bekannter FBs einpflegen kann.

Hier meine aktuelle rc5-codes.h (mit Hauppauge WinTV Codes, aktuelle
CVS-Version). Man muß nur noch oben im Header schauen, ob die eigene
FB definiert ist (oder eine ähnliche existiert), die #define'en und
den Rest #undef'en.

Zu einem späteren Zeitpunkt sollten wir außerdem auch alle individuellen
Parameter (FB-Codes, gemessene Sensorenintervalle usw.usf.), die momentan
überall verstreut rumliegen, in eine einzige config.h zusammenlegen.


/*
 * c't-Sim - Robotersimulator fuer den c't-Bot
 * 
 * This program is free software; you can redistribute it
 * and/or modify it under the terms of the GNU General
 * Public License as published by the Free Software
 * Foundation; either version 2 of the License, or (at your
 * option) any later version. 
 * This program is distributed in the hope that it will be 
 * useful, but WITHOUT ANY WARRANTY; without even the implied
 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
 * PURPOSE. See the GNU General Public License for more details.
 * You should have received a copy of the GNU General Public 
 * License along with this program; if not, write to the Free 
 * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
 * MA 02111-1307, USA.
 * 
 */

/*! @file 	rc5-codes.h
 * @brief 	RC5-Fernbedienungscodes
 * @author 	Andreas Merkle (mail@xxxxxxxxxxxx)
 * @date 	15.02.06
 * Wer diese Datei angepasst hat, kann Sie durch einen .cvsignore Eintrag schützen. 
 * Dann überschreibt Eclipse Sie nicht mehr automatisch
*/

#ifndef RC5CODE_H_
#define RC5CODE_H_


#define RC_HAVE_HAUPPAUGE_WINTV
#undef RC_HAVE_CONRAD_PROMO8
#undef RC_HAVE_MEDION_MD4688



/*!
 * Fernbedienung Hauppauge (simple WinTV-Karten Fernbedienung)
 */

#ifdef RC_HAVE_HAUPPAUGE_WINTV
#	define RC_HAVE_CODES

#	undef JOG_DIAL

#	define RC5_MASK		(RC5_COMMAND)
#	define RC5_NOT_AVAIL	(0xFFFF)

#	define	RC5_CODE_0	(0x1000 & RC5_MASK)		/*!< Taste 0 */
#	define	RC5_CODE_1	(0x1001 & RC5_MASK)		/*!< Taste 1 */
#	define	RC5_CODE_2	(0x1002 & RC5_MASK)		/*!< Taste 2 */
#	define	RC5_CODE_3	(0x1003 & RC5_MASK)		/*!< Taste 3 */
#	define	RC5_CODE_4	(0x1004 & RC5_MASK)		/*!< Taste 4 */
#	define	RC5_CODE_5	(0x1005 & RC5_MASK)		/*!< Taste 5 */
#	define	RC5_CODE_6	(0x1006 & RC5_MASK)		/*!< Taste 6 */
#	define	RC5_CODE_7	(0x1007 & RC5_MASK)		/*!< Taste 7 */
#	define	RC5_CODE_8	(0x1008 & RC5_MASK)		/*!< Taste 8 */
#	define	RC5_CODE_9	(0x1009 & RC5_MASK)		/*!< Taste 9 */

#	define	RC5_CODE_PWR	(0x1026 & RC5_MASK)		/*!< Taste Minimize */
#	define	RC5_CODE_VIEW	(0x102E & RC5_MASK)		/*!< Taste Full Screen */
#	define	RC5_CODE_SELECT	(0x1022 & RC5_MASK)		/*!< Taste Source */

#	define	RC5_CODE_UP	(0x1020 & RC5_MASK)		/*!< Taste CH + */
#	define	RC5_CODE_DOWN	(0x1021 & RC5_MASK)		/*!< Taste CH - */
#	define	RC5_CODE_LEFT	(0x1011 & RC5_MASK)		/*!< Taste VOL- */
#	define	RC5_CODE_RIGHT	(0x1010 & RC5_MASK)		/*!< Taste VOL+ */

#	define RC5_CODE_FWD	RC5_NOT_AVAIL			/*!< Taste nicht vorhanden */
#	define RC5_CODE_BWD	RC5_NOT_AVAIL			/*!< Taste nicht vorhanden */
#	define RC5_CODE_RED	RC5_NOT_AVAIL			/*!< Taste nicht vorhanden */
#	define RC5_CODE_GREEN	RC5_NOT_AVAIL			/*!< Taste nicht vorhanden */
#	define RC5_CODE_YELLOW	RC5_NOT_AVAIL			/*!< Taste nicht vorhanden */
#	define RC5_CODE_BLUE	RC5_NOT_AVAIL			/*!< Taste nicht vorhanden */

#endif


/*!
 * Fernbedienung mit Jog-Dial-Rad, 
 * Achtung: Die Adress-Bits muessen auf die Fernbedienung angepasst werden!
 * Siehe hierzu rc5.c @see RC5_ADDRESS
 */

#ifndef RC_HAVE_CODES		/*!< Default RC5-Codes falls keine FB definiert wurde */
 
#define noJOG_DIAL

#define RC5_MASK (RC5_COMMAND)	/*!< Welcher Teil des Kommandos wird ausgewertet? */

#define RC5_CODE_0	(0x3940 & RC5_MASK)		/*!< Taste 0 */
#define RC5_CODE_1	(0x3941 & RC5_MASK)		/*!< Taste 1 */
#define RC5_CODE_2	(0x3942 & RC5_MASK)		/*!< Taste 2 */
#define RC5_CODE_3	(0x3943 & RC5_MASK)		/*!< Taste 3 */
#define RC5_CODE_4	(0x3944 & RC5_MASK)		/*!< Taste 4 */
#define RC5_CODE_5	(0x3945 & RC5_MASK)		/*!< Taste 5 */
#define RC5_CODE_6	(0x3946 & RC5_MASK)		/*!< Taste 6 */
#define RC5_CODE_7	(0x3947 & RC5_MASK)		/*!< Taste 7 */
#define RC5_CODE_8	(0x3948 & RC5_MASK)		/*!< Taste 8 */
#define RC5_CODE_9	(0x3949 & RC5_MASK)		/*!< Taste 9 */

#define RC5_CODE_UP	(0x2950 & RC5_MASK)	/*!< Taste Hoch */
#define RC5_CODE_DOWN	(0x2951 & RC5_MASK)	/*!< Taste Runter */
#define RC5_CODE_LEFT	(0x2955 & RC5_MASK)	/*!< Taste Links */
#define RC5_CODE_RIGHT	(0x2956 & RC5_MASK)	/*!< Taste Rechts */

#define RC5_CODE_PWR	(0x394C & RC5_MASK)	/*!< Taste An/Aus */

#define RC5_CODE_RED		(0x100B & RC5_MASK)	/*!< Rote Taste */
#define RC5_CODE_GREEN		(0x102E & RC5_MASK)	/*!< Grüne Taste */
#define RC5_CODE_YELLOW	(0x1038 & RC5_MASK)	/*!< Gelbe Taste */
#define RC5_CODE_BLUE		(0x1029 & RC5_MASK)	/*!< Blaue Taste */
#define RC5_CODE_VIEW		(0x000F & RC5_MASK)	/*!< Instant View Taste */

#define RC5_CODE_SELECT	(0x100B & RC5_MASK)	/*!< Select Taste */

#define RC5_CODE_BWD		(0x1025 & RC5_MASK)	/*!< Backward Taste */
#define RC5_CODE_FWD		(0x1026 & RC5_MASK)	/*!< Forward Taste */


#ifdef JOG_DIAL		
	/* Jogdial geht nur inkl. Adresscode */
	#undef RC5_MASK
	#define RC5_MASK (RC5_COMMAND | RC5_ADDRESS)

	#define RC5_CODE_JOG_MID	(0x3969 & RC5_MASK)	/*!< Taste Jog-Dial Mitte */
	#define RC5_CODE_JOG_L1		(0x3962 & RC5_MASK)	/*!< Taste Jog-Dial Links 1 */
	#define RC5_CODE_JOG_L2		(0x396F & RC5_MASK)	/*!< Taste Jog-Dial Links 2 */
	#define RC5_CODE_JOG_L3		(0x395F & RC5_MASK)	/*!< Taste Jog-Dial Links 3 */
	#define RC5_CODE_JOG_L4		(0x3A6C & RC5_MASK)	/*!< Taste Jog-Dial Links 4 */
	#define RC5_CODE_JOG_L5		(0x3A6B & RC5_MASK)	/*!< Taste Jog-Dial Links 5 */
	#define RC5_CODE_JOG_L6		(0x396C & RC5_MASK)	/*!< Taste Jog-Dial Links 6 */
	#define RC5_CODE_JOG_L7		(0x3A6A & RC5_MASK)	/*!< Taste Jog-Dial Links 7 */
	
	#define RC5_CODE_JOG_R1		(0x3968 & RC5_MASK)	/*!< Taste Jog-Dial Rechts 1 */
	#define RC5_CODE_JOG_R2		(0x3975 & RC5_MASK)	/*!< Taste Jog-Dial Rechts 2 */
	#define RC5_CODE_JOG_R3		(0x396A & RC5_MASK)	/*!< Taste Jog-Dial Rechts 3 */
	#define RC5_CODE_JOG_R4		(0x3A6D & RC5_MASK)	/*!< Taste Jog-Dial Rechts 4 */
	#define RC5_CODE_JOG_R5		(0x3A6E & RC5_MASK)	/*!< Taste Jog-Dial Rechts 5 */
	#define RC5_CODE_JOG_R6		(0x396E & RC5_MASK)	/*!< Taste Jog-Dial Rechts 6 */
	#define RC5_CODE_JOG_R7		(0x3A6F & RC5_MASK)	/*!< Taste Jog-Dial Rechts 7 */
#endif	/* JOG_DIAL */

#endif /* !RC_HAVE_CODES */

#endif /* RC5CODE_H_ */


Wenn das Anklang findet, kann ich irgendwann ein Patch erzeugen. Vorher
sollten aber schon die Codes einiger bekannter FBs eingetragen werden.
Gruß,
-- 
Michail Brzitwa           <michail@xxxxxxxxxx>            +49-511-343215



Copyright © 2007 Heise Zeitschriften Verlag Kritik, Anregungen bitte an c't-WWW Datenschutzhinweis   Impressum