Data logger je plně funkční

Po sezóně poflakování se na přeletech a kolem letiště jsem se konečně usadil k počítači a věnoval mnohé deštivé odpolene a ještě více neprospaných nocí jedné slibované věci – záznamu letu na SD kartu.

Důvodem, proč to celé trvalo tak dlouho, je mé nekonečné prozkoumávání slepých uliček, narážení do zdí a především počáteční myšlenka, že kód by měl být čistý, založený pouze na STL, každý kus snadno pochopitelný, bez obskurních a nedokumentovaných knihoven, prostě udelám to celé od začátku. Největším problémem bylo jak ohnout Chanovu knihovnu FatFS tak, aby šla napasovat na vlastní implementaci SPI. To, co je očividně pro všechny ostatní hračkou, mě zabralo neskutečně mnoho úsilí a hledání, až jsem konečně narazil na tuto stránku, jejíž stará verze uchovává poklad ve formě těchto dvou přípěvků, které mě zachránily od toho to nakonec potupně vzdát.

Poté, co jsem se stal mistrem v hackování FatFS, přišla na řadu další, tentokrát už značne jednodušší otázka – v jakém formátu zaznamenaná data ukládat? IGC se zpočátku zdála jako jasná volba (a mnozí k tomu nadšeně s kafem v ruce přikyvovali), ale OGN krabička pořebuje uložit i jiné záznamy, které nejsou tímto formátem podporovány. A k tomu všemu je (podle mého názoru) jeho formát příliš ukecaný, navíc okem prostého smrtelníka nečitelný.  A ani OGN CUBE x+n nejspíš nikdy nebude certifikovný datalogger s podpisem, tak proč si komplikovat život, že?

Z toho důvodu jsme se rozhodli ukládat data v jednoduchém CSV souboru s hlavičkou, která jasně popisuje co je co. Uživatel tak nemusí nic pracně dohledávat a dekódovat, přičemž CSV lze snadno otevřít v libovolném textovém editoru či tabulkovém procesoru. A navíc výsledná velikost souboru i s relativně dlouhým letem není nijak závratná.

Příklad záznamu s několika vybranými řádky je zde:

$OGNR;HHMMSS;gpsFix;pressure[Pa];lat;lon;gpsAlt[m];gpsSpeed[m/s];gpsTrackCourse[deg];ax;ay;az*CRC
$OGNR;112332;3;92884;49.860138;17.613463;727;56.4;327.2;0.222;-0.886;1.370*2a
$OGNR;112341;3;92917;49.864000;17.609517;726;57.7;326.6;0.598;-0.640;1.093*28
$OGNR;113317;3;91468;49.898227;17.543775;852;46.2;246.3;0.592;-1.177;1.069*25
$OGNR;114233;3;93324;49.815882;17.234948;686;52.5;78.9;-0.697;-1.389;1.520*3f

Každý letový záznam začíná názornou hlavičkou, která vysvětluje hodnoty ve všech sloupcích. Začátek a konec letu je řízen určitými pevně danými podmínkami (rychlost proti zemi a doba neaktivity na zemi). Záznamy jsou roztřízeny do souborů podle data, kde více letů ten samý den je uloženo v jednom souboru. Soubor je pak pojmenován podle aktuálního dne, konkrétně například 20181022.ogn (tzn. ve formátu YYYYMMDD.ogn).

Jelikož to vypadá, že je zaznamenávání letu plně funkční, tak jej můžeme konečně vypustit do světa. Ti, kteří mají již krabičku vybavenou slotem pro mikro SD kartu, dostanou nový firmware v nejbližších dnech. Postupujte prosím podle popisu aktualizace firmwaru popsanou v letáčku, který jste dostali s krabičkou. Budete k ní potřebovat firmwareLoader, kterým nahrajete aktualizační soubor přes bluetooth do trackeru. Není se čeho bát, máte neomezený počet pokusů, není na tom co zkazit 🙂

Zimě není ovšem zdaleka konec a práce je stále dost. V plánu je ještě spousta věcí na udělání a dodělaní, konkrétně

  • androidí aplikace, přes kterou půjde snadno stahovat a flashovat různé firmwary a aktualizace,
  • stahování letových záznamů do té samé aplikace, abychom nemuseli furt manipulovat s tou protivně malou SD kartou,
  • vymyslet a vyrobit nový tišťák, na kterém bude akcelerometr (tady čeká ještě hodně experimentování a rozhodování, který to vlastně bude),
  • a konečně, až přijde ten pravý čas, přidat podporu vy-víte-jakého protokolu.

Mňo, úplně jsu zvědavý kdy budu dělat SerialRouter a upravovat ten VFR Manuál. Protože i na těch je práce jak na letišti..