91 lines
2.3 KiB
Go
91 lines
2.3 KiB
Go
package types
|
|
|
|
import (
|
|
"fmt"
|
|
"time"
|
|
)
|
|
|
|
type LED struct {
|
|
LEDID string `json:"led_id"`
|
|
LEDName string `json:"led_name"`
|
|
LEDLocation string `json:"led_location"`
|
|
GPIONumber *GPIO `json:"gpio_number"`
|
|
LEDEnabled bool `json:"led_enabled"`
|
|
LEDColor *LEDColor `json:"led_color"`
|
|
DeviceID string `json:"device_id"`
|
|
CreationDate time.Time `json:"creation_date"`
|
|
}
|
|
|
|
type RGBLED struct {
|
|
RGBLEDID string `json:"rgbled_id"`
|
|
RGBLEDName string `json:"rgbled_name"`
|
|
RGBLEDLocation string `json:"rgbled_location"`
|
|
BaseColorsToGPIO map[BaseColor]*GPIO `json:"color_to_gpio"`
|
|
ActionMapping map[LEDOption]LEDColor `json:"action_mapping"`
|
|
RGBLEDEnabled bool `json:"rgbled_enabled"`
|
|
DeviceID string `json:"device_id"`
|
|
CreationDate time.Time `json:"creation_date"`
|
|
}
|
|
|
|
type BaseColor string
|
|
|
|
const (
|
|
BaseColorBlue BaseColor = "blue"
|
|
BaseColorRed BaseColor = "red"
|
|
BaseColorGreen BaseColor = "green"
|
|
)
|
|
|
|
type LEDColor string
|
|
|
|
const (
|
|
LEDColorBlue LEDColor = "blue"
|
|
LEDColorGreen LEDColor = "green"
|
|
LEDColorNone LEDColor = "none"
|
|
LEDColorPurple LEDColor = "purple"
|
|
LEDColorRed LEDColor = "red"
|
|
LEDColorTurquoise LEDColor = "turquoise"
|
|
LEDColorYellow LEDColor = "yellow"
|
|
LEDColorWhite LEDColor = "white"
|
|
)
|
|
|
|
func StrintToLEDColor(color string) (LEDColor, error) {
|
|
switch color {
|
|
case "blue":
|
|
return LEDColorBlue, nil
|
|
case "red":
|
|
return LEDColorRed, nil
|
|
case "green":
|
|
return LEDColorGreen, nil
|
|
case "none":
|
|
return LEDColorNone, nil
|
|
case "purple":
|
|
return LEDColorPurple, nil
|
|
case "turquoise":
|
|
return LEDColorTurquoise, nil
|
|
case "yellow":
|
|
return LEDColorYellow, nil
|
|
case "white":
|
|
return LEDColorWhite, nil
|
|
default:
|
|
return LEDColorNone, fmt.Errorf("Can not convert color to const")
|
|
}
|
|
}
|
|
|
|
type LEDOption string
|
|
|
|
const (
|
|
LEDError LEDOption = "error"
|
|
LEDWarn = "warn"
|
|
LEDOk = "ok"
|
|
LEDSync = "sync"
|
|
LEDLogfile = "logfile"
|
|
)
|
|
|
|
var DefaultActionMapping = map[LEDOption]LEDColor{
|
|
LEDError: LEDColorRed,
|
|
LEDWarn: LEDColorYellow,
|
|
LEDOk: LEDColorGreen,
|
|
LEDSync: LEDColorTurquoise,
|
|
LEDLogfile: LEDColorBlue,
|
|
}
|