Aktív témák
-
TheVeryGuest
senior tag
Veszel egy sima unsigned char tömböt, mondjuk 10x512byte-osat. Fogsz egy pointert, ami a buffer kezdetét fogja mutatni, meg egyet, ami a végét. Kezdetben mindkettő a tömböd elejére mutat. Szükslég lesz még egy változóra a felhasznált bufferhossznak. Evidens, hogy egyszerre, csak teljes méret (10x512) - felhasznált méret bájtot tudsz csak beleírni. Mikor beírsz valamit, mindig az aktuális végmutató utáni helyre írod. Csak arra kell figyelni, hogy ne lógj túl a tömbön. Ha túllógnál, akkor kiírod azt a részt, ami még kifér, a maradékot, meg a tömb elejétől, a buffer kezdetetét mutató pointerig lehet írni.
Tehát körbe-körbe haladsz a buffer használata során, ettől ringbuffer.
Miután beleírtál valamit fogod megnézed, hogy a felhasznált méret > 512 byte, ha nagyobb akkor kiírhatsz egy csomagot az USB-n keresztül. Majd lépteted a buffer elejét mutató pointert 512byte-tal. Ha eléred a tömb végét, akkor folytatod a léptetést, az elejétől.
Nem tom mennyire világosan írtam le, ehhez inkáb rajzolni kellene, de talán az ötletet megérted, és akkor csak a megvalósítással kell pöcsölni. Már ha jól értettem a problémát.“Perfection is attained not when there is nothing more to add, but when there is nothing more to remove” Antoine de Saint-Exupéry
Aktív témák
- Újszerű, nagyon szép, független Huawei P smart 2019 DS eredeti dobozával eladó!
- FET-es Dual-Mono dupla toroid tápos végerősítő/végfok. Gyakorlatilag 2 monoblokk egy házban! 2x75W!
- DJI Ronin MX Part 1 Remote Start/Stop távindító
- Galaxy S22 5G Dual 128GB Rózsaszín
- Intel i5 11400 processzor elado gyari hutovel dobozaban