SOMS/src/YunDa.Server/YunDa.Server.ISMSTcp/Services/IDeviceCommunicationStateService.cs
2025-09-03 10:16:04 +08:00

55 lines
2.4 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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