private void RegenerateChannelsForType(RpdMeterType mType) { Channels = new ObservableCollection <IRpdChannel>(); int maxChannels = 0; if (mType == RpdMeterType.Uran) { maxChannels = 16; } if (mType == RpdMeterType.Irvi) { maxChannels = 2; } //--------------------------- for (int i = 0; i < maxChannels; i++) { Channels.Add(new RpdChannel(this, i + 1, "Канал №" + (i + 1).ToString(CultureInfo.InvariantCulture), true, false, TrendType.Analogue)); // Все каналы РПД записывают аналоговю информацию } //теперь установим принудительно разрешенные и запрещенные каналы: if (mType == RpdMeterType.Uran) { Channels[7].IsEnabled = false; ((RpdChannel)Channels[7]).IsService = true; Channels[7].Name += " - Служебный"; Channels[15].IsEnabled = false; ((RpdChannel)Channels[15]).IsService = true; Channels[15].Name += " - Служебный"; } }
//**************************************************************************** public RpdMeter(FaultLog owner, int address, string name) { OwnerFault = owner; Address = address; Name = name; //--------------------------------------------------+ //this.Channels = new ObservableCollection<IChannel>(); Type = RpdMeterType.Undefined; //каналы регенерируются при изменении свойства, например //-------------------------------------------------- ArchivePages = new List <FaultArchivePage>(); //--------------------------------------------------+ TrendsTimeOffset = 0; TrendDataCountBeforeDump = 0; TrendDataCountAfterDump = 0; //--------------------------------------------------- SettingsReaded = false; //--------------------------------------------------- SettingsLines = new List <VariableLengthPageLine>(); SettingsRaw = new byte[RegSetupRpd.SizeInBytes]; }
public RpdProtocolMeterTypeBuilderFromHighLevel(RpdMeterType val) { _val = val; }