69 lines
1.8 KiB
C#
69 lines
1.8 KiB
C#
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; }
|
|
}
|
|
} |