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. -
válasz
TheVeryGuest
#2
üzenetére
Huha
Az micsoda?
I´m too LaMe -
Helloka Mindenki!
Egy algoritmus-ra lenne szüksegem, amely egy 512 byte-kra darabolja fel az adatot.
Egy kis körites, hogy vilagos legyen: adott egy speci mikrokontroller, amelynek 32 kbyte belsö memoriaja van. Attol speci, hogy USB-n kapcsolodik a gephez, es egy FPGA van rakötve. Az FPGA 512 byte-os adatokat tud fogadni, ezert kell az USB-n keresztül informaciot reszekre darabolni.
Peldaul:
''Ez egy hetvenhet karakterböl allo szöveg amelyet ket reszre szeretnek bontani''
Ezt a szöveget 2 reszre bontva, 2 csomagba akarom elküldeni valahogy igy:
1. darab: ''Ez egy hetvenhet karakterböl allo szöveg amelyet ket reszre szer'' //64 unicode karakter
2. darab: ''etnek bontani''
Remelem erthetö voltam, es elöre is köszönök minden ötletet, segitseget.
Üdv: Blackmate
Aktív témák
- iPhone 12 Mini 128GB 100% (3 Hónap Garancia)
- HIBÁTLAN iPhone 12 Pro Max 128GB Pacific Blue -1 ÉV GARANCIA - Kártyafüggetlen, 100% Akkumulátor
- LG 27GS95QE - 27" OLED / QHD 2K / 240Hz & 0.03ms / 1000 Nits / NVIDIA G-Sync / AMD FreeSync
- 241 - Lenovo Legion 5 (15IRX10) - Intel Core i7-13650HX, RTX 5060
- Apple iPhone 14 Pro 512GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Az micsoda?