github.com/bluenviron/gomavlib/v2@v2.2.1-0.20240308101627-2c07e3da629c/pkg/dialects/minimal/enum_mav_mode_flag_decode_position.go (about) 1 //autogenerated:yes 2 //nolint:revive,misspell,govet,lll,dupl,gocritic 3 package minimal 4 5 import ( 6 "fmt" 7 "strconv" 8 "strings" 9 ) 10 11 // These values encode the bit positions of the decode position. These values can be used to read the value of a flag bit by combining the base_mode variable with AND with the flag position value. The result will be either 0 or 1, depending on if the flag is set or not. 12 type MAV_MODE_FLAG_DECODE_POSITION uint64 13 14 const ( 15 // First bit: 10000000 16 MAV_MODE_FLAG_DECODE_POSITION_SAFETY MAV_MODE_FLAG_DECODE_POSITION = 128 17 // Second bit: 01000000 18 MAV_MODE_FLAG_DECODE_POSITION_MANUAL MAV_MODE_FLAG_DECODE_POSITION = 64 19 // Third bit: 00100000 20 MAV_MODE_FLAG_DECODE_POSITION_HIL MAV_MODE_FLAG_DECODE_POSITION = 32 21 // Fourth bit: 00010000 22 MAV_MODE_FLAG_DECODE_POSITION_STABILIZE MAV_MODE_FLAG_DECODE_POSITION = 16 23 // Fifth bit: 00001000 24 MAV_MODE_FLAG_DECODE_POSITION_GUIDED MAV_MODE_FLAG_DECODE_POSITION = 8 25 // Sixth bit: 00000100 26 MAV_MODE_FLAG_DECODE_POSITION_AUTO MAV_MODE_FLAG_DECODE_POSITION = 4 27 // Seventh bit: 00000010 28 MAV_MODE_FLAG_DECODE_POSITION_TEST MAV_MODE_FLAG_DECODE_POSITION = 2 29 // Eighth bit: 00000001 30 MAV_MODE_FLAG_DECODE_POSITION_CUSTOM_MODE MAV_MODE_FLAG_DECODE_POSITION = 1 31 ) 32 33 var labels_MAV_MODE_FLAG_DECODE_POSITION = map[MAV_MODE_FLAG_DECODE_POSITION]string{ 34 MAV_MODE_FLAG_DECODE_POSITION_SAFETY: "MAV_MODE_FLAG_DECODE_POSITION_SAFETY", 35 MAV_MODE_FLAG_DECODE_POSITION_MANUAL: "MAV_MODE_FLAG_DECODE_POSITION_MANUAL", 36 MAV_MODE_FLAG_DECODE_POSITION_HIL: "MAV_MODE_FLAG_DECODE_POSITION_HIL", 37 MAV_MODE_FLAG_DECODE_POSITION_STABILIZE: "MAV_MODE_FLAG_DECODE_POSITION_STABILIZE", 38 MAV_MODE_FLAG_DECODE_POSITION_GUIDED: "MAV_MODE_FLAG_DECODE_POSITION_GUIDED", 39 MAV_MODE_FLAG_DECODE_POSITION_AUTO: "MAV_MODE_FLAG_DECODE_POSITION_AUTO", 40 MAV_MODE_FLAG_DECODE_POSITION_TEST: "MAV_MODE_FLAG_DECODE_POSITION_TEST", 41 MAV_MODE_FLAG_DECODE_POSITION_CUSTOM_MODE: "MAV_MODE_FLAG_DECODE_POSITION_CUSTOM_MODE", 42 } 43 44 var values_MAV_MODE_FLAG_DECODE_POSITION = map[string]MAV_MODE_FLAG_DECODE_POSITION{ 45 "MAV_MODE_FLAG_DECODE_POSITION_SAFETY": MAV_MODE_FLAG_DECODE_POSITION_SAFETY, 46 "MAV_MODE_FLAG_DECODE_POSITION_MANUAL": MAV_MODE_FLAG_DECODE_POSITION_MANUAL, 47 "MAV_MODE_FLAG_DECODE_POSITION_HIL": MAV_MODE_FLAG_DECODE_POSITION_HIL, 48 "MAV_MODE_FLAG_DECODE_POSITION_STABILIZE": MAV_MODE_FLAG_DECODE_POSITION_STABILIZE, 49 "MAV_MODE_FLAG_DECODE_POSITION_GUIDED": MAV_MODE_FLAG_DECODE_POSITION_GUIDED, 50 "MAV_MODE_FLAG_DECODE_POSITION_AUTO": MAV_MODE_FLAG_DECODE_POSITION_AUTO, 51 "MAV_MODE_FLAG_DECODE_POSITION_TEST": MAV_MODE_FLAG_DECODE_POSITION_TEST, 52 "MAV_MODE_FLAG_DECODE_POSITION_CUSTOM_MODE": MAV_MODE_FLAG_DECODE_POSITION_CUSTOM_MODE, 53 } 54 55 // MarshalText implements the encoding.TextMarshaler interface. 56 func (e MAV_MODE_FLAG_DECODE_POSITION) MarshalText() ([]byte, error) { 57 if e == 0 { 58 return []byte("0"), nil 59 } 60 var names []string 61 for i := 0; i < 8; i++ { 62 mask := MAV_MODE_FLAG_DECODE_POSITION(1 << i) 63 if e&mask == mask { 64 names = append(names, labels_MAV_MODE_FLAG_DECODE_POSITION[mask]) 65 } 66 } 67 return []byte(strings.Join(names, " | ")), nil 68 } 69 70 // UnmarshalText implements the encoding.TextUnmarshaler interface. 71 func (e *MAV_MODE_FLAG_DECODE_POSITION) UnmarshalText(text []byte) error { 72 labels := strings.Split(string(text), " | ") 73 var mask MAV_MODE_FLAG_DECODE_POSITION 74 for _, label := range labels { 75 if value, ok := values_MAV_MODE_FLAG_DECODE_POSITION[label]; ok { 76 mask |= value 77 } else if value, err := strconv.Atoi(label); err == nil { 78 mask |= MAV_MODE_FLAG_DECODE_POSITION(value) 79 } else { 80 return fmt.Errorf("invalid label '%s'", label) 81 } 82 } 83 *e = mask 84 return nil 85 } 86 87 // String implements the fmt.Stringer interface. 88 func (e MAV_MODE_FLAG_DECODE_POSITION) String() string { 89 val, _ := e.MarshalText() 90 return string(val) 91 }