Features für die nächste Software Version

In welchem Branch? Im Master ist mir das auch mehrfach aufgefallen. Die aktuelle DEV scheint von dem Problem nicht mehr betroffen zu sein.

Dann lade ich nachher noch einmal die aktuelle DEV. Dachte ich hätte die schon drauf.

Kannst du bitte genau die Schritte beschreiben die du machst?

Es muss ja im DEV Branch sein - die aktuelle Master Version hat diese Funktion ja überhaupt nicht. Desweiteren wurde an der Funktion eigentlich schon länger nichts mehr gemacht.

Ah Karten für Ordner erzeugen. Das habe ich überlesen. Ich dachte es ging generell um die Funktion des Anlernens von Karten. Sorry

Detailierte Beschreibung:

Ich starte das Admin Menue, Wähle die Funktion Karten für Ordner, Ordnerauswahl, Startdatei, Enddatei …

Nach Aufforderung lege ich die Karten nacheinander auf. Ich achte bereits darauf, dass ich diese gerade von Oben au den Kartenleser zuführe, um etwaige Probleme zu vermeiden.

Hierbei kommt es immer wieder vor teils sofort, Teils nach einer oder ein paar Karten, das er in den Zustand spring: Neue Karte erkannt.

Ich gehe davon aus, dass Zeile 828/829 hier die Probleme macht:

if (!mfrc522.PICC_ReadCardSerial())

return;

Ja da magst du recht haben. Wenn ich das richtig sehe, unterbricht das quasi die for Schleife wenn die Karte aus irgend einen Grund nicht lesbar ist. Und sei es nur weil man sich im falschen Winkel dem Reader nähert, die Karte aber eigentlich i.O. ist.

1 „Gefällt mir“

Kannst du mal folgenden Code probieren:

  else if (subMenu == 9) {
    // Create Cards for Folder
    // Ordner abfragen
    nfcTagObject tempCard;
    tempCard.cookie = cardCookie;
    tempCard.version = 1;
    tempCard.nfcFolderSettings.mode = 4;
    tempCard.nfcFolderSettings.folder = voiceMenu(99, 301, 0, true);
    uint8_t special = voiceMenu(mp3.getFolderTrackCount(tempCard.nfcFolderSettings.folder), 321, 0,
                                true, tempCard.nfcFolderSettings.folder);
    uint8_t special2 = voiceMenu(mp3.getFolderTrackCount(tempCard.nfcFolderSettings.folder), 322, 0,
                                 true, tempCard.nfcFolderSettings.folder, special);

    mp3.playMp3FolderTrack(936);
    waitForTrackToFinish();
    for (uint8_t x = special; x <= special2; x++) {
      mp3.playMp3FolderTrack(x);
      tempCard.nfcFolderSettings.special = x;
      Serial.print(x);
      Serial.println(F(" Karte auflegen"));
      do {
        readButtons();
        if (upButton.wasReleased() || downButton.wasReleased()) {
          Serial.println(F("Abgebrochen!"));
          mp3.playMp3FolderTrack(802);
          return;
        }
      } while (!mfrc522.PICC_IsNewCardPresent());

      // RFID Karte wurde aufgelegt
      if (mfrc522.PICC_ReadCardSerial()) {
        Serial.println(F("schreibe Karte..."));
        writeCard(tempCard);
        delay(100);
        mfrc522.PICC_HaltA();
        mfrc522.PCD_StopCrypto1();
        waitForTrackToFinish();
      }
    }
  }
1 „Gefällt mir“

Hallo Thorsten,

ich habe es gerade eingebaut und getestet. Es funktioniert. Einzige Unschönheit, wenn eine Karte nicht lesbar war springt er nach Fehlerinfo zur nächsten Karte. In meinem Fall auch richtig, wenn eine Karte nicht beschreibbar ist, da ich diese vorher bedruckt habe.

Kannst Du das Update noch in die aktuelle Version einbauen?

Das spielt doch für dich keine Rolle (du hast es ja drin jetzt). So kritisch ist das „Problem“ ja nicht, und es ist ja oben ein (sehr) baldiges größeres Update angekündigt, wo das dann auch mit drin ist. :slight_smile:

Es ging bei der Bitte um das große Update! Nicht für zwischendurch.

