using eCIAv2.Library.Config; using eCIAv2.Library.Devices.DIIO; using eCIAv2.Library.Devices.Scanner; using eCIAv2.Library.Services; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace eCIAv2.Library.Devices { public class DeviceManager { private readonly Dictionary _devices = new(); public DeviceManager(DeviceFactory factory, ConfigService config) { foreach (var dicConfig in config.GetConfig().Configs) { //scanner foreach(var device in dicConfig.Value.Device.Scanners) { var scanner = factory.Create(); scanner.DeviceName = device.Name; _devices.Add(device.Name, scanner); } //dio foreach (var device in dicConfig.Value.Device.DIOs) { var dio = factory.Create(); dio.DeviceName = device.Name; _devices.Add(device.Name, dio); } } } public T GetDevice(string name) where T : IDevice { return (T)_devices[name]; } } }