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