12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace Uestc.Auto6.Dso.ComModel
- {
- public partial record HdMessage
- {
- #region 解码触发结构参数
- public record TrigDecoderOptions(SerialProtocolType ProtocolType)
- {
- public ITrigDecoderConditionsOptions? DecoderConditionsOptions
- {
- get;
- init;
- }
- public IDecoderOptions? ProtocolOptions
- {
- get;
- init;
- }
- }
- public interface ITrigDecoderConditionsOptions
- {
- }
- public record TrigCloseConditionsOptions() : ITrigDecoderConditionsOptions
- {
- }
- public record TrigNRZConditionOptions(ProtocolNRZ.Condition Condition):ITrigDecoderConditionsOptions
- {
- public ProtocolNRZ.DataRelation Relation { get; init; }
- public Byte Data { get; init; }
- }
- public record TrigFlexRayConditionOptions(ProtocolFlexRay.Condition Condition):ITrigDecoderConditionsOptions
- {
- public ProtocolFlexRay.Realtion Relation
- {
- get;
- init;
- }
- public UInt16 ID
- {
- get;
- init;
- }
- public Byte[]? Data
- {
- get;
- init;
- }
- public Byte CycleData
- {
- get;
- init;
- }
- public Byte ByteCount
- {
- get;init;
- }
- public ProtocolFlexRay.Indicator Indicator
- {
- get;
- init;
- }
- public ProtocolFlexRay.FrameError FrameError
- {
- get;init;
- }
- public ProtocolFlexRay.FrameTail FrameTail
- {
- get;init;
- }
- }
- public record TrigEthernetConditionsOptions(ProtocolEthernet.Condition Condition):ITrigDecoderConditionsOptions
- {
- public Byte Data
- {
- get;
- init;
- }
- public Byte[]? SrcMAC
- {
- get;
- init;
- }
- public Byte[]? DestMAC
- {
- get;
- init;
- }
- public ProtocolEthernet.DataRelation Relation
- {
- get;
- init;
- }
- }
- public record TrigLINConditionsOptions(ProtocolLIN.Condition Condition) : ITrigDecoderConditionsOptions
- {
- public ProtocolLIN.DataRelation DataRelation
- {
- get;
- init ;
- }
- public Byte ID
- {
- get;
- init;
- }
- public Byte Data
- {
- get; init;
- }
- }
- public record TrigRS232ConditionsOptions(ProtocolRS232.Conditions Conditions) : ITrigDecoderConditionsOptions
- {
- public PulseCondition Compare
- {
- get;
- init;
- }
- public Char Data
- {
- get;
- init;
- }
- public Char EOPChar
- {
- get;
- init;
- }
- }
- public record TrigPCIeConditionsOptions(ProtocolPCIe.Condition Condition):ITrigDecoderConditionsOptions
- {
- public ProtocolPCIe.TLPType TLPType
- {
- get;
- init;
- }
- public UInt16 SeqID
- {
- get;
- init;
- }
- public Byte TCData
- {
- get;
- init;
- }
- public Byte ATData
- {
- get;
- init;
- }
- public Byte TagData
- {
- get;
- init;
- }
- public UInt16 ReqIDData
- {
- get;
- init;
- }
- public Byte MsgCodeData
- {
- get;
- init;
- }
- public Byte DataLenght
- {
- get;
- init;
- }
- public Int64 Data
- {
- get;
- init;
- }
- public Int64 AddressData
- {
- get;
- init;
- }
- public ProtocolPCIe.DataRelation DataRelation
- {
- get;init;
- }
- }
- public record TrigMILConditionsOptions(ProtocolMIL.Condition Condition):ITrigDecoderConditionsOptions
- {
- }
- public record TrigI2SConditionsOptions(ProtocolAudioBus.Condition Condition):ITrigDecoderConditionsOptions
- {
- public UInt32 Data
- {
- get;init;
- }
- public ProtocolAudioBus.DataRelation DataRelation
- {
- get;init;
- }
- }
- public record TrigSPMIConditionsOptions(ProtocolSPMI.Condition Condition):ITrigDecoderConditionsOptions
- {
- }
- public record TrigI2CConditionsOptions(ProtocolI2C.Condition Condition) : ITrigDecoderConditionsOptions
- {
- /// <summary>
- /// 数据方向
- /// 当<see cref="Condition"/>的值为<see cref="ProtocolI2C.I2CCondition.Address"/>时有效
- /// </summary>
- public ProtocolI2C.DataDirection Direction
- {
- get;
- init;
- }
- /// <summary>
- /// 地址值
- /// </summary>
- public UInt16 AddressData
- {
- get;
- init;
- }
- /// <summary>
- /// 比较方式
- /// </summary>
- public ProtocolI2C.DataRelation Relation
- {
- get;
- init;
- }
- /// <summary>
- /// 字节数
- /// 当<see cref="Condition"/>的值为<see cref="ProtocolI2C.I2CCondition.Data"/>时有效
- /// </summary>
- public Byte DataBytesCount
- {
- get;
- init;
- }
- /// <summary>
- /// 字节号,从0开始
- /// 当<see cref="Condition"/>的值为<see cref="ProtocolI2C.I2CCondition.Data"/>时有效
- /// </summary>
- public Int32 DataByteIndex
- {
- get;
- init;
- }
- /// <summary>
- /// 数据
- /// 当<see cref="Condition"/>的值为<see cref="ProtocolI2C.I2CCondition.Data"/>时有效
- /// </summary>
- public Int64 Data
- {
- get;
- init;
- }
- }
- public record TrigSATAConditionsOptions(ProtocolSATA.Condition Condition) :ITrigDecoderConditionsOptions
- {
- public Int64 Data
- {
- get;init;
- }
- public ProtocolSATA.DataRelation Relation
- {
- get;init;
- }
- public Byte DataCount { get; init; }
- public ProtocolSATA.FISTypeFlag FISType
- {
- get; init;
- }
- }
- public record TrigSPIConditionsOptions(ComModel.ProtocolSPI.Condition Condition) : ITrigDecoderConditionsOptions
- {
- public ComModel.ProtocolSPI.DataTriggerSource DataSource
- {
- get;
- init;
- }
- public Int32 FrameCount
- {
- get;
- init;
- }
- public Int64 FrameData
- {
- get;
- init;
- }
- }
- public record TrigARINC429ConditionsOptions(ProtocolARINC429.Condition Condition) : ITrigDecoderConditionsOptions
- {
- public UInt32 SSM
- {
- get;
- init;
- }
- public UInt32 SDI
- {
- get;
- init;
- }
- public UInt32 Label
- {
- get;
- init;
- }
- public UInt32 Data
- {
- get;
- init;
- }
- public ProtocolARINC429.DataRelation DataRelation
- {
- get;
- init;
- }
- }
- public record TrigCANFDConditionsOptions(ProtocolCANFD.Condition Condition) : ITrigDecoderConditionsOptions
- {
- public ProtocolCANFD.FrameType FrameType
- {
- get;
- init;
- }
- public ProtocolCANFD.IDStandard IDStandard
- {
- get;
- init;
- }
- public ProtocolCANFD.IDFrameDirection IDFrameDirection
- {
- get;
- init;
- }
- public Int32 StandardID
- {
- get;
- init;
- }
- public Int32 ExtendedID
- {
- get; init;
- }
- public Int32 ByteCount
- {
- get; init;
- }
- public Int32 ByteIndex
- {
- get; init;
- }
- public Int64 Data
- {
- get; init;
- }
- public ProtocolCANFD.DataRelation DataRelation
- {
- get; init;
- }
- public ProtocolCANFD.ErrorPacketType ErrorPacketType
- {
- get;init;
- }
- }
- public record TrigUSBConditionsOptions(ProtocolUSB.Condition Condition):ITrigDecoderConditionsOptions
- {
- public ProtocolUSB.DataRelation DataRelation
- {
- get;init;
- }
- public UInt16 Data
- {
- get;init;
- }
- public ProtocolUSB.TokenPackageType TokenPackageType
- {
- get;init;
- }
- public ProtocolUSB.HandshakePackageType HandshakePackageType
- {
- get;init;
- }
- public ProtocolUSB.DataPackageType DataPackageType
- {
- get;init;
- }
- public ProtocolUSB.ErrorPackageType ErrorPackageType
- {
- get;init;
- }
- public ProtocolUSB.SpecialPacketType SpecialPacketType
- {
- get;init;
- }
- }
- public record TrigCANConditionsOptions(ProtocolCAN.Condition Condition) : ITrigDecoderConditionsOptions
- {
- public ProtocolCAN.FrameType FrameType
- {
- get;
- init;
- }
- public ProtocolCAN.IDStandard IDStandard
- {
- get;
- init;
- }
- public ProtocolCAN.IDFrameDirection IDFrameDirection
- {
- get;
- init;
- }
- public Int32 StandardID
- {
- get; init;
- }
- public Int32 ExtendedID
- {
- get; init;
- }
- public ProtocolCAN.DataRelation DataRelation
- {
- get; init;
- }
- public Int32 ByteIndex
- {
- get; init;
- }
- public Int32 ByteCount
- {
- get; init;
- }
- public Int64 Data
- {
- get; init;
- }
- public ProtocolCAN.ErrorPacketType ErrorPacketType
- {
- get;init;
- }
- }
- public record TrigJTAGConditionsOptions(ComModel.ProtocolJTAG.Condition Condition) : ITrigDecoderConditionsOptions
- {
- public ComModel.ProtocolJTAG.DataRelation DataRelation
- {
- get;
- init;
- }
- public Byte[]? Data
- {
- get;
- init;
- }
- }
- public record TrigSENTConditionsOptions(ProtocolSENT.Condition Condition) : ITrigDecoderConditionsOptions
- {
- public ProtocolSENT.DataRelation DataRelation
- {
- get;
- init;
- }
- public UInt32 Data
- {
- get;
- init;
- }
- }
- #endregion 解码触发结构参数
- #region 解码结构参数
- public record DecoderOptions(Boolean Active, SerialProtocolType ProtocolType)
- {
- public Double Position
- {
- get;
- init;
- }
- public IDecoderOptions? ProtocolOptions
- {
- get;
- init;
- }
- }
- public interface IDecoderOptions
- {
- public List<(ChannelId ChannelId, Double Threshold1, Double Threshold2)> GetThresholdInfos();
- }
- public record ProtocolCloseOptions() : IDecoderOptions
- {
- //无参数
- public List<(ChannelId ChannelId, Double Threshold1, Double Threshold2)> GetThresholdInfos()
- {
- return new List<(ChannelId ChannelId, Double Threshold1, Double Threshold2)>();
- }
- }
- public record ProtocolEthernetOptions():IDecoderOptions
- {
- public ProtocolEthernet.EthernetVersion Version
- {
- get;
- init;
- }
- /// <summary>
- /// 数据源的阈值
- /// </summary>
- public Double Signal1ThresholdH
- {
- get;
- init;
- }
- /// <summary>
- /// 数据源的阈值
- /// </summary>
- public Double Signal1ThresholdL
- {
- get;
- init;
- }
- public ChannelId SignalInput1
- {
- get;
- init;
- }
- public ChannelId SignalInput2
- {
- get;
- init;
- }
- public ProtocolEthernet.SignalType SignalType
- {
- get;
- init;
- }
- public ProtocolEthernet.EthernetSpeed Speed
- {
- get;
- init;
- }
- public Double Signal1Threshold
- {
- get;
- init;
- }
- public Double Signal2Threshold
- {
- get;
- init;
- }
- public Byte QFlag
- {
- get;
- init;
- }
- public List<(ChannelId ChannelId, Double Threshold1, Double Threshold2)> GetThresholdInfos()
- {
- var tempinfos = new List<(ChannelId ChannelId, Double Threshold1, Double Threshold2)>();
- if(SignalType == ProtocolEthernet.SignalType.Single)
- {
- tempinfos.Add((SignalInput1, Signal1Threshold, 0));
- tempinfos.Add((SignalInput2, Signal2Threshold, 0));
- }
- else
- {
- tempinfos.Add((SignalInput1, Signal1ThresholdH, Signal1ThresholdL));
- }
- return tempinfos;
- }
- }
- public record ProtocolUSBOptions():IDecoderOptions
- {
- public List<(ChannelId ChannelId, Double Threshold1, Double Threshold2)> GetThresholdInfos()
- {
- return new List<(ChannelId ChannelId, Double Threshold1, Double Threshold2)>()
- {
- (Source1,Source1Threshold,0),
- (Source2,Source2Threshold,0),
- };
- }
- public ChannelId Source1
- {
- get;init;
- }
- public ChannelId Source2
- {
- get;init;
- }
- public Double Source1Threshold
- {
- get;init;
- }
- public Double Source2Threshold
- {
- get;init;
- }
- public ProtocolUSB.SignalRate SignalRate
- {
- get;init;
- }
- public UInt16 ByteCount
- {
- get;init;
- }
- }
- public record ProtocolRS232Options() : IDecoderOptions
- {
- public List<(ChannelId ChannelId, Double Threshold1, Double Threshold2)> GetThresholdInfos()
- {
- var tempinfos = new List<(ChannelId ChannelId, Double Threshold1, Double Threshold2)>();
- if (SignalType == ProtocolRS232.SignalType.Single)
- {
- tempinfos.Add((Source, Threshold, 0));
- }
- else
- {
- tempinfos.Add((Source, Threshold, 0));
- tempinfos.Add((SourceL, Threshold, 0));
- }
- return tempinfos;
- }
- public ChannelId Source
- {
- get;
- init;
- }
- public ChannelId SourceL
- {
- get;
- init;
- }
- public ProtocolRS232.DataBitWidth DataBitWidth
- {
- get;
- init;
- }
- public ProtocolRS232.OddEvenCheck OddEvenCheck
- {
- get;
- init;
- }
- public ProtocolRS232.StopBit StopBit
- {
- get;
- init;
- }
- public ProtocolRS232.MSB_LSB BitSeq
- {
- get;
- init;
- }
- public ProtocolRS232.Polarity Polarity
- {
- get;
- init;
- }
- public UInt32 Baud
- {
- get;
- init;
- }
- public ProtocolRS232.SignalType SignalType
- {
- get;
- init;
- }
- public Double Threshold
- {
- get;init;
- }
- }
- public record ProtocolPCIeOptions():IDecoderOptions
- {
- public List<(ChannelId ChannelId, Double Threshold1, Double Threshold2)> GetThresholdInfos()
- {
- var tempinfos = new List<(ChannelId ChannelId, Double Threshold1, Double Threshold2)>();
- if (SignalType == ProtocolPCIe.SignalType.Single)
- {
- tempinfos.Add((SignalInput, Threshold, 0));
- }
- else
- {
- tempinfos.Add((SignalInput, Threshold, 0));
- tempinfos.Add((SignalIutput1, Threshold, 0));
- }
- return tempinfos;
- }
- public ChannelId SignalInput
- {
- get;init;
- }
- public ChannelId SignalIutput1
- {
- get;init;
- }
- public ProtocolPCIe.PCIeVersion Version
- {
- get;init;
- }
- public ProtocolPCIe.SignalType SignalType
- {
- get;init;
- }
- public Double Threshold
- {
- get;init;
- }
- public UInt16 ByetsCount
- {
- get;init;
- }
- }
- public record ProtocolI2SOptions():IDecoderOptions
- {
- public List<(ChannelId ChannelId, Double Threshold1, Double Threshold2)> GetThresholdInfos()
- {
- return new List<(ChannelId ChannelId, Double Threshold1, Double Threshold2)>()
- {
- (SCL,SCLThreshold,0),
- (WS,WSThreshold,0),
- (SDA,SDAThreshold,0),
- };
- }
- public ProtocolAudioBus.SubType SubType
- {
- get;
- init;
- }
- public ProtocolAudioBus.SyncPolarity SyncPolarity
- {
- get;
- init;
- }
- public ProtocolAudioBus.ClockEdge ClockEdge
- {
- get; init;
- }
- public ProtocolAudioBus.DataPolarity DataPolarity
- {
- get; init;
- }
- public ProtocolAudioBus.MSB_LSB MSB_LSB
- {
- get; init;
- }
- public ProtocolAudioBus.SoundChannel SoundChannel
- {
- get; init;
- }
- public Int32 BitDelayCount
- {
- get; init;
- }
- public Int32 DataBitCount
- {
- get; init;
- }
- public Int32 ClockBitCount
- {
- get; init;
- }
- public Int32 SoundChannelCount
- {
- get; init;
- }
- public ChannelId SCL
- {
- get;init;
- }
- public ChannelId WS
- {
- get;init;
- }
- public ChannelId SDA
- {
- get;init;
- }
- public Double SCLThreshold
- {
- get;init;
- }
- public Double WSThreshold
- {
- get;init;
- }
- public Double SDAThreshold
- {
- get;init;
- }
- }
- public record ProtocolI2COptions() : IDecoderOptions
- {
- public List<(ChannelId ChannelId, Double Threshold1, Double Threshold2)> GetThresholdInfos()
- {
- return new List<(ChannelId ChannelId, Double Threshold1, Double Threshold2)>()
- {
- (SCLK,SCLKThreshold,0),
- (SDA,SDAThreshold,0),
- };
- }
- public ChannelId SCLK
- {
- get;
- init;
- }
- public ChannelId SDA
- {
- get;
- init;
- }
- public Double SCLKThreshold
- {
- get;
- init;
- }
- public Double SDAThreshold
- {
- get;
- init;
- }
- public ProtocolI2C.AddrBitWidth BitWidth
- {
- get;init;
- }
- }
- public record ProtocolSPIOptions() : IDecoderOptions
- {
- public List<(ChannelId ChannelId, Double Threshold1, Double Threshold2)> GetThresholdInfos()
- {
- var tempinfos = new List<(ChannelId ChannelId, Double Threshold1, Double Threshold2)>();
- tempinfos.Add((CLK, CLKThreshold, 0));
- if(FramingMode == ProtocolSPI.FramingMode.Slave)
- {
- tempinfos.Add((CS, CSThreshold, 0));
- }
- switch(DecodeChannel)
- {
- case ProtocolSPI.DecodeChannel.MOMI:
- tempinfos.Add((MISO, MISOThreshold, 0));
- tempinfos.Add((MOSI, MISOThreshold, 0));
- break;
- case ProtocolSPI.DecodeChannel.MOSI:
- tempinfos.Add((MOSI, MOSIThreshold, 0));
- break;
- case ProtocolSPI.DecodeChannel.MISO:
- tempinfos.Add((MISO, MISOThreshold, 0));
- break;
- }
- return tempinfos;
- }
- public ComModel.ProtocolSPI.FramingMode FramingMode
- {
- get;
- init;
- }
- public ComModel.ProtocolSPI.DecodeChannel DecodeChannel
- {
- get;
- init;
- }
- public Int32 FrameCount
- {
- get;
- init;
- }
- public ComModel.ChannelId CLK
- {
- get;
- init;
- }
- public ComModel.ChannelId MOSI
- {
- get;
- init;
- }
- public ComModel.ChannelId MISO
- {
- get;
- init;
- }
- public ComModel.ChannelId CS
- {
- get;
- init;
- }
- public Double IdleTime
- {
- get;
- init;
- }
- public Double CLKThreshold
- {
- get;
- init;
- }
- public Double MOSIThreshold
- {
- get;
- init;
- }
- public Double MISOThreshold
- {
- get;
- init;
- }
- public ComModel.ProtocolSPI.MSB_LSB ByteOrder
- {
- get;
- init;
- }
- public ComModel.ProtocolSPI.Polarity MISOPolarity
- {
- get;
- init;
- }
- public ComModel.ProtocolSPI.Polarity MOSIPolarity
- {
- get;
- init;
- }
- public ComModel.ProtocolSPI.LevelState CSLevelState
- {
- get;
- init;
- }
- public ComModel.ProtocolSPI.EdgeState CLKState
- {
- get;
- init;
- }
- public Double CSThreshold
- {
- get;
- init;
- }
- }
- public record ProtocolSATAOptions():IDecoderOptions
- {
- public List<(ChannelId ChannelId, Double Threshold1, Double Threshold2)> GetThresholdInfos()
- {
- var tempinfos = new List<(ChannelId ChannelId, Double Threshold1, Double Threshold2)>();
- tempinfos.Add((Source, Threshold, 0));
- return tempinfos;
- }
- public ProtocolSATA.SATAVersion Version
- {
- get;init;
- }
- public ChannelId Source
- {
- get;init;
- }
- public ChannelId Source1
- {
- get;init;
- }
- public Double Threshold
- {
- get;init;
- }
- public UInt16 BytesCount
- {
- get;init;
- }
- }
- public record ProtocolARIN429Options() : IDecoderOptions
- {
- public List<(ChannelId ChannelId, Double Threshold1, Double Threshold2)> GetThresholdInfos()
- {
- var tempinfos = new List<(ChannelId ChannelId, Double Threshold1, Double Threshold2)>();
- tempinfos.Add((SignalInputA, ThresholdH, ThresholdL));
- if (InputMode == ProtocolARINC429.InputMode.Diff)
- {
- tempinfos.Add((SignalInputB, ThresholdH, ThresholdL));
- }
- return tempinfos;
- }
- public ProtocolARINC429.DecodeMode DecodeMode
- {
- get;
- init;
- }
- public ChannelId SignalInputA
- {
- get; init;
- }
- public ProtocolARINC429.InputMode InputMode
- {
- get;init;
- }
- public ChannelId SignalInputB
- {
- get;init;
- }
- public Int32 Baud//自定义速率
- {
- get; init;
- }
- /// <summary>
- /// 数据源的阈值
- /// </summary>
- public Double ThresholdH
- {
- get; init;
- }
- public Double ThresholdL
- {
- get; init;
- }
- }
- public record ProtocolSPMIOptions() : IDecoderOptions
- {
- public List<(ChannelId ChannelId, Double Threshold1, Double Threshold2)> GetThresholdInfos()
- {
- return new List<(ChannelId ChannelId, Double Threshold1, Double Threshold2)>()
- {
- (SCLK,CLKThreshold,0),
- (SData,DataThreshold,0),
- };
- }
- public Double CLKThreshold { get; init; }
- public Double DataThreshold { get; init; }
- public ChannelId SData { get; init; }
- public ChannelId SCLK { get; init; }
- public ProtocolSPMI.Version Version { get; init; }
- public ProtocolSPMI.CheckType CheckType { get; init; }
- }
- public record ProtocolMILOptions():IDecoderOptions
- {
- public List<(ChannelId ChannelId, Double Threshold1, Double Threshold2)> GetThresholdInfos()
- {
- return new List<(ChannelId ChannelId, Double Threshold1, Double Threshold2)>()
- {
- (Source,Threshold,0),
- };
- }
- public Int32 SignalRate { get; init; }
- public Double Threshold { get; init; }
- public ChannelId Source { get; init; }
- public ProtocolMIL.Polarity Polarity { get; init; }
- }
- public record ProtocolNRZOptions():IDecoderOptions
- {
- public List<(ChannelId ChannelId, Double Threshold1, Double Threshold2)> GetThresholdInfos()
- {
- var tempinfos = new List<(ChannelId ChannelId, Double Threshold1, Double Threshold2)>();
- if(SignalType == ProtocolNRZ.SignalType.Single)
- {
- tempinfos.Add((Source1, Threshold, 0));
- }
- else
- {
- tempinfos.Add((Source1, Threshold, 0));
- tempinfos.Add((Source2, Threshold, 0));
- }
- return tempinfos;
- }
- public Int64 SignalRate { get; init; }
- public ProtocolNRZ.SignalType SignalType { get; init; }
- public ChannelId Source1 { get; init; }
- public ChannelId Source2 { get; init; }
- public Double Threshold { get; init; }
- public ProtocolNRZ.MSB_LSB MSB_LSB { get; init; }
- public UInt32 IdleTime { get; init; }
- public ProtocolNRZ.IdleLevel IdleLevel { get; init; }
- public ProtocolNRZ.Mode Mode { get; init; }
- }
- public record ProtocolCANOptions() : IDecoderOptions
- {
- public List<(ChannelId ChannelId, Double Threshold1, Double Threshold2)> GetThresholdInfos()
- {
- var tempinfos = new List<(ChannelId ChannelId, Double Threshold1, Double Threshold2)>();
- if (SignalType == ProtocolCAN.SignalType.Diff)
- {
- tempinfos.Add((SignalInput1, SDAThreshold, 0));
- tempinfos.Add((SignalInput2, SDAThreshold, 0));
- }
- else
- {
- tempinfos.Add((SignalInput1, SDAThreshold, 0));
- }
- return tempinfos;
- }
- public Int64 SignalRate
- {
- get;
- init;
- }
- //信号类型
- public ProtocolCAN.SignalType SignalType
- {
- get;
- init;
- }
- //输入1
- public ChannelId SignalInput1
- {
- get; init;
- }
- //输入2(信号类型选择"差分"时使用)
- public ChannelId SignalInput2
- {
- get; init;
- }
- //采样点
- public Int32 SamplePoint
- {
- get; init;
- }
- /// <summary>
- /// 数据源的阈值
- /// </summary>
- public Double SDAThreshold
- {
- get; init;
- }
- }
- public record ProtocolCANFDOptions() : IDecoderOptions
- {
- public List<(ChannelId ChannelId, Double Threshold1, Double Threshold2)> GetThresholdInfos()
- {
- var tempinfos = new List<(ChannelId ChannelId, Double Threshold1, Double Threshold2)>();
- if (SignalType == ProtocolCANFD.SignalType.Diff)
- {
- tempinfos.Add((SignalInput1, SDAThreshold, 0));
- tempinfos.Add((SignalInput2, SDAThreshold, 0));
- }
- else
- {
- tempinfos.Add((SignalInput1, SDAThreshold, 0));
- }
- return tempinfos;
- }
- public Int64 SDSignalRate
- {
- get;
- init;
- }
- public Int64 FDSignalRate
- {
- get;
- init;
- }
- //信号类型
- public ProtocolCANFD.SignalType SignalType
- {
- get;
- init;
- }
- //输入1
- public ChannelId SignalInput1
- {
- get; init;
- }
- //输入2(信号类型选择"差分"时使用)
- public ChannelId SignalInput2
- {
- get; init;
- }
- //采样点
- public Int32 SamplePoint
- {
- get; init;
- }
- /// <summary>
- /// 数据源的阈值
- /// </summary>
- public Double SDAThreshold
- {
- get; init;
- }
- }
- public record ProtocolJTAGOptions : IDecoderOptions
- {
- public List<(ChannelId ChannelId, Double Threshold1, Double Threshold2)> GetThresholdInfos()
- {
- var tempinfos = new List<(ChannelId ChannelId, Double Threshold1, Double Threshold2)>();
- tempinfos.Add((TCK, TCKThreshold, 0));
- tempinfos.Add((TDI, TDIThreshold, 0));
- tempinfos.Add((TDO, TDOThreshold, 0));
- tempinfos.Add((TMS, TMSThreshold, 0));
- return tempinfos;
- }
- public ChannelId TCK
- {
- get;
- init;
- }
- public Double TCKThreshold
- {
- get;
- init;
- }
- public ChannelId TMS
- {
- get; init;
- }
- public Double TMSThreshold
- {
- get; init;
- }
- public ChannelId TDI
- {
- get; init;
- }
- public Double TDIThreshold
- {
- get; init;
- }
- public ChannelId TDO
- {
- get; init;
- }
- public Double TDOThreshold
- {
- get; init;
- }
- public ComModel.ProtocolJTAG.DecodeChannel DecodeChannel
- {
- get; init;
- }
- public UInt32 BitRate
- {
- get; init;
- }
- }
- public record ProtocolLINOptions:IDecoderOptions
- {
- public List<(ChannelId ChannelId, Double Threshold1, Double Threshold2)> GetThresholdInfos()
- {
- var tempinfos = new List<(ChannelId ChannelId, Double Threshold1, Double Threshold2)>();
- tempinfos.Add((Source, Threshold, 0));
- return tempinfos;
- }
- public ChannelId Source
- {
- get;
- init ;
- }
- public ProtocolLIN.Standard Standard
- {
- get;
- init ;
- }
- public ProtocolLIN.Polarity Polarity
- {
- get; init;
- }
- public ProtocolLIN.PIncludeOddEven PIncludeOddEven
- {
- get; init;
- }
- public Double Threshold
- {
- get; init;
- }
- public Int32 BPS
- {
- get; init;
- }
- public Int32 DataCount
- {
- get;init;
- }
- }
- public record ProtocolFlexRayOptions : IDecoderOptions
- {
- public List<(ChannelId ChannelId, Double Threshold1, Double Threshold2)> GetThresholdInfos()
- {
- var tempinfos = new List<(ChannelId ChannelId, Double Threshold1, Double Threshold2)>();
- if (SourceType == ProtocolFlexRay.SourceType.BDiff)
- {
- tempinfos.Add((Source, Threshold, 0));
- tempinfos.Add((SourceL, Threshold, 0));
- }
- else
- {
- tempinfos.Add((Source, Threshold, 0));
- }
- return tempinfos;
- }
- public ChannelId Source
- {
- get;
- init;
- }
- public ChannelId SourceL
- {
- get;init;
- }
- public ProtocolFlexRay.ChannelType ChannelType
- {
- get;
- init;
- }
- public ProtocolFlexRay.SourceType SourceType
- {
- get; init;
- }
- public Int64 SignalRate
- {
- get; init;
- }
- public Double Threshold
- {
- get; init;
- }
- public Int32 ByteOffset
- {
- get;init;
- }
- public Int32 PayLoadLength
- {
- get;init;
- }
- }
- public record ProtocolSENTOptions : IDecoderOptions
- {
- public List<(ChannelId ChannelId, Double Threshold1, Double Threshold2)> GetThresholdInfos()
- {
- var tempinfos = new List<(ChannelId ChannelId, Double Threshold1, Double Threshold2)>();
- tempinfos.Add((Source, Threshold, 0));
- return tempinfos;
- }
- public ComModel.ChannelId Source
- {
- get;
- init;
- }
- public ProtocolSENT.PauseBit PauseBit
- {
- get;
- init;
- }
- public ProtocolSENT.SENTCRC CRC
- {
- get; init;
- }
- public ProtocolSENT.DataLength DataLength
- {
- get; init;
- }
- public ProtocolSENT.Polarity Polarity
- {
- get; init;
- }
- public Int64 SignalRate
- {
- get; init;
- }
- public Double Threshold
- {
- get; init;
- }
- }
- #endregion 解码结构参数
- }
- }
|