biblioteka do parsowania komend AT

W tym miejscu zadajemy pytania na temat języka C, dzielimy się swoją wiedzą, udzielamy wsparcia, rozwiązujemy problemy programistyczne.
Awatar użytkownika
dambo
Expert
Expert
Posty: 645
Rejestracja: czwartek 17 mar 2016, 17:12

biblioteka do parsowania komend AT

Postautor: dambo » niedziela 04 lut 2018, 20:34

Witam!

Przy napływie weny i potrzeby napisałem małą bibliotekę do parsowania komend AT. Jest ona dostępna na Githubie pod tym adresem:

https://github.com/dambo1993/AT_commands_parser

Jest tam (chyba)ładnie opisane wszystko w readme, więc nie będę tego kopiował. Znajduje się tam aplikacja testowa na PC (project Codeblocks) oraz przykładowy projekt na STMkę(F030F4P6) + HD44780 + UART oczywiście.

Może komus się przyda. Wszelkie uwagi mile widziane :)
Nowy blog o tematyce embedded -> https://www.embedownik.pl/

Awatar użytkownika
xor
User
User
Posty: 169
Rejestracja: poniedziałek 05 wrz 2016, 21:44

Re: biblioteka do parsowania komend AT

Postautor: xor » niedziela 04 lut 2018, 21:33

Po co manewry z typem params/no_params? IMO callback móglby być zawsze typu void(*)(char**,int) a jakby nie potrzebował parametrów to by je sobie zignorował. Myślę, że to nie tylko uprości logikę i zwiększy czytelność ale też zlikwiduje błędogenność przyjętego rozwiązania. IMHO miało by to jakieś uzasadnienie gdyby program parsował na bieżąco z czytaniem znaków, ale przecież nie, przekazujesz bufor z wczytanym całym tekstem.
Ja to bym poszedł trochę dalej i callback zrobił typu int(*)(char**,int), w razie błędu funkcja zwracała by kod błędu a obsługę błędów zrobił w parserze. To takie moje uwagi.

Awatar użytkownika
Antystatyczny
Geek
Geek
Posty: 1168
Rejestracja: czwartek 03 wrz 2015, 22:02

Re: biblioteka do parsowania komend AT

Postautor: Antystatyczny » niedziela 04 lut 2018, 21:37

Idąc tym tokiem myślenia można wywoływać callback i przekazywać do niego wskaźnik na tablicę parametrów oraz informację o ich ilości. Oczywiście ignorowanie pojedynczego parametru nie jest wcale głupie i rozważyłbym wprowadzenie takiego uproszczenia/modyfikacji
"The true sign of intelligence is not knowledge but imagination" Albert Einstein.

Awatar użytkownika
dambo
Expert
Expert
Posty: 645
Rejestracja: czwartek 17 mar 2016, 17:12

Re: biblioteka do parsowania komend AT

Postautor: dambo » niedziela 04 lut 2018, 21:48

fakt - można "narzucić" żeby zawsze robić te funkcje typu void(*)(char**,int) - mega to ujednolici sprawę i wywali ten parametr ze strukturki.

Co do zwracania inta - w opisie o tym juz wspomniałe, ze na to też wpadłem, ale obecnie nie potrzebuję. Chociaż zrobiłbym to jeszcze o krok dalej - z tą obsługą, że na komendę "AT+TEST" odpowiadamy "+TEST=xxx" -> gdzie to xxx byłoby zwrócone przez callbacka -> czyli jakąś strukturkę tam dodać do tego, ale to w dalszej przyszłości.

Edit:

Już wrzuciłem wszędzie poprawkę - wywaliłem ten typ funkcji i wszystko jest ujednolicone + podziękowania dla kolegi xor :)
Nowy blog o tematyce embedded -> https://www.embedownik.pl/


Wróć do „Pisanie programów w C”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 1 gość