Documentation
¶
Index ¶
- type Alarm
- type AlarmDetails
- type ArrayFault
- type ArrayFaultDetails
- type ChargeSettings
- type ChargeState
- type ChargeStatusLEDState
- type ChargerStatus
- type Dev
- func (dev *Dev) ReadChargeSettings() (ChargeSettings, error)
- func (dev *Dev) ReadChargerStatus() (ChargerStatus, error)
- func (dev *Dev) ReadFilteredADCData() (FilteredADCData, error)
- func (dev *Dev) ReadLoadSettings() (LoadSettings, error)
- func (dev *Dev) ReadLoadStatus() (LoadStatus, error)
- func (dev *Dev) ReadLoggedData() ([]LoggedDataRecord, error)
- func (dev *Dev) ReadMiscData() (MiscData, error)
- func (dev *Dev) ReadMiscSettings() (MiscSettings, error)
- func (dev *Dev) ReadPWMSettings() (PWMSettings, error)
- func (dev *Dev) ReadRawADCData() (RawADCData, error)
- func (dev *Dev) ReadStatistics() (Statistics, error)
- func (dev *Dev) ReadTemperatureData() (TemperatureData, error)
- type FilteredADCData
- type LEDState
- type LoadFault
- type LoadFaultDetails
- type LoadSettings
- type LoadState
- type LoadStatus
- type LoggedDataRecord
- type MiscData
- type MiscSettings
- type PWMSettings
- type RawADCData
- type Registers
- func (r *Registers) ReadFloat16(addr uint16) (float16.Float16, error)
- func (r *Registers) ReadFloat16AsFloat32(addr uint16) (float32, error)
- func (r *Registers) ReadFloat16AsFloat32Ptr(addr uint16) (*float32, error)
- func (r *Registers) ReadUint16(addr uint16) (uint16, error)
- func (r *Registers) ReadUint16AsFloat32(addr uint16, divisor float32) (float32, error)
- func (r *Registers) ReadUint16AsFloat32Ptr(addr uint16, divisor float32) (*float32, error)
- func (r *Registers) ReadUint16AsInt16(addr uint16) (int16, error)
- func (r *Registers) ReadUint16AsInt16Ptr(addr uint16) (*int16, error)
- func (r *Registers) ReadUint16Ptr(addr uint16) (*uint16, error)
- func (r *Registers) ReadUint32(addr uint16, wordOrdering WordOrdering) (uint32, error)
- func (r *Registers) ReadUint32AsFloat32(addr uint16, wordOrdering WordOrdering, divisor float32) (float32, error)
- func (r *Registers) ReadUint32AsFloat32Ptr(addr uint16, wordOrdering WordOrdering, divisor float32) (*float32, error)
- func (r *Registers) ReadUint32Ptr(addr uint16, wordOrdering WordOrdering) (*uint32, error)
- type Statistics
- type TemperatureData
- type WordOrdering
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AlarmDetails ¶
type AlarmDetails struct {
Raw uint32
RTSOpen bool
RTSShort bool
RTSDisconnected bool
HeatsinkTemperatureSensorOpen bool
HeatsinkTemperatureSensorShorted bool
HeatsinkHot bool
CurrentLimit bool
IOffset bool
BatterySenseOutOfRange bool
BatterySenseDisconnected bool
Uncalibrated bool
BatteryTemperatureOutOfRange bool
FP10SupplyOutOfRange bool
FETOpen bool
IAOffset bool
ILOffset bool
SupplyOutOfRange bool
Reset bool
LVD bool
LogTimeout bool
EEPROMAccessFailure bool
}
type ArrayFault ¶
type ArrayFault uint16
func (ArrayFault) Details ¶
func (v ArrayFault) Details() ArrayFaultDetails
type ArrayFaultDetails ¶
type ArrayFaultDetails struct {
Raw uint16
OvercurrentPhase1 bool
FETsShorted bool
SoftwareBug bool
BatteryHighVoltageDisconnect bool
ArrayHighVoltageDisconnect bool
EEPROMSettingEdit bool
RTSShorted bool
RTSWasValidNowDisconnected bool
LocalTemperatureSensorFailed bool
BatteryLowVoltageDisconnect bool
DIPSwitchChanged bool
ProcessorSupplyFault bool
}
type ChargeSettings ¶
type ChargeSettings struct {
RegulationVoltageAt25C *float32 // V, EV_reg Regulation Voltage @ 25ºC
FloatVoltageAt25C *float32 // V, EV_float Float Voltage @ 25ºC
TimeBeforeEnteringFloat *uint16 // s, Et_float Time Before Entering Float (Absorption Time)
TimeBeforeEnteringFloatDueToLowBattery *uint16 // s, Et_floatlb Time Before Entering Float due to Low Battery (Absorption Extension Time)
VoltageTriggerForLowBatteryFloatTime *float32 // V, EV_floatlb_trip Voltage Trigger for Low Battery Float Time
VoltageToCancelFloat *float32 // V, EV_float_cancel Voltage to Cancel Float
ExitFloatTime *uint16 // s, Et_float_exit_cum Exit Float Time
EqualizeVoltageAt25C *float32 // V, EV_eq Equalize Voltage @ 25ºC
DaysBetweenEQCycles *uint16 // days, Et_eqcalendar Days Between EQ Cycles
EqualizeTimeLimitAboveEVReg *uint16 // s, Et_eq_above Equalize Time Limit above EV_reg
EqualizeTimeLimitAtEVEq *uint16 // s, Et_eq_reg Equalize Time Limit at EV_eq
ReferenceChargeVoltageLimit *float32 // V, Evb_ref_charge_lim Reference Charge Voltage Limit
TemperatureCompensationCoefficient *float32 // V, EV_tempcomp Temperature Compensation Coefficient
HighVoltageDisconnectAt25C *float32 // V, EV_hvd High Voltage Disconnect @ 25ºC
HighVoltageReconnect *float32 // V, EV_hvr High Voltage Reconnect
MaximumChargeVoltageReference *float32 // V, Evb_ref_lim Maximum Charge Voltage Reference (0 disables)
MaxBatteryTempCompensationLimit *int16 // ºC, ETb_max Max Battery Temp Compensation Limit
MinBatteryTempCompensationLimit *int16 // ºC, ETb_min Min Battery Temp Compensation Limit
}
type ChargeState ¶
type ChargeState uint16
const ( ChargeStateStart ChargeState = iota ChargeStateNightCheck ChargeStateDisconnect ChargeStateNight ChargeStateFault ChargeStateBulk ChargeStateAbsorption ChargeStateFloat ChargeStateEqualize )
func (ChargeState) String ¶
func (v ChargeState) String() string
type ChargeStatusLEDState ¶
type ChargeStatusLEDState uint16
const ( ChargeStatusLEDStateLEDStart ChargeStatusLEDState = iota ChargeStatusLEDStateLEDStart2 ChargeStatusLEDStateLEDBranch ChargeStatusLEDStateEqualize ChargeStatusLEDStateFloat ChargeStatusLEDStateAbsorption ChargeStatusLEDStateGreenLED ChargeStatusLEDStateGreenYellowLED ChargeStatusLEDStateYellowLED )
func (ChargeStatusLEDState) String ¶
func (v ChargeStatusLEDState) String() string
type ChargerStatus ¶
type ChargerStatus struct {
ChargeState *ChargeState // charge_state Charge State
ArrayFault *ArrayFaultDetails // array_fault Array Fault Bitfield
BatteryVoltage *float32 // V, vb_f Battery Voltage, slow filter (25s)
BatteryRegulatorReferenceVoltage *float32 // V, vb_ref Battery Regulator Reference Voltage
AhChargeResettable *float32 // Ah, Ahc_r Ah Charge Resettable
AhChargeTotal *float32 // Ah, Ahc_t Ah Charge Total
KWhChargeResettable *float32 // kWh, kWhc_r kWh Charge Resettable
KWhChargeTotal *float32 // kWh, kWhc_t kWh Charge Total
BatteryTemperatureFoldback100PercentOutputLimit *float32 // ºC, Tb_lo_limit_100 Battery Temp Foldback 100% Output Limit
BatteryTemperatureFoldback0PercentOutputLimit *float32 // ºC, Tb_lo_limit_0 Battery Temp Foldback 0% Output Limit
}
type Dev ¶
type Dev struct {
// contains filtered or unexported fields
}
func (*Dev) ReadChargeSettings ¶
func (dev *Dev) ReadChargeSettings() (ChargeSettings, error)
func (*Dev) ReadChargerStatus ¶
func (dev *Dev) ReadChargerStatus() (ChargerStatus, error)
func (*Dev) ReadFilteredADCData ¶
func (dev *Dev) ReadFilteredADCData() (FilteredADCData, error)
func (*Dev) ReadLoadSettings ¶
func (dev *Dev) ReadLoadSettings() (LoadSettings, error)
func (*Dev) ReadLoadStatus ¶
func (dev *Dev) ReadLoadStatus() (LoadStatus, error)
func (*Dev) ReadLoggedData ¶
func (dev *Dev) ReadLoggedData() ([]LoggedDataRecord, error)
func (*Dev) ReadMiscData ¶
func (*Dev) ReadMiscSettings ¶
func (dev *Dev) ReadMiscSettings() (MiscSettings, error)
func (*Dev) ReadPWMSettings ¶
func (dev *Dev) ReadPWMSettings() (PWMSettings, error)
func (*Dev) ReadRawADCData ¶
func (dev *Dev) ReadRawADCData() (RawADCData, error)
func (*Dev) ReadStatistics ¶
func (dev *Dev) ReadStatistics() (Statistics, error)
func (*Dev) ReadTemperatureData ¶
func (dev *Dev) ReadTemperatureData() (TemperatureData, error)
type FilteredADCData ¶
type FilteredADCData struct {
ArrayCurrent *float32 // A, adc_ia Array Current
BatteryTerminalVoltage *float32 // V, adc_vbterm Battery Terminal Voltage
ArrayVoltage *float32 // V, adc_va Array Voltage
LoadVoltage *float32 // V, adc_vl Load Voltage
LoadCurrent *float32 // A, adc_il Load Current
BatterySenseVoltage *float32 // V, adc_vbsense Battery Sense Voltage
BatteryVoltage *float32 // V, adc_vb_f_1m Battery Voltage, slow filter (60s)
BatteryCurrent *float32 // A, adc_ib_f_1m Battery Current (net), slow filter (60s)
}
type LEDState ¶
type LEDState uint16
const ( LEDStateLEDStart LEDState = iota LEDStateLEDStart2 LEDStateLEDBranch LEDStateEqualize LEDStateFloat LEDStateAbsorption LEDStateGreenLED LEDStateGreenYellowLED LEDStateYellowLED LEDStateYellowRedLED LEDStateBlinkRedLED LEDStateRedLED LEDStateR_Y_GError LEDStateRY_GError LEDStateRG_YError LEDStateR_YError LEDStateR_GError LEDStateRY_GYError LEDStateGYRError LEDStateGYRx2 LEDStateOff LEDStateGYRx2_Greenx2 LEDStateGYRx2_Redx2 )
type LoadFault ¶
type LoadFault uint16
func (LoadFault) Details ¶
func (v LoadFault) Details() LoadFaultDetails
type LoadFaultDetails ¶
type LoadSettings ¶
type LoadSettings struct {
LowVoltageDisconnect *float32 // V, EV_lvd Low Voltage Disconnect
LowVoltageReconnect *float32 // V, EV_lvr Low Voltage Reconnect
LoadHighVoltageDisconnect *float32 // V, EV_lhvd Load High Voltage Disconnect
LoadHighVoltageReconnect *float32 // V, EV_lhvr Load High Voltage Reconnect
LVDLoadCurrentCompensation *float32 // Ω, ER_icomp LVD Load Current Compensation
LVDWarningTimeout *uint16 // s, Et_lvd_warn LVD Warning Timeout
}
type LoadStatus ¶
type LoggedDataRecord ¶
type LoggedDataRecord struct {
Hourmeter uint32 // hours, hourmeter
AlarmDaily AlarmDetails // -, alarm_daily Alarm Bitfield – daily
LoadFaultDaily LoadFaultDetails // -, load_fault_daily Load Fault Bitfield – daily
ArrayFaultDaily ArrayFaultDetails // -, array_fault_daily Array Fault Bitfield – daily
BatteryVoltageMinimumDaily float32 // V, Vb_min_daily, Battery Voltage Minimum – daily
BatteryVoltageMaximumDaily float32 // V, Vb_max_daily, Battery Voltage Maximum – daily
AhChargeDaily float32 // Ah, Ahc_daily Ah Charge – daily
AhLoadDaily float32 // Ah, Ahl_daily Ah Load – daily
ArrayVoltageMaximumDaily float32 // V, Va_max_daily Maximum Array Voltage – daily
TimeInAbsorptionDaily uint16 // min, time_ab_daily Time in Absorption – daily
TimeInEqualizeDaily uint16 // min, time_eq_daily Time in Equalize – daily
TimeInFloatDaily uint16 // min, time_fl_daily Time in Float – daily
}
type MiscData ¶
type MiscData struct {
Hourmeter *uint32 // hours, hourmeter
Alarm *AlarmDetails // alarm
DIPSwitch *uint16 // dip_switch
LEDState *LEDState // led_state
ChargeStatusLEDState *ChargeStatusLEDState // charge_led_state
LightingShouldBeOn *uint16 // lighting_should_be_on
}
type MiscSettings ¶
type MiscSettings struct {
LEDGreenToGreenAndYellowLimit *float32 // V, EV_soc_g_gy LED Green to Green&Yellow Limit
LEDGreenAndYellowToYellowLimit *float32 // V, EV_soc_gy_y LED Green&Yellow to Yellow Limit
LEDYellowToYellowAndRedLimit *float32 // V, EV_soc_y_yr Yellow to Yellow&Red Limit
LEDYellowAndRedToRedFlashingLimit *float32 // V, EV_soc_yr_r Yellow&Red to Red Flashing Limit
ModbusID *uint16 // Emodbus_id Modbus ID
MeterbusID *uint16 // Emeter_id Meterbus ID
}
type PWMSettings ¶
type PWMSettings struct {
ChargeCurrentLimit *float32 // A, Eic_lim Charge Current Limit
}
type RawADCData ¶
type RawADCData struct {
SupplyVoltage *float32 // V, vdd_actual 3.3V Supply Voltage
GateDriveVoltage *float32 // V, adc_fgdrive Gate Drive Voltage
MeterBusSupplyVoltage *float32 // V, adc_pmeter MeterBus Supply Voltage
InternalReferenceVoltage *float32 // V, adc_vrefint Internal Reference Voltage
NegativeSupplyRailForCurrentMeasurement *float32 // V, adc_FN3 Negative Supply rail for current measurement
LoadFETGateVoltage *float32 // V, adc_gload Load FET gate voltage
ArrayFETGateVoltage *float32 // V, adc_gatepv Array FET gate voltage
}
type Registers ¶
type Registers struct {
// contains filtered or unexported fields
}
func NewRegisters ¶
func NewRegisters(mc *modbus.ModbusClient, regType modbus.RegType) *Registers
func (*Registers) ReadFloat16 ¶
func (*Registers) ReadFloat16AsFloat32 ¶
func (*Registers) ReadFloat16AsFloat32Ptr ¶
func (*Registers) ReadUint16AsFloat32 ¶
func (*Registers) ReadUint16AsFloat32Ptr ¶
func (*Registers) ReadUint16AsInt16 ¶
func (*Registers) ReadUint16AsInt16Ptr ¶
func (*Registers) ReadUint32 ¶
func (r *Registers) ReadUint32(addr uint16, wordOrdering WordOrdering) (uint32, error)
func (*Registers) ReadUint32AsFloat32 ¶
func (*Registers) ReadUint32AsFloat32Ptr ¶
func (*Registers) ReadUint32Ptr ¶
func (r *Registers) ReadUint32Ptr(addr uint16, wordOrdering WordOrdering) (*uint32, error)
type Statistics ¶
type Statistics struct {
Hourmeter *uint32 // hours, hourmeter
AhLoadResettable *float32 // Ah, EAhl_r
AhLoadTotal *float32 // Ah, Eahl_t
AhChargeResettable *float32 // Ah, Eahc_r
AhChargeTotal *float32 // Ah, Eahc_t
KWhcResettable *float32 // kWh, EkWhc_r
KWhcTotal *float32 // kWh, EkWhc_t
BatteryVoltageMinimum *float32 // V, EVb_min
BatteryVoltageMaximum *float32 // V, EVb_max
ArrayVoltageMaximum *float32 // V, EVa_max
TimeSinceLastEqualize *uint16 // days, Etmr_eqcalander
}
type TemperatureData ¶
type WordOrdering ¶
type WordOrdering int
const ( WordOrderingHighFirst WordOrdering = iota WordOrderingLowFirst )
func (WordOrdering) Uint32 ¶
func (wordOrdering WordOrdering) Uint32(v []uint16) uint32
Click to show internal directories.
Click to hide internal directories.