Over: startvideo som viser hvordan du bruker menybiblioteket vårt med Arduino. Link tilKomme i gang med tcMenu Slides (fra youtube-video).
TcMenu er et modulært, IoT-klart multi-level menybibliotek for Arduino og mbed som støtter mange inngangs-, skjerm- og IoT / eksterne grensesnitt. Det gjør presentasjon av konfigurasjon, status og driftsinformasjon mye enklere. Designer-UI fungerer ved å konvertere menystrukturen din til C++-kode som fungerer med din valgte maskinvare gjennom plugins. Den er i stand til å produsere lokaliserbare flerspråklige menyapplikasjoner.
I de fleste tilfeller vil den genererte koden presentere en redigerbar meny uten at du skriver mer enn en linje med kode. Men hvis du bruker I2C må du kanskje sørge forWire.begin();
kalles, og for logging må du sørge for at du har fulgtArduino-logging med IoAbstractionguide!
Veiledningen nedenfor vil gå fra design til å generere en komplett, fungerende applikasjon:
- Tegn søknadsstatus og grupper logisk.
- Installer designer-UI og innebygde biblioteker.
- Start designergrensesnittet og sjekk at alt er konfigurert.
- Opprett en ny prosjektkatalog for å lagre den innebygde applikasjonen din.
- Ta de ovennevnte menyelementstrukturene og implementer i TcMenu Designer.
- Sørg for at EEPROM-områdene ikke overlapper.
- Kjør kodegeneratoren for å generere applikasjonen.
- Kompiler koden i din favoritt-IDE og last opp til et styre.
- Legg til flere elementer etter behov (rundtur mellom designer og IDE).
Trinn 1: Tegn søknadsstatusen din og grupper logisk
Det første trinnet er å forstå programmets tilstand, dvs. tingene som kan konfigureres, for eksempel innstillinger, tilstanden som kan endres, for eksempel sanntidsjusteringer, og også statusverdiene som gir skrivebeskyttet informasjon. Vi gir et eksempel nedenfor for en enkel forsterker. Hvis du flytter fra en annen løsning, kan dette trinnet sannsynligvis hoppes over.

La oss konvertere dette til tekst:
Forsterkervolum - maks: 255, offset: -180, divisor: 2, Unit dB Channel - enumeratiom of Line1, Line2, Line3 Status - undermeny L Heatsink - Range 0..255, Unit oC, read-only R Heatsink - Range 0. .255, Unit oC, skrivebeskyttet modus - oppregning av Standby, On, Protect, Warmup - skrivebeskyttet
Og på dette tidspunktet er vi klare til å åpne menydesignerprogramvaren.
Trinn 2 – Skaff deg tcMenu Designer – Windows, macOS, Linux
Vår Menu Designer-programvare er tilgjengelig for nedlasting fratcMenu lanserer siden. Den kan designe menyer og generere kode for et bredt spekter av inngangs-, display- og fjernkontrollalternativer. Tilgjengelig som et signert installasjonsprogram for Windows, notarisert app for macOS og som en Debian-pakke for Linux.
Trinn 2a: Sørg for at Arduino-bibliotekene er installert
Du må installere TcMenu-biblioteket og alle avhengigheter fra Arduino IDE, eller legge til bibliotekavhengigheten i platformIO-prosjektets ini-fil. SomTcMenu biblioteker bygget påIOabstraksjonsbibliotek,TaskManagerIO-biblioteket,SimpleCollectionsogTcUnicodeHelperdet er verdt å lese litt om disse bibliotekene også.
PlatformIO merknad:Selv om du bruker platformIO, anbefaler vi at du fortsattlast ned minst tcMenu-biblioteketinnledningsvis for eksemplene. I dette tilfellet oppretter du en bibliotekskatalog og legger inn tcMenu i den.
Trinn 3: Start designer-UI og sørg for at alt er klart

