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  }