diff --git a/MQTTControl.cs b/MQTTControl.cs index c3a19e5..14315e9 100644 --- a/MQTTControl.cs +++ b/MQTTControl.cs @@ -1,3 +1,4 @@ +#nullable enable using System; using System.Buffers; using System.Text; @@ -11,20 +12,20 @@ public class MQTTControl { public const string DEFAULT_CLIENT_ID = "clientId-UwbManager-001"; - private static string _clientId; - private static string _serverAddress; - private static string _usernname; - private static string _password; + private static string _clientId = string.Empty; + private static string _serverAddress = string.Empty; + private static string _usernname = string.Empty; + private static string _password = string.Empty; private static int _port; - private static string _receiveMessageTopic; - private static string _sendMessageTopic; + private static string _receiveMessageTopic = string.Empty; + private static string _sendMessageTopic = string.Empty; private static int _timeoutInSeconds; private static int _keepAlivePeriodSeconds; - public static System.Action OnMessageReceived; + public static System.Action? OnMessageReceived; - private static IMqttClient client; - private static CancellationTokenSource _cts; + private static IMqttClient? client; + private static CancellationTokenSource? _cts; // Return Task so callers can await completion and observe exceptions public static async Task Initialise(CancellationTokenSource cts, AppConfig? config = null) @@ -187,7 +188,14 @@ public static async Task Publish(string message) try { - await client.PublishAsync(messageOut, _cts.Token).ConfigureAwait(false); + if (_cts != null) + { + await client.PublishAsync(messageOut, _cts.Token).ConfigureAwait(false); + } + else + { + await client.PublishAsync(messageOut).ConfigureAwait(false); + } Console.WriteLine("MQTT: Published."); } catch (Exception ex) diff --git a/Program.cs b/Program.cs index 2da3150..1631152 100644 --- a/Program.cs +++ b/Program.cs @@ -1,4 +1,5 @@ -// Program.cs (net8.0, MQTTnet 5.x) +#nullable enable +// Program.cs (net8.0, MQTTnet 5.x) using System.Text.Json; using InstDotNet; diff --git a/UWBManager.cs b/UWBManager.cs index 7321257..0219a17 100644 --- a/UWBManager.cs +++ b/UWBManager.cs @@ -96,7 +96,7 @@ private static void SendNetwork(UWB2GPSConverter.Network sendNetwork) { Console.WriteLine($"Sending network with {sendNetwork.uwbs.Length}/{network.uwbs.Length} uwbs."); string data = JsonSerializer.Serialize(sendNetwork, jsonOptions); - MQTTControl.Publish(data); + _ = MQTTControl.Publish(data); // Fire and forget - don't await to avoid blocking } }