github.com/bluenviron/gomavlib/v2@v2.2.1-0.20240308101627-2c07e3da629c/pkg/dialects/common/enum_motor_test_throttle_type.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 // Defines how throttle value is represented in MAV_CMD_DO_MOTOR_TEST. 11 type MOTOR_TEST_THROTTLE_TYPE uint64 12 13 const ( 14 // Throttle as a percentage (0 ~ 100) 15 MOTOR_TEST_THROTTLE_PERCENT MOTOR_TEST_THROTTLE_TYPE = 0 16 // Throttle as an absolute PWM value (normally in range of 1000~2000). 17 MOTOR_TEST_THROTTLE_PWM MOTOR_TEST_THROTTLE_TYPE = 1 18 // Throttle pass-through from pilot's transmitter. 19 MOTOR_TEST_THROTTLE_PILOT MOTOR_TEST_THROTTLE_TYPE = 2 20 // Per-motor compass calibration test. 21 MOTOR_TEST_COMPASS_CAL MOTOR_TEST_THROTTLE_TYPE = 3 22 ) 23 24 var labels_MOTOR_TEST_THROTTLE_TYPE = map[MOTOR_TEST_THROTTLE_TYPE]string{ 25 MOTOR_TEST_THROTTLE_PERCENT: "MOTOR_TEST_THROTTLE_PERCENT", 26 MOTOR_TEST_THROTTLE_PWM: "MOTOR_TEST_THROTTLE_PWM", 27 MOTOR_TEST_THROTTLE_PILOT: "MOTOR_TEST_THROTTLE_PILOT", 28 MOTOR_TEST_COMPASS_CAL: "MOTOR_TEST_COMPASS_CAL", 29 } 30 31 var values_MOTOR_TEST_THROTTLE_TYPE = map[string]MOTOR_TEST_THROTTLE_TYPE{ 32 "MOTOR_TEST_THROTTLE_PERCENT": MOTOR_TEST_THROTTLE_PERCENT, 33 "MOTOR_TEST_THROTTLE_PWM": MOTOR_TEST_THROTTLE_PWM, 34 "MOTOR_TEST_THROTTLE_PILOT": MOTOR_TEST_THROTTLE_PILOT, 35 "MOTOR_TEST_COMPASS_CAL": MOTOR_TEST_COMPASS_CAL, 36 } 37 38 // MarshalText implements the encoding.TextMarshaler interface. 39 func (e MOTOR_TEST_THROTTLE_TYPE) MarshalText() ([]byte, error) { 40 if name, ok := labels_MOTOR_TEST_THROTTLE_TYPE[e]; ok { 41 return []byte(name), nil 42 } 43 return []byte(strconv.Itoa(int(e))), nil 44 } 45 46 // UnmarshalText implements the encoding.TextUnmarshaler interface. 47 func (e *MOTOR_TEST_THROTTLE_TYPE) UnmarshalText(text []byte) error { 48 if value, ok := values_MOTOR_TEST_THROTTLE_TYPE[string(text)]; ok { 49 *e = value 50 } else if value, err := strconv.Atoi(string(text)); err == nil { 51 *e = MOTOR_TEST_THROTTLE_TYPE(value) 52 } else { 53 return fmt.Errorf("invalid label '%s'", text) 54 } 55 return nil 56 } 57 58 // String implements the fmt.Stringer interface. 59 func (e MOTOR_TEST_THROTTLE_TYPE) String() string { 60 val, _ := e.MarshalText() 61 return string(val) 62 }