1 „Gefällt mir“

Wie gesagt, ich denke das wird dann mit drin sein.

So, wer mutig ist oder mir einfach etwas helfen mag, kann die neue Version gerne mal testen.

Wichtig: Sounddateien ebenfalls tauschen.

Ich lade gleich noch ein Video zu den neuen Features auf Youtube hoch.

5 „Gefällt mir“

Folgendes ist mir aufgefallen:

  1. Beim “Affengriff” zum Start werden, nachdem das EEPROM gelöscht wurde die default Settings nicht geladen. Stattdessen sind weiterhin alte Settings aktiv.
  2. Typo: void migraTeSettings(int oldVersion);
  3. 0970_modifier_Intro.mp3 fehlt bei der Apple und Hohe Stimme. Bei der Google Stimme ist es dabei, allerdings nur Stille.
  4. Adminmenü->Eine Karte neu konfigurieren: Wirft com error 6 weil es Message 800 nicht gibt.
  5. Adminmenü->Eine Karte neu konfigurieren: Wenn man den Vorgang abbricht wird trotzdem (alles was man bis dahin ausgewählt hat) auf die Karte geschrieben. Bricht man zb. bei der Auswahl des Ordners ab, hat man automatisch eine Admin Karte erstellt.
  6. Adminmenü->Eine Karte neu konfigurieren: vol up/down ist abbrechen? Sollte wie überall play/pause lang sein?!
  7. Adminmenü->Eine Karte neu konfigurieren: Wenn man das Admin Menü mit der Admin Karte geöffnet hat kann man keine neue Karte anlernen weil der Reader nicht mehr reagiert.
  8. Adminmenü->Eine Karte neu konfigurieren: Wenn die Karte nicht lesbar ist bricht der Vorgang ab und manchmal wird dann die Karte abgespielt. Ich vermute man fliegt dann aus dem Adminmenü und die Karte triggert normal.
  9. Adminmenü: Beim einstellen der 3 Lautstärken kann man minimal > maximal einstellen oder auch initial > minimal etc. Das führt dann teilweise zu komischen Effekten beim Lautstärke verändern.
  10. Adminmenü->max/min/init Lautstärke + EQ: Wenn man das einstellen abbricht werden die Settings trotzdem gespeichert. Und zwar mit 0.
  11. Adminmenü->Modifier: Es fehlt das Intro (siehe 4).
  12. Adminmenü->Modifier: Es sollte eine Ansage geben “jetzt eine Karte auflegen” wenn man sich für einen Modifier entschieden hat.
  13. Modifier Karten werden auch akzeptiert und aktiviert wenn gerade nichts gespielt wird. Sobald man dann die nächste normale Karte auflegt ist man direkt im z.B. Stoptanz. Sollte m.M.n. nicht so sein (außer natürlich bei den Sperrfunktionen). Vorallem weil dann auch keine Ansage kommt.
  14. Modifier Karten für die Sperrfunktionen bräuchten einen Hinweis beim aktivieren wenn nichts gespielt wird (allerdings problematisch weil das natürlich den play/pause state des vorher gelaufenen Titels killt).
  15. Modifier Karten bräuchten einen Hinweis beim deaktivieren des Modifiers. Generell wird glaub ich nirgends gesagt das ein erneutes auflegen der Modifierkarte selbiger wieder deaktiviert wird. Oder ich habs überhört.
  16. Adminmenü Entsperren: Es wäre schön wenn ma bei Falscheingabe einen Hinweis bekäme.
  17. mp3/0960_timer_intro.mp3|Nach wievielen Minuten Leerlauf soll der TonUINO ausgeschaltet werden? Du brauchst hierfür aber eine entsprechenden Schaltung.
    • Hier ist ein n zuviel.
  18. mp3/0970_modifier_Intro.mp3|
    • Hier fehlt der Text. Siehe 4.

Generell fände ich es besser wenn das Adminmenü noch eine Bestätigung ausgibt “Einstellung gespeichert”. Und es wäre, finde ich, besser wenn es loopen würde. Also man nicht nach jeder Einstellung wieder neu rein muss, sondern es bewußt abbrechen muss. Hab ich beides bei mir drin und fahre gut damit.

