/// <summary> /// Creates a new <see cref="ConfigurationCellBase"/> from specified parameters. /// </summary> /// <param name="parent">The reference to parent <see cref="IConfigurationFrame"/> of this <see cref="ConfigurationCellBase"/>.</param> /// <param name="idCode">The numeric ID code for this <see cref="ConfigurationCellBase"/>.</param> /// <param name="maximumPhasors">Sets the maximum number of phasors for the <see cref="PhasorDefinitions"/> collection.</param> /// <param name="maximumAnalogs">Sets the maximum number of phasors for the <see cref="AnalogDefinitions"/> collection.</param> /// <param name="maximumDigitals">Sets the maximum number of phasors for the <see cref="DigitalDefinitions"/> collection.</param> protected ConfigurationCellBase(IConfigurationFrame parent, ushort idCode, int maximumPhasors, int maximumAnalogs, int maximumDigitals) : base(parent, idCode) { m_nominalFrequency = LineFrequency.Hz60; // Defaulting to 60Hz // We convert maximum counts to last valid indices (count - 1): m_phasorDefinitions = new PhasorDefinitionCollection(maximumPhasors - 1); m_analogDefinitions = new AnalogDefinitionCollection(maximumAnalogs - 1); m_digitalDefinitions = new DigitalDefinitionCollection(maximumDigitals - 1); }
/// <summary> /// Creates a new <see cref="ConfigurationCellBase"/> from serialization parameters. /// </summary> /// <param name="info">The <see cref="SerializationInfo"/> with populated with data.</param> /// <param name="context">The source <see cref="StreamingContext"/> for this deserialization.</param> protected ConfigurationCellBase(SerializationInfo info, StreamingContext context) : base(info, context) { // Deserialize configuration cell values StationName = info.GetString("stationName"); IDLabel = info.GetString("idLabel"); m_phasorDefinitions = (PhasorDefinitionCollection)info.GetValue("phasorDefinitions", typeof(PhasorDefinitionCollection)); m_frequencyDefinition = (IFrequencyDefinition)info.GetValue("frequencyDefinition", typeof(IFrequencyDefinition)); m_analogDefinitions = (AnalogDefinitionCollection)info.GetValue("analogDefinitions", typeof(AnalogDefinitionCollection)); m_digitalDefinitions = (DigitalDefinitionCollection)info.GetValue("digitalDefinitions", typeof(DigitalDefinitionCollection)); m_nominalFrequency = (LineFrequency)info.GetValue("nominalFrequency", typeof(LineFrequency)); m_revisionCount = info.GetUInt16("revisionCount"); }