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]

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

Absender: Benjamin Benz
Datum: Fr, 17.03.2006 23:05:42
In-reply-to: <200603172204.17736.michail@xxxxxxxxxx>
References: <200603172204.17736.michail@xxxxxxxxxx>


Hallo,

Die Idee halte ich für sehr gut. Wenn Sie einen entsprechenden Patch (mit 
einheitlicher Formatierung einreichen, werde ich ihn gerne einpflegen.

MfG Benjamin Benz
Am Freitag, 17. März 2006 22:04 schrieb Michail Brzitwa:
> 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ß,

-- 
--
Benjamin Benz
c't-Magazin
Heise Zeitschriften Verlag
bbe@xxxxxxxx



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