pub mod schedule;
use crate::{
contrib::{DecawattHours, Percentage, Watts},
protocol::{
address,
function::{ReadHoldingRegisters, WriteMultipleRegisters},
},
};
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 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>>;
pub type ReadScheduleEntry =
ReadHoldingRegisters<address::Stride<48010, schedule::Entry>, schedule::Entry>;
pub type ReadScheduleEntryBlock = ReadHoldingRegisters<schedule::BlockIndex, schedule::Block>;
pub type WriteScheduleEntryBlock = WriteMultipleRegisters<schedule::BlockIndex, schedule::Block>;