PicoC Baustein Output Text (Newbie)

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Liver_64
    MS Profi
    • 07.09.2015
    • 591

    PicoC Baustein Output Text (Newbie)

    Hallo zusammen,

    ich bräuchte mal Hilfe im Bereich PicoC. Um gleich vorneweg zu sagen, ich habe NULL Ahnung, kann es aber ein wenig lesen bzw. verstehen da ich php Erfahrung habe.
    Meine Aufgabenstellung sieht folgendermaßen aus:

    Alle meine Fenster Reeds (23 Stück) laufen final in einen Statusbaustein (2 Eingänge) und werden dort in einer Zeile aggregiert, um Sie zu visualisieren. Am 3. Eingang habe ich einen Trigger der den Status verändert, so dass eine Änderung stattfindet. Nun kommt mein Problem: Der Status der offenen Fenster soll mir dann per Text-to-speech auf Sonos ausgegeben werden, was auch soweit funktioniert, aber leider auch beim Ausschalten des Triggers (egal ob Taster oder Schalter). Die Meldung wird dann 2x angesagt, 1x mit den offenen Fenstern und 1x mit Null.
    Dir TTS generiere ich über virtuellen Ausgang per php script.

    Im Prinzip bräuchte ich einen Baustein mit Text Eingang + Trigger und Textausgang (der mir den Text beim Trigger=1 durchschleift), aber den gibt es wohl leider nicht in Loxone.
    Von daher habe ich mir dann aus anderen Postings ein PicoC zusammengestrickt, welches aber keinen Output generiert und ich weiß nicht mehr warum.

    Nun meine Frage an die PicoC Freaks. Was ist falsch in meinem Script bei folgender Beschaltung?

    TI=Text
    AI1=0 oder 1
    TQ=TI(wenn AI1=1)

    Code:
    // write program here in PicoC
    char szBuffer[128];
    float f1,f2;
    int nEvents;
    while(TRUE)
        {
        nEvents = getinputevent();
        f1 = getinputtext(0);
        f2 = getinput(1);
        if (nEvents & 0x1c)
            {
            if(f2==1)
                {
                setoutput(0,f1);
                sprintf(szBuffer,f1);
                setoutputtext(0,szBuffer);
                printf(szBuffer);
                }
            }
        sleep(100);
        }
    vielen vielen Dank vorab
    Gruß
    Oliver
    Anmerkung: Bitte keine Fragen mehr per PN sondern direkt im Forum damit andere mithelfen und mitprofitieren können.
    Bzgl. Sonos Plugin supporte ich nur noch die jeweils aktuelle Version NUR auf dem LoxBerry, ich kann keine VM Unterstützung mangels Hardware geben. Herzlichen Dank!
  • romildo
    Lebende Foren Legende
    • 25.08.2015
    • 5126

    #2
    Im Prinzip bräuchte ich einen Baustein mit Text Eingang + Trigger und Textausgang (der mir den Text beim Trigger=1 durchschleift
    Sofern ich dich nicht falsch verstehe, geht dies doch mit dem Statusbaustein.

    Beispiel:
    Text an Eingang AI1
    Trigger an Eingang AI2
    Eintrag in Status:
    AI2 == 1 Statustext <v1>
    An TQ wird Text von AI1 ausgegeben wenn an AI2 eine 1 anliegt.
    lg Romildo

    Kommentar

    • maxw
      Lox Guru
      • 26.08.2015
      • 1356

      #3
      Deine Text Behandlung ist völlig falsch. Du verwendest eine float Variable um auf einen Text zu referenzieren, das geht natürlich nicht. Schau dir doch die Doku und Beispiele bei Loxon an. Wenn du php witklich kannst kriegst du das leicht hin.

      Kommentar

      • romildo
        Lebende Foren Legende
        • 25.08.2015
        • 5126

        #4
        Liver_64

        Hallo Oliver
        Da in Loxone maximal 7 Programme funktionieren, würde ich es, wie ich in #2 beschrieben habe, ohne PicoC lösen.
        Wenns denn doch in PicoC sein soll, dann Beispielsweise so:
        Code:
        // write program here in PicoC
        float f1;
        int nEvents;
        char* Text;
        while(TRUE)
            {
            nEvents = getinputevent();
            if (nEvents & 0xe)       //Programm 4 0xe, Programm 8 = 0x1c, Programm 16 = 0x38
                {
                f1 = getinput(0);
                if (f1 == 1)
                    {
                        Text = getinputtext(0);
                        setoutputtext(0,Text);
                    }
                }
            sleep(100);
            }
        lg Romildo

        Kommentar

        • Liver_64
          MS Profi
          • 07.09.2015
          • 591

          #5
          vielen Dank an romildo, Problem mit seinem Code gelöst :-)

          Ich hatte vergessen zu erwähnen das mein Ausgang ein analoger HTTP POST Befehl ist, von daher ändert sich sein Status auch am Statusbaustein beim Ausschalten
          nochmals danke für die Unterstützung

          Gruß Oliver
          Anmerkung: Bitte keine Fragen mehr per PN sondern direkt im Forum damit andere mithelfen und mitprofitieren können.
          Bzgl. Sonos Plugin supporte ich nur noch die jeweils aktuelle Version NUR auf dem LoxBerry, ich kann keine VM Unterstützung mangels Hardware geben. Herzlichen Dank!

          Kommentar


          • romildo
            romildo kommentierte
            Kommentar bearbeiten
            Bitte gerne.
            Denke aber immer noch, dass man es trotzdem mit dem Statusbaustein machen kann.
            Aber egal, wenn's so ok ist.
        Lädt...