using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Uestc.Auto6.Dso.ComModel { public enum SerialProtocolType { Close, RS232,//422、485、UART I2C, SPI, USB,//1.X、2.0 CAN, CAN_FD, LIN, FlexRay, AudioBus,// I2S(I2S、LJ、RJ) MIL, SENT, SATA, JTAG, PCIe, SPMI, ARINC429, //NEdge, //Parallel, //Ethernet, //NRZ, //Manchester, //DigRF_3G, //DigRF_V4, //D_PHY, //DSI, //ENET, //MDIO, //NRZ, //SpaceWire } public class DecodeEvent { public Int64 EventIndex { get; init; } public Double StartTime { get; init; } public Double EndTime { get; init; } public String Name { get; init; } = ""; public UInt16 Data { get; init; } } public enum DecodeDisplayMode { Close = 0, Hex = 1, Dec = 2, Binary = 3, ASCII = 4, Auto = 5, } #region TriggerSerial //public enum PulseCondition //{ // GreaterThan, // LessThan, // Equal, // NotEqual, //} public enum ByteOrder { LSB, MSB, } #endregion public class ProtocolRS232 { public enum Conditions { FrameStart, CheckError, SpecialData, PackageEnd } //信号类型 public enum SignalType { Single,//单端 Difference//差分 } public enum DataBitWidth { DataBitWidth_5Bit, DataBitWidth_6Bit, DataBitWidth_7Bit, DataBitWidth_8Bit } //停止位 public enum StopBit { StopBit_1bit, StopBit_2bit } //奇偶校验 public enum OddEvenCheck { None, Even, //偶校验 Odd //奇校验 } //位顺序 public enum MSB_LSB { MSB = 0, LSB = 1 } //极性 public enum Polarity { Neg, Pos } //波特率 public enum BPSList { BPSList_2400 , BPSList_4800 , BPSList_9600 , BPSList_19200 , BPSList_38400 , BPSList_57600 , BPSList_115200 , BPSList_Custom } //数据包结束标志(触发条件选择“包结束”时使用) public enum PackageEndFlag { NULL, LF, CR, SP, FFH } } public class ProtocolI2C { public enum Condition { Start, ReStart, Stop, Lost, Address, Data, AddressAndData } //数据方向(触发条件选择“地址”时使用) public enum DataDirection { Write, Read, Both } //地址位宽(触发条件选择“地址”时使用) public enum AddrBitWidth { AddrBitWidth_7, AddrBitWidth_10 } //数据限定(触发条件选择“数据”时使用) public enum DataRelation { EQ, GT, LT, NEQ } } public class ProtocolSPI { public enum EdgeState { Rising, Falling, } public enum DecodeChannel { MISO, MOSI, MOMI } //位顺序 public enum MSB_LSB { MSB = 0, LSB = 1 } //极性 public enum Polarity { Neg, Pos } public enum DataTriggerSource { MISO=DecodeChannel.MISO, MOSI=DecodeChannel.MOSI, MOMI=DecodeChannel.MOMI, } public enum FramingMode { Slave, Idle, } public enum LevelState { Hight, Low, } public enum Condition { CS, Data, } } public class ProtocolSENT { //触发条件 public enum Condition { Sync, //同步头 SandC, //S&C Data, //数据 CRCError, //CRC错误 Interval, //间隙 }; //数据限定 public enum DataRelation { Lt, gt, Lteq, Gteq, Eq, Neq, In, Out }; //附加间隙 public enum AppendInterval { No, //无 Yes, //有 }; //CRC public enum SENTCRC { V2008, V2010, }; //数据长度 public enum DataLength { Nibbles_5, Nibbles_8, }; //极性 public enum Polarity { Neg, //负 Pos //正 }; //信号速率(类似于CAN总线的速率) public enum SignalRate { SignalRate_10k, SignalRate_20k, SignalRate_33_3k, SignalRate_50k, SignalRate_62_5k, SignalRate_83_3k, SignalRate_100k, SignalRate_125k, SignalRate_1m, SignalRate_custom //自定义速率 }; } public class ProtocolARINC429 { //ARINC429 //触发条件 public enum Condition { FrameHead, //帧头 LABEL, //LABEL DATA, //DATA SDI, //SDI SSM, //SSM CheckedError //校验错 }; //数据限定 public enum DataRelation { Lt, Gt, Lteq, Gteq, Eq, Neq, In, Out }; //输入模式 public enum InputMode { ABDiff, //AB通道差分 Diff //差分输入 }; //解码模式 public enum DecodeMode { Mode_8_2_19_2_1, //8-2-19-2-1 Mode_8_24 //8-24 }; //信号速率(类似于CAN总线的速率) public enum SignalRate { SignalRate_10k, SignalRate_20k, SignalRate_33_3k, SignalRate_50k, SignalRate_62_5k, SignalRate_83_3k, SignalRate_100k, SignalRate_125k, SignalRate_1m, SignalRate_custom //自定义速率 }; } public class ProtocolMIL { public enum Condition { SYNC, CMD, STATUS, DATA, Error }; //数据限定(触发条件:命令字、状态字、数据字) public enum FullDataRelation { Lt, Gt, Lteq, Gteq, Eq, Neq, In, Out }; //位设置(用于所有需要选择0,1,x三个值中的一个的参数选项) public enum BitSetting { Bit_0, Bit_1, Bit_X }; //数据限定(触发条件:空闲时间) public enum IdleTimeDataRelation { Lt, Gt, In, Out }; //极性 public enum Polarity { Reverse, //反转 Normal //正常 }; //错误类型(触发条件:错误类型) public enum ErrorType { Oddevent, //奇偶校验 Sync, //同步 Manchester, //曼彻斯特 Notcontinue //非连续数 }; } public class ProtocolUSB { public enum Condition { Sync, Reset, Pause, Resume, PackageEnd, TokenPackage, HandshakePackage, DataPackage, Sof, Error } //信号速率 public enum SignalRate { LowRate, FullRate, HighRate, HSIC, } //令牌类型(触发条件选择“令牌包”时使用,PID之一) public enum TokenPackageType { Any, IN, Out, SETUP } //握手包类型(触发条件选择“握手包”时使用,PID之一) public enum HandshakePackageType { Any, ACK, NAK, STALL } //数据包类型(触发条件选择“数据包”时使用,PID之一) public enum DataPackageType { Any, Data0, Data1, Data2, MData, } //错误类型(触发条件选择“错误”时使用) public enum ErrorPackageType { PIDCRC, CRC5, CRC16, BitFill } //数据限定(触发条件选择“数据包”、“SOF”、“令牌包”时使用) public enum DataRelation { Lt, Gt, Lteq, Gteq, Eq, Neq, In, Out } } public class ProtocolCAN { public enum Condition { FrameStart, //帧起始 FrameType, //帧类型 ID, //ID Data, //数据 AckLose, //ACK丢失 BitFillError, //位填充错 IDandData, //ID和数据 FrameEnd //帧结束 } //帧类型(触发条件选择"帧类型"时使用) public enum FrameType { Data, Remote, Error, Overload } //ID帧类型(触发条件选择"ID"或"ID和数据"时使用) public enum IDFrameType { Data, Remote, Both } //信号类型 public enum SignalType { CANL, CANH, RXTX, Diff } //ID标准(触发条件选择"ID"或"ID和数据"时使用) public enum IDStandard { Standard, Extended } ////数据限定(触发条件选择"数据"或"ID和数据"时使用) public enum DataRelation { Lt, Gt, Lteq, Gteq, Eq, Neq, } //信号速率 public enum SignalRate { SignalRate_10k, SignalRate_20k, SignalRate_33_3k, SignalRate_50k, SignalRate_62_5k, SignalRate_83_3k, SignalRate_100k, SignalRate_125k, SignalRate_1m, SignalRate_custom //自定义速率 } } public class ProtocolCANFD { public enum Condition { FrameStart, //帧起始 FrameType, //帧类型 ID, //ID Data, //数据 AckLose, //ACK丢失 BitFillError, //位填充错 IDandData, //ID和数据 FrameEnd //帧结束 } //帧类型(触发条件选择"帧类型"时使用) public enum FrameType { Data, Remote, Error, Overload } //ID帧类型(触发条件选择"ID"或"ID和数据"时使用) public enum IDFrameType { Data, Remote, Both } //信号类型 public enum SignalType { CAN_FDL, CAN_FDH, RXTX, Diff } //ID标准(触发条件选择"ID"或"ID和数据"时使用) public enum IDStandard { Standard, Extended } ////数据限定(触发条件选择"数据"或"ID和数据"时使用) public enum DataRelation { Lt, Gt, Lteq, Gteq, Eq, Neq, } //信号速率 public enum SignalRate { SignalRate_10k, SignalRate_20k, SignalRate_33_3k, SignalRate_50k, SignalRate_62_5k, SignalRate_83_3k, SignalRate_100k, SignalRate_125k, SignalRate_1m, SignalRate_custom //自定义速率 } } public class ProtocolLIN { //LIN //触发条件 public enum Condition { SYNC, ID, Data, IDandData, WakeUpFrame, SleepFrame, SYNCError, IDCRCError, SUMCRCError } //数据限定(触发条件选择"数据"或"ID和数据"时使用) public enum DataRelation { Lt, Gt, Lteq, Gteq, Eq, Neq, In, Out } //信号速率(标准?) public enum Standard { V1, V2, Both } //位速率 public enum BPS_ID { BPS_2400, BPS_4800, BPS_9600, BPS_19200, BPS_Special } //极性 public enum Polarity { Neg, Pos } //奇偶位 public enum PIncludeOddEven { Y, N } } public class ProtocolFlexRay { //FlexRay //触发条件 public enum Condition { FrameHead, Indicator, ID, Circulate, PkgHead, Data, IDAndData, FrameTail, Erorr } //源类型 public enum SourceType { Tx_Rx, BP, BM, BDiff } //信号速率 public enum SignalRate { SignalRate_1Mbps, SignalRate_5Mbps, SignalRate_10Mbps, SignalRate_Custom } //通道类型 public enum ChannelType { A, B } //指示符(触发条件:指示符/包头) public enum Indicator { NormalFrame, //正常帧 PayloadFrame, //净荷帧 EmptyFrame, //空帧 SyncFrame, //同步帧 StartFram //启动帧 //NormalFrame = 0, //正常帧 //PayloadFrame = 1, //净荷帧 //StaticEmptyFrame = 2, //静空帧 //DynamicEmptyFrame = 3, //动空帧 //SyncFrame = 4, //同步帧 //StartFram = 5 //启动帧 } //限定符(触发条件:标识/数据/标识和数据) public enum Realtion { Lt, Gt, Lteq, Gteq, Eq, Neq, In, Out } //帧尾(触发条件:帧尾) public enum FrameTail { Static, Dynamic, Any } //错误(触发条件:错误) public enum FrameError { PkgHeadCRC, PkgTail, StaticEmptyFrame, DynamicEmptyFrame, SyncFrame, StartFrame } } public class ProtocolAudioBus { //I2S //触发条件 public enum Condition { Sync, Data, }; //时钟沿 public enum ClockEdge { DownEdge, UpEdge }; //协议类型 public enum SubType { I2S, LJ, RJ, TDM }; //同步极性 public enum SyncPolarity { DownEdge, UpEdge }; //数据极性 public enum DataPolarity { Neg, Pos }; //位顺序 public enum MSB_LSB { LSB, MSB }; //数据限定(触发条件选择"数据"时使用) public enum DataRelation { Lt, Gt, Lteq, Gteq, Eq, Neq, In, Out }; //声道选择 public enum SoundChannel { Left, Right }; } public class ProtocolSATA { //触发条件 public enum Condition { Primitive, FIS_TYPE, ALIGN, SOF, EOF, DATA, CRC } //基元触发标志(触发条件选择“基元触发”时使用) public enum PrimitiveFlag { CONTp, DMATp, HOLDp, HOLDAp, PMACKp, PMNACKp, PMREQ_Pp, PMREQ_Sp, R_ERRp, R_IPp, R_OKp, R_RDYp, SYNCp, WTRMp, X_RDp } //类型触发标志(触发条件选择“类型触发”时使用) public enum FISTypeFlag { FIS_TYPE_27, FIS_TYPE_34, FIS_TYPE_39, FIS_TYPE_41, FIS_TYPE_46, FIS_TYPE_58, FIS_TYPE_5F, FIS_TYPE_A1, FIS_TYPE_A6, FIS_TYPE_B8, FIS_TYPE_BF, FIS_TYPE_C7, FIS_TYPE_D4, FIS_TYPE_D9 } public enum Relation { Lt, Gt, Eq } public enum DecodeType { IDLE_state, D10_2_state, ALIGNp_state, SOFp_state, FIS_TYPE_state, FIS_DATA_state, CRC_state, EOFp_state, CONTp, DMATp, HOLDp, HOLDAp, PMACKp, PMNACKp, PMREQ_Pp, PMREQ_Sp, R_ERRp, R_IPp, R_OKp, R_RDYp, SYNCp, WTRMp, X_RDp } } public class ProtocolJTAG { //Jtag public enum Condition { EXIT2_DR, EXIT1_DR, SHIFT_DR, PAUSE_DR, SELECT_IR_SCAN, UPDAET_DR, CAPTURE_DR, SELECT_DR_SCAN, EXIT2_IR, EXIT1_IR, SHIFT_IR, PAUSE_IR, RUN_TEST_IDLE, UPDATE_IR, CAPTURE_IR, TEST_LOGIC_REST, //RESET = 0, //RUN_TEST_IDLE = 1, //SELECT_DR_SCAN = 2, //SELECT_IR_SCAN = 3, //CAPTURE_DR = 4, //CAPTURE_IR = 5, //SHIFT_DR = 6, //SHIFT_IR = 7, //EXIT1_DR = 8, //EXIT1_IR = 9, //PAUSE_DR = 10, //PAUSE_IR = 11, //EXIT2_DR = 12, //EXIT2_IR = 13, //UPDATE_DR = 14, //UPDATE_IR = 15 } public enum BaudRateList { //待修改 BaudRateList_0, BaudRateList_1 } ////数据通道(触发条件选择"数据"触发时使用)(触发数据通道) //public enum TriggerJtagDataChannel //{ // JtagDataChannel_TDI = 0, // JtagDataChannel_TDO = 1 //}; //解码通道(解码数据通道) public enum DecodeChannel { TDI, TDO } //数据限定(触发条件选择"数据"或"ID和数据"时使用) public enum DataRelation { Eq, Gt, Lt, } } public class ProtocolPCIe { public enum Condition { TS1, TS2, SKP, FTS, Electrical_Idle, Compliance_Pattern, Packets, Error, Symbol_K, Symbol_D, Symbol_D_Symbol_K, DLLP_Packets, TLP_Packets, Tigg_3DW_Packets, Tigg_4DW_Packets, Electrical_Idle_Exit, TS1_TS2_SKP_Electrical_Idle } } public class ProtocolSPMI { public enum Condition { SSC, Command, Data, Address, Parity_Error } } }