69 lines
2.1 KiB
C#
69 lines
2.1 KiB
C#
using InnovEnergy.Lib.Protocols.Modbus.Reflection.Attributes;
|
|
using InnovEnergy.Lib.StatusApi.DeviceTypes;
|
|
using InnovEnergy.Lib.Units.Composite;
|
|
|
|
#pragma warning disable CS0649
|
|
|
|
namespace InnovEnergy.Lib.Devices.EmuMeter;
|
|
|
|
using Float32 = Single;
|
|
|
|
|
|
[AddressOffset(-2)] // why?
|
|
public record EmuMeterRegisters : IAc3Meter
|
|
{
|
|
[HoldingRegister<Float32>(9002)] private Float32 _ActivePowerL1;
|
|
[HoldingRegister<Float32>(9004)] private Float32 _ActivePowerL2;
|
|
[HoldingRegister<Float32>(9006)] private Float32 _ActivePowerL3;
|
|
|
|
[HoldingRegister<Float32>(9012)] private Float32 _ReactivePowerL1;
|
|
[HoldingRegister<Float32>(9014)] private Float32 _ReactivePowerL2;
|
|
[HoldingRegister<Float32>(9016)] private Float32 _ReactivePowerL3;
|
|
|
|
[HoldingRegister<Float32>(9022)] private Float32 _ApparentPowerL1;
|
|
[HoldingRegister<Float32>(9024)] private Float32 _ApparentPowerL2;
|
|
[HoldingRegister<Float32>(9026)] private Float32 _ApparentPowerL3;
|
|
|
|
[HoldingRegister<Float32>(9102)] private Float32 _CurrentL1;
|
|
[HoldingRegister<Float32>(9104)] private Float32 _CurrentL2;
|
|
[HoldingRegister<Float32>(9106)] private Float32 _CurrentL3;
|
|
|
|
[HoldingRegister<Float32>(9200)] private Float32 _VoltageL1N;
|
|
[HoldingRegister<Float32>(9202)] private Float32 _VoltageL2N;
|
|
[HoldingRegister<Float32>(9204)] private Float32 _VoltageL3N;
|
|
|
|
[HoldingRegister<Float32>(9310)] private Float32 _Frequency;
|
|
|
|
public Ac3Bus Ac => Ac3Bus.FromPhasesAndFrequency
|
|
(
|
|
l1: AcPhase.FromVoltageCurrentActiveReactiveApparent
|
|
(
|
|
_VoltageL1N,
|
|
_CurrentL1,
|
|
_ActivePowerL1,
|
|
_ReactivePowerL1,
|
|
_ApparentPowerL1
|
|
),
|
|
l2: AcPhase.FromVoltageCurrentActiveReactiveApparent
|
|
(
|
|
_VoltageL2N,
|
|
_CurrentL2,
|
|
_ActivePowerL2,
|
|
_ReactivePowerL2,
|
|
_ApparentPowerL2
|
|
),
|
|
l3: AcPhase.FromVoltageCurrentActiveReactiveApparent
|
|
(
|
|
_VoltageL3N,
|
|
_CurrentL3,
|
|
_ActivePowerL3,
|
|
_ReactivePowerL3,
|
|
_ApparentPowerL3
|
|
),
|
|
frequency: _Frequency
|
|
);
|
|
}
|
|
|
|
|
|
|