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
}
accErrTrigger = 0
// Ensure that we wait for sensors to convert data.
deltaSleep := sensorConversionTime - time.Since(start)
if deltaSleep > 0 {
@ -116,19 +114,10 @@ func PollSensors(ctx context.Context, wg *sync.WaitGroup, readingInterval time.D
goto poll_bus
case BulkReadReady:
readSensors(hub)
}
if accErrTrigger > 60 {
select {
case RequestReset <- true:
log.Print("Thermal bulk read failed 60 times in a row -- bus reset")
// Reset counter to allow 60 more reads
if !readSensors(hub) {
accErrTrigger++
} else {
accErrTrigger = 0
default:
log.Fatal("Thermal bulk read failed 60 times in a row -- terminating")
}
}
@ -138,10 +127,23 @@ func PollSensors(ctx context.Context, wg *sync.WaitGroup, readingInterval time.D
case <-ctx.Done():
return
}
if accErrTrigger > 60 {
select {
case RequestReset <- true:
log.Print("Thermal bulk read failed 60 times in a row -- bus reset")
// Reset counter to allow 60 more reads
accErrTrigger = 0
default:
log.Fatal("Thermal bulk read failed 60 times in a row -- terminating")
}
}
}
}
func readSensors(hub *sentry.Hub) {
func readSensors(hub *sentry.Hub) bool {
r := TemperatureReading{
Time: time.Now(),
Ambient: NaN,
@ -187,7 +189,7 @@ func readSensors(hub *sentry.Hub) {
// Throw away reading if any sensor failed
if hasReadFailure {
return
return false
}
select {
@ -199,6 +201,8 @@ func readSensors(hub *sentry.Hub) {
hub.CaptureException(err)
log.Fatal(err)
}
return true
}
func triggerBulkRead() error {