github.com/bluenviron/gomavlib/v2@v2.2.1-0.20240308101627-2c07e3da629c/pkg/dialects/ardupilotmega/enum_sub_mode.go (about)

     1  //autogenerated:yes
     2  //nolint:revive,misspell,govet,lll,dupl,gocritic
     3  package ardupilotmega
     4  
     5  import (
     6  	"fmt"
     7  	"strconv"
     8  )
     9  
    10  // A mapping of sub flight modes for custom_mode field of heartbeat.
    11  type SUB_MODE uint64
    12  
    13  const (
    14  	SUB_MODE_STABILIZE SUB_MODE = 0
    15  	SUB_MODE_ACRO      SUB_MODE = 1
    16  	SUB_MODE_ALT_HOLD  SUB_MODE = 2
    17  	SUB_MODE_AUTO      SUB_MODE = 3
    18  	SUB_MODE_GUIDED    SUB_MODE = 4
    19  	SUB_MODE_CIRCLE    SUB_MODE = 7
    20  	SUB_MODE_SURFACE   SUB_MODE = 9
    21  	SUB_MODE_POSHOLD   SUB_MODE = 16
    22  	SUB_MODE_MANUAL    SUB_MODE = 19
    23  )
    24  
    25  var labels_SUB_MODE = map[SUB_MODE]string{
    26  	SUB_MODE_STABILIZE: "SUB_MODE_STABILIZE",
    27  	SUB_MODE_ACRO:      "SUB_MODE_ACRO",
    28  	SUB_MODE_ALT_HOLD:  "SUB_MODE_ALT_HOLD",
    29  	SUB_MODE_AUTO:      "SUB_MODE_AUTO",
    30  	SUB_MODE_GUIDED:    "SUB_MODE_GUIDED",
    31  	SUB_MODE_CIRCLE:    "SUB_MODE_CIRCLE",
    32  	SUB_MODE_SURFACE:   "SUB_MODE_SURFACE",
    33  	SUB_MODE_POSHOLD:   "SUB_MODE_POSHOLD",
    34  	SUB_MODE_MANUAL:    "SUB_MODE_MANUAL",
    35  }
    36  
    37  var values_SUB_MODE = map[string]SUB_MODE{
    38  	"SUB_MODE_STABILIZE": SUB_MODE_STABILIZE,
    39  	"SUB_MODE_ACRO":      SUB_MODE_ACRO,
    40  	"SUB_MODE_ALT_HOLD":  SUB_MODE_ALT_HOLD,
    41  	"SUB_MODE_AUTO":      SUB_MODE_AUTO,
    42  	"SUB_MODE_GUIDED":    SUB_MODE_GUIDED,
    43  	"SUB_MODE_CIRCLE":    SUB_MODE_CIRCLE,
    44  	"SUB_MODE_SURFACE":   SUB_MODE_SURFACE,
    45  	"SUB_MODE_POSHOLD":   SUB_MODE_POSHOLD,
    46  	"SUB_MODE_MANUAL":    SUB_MODE_MANUAL,
    47  }
    48  
    49  // MarshalText implements the encoding.TextMarshaler interface.
    50  func (e SUB_MODE) MarshalText() ([]byte, error) {
    51  	if name, ok := labels_SUB_MODE[e]; ok {
    52  		return []byte(name), nil
    53  	}
    54  	return []byte(strconv.Itoa(int(e))), nil
    55  }
    56  
    57  // UnmarshalText implements the encoding.TextUnmarshaler interface.
    58  func (e *SUB_MODE) UnmarshalText(text []byte) error {
    59  	if value, ok := values_SUB_MODE[string(text)]; ok {
    60  		*e = value
    61  	} else if value, err := strconv.Atoi(string(text)); err == nil {
    62  		*e = SUB_MODE(value)
    63  	} else {
    64  		return fmt.Errorf("invalid label '%s'", text)
    65  	}
    66  	return nil
    67  }
    68  
    69  // String implements the fmt.Stringer interface.
    70  func (e SUB_MODE) String() string {
    71  	val, _ := e.MarshalText()
    72  	return string(val)
    73  }