github.com/bluenviron/gomavlib/v2@v2.2.1-0.20240308101627-2c07e3da629c/pkg/dialects/common/enum_precision_land_mode.go (about) 1 //autogenerated:yes 2 //nolint:revive,misspell,govet,lll,dupl,gocritic 3 package common 4 5 import ( 6 "fmt" 7 "strconv" 8 ) 9 10 // Precision land modes (used in MAV_CMD_NAV_LAND). 11 type PRECISION_LAND_MODE uint64 12 13 const ( 14 // Normal (non-precision) landing. 15 PRECISION_LAND_MODE_DISABLED PRECISION_LAND_MODE = 0 16 // Use precision landing if beacon detected when land command accepted, otherwise land normally. 17 PRECISION_LAND_MODE_OPPORTUNISTIC PRECISION_LAND_MODE = 1 18 // Use precision landing, searching for beacon if not found when land command accepted (land normally if beacon cannot be found). 19 PRECISION_LAND_MODE_REQUIRED PRECISION_LAND_MODE = 2 20 ) 21 22 var labels_PRECISION_LAND_MODE = map[PRECISION_LAND_MODE]string{ 23 PRECISION_LAND_MODE_DISABLED: "PRECISION_LAND_MODE_DISABLED", 24 PRECISION_LAND_MODE_OPPORTUNISTIC: "PRECISION_LAND_MODE_OPPORTUNISTIC", 25 PRECISION_LAND_MODE_REQUIRED: "PRECISION_LAND_MODE_REQUIRED", 26 } 27 28 var values_PRECISION_LAND_MODE = map[string]PRECISION_LAND_MODE{ 29 "PRECISION_LAND_MODE_DISABLED": PRECISION_LAND_MODE_DISABLED, 30 "PRECISION_LAND_MODE_OPPORTUNISTIC": PRECISION_LAND_MODE_OPPORTUNISTIC, 31 "PRECISION_LAND_MODE_REQUIRED": PRECISION_LAND_MODE_REQUIRED, 32 } 33 34 // MarshalText implements the encoding.TextMarshaler interface. 35 func (e PRECISION_LAND_MODE) MarshalText() ([]byte, error) { 36 if name, ok := labels_PRECISION_LAND_MODE[e]; ok { 37 return []byte(name), nil 38 } 39 return []byte(strconv.Itoa(int(e))), nil 40 } 41 42 // UnmarshalText implements the encoding.TextUnmarshaler interface. 43 func (e *PRECISION_LAND_MODE) UnmarshalText(text []byte) error { 44 if value, ok := values_PRECISION_LAND_MODE[string(text)]; ok { 45 *e = value 46 } else if value, err := strconv.Atoi(string(text)); err == nil { 47 *e = PRECISION_LAND_MODE(value) 48 } else { 49 return fmt.Errorf("invalid label '%s'", text) 50 } 51 return nil 52 } 53 54 // String implements the fmt.Stringer interface. 55 func (e PRECISION_LAND_MODE) String() string { 56 val, _ := e.MarshalText() 57 return string(val) 58 }