HomeMade

Pełna wersja: openlog
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Stron: 1 2
Może ktoś z Kolegów spotkał się z problemem złego zapisywania przez openlog danych, oczywiste rzeczy wykluczam, zła prędkość, bity stopu, parzystość. Podsłuch transmisji pokazuje że wszystko jest ok. Wychodzi bezkształtna masa znaków, przykład w załączniku[attachment=17470]
Witam,

Za mało informacji podałeś. Nie przedstawiłeś, co jest w strumieniu wejściowym do zapisania.

Co to pliku, który wystawiłeś. Jest jak najbardziej poprawny. Plik config.txt jest zapisywany na karcie przez firmware openlog-a i zawiera aktualne ustawienia openlog-a zapisane w eeprom.

Format tego pliku narzucony jest przez składnie w liniach 1119 do 1148 kodu źródłowego pełnego openlog-a ( funkcja RecordConfigFile(void)). Są trzy wersje kodu, różniące się ilością fjuczerów wbudowanych.

Skoro ten plik powstaje na karcie, to świadczyć może o tym, że openlog jest przełączany w stan komend, a strumień, który do niego leci wywołuje zapis tego pliku na kartę. Polecam zapoznać się z dokumentacją oraz/lub/i
pobieżnie z kodem źródłowym ( dla własnej ciekawości )

Strona projektu, jak zwykle na github:
OpenLog firmware

----------------------------
Ach przpraszam Rafale, na telefonie nie zauważyłem drugiego pliku z zawartością w Twoim poście.

Zawartość pliku z zapisanym logiem wygląda jak niezgodność w baudrate.
Podepnij OpenLog-a do komputera przez adapter USB <-> UART i pod terminalem ( putty, minicom, gtkterm lub inny ) sprawdź, czy poprawnie się on zgłasza na tej ustawionej prędkości 9600 baud.

--------------------
Złożyłem na szybko z ciekawości OpenLoga na arduino NANO z podpiętym adapterem kart microSD. Wsad w wersji v4.3 - najnowszy z zeszłego miesiąca.
Wszystko działa od ręki: Prędkość defaultowa 9600 8n1, karta uSD - pojemność 32GB, logowanie danych: słowa wprowadzane z klawiatury w terminalu na komputerze, OpenLog podpięty przez USB <-> UART

Wynik na zdjęciu w załączniku:
[attachment=17474]

----------------
Jedyna istotna różnica w konfiguracji u Ciebie, to znak "escape", który przełącza OpenLog-a z trybu logowania do trybu komend. I tu chyba jest problem.
Domyślnie jest to znak o wartości 26, czyli spoza zakresu znaków ASCII. Znaki spoza zakresu znaków drukowalnych nie są logowane.
U ciebie jest to wartość 36, która to wartość należy do znaków ASCII ( jest to znak dolara $ ), które są logowane.

Więc jeżeli w strumieniu pojawi się u Ciebie trzy razy ten znak, to OpenLog wychodzi z trybu logowania i dzieją się złe rzeczy, bo nadchodzący strumień pewnie zmienia konfigurację pracy OpenLoga ( być może i baudrate). w locie.

Znak o wartości 26 to jest Ctrl + z znak specjalny o nazwie SUB, nie drukowalny. Zmień sobie wartość 36 na inną ( niech będzie domyślna: 26 ) i OpenLog zacznie działać poprawnie.
Pawle sprawdzę w weekend i dam znać. Dzięki
Rafale,

Przy okazji sprawdź jak masz ustawione fusebity w AVR-ku. Szczególnie bity związane z wyborem źródła taktowania procka - ma być jako external crystal
oraz wyłączony podział taktowania CPU przez 8. Jeśli będziesz miał inaczej, to również nie będzie poprawnie działać.
Pawle mówisz o procku open loga?
tak, dokładnie o procku OpenLog-a ( atmega328 )
Chyba się wyjaśniło, siedzi kwarc 8MHz na płytce zamiast 16. Poszukam 16 i dam znać. Made in China.....
Może tymczasowo wystarczy zmienić prędkość na 19200 w openlogu lub 4800 z drugiej strony...
Myślę, że można spróbować
A to zaskoczenie z tym kwarcem.
Wydaje mi się, że by było o tej wpadce głośno w internecie.. Może nie szukałem zbyt głęboko, hi.

Niemniej, warto zmienić kwarc z tego 8MHz na docelowy 16MHz, bo dla takiego taktowania skompilowany jest firmware.
Stron: 1 2
Przekierowanie