SOMS/src/YunDa.Server/YunDa.Server.ISMSTcp/Services/IDeviceCommunicationStateService.cs

55 lines
2.4 KiB
C#
Raw Normal View History

using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
namespace YunDa.Server.ISMSTcp.Services
{
/// <summary>
/// 设备通信状态服务接口
/// 用于管理设备通信状态的缓存和查询
/// </summary>
public interface IDeviceCommunicationStateService
{
/// <summary>
/// 设置设备通信状态
/// </summary>
/// <param name="deviceId">设备ID</param>
/// <param name="commState">通信状态0=断开1=正常)</param>
/// <param name="cancellationToken">取消令牌</param>
/// <returns>设置是否成功</returns>
Task<bool> SetDeviceCommunicationStateAsync(string deviceId, string commState, CancellationToken cancellationToken = default);
/// <summary>
/// 获取设备通信状态
/// </summary>
/// <param name="deviceId">设备ID</param>
/// <param name="cancellationToken">取消令牌</param>
/// <returns>通信状态0=断开1=正常null表示未找到</returns>
Task<string?> GetDeviceCommunicationStateAsync(string deviceId, CancellationToken cancellationToken = default);
/// <summary>
/// 检查设备通信状态是否正常
/// </summary>
/// <param name="deviceId">设备ID</param>
/// <param name="cancellationToken">取消令牌</param>
/// <returns>true=通信正常false=通信异常或未找到</returns>
Task<bool> IsDeviceCommunicationNormalAsync(string deviceId, CancellationToken cancellationToken = default);
/// <summary>
/// 批量设置设备通信状态
/// </summary>
/// <param name="deviceStates">设备状态字典设备ID -> 通信状态)</param>
/// <param name="cancellationToken">取消令牌</param>
/// <returns>成功设置的设备数量</returns>
Task<int> SetDeviceCommunicationStatesAsync(Dictionary<string, string> deviceStates, CancellationToken cancellationToken = default);
/// <summary>
/// 清除设备通信状态缓存
/// </summary>
/// <param name="deviceId">设备ID为空则清除所有</param>
/// <param name="cancellationToken">取消令牌</param>
Task ClearDeviceCommunicationStateAsync(string? deviceId = null, CancellationToken cancellationToken = default);
}
}