package types import ( "fmt" "time" ) type LED struct { LEDID string `json:"led_id" xml:"led_id"` LEDName string `json:"led_name" xml:"led_name"` LEDLocation string `json:"led_location" xml:"led_location"` GPIONumber *GPIO `json:"gpio_number" xml:"gpio_number"` LEDEnabled bool `json:"led_enabled" xml:"led_enabled"` LEDColor *LEDColor `json:"led_color" xml:"led_color"` DeviceID string `json:"device_id" xml:"device_id"` CreationDate time.Time `json:"creation_date" xml:"creation_date"` } type RGBLED struct { RGBLEDID string `json:"rgbled_id" xml:"rgbled_id"` RGBLEDName string `json:"rgbled_name" xml:"rgbled_name"` RGBLEDLocation string `json:"rgbled_location" xml:"rgb_location"` BaseColorsToGPIO map[BaseColor]*GPIO `json:"color_to_gpio" xml:"color_to_gpio"` ActionMapping map[LEDOption]LEDColor `json:"action_mapping" xml:"action_mapping"` RGBLEDEnabled bool `json:"rgbled_enabled" xml:"rgb_enabled"` DeviceID string `json:"device_id" xml:"device_id"` CreationDate time.Time `json:"creation_date" xml:"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, }