55 lines
2.4 KiB
C#
55 lines
2.4 KiB
C#
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);
|
||
}
|
||
}
|