Standard
Postanowiłem opracować prosty standard danych aby:- wyeliminować ewentualne dodatkowe teksty wprowadzane do strumienia danych przez programy jak cu
- zapewnić kompatybilność rozwiązania w przyszłości kiedy dane będą się zmieniać
Dodatkowe dane
Zauważyłem, że program cu potrafi dodawać własne teksty jak 'Connected'. Aby wyeliminować tego typu śmieci postanowiłem, że każda linia wypisywana przez kontroler będzie zaczynała się od "<avr>". Linie, które się od tego nie zaczynają będą po prostu ignorowane.Standard
Poszczególne pola będą rozdzielane znakiem tabulacji, a nie średnikiem jak dotychczas.Dodatkowo w drugim polu będzie wersja rekordu. Wersja jest mi potrzebna aby w przyszłości móc jednoznacznie interpretować dane kiedy ich postać się zmieni. Np kiedy dodam odczyty z nowych czujników wilgotności i ciśnienia.
Dotychczas typowa linia danych wyglądała tak:
3000805;8.44;21.12;19.31;25.50;teraz będzie wyglądała tak:
<avr>\t1\t3000805\t8.44\t21.12\t19.31\t25.50\t
Dodanie czasu systemowego
Brak w kontrolerze dokładnego zegara powoduje, że czas muszę uzyskiwać w komputerze. Użyłem do tego prostego skryptu napisanego w awk i polecenia systemowego date. Po przejściu przez ten filtr wiersz danych ma następującą postać:<avrtime>\t1\t1365336922\t2013-04-07 12:15:22;<avr>\t1\t3000805\t8.44\t21.12\t19.31\t25.50\tDoszło na początku kilka pól, które zawierają:
- znacznik <avrtime>
- wersję rekordu z czasem
- czas w postaci sekund od 1 stycznia 1970 roku godz 00:00 UTC
- czas w postaci czytelnej (UTC)
Konwersja starych plików
Pliki tworzone dotychczas przy pomocy programu CoolTerm nie miały znacznika czasu pobieranego z zegara systemowego. Program CoolTerm posiada nawet funkcjonalność dodawania czasu, ale nie działa ona poprawnie.Stąd konieczność dokonania konwersji poprzednich plików do nowego formatu. Po kolei:
- Przerobienie starych plików na nowy format
- Przerobienie skryptów współpracujących z RRDTool żeby nowy format rozpoznawały
- Przerobienie programu na mikrokontroler żeby po nowemu wypisywał dane
- napisanie na Linuksie konwertera tych plików do nowego formatu z <avrtime>
Wykonanie planu
uruchomić całość na Linuksiewymienić CoolTerm.exe na coś innegouruchomienie cu w celu odczytu danychporadzić sobie z problemem ekstra danych wypisywanych przez cuzacząć odczytywać czas z zegara serwera- zrobić stronę www i wystawić na zewnątrz
uruchomienie rrdtoolprzeniesienie, modyfikacja skryptówsprawdzenie czemu na wykresach brakuje danych- połączenie z cu
- automatyzacja
- wystawienie na serwerze
- zmontować układ, a aby to zrobić to trzeba:
wybrać docelowy mikro-kontroler - i zakupić godowiedzieć się jak się go programuje i zmontować programator - i zakupić co potrzebazaprogramować kontroler- dowiedzieć się jak najlepiej zmontować docelowy układ (skąd płytkę itp) i zmontować - a wcześniej zakupić co potrzeba
- dowiedzieć się czy i jakie peryferia są potrzebne (kwarc, zasilanie, komunikacja z komputerem po rs232) - zakupić potrzebne
zakup części do podłączenia RS232zmontować wszystko co potrzebne do połączenia RS232- jakąś obudowę do tego dobrać - i znaleźć lub zakupić
Legenda
wykonane- do zrobienia
- nowe zadanie lub podzadanie
- aktualnie robione
Brak komentarzy:
Prześlij komentarz