use crate::{
contrib::types::{DecawattHours, Percentage, Watts},
protocol::{address, function::ReadHoldingRegisters},
tcp,
};
pub mod functions;
pub mod schedule;
pub mod types;
pub const UNIT_ID: tcp::UnitId = tcp::UnitId::Significant(1);
pub type ReadStateOfHealth = ReadHoldingRegisters<address::Const<37624>, Percentage<u16>>;
pub type ReadDesignCapacity = ReadHoldingRegisters<address::Const<37635>, DecawattHours<u16>>;
pub type ReadTotalActivePower = ReadHoldingRegisters<address::Const<39134>, Watts<i32>>;
pub type ReadEpsActivePower = ReadHoldingRegisters<address::Const<39216>, Watts<i32>>;
pub type ReadStateOfCharge = ReadHoldingRegisters<address::Const<39424>, Percentage<u16>>;
pub type ReadTotalGridExportEnergy =
ReadHoldingRegisters<address::Const<39621>, DecawattHours<u32>>;
pub type ReadTotalGridImportEnergy =
ReadHoldingRegisters<address::Const<39625>, DecawattHours<u32>>;
pub type ReadStateOfChargeSettings =
ReadHoldingRegisters<address::Const<46609>, types::StateOfChargeSettings>;
pub type ReadMinimumSystemStateOfCharge =
ReadHoldingRegisters<address::Const<46609>, Percentage<u16>>;
pub type ReadMaximumStateOfCharge = ReadHoldingRegisters<address::Const<46610>, Percentage<u16>>;
pub type ReadMinimumStateOfChargeOnGrid =
ReadHoldingRegisters<address::Const<46611>, Percentage<u16>>;