From 4975ce21fa0c5dba6ba5ee023459340530059722 Mon Sep 17 00:00:00 2001 From: Markus Pesch Date: Thu, 27 Jun 2019 18:43:16 +0200 Subject: [PATCH] fix(pkg/config): get temperature or humidity sensors --- pkg/config/flucky.go | 44 ++++++++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/pkg/config/flucky.go b/pkg/config/flucky.go index c3f2fd9..bdf782c 100644 --- a/pkg/config/flucky.go +++ b/pkg/config/flucky.go @@ -226,25 +226,27 @@ func (c *Configuration) EnableSensor(name string) error { // GetHumiditySensors returns a list of humidity sensors func (c *Configuration) GetHumiditySensors(option Option) []sensor.Sensor { - humiditySensors := c.getHumiditySensors() + sensors := c.getHumiditySensors() + + cachedSensors := make([]*types.Sensor, 0) switch option { case ENABLED: - for i, humiditySensor := range humiditySensors { - if !humiditySensor.SensorEnabled { - humiditySensors = append(humiditySensors[:i], humiditySensors[i+1:]...) + for _, sensor := range sensors { + if sensor.SensorEnabled { + cachedSensors = append(cachedSensors, sensor) } } - return c.convertSensors(humiditySensors) + return c.convertSensors(cachedSensors) case DISABLED: - for i, humiditySensor := range humiditySensors { - if humiditySensor.SensorEnabled { - humiditySensors = append(humiditySensors[:i], humiditySensors[i+1:]...) + for _, sensor := range sensors { + if !sensor.SensorEnabled { + cachedSensors = append(cachedSensors, sensor) } } - return c.convertSensors(humiditySensors) + return c.convertSensors(cachedSensors) default: - return c.convertSensors(humiditySensors) + return c.convertSensors(cachedSensors) } } @@ -321,25 +323,27 @@ func (c *Configuration) GetRGBLEDsByName(names []string) []rgbled.RGBLED { // GetTemperatureSensors returns a list of temperature sensors func (c *Configuration) GetTemperatureSensors(option Option) []sensor.Sensor { - temperatureSensors := c.getTemperatureSensors() + sensors := c.getTemperatureSensors() + + cachedSensors := make([]*types.Sensor, 0) switch option { case ENABLED: - for i, temperatureSensor := range temperatureSensors { - if !temperatureSensor.SensorEnabled { - temperatureSensors = append(temperatureSensors[:i], temperatureSensors[i+1:]...) + for _, sensor := range sensors { + if sensor.SensorEnabled { + cachedSensors = append(cachedSensors, sensor) } } - return c.convertSensors(temperatureSensors) + return c.convertSensors(cachedSensors) case DISABLED: - for i, temperatureSensor := range temperatureSensors { - if temperatureSensor.SensorEnabled { - temperatureSensors = append(temperatureSensors[:i], temperatureSensors[i+1:]...) + for _, sensor := range sensors { + if !sensor.SensorEnabled { + cachedSensors = append(cachedSensors, sensor) } } - return c.convertSensors(temperatureSensors) + return c.convertSensors(cachedSensors) default: - return c.convertSensors(temperatureSensors) + return c.convertSensors(cachedSensors) } }