| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- package core
- import (
- "fmt"
- "log"
- "os"
- "strconv"
- )
- func init() {
- }
- // PersistTemp creates a file in /dev/shm
- // and saves the setppoint temperature to it. Every time
- // the setupoint is changed, this function should be called
- // and will persist the value. This is not persistant across
- // system reboots.
- func PersistTemp(currentTemp float64) {
- persistFile := "/dev/shm/persistFile"
- f, err := os.OpenFile(persistFile, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0644)
- if err != nil {
- log.Fatalf("persistence file write failed : %s", err)
- }
- defer f.Close()
- fmt.Fprintf(f, "%f", currentTemp)
- f.Sync()
- }
- // RecoverTemp is a companion to PersistTemp,
- // reading from the file in /dev/shm and setting the setpoint
- // at application startup.
- func RecoverTemp() (recoverTemp float64) {
- recoverFile := "/dev/shm/persistFile"
- log.Printf("reading setpoint from %s", recoverFile)
- f, err := os.ReadFile(recoverFile)
- if err != nil {
- log.Fatalf("persistence file recovery failed: %s", err)
- }
- recoverTemp, err = strconv.ParseFloat(string(f), 64)
- if err != nil {
- log.Fatalf("persistence conversion failed: %s", err)
- }
- log.Printf("setting setpoint to %f", recoverTemp)
- return recoverTemp
- }
|