69 lines
1.8 KiB
C#
Raw Normal View History

2025-05-08 17:26:10 +08:00
using System;
using System.Threading.Tasks;
namespace Protocol376Simulator.Interfaces
{
/// <summary>
/// 定义模拟器的基本接口
/// </summary>
public interface ISimulator
{
/// <summary>
/// 启动模拟器
/// </summary>
/// <param name="autoLogin">是否自动登录</param>
/// <param name="autoHeartbeat">是否自动发送心跳</param>
Task StartAsync(bool autoLogin = false, bool autoHeartbeat = false);
/// <summary>
/// 停止模拟器
/// </summary>
Task StopAsync();
/// <summary>
/// 发送登录消息
/// </summary>
Task SendLoginMessageAsync();
/// <summary>
/// 发送心跳消息
/// </summary>
Task SendHeartbeatMessageAsync();
/// <summary>
/// 启动心跳发送
/// </summary>
void StartHeartbeat();
/// <summary>
/// 停止心跳发送
/// </summary>
void StopHeartbeat();
/// <summary>
/// 获取模拟器状态
/// </summary>
/// <returns>格式化的状态信息字符串</returns>
string GetStatus();
/// <summary>
/// 当状态变更时触发的事件
/// </summary>
event EventHandler<string> StatusChanged;
/// <summary>
/// 当接收到消息时触发的事件
/// </summary>
event EventHandler<byte[]> MessageReceived;
/// <summary>
/// 模拟器是否已连接
/// </summary>
bool IsConnected { get; }
/// <summary>
/// 模拟器是否已登录
/// </summary>
bool IsLoggedIn { get; }
}
}