The UPSide state diagram
I think this diagram is now stable enough to put on the record.

UPSide state diagram
Both this diagram and the Go code for the policy logic are generated from this pseudocode:
render.state("DaemonUp", "Daemon running")
render.action("DaemonUp", "ChargeWait", CHARGING)
render.state("ChargeWait", "Charge wait")
render.action("ChargeWait", "MainsUp", CHARGED)
render.action("ChargeWait", "OnBattery", MAINSDROP)
render.state("MainsUp", "On mains power")
render.action("DaemonUp", "OnBattery", MAINSOFF)
render.state("OnBattery", "On battery power")
render.action("MainsUp", "OnBattery", MAINSDROP)
render.action("OnBattery", "Overtime", DWELLWARNING)
render.state("Overtime", "User warned of shutdown")
render.action("Overtime", "PreShutdown", DWELLTIMEOUT)
render.state("PreShutdown", "Awaiting power drop")
render.action("PreShutdown", "ChargeWait", RESTORED)
render.state("UPSCrash", "UPS goes dark")
render.state("HostDown", "Host has shut down")
render.action("PreShutdown", "HostDown", HOSTDOWN)
render.action("PreShutdown", "UPSCrash", BATTERYDRAIN, unreachable=True)
render.action("OnBattery", "ChargeWait", RESTORED)
render.action("Overtime", "ChargeWait", RESTORED)
render.action("HostDown", "MainsUp", RESTORED_LATE)
render.action("HostDown", "UPSCrash", BATTERYDRAIN, unreachable=True)
To see the full context of this, clone git@gitlab.com:esr/upside.git and explore the docs/ directory.
Published on April 23, 2018 03:48
No comments have been added yet.
Eric S. Raymond's Blog
- Eric S. Raymond's profile
- 140 followers
Eric S. Raymond isn't a Goodreads Author
(yet),
but they
do have a blog,
so here are some recent posts imported from
their feed.
