Browse Source

update bcch

feature/protocol-log-Perfect
root 4 months ago
parent
commit
4f0b666e17
  1. 54
      CoreAgent.Application/Handlers/CellularNetwork/StartCellularNetworkCommandHandler.cs
  2. 61
      CoreAgent.Application/Handlers/CellularNetwork/StartGeneralCellularNetworkCommandHandler.cs

54
CoreAgent.Application/Handlers/CellularNetwork/StartCellularNetworkCommandHandler.cs

@ -15,15 +15,13 @@ public class StartCellularNetworkCommandHandler : IRequestHandler<StartCellularN
{
private readonly ICellularNetworkService _cellularNetworkService;
private readonly ILogger<StartCellularNetworkCommandHandler> _logger;
private readonly IRanAPICommandHandlerFactory _ranAPICommandHandlerFactory;
public StartCellularNetworkCommandHandler(
ICellularNetworkService cellularNetworkService,
ILogger<StartCellularNetworkCommandHandler> logger,
IRanAPICommandHandlerFactory ranAPICommandHandlerFactory)
ILogger<StartCellularNetworkCommandHandler> logger)
{
_cellularNetworkService = cellularNetworkService;
_logger = logger;
_ranAPICommandHandlerFactory = ranAPICommandHandlerFactory ?? throw new ArgumentNullException(nameof(ranAPICommandHandlerFactory));
}
public async Task<ApiActionResult<NetworkStatus>> Handle(StartCellularNetworkCommand request, CancellationToken cancellationToken)
@ -34,7 +32,6 @@ public class StartCellularNetworkCommandHandler : IRequestHandler<StartCellularN
// 启动网络
var result = await _cellularNetworkService.StartAsync(request.Key);
_=Task.Run(() => SetBcchLogStatusAsync(), cancellationToken);
if (result.IsSuccess)
{
_logger.LogInformation("蜂窝网络配置 {ConfigKey} 启动成功", request.Key);
@ -58,51 +55,4 @@ public class StartCellularNetworkCommandHandler : IRequestHandler<StartCellularN
HttpStatusCode.InternalServerError);
}
}
/// <summary>
/// 设置BCCH日志状态
/// </summary>
/// <returns>任务</returns>
private async Task SetBcchLogStatusAsync()
{
try
{
// 使用工厂创建处理器实例
var ranApiCommandHandler = _ranAPICommandHandlerFactory.CreateHandler();
// 设置BCCH日志状态为true
_logger.LogInformation("开始设置BCCH日志状态为true");
var setTrueResult = await ranApiCommandHandler.SetBcchLogStatusAsync(true);
if (setTrueResult)
{
_logger.LogInformation("BCCH日志状态设置为true成功");
// 等待200秒
_logger.LogInformation("等待200秒后设置BCCH日志状态为false");
await Task.Delay(TimeSpan.FromSeconds(200));
// 设置BCCH日志状态为false
_logger.LogInformation("200秒后开始设置BCCH日志状态为false");
var setFalseResult = await ranApiCommandHandler.SetBcchLogStatusAsync(false);
if (setFalseResult)
{
_logger.LogInformation("BCCH日志状态设置为false成功");
}
else
{
_logger.LogWarning("BCCH日志状态设置为false失败");
}
}
else
{
_logger.LogWarning("BCCH日志状态设置为true失败");
}
}
catch (Exception ex)
{
_logger.LogError(ex, "设置BCCH日志状态时发生异常");
}
}
}

61
CoreAgent.Application/Handlers/CellularNetwork/StartGeneralCellularNetworkCommandHandler.cs

@ -14,14 +14,17 @@ namespace CoreAgent.Application.Handlers.CellularNetwork;
public class StartGeneralCellularNetworkCommandHandler : IRequestHandler<StartGeneralCellularNetworkCommand, ApiActionResult<NetworkStatus>>
{
private readonly IGeneralCellularNetworkService _cellularNetworkService;
private readonly ILogger<StartCellularNetworkCommandHandler> _logger;
private readonly ILogger<StartGeneralCellularNetworkCommandHandler> _logger;
private readonly IRanAPICommandHandlerFactory _ranAPICommandHandlerFactory;
public StartGeneralCellularNetworkCommandHandler(
IGeneralCellularNetworkService cellularNetworkService,
ILogger<StartCellularNetworkCommandHandler> logger)
ILogger<StartGeneralCellularNetworkCommandHandler> logger,
IRanAPICommandHandlerFactory ranAPICommandHandlerFactory)
{
_cellularNetworkService = cellularNetworkService;
_logger = logger;
_ranAPICommandHandlerFactory = ranAPICommandHandlerFactory ?? throw new ArgumentNullException(nameof(ranAPICommandHandlerFactory));
}
public async Task<ApiActionResult<NetworkStatus>> Handle(StartGeneralCellularNetworkCommand request, CancellationToken cancellationToken)
@ -29,12 +32,13 @@ public class StartGeneralCellularNetworkCommandHandler : IRequestHandler<StartGe
try
{
_logger.LogInformation("正在启动蜂窝网络配置: {ConfigKey}", request?.CellularNetwork?.RuntimeCode);
// 启动网络
var result = await _cellularNetworkService.StartAsync(request.CellularNetwork);
if (result.IsSuccess)
{
_ = Task.Run(() => SetBcchLogStatusAsync(), cancellationToken);
_logger.LogInformation("蜂窝网络配置 {ConfigKey} 启动成功", request?.CellularNetwork?.RuntimeCode);
return ApiActionResult<NetworkStatus>.Ok(result.NetworkStatus, "蜂窝网络启动成功");
}
@ -56,4 +60,51 @@ public class StartGeneralCellularNetworkCommandHandler : IRequestHandler<StartGe
HttpStatusCode.InternalServerError);
}
}
}
/// <summary>
/// 设置BCCH日志状态
/// </summary>
/// <returns>任务</returns>
private async Task SetBcchLogStatusAsync()
{
try
{
// 使用工厂创建处理器实例
var ranApiCommandHandler = _ranAPICommandHandlerFactory.CreateHandler();
// 设置BCCH日志状态为true
_logger.LogInformation("开始设置BCCH日志状态为true");
var setTrueResult = await ranApiCommandHandler.SetBcchLogStatusAsync(true);
if (setTrueResult)
{
_logger.LogInformation("BCCH日志状态设置为true成功");
// 等待200秒
_logger.LogInformation("等待200秒后设置BCCH日志状态为false");
await Task.Delay(TimeSpan.FromSeconds(200));
// 设置BCCH日志状态为false
_logger.LogInformation("200秒后开始设置BCCH日志状态为false");
var setFalseResult = await ranApiCommandHandler.SetBcchLogStatusAsync(false);
if (setFalseResult)
{
_logger.LogInformation("BCCH日志状态设置为false成功");
}
else
{
_logger.LogWarning("BCCH日志状态设置为false失败");
}
}
else
{
_logger.LogWarning("BCCH日志状态设置为true失败");
}
}
catch (Exception ex)
{
_logger.LogError(ex, "设置BCCH日志状态时发生异常");
}
}
}
Loading…
Cancel
Save