github.com/bluenviron/gomavlib/v2@v2.2.1-0.20240308101627-2c07e3da629c/pkg/dialects/common/enum_precision_land_mode.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  // Precision land modes (used in MAV_CMD_NAV_LAND).
    11  type PRECISION_LAND_MODE uint64
    12  
    13  const (
    14  	// Normal (non-precision) landing.
    15  	PRECISION_LAND_MODE_DISABLED PRECISION_LAND_MODE = 0
    16  	// Use precision landing if beacon detected when land command accepted, otherwise land normally.
    17  	PRECISION_LAND_MODE_OPPORTUNISTIC PRECISION_LAND_MODE = 1
    18  	// Use precision landing, searching for beacon if not found when land command accepted (land normally if beacon cannot be found).
    19  	PRECISION_LAND_MODE_REQUIRED PRECISION_LAND_MODE = 2
    20  )
    21  
    22  var labels_PRECISION_LAND_MODE = map[PRECISION_LAND_MODE]string{
    23  	PRECISION_LAND_MODE_DISABLED:      "PRECISION_LAND_MODE_DISABLED",
    24  	PRECISION_LAND_MODE_OPPORTUNISTIC: "PRECISION_LAND_MODE_OPPORTUNISTIC",
    25  	PRECISION_LAND_MODE_REQUIRED:      "PRECISION_LAND_MODE_REQUIRED",
    26  }
    27  
    28  var values_PRECISION_LAND_MODE = map[string]PRECISION_LAND_MODE{
    29  	"PRECISION_LAND_MODE_DISABLED":      PRECISION_LAND_MODE_DISABLED,
    30  	"PRECISION_LAND_MODE_OPPORTUNISTIC": PRECISION_LAND_MODE_OPPORTUNISTIC,
    31  	"PRECISION_LAND_MODE_REQUIRED":      PRECISION_LAND_MODE_REQUIRED,
    32  }
    33  
    34  // MarshalText implements the encoding.TextMarshaler interface.
    35  func (e PRECISION_LAND_MODE) MarshalText() ([]byte, error) {
    36  	if name, ok := labels_PRECISION_LAND_MODE[e]; ok {
    37  		return []byte(name), nil
    38  	}
    39  	return []byte(strconv.Itoa(int(e))), nil
    40  }
    41  
    42  // UnmarshalText implements the encoding.TextUnmarshaler interface.
    43  func (e *PRECISION_LAND_MODE) UnmarshalText(text []byte) error {
    44  	if value, ok := values_PRECISION_LAND_MODE[string(text)]; ok {
    45  		*e = value
    46  	} else if value, err := strconv.Atoi(string(text)); err == nil {
    47  		*e = PRECISION_LAND_MODE(value)
    48  	} else {
    49  		return fmt.Errorf("invalid label '%s'", text)
    50  	}
    51  	return nil
    52  }
    53  
    54  // String implements the fmt.Stringer interface.
    55  func (e PRECISION_LAND_MODE) String() string {
    56  	val, _ := e.MarshalText()
    57  	return string(val)
    58  }