Beiträge von Dieter

    Hi,

    es gibt doch einige SvdrPsend Implementationen in Python. Zum Teil Jahre alt.

    Welche wird aktiv gepflegt und sollte verwendet werden wenn man es direkt in ein eigenes Python Projekt importieren will.

    Zur Zeit verende ich noch die Perlversion mittels pexpect.

    Hi,

    mal einen Status für irmplircd.py (Examples/Python/irmplircd.py):


    Es werden jetzt einige Dinge vom originalen lircd unterstützt

    • -- listen (senden der Codes/KEYS an andere lircd (auch übers Netz)
    • -- connect (Codes/KEYS von anderen lircd erhalten (auch übers Netz)
    • Kommandoschnittstelle,
      damit funktionieren irsend und lirctool
      send_once, list, simulate, version
      (SEND_START, SEND_STOP, SET_TRANSMITTERS fehlen noch, sind aber nicht so wichtig)

    PS: Hat mir einiges an Verständnis über lirc gebracht.

    Hi,

    habe ich gestern gemacht. Ist GPIO2 (Pin 4).


    Mein Repo:

    Die Neopixel sind jetzt auf GPIO7.

    Auf GPIO5 kann man eine zweite LED anschliesen. Ich habe da eine Zweifarbige LED dran (GPIO5==rot, GPIO2==grün).


    Es gibt ein Python-Beispiel Statusled.py.

    Hi,

    jetzt habe ich den C-Code analysiert und verstehe warum du meine Frage nicht verstandest.

    Ich bin über den Variablennamen "evdev" gestolpert und habe deshalb in eine andere Richtung gedacht.

    Aber das ist nur ein struct der den Pfad und file desc enthält (und zu weiteren verlinken kann).

    Code
    typedef struct evdev {
        char *name;
        int fd;
        struct evdev *next;
    } evdev_t;

    Damit war die Funktion klar. So habe ich die HIDRAW früher (in C++) auch verwendet.

    Ein QuickHack zeigt dass es auch in Python so geht.


    Bin am überlegen ob ich das hidapi Modul raus nehme. Es bringt hier nichts und es ist eine weiter Abhängigkeit.

    (und hat mich einiges Zeit gekostet bis ich die richtige udev Regel hatte. Deine udev reichte nicht aus)

    Die Daten kommen (bei mir) direct vom HIDRAW device (IRMP), werden geparsed, dann werden Adr, Command etc in einen String gepackt (wie bei der C-Version auch und mit sendall in den Socket geschrieben.

    IRW (oder mein Python client) lesen vom Socket und zeigen die Daten dann an.

    Code
    ./irmplircd.py
    LIRC UNIX Socket listening on path /home/USER/lircd
    Read the data in endless loop
    Accepted connection from client
    15000f042200 0 KEY_OK IRMP
    15000f042200 1 KEY_OK IRMP
    15000f042200 1 KEY_OK IRMP
    Code
    irw /home/USER/lircd
    15000f042200 0 KEY_OK IRMP
    15000f042200 1 KEY_OK IRMP
    15000f042200 1 KEY_OK IRMP

    Das lokale Socketfile habe ich nurs für debugging, später wird der im /run sein wie bei der C-Version.

    Es sind auch noch Debugausgaben drin.


    Ich muss mir die C-Version nochmals anschauen...

    Hi,

    seit einiger Zeit arbeite bastle ich am IRMP auf dem Raspberry Pi Pico (RP2040).

    Mein Fork von Jörgs Repo.


    Im Verzeichnis Examples/Python habe ich ein paar Beispiele der Verwendung in Python geschrieben.

    Jetzt auch einen irmplircd.py sowie lircd_client.py (~irw).

    Einfach weil ich lernen wollte wie man sowas mit Python macht. Da bin ich Anfänger (aber +30 Jahre C/C++ und andere).


    Meine Frage an die Geeks: Der originale irmplircd in C liest auch per evdev. Ist das nur weil er vom inputlircd abgeleitet ist oder braucht man das?

    Habe ich noch nicht drin (und ist für meine Anwendung nicht notwendig).


    Ideen:

    - Map file als Verzeichnis (/etc/irmplircd/irmplircd.d)

    - Map files auch für Rückwärtsübersetzung (Name nach Code)

    - Clienten können per sendall IR-Codes senden (~irsend) (deshalb die Rückwärtsübersetzung)

    - Clienten können per sendall die Status-LED schreiben und auch meine NeoPixelerweiterung verwenden


    Dann wäre alles an einem Platz wie bei Lirc auch.


    Meinungen?

    Code
    CMD_NEOPIXEL=40;

    Mache ich so.


    Statusled zeigt an das VDR an ist?

    Oder Aufnahme?


    Ich habe zweifarb Leds rumliegen.... what about: grün: VDR, rot Aufnahme


    Man könnte auch analoge RGB Leds nehmen, aber dann sind die Neopixel fast günstiger (1 Streifen mit 8 LED ~ 0,85€ beim Ali.

    Oder eine von meinen 8 ist für VDR/Aufnahme. Aber da gibt es ev. Probleme da von zwei Seiten zugegriffen wird (Plugin und mein WAF-Daemon).

    Die wissen ja nichts voneinander. Braucht ein "Store/Resume" Befehl...

    Ach, nochwas.

    Die StatusLed und der Neopixel verwenden den gleichen GPIO.

    Falls jemand (ich?) beide haben will gibt es ein Problem.

    Vermutlich verschiebe ich den Neopixel. Gibt es schon andere verplante GPIOs?


    Vielleicht emuliere ich die Statusled auch mit einem Neopixel. Mal sehen.

    Gehäuse muss ich vermutlich neu drucken weil die gewinkelten USB-Stecker mehr Platz brauchen als ich vorgesehen habe.

    Dann kann ich auch eine Statusled vorsehen.