Stap 11: RX
We zijn eindelijk voorbij de setup functies, we krijgen aan de functies zijn we echt geïnteresseerd. Dit is de rx(). Het heet als u wilt krijgen van de gebruiker uit de RX-buffer. Er zijn twee buffers, door de manier. Er is de buffer op de FTDI, die houdt van 20 tekens (geloof ik). Maar dan, is er de buffer op uw PC, die is grotendeels beperkt tot de hoeveelheid geheugen in u computer heeft.
RX functie The We zijn eindelijk voorbij de setup functies! Nu, voor de functies zijn we echt geïnteresseerd zijn in. Dit is de rx(). Als u de gebruiker uit de RX-buffer wilt wordt genoemd. Er zijn twee RX buffers, door de manier. Er is de buffer op de FTDI, die houdt van 20 tekens (geloof ik). Maar, dan is er de buffer op uw PC, die is grotendeels beperkt tot de hoeveelheid geheugen die uw computer heeft. En vergeet niet, dit is C. Als u uw PC RxBuffer te worden beperkt tot 256 tekens instellen en je karakter 257, gaat het niet om te klagen. Integendeel, zul je gewoon een buffer-overrun en hel trying te debuggen. Zodra de D2XX functie FT_Read heeft geroepen, wordt de PC-buffer gewist. Daarom komt krijgen de gewenste gegevens neer op aanroepende rx() op het juiste moment.
De meeste van onze variabelen die worden gedeclareerd ter ondersteuning van deze module worden gebruikt in de functies rx() en tx().
- RxBytes houdt hoeveel bytes wachten om te worden gelezen.
- RawRXBuffer is de werkelijke computer RX buffer. Nogmaals, wij stellen deze buffer voor 2048 tekens, maar als u tekennummer 2049 ontvangt zal het niet klagen. Je hebt gewoon een bufferoverloop. Cue sinistere muziek.
- BytesReceived is hoeveel bytes zijn ingediend om te worden gelezen.
- 3: de rx() functie heeft een optie Afdrukken naar een scherm. Betekenis, als we gegevens krijgen en de rx() functie aanroepen door het passeren van het een ware, zal het drukt u de gegevens die worden ontvangen op het scherm.
- 6: we krijgen de status van de apparaten. Dit zal ons vertellen hoeveel bytes wachten om te worden gelezen (RxBytes).
- 8: is een eenvoudige manier onze ontvangen gegevens converteren naar een tekenreeks, voor het parsen van gemakkelijk.
- 10: als we daadwerkelijk sommige bytes got, laat iets mee doen.
- 13: eigenlijk laadt de ontvangen gegevens in onze RawRxBuffer. Het wordt ook hoeveel bytes zijn gelezen sinds de laatste FT_GetStatus noemen.
- 15: als we sommige bytes en we wilden afdrukken, Nou, dan laten we ze afdrukken.
- 19: dit is een belangrijke plek. Hier is waar u wilt plaatsen van de code om te kopiëren van de gegevens van de RawRxBuffer, aan een meer permanente huis.
- 20: als wij sommige gegevens kregen, retourneert de waarde true.
- 27: als we niet alle gegevens krijgen, resultaat false
U zou de rx() functie aanroepen als volgt,
rx(true);
Dit zou printen wat gegevens bevinden zich in de buffer van de rx naar het scherm.