Start designer og gå til Rediger -> Generelle innstillinger. Herfra kan vi sette opp prosjekt/skisser-mappen og bibliotekkatalogen. Skisser-mappen brukes til å gi en liste over skisser, og også standard nye prosjektplassering. Bibliotekkatalogen brukes til å sjekke om bibliotekene er oppdaterte og også for å gi en liste med eksempler. Du kan alltid se tilgjengelige og installerte versjoner fra kategorien "Bibliotekversjoner" i Generelle innstillinger.
PlatformIO merknad:brukere som ikke vil ha en global kopi av bibliotekene, fra Rediger -> Generelle innstillinger fjern merket for "Jeg bruker Arduino IDE".
Nesten alle funksjoner er tilgjengelige fra menyen, med hovedsiden delt inn i flere områder:
- "Fil"-menyen inneholder funksjoner for å åpne og lagre prosjekter, inkludert liste over eksempler, skisser og nylig redigerte elementer.
- "Rediger"-menyen har funksjoner for utklippstavle, angre/gjør om og også dialogboksen Innstillinger.
- Menyen "Menyelement" inneholder funksjoner for å arbeide med menyelementer, de fleste er også i elementverktøylinjen nederst til venstre under menytreet.
- "Kode"-menyen har kodegeneratoren, EEPROM-validatoren og også en liste overIO utvidere.
- "Hjelp"-menyen har lenker til de viktigste delene av tcMenu-dokumentasjonen. Den har også en lenke til forumet og kan også forberede diagnostisk informasjon.
- Ved å klikke på et element åpnes det for redigering i redigeringsområdet. Du kan endre verdiene her og de blir validert mens du skriver.
- Ved å klikke på rotelementet redigeres prosjektnivåegenskapene. Herfra kan du angi den unike IDen for prosjektet og også applikasjonsnavnet som vil vises i tittelområdet.
- For å flytte og kopiere elementer kan du kopiere og lime inn menyelementer ved å velge dem i treet, til og med ved å bruke vanlige tastatursnarveier på utklippstavlen. Du kan også dra og slippe elementer for å flytte dem. Hvis du faller nær toppen av et element, er innsettingspunktet over, ellers er det under.
- Du kan ta en kopi av et menytre som kan lastes inn av Java eller C# API ved å kopiere fra et punkt i treet og lime inn i et tekstredigeringsprogram.
- En prototypevisning som viser en omtrentlig innebygd layout er tilgjengelig fra menyen "Menyelement".
Trinn 4: Opprett en ny prosjektkatalog for å lagre den innebygde applikasjonen din.
På dette tidspunktet har du to valg, enten starte med et eksempel eller et nytt prosjekt. Vi starter fra bunnen av ved å velge Fil -> Nytt prosjekt.

Velg alternativet "Jeg vil opprette et nytt prosjekt på disk", dette oppretter en ny mappe på den valgte plasseringen (standard er skissekatalogen din). Skriv inn navnet på prosjektet du vil opprette, når det er gjort, vil hovedvinduet vises igjen med det opprettede prosjektet allerede åpnet.
PlatformIO merknad:På dette tidspunktet vil du sannsynligvis lage en platformio.ini-fil i denne katalogen for ditt spesifikke styre. Legg også til bibliotekavhengigheten påtcMenu-biblioteketsamtidig.
Trinn 5: Ta de ovennevnte menyelementstrukturene og implementer i TcMenu Designer.
Nå lager vi menyelementene basert på tilstanden vi identifiserte tidligere i trinn 1.
Til venstre i hoveddesignervinduet er det et menytre, denne listen inneholder alle menyelementene i dette prosjektet og vises i hovedsidebildet under merket (1). For å legge til et menyelement velger vi først undermenyen der vi vil at det skal vises og trykker på plussknappen i menyelementets verktøylinje (under menytreet til venstre). Følgende vil vises:

Ikke endre ID-en med mindre du eksplisitt ønsker å administrere dem selv, den genereres automatisk og unik. Bare velg typen element du vil legge til, og trykk på opprett. I dette tilfellet oppretter vi en vanlig numerisk editor.

Når vi velger et element i menytreet (1), blir dets egenskaper redigerbare på høyre side (3). Vi kan endre navnet, EEPROM-lagringsplasseringen (vanligvis ved å trykke Auto for å få neste plassering), og eventuelle egenskaper som er spesifikke for den typen element. Når du redigerer, valideres verdiene umiddelbart og eventuelle feil rapporteres over vareegenskapene. Hver menyelementtype har en lenke (2) til omfattende dokumentasjon.
Tilbakeringing: Du kan valgfritt opprette en tilbakeringingsfunksjon som vil bli varslet om enhver endring umiddelbart. Du kan imidlertid også spørre om tilstanden til elementet etter behov. Begge alternativene er fullstendig dokumentert idokumentasjonen for menyelementet; som du kan få direkte tilgang til fra lenken (2) i designer-UI.
Gjenta denne prosessen til du fullt ut har representert søknadsstatusen din.
Trinn 6: Sørg for at EEPROM-områdene ikke overlapper hverandre
Før du genererer en meny, er det en god idé å sjekke at ingen av EEPROM-områdene eller ID-verdiene overlapper. For å gjøre dette, gå tilKode -> Vis ID og ROM-layout
element fra hovedmenyen / verktøylinjen. Du vil se noe som ligner på følgende dialogboks.Merk at det ikke skal være røde oppføringer i EEPROM-oppsettet, dette betyr at det er en overlapping.

