diff --git a/OpenAuth.WebApi/Model/mqtt/MqttHostedService.cs b/OpenAuth.WebApi/Model/mqtt/MqttHostedService.cs index f307db6..a1fa26f 100644 --- a/OpenAuth.WebApi/Model/mqtt/MqttHostedService.cs +++ b/OpenAuth.WebApi/Model/mqtt/MqttHostedService.cs @@ -48,34 +48,42 @@ namespace OpenAuth.WebApi.Model.mqtt username: username, password: password ); - //查询网关,订阅主题 - var topics = new List(); - var gatewayList = await _app.GetGatewaysnList(); + ////查询网关,订阅主题 + //var topics = new List(); + //var gatewayList = await _app.GetGatewaysnList(); - foreach (var gateway in gatewayList) - { - topics.AddRange(new[] - { - $"thing/product/{gateway}/osd", - $"thing/product/{gateway}/events", - $"thing/product/{gateway}/requests", - $"thing/product/{gateway}/services_reply", - //$"thing/product/{gateway}/drc/up", - //$"thing/product/{gateway}/drc/down", - $"sys/product/{gateway}/status" - }); - } - var snList = await _app.GetUavSn(); + //foreach (var gateway in gatewayList) + //{ + // topics.AddRange(new[] + // { + // $"thing/product/{gateway}/osd", + // $"thing/product/{gateway}/events", + // $"thing/product/{gateway}/requests", + // $"thing/product/{gateway}/services_reply", + // //$"thing/product/{gateway}/drc/up", + // //$"thing/product/{gateway}/drc/down", + // $"sys/product/{gateway}/status" + // }); + //} + //var snList = await _app.GetUavSn(); - foreach (var sn in snList) - { - topics.AddRange(new[] + //foreach (var sn in snList) + //{ + // topics.AddRange(new[] + // { + // // $"thing/product/1581F8HGX254V00A0BUY/osd", + // $"thing/product/{sn}/osd" + // }); + //} + string[] topicList = { - // $"thing/product/1581F8HGX254V00A0BUY/osd", - $"thing/product/{sn}/osd" - }); - } - await _mqttCenter.ConnectAndSubscribeAsync(topics.ToArray()); + "thing/product/+/services_reply", + "thing/product/+/events", + "thing/product/+/requests", + "thing/product/+/osd", + "sys/product/+/status" + }; + await _mqttCenter.SubscribeAsync(topicList); } public Task StopAsync(CancellationToken cancellationToken) => Task.CompletedTask; diff --git a/OpenAuth.WebApi/Model/mqtt/ThingRequestHandler.cs b/OpenAuth.WebApi/Model/mqtt/ThingRequestHandler.cs index 8accc7c..9f58a7b 100644 --- a/OpenAuth.WebApi/Model/mqtt/ThingRequestHandler.cs +++ b/OpenAuth.WebApi/Model/mqtt/ThingRequestHandler.cs @@ -32,6 +32,7 @@ namespace OpenAuth.WebApi.Model.mqtt public async Task HandleAsync(string topic, string payload) { _logger.LogError($"[Request] Topic={topic}, Payload={payload}"); + Console.WriteLine($"接收数据:{payload}"); if (payload.Contains("config")) { var root = JsonNode.Parse(payload)?.AsObject(); @@ -152,13 +153,20 @@ namespace OpenAuth.WebApi.Model.mqtt foreach (var device in bindDevices) { var obj = device?.AsObject(); + var modelKey = obj["device_model_key"]?.ToString()?.Trim(); + var parts = modelKey.Split('-', StringSplitOptions.RemoveEmptyEntries); + string typeId = "Unknown"; + if (parts.Length >= 3 && parts[0] == "3") + { + typeId = $"Dock {parts[1]}"; + } if (obj["device_model_key"].ToString().Contains("3-")) { lasaDronePort.Id = Guid.NewGuid().ToString(); lasaDronePort.OrgId = obj["organization_id"]?.ToString(); lasaDronePort.CreateTime = DateTime.Now; lasaDronePort.IsDelete = false; - lasaDronePort.TypeId = "Dock 3"; + lasaDronePort.TypeId = typeId; lasaDronePort.Sn = obj["sn"].ToString(); lasaDronePort.BindStatus = 1; lasaDronePort.Name = obj["device_callsign"]?.ToString(); @@ -182,13 +190,13 @@ namespace OpenAuth.WebApi.Model.mqtt uavsn = uavsn == "" ? "01" : uavsn; _manageApp.AddDronePort(lasaDronePort); _manageApp.AddLasaUav(lasaUav); - var topics = new List(); - topics.AddRange(new[] - { - $"sys/product/{dronesn}/osd", - $"sys/product/{uavsn}/osd", - }); - await _mqttCenter.SubscribeAsync(topics.ToArray()); + //var topics = new List(); + //topics.AddRange(new[] + //{ + // $"sys/product/{dronesn}/osd", + // $"sys/product/{uavsn}/osd", + //}); + //await _mqttCenter.SubscribeAsync(topics.ToArray()); var requestData = new { bid = Guid.NewGuid().ToString(), diff --git a/OpenAuth.WebApi/Model/mqtt/ThingStatusHandler.cs b/OpenAuth.WebApi/Model/mqtt/ThingStatusHandler.cs index b58e1f3..407b234 100644 --- a/OpenAuth.WebApi/Model/mqtt/ThingStatusHandler.cs +++ b/OpenAuth.WebApi/Model/mqtt/ThingStatusHandler.cs @@ -25,8 +25,8 @@ namespace OpenAuth.WebApi.Model.mqtt public async Task HandleAsync(string topic, string payload) { - //_logger.LogError($"[Service] Topic={topic}, Payload={payload}"); - Console.WriteLine($"[Service] Topic={topic}, Payload={payload}"); + _logger.LogError($"[Service] Topic={topic}, Payload={payload}"); + //Console.WriteLine($"[Service] Topic={topic}, Payload={payload}"); if (payload.Contains("update_topo")) {