Beiträge anzeigen

Diese Sektion erlaubt es ihnen alle Beiträge dieses Mitglieds zu sehen. Beachten sie, dass sie nur solche Beiträge sehen können, zu denen sie auch Zugriffsrechte haben.

Nachrichten - Axel

1
Hier die X10 Config

/*
    infrared codes for X10 remote control
    Copyright (C) 2009  <telekatz@gmx.de>

    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 3 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, see <http://www.gnu.org/licenses/>.
*/

/*pre_data*/            0x00000000,
/*post_data*/           0x00000000,
/*toggle_bit_mask*/     0x80800000,
/*gap*/                         4500,
/*repeat_gap*/          0,
/*bits*/                        16,
/*pre_data_bits*/       0,
/*post_data_bits*/      5,
/*rc6_bit*/                     0,
/*frequency*/           0x00101234,             // 433,9198 MHz
/*flags*/                       LIRC_RF,
/*header*/                      2600,1600,
/*three*/                       0,0,
/*two*/                         0,0,
/*one*/                         500,1600,
/*zero*/                        500,500,
/*plead*/                       0,
/*ptrail*/                      0,
/*foot*/                        0,0,
/*pre*/                 0,0,
/*post*/                        0,0,
/*repeat*/                      0,0,
/*min_repeat*/          0,
/*duty cycle*/          0,

{
        0x0000, // A            ->
        0x0000, // B            ->
        0x0000, // C            ->
        0x0000, // D            ->
        0x0000, // Betty        ->
        0xF520, // Exit         ->      Back
        0x6F9A, // Up           ->      UP
        0xF722, // Down         ->      Down
        0x729D, // Left         ->      Left
        0xF41F, // Right        ->      Right
        0x739E, // OK           ->      OK
        0x5E89, // Vol+         ->      Vol+
        0xDD08, // Vol-         ->      Vol-
        0xD500, // Mute         ->      Mute
        0x608B, // Prog+        ->      Prog+
        0xE10C, // Prog-        ->      Prog-
        0x628D, // 1            ->      1
        0xE30E, // 2            ->      2
        0x648F, // 3            ->      3
        0xE510, // 4            ->      4
        0x6691, // 5            ->      5
        0xE712, // 6            ->      6   
        0x6893, // 7            ->      7
        0xE914, // 8            ->      8
        0x6A95, // 9            ->      9
        0xEC17, // 0            ->      0
        0xF520, // -/--         ->      back   
        0x6D98, // AV           ->      Rec TV   
        0xD904, // Menu         ->      DVD-Menue
        0x88B3, // PiP          ->      subtitle 
        0xD0F2, // A/B          ->      Input     TBD
        0x0934, // 16:9         ->      Angle   
        0x84AF, // Info         ->      Info 
        0x86B1, // VTX1         ->      Guide
        0x58A7, // VTX2         ->    q.view    TBD
        0x8AB5, // VTX3         ->      Title
        0xFD28, // Blue         ->      STOP 
        0x7EA9, // Yello        ->      Pause 
        0x7AA5, // Green        ->      Play 
        0x7CA7, // Red          ->      Record
        0xF11C, // TV           ->      LifeTV
        0xD702  // Power        ->      Power
},

Gruss
Axel
2
Den Teil mit der Steuerkreuzansteuerung hatte ich hier schon gepostet, steht in der ersten Seite des Threads.

Alleridings habe ich mit den unterschiedlichen Ansteuerungen auch schon experimentiert. Aber die Reihenfolge der Kontakte hat leider keinen echten Bezug zur gedrückten Richtung. Es kann sein, dass man "Runter" drückt und der "Rechts" die ganze Zeit kontaktiert bleibt. Leider kann das auch umgekehrt passieren.

Beim Originalprogramm ist das anscheinend kein Problem, da wird das Kreuz kaum genutzt.

Gruss
Axel
3
Ich verwende nur lpctool, kann Bettyheaven daher nicht beurteilen.

Aber mit lpctool (Linux) habe ich es gerade noch mal probiert, geht einwandfrei.