Til høyre er en representasjon av EEPROM-minneoppsettet. Hver oppføring viser startposisjonen og antall byte som trengs. Hvis elementet er i grønt, overlapper det ikke med en annen verdi. Enhver gjenstand i rødt betyr imidlertid en minnekollisjon. Sørg for at det ikke er noen sammenstøt før du genererer kode.
Trinn 7: Kjør kodegeneratoren for å generere applikasjonen
Før du fortsetter til kodegenerator, velger du rotelementet i hoveddesignervinduet og kontrollerer at applikasjonsnivåegenskapene er korrekte.
Nå er vi klare til å generere koden, velg fra hovedmenyenKode -> Generer kode
for å få opp følgende dialog. Vi hopper over ganske mye detaljer her, se avsnittetGenererer menykode og pluginsfor flere detaljer.

Trinn 7a: Sett opp korttype, EEPROM og autentisering
Før du fortsetter med å generere en kode, velg den riktige innebygde plattformen for brettet du målretter mot. Dette er viktig siden noen plugins ikke er kompatible med alle arkitekturer, og kodegenereringen er litt forskjellig for forskjellige brett. Du velger nå også typeEEPROM som du ønsker å bruke, eller ingen EEPROM ved å klikke på "Velg EEPROM"-knappen. Hvis du har brukt sikrede undermenyer hvor som helst, eller har tenkt å sikre eksterne tilkoblinger, enAutentiseringvil være nødvendig.
Merk: En EEPROM vil være nødvendig hvis du bruker noen EEPROM-baserte funksjoner som f.ekslaste
,lagre
, eller et ScrollChoice-element satt til EEPROM-modus.
Trinn 7b: Velg passende plugins for maskinvaren din
Nå som vi har definert det grunnleggende, er det på tide å gå videre til alternativene for inngang, skjerm og IoT/fjernkontroll. Dette definerer hvordan brukeren vil samhandle med applikasjonen din. På dette tidspunktet må du velge de pluginene vi har nærmest maskinvaren din.
Du vil se at resten av kodegeneratorskjermen er delt opp i tre seksjoner:
- Inndatatype
- Visningstype
- Eksterne IoT-funksjoner
For både inngang og visning, klikk på bildeknappen som viser gjeldende plugin som har "Endre" under seg. Dette gir deg en liste over mulige plugins, velg den mest passende og fyll inn parameterne på høyre side. Hvis du klikker på dokumentasjonslenken, kommer du til nettdokumentasjonen for den plugin-en.
Hvis du har brukt en grafisk skjerm, må du også gjøre detvelg et tema. Uten å gå inn for mye detaljer som er dekket i den tilknyttede veiledningen, velg et passende tema for skjermen din - IE for monoskjermer velg et monotema, for fargeskjermer velg et fargetema.
Foreløpig anbefaler vi å forlate fjernkontrollen / IoT-alternativet som ingen fjernkontroll.
Trinn 7c: Kjør generatoren
Når du har fylt inn parameterne for de valgte pluginene, er neste trinn å trykke Generer og la kodegeneratoren kjøre. Du vil se et loggvindu, det er verdt å sjekke gjennom oppføringene her for å sikre at alt gikk som forventet.

Trinn 8: Kompiler og last opp til tavlen
Du vil nå ha kode i katalogen du genererte til. Du vil se flere filer:
- Fil som slutter med
.ino
ellermain.cpp
- dette er hovedfilen med oppsett- og loopmetoder. - Filer som slutter med
_menu.cpp
og_menu.h
- disse inneholder menystrukturer og renderer. - Flere andre plugin
.cpp
og.h
filer - disse kobler sammen skjermer, input og fjernteknologi.
Hvis du bruker ting som trenger ledningsbibliotek, må du kanskje legge tilWire.begin
til skissen din, og hvis du bruker den innebygde loggingen, må du kanskje starte Serial også.
Se ogsåDesigner UI fungerte eksempeldet er litt utdatert, men fortsatt nyttig for bedre forståelse.
- Tilbake til hovedsiden for tcMenu