|
 |
 |
 |
|
|
c't Projekte - c't-Bot und c't-Sim -
Mailinglisten
[Voriger (Datum)]
[Nächster (Datum)]
[Voriger (Thread)]
[Nächster (Thread)]
[Nach Datum][Nach Thread]
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
|
|
|