feat(pkg/sensor): new support for sensor bme280

This commit is contained in:
2019-06-30 14:34:13 +02:00
parent 96eb1f4036
commit 289aaf2093
20 changed files with 309 additions and 87 deletions

View File

@ -14,28 +14,6 @@ type csvLogfile struct {
logfile string
}
func (cl *csvLogfile) Append(compression bool, measuredValues []types.MeasuredValue) error {
allMeasuredValues, err := cl.Read()
if err != nil {
return err
}
allMeasuredValues = append(allMeasuredValues, measuredValues...)
if compression {
allMeasuredValues = Compression(allMeasuredValues)
}
err = cl.Write(allMeasuredValues)
if err != nil {
return err
}
return nil
}
func (cl *csvLogfile) Read() ([]types.MeasuredValue, error) {
if _, err := os.Stat(cl.logfile); os.IsNotExist(err) {
return nil, fmt.Errorf("%v: %v", errorLogfileNotFound, cl.logfile)

View File

@ -5,7 +5,6 @@ import (
)
type Logfile interface {
Append(compression bool, measuredValues []types.MeasuredValue) error
Read() ([]types.MeasuredValue, error)
Write(measuredValues []types.MeasuredValue) error
}

View File

@ -17,28 +17,6 @@ type jsonLogfile struct {
logfile string
}
func (jl *jsonLogfile) Append(compression bool, measuredValues []types.MeasuredValue) error {
allMeasuredValues, err := jl.Read()
if err != nil {
return err
}
allMeasuredValues = append(allMeasuredValues, measuredValues...)
if compression {
allMeasuredValues = Compression(allMeasuredValues)
}
err = jl.Write(allMeasuredValues)
if err != nil {
return err
}
return nil
}
func (jl *jsonLogfile) Read() ([]types.MeasuredValue, error) {
if _, err := os.Stat(jl.logfile); os.IsNotExist(err) {

View File

@ -1,6 +1,7 @@
package logfile
import (
"math"
"path/filepath"
"sort"
"time"
@ -9,7 +10,35 @@ import (
)
// var validUUID = regexp.MustCompile("^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[8|9|aA|bB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$")
var timeFormat = time.RFC3339
var timeFormat = "2006-01-02T15:04:05.999999Z07:00"
func Append(logfile Logfile, compression bool, round float64, measuredValues []types.MeasuredValue) error {
if round != 0 {
for _, measuredValue := range measuredValues {
measuredValue.SetValue(math.Round(measuredValue.GetValue()/round) * round)
}
}
allMeasuredValues, err := logfile.Read()
if err != nil {
return err
}
allMeasuredValues = append(allMeasuredValues, measuredValues...)
if compression {
allMeasuredValues = Compression(allMeasuredValues)
}
err = logfile.Write(allMeasuredValues)
if err != nil {
return err
}
return nil
}
// Compression the measured values. The system checks whether the measured values
// of the same type correspond to those of the predecessor. If this is the case,