Designa en anpassad meny System--Android/Arduino menyer för nybörjare--absolut No programmering krävs (6 / 7 steg)
Steg 6: Det genererade koden formatet
Överst i den genererade koden finns kommentarer visar de tre menyerna du har designat och pfodApp kommandon öppna dem. När pfodApp först ansluter det alltid blir skicka {.} och så huvudmenyn.
/ * === pfod kommando för menyer läraren ===
pfodApp msg {.}--> {. < + 4 > UNO LED och utgång Control| A ~ + < 3 > kontroll LED| C ~ < + 6 > Output
Kontrollen}
*/
/ * === pfod kommando för subMenu_LED ===
pfodApp msg {A}--> {. < + 4 > Uno LED Control| B ~ < + > 4 Led är "0 ~ ~ Off\On}
*/
/ * === pfod kommando för subMenu_Output ===
pfodApp msg {C}--> {. < + > 5 Set D3 Output| D ~ < + 5 > D3 är ' 0 ~ ~ Low\High}
Metoden loop() innehåller en serie om else-satser som hanterar alla kommandon. Kommandona. , A och C återvända huvudmenyn och sub-menyerna.
De andra två kommandona och B andD ändra inställningen av LED och utgång D3 respektive och returnerar en menyn update. Denna uppdatering kan pfodApp Visa resultatet av kommandot, dvs staten av produktionen.
void loop() {
byte cmd = parser.parse(); passera den till tolken
parser returnerar noll när en pfod kommandot helt analyseras
om (cmd! = 0) {/ / har analyserat ett komplett msg {till}
byte * pfodFirstArg = parser.getFirstArg(); kan peka på \0 om inga argument i detta msg.
lång pfodLongRtn; används för att analysera länge tillbaka argument, om någon
om ("." == cmd) {
pfodApp har anslutit och skickade {.}, er den be om för huvudmenyn
skicka tillbaka menyn utformade
sendMainMenu();
nu hantera kommandon returneras från knappen/reglagen
} annat if('A'==cmd) {/ / användaren tryckte--'kontroll LED"
i den huvudsakliga menyn menyer handledning
Detta öppnar subMenu_LED
sendSubMenu_A(); skicka tillbaka på menyn.
} annat if('C'==cmd) {/ / användaren tryckte--"Output Control"
i den huvudsakliga menyn menyer handledning
Detta öppnar subMenu_Output
sendSubMenu_C(); skicka tillbaka på menyn.
} annat if('B'==cmd) {/ / användaren flyttade reglaget--"ledde är"
i subMenu_LED--öppnas av knappen--"Kontroll LED"
ställa in baserat på skjutreglaget 0 == låg, 1 == hög
parser.parseLong (pfodFirstArg & pfodLongRtn); parse första arg som en lång
digitalWrite(cmd_B_pin,pfodLongRtn); Ställ in output
sendSubMenuUpdate_A(); alltid skicka tillbaka en pfod msg annars pfodApp kopplar från.
} annat if('D'==cmd) {/ / användaren flyttade reglaget--' D3 är "
i subMenu_Output--öppnas av knappen--"Output Control"
ställa in baserat på skjutreglaget 0 == låg, 1 == hög
parser.parseLong (pfodFirstArg & pfodLongRtn); parse första arg som en lång
digitalWrite(cmd_D_pin,pfodLongRtn); Ställ in output
sendSubMenuUpdate_C(); alltid skicka tillbaka en pfod msg annars pfodApp kopplar från.
} else om ("!" == cmd) {
CloseConnection kommando
closeConnection(parser.getPfodAppStream());
} annat {
Okänt kommando
parser.Print(F("{}")); alltid skicka tillbaka en pfod msg annars pfodApp kopplar från.
}
}
<<<<<<<<<<< Andra loop() koden går här
}
Menyn och menyn Update meddelanden
Det finns en viktig skillnad mellan menyn (eller öppna undermenyn) meddelanden och menyn uppdateringar.
Menyer startar med {. (eller {^ ) och definiera en ny menyn. pfodApp ser detta och minns det kommando som producerade denna menyn svar så att när användningen trycker på bakåt-knappen, pfodApp vet vad kommandot för att skicka för att få föregående meny. Detta innebär Arduino koden inte behöver hålla reda på användarens navigering i menysystemet.
Å andra sidan, när användaren trycker på en knapp på menyn som utför en åtgärd, som LED på eller av, är det viktigt att återvända en menyn uppdatering, {:, meddelande istället. Menyn uppdateringsmeddelanden startar inte en ny meny, de bara ändra visningen av befintliga menyn.