From ef2fea875147badac81ebfdd2db5747a10ba23d4 Mon Sep 17 00:00:00 2001 From: Paul-Winpenny <92634321+Paul-Winpenny@users.noreply.github.com> Date: Mon, 28 Oct 2024 13:47:09 +0000 Subject: [PATCH] Added a bit of code in lab (No raspberry pi so have to go home) --- .../ViewModels/ConnectionPageViewModel.cs | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/App/RobobinApp/ViewModels/ConnectionPageViewModel.cs b/App/RobobinApp/ViewModels/ConnectionPageViewModel.cs index 7751a26a..a755d646 100644 --- a/App/RobobinApp/ViewModels/ConnectionPageViewModel.cs +++ b/App/RobobinApp/ViewModels/ConnectionPageViewModel.cs @@ -140,9 +140,9 @@ namespace RobobinApp.ViewModels TestReadOperation = new Command(async () => await ReadOperationAsync()); SendWifiInfoCommand = new Command(OnSendWifiInfo); - TestWriteOperation = new Command(async() => await PingPiASync()); - - + TestWriteOperation = new Command(() => PingPiASyncAsync()); + + _adapter.DeviceDiscovered += OnDeviceDiscovered; IsWifiNetworkSelectionVisible = false; @@ -165,16 +165,17 @@ namespace RobobinApp.ViewModels } } - private async Task PingPiASync() + private async Task PingPiASyncAsync() { if (tempUnit.Equals("C")) { tempUnit = "F"; - } else + } + else { tempUnit = "C"; } - WriteOperationAsync(tempUnit); + await WriteOperationAsync(tempUnit); } @@ -183,7 +184,9 @@ namespace RobobinApp.ViewModels WifiNetworks.Clear(); Debug.WriteLine("Retrieving Wifi networks from readCharacteristic"); - + const string command = "SCAN"; + await WriteOperationAsync(command); + var networks = await ReadOperationAsync(); //var networks = "Network1\nNetwork2\nNetwork3"; // For testing @@ -300,7 +303,7 @@ namespace RobobinApp.ViewModels } } - private void OnDeviceDiscovered(object sender, DeviceEventArgs e) + private void OnDeviceDiscovered(object? sender, DeviceEventArgs e) { Debug.WriteLine($"Discovered device: {e.Device.Name ?? e.Device.Id.ToString()}"); @@ -462,11 +465,12 @@ namespace RobobinApp.ViewModels private async Task<string> ReadOperationAsync(int retryCount = 3) { - if (ReadCharacteristic == null || !IsConnected) + if (ReadWriteService == null || !IsConnected) { Debug.WriteLine("Read characteristic is not set or device is not connected."); return "Failure"; } + ReadCharacteristic = await ReadWriteService.GetCharacteristicAsync(Guid.Parse(rxUUID)); Debug.WriteLine($"READ COMMAND : {ReadCharacteristic.Uuid}"); for (int attempt = 1; attempt <= retryCount; attempt++) { @@ -496,11 +500,13 @@ namespace RobobinApp.ViewModels private async Task<string> WriteOperationAsync(string command, string arguments="", int retryCount = 3) { - if (WriteCharacteristic == null) + if (ReadWriteService == null) { Debug.WriteLine("Write characteristic is not set."); return "Failure"; } + //Get Characteristic + WriteCharacteristic = await ReadWriteService.GetCharacteristicAsync(Guid.Parse(wxUUID)); string joinedData = command + ":" + arguments; Debug.WriteLine($"WRITE COMMAND {joinedData}, UUID: {WriteCharacteristic}"); byte[] data = System.Text.Encoding.UTF8.GetBytes(joinedData); -- GitLab