github.com/bluenviron/gomavlib/v2@v2.2.1-0.20240308101627-2c07e3da629c/pkg/dialects/common/enum_mav_roi.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 // The ROI (region of interest) for the vehicle. This can be 11 // be used by the vehicle for camera/vehicle attitude alignment (see 12 // MAV_CMD_NAV_ROI). 13 type MAV_ROI uint64 14 15 const ( 16 // No region of interest. 17 MAV_ROI_NONE MAV_ROI = 0 18 // Point toward next waypoint, with optional pitch/roll/yaw offset. 19 MAV_ROI_WPNEXT MAV_ROI = 1 20 // Point toward given waypoint. 21 MAV_ROI_WPINDEX MAV_ROI = 2 22 // Point toward fixed location. 23 MAV_ROI_LOCATION MAV_ROI = 3 24 // Point toward of given id. 25 MAV_ROI_TARGET MAV_ROI = 4 26 ) 27 28 var labels_MAV_ROI = map[MAV_ROI]string{ 29 MAV_ROI_NONE: "MAV_ROI_NONE", 30 MAV_ROI_WPNEXT: "MAV_ROI_WPNEXT", 31 MAV_ROI_WPINDEX: "MAV_ROI_WPINDEX", 32 MAV_ROI_LOCATION: "MAV_ROI_LOCATION", 33 MAV_ROI_TARGET: "MAV_ROI_TARGET", 34 } 35 36 var values_MAV_ROI = map[string]MAV_ROI{ 37 "MAV_ROI_NONE": MAV_ROI_NONE, 38 "MAV_ROI_WPNEXT": MAV_ROI_WPNEXT, 39 "MAV_ROI_WPINDEX": MAV_ROI_WPINDEX, 40 "MAV_ROI_LOCATION": MAV_ROI_LOCATION, 41 "MAV_ROI_TARGET": MAV_ROI_TARGET, 42 } 43 44 // MarshalText implements the encoding.TextMarshaler interface. 45 func (e MAV_ROI) MarshalText() ([]byte, error) { 46 if name, ok := labels_MAV_ROI[e]; ok { 47 return []byte(name), nil 48 } 49 return []byte(strconv.Itoa(int(e))), nil 50 } 51 52 // UnmarshalText implements the encoding.TextUnmarshaler interface. 53 func (e *MAV_ROI) UnmarshalText(text []byte) error { 54 if value, ok := values_MAV_ROI[string(text)]; ok { 55 *e = value 56 } else if value, err := strconv.Atoi(string(text)); err == nil { 57 *e = MAV_ROI(value) 58 } else { 59 return fmt.Errorf("invalid label '%s'", text) 60 } 61 return nil 62 } 63 64 // String implements the fmt.Stringer interface. 65 func (e MAV_ROI) String() string { 66 val, _ := e.MarshalText() 67 return string(val) 68 }