Ich finde die Reihenfolge der Funktionen im Adminmenü etwas durcheinander und habe es deshalb so geändert, wie es mir besser gefällt. Das erfordert außer der Änderung im Code auch eine Änderung der Dateinummern 0900 - 0912 im Ordner mp3.
**********************************************************************************************
Änderung der Tracknummern im Ordner mp3 für eine andere Reihenfolge der Funktionen im Adminmenü
Die Anpassung im Code Adminmenü siehe unten.
mp3/0900_admin.mp3|Willkommen im Admin Menü. neu (0900)
Bitte wähle eine Funktion mit den Lautstärketasten aus und bestätige sie mit der Pausetaste!
Durch einen langen Druck auf die Pausetaste kannst du den Vorgang abbrechen.
mp3/0901_card_reset.mp3|Eine Karte neu konfigurieren. neu (0901)
mp3/0909_batch_cards.mp3|Einzelkarten für einen Ordner erstellen. neu (0902)
mp3/0906_modifiers.mp3|Eine Modifikationskarte erstellen. neu (0903)
Diese Karten werden nach den eigentlichen Musikkarten aufgelegt und ändern das Verhalten deines TonUINOs.
mp3/0910_switch_volume.mp3|Funktion der Lautstärketasten umdrehen. neu (0904)
mp3/0904_init_volume.mp3|Lautstärke beim Start festlegen. neu (0905)
mp3/0902_max_volume.mp3|Maximale Lautstärke festlegen. neu (0906)
mp3/0903_min_volume.mp3|Minimale Lautstärke festlegen. neu (0907)
mp3/0905_eq.mp3|EQ konfigurieren. neu (0908)
mp3/0908_standbytimer.mp3|Den Timer konfigurieren. neu (0909)
mp3/0907_shortcut.mp3|Tasten mit einem Shortcut konfigurieren. neu (0910)
Ein Shortcut wird über einen langen Tastendruck gestartet und funktioniert nur, wenn gerade nichts abgespielt wird.
mp3/0912_admin_lock.mp3|Das Adminmenü absichern. neu (0911)
mp3/0911_reset.mp3|Alle Einstellungen löschen. neu (0912)
**********************************************************************************************/
Die Änderung im Code sieht dann so aus.
//*********************Admin-Menü-Funktionen auswählen*****************
int subMenu = voiceMenu(12, 900, 900, false, false, 0, true); // Willkommen im Adminmenü,Wähle eine Funktion ...(mp3/ 900 - 912)
if (subMenu == 0)
return;
// ************** Karte neu Konfiguriern **********
if (subMenu == 1) { // Karte neu Konfigurieren
resetCard();
mfrc522.PICC_HaltA();
mfrc522.PCD_StopCrypto1();
}
// ******* Einzelkarten für Ordner festlegen *********************
else if (subMenu == 2) { // Einzelkarten für Ordner festlegen
// 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); // Verwende die Lautstärketasten um einen Ordner auszuwählen
uint8_t special = voiceMenu(mp3.getFolderTrackCount(tempCard.nfcFolderSettings.folder), 321, 0, // Startdatei auswählen
true, tempCard.nfcFolderSettings.folder);
uint8_t special2 = voiceMenu(mp3.getFolderTrackCount(tempCard.nfcFolderSettings.folder), 322, 0, // Enddatei auswählen
true, tempCard.nfcFolderSettings.folder, special);
mp3.playMp3FolderTrack(936); /*OK, bitte lege nun nacheinander die Karten auf die Box.
Ich werde die jeweilige Nummer vorher ansagen, damit du nicht durcheinander kommst.
Zum Abbrechen einfach eine der Lautstärketasten drücken!*/
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); //OK, ich habe den Vorgang abgebrochen.
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();
}
}
}
// *********** Modifikationskarten erstellen ******
else if (subMenu == 3) { // Modifikationskarte erstellen
// create modifier card
nfcTagObject tempCard;
tempCard.cookie = cardCookie;
tempCard.version = 1;
tempCard.nfcFolderSettings.folder = 0;
tempCard.nfcFolderSettings.special = 0;
tempCard.nfcFolderSettings.special2 = 0;
tempCard.nfcFolderSettings.mode = voiceMenu(6, 970, 970, false, false, 0, true); //Bitte wähle nun deine Modifikationskarte mit den Lautstärketasten aus.
if (tempCard.nfcFolderSettings.mode != 0) { // Schlummermodus konfigurieren
if (tempCard.nfcFolderSettings.mode == 1) { // Sleeptimer konfigurieren
switch (voiceMenu(4, 960, 960)) { // Nach wievielen Minuten soll der TonUINO ausgeschaltet werden?
case 1: tempCard.nfcFolderSettings.special = 5; break;
case 2: tempCard.nfcFolderSettings.special = 15; break;
case 3: tempCard.nfcFolderSettings.special = 30; break;
case 4: tempCard.nfcFolderSettings.special = 60; break;
}
}
mp3.playMp3FolderTrack(800); //Bitte lege nun die Karte auf!
do {
readButtons();
if (upButton.wasReleased() || downButton.wasReleased()) {
Serial.println(F("Abgebrochen!"));
mp3.playMp3FolderTrack(802); //OK, ich habe den Vorgang abgebrochen.
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();
}
}
}
// ********** Funktion der Lautstärketasten umdrehen **************
else if (subMenu == 4) { // Funktion der Lautstärketasten umdrehen
// Invert Functions for Up/Down Buttons
int temp = voiceMenu(2, 933, 933, false);
if (temp == 2) {
mySettings.invertVolumeButtons = true;
}
else {
mySettings.invertVolumeButtons = false;
}
}
// *********** Startlautstärke festlegen **********
else if (subMenu == 5) { // Startlautstärke festlegen
// Initial Volume
mySettings.initVolume = voiceMenu(mySettings.maxVolume - mySettings.minVolume + 1, 932,
mySettings.minVolume - 1, false, false, mySettings.initVolume - mySettings.minVolume + 1) + mySettings.minVolume - 1;
}
// ************* Max Lautstärke festlegen *********
else if (subMenu == 6) { // Max Lautstärke festlegen
// Maximum Volume
mySettings.maxVolume = voiceMenu(30 - mySettings.minVolume, 930, mySettings.minVolume, false, false,
mySettings.maxVolume - mySettings.minVolume) + mySettings.minVolume;
}
// ************ Min Lautstärke festlegen **********
else if (subMenu == 7) { // Min Lautstärke festlegen
// Minimum Volume
mySettings.minVolume = voiceMenu(mySettings.maxVolume - 1, 931, 0, false, false, mySettings.minVolume);
}
// *********** Equalizer konfigurieren ************
else if (subMenu == 8) { // Equalizer Konfigurieren
// EQ
mySettings.eq = voiceMenu(6, 920, 920, false, false, mySettings.eq);
mp3.setEq(mySettings.eq - 1);
}
// ******** Den Standbytimer konfigurieren **********************
else if (subMenu == 9) { // StandbyTimer Konfigurieren
switch (voiceMenu(5, 960, 960)) {
case 1: mySettings.standbyTimer = 5; break;
case 2: mySettings.standbyTimer = 15; break;
case 3: mySettings.standbyTimer = 30; break;
case 4: mySettings.standbyTimer = 60; break;
case 5: mySettings.standbyTimer = 0; break;
}
}
// ********* Eine Taste mit einem Shortcut belegen **************
else if (subMenu == 10) { // Shortcut configurieren
uint8_t shortcut = voiceMenu(4, 940, 940);
setupFolder(&mySettings.shortCuts[shortcut - 1]);
mp3.playMp3FolderTrack(400); //OK. Ich habe die Karte konfiguriert.
}
// ********** Das Adminmenü schützen ****************
else if (subMenu == 11) { // Admin Menü schützen
int temp = voiceMenu(3, 980, 980, false); //Wähle bitte aus ob und wie das Adminmenü geschützt werden soll. (mp3/980 - 983)
if (temp == 1) {
mySettings.adminMenuLocked = 0; // Kein Schutz
}
else if (temp == 2) {
mySettings.adminMenuLocked = 1; // Adminkarte
}
else if (temp == 3) {
int8_t pin[4];
mp3.playMp3FolderTrack(991); //Bitte gebe die Pin ein.
if (askCode(pin)) {
memcpy(mySettings.adminMenuPin, pin, 4);
mySettings.adminMenuLocked = 2; // PIN
}
}
}
// ********** Tonuino zurücksetzen ****************
else if (subMenu == 12) { // Tonuino zurücksetzen
Serial.println(F("Reset -> EEPROM wird gelöscht"));
for (int i = 0; i < EEPROM.length(); i++) {
EEPROM.update(i, 0);
}
resetSettings();
mp3.playMp3FolderTrack(999); //Reset wurde durchgeführt!
}
// ********** Änderungen speichern *****************
writeSettingsToFlash();
setstandbyTimer();
// *************************************************
//Feedback beim Verlassen des Adminmenus
mp3.playMp3FolderTrack(998); // OK Tonuino konfiguriert
waitForTrackToFinish();
//*********************************************
}