Compare commits

...

2 Commits

3 changed files with 51 additions and 35 deletions

View File

@ -48,34 +48,42 @@ namespace OpenAuth.WebApi.Model.mqtt
username: username, username: username,
password: password password: password
); );
//查询网关,订阅主题 ////查询网关,订阅主题
var topics = new List<string>(); //var topics = new List<string>();
var gatewayList = await _app.GetGatewaysnList(); //var gatewayList = await _app.GetGatewaysnList();
foreach (var gateway in gatewayList) //foreach (var gateway in gatewayList)
{ //{
topics.AddRange(new[] // topics.AddRange(new[]
{ // {
$"thing/product/{gateway}/osd", // $"thing/product/{gateway}/osd",
$"thing/product/{gateway}/events", // $"thing/product/{gateway}/events",
$"thing/product/{gateway}/requests", // $"thing/product/{gateway}/requests",
$"thing/product/{gateway}/services_reply", // $"thing/product/{gateway}/services_reply",
//$"thing/product/{gateway}/drc/up", // //$"thing/product/{gateway}/drc/up",
//$"thing/product/{gateway}/drc/down", // //$"thing/product/{gateway}/drc/down",
$"sys/product/{gateway}/status" // $"sys/product/{gateway}/status"
}); // });
} //}
var snList = await _app.GetUavSn(); //var snList = await _app.GetUavSn();
foreach (var sn in snList) //foreach (var sn in snList)
//{
// topics.AddRange(new[]
// {
// // $"thing/product/1581F8HGX254V00A0BUY/osd",
// $"thing/product/{sn}/osd"
// });
//}
string[] topicList =
{ {
topics.AddRange(new[] "thing/product/+/services_reply",
{ "thing/product/+/events",
// $"thing/product/1581F8HGX254V00A0BUY/osd", "thing/product/+/requests",
$"thing/product/{sn}/osd" "thing/product/+/osd",
}); "sys/product/+/status"
} };
await _mqttCenter.ConnectAndSubscribeAsync(topics.ToArray()); await _mqttCenter.SubscribeAsync(topicList);
} }
public Task StopAsync(CancellationToken cancellationToken) => Task.CompletedTask; public Task StopAsync(CancellationToken cancellationToken) => Task.CompletedTask;

View File

@ -32,6 +32,7 @@ namespace OpenAuth.WebApi.Model.mqtt
public async Task HandleAsync(string topic, string payload) public async Task HandleAsync(string topic, string payload)
{ {
_logger.LogError($"[Request] Topic={topic}, Payload={payload}"); _logger.LogError($"[Request] Topic={topic}, Payload={payload}");
Console.WriteLine($"接收数据:{payload}");
if (payload.Contains("config")) if (payload.Contains("config"))
{ {
var root = JsonNode.Parse(payload)?.AsObject(); var root = JsonNode.Parse(payload)?.AsObject();
@ -152,13 +153,20 @@ namespace OpenAuth.WebApi.Model.mqtt
foreach (var device in bindDevices) foreach (var device in bindDevices)
{ {
var obj = device?.AsObject(); 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-")) if (obj["device_model_key"].ToString().Contains("3-"))
{ {
lasaDronePort.Id = Guid.NewGuid().ToString(); lasaDronePort.Id = Guid.NewGuid().ToString();
lasaDronePort.OrgId = obj["organization_id"]?.ToString(); lasaDronePort.OrgId = obj["organization_id"]?.ToString();
lasaDronePort.CreateTime = DateTime.Now; lasaDronePort.CreateTime = DateTime.Now;
lasaDronePort.IsDelete = false; lasaDronePort.IsDelete = false;
lasaDronePort.TypeId = "Dock 3"; lasaDronePort.TypeId = typeId;
lasaDronePort.Sn = obj["sn"].ToString(); lasaDronePort.Sn = obj["sn"].ToString();
lasaDronePort.BindStatus = 1; lasaDronePort.BindStatus = 1;
lasaDronePort.Name = obj["device_callsign"]?.ToString(); lasaDronePort.Name = obj["device_callsign"]?.ToString();
@ -182,13 +190,13 @@ namespace OpenAuth.WebApi.Model.mqtt
uavsn = uavsn == "" ? "01" : uavsn; uavsn = uavsn == "" ? "01" : uavsn;
_manageApp.AddDronePort(lasaDronePort); _manageApp.AddDronePort(lasaDronePort);
_manageApp.AddLasaUav(lasaUav); _manageApp.AddLasaUav(lasaUav);
var topics = new List<string>(); //var topics = new List<string>();
topics.AddRange(new[] //topics.AddRange(new[]
{ //{
$"sys/product/{dronesn}/osd", // $"sys/product/{dronesn}/osd",
$"sys/product/{uavsn}/osd", // $"sys/product/{uavsn}/osd",
}); //});
await _mqttCenter.SubscribeAsync(topics.ToArray()); //await _mqttCenter.SubscribeAsync(topics.ToArray());
var requestData = new var requestData = new
{ {
bid = Guid.NewGuid().ToString(), bid = Guid.NewGuid().ToString(),

View File

@ -25,8 +25,8 @@ namespace OpenAuth.WebApi.Model.mqtt
public async Task HandleAsync(string topic, string payload) public async Task HandleAsync(string topic, string payload)
{ {
//_logger.LogError($"[Service] Topic={topic}, Payload={payload}"); _logger.LogError($"[Service] Topic={topic}, Payload={payload}");
Console.WriteLine($"[Service] Topic={topic}, Payload={payload}"); //Console.WriteLine($"[Service] Topic={topic}, Payload={payload}");
if (payload.Contains("update_topo")) if (payload.Contains("update_topo"))
{ {