~~NOTOC~~ ====== IRMP ====== ==== Menuconfig ==== │ │ Load a Default Configuration ---> │ │ General Setup ---> │ │ [*] Status LEDs ---> │ │ [*] Status LED (Received) │ │ [-] RFM12 RX │ │ [ ] ZBUS RX │ │ [*] IRMP RX │ │ I/O ---> │ │ [*] IR Receivers ---> │ │ [*] IRMP IR ---> │ │ [*] Receive IR-codes │ │ [*] Send IR-codes │ │ [*] IRMP ecmd │ │ --- Protocols │ │ [ ] SIRCS │ │ [ ] NEC │ │ [ ] JVC │ │ [ ] SAMSUNG │ │ [ ] MATSUSHITA │ │ [ ] KASEIKYO │ │ [*] DENON │ │ [ ] RECS80 │ │ [ ] RECS80EXT │ │ [*] RC5(X) │ │ [ ] RC6 │ │ [ ] NUBERT │ │ [ ] BANG&OLUFSEN │ │ [*] GRUNDIG │ │ [ ] NOKIA │ │ [ ] SIEMENS │ │ [ ] FDC │ │ [ ] RCCAR │ │ [ ] NIKON │ │ --- Debugging Flags │ │ [ ] IRMP Debug ==== Infos ==== Testcpu: m644\\ Board: etherrape\\ (vorsicht, protokoll ist dezimal, adresse hexadezimal in der ausgabe) ==== Modifikationen ==== Datei: pinning/hardware/etherrape.m4\\ ifdef(`conf_IRMP', `dnl pin(IRMP_RX, PD2) #define IRMP_USE_TIMER2 #define IRMP_RX_LOW_ACTIVE #undef IRMP_RX_LED_LOW_ACTIVE pin(IRMP_TX, PD7) dnl OC2/OC2A #undef IRMP_TX_LED_LOW_ACTIVE ') ==== Control6 Scripte ==== **Funktion:** //Via IR tasten die stella kanäle steuern. anfang 0 bis 255, kein überlauf wenn 255 erreicht.// --> http://paste2.org/p/1181590 oder C6_HEADER(`/* This will be in control6.h */') CONTROL_START THREAD(blink) ON IRMP_READ > 0 DO if(IRMP_PROTOCOL==8 && IRMP_ADDRESS==0x0002 && IRMP_COMMAND==0x0268) { PIN_SET(LED1); break; } if(IRMP_PROTOCOL==8 && IRMP_ADDRESS==0x0002 && IRMP_COMMAND==0x0068) { PIN_CLEAR(LED1); break; } END THREAD_END(blink) THREAD_START(blink) CONTROL_END oder C6_HEADER(`/* This will be in control6.h */') CONTROL_START THREAD(blink) ON IRMP_READ > 0 DO if(IRMP_PROTOCOL==8 && IRMP_ADDRESS==0x0002 && IRMP_COMMAND==0x0268) ESEND(192.168.123.51, "channel 0 255 f\n"); if(IRMP_PROTOCOL==8 && IRMP_ADDRESS==0x0002 && IRMP_COMMAND==0x0068) ESEND(192.168.123.51, "channel 0 0 f\n"); END THREAD_END(blink) THREAD_START(blink) CONTROL_END oder (nicht getestet) ON IRMP_READ>0 DO if(IRMP_PROTOCOL==meinprotokoll && IRMP_ADDRESS==0xmeineadresse) switch(IRMP_COMMAND) { case 0x268: PIN_TOGGLE(pin_irgendwas); break; } END ==== Steuern von Stella/Pins durch IR-Zeichen ==== C6_HEADER(`/* This will be in control6.h */') #include "services/stella/stella.h" CONTROL_START THREAD(control_stella) ON IRMP_READ > 0 DO if(IRMP_PROTOCOL==8 && IRMP_ADDRESS==0x0002) { switch(IRMP_COMMAND) { case 0x0268: stella_setValue(STELLA_SET_IMMEDIATELY, 0, 255); break; case 0x0068: stella_setValue(STELLA_SET_IMMEDIATELY, 0, 0); break; } } END THREAD_END(control_stella) ON STARTUP DO THREAD_START(control_stella); END CONTROL_END Das Script schaltet den Stella Channel 0 auf 255 oder auf 0, die Fernbedienung ist hier eine Denon (Protocol 8). Mit ''include'' wurde dem Script der Zugriff auf die Stellasourcen gestattet.\\ Statt ''"stella_setValue(STELLA_SET_IMMEDIATELY, 0, 255);"'' kann auch ''"PIN_SET(LED)"'' und ''"PIN_CLEAR(LED)"'' verwendet werden (Named_PIN|Named PIN).