diff --git a/Source/ProofOfConcept/Program.cs b/Source/ProofOfConcept/Program.cs index ac39edf..5952062 100644 --- a/Source/ProofOfConcept/Program.cs +++ b/Source/ProofOfConcept/Program.cs @@ -419,11 +419,11 @@ app.MapGet("/Status", async ([FromServices] ILogger logger, [FromS return Results.Ok(sb.ToString()); }); -app.MapGet("/TestStartParking", async ([FromServices] ILogger logger, [FromServices] MessageProcessor messageProcessor) => +app.MapGet("/TestStartParking", async ([FromQuery] double latitude, [FromQuery] double longitude, [FromServices] ILogger logger, [FromServices] MessageProcessor messageProcessor) => { logger.LogTrace("Test Start Parking..."); - await messageProcessor.ProcessMessage("5YJ3E7EB7KF291652", "location", "{\"latitude\":47.410323,\"longitude\":19.067579}"); + await messageProcessor.ProcessMessage("5YJ3E7EB7KF291652", "location", $"{{\"latitude\":{latitude},\"longitude\":{longitude}}}"); await messageProcessor.ProcessMessage("5YJ3E7EB7KF291652", "gear", "P"); await messageProcessor.ProcessMessage("5YJ3E7EB7KF291652", "locked", "true"); await messageProcessor.ProcessMessage("5YJ3E7EB7KF291652", "driverseatoccupied", "false"); diff --git a/Source/ProofOfConcept/Services/MQTTClient.cs b/Source/ProofOfConcept/Services/MQTTClient.cs index e36c330..16f3b58 100644 --- a/Source/ProofOfConcept/Services/MQTTClient.cs +++ b/Source/ProofOfConcept/Services/MQTTClient.cs @@ -35,7 +35,7 @@ public class MQTTClient : IHostedService string? message = Encoding.UTF8.GetString(e.ApplicationMessage.Payload); logger.LogInformation("Message received: {Message}", message); - messageProcessor.ProcessMessage(vin, field.ToLowerInvariant(), message.StripQuotes()); + messageProcessor.ProcessMessage(vin, field.ToLowerInvariant(), message.StripQuotes()).GetAwaiter().GetResult(); } else logger.LogWarning("Topic not passed to message processor: {Topic}", topic); diff --git a/Source/ProofOfConcept/Services/MessageProcessor.cs b/Source/ProofOfConcept/Services/MessageProcessor.cs index 52e1b0f..30bf881 100644 --- a/Source/ProofOfConcept/Services/MessageProcessor.cs +++ b/Source/ProofOfConcept/Services/MessageProcessor.cs @@ -41,7 +41,9 @@ public class MessageProcessor string[] validGears = [ "P", "R", "N", "D", "SNA" ]; if (field == "gear" && validGears.Contains(value)) this.teslaState.Gear = value; - + else if (field == "gear" && value == "null") + this.teslaState.Gear = "P"; + else if (field == "locked" && bool.TryParse(value, out bool locked)) this.teslaState.Locked = locked;