Fetch status on startup

This commit is contained in:
Gregor Riepl 2021-01-31 18:30:22 +01:00
parent cb83de4bf5
commit 22315fbe47

View file

@ -28,8 +28,9 @@ func NewCan(intf string) (*Can, error) {
func (c *Can) Start() { func (c *Can) Start() {
go func() { go func() {
// send the init sequence // send the init sequence, but (hopefully) defer until after we start listening
c.initialize() // FIXME this is inherently racy :(
go c.initialize()
// ConnectAndPublish will block, so we'll just leave the Printf hanging here // ConnectAndPublish will block, so we'll just leave the Printf hanging here
log.Printf("CAN bus shut down: %v", c.bus.ConnectAndPublish()) log.Printf("CAN bus shut down: %v", c.bus.ConnectAndPublish())
}() }()
@ -113,7 +114,9 @@ func (c *Can) Cancel() error {
return c.bus.Publish(DispenseMessage{DispenseSlotOff}.Encode()) return c.bus.Publish(DispenseMessage{DispenseSlotOff}.Encode())
} }
func (c *Can) initialize() error { func (c *Can) initialize() {
// enable automatic status updates // enable automatic status updates
return c.bus.Publish(AutoMessage{true}.Encode()) c.bus.Publish(AutoMessage{true}.Encode())
c.bus.Publish(RequestFeedbackMessage())
c.bus.Publish(RequestPowerMessage())
} }