Barion Pixel
Adatstruktúra kérdése a memória típusénak függvényében

💾 Log fájl struktúrák

Hogyan építs naplót: fájlrendszerrel vagy nélküle?

A naplózás nem attól lesz jó, hogy “adatot írunk valahova”, hanem attól, hogy később vissza tudjuk olvasni és értelmezni.

Ehhez pedig adatstruktúra kell – akár fájlszerkezetben elrendezve, akár a nyers memóriában dolgozunk.

1️⃣ Log fájl fájlrendszerrel (SD kártya, FAT)

Ez a legismertebb megközelítés.

Alapelvek

  • a log append jellegű (hozzáfűzés)
  • nem írjuk felül a meglévő adatot
  • ritkán nyitjuk/zárjuk a fájlt

Tipikus fájlstruktúra

[timestamp] [esemény] [értékek] [CRC]

Példa:

2026-01-29 12:34:10; TEMP; 23.6

Jó gyakorlatok

  • egy sor = egy esemény
  • egyszerű, szöveges vagy bináris forma
  • időbélyeg mindig legyen
  • fájl rotálás (pl. naponta új fájl)

👉 Előny: PC-n azonnal olvasható
👉 Hátrány: áramszünetnél sérülhet a fájlrendszer

2️⃣ Körkörös log (circular buffer) – fájl nélkül

Ha nincs fájlrendszer, neked kell a struktúrát megalkotni. Ez tipikus EEPROM, FRAM, SPI Flash esetén.

Körkörös log alapelve:

  • fix méretű memória áll rendelkezésre,
  • rekordok egymás után következnek,
  • ha betelik a hely → az elejéről folytatjuk.

👉 A régi adatok automatikusan kiesnek.

Alap rekord struktúra (nyers memória)

[verzió] [timestamp / offset] [adat] [CRC]

Minden rekord kialakítása:

  • azonos méretű,
  • önállóan, egyetlen adatsor is értelmezhető.

Ez kulcsfontosságú kérdés áramszünetnél.

Mutatók kezelése

De mit is tud a mutató? Szükség van rá, hogy megtudjuk, hogy hol tartunk:

  • az írási pozícióra, vagy
  • opcionálisan az olvasási pozícióra.

Ezeket a mutatókat:

  • külön memóriában vagy külön területen
  • duplikálva és
  • verziószámmal ellátva

érdemes tárolni.

3️⃣ EEPROM alapú logolás

EEPROM-nál különösen fontos szabályok:

  • ritka írás legyen,
  • kis rekordmérettel és
  • esemény alapú logolást végezzünk.

Ajánlott EEPROM log-minta:

  • csak fontos események,
  • max. néhány száz rekord,
  • sorszám + CRC is legyen benne.

👉 Folyamatos log írása az EEPROM-ba = rossz ötlet (pl. az elhasználódás miatt).

4️⃣ SPI Flash log – a “köztes megoldás”

SPI Flash mmória használata esetén:

  • nagyobb hely áll rendelkezésre,
  • nincs alapértelmezett fájlrendszere (ha nem akarsz ilyet használni),
  • strukturált bináris log kialakításához ideális.

Ajánlott:

  • blokk-alapú íráskor,
  • körkörös buffer használatakor,
  • verziózott rekordok elhelyezésére.

👉 Az SPI FLASH memória használata az egyik legstabilabb beágyazott naplózási forma.

5️⃣ Hogyan olvassuk vissza a log adatokat?

Fájlrendszer használatakor:

  • PC-n közvetlenül megtehetjük

Nyers memória esetén:

  • soros porton kiolvasásva,
  • debug parancs segítségével,
  • firmware frissítéskor dump állományként.

Fontos követelmények a log adatokkal szemben, hogy:

  • a struktúra legyen dokumentált,
  • legyen mód az “érvényes rekord” felismerésére.

Gyakori hibák, amiket a log tervezésekor elkövetünk

  • változó méretű rekordokat használunk,
  • CRC nélküli log készül,
  • egyetlen globális mutatónk van,
  • fájlrendszer nélküli “fájlszerű” gondolkodással hoztuk létre

👉 Memória ≠ fájl.
A log egyszerűen egy adatstruktúra, nem pedig a kész log-dokumentum.

De mikor mit is használjunk?

  • SD kártya → fájlrendszer, append használata, és rotálás
  • EEPROM → kevés, fontos esemény esetén
  • SPI Flash → körkörös, strukturált bináris log készítéshez ideális

Ha nincs fájlrendszerünk, akkor:

neked kell a fájlrendszer helyett gondolkodnod.

De ha jól csinálod, ez a megoldás stabilabb és kiszámíthatóbb, mint bármilyen “automatikus” megoldás.

 

Ez a cikk a → Az adattárolás háttere mini-cikksorozat része.
← Előző: 🧭 Időbélyeg tárolási formák
→ Következő: 💾 Memória méretezés

author

Róbert

Cseh Róbert Arduino és elektronikai cikkei - TavIR WebShop

A TavIR WebShop alapítója és elektronikai fejlesztő Egy régi barkácsasztal, néhány vezeték, és egy apró LED, ami először felvillant a kezeim között... Innen indult minden. Az első sikerélményem az elektronika világában nem egy kész projekt volt, hanem egy felfedezés: hogy a saját két kezemmel életre kelthetek valamit, ami addig csak alkatrészek halmaza volt. Azóta bejártam az Arduino, ESP32, szenzorok és fejlesztői modulok izgalmas univerzumát. Megtanultam, hogy a jó projekt nem csak alkatrészekből, hanem ötletből, tudásból és kitartásból épül. Ezt a szemléletet viszem tovább a TavIR WebShop minden termékében és minden vevői tanácsadásomban. A TavIR Oktatási oldal és a TavIR Tudástár azért jött létre, hogy bárki – kezdőtől a profi fejlesztőig – megtalálja a szükséges tudást és inspirációt. Lépésről-lépésre útmutatók, projektleírások és gyakorlati tippek várnak, hogy a következő ötletedet magabiztosan megvalósíthasd. Nem vagy egyedül az utadon: a TavIR Fórum egy élő, támogató közösség, ahol kérdezhetsz, megoszthatod a saját tapasztalataidat, és választ kaphatsz más elektronikai barkácsolóktól és fejlesztőktől. Az évek során rengeteg szakmai publikációban, online és nyomtatott formában osztottam meg a tapasztalataimat, hogy segítsek a hazai hobbielektronikai és fejlesztői közösségnek fejlődni. A TavIR WebShop kínálatában minden terméket személyesen teszteltem: legyen az Arduino kezdő készlet, szenzormodul, mikrokontroller fejlesztőpanel vagy DIY elektronikai készlet. Tudom, milyen érzés, amikor egy apróságon múlik egy projekt – és nálam erre nem kell aggódnod. Kövess a közösségi oldalakon, ahol rendszeresen osztok meg új projekteket, tippeket és érdekességeket:- Facebook- Twitter / X- YouTube Mert az elektronika nem csak áramkörökből áll – hanem történetekből, kísérletekből, sikerekből és tanulásból. És én itt vagyok, hogy ebben az utazásban a társad legyek.

További írások