using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AIK.Common.Enum
{
///
/// USB协议流转小阶段
///
public enum TransferPhase
{
Idle,
Phase1_SendingHeader, // 发送头帧
Phase2_WaitingForHeaderAck, // 等待头帧确认
Phase3_SendingDataFrames, // 发送数据帧
Phase4_WaitingForDataFrameAck, // 等待数据帧确认
Phase5_WaitingForFinalDataAck, // 等待最后一个数据帧确认
Phase6_SendingEOT, // 发送 EOT
Phase7_WaitingForNak, // 等待 NAK
Phase8_SendingFinalEOT, // 发送最终 EOT
Phase9_WaitingForAckc, // 等待 ACKC
Phase10_SendEndFrame, // 发送结束帧
Phase11_WaitingForComplete, // 等待最终确认
Completed
}
public enum ResponseType
{
ReadyForData,
Nak,
Ackc,
Unknown
}
///
/// 连接流程大阶段(每个大阶段都会走完小阶段)
///
public enum BigTransferPhase
{
None,
Phase1_Connect, // 大阶段1:设备连接(含初始化/校验)
Phase2_Generate, // 大阶段2:数据生成(遥控生成)
Phase3_Write, // 大阶段3:数据写入(将生成的数据写入设备)
}
public record HidResponseReceivedEventArgs(byte[] Data);
public record HidLogMessageEventArgs(string Message, bool IsError = false);
public class BigPhaseChangedEventArgs : EventArgs
{
public BigTransferPhase CurrentPhase { get; }
public BigTransferPhase PreviousPhase { get; }
public int CompletedPhases { get; }
public int TotalPhases { get; }
public BigPhaseChangedEventArgs(BigTransferPhase current, BigTransferPhase previous, int completed, int total)
{
CurrentPhase = current;
PreviousPhase = previous;
CompletedPhases = completed;
TotalPhases = total;
}
}
}