using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace OCPPPackage.Profiles { public static class StandardConfiguration { #region Core Profile public const string AllowOfflineTxForUnknownId = "AllowOfflineTxForUnknownId"; public const string AuthorizationCacheEnabled = "AuthorizationCacheEnabled"; public const string AuthorizeRemoteTxRequests = "AuthorizeRemoteTxRequests"; public const string BlinkRepeat = "BlinkRepeat"; public const string ClockAlignedDataInterval = "ClockAlignedDataInterval"; public const string ConnectionTimeOut = "ConnectionTimeOut"; public const string GetConfigurationMaxKeys = "GetConfigurationMaxKeys"; public const string HeartbeatInterval = "HeartbeatInterval"; public const string LightIntensity = "LightIntensity"; public const string LocalAuthorizeOffline = "LocalAuthorizeOffline"; public const string LocalPreAuthorize = "LocalPreAuthorize"; public const string MaxEnergyOnInvalidId = "MaxEnergyOnInvalidId"; public const string MeterValuesAlignedData = "MeterValuesAlignedData"; public const string MeterValuesAlignedDataMaxLength = "MeterValuesAlignedDataMaxLength"; public const string MeterValuesSampledData = "MeterValuesSampledData"; public const string MeterValuesSampledDataMaxLength = "MeterValuesSampledDataMaxLength"; public const string MeterValueSampleInterval = "MeterValueSampleInterval"; public const string MinimumStatusDuration = "MinimumStatusDuration"; public const string NumberOfConnectors = "NumberOfConnectors"; public const string ResetRetries = "ResetRetries"; public const string ConnectorPhaseRotation = "ConnectorPhaseRotation"; public const string ConnectorPhaseRotationMaxLength = "ConnectorPhaseRotationMaxLength"; public const string StopTransactionOnEVSideDisconnect = "StopTransactionOnEVSideDisconnect"; public const string StopTransactionOnInvalidId = "StopTransactionOnInvalidId"; public const string StopTxnAlignedData = "StopTxnAlignedData"; public const string StopTxnAlignedDataMaxLength = "StopTxnAlignedDataMaxLength"; public const string StopTxnSampledData = "StopTxnSampledData"; public const string StopTxnSampledDataMaxLength = "StopTxnSampledDataMaxLength"; public const string SupportedFeatureProfiles = "SupportedFeatureProfiles"; public const string SupportedFeatureProfilesMaxLength = "SupportedFeatureProfilesMaxLength"; public const string TransactionMessageAttempts = "TransactionMessageAttempts"; public const string TransactionMessageRetryInterval = "TransactionMessageRetryInterval"; public const string UnlockConnectorOnEVSideDisconnect = "UnlockConnectorOnEVSideDisconnect"; public const string WebSocketPingInterval = "WebSocketPingInterval"; #endregion #region Local Auth List Management Profile public const string LocalAuthListEnabled = "LocalAuthListEnabled"; public const string LocalAuthListMaxLength = "LocalAuthListMaxLength"; public const string SendLocalListMaxLength = "SendLocalListMaxLength"; #endregion #region Reservation Profile public const string ReserveConnectorZeroSupported = "ReserveConnectorZeroSupported"; #endregion #region Smart Charging Profile public const string ChargeProfileMaxStackLevel = "ChargeProfileMaxStackLevel"; public const string ChargingScheduleAllowedChargingRateUnit = "ChargingScheduleAllowedChargingRateUnit"; public const string ChargingScheduleMaxPeriods = "ChargingScheduleMaxPeriods"; public const string ConnectorSwitch3to1PhaseSupported = "ConnectorSwitch3to1PhaseSupported"; public const string MaxChargingProfilesInstalled = "MaxChargingProfilesInstalled"; #endregion #region Security public const string AdditionalRootCertificateCheck = "AdditionalRootCertificateCheck"; public const string AuthorizationKey = "AuthorizationKey"; public const string CertificateSignedMaxChainSize = "CertificateSignedMaxChainSize"; public const string CertificateStoreMaxLength = "CertificateStoreMaxLength"; public const string CpoName = "CpoName"; public const string SecurityProfile = "SecurityProfile"; #endregion public static readonly List AllConfigs = new List() { GetConfigurationMaxKeys, SupportedFeatureProfiles, NumberOfConnectors, SupportedFeatureProfilesMaxLength, StopTransactionOnEVSideDisconnect, StopTransactionOnInvalidId, StopTxnAlignedData, StopTxnAlignedDataMaxLength, StopTxnSampledData, StopTxnSampledDataMaxLength, TransactionMessageAttempts, TransactionMessageRetryInterval, MaxEnergyOnInvalidId, MeterValuesAlignedData, MeterValuesAlignedDataMaxLength, MeterValuesSampledData, MeterValuesSampledDataMaxLength, WebSocketPingInterval, MeterValueSampleInterval, MinimumStatusDuration, UnlockConnectorOnEVSideDisconnect, ResetRetries, AllowOfflineTxForUnknownId, AuthorizationCacheEnabled, AuthorizeRemoteTxRequests, BlinkRepeat, ClockAlignedDataInterval, ConnectionTimeOut, ConnectorPhaseRotation, ConnectorPhaseRotationMaxLength, HeartbeatInterval, LightIntensity, LocalAuthorizeOffline, LocalPreAuthorize, LocalAuthListEnabled, LocalAuthListMaxLength, SendLocalListMaxLength, ReserveConnectorZeroSupported, ChargeProfileMaxStackLevel, ChargingScheduleAllowedChargingRateUnit, ChargingScheduleMaxPeriods, ConnectorSwitch3to1PhaseSupported, MaxChargingProfilesInstalled, AdditionalRootCertificateCheck, AuthorizationKey, CertificateSignedMaxChainSize, CertificateStoreMaxLength, CpoName, SecurityProfile }; public static bool Contains(List configs) { foreach (var item in configs) { if (!AllConfigs.Contains(item)) return false; } return true; } } }