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  }