You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
2.1 KiB
64 lines
2.1 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace AIK.Common.Enum
|
|
{
|
|
/// <summary>
|
|
/// USB协议流转小阶段
|
|
/// </summary>
|
|
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
|
|
}
|
|
/// <summary>
|
|
/// 连接流程大阶段(每个大阶段都会走完小阶段)
|
|
/// </summary>
|
|
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;
|
|
}
|
|
}
|
|
|
|
}
|
|
|