github.com/bluenviron/gomavlib/v2@v2.2.1-0.20240308101627-2c07e3da629c/pkg/dialects/common/enum_gimbal_manager_flags.go (about) 1 //autogenerated:yes 2 //nolint:revive,misspell,govet,lll,dupl,gocritic 3 package common 4 5 import ( 6 "fmt" 7 "strconv" 8 "strings" 9 ) 10 11 // Flags for high level gimbal manager operation The first 16 bits are identical to the GIMBAL_DEVICE_FLAGS. 12 type GIMBAL_MANAGER_FLAGS uint64 13 14 const ( 15 // Based on GIMBAL_DEVICE_FLAGS_RETRACT. 16 GIMBAL_MANAGER_FLAGS_RETRACT GIMBAL_MANAGER_FLAGS = 1 17 // Based on GIMBAL_DEVICE_FLAGS_NEUTRAL. 18 GIMBAL_MANAGER_FLAGS_NEUTRAL GIMBAL_MANAGER_FLAGS = 2 19 // Based on GIMBAL_DEVICE_FLAGS_ROLL_LOCK. 20 GIMBAL_MANAGER_FLAGS_ROLL_LOCK GIMBAL_MANAGER_FLAGS = 4 21 // Based on GIMBAL_DEVICE_FLAGS_PITCH_LOCK. 22 GIMBAL_MANAGER_FLAGS_PITCH_LOCK GIMBAL_MANAGER_FLAGS = 8 23 // Based on GIMBAL_DEVICE_FLAGS_YAW_LOCK. 24 GIMBAL_MANAGER_FLAGS_YAW_LOCK GIMBAL_MANAGER_FLAGS = 16 25 // Based on GIMBAL_DEVICE_FLAGS_YAW_IN_VEHICLE_FRAME. 26 GIMBAL_MANAGER_FLAGS_YAW_IN_VEHICLE_FRAME GIMBAL_MANAGER_FLAGS = 32 27 // Based on GIMBAL_DEVICE_FLAGS_YAW_IN_EARTH_FRAME. 28 GIMBAL_MANAGER_FLAGS_YAW_IN_EARTH_FRAME GIMBAL_MANAGER_FLAGS = 64 29 // Based on GIMBAL_DEVICE_FLAGS_ACCEPTS_YAW_IN_EARTH_FRAME. 30 GIMBAL_MANAGER_FLAGS_ACCEPTS_YAW_IN_EARTH_FRAME GIMBAL_MANAGER_FLAGS = 128 31 // Based on GIMBAL_DEVICE_FLAGS_RC_EXCLUSIVE. 32 GIMBAL_MANAGER_FLAGS_RC_EXCLUSIVE GIMBAL_MANAGER_FLAGS = 256 33 // Based on GIMBAL_DEVICE_FLAGS_RC_MIXED. 34 GIMBAL_MANAGER_FLAGS_RC_MIXED GIMBAL_MANAGER_FLAGS = 512 35 ) 36 37 var labels_GIMBAL_MANAGER_FLAGS = map[GIMBAL_MANAGER_FLAGS]string{ 38 GIMBAL_MANAGER_FLAGS_RETRACT: "GIMBAL_MANAGER_FLAGS_RETRACT", 39 GIMBAL_MANAGER_FLAGS_NEUTRAL: "GIMBAL_MANAGER_FLAGS_NEUTRAL", 40 GIMBAL_MANAGER_FLAGS_ROLL_LOCK: "GIMBAL_MANAGER_FLAGS_ROLL_LOCK", 41 GIMBAL_MANAGER_FLAGS_PITCH_LOCK: "GIMBAL_MANAGER_FLAGS_PITCH_LOCK", 42 GIMBAL_MANAGER_FLAGS_YAW_LOCK: "GIMBAL_MANAGER_FLAGS_YAW_LOCK", 43 GIMBAL_MANAGER_FLAGS_YAW_IN_VEHICLE_FRAME: "GIMBAL_MANAGER_FLAGS_YAW_IN_VEHICLE_FRAME", 44 GIMBAL_MANAGER_FLAGS_YAW_IN_EARTH_FRAME: "GIMBAL_MANAGER_FLAGS_YAW_IN_EARTH_FRAME", 45 GIMBAL_MANAGER_FLAGS_ACCEPTS_YAW_IN_EARTH_FRAME: "GIMBAL_MANAGER_FLAGS_ACCEPTS_YAW_IN_EARTH_FRAME", 46 GIMBAL_MANAGER_FLAGS_RC_EXCLUSIVE: "GIMBAL_MANAGER_FLAGS_RC_EXCLUSIVE", 47 GIMBAL_MANAGER_FLAGS_RC_MIXED: "GIMBAL_MANAGER_FLAGS_RC_MIXED", 48 } 49 50 var values_GIMBAL_MANAGER_FLAGS = map[string]GIMBAL_MANAGER_FLAGS{ 51 "GIMBAL_MANAGER_FLAGS_RETRACT": GIMBAL_MANAGER_FLAGS_RETRACT, 52 "GIMBAL_MANAGER_FLAGS_NEUTRAL": GIMBAL_MANAGER_FLAGS_NEUTRAL, 53 "GIMBAL_MANAGER_FLAGS_ROLL_LOCK": GIMBAL_MANAGER_FLAGS_ROLL_LOCK, 54 "GIMBAL_MANAGER_FLAGS_PITCH_LOCK": GIMBAL_MANAGER_FLAGS_PITCH_LOCK, 55 "GIMBAL_MANAGER_FLAGS_YAW_LOCK": GIMBAL_MANAGER_FLAGS_YAW_LOCK, 56 "GIMBAL_MANAGER_FLAGS_YAW_IN_VEHICLE_FRAME": GIMBAL_MANAGER_FLAGS_YAW_IN_VEHICLE_FRAME, 57 "GIMBAL_MANAGER_FLAGS_YAW_IN_EARTH_FRAME": GIMBAL_MANAGER_FLAGS_YAW_IN_EARTH_FRAME, 58 "GIMBAL_MANAGER_FLAGS_ACCEPTS_YAW_IN_EARTH_FRAME": GIMBAL_MANAGER_FLAGS_ACCEPTS_YAW_IN_EARTH_FRAME, 59 "GIMBAL_MANAGER_FLAGS_RC_EXCLUSIVE": GIMBAL_MANAGER_FLAGS_RC_EXCLUSIVE, 60 "GIMBAL_MANAGER_FLAGS_RC_MIXED": GIMBAL_MANAGER_FLAGS_RC_MIXED, 61 } 62 63 // MarshalText implements the encoding.TextMarshaler interface. 64 func (e GIMBAL_MANAGER_FLAGS) MarshalText() ([]byte, error) { 65 if e == 0 { 66 return []byte("0"), nil 67 } 68 var names []string 69 for i := 0; i < 10; i++ { 70 mask := GIMBAL_MANAGER_FLAGS(1 << i) 71 if e&mask == mask { 72 names = append(names, labels_GIMBAL_MANAGER_FLAGS[mask]) 73 } 74 } 75 return []byte(strings.Join(names, " | ")), nil 76 } 77 78 // UnmarshalText implements the encoding.TextUnmarshaler interface. 79 func (e *GIMBAL_MANAGER_FLAGS) UnmarshalText(text []byte) error { 80 labels := strings.Split(string(text), " | ") 81 var mask GIMBAL_MANAGER_FLAGS 82 for _, label := range labels { 83 if value, ok := values_GIMBAL_MANAGER_FLAGS[label]; ok { 84 mask |= value 85 } else if value, err := strconv.Atoi(label); err == nil { 86 mask |= GIMBAL_MANAGER_FLAGS(value) 87 } else { 88 return fmt.Errorf("invalid label '%s'", label) 89 } 90 } 91 *e = mask 92 return nil 93 } 94 95 // String implements the fmt.Stringer interface. 96 func (e GIMBAL_MANAGER_FLAGS) String() string { 97 val, _ := e.MarshalText() 98 return string(val) 99 }