fix: get temperatures

This commit is contained in:
2018-11-29 20:03:42 +01:00
parent e9630f5a19
commit cc16bb9555
7 changed files with 124 additions and 113 deletions

View File

@ -10,6 +10,7 @@ import (
"time"
stypes "git.cryptic.systems/fh-trier/go-flucky-server/pkg/types"
"git.cryptic.systems/fh-trier/go-flucky/pkg/httpcall"
"git.cryptic.systems/fh-trier/go-flucky/pkg/logs"
"git.cryptic.systems/fh-trier/go-flucky/pkg/config"
@ -21,7 +22,7 @@ import (
var temperatureLog = "temperature.log"
// Get ...
func Get(sensorNames []string, writeLogfiles, push bool, configDir string, w io.Writer) error {
func Get(sensorNames []string, push bool, configDir string, w io.Writer) error {
// get cnf
cnf, err := config.Read(configDir)
@ -37,7 +38,8 @@ func Get(sensorNames []string, writeLogfiles, push bool, configDir string, w io.
for _, sensorName := range sensorNames {
for _, sensor := range cnf.Sensors {
if sensorName == *sensor.SensorName ||
sensorName == sensor.SensorID {
sensorName == sensor.SensorID ||
sensorName == *sensor.WireID {
sensors = append(sensors, sensor)
}
}
@ -85,23 +87,22 @@ func Get(sensorNames []string, writeLogfiles, push bool, configDir string, w io.
tw.Flush()
// if writeLogfiles {
// if err := logs.Temperature(temperatures, cnf); err != nil {
// return err
// }
// }
// if push {
// if err := httpcall.SendTemperatures(temperatures, configDir); err != nil {
// return err
// }
// }
// write logfiles or push
if !push {
if err := logs.AppendTemperature(temperatures, cnf); err != nil {
return err
}
} else {
if err := httpcall.SendTemperatures(temperatures, configDir); err != nil {
return err
}
}
return nil
}
func GetFollow(sensorNames []string, writeLogfiles, push bool, configDir string, w io.Writer) error {
func Follow(sensorNames []string, push bool, configDir string, w io.Writer) error {
// get cnf
cnf, err := config.Read(configDir)
@ -153,7 +154,7 @@ func GetFollow(sensorNames []string, writeLogfiles, push bool, configDir string,
// get temperatures from sensors and write them into writer
temperatures, err = getTemperatures(sensors)
for _, temperature := range temperatures {
fmt.Fprintf(tw, "%v\t", temperature.TemperatureValue)
fmt.Fprintf(tw, "%3.3f\t", temperature.TemperatureValue)
}
fmt.Fprint(tw, "\n")
@ -172,9 +173,13 @@ func GetFollow(sensorNames []string, writeLogfiles, push bool, configDir string,
fmt.Printf("Got signal %s, initiating shutdown\n", sig)
ticker.Stop()
// write logfiles
if writeLogfiles {
if err := logs.Temperature(temperatures, cnf); err != nil {
// write logfiles or push
if !push {
if err := logs.AppendTemperature(temperatures, cnf); err != nil {
return err
}
} else {
if err := httpcall.SendTemperatures(temperatures, configDir); err != nil {
return err
}
}
@ -182,20 +187,27 @@ func GetFollow(sensorNames []string, writeLogfiles, push bool, configDir string,
return nil
}
func Push(sensorName, configDir string) error {
// Push ...
func Push(configDir string) error {
// var temperatures []*stypes.Temperature
// get cnf
cnf, err := config.Read(configDir)
if err != nil {
return err
}
// temperature, err := getTemperature(sensorName, configDir)
// if err != nil {
// return err
// }
temperatures, err := logs.ReadTemperatures(cnf.TemperatureLogfile)
if err != nil {
return err
}
// temperatures = append(temperatures, &temperature)
if err := httpcall.SendTemperatures(temperatures, configDir); err != nil {
return err
}
// if err := httpcall.SendTemperatures(temperatures, configDir); err != nil {
// return err
// }
if err := logs.FlushTemperatures(cnf.TemperatureLogfile); err != nil {
return err
}
return nil
@ -214,8 +226,9 @@ func getTemperatures(sensors []*stypes.Sensor) ([]*stypes.Temperature, error) {
temperature := &stypes.Temperature{
TemperatureID: uuid.NewV4().String(),
TemperatureValue: t,
SensorID: sensor.SensorID,
TemperatureDate: time.Now(),
SensorID: sensor.SensorID,
CreationDate: time.Now(),
}
temperatures = append(temperatures, temperature)