refactor: temperature
This commit is contained in:
		| @@ -6,10 +6,12 @@ import ( | ||||
| 	"fmt" | ||||
| 	"io" | ||||
| 	"text/tabwriter" | ||||
| 	"time" | ||||
|  | ||||
| 	"git.cryptic.systems/fh-trier/go-flucky/pkg/sensor" | ||||
|  | ||||
| 	"git.cryptic.systems/fh-trier/go-flucky/pkg/types" | ||||
| 	"github.com/satori/go.uuid" | ||||
|  | ||||
| 	"git.cryptic.systems/fh-trier/go-flucky-server/pkg/types" | ||||
| ) | ||||
|  | ||||
| // FluckyConfig dasd | ||||
| @@ -37,12 +39,23 @@ func (fc *FluckyConfig) AddSensor(sensor *types.Sensor) error { | ||||
| 			return fmt.Errorf("Sensor %v with UUID %v already exists", s.SensorName, s.SensorID) | ||||
| 		} | ||||
|  | ||||
| 		if sensor.WireID != nil && | ||||
| 			s.WireID == sensor.WireID { | ||||
| 			return fmt.Errorf("Sensor with 1wire-id %v already exists as %v", s.WireID, s.SensorName) | ||||
| 		if *sensor.WireID != "" && | ||||
| 			*s.WireID == *sensor.WireID { | ||||
| 			return fmt.Errorf("Sensor with 1wire-id %v already exists as %v", *s.WireID, s.SensorName) | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	// check if sensor has a valid device id | ||||
| 	if sensor.DeviceID != fc.Device.DeviceID { | ||||
| 		sensor.DeviceID = fc.Device.DeviceID | ||||
| 	} | ||||
|  | ||||
| 	// overwrite creation date | ||||
| 	sensor.CreationDate = time.Now() | ||||
|  | ||||
| 	//TODO: check if wire sensor exists in /dev/bus/w1/devices | ||||
|  | ||||
| 	// check | ||||
| 	fc.Sensors = append(fc.Sensors, sensor) | ||||
|  | ||||
| 	return nil | ||||
| @@ -110,8 +123,8 @@ func (fc *FluckyConfig) DisableSensor(nameOrUUID string) error { | ||||
|  | ||||
| 		// disable sensor matched after name | ||||
| 		if !validUUID.MatchString(nameOrUUID) && | ||||
| 			*sensor.SensorName == nameOrUUID { | ||||
| 			*sensor.SensorEnabled = false | ||||
| 			sensor.SensorName == nameOrUUID { | ||||
| 			sensor.SensorEnabled = false | ||||
| 			found = true | ||||
| 			break | ||||
| 		} | ||||
| @@ -119,7 +132,7 @@ func (fc *FluckyConfig) DisableSensor(nameOrUUID string) error { | ||||
| 		// remove machted uuid | ||||
| 		if validUUID.MatchString(nameOrUUID) && | ||||
| 			sensor.SensorID == nameOrUUID { | ||||
| 			*sensor.SensorEnabled = false | ||||
| 			sensor.SensorEnabled = false | ||||
| 			found = true | ||||
| 			break | ||||
| 		} | ||||
| @@ -170,8 +183,8 @@ func (fc *FluckyConfig) EnableSensor(nameOrUUID string) error { | ||||
|  | ||||
| 		// disable sensor matched after name | ||||
| 		if !validUUID.MatchString(nameOrUUID) && | ||||
| 			*sensor.SensorName == nameOrUUID { | ||||
| 			*sensor.SensorEnabled = true | ||||
| 			sensor.SensorName == nameOrUUID { | ||||
| 			sensor.SensorEnabled = true | ||||
| 			found = true | ||||
| 			break | ||||
| 		} | ||||
| @@ -179,7 +192,7 @@ func (fc *FluckyConfig) EnableSensor(nameOrUUID string) error { | ||||
| 		// remove machted uuid | ||||
| 		if validUUID.MatchString(nameOrUUID) && | ||||
| 			sensor.SensorID == nameOrUUID { | ||||
| 			*sensor.SensorEnabled = true | ||||
| 			sensor.SensorEnabled = true | ||||
| 			found = true | ||||
| 			break | ||||
| 		} | ||||
| @@ -192,6 +205,45 @@ func (fc *FluckyConfig) EnableSensor(nameOrUUID string) error { | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func (fc *FluckyConfig) GetHumiditySensors() []sensor.HumiditySensor { | ||||
| 	hs := []sensor.HumiditySensor{} | ||||
| 	// for _, s := range fc.Sensors { | ||||
| 	// 	switch s.SensorType { | ||||
| 	// 	case "DHT11": | ||||
| 	// 		hs = append(hs, sensor.DHT11Sensor{ | ||||
| 	// 			Sensor: s, | ||||
| 	// 		}) | ||||
| 	// 	case "DHT22": | ||||
| 	// 		hs = append(hs, sensor.DHT22Sensor{ | ||||
| 	// 			Sensor: s, | ||||
| 	// 		}) | ||||
| 	// 	} | ||||
| 	// } | ||||
| 	return hs | ||||
| } | ||||
|  | ||||
| func (fc *FluckyConfig) GetTemperatureSensors() []sensor.TemperatureSensor { | ||||
| 	ts := []sensor.TemperatureSensor{} | ||||
|  | ||||
| 	for _, s := range fc.Sensors { | ||||
| 		switch s.SensorType { | ||||
| 		case "DHT11": | ||||
| 			ts = append(ts, &sensor.DHT11Sensor{ | ||||
| 				Sensor: s, | ||||
| 			}) | ||||
| 		case "DHT22": | ||||
| 			ts = append(ts, &sensor.DHT22Sensor{ | ||||
| 				Sensor: s, | ||||
| 			}) | ||||
| 		case "DS18B20": | ||||
| 			ts = append(ts, &sensor.DS18B20{ | ||||
| 				Sensor: s, | ||||
| 			}) | ||||
| 		} | ||||
| 	} | ||||
| 	return ts | ||||
| } | ||||
|  | ||||
| // JSONDecoder decode a JSON string from a reader into a struct | ||||
| func (fc *FluckyConfig) JSONDecoder(r io.Reader) error { | ||||
| 	jsonDecoder := json.NewDecoder(r) | ||||
| @@ -234,10 +286,10 @@ func (fc *FluckyConfig) PrintSensors(w io.Writer) error { | ||||
| 	// declar tabwriter | ||||
| 	tw := tabwriter.NewWriter(w, 0, 0, 3, ' ', 0) | ||||
|  | ||||
| 	fmt.Fprint(tw, "id\tname\tlocation\ttype\twire-id\tgpio\tenabled\n") | ||||
| 	fmt.Fprint(tw, "name\tlocation\ttype\twire-id\tgpio\tenabled\n") | ||||
|  | ||||
| 	for _, sensor := range fc.Sensors { | ||||
| 		fmt.Fprintf(tw, "%v\t%v\t%v\t%v\t%v\t%v\t%v\n", sensor.SensorID, *sensor.SensorName, *sensor.SensorLocation, *sensor.SensorType, *sensor.WireID, *sensor.GPIONumber, *sensor.SensorEnabled) | ||||
| 		fmt.Fprintf(tw, "%v\t%v\t%v\t%v\t%v\t%v\n", sensor.SensorName, sensor.SensorLocation, sensor.SensorType, *sensor.WireID, *sensor.GPIONumber, sensor.SensorEnabled) | ||||
| 	} | ||||
|  | ||||
| 	tw.Flush() | ||||
| @@ -253,10 +305,9 @@ func (fc *FluckyConfig) RemoveSensor(nameOrUUID string) error { | ||||
|  | ||||
| 		// remove machted name | ||||
| 		if !validUUID.MatchString(nameOrUUID) && | ||||
| 			*sensor.SensorName == nameOrUUID { | ||||
| 			sensor.SensorName == nameOrUUID { | ||||
| 			fc.Sensors = append(fc.Sensors[:i], fc.Sensors[i+1:]...) | ||||
| 			found = true | ||||
| 			break | ||||
| 		} | ||||
|  | ||||
| 		// remove machted uuid | ||||
| @@ -264,12 +315,11 @@ func (fc *FluckyConfig) RemoveSensor(nameOrUUID string) error { | ||||
| 			sensor.SensorID == nameOrUUID { | ||||
| 			fc.Sensors = append(fc.Sensors[:i], fc.Sensors[i+1:]...) | ||||
| 			found = true | ||||
| 			break | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	if !found { | ||||
| 		return fmt.Errorf("Can not find remote %v", nameOrUUID) | ||||
| 		return fmt.Errorf("Can not find sensor %v", nameOrUUID) | ||||
| 	} | ||||
|  | ||||
| 	return nil | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| package config | ||||
|  | ||||
| import "git.cryptic.systems/fh-trier/go-flucky-server/pkg/types" | ||||
| import "git.cryptic.systems/fh-trier/go-flucky/pkg/types" | ||||
|  | ||||
| // Remote ... | ||||
| type Remote struct { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user