SerialProtocolEnum.cs 26 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace Uestc.Auto6.Dso.ComModel
  7. {
  8. public enum SerialProtocolType
  9. {
  10. Close,
  11. RS232,//422、485、UART
  12. I2C,
  13. SPI,
  14. USB,//1.X、2.0
  15. CAN,
  16. LIN,
  17. FlexRay,
  18. MIL,
  19. AudioBus,// I2S(I2S、LJ、RJ)
  20. ARINC429,
  21. SENT,
  22. SPMI,
  23. Ethernet,
  24. CXPI,
  25. NFC,
  26. PD,
  27. CAN_FD,
  28. NRZ,
  29. Manchester,
  30. DigRF_3G,
  31. DigRF_V4,
  32. Common_8b10b,
  33. JTAG,
  34. SATA,
  35. PCIe,
  36. }
  37. public class DecodeEvent
  38. {
  39. public Int64 EventIndex { get; init; }
  40. public Double StartTime { get; init; }
  41. public Double EndTime { get; init; }
  42. public String Name { get; init; } = "";
  43. public UInt16 Data { get; init; }
  44. }
  45. public enum DecodeDisplayMode
  46. {
  47. Close = 0,
  48. Hex = 1,
  49. Dec = 2,
  50. Binary = 3,
  51. ASCII = 4,
  52. Auto = 5,
  53. }
  54. #region TriggerSerial
  55. //public enum PulseCondition
  56. //{
  57. // GreaterThan,
  58. // LessThan,
  59. // Equal,
  60. // NotEqual,
  61. //}
  62. public enum ByteOrder
  63. {
  64. LSB,
  65. MSB,
  66. }
  67. #endregion
  68. public class ProtocolRS232
  69. {
  70. public enum Conditions
  71. {
  72. FrameStart,
  73. CheckError,
  74. SpecialData,
  75. PackageEnd
  76. }
  77. //信号类型
  78. public enum SignalType
  79. {
  80. Single,//单端
  81. Difference//差分
  82. }
  83. public enum DataBitWidth
  84. {
  85. DataBitWidth_5Bit,
  86. DataBitWidth_6Bit,
  87. DataBitWidth_7Bit,
  88. DataBitWidth_8Bit
  89. }
  90. //停止位
  91. public enum StopBit
  92. {
  93. StopBit_1bit,
  94. StopBit_2bit
  95. }
  96. //奇偶校验
  97. public enum OddEvenCheck
  98. {
  99. None,
  100. Even, //偶校验
  101. Odd //奇校验
  102. }
  103. //位顺序
  104. public enum MSB_LSB
  105. {
  106. MSB = 0,
  107. LSB = 1
  108. }
  109. //极性
  110. public enum Polarity
  111. {
  112. Neg,
  113. Pos
  114. }
  115. //波特率
  116. public enum BPSList
  117. {
  118. BPSList_2400 ,
  119. BPSList_4800 ,
  120. BPSList_9600 ,
  121. BPSList_19200 ,
  122. BPSList_38400 ,
  123. BPSList_57600 ,
  124. BPSList_115200 ,
  125. BPSList_Custom
  126. }
  127. //数据包结束标志(触发条件选择“包结束”时使用)
  128. public enum PackageEndFlag
  129. {
  130. NULL,
  131. LF,
  132. CR,
  133. SP,
  134. FFH
  135. }
  136. }
  137. public class ProtocolI2C
  138. {
  139. public enum Condition
  140. {
  141. Start,
  142. ReStart,
  143. Stop,
  144. Lost,
  145. Address,
  146. Data,
  147. AddressAndData
  148. }
  149. //数据方向(触发条件选择“地址”时使用)
  150. public enum DataDirection
  151. {
  152. Read,
  153. Write,
  154. Both
  155. }
  156. //地址位宽(触发条件选择“地址”时使用)
  157. public enum AddrBitWidth
  158. {
  159. AddrBitWidth_7,
  160. AddrBitWidth_10
  161. }
  162. //数据限定(触发条件选择“数据”时使用)
  163. public enum DataRelation
  164. {
  165. EQ,
  166. GT,
  167. LT,
  168. NEQ
  169. }
  170. }
  171. public class ProtocolSPI
  172. {
  173. public enum EdgeState
  174. {
  175. Falling,
  176. Rising,
  177. }
  178. public enum DecodeChannel
  179. {
  180. MISO,
  181. MOSI,
  182. MOMI
  183. }
  184. //位顺序
  185. public enum MSB_LSB
  186. {
  187. LSB,
  188. MSB,
  189. }
  190. //极性
  191. public enum Polarity
  192. {
  193. Neg,
  194. Pos
  195. }
  196. public enum DataTriggerSource
  197. {
  198. MISO=DecodeChannel.MISO,
  199. MOSI=DecodeChannel.MOSI,
  200. MOMI=DecodeChannel.MOMI,
  201. }
  202. public enum FramingMode
  203. {
  204. Slave,
  205. Idle,
  206. }
  207. public enum LevelState
  208. {
  209. Hight,
  210. Low,
  211. }
  212. public enum Condition
  213. {
  214. CS,
  215. Data,
  216. }
  217. }
  218. public class ProtocolSENT
  219. {
  220. //触发条件
  221. public enum Condition
  222. {
  223. Sync, //同步头
  224. Start, //S&C
  225. Data, //数据
  226. CRCError, //CRC错误
  227. };
  228. //数据限定
  229. public enum DataRelation
  230. {
  231. Lt,
  232. gt,
  233. Lteq,
  234. Gteq,
  235. Eq,
  236. Neq,
  237. In,
  238. Out
  239. };
  240. //附加间隙
  241. public enum PauseBit
  242. {
  243. No, //无
  244. Yes, //有
  245. };
  246. //CRC
  247. public enum SENTCRC
  248. {
  249. V2008,
  250. V2010,
  251. };
  252. //数据长度
  253. public enum DataLength
  254. {
  255. Nibbles_5,
  256. Nibbles_6,
  257. Nibbles_7,
  258. Nibbles_8,
  259. };
  260. //极性
  261. public enum Polarity
  262. {
  263. Neg, //负
  264. Pos //正
  265. };
  266. //信号速率(类似于CAN总线的速率)
  267. public enum SignalRate
  268. {
  269. SignalRate_10k,
  270. SignalRate_20k,
  271. SignalRate_33_3k,
  272. SignalRate_50k,
  273. SignalRate_62_5k,
  274. SignalRate_83_3k,
  275. SignalRate_100k,
  276. SignalRate_125k,
  277. SignalRate_1m,
  278. SignalRate_custom //自定义速率
  279. };
  280. }
  281. public class ProtocolARINC429
  282. {
  283. //ARINC429
  284. //触发条件
  285. public enum Condition
  286. {
  287. FrameHead, //帧头
  288. LABEL, //LABEL
  289. SDI, //SDI
  290. DATA, //DATA
  291. SSM, //SSM
  292. CheckedError //校验错
  293. };
  294. //数据限定
  295. public enum DataRelation
  296. {
  297. Lt,
  298. Gt,
  299. Lteq,
  300. Gteq,
  301. Eq,
  302. Neq,
  303. In,
  304. Out
  305. };
  306. //输入模式
  307. public enum InputMode
  308. {
  309. ABDiff, //AB通道差分
  310. Diff //差分输入
  311. };
  312. //解码模式
  313. public enum DecodeMode
  314. {
  315. Mode_8_2_19_1, //8-2-19-1
  316. Mode_8_23_1 //8-23-1
  317. };
  318. //信号速率(类似于CAN总线的速率)
  319. public enum SignalRate
  320. {
  321. SignalRate_12_5k,
  322. SignalRate_100k,
  323. SignalRate_custom //自定义速率
  324. };
  325. }
  326. public class ProtocolEthernet
  327. {
  328. public enum EthernetSpeed
  329. {
  330. EthernetSpeed_10M,
  331. EthernetSpeed_100M,
  332. EthernetSpeed_1000M,
  333. }
  334. public enum EthernetVersion
  335. {
  336. IPv4,
  337. IPv6,
  338. }
  339. //信号类型
  340. public enum SignalType
  341. {
  342. Single,//单端
  343. Difference//差分
  344. }
  345. /*
  346. * 触发现在只做了3个,其他的先屏蔽
  347. */
  348. public enum Condition
  349. {
  350. FrameHead,
  351. MACAddress,
  352. //MACLenghtOrType,
  353. //IPHeader,
  354. //TCPHeader,
  355. ClientData,
  356. //PacketEnder,
  357. //Idle,
  358. //CRCError,
  359. };
  360. //数据限定
  361. public enum DataRelation
  362. {
  363. Lt,
  364. Gt,
  365. Lteq,
  366. Gteq,
  367. Eq,
  368. Neq,
  369. In,
  370. Out
  371. };
  372. }
  373. public class ProtocolPCIe
  374. {
  375. public enum DataRelation
  376. {
  377. Lt,
  378. Gt,
  379. Lteq,
  380. Gteq,
  381. Eq,
  382. Neq,
  383. In,
  384. Out
  385. };
  386. public enum PCIeVersion
  387. {
  388. PCIeV1_0,
  389. PCIeV2_0,
  390. }
  391. public enum SignalType
  392. {
  393. Single,//单端
  394. Difference//差分
  395. }
  396. public enum Condition
  397. {
  398. Command,
  399. STP,
  400. SDP,
  401. SeqID,
  402. TLPType,
  403. TC,
  404. AT,
  405. TransID,
  406. MsgCode,
  407. Address,
  408. Data,
  409. Decode_Error,
  410. EP,
  411. FormatError,
  412. ECRCError,
  413. LCRCError,
  414. End,
  415. EDB,
  416. }
  417. public enum TLPType
  418. {
  419. MRD=1,
  420. MRDLK,
  421. MWr,
  422. IORd,
  423. IOWr,
  424. CfgRd0,
  425. CfgWr0,
  426. CfgRd1,
  427. CfgWr1,
  428. TCfgRd,
  429. TCfgWr,
  430. Msg,
  431. MsgD,
  432. Cpl,
  433. CplD,
  434. CplLK,
  435. CplDLK,
  436. }
  437. }
  438. public class ProtocolMIL
  439. {
  440. public enum Condition
  441. {
  442. CMD,
  443. DATA,
  444. STATUS,
  445. CRCError,
  446. };
  447. //数据限定(触发条件:命令字、状态字、数据字)
  448. public enum Relation
  449. {
  450. Lt,
  451. Gt,
  452. Lteq,
  453. Gteq,
  454. Eq,
  455. Neq,
  456. In,
  457. Out
  458. };
  459. //位设置(用于所有需要选择0,1,x三个值中的一个的参数选项)
  460. public enum BitSetting
  461. {
  462. Bit_0,
  463. Bit_1,
  464. Bit_X
  465. };
  466. public enum SignalRate
  467. {
  468. SignalRate_1M,
  469. SignalRate_10M,
  470. Custom,
  471. }
  472. //数据限定(触发条件:空闲时间)
  473. public enum IdleTimeDataRelation
  474. {
  475. Lt,
  476. Gt,
  477. In,
  478. Out
  479. };
  480. //极性
  481. public enum Polarity
  482. {
  483. Neg,
  484. Pos,
  485. }
  486. //错误类型(触发条件:错误类型)
  487. public enum ErrorType
  488. {
  489. Oddevent, //奇偶校验
  490. Sync, //同步
  491. Manchester, //曼彻斯特
  492. Notcontinue //非连续数
  493. };
  494. }
  495. public class ProtocolUSB
  496. {
  497. public enum Condition
  498. {
  499. Sync,
  500. Reset,
  501. Pause,
  502. Resume,
  503. PackageEnd,
  504. TokenPackage,
  505. HandshakePackage,
  506. DataPackage,
  507. //Sof,
  508. Special,
  509. Error,
  510. }
  511. //信号速率
  512. public enum SignalRate
  513. {
  514. LowRate,
  515. FullRate,
  516. HighRate,
  517. }
  518. //令牌类型(触发条件选择“令牌包”时使用,PID之一)
  519. public enum TokenPackageType
  520. {
  521. Out=0b0001,
  522. SOF=0b0101,
  523. IN=0b1001,
  524. SETUP=0b1101,
  525. }
  526. public enum SpecialPacketType
  527. {
  528. //Pre=0b1100,
  529. Err=0b1100,
  530. Split=0b1000,
  531. Ping=0b0100,
  532. Remain=0b000,
  533. }
  534. //握手包类型(触发条件选择“握手包”时使用,PID之一)
  535. public enum HandshakePackageType
  536. {
  537. ACK=0b0010,
  538. NAK=0b1010,
  539. STALL=0b1110,
  540. Nyet = 0b0110,
  541. }
  542. //数据包类型(触发条件选择“数据包”时使用,PID之一)
  543. public enum DataPackageType
  544. {
  545. Data0=0b0011,
  546. Data1=0b1011,
  547. Data2=0b0111,
  548. MData=0b1111,
  549. }
  550. //错误类型(触发条件选择“错误”时使用)
  551. public enum ErrorPackageType
  552. {
  553. PIDCRC,
  554. CRC5,
  555. CRC16,
  556. BitFill
  557. }
  558. //数据限定(触发条件选择“数据包”、“SOF”、“令牌包”时使用)
  559. public enum DataRelation
  560. {
  561. Lt,
  562. Gt,
  563. Lteq,
  564. Gteq,
  565. Eq,
  566. Neq,
  567. In,
  568. Out
  569. }
  570. }
  571. public class ProtocolCAN
  572. {
  573. public enum Condition
  574. {
  575. FrameStart, //帧起始
  576. FrameType, //帧类型
  577. ID, //ID
  578. Data, //数据
  579. IDandData, //ID和数据
  580. FrameEnd, //帧结束
  581. Error,
  582. }
  583. //帧类型(触发条件选择"帧类型"时使用)
  584. public enum FrameType
  585. {
  586. Data,
  587. Remote,
  588. Error,
  589. Overload,
  590. }
  591. //ID帧类型(触发条件选择"ID"或"ID和数据"时使用)
  592. public enum IDFrameDirection
  593. {
  594. Read=0b00,
  595. Write=0b01,
  596. Both=0b11,
  597. }
  598. //信号类型
  599. public enum SignalType
  600. {
  601. CANL,
  602. CANH,
  603. RXTX,
  604. Diff
  605. }
  606. public enum ErrorPacketType
  607. {
  608. AckLose, //ACK丢失
  609. BitFillError, //位填充错
  610. }
  611. //ID标准(触发条件选择"ID"或"ID和数据"时使用)
  612. public enum IDStandard
  613. {
  614. Standard,
  615. Extended
  616. }
  617. ////数据限定(触发条件选择"数据"或"ID和数据"时使用)
  618. public enum DataRelation
  619. {
  620. Lt,
  621. Gt,
  622. Lteq,
  623. Gteq,
  624. Eq,
  625. Neq,
  626. }
  627. //信号速率
  628. public enum SignalRate
  629. {
  630. SignalRate_10k,
  631. SignalRate_20k,
  632. SignalRate_33_3k,
  633. SignalRate_50k,
  634. SignalRate_62_5k,
  635. SignalRate_83_3k,
  636. SignalRate_100k,
  637. SignalRate_125k,
  638. SignalRate_1m,
  639. SignalRate_custom //自定义速率
  640. }
  641. }
  642. public class ProtocolCANFD
  643. {
  644. public enum Condition
  645. {
  646. FrameStart, //帧起始
  647. FrameType, //帧类型
  648. ID, //ID
  649. Data, //数据
  650. IDandData, //ID和数据
  651. FrameEnd, //帧结束
  652. Error,
  653. }
  654. //帧类型(触发条件选择"帧类型"时使用)
  655. public enum FrameType
  656. {
  657. Data,
  658. Remote,
  659. VarFrame,
  660. Error,
  661. Overload
  662. }
  663. public enum ErrorPacketType
  664. {
  665. AckLose =10, //ACK丢失
  666. BitFillError, //位填充错
  667. }
  668. //ID帧数据方向(触发条件选择"ID"或"ID和数据"时使用)
  669. public enum IDFrameDirection
  670. {
  671. Read=0b00,
  672. Write=0b01,
  673. Both=0b11,
  674. }
  675. //信号类型
  676. public enum SignalType
  677. {
  678. CAN_FDL,
  679. CAN_FDH,
  680. RXTX,
  681. Diff
  682. }
  683. //ID标准(触发条件选择"ID"或"ID和数据"时使用)
  684. public enum IDStandard
  685. {
  686. Standard,
  687. Extended
  688. }
  689. ////数据限定(触发条件选择"数据"或"ID和数据"时使用)
  690. public enum DataRelation
  691. {
  692. Lt,
  693. Gt,
  694. Lteq,
  695. Gteq,
  696. Eq,
  697. Neq,
  698. }
  699. //信号速率
  700. public enum SDSignalRate
  701. {
  702. SignalRate_10k,
  703. SignalRate_20k,
  704. SignalRate_33_3k,
  705. SignalRate_50k,
  706. SignalRate_62_5k,
  707. SignalRate_83_3k,
  708. SignalRate_100k,
  709. SignalRate_125k,
  710. SignalRate_1m,
  711. SignalRate_custom //自定义速率
  712. }
  713. public enum FDSignalRate
  714. {
  715. SignalRate_1M,
  716. SignalRate_2M,
  717. SignalRate_3M,
  718. SignalRate_4M,
  719. SignalRate_5M,
  720. SignalRate_6M,
  721. SignalRate_7M,
  722. SignalRate_8M,
  723. SignalRate_custom //自定义速率
  724. }
  725. }
  726. public class ProtocolLIN
  727. {
  728. //LIN
  729. //触发条件
  730. public enum Condition
  731. {
  732. Start,
  733. ID,
  734. Data,
  735. IDCRCError,
  736. SUMCRCError
  737. }
  738. //数据限定(触发条件选择"数据"或"ID和数据"时使用)
  739. public enum DataRelation
  740. {
  741. Lt,
  742. Gt,
  743. Lteq,
  744. Gteq,
  745. Eq,
  746. Neq,
  747. In,
  748. Out
  749. }
  750. //LIN协议版本
  751. public enum Standard
  752. {
  753. V1=1,
  754. V2=2,
  755. }
  756. //位速率
  757. public enum BPS_ID
  758. {
  759. BPS_2400,
  760. BPS_4800,
  761. BPS_9600,
  762. BPS_19200,
  763. BPS_Special
  764. }
  765. //极性
  766. public enum Polarity
  767. {
  768. Neg,
  769. Pos
  770. }
  771. //奇偶位
  772. public enum PIncludeOddEven
  773. {
  774. Y,
  775. N
  776. }
  777. }
  778. public class ProtocolFlexRay
  779. {
  780. //FlexRay
  781. //触发条件
  782. public enum Condition
  783. {
  784. FrameHead,
  785. Indicator,
  786. ID,
  787. Circulate,
  788. // PkgHead,
  789. Data=5,
  790. IDAndData,
  791. FrameTail,
  792. Error
  793. }
  794. //源类型
  795. public enum SourceType
  796. {
  797. Tx_Rx,
  798. BP,
  799. BM,
  800. BDiff
  801. }
  802. //信号速率
  803. public enum SignalRate
  804. {
  805. SignalRate_1Mbps,
  806. SignalRate_5Mbps,
  807. SignalRate_10Mbps,
  808. SignalRate_Custom
  809. }
  810. //通道类型
  811. public enum ChannelType
  812. {
  813. A,
  814. B
  815. }
  816. //指示符(触发条件:指示符/包头)
  817. public enum Indicator
  818. {
  819. NormalFrame=1, //正常帧
  820. PayloadFrame, //净荷帧
  821. EmptyFrame, //空帧
  822. SyncFrame, //同步帧
  823. StartFrame, //启动帧
  824. //HeaderCRCError = 0, //正常帧
  825. //PayloadFrame = 1, //净荷帧
  826. //StaticEmptyFrame = 2, //静空帧
  827. //DynamicEmptyFrame = 3, //动空帧
  828. //SyncFrame = 4, //同步帧
  829. //StartFram = 5 //启动帧
  830. }
  831. //限定符(触发条件:标识/数据/标识和数据)
  832. public enum Realtion
  833. {
  834. Lt,
  835. Gt,
  836. Lteq,
  837. Gteq,
  838. Eq,
  839. Neq,
  840. In,
  841. Out
  842. }
  843. //帧尾(触发条件:帧尾)
  844. public enum FrameTail
  845. {
  846. Static = 7,
  847. Dynamic,
  848. Any
  849. }
  850. //错误(触发条件:错误)
  851. public enum FrameError
  852. {
  853. PkgHeadCRC =10,
  854. PkgTail,
  855. StaticEmptyFrame,
  856. DynamicEmptyFrame,
  857. SyncFrame,
  858. StartFrame
  859. }
  860. }
  861. public class ProtocolAudioBus
  862. {
  863. //I2S
  864. //触发条件
  865. public enum Condition
  866. {
  867. Sync,
  868. Data,
  869. };
  870. //时钟沿
  871. public enum ClockEdge
  872. {
  873. DownEdge,
  874. UpEdge
  875. };
  876. //协议类型
  877. public enum SubType
  878. {
  879. I2S,
  880. LJ,
  881. RJ,
  882. TDM
  883. };
  884. //同步极性
  885. public enum SyncPolarity
  886. {
  887. DownEdge,
  888. UpEdge
  889. };
  890. //数据极性
  891. public enum DataPolarity
  892. {
  893. Neg,
  894. Pos
  895. };
  896. //位顺序
  897. public enum MSB_LSB
  898. {
  899. LSB,
  900. MSB
  901. };
  902. //数据限定(触发条件选择"数据"时使用)
  903. public enum DataRelation
  904. {
  905. Lt,
  906. Gt,
  907. Lteq,
  908. Gteq,
  909. Eq,
  910. Neq,
  911. In,
  912. Out
  913. };
  914. //声道选择
  915. public enum SoundChannel
  916. {
  917. Left,
  918. Right
  919. };
  920. }
  921. public class ProtocolNRZ
  922. {
  923. public enum Condition
  924. {
  925. StartFrame,
  926. Data,
  927. EndFrame,
  928. }
  929. public enum MSB_LSB
  930. {
  931. MSB,
  932. LSB,
  933. };
  934. public enum DataRelation
  935. {
  936. Lt,
  937. Gt,
  938. Lteq,
  939. Gteq,
  940. Eq,
  941. Neq,
  942. In,
  943. Out
  944. };
  945. public enum Mode
  946. {
  947. NRZ,
  948. _8_10B,
  949. _64_66B,
  950. }
  951. public enum IdleLevel
  952. {
  953. Low,
  954. High,
  955. }
  956. public enum SignalType
  957. {
  958. Single,//单端
  959. Difference//差分
  960. }
  961. public enum SignalRate
  962. {
  963. Speed_650M,
  964. Speed_1G,
  965. Speed_6_5G,
  966. Custom,
  967. }
  968. }
  969. public class ProtocolSATA
  970. {
  971. //触发条件
  972. public enum Condition
  973. {
  974. ALIGN=1,
  975. SYNC,
  976. X_RDY,
  977. SOF,
  978. FIS_TYPE,
  979. DATA,
  980. Hold,
  981. CRC,
  982. EOF,
  983. WTRM,
  984. }
  985. public enum SignalType
  986. {
  987. Single,//单端
  988. Difference//差分
  989. }
  990. public enum SATAVersion
  991. {
  992. SATA1_0,
  993. SATA2_0,
  994. SATA3_0,
  995. }
  996. //基元触发标志(触发条件选择“基元触发”时使用)
  997. public enum PrimitiveFlag
  998. {
  999. CONTp,
  1000. DMATp,
  1001. HOLDp,
  1002. HOLDAp,
  1003. PMACKp,
  1004. PMNACKp,
  1005. PMREQ_Pp,
  1006. PMREQ_Sp,
  1007. R_ERRp,
  1008. R_IPp,
  1009. R_OKp,
  1010. R_RDYp,
  1011. SYNCp,
  1012. WTRMp,
  1013. X_RDp
  1014. }
  1015. //类型触发标志(触发条件选择“类型触发”时使用)
  1016. public enum FISTypeFlag
  1017. {
  1018. R_H2D=1,
  1019. R_D2H,
  1020. DMA_Act,
  1021. DMA_Set,
  1022. Data,
  1023. BIST,
  1024. PIO,
  1025. SDB,
  1026. R_SATA,
  1027. V_S,
  1028. }
  1029. public enum DataRelation
  1030. {
  1031. Lt,
  1032. Gt,
  1033. Lteq,
  1034. Gteq,
  1035. Eq,
  1036. Neq,
  1037. In,
  1038. Out
  1039. };
  1040. public enum DecodeType
  1041. {
  1042. IDLE_state,
  1043. D10_2_state,
  1044. ALIGNp_state,
  1045. SOFp_state,
  1046. FIS_TYPE_state,
  1047. FIS_DATA_state,
  1048. CRC_state,
  1049. EOFp_state,
  1050. CONTp,
  1051. DMATp,
  1052. HOLDp,
  1053. HOLDAp,
  1054. PMACKp,
  1055. PMNACKp,
  1056. PMREQ_Pp,
  1057. PMREQ_Sp,
  1058. R_ERRp,
  1059. R_IPp,
  1060. R_OKp,
  1061. R_RDYp,
  1062. SYNCp,
  1063. WTRMp,
  1064. X_RDp
  1065. }
  1066. }
  1067. public class ProtocolJTAG
  1068. {
  1069. //Jtag
  1070. public enum Condition
  1071. {
  1072. RUN_TEST_IDLE=1,
  1073. SELECT_DR_SCAN,
  1074. CAPTURE_DR,
  1075. SHIFT_DR,
  1076. EXIT1_DR,
  1077. PAUSE_DR,
  1078. EXIT2_DR,
  1079. UPDAET_DR,
  1080. SELECT_IR_SCAN,
  1081. CAPTURE_IR,
  1082. SHIFT_IR,
  1083. EXIT1_IR,
  1084. PAUSE_IR,
  1085. EXIT2_IR,
  1086. UPDATE_IR,
  1087. //TEST_LOGIC_REST,
  1088. //RESET = 0,
  1089. //RUN_TEST_IDLE = 1,
  1090. //SELECT_DR_SCAN = 2,
  1091. //SELECT_IR_SCAN = 3,
  1092. //CAPTURE_DR = 4,
  1093. //CAPTURE_IR = 5,
  1094. //SHIFT_DR = 6,
  1095. //SHIFT_IR = 7,
  1096. //EXIT1_DR = 8,
  1097. //EXIT1_IR = 9,
  1098. //PAUSE_DR = 10,
  1099. //PAUSE_IR = 11,
  1100. //EXIT2_DR = 12,
  1101. //EXIT2_IR = 13,
  1102. //UPDATE_DR = 14,
  1103. //UPDATE_IR = 15
  1104. }
  1105. public enum BaudRateList
  1106. {
  1107. //待修改
  1108. BaudRateList_0,
  1109. BaudRateList_1
  1110. }
  1111. ////数据通道(触发条件选择"数据"触发时使用)(触发数据通道)
  1112. //public enum TriggerJtagDataChannel
  1113. //{
  1114. // JtagDataChannel_TDI = 0,
  1115. // JtagDataChannel_TDO = 1
  1116. //};
  1117. //解码通道(解码数据通道)
  1118. public enum DecodeChannel
  1119. {
  1120. TDI,
  1121. TDO
  1122. }
  1123. //数据限定(触发条件选择"数据"或"ID和数据"时使用)
  1124. public enum DataRelation
  1125. {
  1126. Eq,
  1127. Gt,
  1128. Lt,
  1129. }
  1130. }
  1131. public class ProtocolSPMI
  1132. {
  1133. public enum Condition
  1134. {
  1135. WriteExRegister,
  1136. ReadExRegister,
  1137. WriteExRegisterLong,
  1138. ReadExRegisterLong,
  1139. WriteRegister,
  1140. ReadRegister,
  1141. MasterWrite,
  1142. MasterRead,
  1143. MasterWriteDD,
  1144. MasterReadDD,
  1145. WriteRegister0,
  1146. Reset,
  1147. Dormancy,
  1148. Stop,
  1149. Wakeup,
  1150. Identify,
  1151. BusRightTransfer,
  1152. Parity_Error
  1153. }
  1154. public enum CheckType
  1155. {
  1156. Odd,
  1157. Even
  1158. }
  1159. public enum Version
  1160. {
  1161. SMPI1,
  1162. SMPI2
  1163. }
  1164. }
  1165. public class ProtocolEventInfo
  1166. {
  1167. public Int32 Index { get; set; }
  1168. public Double TimeByPs { get; set; }
  1169. public List<(Byte[] Data, UInt32 BitCount)> EventInofs { get; } = new List<(Byte[] Data, UInt32 BitCount)>();
  1170. public override Boolean Equals(Object? obj)
  1171. {
  1172. if(obj is ProtocolEventInfo info)
  1173. {
  1174. return info.Index == Index && TimeByPs == info.TimeByPs && EventInofs.Except(info.EventInofs).Count() == 0;
  1175. }
  1176. else
  1177. {
  1178. return false;
  1179. }
  1180. }
  1181. public override Int32 GetHashCode()
  1182. {
  1183. return base.GetHashCode();
  1184. }
  1185. }
  1186. }