Fix onewire reset
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Søren Rasmussen 2022-08-02 05:15:03 +02:00
parent e25905c20f
commit 2c8db8ff0b

View file

@ -104,8 +104,6 @@ func PollSensors(ctx context.Context, wg *sync.WaitGroup, readingInterval time.D
break break
} }
accErrTrigger = 0
// Ensure that we wait for sensors to convert data. // Ensure that we wait for sensors to convert data.
deltaSleep := sensorConversionTime - time.Since(start) deltaSleep := sensorConversionTime - time.Since(start)
if deltaSleep > 0 { if deltaSleep > 0 {
@ -116,7 +114,18 @@ func PollSensors(ctx context.Context, wg *sync.WaitGroup, readingInterval time.D
goto poll_bus goto poll_bus
case BulkReadReady: case BulkReadReady:
readSensors(hub) if !readSensors(hub) {
accErrTrigger++
} else {
accErrTrigger = 0
}
}
case c := <-ConfigUpdate:
configure(c)
case <-ctx.Done():
return
} }
if accErrTrigger > 60 { if accErrTrigger > 60 {
@ -131,17 +140,10 @@ func PollSensors(ctx context.Context, wg *sync.WaitGroup, readingInterval time.D
log.Fatal("Thermal bulk read failed 60 times in a row -- terminating") log.Fatal("Thermal bulk read failed 60 times in a row -- terminating")
} }
} }
case c := <-ConfigUpdate:
configure(c)
case <-ctx.Done():
return
}
} }
} }
func readSensors(hub *sentry.Hub) { func readSensors(hub *sentry.Hub) bool {
r := TemperatureReading{ r := TemperatureReading{
Time: time.Now(), Time: time.Now(),
Ambient: NaN, Ambient: NaN,
@ -187,7 +189,7 @@ func readSensors(hub *sentry.Hub) {
// Throw away reading if any sensor failed // Throw away reading if any sensor failed
if hasReadFailure { if hasReadFailure {
return return false
} }
select { select {
@ -199,6 +201,8 @@ func readSensors(hub *sentry.Hub) {
hub.CaptureException(err) hub.CaptureException(err)
log.Fatal(err) log.Fatal(err)
} }
return true
} }
func triggerBulkRead() error { func triggerBulkRead() error {