Stap 4: Hoofdmenu
Ik vond de gemakkelijkste manier aan opstelling een FTDI apparaat in C is het gebruik van een menu. Ik heb vijf opties verstrekt:
- Snelle verbinding
- Apparatenlijst
- Apparaat aansluiten
- Sluiten van apparaat
- Stel de Baud-Rate.
Verschillende opties is vereist dat u de andere opties eerst. Bijvoorbeeld, voordat "Apparaat verbinden" wordt weergegeven moet u uitvoeren "Apparatenlijst." Laten we lopen door de code,
- 5-7: variabelen voor de scanf en instructie switch afleiden van het menu.
- 9-12: Boolean vlaggen voor het beheersen van de stroom van het menu.
- 15: wij willen een menu dat persistent is, daarom gebruiken we de do-while-lus.
- 19-22: laten we de verbindingsinformatie weergeven, maar alleen als we er een apparaat is aangesloten.
- 27-42: drukken we de rest van het menu. Sommige items alleen afdrukken als Booleaanse vlaggen zijn ingesteld op true.
- 44-56: de details van het apparaat, wordt afgedrukt als verbonden.
- 58-64: krijgt een input van de gebruikers, zet deze om in een int, opslaan, en selecteert dan een schakelaar-case gebaseerd op input.
- 67: de quick_connect() functie maakt een FTDI-verbinding op basis van standaardkenmerken.
- 68: de lokale baud_rate-variabele ingesteld op de baud-rate van de quick_connect().
- 71: we krijgen de get_list() functie, waarin alle FTDI apparaten aangesloten op de USB-poorten uitvoert.
- 74: wij controleren om te zien als get_list() al is uitgevoerd, voordat we toestaan dat de gebruiker verbinding maken met een device.76: Connect_device() neemt een pointer naar het bedrijf dat de waarde van de baud-rate de gebruiker heeft geselecteerd. Vervolgens probeert te verbinden met het apparaat. Als dat lukt, wordt de functie true retourneert.
- 80: een apparaat moet worden gesloten, alleen toestaan indien dit is aangesloten.
- 82: Close_device() probeert te shut-down de momenteel aangesloten FTDI-apparaat. Als dat lukt, resultaat het is true.
- 83-84: als de functie van close_device() een succes was, de connected_flag is ingesteld op false, zodat er geen apparaat aangesloten is. Vervolgens wordt de close_device vlag opnieuw ingesteld op false om voor te bereiden voor de volgende oproep van de close_device().
- 90: de set_baud() neemt een pointer naar een waarde voor de gewenste baudrate. De functie probeert in te stellen van de baud-rate en deze eigenschap is true als het succesvol is.