using System; using System.Text.Json; namespace Barsik { class BaseMonitoringUnit { protected JsonElement config; protected RegistersContainer registers; protected int baseAddress; public BaseMonitoringUnit(JsonElement config, RegistersContainer registers) { this.config = config.Clone(); this.registers = registers; baseAddress = config.GetProperty("BaseAddress").GetInt32(); } public virtual void Run() { } public static BaseMonitoringUnit Create(JsonElement config, RegistersContainer registers) { var type = config.GetProperty("Type").GetString(); if (type == "Sensors") { return new SensorsMonitoringUnit(config, registers); } else if (type == "MDStat") { return new MDStatMonitoringUnit(config, registers); } else { Console.WriteLine("Unknown unit type " + type); return null; } } } }