github.com/bluenviron/gomavlib/v2@v2.2.1-0.20240308101627-2c07e3da629c/pkg/dialects/ardupilotmega/enum_sub_mode.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 // A mapping of sub flight modes for custom_mode field of heartbeat. 11 type SUB_MODE uint64 12 13 const ( 14 SUB_MODE_STABILIZE SUB_MODE = 0 15 SUB_MODE_ACRO SUB_MODE = 1 16 SUB_MODE_ALT_HOLD SUB_MODE = 2 17 SUB_MODE_AUTO SUB_MODE = 3 18 SUB_MODE_GUIDED SUB_MODE = 4 19 SUB_MODE_CIRCLE SUB_MODE = 7 20 SUB_MODE_SURFACE SUB_MODE = 9 21 SUB_MODE_POSHOLD SUB_MODE = 16 22 SUB_MODE_MANUAL SUB_MODE = 19 23 ) 24 25 var labels_SUB_MODE = map[SUB_MODE]string{ 26 SUB_MODE_STABILIZE: "SUB_MODE_STABILIZE", 27 SUB_MODE_ACRO: "SUB_MODE_ACRO", 28 SUB_MODE_ALT_HOLD: "SUB_MODE_ALT_HOLD", 29 SUB_MODE_AUTO: "SUB_MODE_AUTO", 30 SUB_MODE_GUIDED: "SUB_MODE_GUIDED", 31 SUB_MODE_CIRCLE: "SUB_MODE_CIRCLE", 32 SUB_MODE_SURFACE: "SUB_MODE_SURFACE", 33 SUB_MODE_POSHOLD: "SUB_MODE_POSHOLD", 34 SUB_MODE_MANUAL: "SUB_MODE_MANUAL", 35 } 36 37 var values_SUB_MODE = map[string]SUB_MODE{ 38 "SUB_MODE_STABILIZE": SUB_MODE_STABILIZE, 39 "SUB_MODE_ACRO": SUB_MODE_ACRO, 40 "SUB_MODE_ALT_HOLD": SUB_MODE_ALT_HOLD, 41 "SUB_MODE_AUTO": SUB_MODE_AUTO, 42 "SUB_MODE_GUIDED": SUB_MODE_GUIDED, 43 "SUB_MODE_CIRCLE": SUB_MODE_CIRCLE, 44 "SUB_MODE_SURFACE": SUB_MODE_SURFACE, 45 "SUB_MODE_POSHOLD": SUB_MODE_POSHOLD, 46 "SUB_MODE_MANUAL": SUB_MODE_MANUAL, 47 } 48 49 // MarshalText implements the encoding.TextMarshaler interface. 50 func (e SUB_MODE) MarshalText() ([]byte, error) { 51 if name, ok := labels_SUB_MODE[e]; ok { 52 return []byte(name), nil 53 } 54 return []byte(strconv.Itoa(int(e))), nil 55 } 56 57 // UnmarshalText implements the encoding.TextUnmarshaler interface. 58 func (e *SUB_MODE) UnmarshalText(text []byte) error { 59 if value, ok := values_SUB_MODE[string(text)]; ok { 60 *e = value 61 } else if value, err := strconv.Atoi(string(text)); err == nil { 62 *e = SUB_MODE(value) 63 } else { 64 return fmt.Errorf("invalid label '%s'", text) 65 } 66 return nil 67 } 68 69 // String implements the fmt.Stringer interface. 70 func (e SUB_MODE) String() string { 71 val, _ := e.MarshalText() 72 return string(val) 73 }