static InterpretedAtrAdapter() { IPropertyAdapterFactory <InterpretedAtrAdapter> PropertyFactory = ObservableObject.GetPropertyAdapterFactory <InterpretedAtrAdapter>(); InterpretedAtrAdapter.globalInterfaceBytesAdapter = PropertyFactory.Create( nameof(InterpretedAtrAdapter.GlobalInterfaceBytes), instance => new GlobalInterfaceBytesAdapter(instance.atr.GlobalInterfaceBytes) ); InterpretedAtrAdapter.protocolParametersAdapter = PropertyFactory.Create( nameof(InterpretedAtrAdapter.ProtocolParameters), instance => instance.atr.ProtocolParameters, (instance, parameter) => ProtocolParameterAdapterBase.GetObject(parameter) ); InterpretedAtrAdapter.historicalCharactersAdapter = PropertyFactory.Create( nameof(InterpretedAtrAdapter.HistoricalCharacters), instance => AtrHistoricalBytesAdapterBase.GetObject(instance.atr.HistoricalCharacters, instance) ); InterpretedAtrAdapter.possibleTypesToIndicateAdditionallyAdapter = PropertyFactory.Create( nameof(InterpretedAtrAdapter.PossibleTypesToIndicateAdditionally), instance => EnumerationAdapter <ProtocolType> .Items.Where( type => type != ProtocolType.RfuF && instance.atr.ProtocolParameters.Any(_ => _.ProtocolType == type) == false ) ); }
static T1ProtocolParameterAdapter() { IPropertyAdapterFactory <T1ProtocolParameterAdapter> PropertyFactory = ObservableObject.GetPropertyAdapterFactory <T1ProtocolParameterAdapter>(); T1ProtocolParameterAdapter.informationFieldSizeAdapter = PropertyFactory.Create( nameof(T1ProtocolParameterAdapter.InformationFieldSize), instance => instance.protocolParameters.IfscValue, (instance, value) => instance.protocolParameters.Ifsc = value ); T1ProtocolParameterAdapter.informationFieldSizeIsDefaultAdapter = PropertyFactory.Create( nameof(T1ProtocolParameterAdapter.InformationFieldSizeIsDefault), instance => instance.protocolParameters.Ifsc.HasValue == false ); T1ProtocolParameterAdapter.characterWaitingTimeAdapter = PropertyFactory.Create( nameof(T1ProtocolParameterAdapter.CharacterWaitingTime), instance => instance.protocolParameters.CwiValue ); T1ProtocolParameterAdapter.blockWaitingTimeAdapter = PropertyFactory.Create( nameof(T1ProtocolParameterAdapter.BlockWaitingTime), instance => instance.protocolParameters.BwiValue ); T1ProtocolParameterAdapter.blockAndCharacterWaitingTimeIsDefaultAdapter = PropertyFactory.Create( nameof(T1ProtocolParameterAdapter.BlockAndCharacterWaitingTimeIsDefault), instance => instance.protocolParameters.Bwi.HasValue == false && instance.protocolParameters.Cwi.HasValue == false ); T1ProtocolParameterAdapter.redundancyCodeAdapter = PropertyFactory.Create( nameof(T1ProtocolParameterAdapter.RedundancyCode), instance => EnumerationAdapter <RedundancyCodeType> .GetInstanceFor(instance.protocolParameters.RedundancyCodeValue), (instance, value) => instance.protocolParameters.RedundancyCode = value ); T1ProtocolParameterAdapter.redundancyCodeIsDefaultAdapter = PropertyFactory.Create( nameof(T1ProtocolParameterAdapter.RedundancyCodeIsDefault), instance => instance.protocolParameters.RedundancyCode.HasValue == false ); }
static TokenizedAtrAdapter() { IPropertyAdapterFactory <TokenizedAtrAdapter> PropertyFactory = ObservableObject.GetPropertyAdapterFactory <TokenizedAtrAdapter>(); TokenizedAtrAdapter.preambleAdapter = PropertyFactory.Create( nameof(TokenizedAtrAdapter.Preamble), instance => new AtrPreambleTokenAdapter(instance.tokenizedAtr.Preamble) ); TokenizedAtrAdapter.interfaceByteGroupsAdapter = PropertyFactory.Create( nameof(TokenizedAtrAdapter.InterfaceBytesGroups), instance => instance.tokenizedAtr.InterfaceByteGroups, (instance, group) => new AtrInterfaceByteGroupTokenAdapter(group) ); TokenizedAtrAdapter.historicalCharactersAdapter = PropertyFactory.Create( nameof(TokenizedAtrAdapter.HistoricalCharacters), instance => new AtrHistoricalCharactersTokenAdapter(instance.tokenizedAtr.HistoricalCharacters) ); TokenizedAtrAdapter.checksumAdapter = PropertyFactory.Create( nameof(TokenizedAtrAdapter.Checksum), instance => new AtrChecksumTokenAdapter(instance.tokenizedAtr.AtrChecksum) ); TokenizedAtrAdapter.extraBytesAdapter = PropertyFactory.Create( nameof(TokenizedAtrAdapter.ExtraBytes), instance => new AtrExtraBytesAdapter(instance.tokenizedAtr.ExtraBytes) ); }
static AtrTokenAdapterBase() { IPropertyAdapterFactory <AtrTokenAdapterBase> PropertyFactory = ObservableObject.GetPropertyAdapterFactory <AtrTokenAdapterBase>(); AtrTokenAdapterBase.bytesAdapter = PropertyFactory.Create( nameof(AtrTokenAdapterBase.Bytes), instance => instance.atrToken != null ? instance.atrToken.Bytes.ToHexString(" ") : null ); }
static UnknownProtocolParameterAdapter() { IPropertyAdapterFactory <UnknownProtocolParameterAdapter> PropertyFactory = ObservableObject.GetPropertyAdapterFactory <UnknownProtocolParameterAdapter>(); UnknownProtocolParameterAdapter.protocolTypeAdapter = PropertyFactory.Create( nameof(UnknownProtocolParameterAdapter.ProtocolType), instance => EnumerationAdapter <ProtocolType> .GetInstanceFor(instance.protocolParameters.ProtocolType) ); }
static ProtocolParameterAdapterBase() { IPropertyAdapterFactory <ProtocolParameterAdapterBase> PropertyFactory = ObservableObject.GetPropertyAdapterFactory <ProtocolParameterAdapterBase>(); ProtocolParameterAdapterBase.protocolParameterBytes = PropertyFactory.Create( nameof(ProtocolParameterAdapterBase.ProtocolParameterBytes), instance => instance.protocolParameters.ParameterBytes, (instance, parameterByte) => ProtocolParameterByteAdapterBase.GetObject(parameterByte) ); }
static ModelValueNodeAdapter() { IPropertyAdapterFactory <ModelValueNodeAdapter> Factory = ObservableObject.GetPropertyAdapterFactory <ModelValueNodeAdapter>(); ModelValueNodeAdapter.typenameAdapter = Factory.Create( nameof(ModelValueNodeAdapter.Typename), instance => instance.model.Type == null ? "<null>" : instance.model.Type.Name ); ModelValueNodeAdapter.valueAdapter = Factory.Create( nameof(ModelValueNodeAdapter.Value), instance => instance.model.Value ); }
static T0ProtocolParameterAdapter() { IPropertyAdapterFactory <T0ProtocolParameterAdapter> PropertyFactory = ObservableObject.GetPropertyAdapterFactory <T0ProtocolParameterAdapter>(); T0ProtocolParameterAdapter.waitingTimeIntegerAdapter = PropertyFactory.Create( nameof(T0ProtocolParameterAdapter.WaitingTimeInteger), instance => instance.protocolParameters.WaitingTimeIntegerValue, // read value or default (instance, value) => instance.protocolParameters.WaitingTimeInteger = value // set fix value ); T0ProtocolParameterAdapter.waitingTimeIntegerIsDefaultAdapter = PropertyFactory.Create( nameof(T0ProtocolParameterAdapter.WaitingTimeIntegerIsDefault), instance => instance.protocolParameters.WaitingTimeInteger.HasValue == false ); }
static ModelGroupAdapter() { IPropertyAdapterFactory <ModelGroupAdapter> Factory = ObservableObject.GetPropertyAdapterFactory <ModelGroupAdapter>(); ModelGroupAdapter.modelsAdapter = Factory.Create( nameof(ModelGroupAdapter.Models), instance => instance.Group.Models, (instance, model) => new ModelInfoAdapter(instance, model) ); ModelGroupAdapter.nameAdapter = Factory.Create( nameof(ModelGroupAdapter.Name), instance => instance.Group.Name, (instance, value) => instance.Group.Name = value ); }
static AtrProprietaryHistoricalBytesAdapter() { IPropertyAdapterFactory <AtrProprietaryHistoricalBytesAdapter> PropertyFactory = ObservableObject.GetPropertyAdapterFactory <AtrProprietaryHistoricalBytesAdapter>(); AtrProprietaryHistoricalBytesAdapter.structureIndicatorAdapter = PropertyFactory.Create( nameof(AtrProprietaryHistoricalBytesAdapter.CategoryIndicator), instance => instance.historicalCharacters.CategoryIndicator.ToHexString(), (instance, value) => Helper.SetAsHexByteValue(value, _ => instance.historicalCharacters.CategoryIndicator = _) ); AtrProprietaryHistoricalBytesAdapter.dataAdapter = PropertyFactory.Create( nameof(AtrProprietaryHistoricalBytesAdapter.Bytes), instance => instance.historicalCharacters.Bytes.ToHexString(" "), (instance, value) => Helper.SetAsHexValue(value, 0, 15, _ => instance.historicalCharacters.Bytes = _) ); }
static ModelPropertyNodeAdapter() { IPropertyAdapterFactory <ModelPropertyNodeAdapter> Factory = ObservableObject.GetPropertyAdapterFactory <ModelPropertyNodeAdapter>(); ModelPropertyNodeAdapter.internalValueAdapter = Factory.Create( nameof(ModelPropertyNodeAdapter.InternalValue), instance => ModelNodeBaseAdapter.GetAdapter(instance, instance.propertyNode.Value) ); ModelPropertyNodeAdapter.modelAdapter = Factory.Create( nameof(ModelPropertyNodeAdapter.Model), instance => instance.InternalValue.Model ); ModelPropertyNodeAdapter.nameAdapter = Factory.Create( nameof(ModelPropertyNodeAdapter.Name), instance => instance.propertyNode.Name ); ModelPropertyNodeAdapter.typenameAdapter = Factory.Create( nameof(ModelPropertyNodeAdapter.Typename), instance => instance.InternalValue.Typename ); ModelPropertyNodeAdapter.valueAdapter = Factory.Create( nameof(ModelPropertyNodeAdapter.Value), instance => instance.InternalValue.Value ); ModelPropertyNodeAdapter.hasValueAdapter = Factory.Create( nameof(ModelPropertyNodeAdapter.HasValue), instance => instance.InternalValue.HasValue ); ModelPropertyNodeAdapter.supportsValidationAdapter = Factory.Create( nameof(ModelPropertyNodeAdapter.SupportsValidation), instance => instance.propertyNode.SupportsValidation ); ModelPropertyNodeAdapter.validationSeverityAdapter = Factory.Create( nameof(ModelPropertyNodeAdapter.ValidationSeverity), instance => instance.propertyNode.ValidationSeverity ); ModelPropertyNodeAdapter.validationResultsAdapter = Factory.Create( nameof(ModelPropertyNodeAdapter.ValidationResults), instance => instance.propertyNode.ValidationResults, (instance, message) => message ); ModelPropertyNodeAdapter.childrenAdapter = Factory.Create( nameof(ModelPropertyNodeAdapter.Children), instance => instance.InternalValue.Children ); }
static ModelInfoAdapter() { IPropertyAdapterFactory <ModelInfoAdapter> Factory = ObservableObject.GetPropertyAdapterFactory <ModelInfoAdapter>(); ModelInfoAdapter.typeNameAdapter = Factory.Create( nameof(ModelInfoAdapter.TypeName), instance => instance.Model.Root.Type != null ? instance.Model.Root.Type.Name : "null" ); ModelInfoAdapter.rootAdapter = Factory.Create( nameof(ModelInfoAdapter.Root), instance => ModelNodeBaseAdapter.GetAdapter(instance, instance.Model.Root) ); ModelInfoAdapter.nameAdapter = Factory.Create( nameof(ModelInfoAdapter.Name), instance => instance.Model.Name, (instance, value) => instance.Model.Name = value ); }
static AtrInvalidHistoricalBytesAdapter() { IPropertyAdapterFactory <AtrInvalidHistoricalBytesAdapter> PropertyFactory = ObservableObject.GetPropertyAdapterFactory <AtrInvalidHistoricalBytesAdapter>(); AtrInvalidHistoricalBytesAdapter.parseErrorAdapter = PropertyFactory.Create( nameof(AtrInvalidHistoricalBytesAdapter.ParseError), instance => instance.historicalCharacters.ParseError.Error ); AtrInvalidHistoricalBytesAdapter.preErrorDataAdapter = PropertyFactory.Create( nameof(AtrInvalidHistoricalBytesAdapter.PreErrorData), instance => instance.historicalCharacters.Bytes.Take(instance.historicalCharacters.ParseError.Index).ToHexString(" ") ); AtrInvalidHistoricalBytesAdapter.errorDataAdapter = PropertyFactory.Create( nameof(AtrInvalidHistoricalBytesAdapter.ErrorData), instance => instance.historicalCharacters.Bytes.Skip(instance.historicalCharacters.ParseError.Index).Take(1).ToHexString(" ") ); AtrInvalidHistoricalBytesAdapter.postErrorDataAdapter = PropertyFactory.Create( nameof(AtrInvalidHistoricalBytesAdapter.PostErrorData), instance => instance.historicalCharacters.Bytes.Skip(instance.historicalCharacters.ParseError.Index + 1).ToHexString(" ") ); }
static SpuTypeEtsiCodingAdapter() { IPropertyAdapterFactory <SpuTypeEtsiCodingAdapter> PropertyFactory = ObservableObject.GetPropertyAdapterFactory <SpuTypeEtsiCodingAdapter>(); SpuTypeEtsiCodingAdapter.lowImpedanceOnIoLineAvailableAdapter = PropertyFactory.Create( nameof(SpuTypeEtsiCodingAdapter.LowImpedanceOnIoLineAvailable), instance => instance.etsiCoding.LowImpedanceOnIoLineAvailable ); SpuTypeEtsiCodingAdapter.interChipUsbSupportedAdapter = PropertyFactory.Create( nameof(SpuTypeEtsiCodingAdapter.InterChipUsbSupported), instance => instance.etsiCoding.InterChipUsbSupported ); SpuTypeEtsiCodingAdapter.clfInterfaceSupportedAdapter = PropertyFactory.Create( nameof(SpuTypeEtsiCodingAdapter.ClfInterfaceSupported), instance => instance.etsiCoding.ClfInterfaceSupported ); SpuTypeEtsiCodingAdapter.secureChannelSupportAdapter = PropertyFactory.Create( nameof(SpuTypeEtsiCodingAdapter.SecureChannelSupport), instance => EnumerationAdapter <EtsiSpuSecureChannelSupport> .GetInstanceFor(instance.etsiCoding.SecureChannelSupport) ); }
static GlobalInterfaceBytesAdapter() { IPropertyAdapterFactory <GlobalInterfaceBytesAdapter> PropertyFactory = ObservableObject.GetPropertyAdapterFactory <GlobalInterfaceBytesAdapter>(); GlobalInterfaceBytesAdapter.protocolParameterBytes = PropertyFactory.Create( nameof(GlobalInterfaceBytesAdapter.ProtocolParameterBytes), instance => instance.globalInterfaceBytes.ParameterBytes, (instance, parameterByte) => ProtocolParameterByteAdapterBase.GetObject(parameterByte) ); GlobalInterfaceBytesAdapter.diAdapter = PropertyFactory.Create( nameof(GlobalInterfaceBytesAdapter.Di), instance => EnumerationAdapter <Di> .GetInstanceFor(instance.globalInterfaceBytes.DiValue), (instance, value) => instance.globalInterfaceBytes.SetDiFiFmax(value, instance.globalInterfaceBytes.FiFmaxValue) ); GlobalInterfaceBytesAdapter.fiFmaxAdapter = PropertyFactory.Create( nameof(GlobalInterfaceBytesAdapter.FiFmax), instance => EnumerationAdapter <FiFmax> .GetInstanceFor(instance.globalInterfaceBytes.FiFmaxValue), (instance, value) => instance.globalInterfaceBytes.SetDiFiFmax(instance.globalInterfaceBytes.DiValue, value) ); GlobalInterfaceBytesAdapter.etuAdapter = PropertyFactory.Create( nameof(GlobalInterfaceBytesAdapter.Etu), instance => GlobalInterfaceBytesAdapter.CalculateEtu(instance.globalInterfaceBytes.FiFmaxValue, instance.globalInterfaceBytes.DiValue) ); GlobalInterfaceBytesAdapter.diFiIsDefaultAdapter = PropertyFactory.Create( nameof(GlobalInterfaceBytesAdapter.DiFiIsDefault), instance => instance.globalInterfaceBytes.Di.HasValue == false && instance.globalInterfaceBytes.FiFmax.HasValue == false ); GlobalInterfaceBytesAdapter.extraGuardTimeAdapter = PropertyFactory.Create( nameof(GlobalInterfaceBytesAdapter.ExtraGuardTime), instance => instance.globalInterfaceBytes.ExtraGuardTimeValue, (instance, value) => instance.globalInterfaceBytes.ExtraGuardTime = value ); GlobalInterfaceBytesAdapter.extraGuardTimeIsDefaultAdapter = PropertyFactory.Create( nameof(GlobalInterfaceBytesAdapter.ExtraGuardTimeIsDefault), instance => instance.globalInterfaceBytes.ExtraGuardTime.HasValue == false ); GlobalInterfaceBytesAdapter.specificModeSupportedAdapter = PropertyFactory.Create( nameof(GlobalInterfaceBytesAdapter.SpecificModeSupported), instance => instance.globalInterfaceBytes.CanChangeNegotiableSpecificMode.HasValue || instance.globalInterfaceBytes.SpecificModeImplicitFiDi.HasValue || instance.globalInterfaceBytes.SpecificModeProtocol.HasValue ); GlobalInterfaceBytesAdapter.canChangeNegotiableSpecificModeAdapter = PropertyFactory.Create( nameof(GlobalInterfaceBytesAdapter.CanChangeNegotiableSpecificMode), instance => instance.globalInterfaceBytes.CanChangeNegotiableSpecificMode.HasValue ? instance.globalInterfaceBytes.CanChangeNegotiableSpecificMode.Value : false ); GlobalInterfaceBytesAdapter.specificModeImplicitFiDiAdapter = PropertyFactory.Create( nameof(GlobalInterfaceBytesAdapter.SpecificModeImplicitFiDi), instance => instance.globalInterfaceBytes.SpecificModeImplicitFiDi.HasValue ? instance.globalInterfaceBytes.SpecificModeImplicitFiDi.Value : false ); GlobalInterfaceBytesAdapter.specificModeProtocolAdapter = PropertyFactory.Create( nameof(GlobalInterfaceBytesAdapter.SpecificModeProtocol), instance => instance.globalInterfaceBytes.SpecificModeProtocol.HasValue ? EnumerationAdapter <ProtocolType> .GetInstanceFor(instance.globalInterfaceBytes.SpecificModeProtocol.Value) : null ); GlobalInterfaceBytesAdapter.clockStopSupportAdapter = PropertyFactory.Create( nameof(GlobalInterfaceBytesAdapter.ClockStopSupport), instance => EnumerationAdapter <ClockStopSupport> .GetInstanceFor(instance.globalInterfaceBytes.ClockStopSupportValue) ); GlobalInterfaceBytesAdapter.clockStopSupportAndOperatingConditionsIsDefaultAdapter = PropertyFactory.Create( nameof(GlobalInterfaceBytesAdapter.ClockStopSupportAndOperatingConditionsIsDefault), instance => instance.globalInterfaceBytes.ClockStopSupport.HasValue == false || instance.globalInterfaceBytes.OperatingConditions.HasValue == false ); GlobalInterfaceBytesAdapter.operatingConditionsAdapter = PropertyFactory.Create( nameof(GlobalInterfaceBytesAdapter.OperatingConditions), instance => EnumerationAdapter <OperatingConditions> .GetInstanceFor(instance.globalInterfaceBytes.OperatingConditionsValue) ); GlobalInterfaceBytesAdapter.spuUseAdapter = PropertyFactory.Create( nameof(GlobalInterfaceBytesAdapter.SpuUse), instance => EnumerationAdapter <SpuUse> .GetInstanceFor(instance.globalInterfaceBytes.SpuUseValue) ); GlobalInterfaceBytesAdapter.spuUseIsDefaultAdapter = PropertyFactory.Create( nameof(GlobalInterfaceBytesAdapter.SpuUseIsDefault), instance => instance.globalInterfaceBytes.SpuUse.HasValue == false ); GlobalInterfaceBytesAdapter.spuUseIsNotUsedAdapter = PropertyFactory.Create( nameof(GlobalInterfaceBytesAdapter.SpuUseIsNotUsed), instance => instance.globalInterfaceBytes.SpuUse == Classes.ATR.SpuUse.NotUsed ); GlobalInterfaceBytesAdapter.spuUseIsStandardAdapter = PropertyFactory.Create( nameof(GlobalInterfaceBytesAdapter.SpuUseIsStandard), instance => instance.globalInterfaceBytes.SpuUse == Classes.ATR.SpuUse.Standard ); GlobalInterfaceBytesAdapter.spuUseIsProprietaryAdapter = PropertyFactory.Create( nameof(GlobalInterfaceBytesAdapter.SpuUseIsProprietary), instance => instance.globalInterfaceBytes.SpuUse == Classes.ATR.SpuUse.Proprietary ); GlobalInterfaceBytesAdapter.spuIsInUseAdapter = PropertyFactory.Create( nameof(GlobalInterfaceBytesAdapter.SpuIsInUse), instance => instance.globalInterfaceBytes.SpuUseValue != Classes.ATR.SpuUse.NotUsed ); GlobalInterfaceBytesAdapter.spuTypeAdapter = PropertyFactory.Create( nameof(GlobalInterfaceBytesAdapter.SpuType), instance => instance.globalInterfaceBytes.SpuType != null ? instance.globalInterfaceBytes.SpuType.Value.ToHexString() : null ); GlobalInterfaceBytesAdapter.spuTypeEtsiCodingAdapter = PropertyFactory.Create( nameof(GlobalInterfaceBytesAdapter.SpuTypeEtsiCoding), instance => instance.globalInterfaceBytes.SpuType != null && instance.globalInterfaceBytes.SpuType.EtsiCoding != null ? new SpuTypeEtsiCodingAdapter(instance.globalInterfaceBytes, instance.globalInterfaceBytes.SpuType.EtsiCoding) : null ); GlobalInterfaceBytesAdapter.isVppConnectedAdapter = PropertyFactory.Create( nameof(GlobalInterfaceBytesAdapter.IsVppConnected), instance => instance.globalInterfaceBytes.IsVppConnected ); GlobalInterfaceBytesAdapter.isVppConnectedisDefaultAdapter = PropertyFactory.Create( nameof(GlobalInterfaceBytesAdapter.IsVppConnectedIsDefault), instance => instance.globalInterfaceBytes.IsVppConnected.HasValue == false ); GlobalInterfaceBytesAdapter.vppProgrammingVoltageAdapter = PropertyFactory.Create( nameof(GlobalInterfaceBytesAdapter.VppProgrammingVoltage), instance => instance.globalInterfaceBytes.VppProgrammingVoltage != null?instance.globalInterfaceBytes.VppProgrammingVoltage.Value.ToString("F1"):null ); GlobalInterfaceBytesAdapter.vppProgrammingCurrentAdapter = PropertyFactory.Create( nameof(GlobalInterfaceBytesAdapter.VppProgrammingCurrent), instance => EnumerationAdapter <VppProgrammingCurrent> .GetInstanceFor(instance.globalInterfaceBytes.VppProgrammingCurrent) ); }
static AtrViewerModel() { EnumerationAdapter <ProtocolType> .Items = new[] { new EnumerationAdapter <ProtocolType>(ProtocolType.T0, "T=0", "T=0 (half duplex)"), new EnumerationAdapter <ProtocolType>(ProtocolType.T1, "T=1", "T=1 (half duplex)"), new EnumerationAdapter <ProtocolType>(ProtocolType.T2, "T=2", "T=2 (future full duplex)"), new EnumerationAdapter <ProtocolType>(ProtocolType.T3, "T=3", "T=3 (future full duplex)"), new EnumerationAdapter <ProtocolType>(ProtocolType.T4, "T=4", "T=4 (enhanced half duplex)"), new EnumerationAdapter <ProtocolType>(ProtocolType.T5, "T=5", "T=5 (RFU ISO/IEC JTC 1/SC 17)"), new EnumerationAdapter <ProtocolType>(ProtocolType.T6, "T=6", "T=6 (RFU ISO/IEC JTC 1/SC 17)"), new EnumerationAdapter <ProtocolType>(ProtocolType.T7, "T=7", "T=7 (RFU ISO/IEC JTC 1/SC 17)"), new EnumerationAdapter <ProtocolType>(ProtocolType.T8, "T=8", "T=8 (RFU ISO/IEC JTC 1/SC 17)"), new EnumerationAdapter <ProtocolType>(ProtocolType.T9, "T=9", "T=9 (RFU ISO/IEC JTC 1/SC 17)"), new EnumerationAdapter <ProtocolType>(ProtocolType.T10, "T=10", "T=10 (RFU ISO/IEC JTC 1/SC 17)"), new EnumerationAdapter <ProtocolType>(ProtocolType.T11, "T=11", "T=11 (RFU ISO/IEC JTC 1/SC 17)"), new EnumerationAdapter <ProtocolType>(ProtocolType.T12, "T=12", "T=12 (RFU ISO/IEC JTC 1/SC 17)"), new EnumerationAdapter <ProtocolType>(ProtocolType.T13, "T=13", "T=13 (RFU ISO/IEC JTC 1/SC 17)"), new EnumerationAdapter <ProtocolType>(ProtocolType.T14, "T=14", "T=14 (proprietary)"), new EnumerationAdapter <ProtocolType>(ProtocolType.RfuF, "0xF", "0xF (RFU, only used to indicate global extended interface bytes)") }; EnumerationAdapter <InterfaceByteGroupType> .Items = new[] { new EnumerationAdapter <InterfaceByteGroupType>(InterfaceByteGroupType.T0, "T=0", "T=0 (half duplex)"), new EnumerationAdapter <InterfaceByteGroupType>(InterfaceByteGroupType.T1, "T=1", "T=1 (half duplex)"), new EnumerationAdapter <InterfaceByteGroupType>(InterfaceByteGroupType.T2, "T=2", "T=2 (future full duplex)"), new EnumerationAdapter <InterfaceByteGroupType>(InterfaceByteGroupType.T3, "T=3", "T=3 (future full duplex)"), new EnumerationAdapter <InterfaceByteGroupType>(InterfaceByteGroupType.T4, "T=4", "T=4 (enhanced half duplex)"), new EnumerationAdapter <InterfaceByteGroupType>(InterfaceByteGroupType.T5, "T=5", "T=5 (RFU ISO/IEC JTC 1/SC 17)"), new EnumerationAdapter <InterfaceByteGroupType>(InterfaceByteGroupType.T6, "T=6", "T=6 (RFU ISO/IEC JTC 1/SC 17)"), new EnumerationAdapter <InterfaceByteGroupType>(InterfaceByteGroupType.T7, "T=7", "T=7 (RFU ISO/IEC JTC 1/SC 17)"), new EnumerationAdapter <InterfaceByteGroupType>(InterfaceByteGroupType.T8, "T=8", "T=8 (RFU ISO/IEC JTC 1/SC 17)"), new EnumerationAdapter <InterfaceByteGroupType>(InterfaceByteGroupType.T9, "T=9", "T=9 (RFU ISO/IEC JTC 1/SC 17)"), new EnumerationAdapter <InterfaceByteGroupType>(InterfaceByteGroupType.T10, "T=10", "T=10 (RFU ISO/IEC JTC 1/SC 17)"), new EnumerationAdapter <InterfaceByteGroupType>(InterfaceByteGroupType.T11, "T=11", "T=11 (RFU ISO/IEC JTC 1/SC 17)"), new EnumerationAdapter <InterfaceByteGroupType>(InterfaceByteGroupType.T12, "T=12", "T=12 (RFU ISO/IEC JTC 1/SC 17)"), new EnumerationAdapter <InterfaceByteGroupType>(InterfaceByteGroupType.T13, "T=13", "T=13 (RFU ISO/IEC JTC 1/SC 17)"), new EnumerationAdapter <InterfaceByteGroupType>(InterfaceByteGroupType.T14, "T=14", "T=14 (proprietary)"), new EnumerationAdapter <InterfaceByteGroupType>(InterfaceByteGroupType.Global, "global", "global"), new EnumerationAdapter <InterfaceByteGroupType>(InterfaceByteGroupType.GlobalExtended, "global extended (T=15)", "global extended (T=15)") }; EnumerationAdapter <ClockStopSupport> .Items = new[] { new EnumerationAdapter <ClockStopSupport>(ClockStopSupport.NotSupported, "Not supported", "Not supported"), new EnumerationAdapter <ClockStopSupport>(ClockStopSupport.NoPreference, "No preference", "No preference"), new EnumerationAdapter <ClockStopSupport>(ClockStopSupport.StateH, "State H", "High level state"), new EnumerationAdapter <ClockStopSupport>(ClockStopSupport.StateL, "State L", "Low level state") }; EnumerationAdapter <SpuUse> .Items = new[] { new EnumerationAdapter <SpuUse>(SpuUse.NotUsed, "Not used", "Not used"), new EnumerationAdapter <SpuUse>(SpuUse.Standard, "Standard", "Standard"), new EnumerationAdapter <SpuUse>(SpuUse.Proprietary, "Proprietary", "Proprietary") }; EnumerationAdapter <OperatingConditions> .Items = new[] { new EnumerationAdapter <OperatingConditions>(OperatingConditions.AOnly, "A only", "Class A only"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.BOnly, "B only", "Class B only"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.COnly, "C only", "Class C only"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.AandB, "A and B", "Class A and B"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.BandC, "B and C", "Class B and C"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.ABandC, "A, B and C", "Classes A, B and C"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu05, "0x05", "0x05 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu08, "0x08", "0x08 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu09, "0x09", "0x09 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_0A, "0x0A", "0x0A (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_0B, "0x0B", "0x0B (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_0C, "0x0C", "0x0C (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_0D, "0x0D", "0x0D (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_0E, "0x0E", "0x0E (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_0F, "0x0F", "0x0F (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu10, "0x10", "0x10 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu11, "0x11", "0x11 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu12, "0x12", "0x12 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu13, "0x13", "0x13 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu14, "0x14", "0x14 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu15, "0x15", "0x15 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu16, "0x16", "0x16 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu17, "0x17", "0x17 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu18, "0x18", "0x18 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu19, "0x19", "0x19 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_1A, "0x1A", "0x1A (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_1B, "0x1B", "0x1B (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_1C, "0x1C", "0x1C (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_1D, "0x1D", "0x1D (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_1E, "0x1E", "0x1E (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_1F, "0x1F", "0x1F (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu20, "0x20", "0x20 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu21, "0x21", "0x21 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu22, "0x22", "0x22 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu23, "0x23", "0x23 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu24, "0x24", "0x24 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu25, "0x25", "0x25 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu26, "0x26", "0x26 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu27, "0x27", "0x27 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu28, "0x28", "0x28 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu29, "0x29", "0x29 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_2A, "0x2A", "0x2A (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_2B, "0x2B", "0x2B (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_2C, "0x2C", "0x2C (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_2D, "0x2D", "0x2D (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_2E, "0x2E", "0x2E (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_2F, "0x2F", "0x2F (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu30, "0x30", "0x30 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu31, "0x31", "0x31 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu32, "0x32", "0x32 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu33, "0x33", "0x33 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu34, "0x34", "0x34 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu35, "0x35", "0x35 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu36, "0x36", "0x36 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu37, "0x37", "0x0x37 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu38, "0x38", "0x38 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu39, "0x39", "0x39 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_3A, "0x3A", "0x3A (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_3B, "0x3B", "0x3B (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_3C, "0x3C", "0x3C (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_3D, "0x3D", "0x3D (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_3E, "0x3E", "0x3E (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_3F, "0x3F", "0x3F (RFU)") }; EnumerationAdapter <VppProgrammingCurrent> .Items = new[] { new EnumerationAdapter <VppProgrammingCurrent>(VppProgrammingCurrent.Current25, "25", "25 mA"), new EnumerationAdapter <VppProgrammingCurrent>(VppProgrammingCurrent.Current50, "50", "50 mA"), new EnumerationAdapter <VppProgrammingCurrent>(VppProgrammingCurrent.Rfu10, "10b", "10b (RFU, was 100 mA)"), new EnumerationAdapter <VppProgrammingCurrent>(VppProgrammingCurrent.Rfu11, "11b", "11b (RFU)") }; EnumerationAdapter <RedundancyCodeType> .Items = new[] { new EnumerationAdapter <RedundancyCodeType>(RedundancyCodeType.Crc, "CRC", "CRC (Cyclic Redundancy Check)"), new EnumerationAdapter <RedundancyCodeType>(RedundancyCodeType.Lrc, "LRC", "LRC (Longitudinal Redundancy Check)"), }; EnumerationAdapter <FiFmax> .Items = new[] { new EnumerationAdapter <FiFmax>(FiFmax.Fi372FMax4, "0", "0 (F=372, 4 MHz)"), new EnumerationAdapter <FiFmax>(FiFmax.Fi372FMax5, "1", "1 (F=372, 5 MHz)"), new EnumerationAdapter <FiFmax>(FiFmax.Fi558FMax6, "2", "2 (F=558, 6 MHz)"), new EnumerationAdapter <FiFmax>(FiFmax.Fi744FMax8, "3", "3 (F=744, 8 MHz)"), new EnumerationAdapter <FiFmax>(FiFmax.Fi1116FMax12, "4", "4 (F=1116, 12 MHz)"), new EnumerationAdapter <FiFmax>(FiFmax.Fi1488FMax16, "5", "5 (F=1488, 16 MHz)"), new EnumerationAdapter <FiFmax>(FiFmax.Fi1860FMax20, "6", "6 (F=1860, 20 MHz)"), new EnumerationAdapter <FiFmax>(FiFmax.Rfu7, "7", "7 (RFU)"), new EnumerationAdapter <FiFmax>(FiFmax.Rfu8, "8", "8 (RFU)"), new EnumerationAdapter <FiFmax>(FiFmax.Fi512FMax5, "9", "9 (F=512, 5 MHz)"), new EnumerationAdapter <FiFmax>(FiFmax.Fi768FMax7P5, "A", "A (F=768, 7.5 MHz)"), new EnumerationAdapter <FiFmax>(FiFmax.Fi1024FMax10, "B", "B (F=1024, 10 MHz)"), new EnumerationAdapter <FiFmax>(FiFmax.Fi1536FMax15, "C", "C (F=1536, 15 MHz)"), new EnumerationAdapter <FiFmax>(FiFmax.Fi2048FMax20, "D", "D (F=2048, 20 MHz)"), new EnumerationAdapter <FiFmax>(FiFmax.RfuE, "E", "E (RFU)"), new EnumerationAdapter <FiFmax>(FiFmax.RfuF, "F", "F (RFU)") }; EnumerationAdapter <Di> .Items = new[] { new EnumerationAdapter <Di>(Di.Rfu0, "0", "0 (= RFU)"), new EnumerationAdapter <Di>(Di.Di1, "1", "1 (D=1)"), new EnumerationAdapter <Di>(Di.Di2, "2", "2 (D=2)"), new EnumerationAdapter <Di>(Di.Di4, "3", "3 (D=4)"), new EnumerationAdapter <Di>(Di.Di8, "4", "4 (D=8)"), new EnumerationAdapter <Di>(Di.Di16, "5", "5 (D=16)"), new EnumerationAdapter <Di>(Di.Di32, "6", "6 (D=32)"), new EnumerationAdapter <Di>(Di.Di64, "7", "7 (D=64)"), new EnumerationAdapter <Di>(Di.Di12, "8", "8 (D=12)"), new EnumerationAdapter <Di>(Di.Di20, "9", "9 (D=20)"), new EnumerationAdapter <Di>(Di.RfuA, "A", "A (RFU)"), new EnumerationAdapter <Di>(Di.RfuB, "B", "B (RFU)"), new EnumerationAdapter <Di>(Di.RfuC, "C", "C (RFU)"), new EnumerationAdapter <Di>(Di.RfuD, "D", "D (RFU)"), new EnumerationAdapter <Di>(Di.RfuE, "E", "E (RFU)"), new EnumerationAdapter <Di>(Di.RfuF, "F", "F (RFU)") }; EnumerationAdapter <EtsiSpuSecureChannelSupport> .Items = new[] { new EnumerationAdapter <EtsiSpuSecureChannelSupport>(EtsiSpuSecureChannelSupport.NotIndicated, "Not indicated", "Support not indicated"), new EnumerationAdapter <EtsiSpuSecureChannelSupport>(EtsiSpuSecureChannelSupport.SecureChannelSupported, "Secure Channel", "Secure Channel supported as defined in TS 102 484"), new EnumerationAdapter <EtsiSpuSecureChannelSupport>(EtsiSpuSecureChannelSupport.SecuredApduRequired, "Secured APDU", "Secured APDU - Platform to Platform required as defined in TS 102 484"), new EnumerationAdapter <EtsiSpuSecureChannelSupport>(EtsiSpuSecureChannelSupport.Rfu01, "01b (RFU)", "01b (RFU)"), }; EnumerationAdapter <HistoricalCharacterTypes> .Items = new[] { new EnumerationAdapter <HistoricalCharacterTypes>(HistoricalCharacterTypes.CompactTlv, "Compact TLV", "Compact TLV (00/80)"), new EnumerationAdapter <HistoricalCharacterTypes>(HistoricalCharacterTypes.DirDataReference, "Dir Data Reference", "Dir Data Reference (10)"), new EnumerationAdapter <HistoricalCharacterTypes>(HistoricalCharacterTypes.Proprietary, "Proprietary", "Proprietary (01-0A/11-7F/90-FF)"), new EnumerationAdapter <HistoricalCharacterTypes>(HistoricalCharacterTypes.Rfu, "RFU", "RFU (81-8F)"), new EnumerationAdapter <HistoricalCharacterTypes>(HistoricalCharacterTypes.No, "No", "No historical characters"), }; IPropertyAdapterFactory <AtrViewerModel> PropertyFactory = ObservableObject.GetPropertyAdapterFactory <AtrViewerModel>(); AtrViewerModel.tokenizedAtrAdapter = PropertyFactory.Create( nameof(AtrViewerModel.TokenizedAtr), instance => new TokenizedAtrAdapter(instance.Atr.TokenizedAtr) ); AtrViewerModel.interpretedAtrAdapter = PropertyFactory.Create( nameof(AtrViewerModel.InterpretedAtr), instance => new InterpretedAtrAdapter(instance.Atr) ); }