Documentation ¶
Index ¶
- type SectionSchedule
- type WaterSectionID
- type WaterSectionManager
- func (wsm *WaterSectionManager) AllOff(now timing.TimeUnit) (anyOn bool)
- func (wsm *WaterSectionManager) ForceOn(idx WaterSectionID, now timing.TimeUnit) (success bool)
- func (wsm *WaterSectionManager) IsOn() *SectionSchedule
- func (wsm *WaterSectionManager) NextChange() *SectionSchedule
- func (wsm *WaterSectionManager) Process(now timing.TimeUnit)
- func (wsm *WaterSectionManager) SendStats(now timing.TimeUnit)
- func (wsm *WaterSectionManager) Update(idx WaterSectionID, on, off timing.TimeUnit, nextActionAt timing.TimeUnit) bool
- func (wsm *WaterSectionManager) UpdateNextActionAt(idx WaterSectionID, n timing.TimeUnit) bool
- func (wsm *WaterSectionManager) UpdateOffSeconds(idx WaterSectionID, n timing.TimeUnit) bool
- func (wsm *WaterSectionManager) UpdateOnSeconds(idx WaterSectionID, n timing.TimeUnit) bool
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type SectionSchedule ¶
type SectionSchedule struct {
OnSeconds, OffSeconds timing.TimeUnit
WaterSectionID WaterSectionID
// state
NextActionAt timing.TimeUnit
OnAccum, OffAccum timing.TimeUnit
LastActionAt timing.TimeUnit
// contains filtered or unexported fields
}
func (*SectionSchedule) IsOn ¶
func (s *SectionSchedule) IsOn() bool
func (*SectionSchedule) Off ¶
func (s *SectionSchedule) Off(now timing.TimeUnit)
func (*SectionSchedule) On ¶
func (s *SectionSchedule) On(now timing.TimeUnit)
func (*SectionSchedule) ShouldTurnOff ¶
func (s *SectionSchedule) ShouldTurnOff(now timing.TimeUnit) bool
func (*SectionSchedule) ShouldTurnOn ¶
func (s *SectionSchedule) ShouldTurnOn(now timing.TimeUnit) bool
type WaterSectionID ¶
type WaterSectionID int8
type WaterSectionManager ¶
type WaterSectionManager struct { Sections []*hardware.WaterSection Schedules []*SectionSchedule }
func NewWaterSectionManager ¶
func NewWaterSectionManager(sections ...*hardware.WaterSection) *WaterSectionManager
func (*WaterSectionManager) AllOff ¶
func (wsm *WaterSectionManager) AllOff(now timing.TimeUnit) (anyOn bool)
func (*WaterSectionManager) ForceOn ¶
func (wsm *WaterSectionManager) ForceOn(idx WaterSectionID, now timing.TimeUnit) (success bool)
func (*WaterSectionManager) IsOn ¶
func (wsm *WaterSectionManager) IsOn() *SectionSchedule
func (*WaterSectionManager) NextChange ¶
func (wsm *WaterSectionManager) NextChange() *SectionSchedule
func (*WaterSectionManager) Process ¶
func (wsm *WaterSectionManager) Process(now timing.TimeUnit)
func (*WaterSectionManager) SendStats ¶
func (wsm *WaterSectionManager) SendStats(now timing.TimeUnit)
func (*WaterSectionManager) Update ¶
func (wsm *WaterSectionManager) Update(idx WaterSectionID, on, off timing.TimeUnit, nextActionAt timing.TimeUnit) bool
func (*WaterSectionManager) UpdateNextActionAt ¶
func (wsm *WaterSectionManager) UpdateNextActionAt(idx WaterSectionID, n timing.TimeUnit) bool
func (*WaterSectionManager) UpdateOffSeconds ¶
func (wsm *WaterSectionManager) UpdateOffSeconds(idx WaterSectionID, n timing.TimeUnit) bool
func (*WaterSectionManager) UpdateOnSeconds ¶
func (wsm *WaterSectionManager) UpdateOnSeconds(idx WaterSectionID, n timing.TimeUnit) bool
Click to show internal directories.
Click to hide internal directories.