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);
|
|||
|
|
}
|
|||
|
|
}
|