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