From fdce8f51e967d6cc462c3ebee62a41842a14e58e Mon Sep 17 00:00:00 2001 From: Mike Shoup Date: Fri, 28 Sep 2018 12:58:07 -0600 Subject: [PATCH] Add some skeletons --- run.go | 38 ++++++++++++++++++++++++++++++++++++++ run_test.go | 14 ++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 run.go create mode 100644 run_test.go diff --git a/run.go b/run.go new file mode 100644 index 0000000..7b7a809 --- /dev/null +++ b/run.go @@ -0,0 +1,38 @@ +package main + +import ( + "errors" + "log" + + "github.com/yryz/ds18b20" +) + +// ReadTemperature will return the current temperature (in degrees celsius) of a specific sensor. +func ReadTemperature(id string) (float64, error) { + sensors, err := ds18b20.Sensors() + if err != nil { + return 0.0, err + } + + for _, sensor := range sensors { + if sensor != id { + continue + } + return ds18b20.Temperature(sensor) + } + + return 0.0, errors.New("Sensor not found") +} + +// RunThermostat monitors the temperature of the supplied sensor and does its best to keep it at the desired state. +func RunThermostat(sensor *Sensor) { + for { + t, err := ReadTemperature(sensor.ID) + + if err != nil { + log.Panicln(err) + } + + log.Printf("%.2f", t) + } +} diff --git a/run_test.go b/run_test.go new file mode 100644 index 0000000..457df67 --- /dev/null +++ b/run_test.go @@ -0,0 +1,14 @@ +package main + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +func Test_ReadTemperature(t *testing.T) { + data, err := ReadTemperature("28-000008083108") + + assert.Equal(t, 0.0, data) + assert.NotEqual(t, nil, err) +}