Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem bei mehreren hintereinander aktivierten Sprachausgaben

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problem bei mehreren hintereinander aktivierten Sprachausgaben

    Hallo,

    ich will bei meiner T18MZ verschiedene Sprachausgaben programmieren die bei betätigen des jeweiligen
    Schalters wiedergegeben werden.
    Des weiteren wird beim einschalten des Senders das jeweilig aktive Modell per Sprachausgabe ausgegeben.
    Die Sprachfiles habe ich mit dem PC als *.wav erzeugt und auf die SD Karte kopiert.

    Jetzt zu meinem Problem.

    Wenn ich den Sender einschalte und ein Schalter einer weiteren Sprachausgabe aktiv ist wird der Modellname nicht vollständig wiedergegeben.
    Die Ausgabe des Modellnamens wird vorzeitig abgebrochen und die Sprachausgabe des aktiven Schalters wird gestartet.

    Erwartet hätte ich eigentlich, dass die Sprachausgaben hintereinander ablaufen.

    Was auch nicht funktioniert ist, wenn mehrere Sprachausgaben einem Schalter zugeordnet werden.
    In diesem Fall wird nur die erste Sprachausgabe wiedergegeben.

    Ich hoffe es kann mir Jemand weiterhelfen.

    Danke und viele Grüße,
    Matthias

  • #2
    Hallo Matthias!

    Ja, dieses Phänomen habe ich auch schon beobachtet und kann Dir das aus der Sicht
    der Windows Programmierung erklären. Die T14 & T18 verwenden ja Windows CE!
    Windows in allen Varianten ist ein multitasking/multithreading Betriebssystem.
    Dadurch musst Du bei der Programmierung immer darauf schauen, dass Du in keine Zeitprobleme der einzelnen Tasks/Threads gerätst!
    Hatte es die T14MZ noch einfach, da Sie immer nur auf Eingaben des Benutzers warten musste,
    muß die T18MZ zusätzlich ständig die Telemetrie abfragen und aktualisieren.

    WAV-Sounds werden in der Windows API Programmierung normalerweise durch den Befehl:
    PlaySound( "Meine WAV-Datei.wav", fdwSound)
    abgespielt.
    Der Parameter fdwSound kann die Werte
    SND_ASYNC The sound is played asynchronously and PlaySound returns immediately after beginning the sound. To terminate an asynchronously played waveform sound, call PlaySound with pszSound set to NULL.
    oder
    SND_SYNC The sound is played synchronously, and PlaySound returns after the sound event completes. This is the default behavior.
    annehmen.
    D.h: mit SND_ASYNC spielt Windows die Datei ab und läuft sofort zum nächsten Programmschritt,
    bei SND_SYNC wartet es halt, bis die Datei abgespielt wurde!
    Bei der T18MZ ist sicher alles mit SND_ASYNC programmiert, da wir sonst in Zeitprobleme geraten würden, wenn wir immer
    warten müssten, bis jede WAV-Datei bis zum Ende abgespielt ist, wenn eine neue abgespielt werden soll. Die Telemetrie will halt zügig ausgewertet werden!
    Ist aus programmtechnischer Sicht richtig!
    Wir haben ja in der T18MZ sicher keinen Quad-Core Prozessor mit 4GB Speicher und 2GHz Taktfrequenz usw.
    Weiß eigentlich jemand, was da für ein Prozessor mit welcher Taktfrequenz drinnen werkelt???

    Deswegen sehe ich darin keinen Bug im eigentlichen Sinn, und nehme es daher nicht in meinen Thread der unsauberen
    Programmierung auf.
    Es ist zwar lästig, aber damit müssen wir leben!

    Gruß
    Gerhard

    Kommentar


    • #3
      Hallo Gerhard,

      Danke für die ausführliche Erklärung.
      Das telemetrie Daten vorrangig ausgegeben werden sehe ich ja ein.
      Jedoch nicht, dass nicht auf das Ende einer wav Ausgabe aus Zeitmangel gewartet werden kann.
      Wenn der wav Player in einem eigenen thread gestartet wird sollte es auch zu keinen Zeitproblemen kommen....
      Ist doch gerade der Sinn von Multithreading.


      Viele Grüße,
      Matthias
      Zuletzt geändert von 21msj83; 21.04.2013, 11:39.

      Kommentar


      • #4
        Moin.

        Es gibt generell Probleme mit der Priorisierung der Sounds. Das habe ich an Robbe gemeldet und wurde auch anerkannt als Bug. Z.B. brechen Sounds auf Mittelstellungen von Schaltern alle anderen ab... Hat halt Priorität.

        Daher einfach melden (und am Besten nachtelefonieren) und Daumen drücken. Ggf. wird das mal aufgeräumt.

        Vg Nils

        Kommentar


        • #5
          Hallo Nils,

          ich habe auch eine Antwort von Robbe bekommen.
          Es heißt, das dieses Verhalten so richtig und auch gewollt ist.
          Wenn ein Schalter betätigt wird soll immer sofort die aktuelle Sprachausgabe gestartet werden.
          Bereits laufende Sprachausgaben werden abgebrochen.
          Macht ja manchmal auch Sinn.

          Ich würde mir jedoch wünschen die Möglichkeit zu haben selbst zu entscheiden ob eine Sprachausgabe
          Vorrang hat oder nicht. So wie die Prioritäten bei den Flugzuständen.

          Viele Grüße,
          Matthias

          Kommentar


          • #6
            Hi.

            Genau so soll es sein, ist es aber nicht immer. Manchmal werden die Sounds nicht abgebrochen und der nachfolgende wird nicht angesagt. Das ist dann nicht so toll und kann verwirren, wenn man darauf vertraut.

            Dein Erweiterungsvorschlag natürlich auch interessant. Aber erstmal soll die Basisfunktion laufen.

            Vg Nils

            Kommentar


            • #7
              Hallo!

              Um die Sache noch mehr zu verwirren:
              da jetzt endlich brauchbares Flugwetter herrscht habe ich mich jetzt mal ausgiebig mit dem Telemetrie im Flug
              auseinandersetzen können.
              Ich habe die externe Akkuspannung überwachen lassen und der Sender hat mir brav die Unterspannung durchgesagt, als der Akku langsam leer wurde.
              Da habe ich dann den Flugzustand von Motor auf Segelflug gewechselt. ( Ein Wechsel der Flugzustände wird bei mir
              immer mit einem selbst aufgenommenen WAV-File meiner Stimme bestätigt. "Der Co-Pilot quasi")
              Und jetzt kam die Überraschung: die warnende Stimme die die Unterspannung durchsagt wurde nicht etwa durch meine
              Flugzustandsstimme unterbrochen sondern es erklangen beide Stimmen gleichzeitig!!!
              Das bedeutet, dass die Rechengeschwindigkeit der T18MZ schnell genug ist um 2 WAV-Files gleichzeitig abzuspielen!
              Deswegen ist die Unterbrechung der Sprachausgabe als BUG zu sehen. Robbe kann das noch so schön reden aber es sollte behoben werden!
              Wahrscheinlich eine Altlast von der T14MZ. Grosse Programmteile wurden sicher von der T14MZ übernommen.

              Gruss Gerhard

              Kommentar

              Lädt...
              X