using InnovEnergy.Lib.Utils; namespace InnovEnergy.Lib.Devices.Battery48TL; public class Battery48TlDevices { private readonly IReadOnlyList _Devices; public Battery48TlDevices(IReadOnlyList devices) => _Devices = devices; public Battery48TlRecords Read() { try { var records = _Devices .Select(TryRead) .NotNull() .ToArray(_Devices.Count); return new Battery48TlRecords(records); } catch (Exception e) { Console.WriteLine("Failed to read Battery data \n" + e.Message); // TODO: log return Battery48TlRecords.Null; } } private static Battery48TlRecord? TryRead(Battery48TlDevice d) { try { return d.Read(); } catch (Exception e) { Console.WriteLine($"Failed to read Battery node {d.SlaveId}\n{e.Message}"); // TODO: log return null; } } }