Wenn mir noch was auffällt kann ich das gerne hier ergänzen… jetzt erstmal Pause. :wink:

5 „Gefällt mir“

Hallo Zusammen,

wenn man die 801 und 802 nachlädt auf die SD Karte geht das neu zuordnen von Karten wieder.

Was mir noch aufgefallen ist, ist das wenn man eine leere Karte auflegt während etwas läuft, der Track neu beginnt.

Habe probiert eine modifier Karte sleep timer anzulegen. Scheinbar geht das nicht. Nachdem starten eines Hörbuches mit Speicherung der Position, lieg der Tonuino nach 5 Minuten weiter. Ist das schon implementiert ?

Aber generell wieder mal eine Mega Leistung die Software.

Vielen Dank !!!

Hallo @stephan ,
gibt es irgendwo eine Übersicht was das neue Update so alles kann, oder wird das erst spruchreif wenn es raus kommt?
habe für meine neue no button box eine neue software geschrieben, die dem was ich so lese dem update sehr nahe kommt, und da ich den stopptanz cool fand auch schnell eingebaut. für inspirationen bin ich wie immer gerne zu haben, vielleicht weil ich gerne programmier aufgaben löse :wink:

@Thorsten hatte ja hier ein Preview gegeben:

Eine Vollständige Anleitung wird es geben wenn die letzten Bugs behoben sind und alles final ist.

@stephan Danke, das hatte ich natürlich gelesen :wink:
und darauf hin den eindruck, das ihr noch ein paar schöne dinge in der hinterhand habt, was ihr vielleicht noch nicht preis gebt. würde ich an der stelle auch verständnis für haben.
Jetzt habe ich auf jeden fall einen guten einblick bekommen, was ihr leistet um so eine software zu schreiben, was meistens “schnell” geht, aber was sich vielleicht viele nicht vorstellen können, ist wieviel zeit zum fixen drauf geht!

  1. Fehler bei Sperrmodi (toddler und Komplettsperre), die Funktion “handleNextButton” ist an einigen Stellen mit “handeNextButton” (ein L fehlt) definiert, weswegen diese Taste dann noch funktioniert.

  2. Ich habe den Fehler, wenn ich mit ner Adminkarte ins Menü gehe, sobald ich dann eine leere Karte auflege wird automatisch ein bestimmter Ordner (Immer der selbe) abgespielt, was ja eigentlich nicht sein kann.

  3. Kein Bug, aber ein Hinweis, wenn man eine Karte neu konfiguriert, wäre es gut wenn der Tonuino sagen würde: “Jetzt bitte Karte auflegen” oder sowas. Da man kein Feedback bekommt wenn man die Taste drückt, bin ich immer etwas unsicher ob er jetzt meine Eingabe registriert hat.

Ansonsten, HAMMER Update. Mein Sohn hat morgen Geburtstag und ich kann ENDLICH die Box überreichen nach 3 Monaten :smiley: Und dann auch noch mit den coolen neuen Funktionen.

Es würde helfen, wenn Bug Reports nicht in Fließtext versteckt sind. Daher eine Bitte an alle mutigen die testen und Bugs melden: Macht bitte Stichpunkte bzw. eine nummerierte Liste. Danke!

1 „Gefällt mir“

Hallo @stephan,
habe in meinem Prog die void shuffleQueue() aus der aktuellen DEV verwendet, Bei Serial.print ist mir aufgefallen das eine NULL in der queue erzeugt wird, und somit ein Track zu viel. Hier meine Konsole

=== Bekannte Karte & PLAY
22 Dateien in Ordner 3
Party Modus → Ordner in zufälliger Reihenfolge wiedergeben
Queue :
16 / 7 / 13 / 6 / 5 / 9 / 3 / 15 / 0 / 2 / 22 / 8 / 20 / 21 / 12 / 19 / 11 / 1 / 10 / 4 / 17 / 14 / 18 /

Der Player hat damit natürlich ein Problem. Gelöst habe ich es mit in

static void nextTrack() und void playFolder()

if (queue[currentTrack - 1]==0)
currentTrack++;

in
static void previousTrack()

if (queue[currentTrack - 1]==0)
currentTrack–;

Habe dazu nix im Forum gefunden.
Bei mir läuft es so zuverlässig