Gruss
Axel
4
Wie ich schon schrieb, gibt es zwei Probleme.

1. Die Führung der Wippe/Kreuz ist zu eng. Dadurch kippt der Ring nicht und drückt nur einen der vier Knöpfe, sondern man drückt mit dem "Unten" Knopf praktisch diesen ganzen Ring runter, so dass die anderen Knöpfe auch Kontakt bekommen. Bei mir habe ich das gelöst, indem ich mit einem Messer die Öffnung für den Ring, der das Kreuz bildet, etwas vergrössert habe, so dass der tatsächlich kippt und nur den einen Knopf aktiviert, auf den man drückt. Ich habe vier Bettys, das Problem trat bisher bei zweien auf, bei einer nicht. 

2. Die Software hat den oben erwähnten Bug, der dazu führt, dass die Erfassung der Knöpfe nicht richtig funktioniert. Bei mir hat das teilweise dazu geführt, dass die Sendesequenz nie gestoppt hat. Ob das auftritt, hängt aber anscheinend auch vom verwendeten IR-Code ab.

Gruss
Axel
5
Bitte schön.

Allerdings habe ich festgestellt, dass das das Problem nicht löst. Dafür löst es das Problem, dass die IR Signale nicht stoppen. Ich hatte bei einigen beide Probleme.

Das Problem mit dem Kreuz kann man lösen, indem man den Ausschnitt in der schwarzen Abdeckung mit einem Messer etwas (also so 1/4 mm) vergrössert, so dass das "Kreuzteil" der Gummiplatte mehr Platz hat. 

Übrigens findet man unter LIRC neue Fernbedienungen für x10  (das ist eine Fernbedienung, die über Funk und USB Empfänger an den PC geht ) sowie Tevion (Aldi Funksteckdosen). Bei der Tevion kann man über Lautstärke  und Programm jeweils Steckdosen für A und B steuern. 

Sources stelle ich zur Verfügung, sobald die ausreichend getestet sind.

Gruss
Axel
6
Hallo,

hier mal mein erster Beitrag.

Es gibt m. Meinung nach einen Fehler im keyirq.c

Es muss heissen:
#ifdef SWISSCOM
        IOSET2= (126<<18);   // Alle Port 2 Ausgaenge physikalisch auf 1 setzen
        IO2_P = (1<<18);      // In IO2_P ist jeweils ein Bit gesetzt  (erstmal das auf pin 18)
        IO2_0=0;           // Wird zum shiften von keys[0] verwendet
        IO2_1=0;
        keys[0]=0;
        keys[1]=0;
        for(IO2_PC=18;IO2_PC<=24;IO2_PC++)     // Durch alle P2 durch jeweils ein P2 bit loeschen, Wert abfragen und wieder setzen
        {
                        IOCLR2 = IO2_P;       // Physikalisch clearen eine Leitung wird gelöscht
                        keys[0] |= ((IOPIN1>>16) & 0xF)<<IO2_0;     // Resultat an Pin1 abfragen default is all one (no key pressed)
                        keys[1] |= ((IOPIN1>>21) & 0x3)<<IO2_1;     // Resultat an Pin1 abfragen (obere hälfte)
                        IO2_0 +=4;     // nun das Resultat schiften
                        IO2_1 +=2;     // nun das Resultat schiften
                        IOSET2 = IO2_P;        // Nun wieder setzen, alle P2 sind wieder 1
                        IO2_P = (IO2_P<<1);
        }
        IOCLR2 = (127<<18);     // P2 Ausgaenge wieder alle löschen
        keys[0]= (~keys[0]) & 0x0fffffff;       // Resultat ist jetzt invertiert
        keys[1]= (~keys[1]) & 0x00003fff;
#else

d. h. die letzten beiden Zeilen vor dem #else waren falsch. So wie es vorher war, (also mit   keys[0]= (~keys[0]); ) konnte keys niemals 0 werden, so dass die Tastaturentprellung in den späteren Zeilen nicht vernünftig funktioniert hat.

So scheint es bei mir jetzt zu gehen (zumindest das Kreuz, Rest muss ich noch mal testen).

Gruss
Axel