更新设备属性

main
zhangbin 2 months ago
parent 5fb3078919
commit fdff676466

@ -287,7 +287,7 @@ public class ConfigSubscribe : IJob
{
if (!method.Equals("hms"))
{
Console.WriteLine($"未处理事件events{message}");
//Console.WriteLine($"未处理事件events{message}");
}
break;

@ -26,7 +26,7 @@ namespace OpenAuth.WebApi.Model.mqtt
handlers,
server: "175.27.168.120",
port: 6011,
clientId: "mqtt_client_1582",
clientId: "mqtt_client_15823456",
username: "sdhc",
password: ""
);
@ -44,7 +44,7 @@ namespace OpenAuth.WebApi.Model.mqtt
$"thing/product/{gateway}/services_reply",
//$"thing/product/{gateway}/drc/up",
//$"thing/product/{gateway}/drc/down",
$"thing/product/{gateway}/state"
$"thing/product/{gateway}/status"
});
}
await _mqttCenter.ConnectAndSubscribeAsync(topics.ToArray());

@ -30,7 +30,7 @@ namespace OpenAuth.WebApi.Model.mqtt
public async Task HandleAsync(string topic, string payload)
{
_logger.LogError($"[Request] Topic={topic}, Payload={payload}");
if (payload.Contains("config"))
if (payload.Contains("update_topo"))
{
var root = JsonNode.Parse(payload)?.AsObject();
if (root == null)

@ -1,39 +0,0 @@
using Infrastructure.CloudSdk.mqttmessagecenter;
using OpenAuth.App.ServiceApp;
using OpenAuth.Repository.Domain;
using System.Text.Json.Nodes;
namespace OpenAuth.WebApi.Model.mqtt
{
public class ThingStateHandler : IMqttMessageHandler
{
private readonly ILogger<ThingStateHandler> _logger;
AirportMaintenanceApp _app;
public ThingStateHandler(ILogger<ThingStateHandler> logger, AirportMaintenanceApp app)
{
_logger = logger;
_app = app;
}
public bool CanHandle(string topic)
{
return topic.Contains("/state");
}
public Task HandleAsync(string topic, string payload)
{
_logger.LogError($"[Service] Topic={topic}, Payload={payload}");
Console.WriteLine($"[Service] Topic={topic}, Payload={payload}");
var root = JsonNode.Parse(payload)?.AsObject();
_app.AddLog(new LasaLog
{
Id = Guid.NewGuid().ToString(),
Topic = topic,
Method = root["method"]?.ToString() ?? "",
CreateTime = DateTime.Now,
Data = root
});
return Task.CompletedTask;
}
}
}

@ -0,0 +1,57 @@
using Infrastructure.CloudSdk.mqttmessagecenter;
using OpenAuth.App.ServiceApp;
using OpenAuth.Repository.Domain;
using System.Text.Json;
using System.Text.Json.Nodes;
namespace OpenAuth.WebApi.Model.mqtt
{
public class ThingStatusHandler : IMqttMessageHandler
{
private readonly ILogger<ThingStatusHandler> _logger;
AirportMaintenanceApp _app;
private readonly MqttClientManager _mqttClientManager;
public ThingStatusHandler(ILogger<ThingStatusHandler> logger, AirportMaintenanceApp app, MqttClientManager mqttClientManager)
{
_logger = logger;
_app = app;
_mqttClientManager = mqttClientManager;
}
public bool CanHandle(string topic)
{
return topic.Contains("/status");
}
string bid, tid, previousgateway;
public async Task HandleAsync(string topic, string payload)
{
_logger.LogError($"[Service] Topic={topic}, Payload={payload}");
Console.WriteLine($"[Service] Topic={topic}, Payload={payload}");
if (payload.Contains("update_topo"))
{
var root = JsonNode.Parse(payload)?.AsObject();
if (root == null)
{
return;
}
bid = root["bid"]?.ToString() ?? "";
tid = root["tid"]?.ToString() ?? "";
var requestData = new
{
bid = bid,
method = "update_topo",
tid = tid,
timestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(),
data = new
{
result = 0,
}
};
string getway = topic.Split('/')[2];
string payloadreq = JsonSerializer.Serialize(requestData);
await _mqttClientManager.PublishAsync($"thing/product/{getway}/status_reply", payloadreq);
}
}
}
}

@ -176,7 +176,8 @@ namespace OpenAuth.WebApi
services.AddSingleton<IMqttMessageHandler, ThingServiceHandler>();
services.AddSingleton<IMqttMessageHandler, ThingOsdHandler>();
services.AddSingleton<IMqttMessageHandler, ThingEventHandler>();
//services.AddSingleton<IMqttMessageHandler, ThingDrcHandler>();
services.AddSingleton<IMqttMessageHandler, ThingDrcHandler>();
services.AddSingleton<IMqttMessageHandler, ThingStatusHandler>();
services.AddHostedService<MqttHostedService>();
#endregion

Loading…
Cancel
Save