github.com/bluenviron/gomavlib/v2@v2.2.1-0.20240308101627-2c07e3da629c/pkg/dialects/common/enum_camera_zoom_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 // Zoom types for MAV_CMD_SET_CAMERA_ZOOM 11 type CAMERA_ZOOM_TYPE uint64 12 13 const ( 14 // Zoom one step increment (-1 for wide, 1 for tele) 15 ZOOM_TYPE_STEP CAMERA_ZOOM_TYPE = 0 16 // Continuous zoom up/down until stopped (-1 for wide, 1 for tele, 0 to stop zooming) 17 ZOOM_TYPE_CONTINUOUS CAMERA_ZOOM_TYPE = 1 18 // Zoom value as proportion of full camera range (a percentage value between 0.0 and 100.0) 19 ZOOM_TYPE_RANGE CAMERA_ZOOM_TYPE = 2 20 // Zoom value/variable focal length in millimetres. Note that there is no message to get the valid zoom range of the camera, so this can type can only be used for cameras where the zoom range is known (implying that this cannot reliably be used in a GCS for an arbitrary camera) 21 ZOOM_TYPE_FOCAL_LENGTH CAMERA_ZOOM_TYPE = 3 22 // Zoom value as horizontal field of view in degrees. 23 ZOOM_TYPE_HORIZONTAL_FOV CAMERA_ZOOM_TYPE = 4 24 ) 25 26 var labels_CAMERA_ZOOM_TYPE = map[CAMERA_ZOOM_TYPE]string{ 27 ZOOM_TYPE_STEP: "ZOOM_TYPE_STEP", 28 ZOOM_TYPE_CONTINUOUS: "ZOOM_TYPE_CONTINUOUS", 29 ZOOM_TYPE_RANGE: "ZOOM_TYPE_RANGE", 30 ZOOM_TYPE_FOCAL_LENGTH: "ZOOM_TYPE_FOCAL_LENGTH", 31 ZOOM_TYPE_HORIZONTAL_FOV: "ZOOM_TYPE_HORIZONTAL_FOV", 32 } 33 34 var values_CAMERA_ZOOM_TYPE = map[string]CAMERA_ZOOM_TYPE{ 35 "ZOOM_TYPE_STEP": ZOOM_TYPE_STEP, 36 "ZOOM_TYPE_CONTINUOUS": ZOOM_TYPE_CONTINUOUS, 37 "ZOOM_TYPE_RANGE": ZOOM_TYPE_RANGE, 38 "ZOOM_TYPE_FOCAL_LENGTH": ZOOM_TYPE_FOCAL_LENGTH, 39 "ZOOM_TYPE_HORIZONTAL_FOV": ZOOM_TYPE_HORIZONTAL_FOV, 40 } 41 42 // MarshalText implements the encoding.TextMarshaler interface. 43 func (e CAMERA_ZOOM_TYPE) MarshalText() ([]byte, error) { 44 if name, ok := labels_CAMERA_ZOOM_TYPE[e]; ok { 45 return []byte(name), nil 46 } 47 return []byte(strconv.Itoa(int(e))), nil 48 } 49 50 // UnmarshalText implements the encoding.TextUnmarshaler interface. 51 func (e *CAMERA_ZOOM_TYPE) UnmarshalText(text []byte) error { 52 if value, ok := values_CAMERA_ZOOM_TYPE[string(text)]; ok { 53 *e = value 54 } else if value, err := strconv.Atoi(string(text)); err == nil { 55 *e = CAMERA_ZOOM_TYPE(value) 56 } else { 57 return fmt.Errorf("invalid label '%s'", text) 58 } 59 return nil 60 } 61 62 // String implements the fmt.Stringer interface. 63 func (e CAMERA_ZOOM_TYPE) String() string { 64 val, _ := e.MarshalText() 65 return string(val) 66 }