Stap 5: App uitvinder Code - Details
De belangrijkste onderdelen van de app van de Arduino Bluetooth-verbinding zijn:
- een ListPicker voor Bluetooth gekoppelde apparaten (ListPicker1)
- 3 knoppen, elk beheersing van de corresponderende kleur bord LED (RedLedBtn, GreenLedBtn, YellowLedBtn)
- een knop verzenden van de opdracht van de STATUS (GetStatusBtn)
- een knop met een bijbehorende textbox de status verslag interval (SecondsBtn en SecondsTxBx) instellen
- een enorme meerlijnige Status label weer te geven van de info ontvangen van de Arduino board (Status)
- het object van de Bluetooth-Client genoemd in de vorige stap (BluetoothClient1)
- een klok-onderdeel dat branden een interrupt elke seconde wanneer de client is verbonden (Clock1)
Wat volgt is een beschrijving van de app-code gebaseerd op de bovenstaande foto's.
Figuur 1
Variabelen voor LED's status en interval zijn ingesteld en geïnitialiseerd wanneer het scherm van de app wordt geopend.
Figuur 2
Het verbindingsobject voor de ListPicker ListPicker1 werkt met twee methoden:
- een lijst van beschikbare (gepaarde) Bluetooth-apparaten is bereid en liet aan de gebruiker
- Wanneer de gebruiker een apparaat selecteert, de Connect methode van het Bluetooth Client-object wordt aangeroepen om te beginnen met de verbinding: als het slaagt, wordt dit in het geschikte etiket weergegeven en de interrupt van de klok is geactiveerd, zodat berichten van het apparaat kunnen worden ontvangen.
Figuur 3
Hier laten we zien hoe te sturen commando's naar de Arduino board.
Wanneer de GetStatusBtn wordt ingedrukt, wordt de methode SendText van het Bluetooth Client-object aangeroepen en de opdracht tekst is afgegeven: Let op de "\n" toegevoegd aan het einde van de tekenreeks 'CMD-STATUS', zodat de serialEvent() functie in de Arduino schets is in staat om te weten wanneer het bericht is voorbij.
De code om te schakelen van een LED in- of uitschakelen is iets ingewikkelder:
- We gebruiken de overeenkomstige variabele voor het bijhouden van haar huidige status: als die het brandt, wij willen voor zwenking op vandoor en andersom; zo, eerst, we schakelen de variabele als het ware Boole
- we vervolgens bijwerken het label van de button met de nieuwe staat
- Ten slotte, BluetoothClient1.SendText aangeroepen voor het verzenden van de opdracht.
De code voor de andere opdrachten wordt niet weergegeven omdat het is zeer vergelijkbaar.
Figuur 4
Elke keer dat de timer Clock1 branden, deze routine wordt uitgevoerd: het is het equivalent van de Arduino serialEvent(); Als er bytes door BluetoothClient1 te zijn ontvangen, worden ze gekopieerd in het Status label. Merk op dat de Client van de Bluetooth-object heeft een methode die terugkeren van de lengte van het bericht dat wordt ontvangen.