Stap 7: Soep van uw telefoon
Bent u geïnteresseerd in het leren hoe de app werkt, Lees verder. Wanneer de toepassing wordt gestart, zal onmiddellijk proberen te verbinden met het kanon. Omwille van de eenvoud hardgecodeerde we het MAC-adres van onze BlueSmirf modem in plaats van een datumkiezer. Deze aanpak werkt, maar het betekent dat u zult moeten om te koppelen met de modem vóór het starten van de app.
Om te koppelen met de BlueSmirf van uw Android telefoon, ga naar instellingen >> Wireless & networks >> Bluetooth-instellingen, en zorg ervoor dat Bluetooth is ingeschakeld. Vervolgens Tik op "Scannen voor apparaten" en kies de modem van de BlueSmirf wanneer op uiterlijk vertoon opwaarts (ons uitgeroepen tot RN42-07EA). Standaard zullen de toegangscode "1234" of "0000".
Nu, terug in de Android app, als de verbinding keer uit, probeert dan de knoppen uitgeschakeld blijven zal. Druk op de menuknop brengt de optie om te proberen opnieuw verbinding te maken. Dit is handig voor wanneer u het bereik van uw setup test. Merk ook op dat het belangrijk is om ervoor te zorgen dat alle Bluetooth communicatie gebeurt in een aparte thread is. Zoals de meeste netwerkbewerkingen hebben Bluetooth-communicatie niet veel timing garanties. Op een typische microcontroller, kunt u meestal garanderen dat één instructie in één klokcyclus uitvoeren zal. Echter, in dit geval, de hoeveelheid tijd die het maken van dat een verbinding en verzenden gegevens hangt af van allerlei factoren, met inbegrip van fysieke kenmerken zoals de afstand tussen de zender en ontvanger, de radio-ontstoringseisen in de kamer (die de BlueSmirf verwerkt door een techniek die bekend staat als het hoppen van de frequentie )
Om toegang te krijgen naar Android's SPP-interface, moesten we gebruik maken van enkele Java reflectie om op te halen een lid functie. Meer informatie over deze hack kan worden gevonden in deze gedetailleerde StackOverflow gesprek , dat wij daarvan geprofiteerd maar deed niet mee in. Als u met een betere aanpak komen door het analyseren van de documentatie van de BluetoothSocket beter dan we deed, dan voel je vrij om een reactie laten weten wat je hebt gedaan.
Zodra de verbinding is gemaakt, zijn de knoppen ingeschakeld. Wanneer een knop is onttrokken, wordt een byte geprobeerd via het netwerk moeten worden verzonden. De kastanjebruine knop stuurt een ASCII-teken '1' (0x31 als je kijkt naar de individuele bits), en de oranje knop stuurt '2' (0x32). Dit kan zeer goed zijn het eenvoudigste protocol die je ooit in je leven zult zien. Als een data-overdracht ooit mislukt, de knoppen zijn uitgeschakeld en de gebruiker is aangemeld via een Toast bericht .