github.com/bluenviron/gomavlib/v2@v2.2.1-0.20240308101627-2c07e3da629c/pkg/dialects/ardupilotmega/enum_led_control_pattern.go (about) 1 //autogenerated:yes 2 //nolint:revive,misspell,govet,lll,dupl,gocritic 3 package ardupilotmega 4 5 import ( 6 "fmt" 7 "strconv" 8 ) 9 10 type LED_CONTROL_PATTERN uint64 11 12 const ( 13 // LED patterns off (return control to regular vehicle control). 14 LED_CONTROL_PATTERN_OFF LED_CONTROL_PATTERN = 0 15 // LEDs show pattern during firmware update. 16 LED_CONTROL_PATTERN_FIRMWAREUPDATE LED_CONTROL_PATTERN = 1 17 // Custom Pattern using custom bytes fields. 18 LED_CONTROL_PATTERN_CUSTOM LED_CONTROL_PATTERN = 255 19 ) 20 21 var labels_LED_CONTROL_PATTERN = map[LED_CONTROL_PATTERN]string{ 22 LED_CONTROL_PATTERN_OFF: "LED_CONTROL_PATTERN_OFF", 23 LED_CONTROL_PATTERN_FIRMWAREUPDATE: "LED_CONTROL_PATTERN_FIRMWAREUPDATE", 24 LED_CONTROL_PATTERN_CUSTOM: "LED_CONTROL_PATTERN_CUSTOM", 25 } 26 27 var values_LED_CONTROL_PATTERN = map[string]LED_CONTROL_PATTERN{ 28 "LED_CONTROL_PATTERN_OFF": LED_CONTROL_PATTERN_OFF, 29 "LED_CONTROL_PATTERN_FIRMWAREUPDATE": LED_CONTROL_PATTERN_FIRMWAREUPDATE, 30 "LED_CONTROL_PATTERN_CUSTOM": LED_CONTROL_PATTERN_CUSTOM, 31 } 32 33 // MarshalText implements the encoding.TextMarshaler interface. 34 func (e LED_CONTROL_PATTERN) MarshalText() ([]byte, error) { 35 if name, ok := labels_LED_CONTROL_PATTERN[e]; ok { 36 return []byte(name), nil 37 } 38 return []byte(strconv.Itoa(int(e))), nil 39 } 40 41 // UnmarshalText implements the encoding.TextUnmarshaler interface. 42 func (e *LED_CONTROL_PATTERN) UnmarshalText(text []byte) error { 43 if value, ok := values_LED_CONTROL_PATTERN[string(text)]; ok { 44 *e = value 45 } else if value, err := strconv.Atoi(string(text)); err == nil { 46 *e = LED_CONTROL_PATTERN(value) 47 } else { 48 return fmt.Errorf("invalid label '%s'", text) 49 } 50 return nil 51 } 52 53 // String implements the fmt.Stringer interface. 54 func (e LED_CONTROL_PATTERN) String() string { 55 val, _ := e.MarshalText() 56 return string(val) 57 }