42 lines
944 B
C#
42 lines
944 B
C#
using InnovEnergy.Lib.Devices.Adam6360D;
|
|
using InnovEnergy.Lib.Protocols.Modbus.Channels;
|
|
|
|
namespace InnovEnergy.App.SaliMax.SaliMaxRelays;
|
|
|
|
public class RelaysDevice
|
|
{
|
|
private Adam6360DDevice AdamDevice { get; }
|
|
|
|
public RelaysDevice(String hostname) => AdamDevice = new Adam6360DDevice(hostname, 2);
|
|
public RelaysDevice(Channel channel) => AdamDevice = new Adam6360DDevice(channel, 2);
|
|
|
|
public RelaysRecord? Read()
|
|
{
|
|
try
|
|
{
|
|
return AdamDevice.Read();
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
$"Failed to read from {nameof(RelaysDevice)}\n{e}".LogError();
|
|
|
|
// TODO: log
|
|
return null;
|
|
}
|
|
}
|
|
|
|
public void Write(RelaysRecord r)
|
|
{
|
|
try
|
|
{
|
|
AdamDevice.Write(r);
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
$"Failed to write to {nameof(RelaysDevice)}\n{e}".LogError();
|
|
}
|
|
}
|
|
}
|
|
|
|
|