fix(pkg/types): use measured values as struct instead interface

This commit is contained in:
2019-07-02 22:33:01 +02:00
parent d703d33e08
commit 825511c3b5
23 changed files with 218 additions and 659 deletions

View File

@ -10,13 +10,13 @@ import (
)
// GetSensorsByMeasuredValues returns commulated list of sensors by measured values
func GetSensorsByMeasuredValues(measuredValues []types.MeasuredValue, cnf *config.Configuration) []*types.Sensor {
func GetSensorsByMeasuredValues(measuredValues []*types.MeasuredValue, cnf *config.Configuration) []*types.Sensor {
sensors := []*types.Sensor{}
for _, measuredValue := range measuredValues {
duplicated := false
foundSensor := &types.Sensor{}
for _, cnfSensor := range cnf.Sensors {
if measuredValue.GetSensorID() == cnfSensor.SensorID {
if measuredValue.SensorID == cnfSensor.SensorID {
foundSensor = cnfSensor
// compare if id has already been added to list
@ -35,7 +35,7 @@ func GetSensorsByMeasuredValues(measuredValues []types.MeasuredValue, cnf *confi
sensors = append(sensors, foundSensor)
continue
} else {
sensors = append(sensors, &types.Sensor{SensorID: measuredValue.GetSensorID()})
sensors = append(sensors, &types.Sensor{SensorID: measuredValue.SensorID})
}
}
return sensors
@ -81,14 +81,14 @@ func PrintSensors(cnf *config.Configuration, w io.Writer) error {
}
// PrintMeasuredValues displays a list of measured values
func PrintMeasuredValues(measuredValues []types.MeasuredValue, cnf *config.Configuration, w io.Writer) {
func PrintMeasuredValues(measuredValues []*types.MeasuredValue, cnf *config.Configuration, w io.Writer) {
sensors := GetSensorsByMeasuredValues(measuredValues, cnf)
// sort measured values for every sensor
orderedMeasuredValues := make(map[string][]types.MeasuredValue)
orderedMeasuredValues := make(map[string][]*types.MeasuredValue)
for _, measuredValue := range measuredValues {
orderedMeasuredValues[measuredValue.GetSensorID()] = append(orderedMeasuredValues[measuredValue.GetSensorID()], measuredValue)
orderedMeasuredValues[measuredValue.SensorID] = append(orderedMeasuredValues[measuredValue.SensorID], measuredValue)
}
// declare tabwriter
@ -114,7 +114,7 @@ func PrintMeasuredValues(measuredValues []types.MeasuredValue, cnf *config.Confi
for i := 0; i < maxLength; i++ {
for _, sensor := range sensors {
if len(orderedMeasuredValues[sensor.SensorID]) > i {
fmt.Fprintf(tw, "%3.3f\t", orderedMeasuredValues[sensor.SensorID][i].GetValue())
fmt.Fprintf(tw, "%3.3f\t", orderedMeasuredValues[sensor.SensorID][i].Value)
} else {
fmt.Fprint(tw, "\t")
}