|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
Jan Član
Pridružen-a: Sob 10 Jun 2006 14:19 Prispevkov: 313 Aktiv.: 1.44 Kraj: Dolenjska
|
Objavljeno: Pet Jun 27, 2014 10:05 pm Naslov sporočila: Command line interface parser |
|
|
Pozdravljeni,
ker nikjer nisem našel primernega parserja za ukaze v mikrokontrolerskih aplikacijah,
sem se malo poigral in sam napisal en tak enostaven parser. Koda je napisana v C-ju.
Program deluje po podobnem principu kot FreeRTOS+CLI.
V osnovi registriraš vsak željen ukaz z imenom ukaza, kazalcem na funkcijo ukaza in številom parametrov.
Nato samo še kličeš funkcijo za prepoznavo ukazov.
Program vam dajem v uporabo in se priporočam za predloge za izboljašavo ali odpravo morebitnih napak.
Primer je napisan v Visual Studio 2013, z manjšimi popravki (_snprintf -> snprintf) pa preverjeno deluje tudi na ATMEGA mikroprocesorju.
Datoteke so tukaj.
Jan |
|
Nazaj na vrh |
|
|
. Član
Pridružen-a: Pon 23 Avg 2004 16:16 Prispevkov: 16777190 Aktiv.: 75239.09
|
Objavljeno: Sob Jun 28, 2014 12:38 am Naslov sporočila: |
|
|
Brisana vsebina odstranjenega uporabnika. |
|
Nazaj na vrh |
|
|
Musty Član
Pridružen-a: Sob 28 Apr 2007 8:54 Prispevkov: 1575 Aktiv.: 7.61 Kraj: Rače
|
Objavljeno: Sob Jun 28, 2014 8:24 am Naslov sporočila: |
|
|
Jaz pa v arduino okolju uporabljam sledeč parser: https://github.com/SloMusti/sensgw/blob/master/sensgw.ino
Deluje zelo preprosto. Pošlješ ukaz ACOM /x ali ACOM /x v, glede na vrednost x in če obstaja argument v pokliče določeno funkcijo. Funkcije so zbrane v array pointerju:
Koda: |
int GETfunctions[4]={(int)testGET,(int)readPressure,(int)readTemp,(int)read1Wtemp};
int SETfunctions[2]={(int)testSET,(int)setLED};
|
Tole se da še seveda razdelati na bolj kompleksni del, vendar je za večinoa plikacij povsem dovolj.
Za vse skupaj so pripravljene še skripte za openwrt, ki omogočajo komunikacijo iz wifi routerja. |
|
Nazaj na vrh |
|
|
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 76 dni
Powered by phpBB © 2001, 2005 phpBB Group
|