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

     1  //autogenerated:yes
     2  //nolint:revive,misspell,govet,lll,dupl,gocritic
     3  package common
     4  
     5  import (
     6  	"fmt"
     7  	"strconv"
     8  	"strings"
     9  )
    10  
    11  // Flags in the HIGHRES_IMU message indicate which fields have updated since the last message
    12  type HIGHRES_IMU_UPDATED_FLAGS uint64
    13  
    14  const (
    15  	// None of the fields in HIGHRES_IMU have been updated
    16  	HIGHRES_IMU_UPDATED_NONE HIGHRES_IMU_UPDATED_FLAGS = 0
    17  	// The value in the xacc field has been updated
    18  	HIGHRES_IMU_UPDATED_XACC HIGHRES_IMU_UPDATED_FLAGS = 1
    19  	// The value in the yacc field has been updated
    20  	HIGHRES_IMU_UPDATED_YACC HIGHRES_IMU_UPDATED_FLAGS = 2
    21  	// The value in the zacc field has been updated since
    22  	HIGHRES_IMU_UPDATED_ZACC HIGHRES_IMU_UPDATED_FLAGS = 4
    23  	// The value in the xgyro field has been updated
    24  	HIGHRES_IMU_UPDATED_XGYRO HIGHRES_IMU_UPDATED_FLAGS = 8
    25  	// The value in the ygyro field has been updated
    26  	HIGHRES_IMU_UPDATED_YGYRO HIGHRES_IMU_UPDATED_FLAGS = 16
    27  	// The value in the zgyro field has been updated
    28  	HIGHRES_IMU_UPDATED_ZGYRO HIGHRES_IMU_UPDATED_FLAGS = 32
    29  	// The value in the xmag field has been updated
    30  	HIGHRES_IMU_UPDATED_XMAG HIGHRES_IMU_UPDATED_FLAGS = 64
    31  	// The value in the ymag field has been updated
    32  	HIGHRES_IMU_UPDATED_YMAG HIGHRES_IMU_UPDATED_FLAGS = 128
    33  	// The value in the zmag field has been updated
    34  	HIGHRES_IMU_UPDATED_ZMAG HIGHRES_IMU_UPDATED_FLAGS = 256
    35  	// The value in the abs_pressure field has been updated
    36  	HIGHRES_IMU_UPDATED_ABS_PRESSURE HIGHRES_IMU_UPDATED_FLAGS = 512
    37  	// The value in the diff_pressure field has been updated
    38  	HIGHRES_IMU_UPDATED_DIFF_PRESSURE HIGHRES_IMU_UPDATED_FLAGS = 1024
    39  	// The value in the pressure_alt field has been updated
    40  	HIGHRES_IMU_UPDATED_PRESSURE_ALT HIGHRES_IMU_UPDATED_FLAGS = 2048
    41  	// The value in the temperature field has been updated
    42  	HIGHRES_IMU_UPDATED_TEMPERATURE HIGHRES_IMU_UPDATED_FLAGS = 4096
    43  	// All fields in HIGHRES_IMU have been updated.
    44  	HIGHRES_IMU_UPDATED_ALL HIGHRES_IMU_UPDATED_FLAGS = 65535
    45  )
    46  
    47  var labels_HIGHRES_IMU_UPDATED_FLAGS = map[HIGHRES_IMU_UPDATED_FLAGS]string{
    48  	HIGHRES_IMU_UPDATED_NONE:          "HIGHRES_IMU_UPDATED_NONE",
    49  	HIGHRES_IMU_UPDATED_XACC:          "HIGHRES_IMU_UPDATED_XACC",
    50  	HIGHRES_IMU_UPDATED_YACC:          "HIGHRES_IMU_UPDATED_YACC",
    51  	HIGHRES_IMU_UPDATED_ZACC:          "HIGHRES_IMU_UPDATED_ZACC",
    52  	HIGHRES_IMU_UPDATED_XGYRO:         "HIGHRES_IMU_UPDATED_XGYRO",
    53  	HIGHRES_IMU_UPDATED_YGYRO:         "HIGHRES_IMU_UPDATED_YGYRO",
    54  	HIGHRES_IMU_UPDATED_ZGYRO:         "HIGHRES_IMU_UPDATED_ZGYRO",
    55  	HIGHRES_IMU_UPDATED_XMAG:          "HIGHRES_IMU_UPDATED_XMAG",
    56  	HIGHRES_IMU_UPDATED_YMAG:          "HIGHRES_IMU_UPDATED_YMAG",
    57  	HIGHRES_IMU_UPDATED_ZMAG:          "HIGHRES_IMU_UPDATED_ZMAG",
    58  	HIGHRES_IMU_UPDATED_ABS_PRESSURE:  "HIGHRES_IMU_UPDATED_ABS_PRESSURE",
    59  	HIGHRES_IMU_UPDATED_DIFF_PRESSURE: "HIGHRES_IMU_UPDATED_DIFF_PRESSURE",
    60  	HIGHRES_IMU_UPDATED_PRESSURE_ALT:  "HIGHRES_IMU_UPDATED_PRESSURE_ALT",
    61  	HIGHRES_IMU_UPDATED_TEMPERATURE:   "HIGHRES_IMU_UPDATED_TEMPERATURE",
    62  	HIGHRES_IMU_UPDATED_ALL:           "HIGHRES_IMU_UPDATED_ALL",
    63  }
    64  
    65  var values_HIGHRES_IMU_UPDATED_FLAGS = map[string]HIGHRES_IMU_UPDATED_FLAGS{
    66  	"HIGHRES_IMU_UPDATED_NONE":          HIGHRES_IMU_UPDATED_NONE,
    67  	"HIGHRES_IMU_UPDATED_XACC":          HIGHRES_IMU_UPDATED_XACC,
    68  	"HIGHRES_IMU_UPDATED_YACC":          HIGHRES_IMU_UPDATED_YACC,
    69  	"HIGHRES_IMU_UPDATED_ZACC":          HIGHRES_IMU_UPDATED_ZACC,
    70  	"HIGHRES_IMU_UPDATED_XGYRO":         HIGHRES_IMU_UPDATED_XGYRO,
    71  	"HIGHRES_IMU_UPDATED_YGYRO":         HIGHRES_IMU_UPDATED_YGYRO,
    72  	"HIGHRES_IMU_UPDATED_ZGYRO":         HIGHRES_IMU_UPDATED_ZGYRO,
    73  	"HIGHRES_IMU_UPDATED_XMAG":          HIGHRES_IMU_UPDATED_XMAG,
    74  	"HIGHRES_IMU_UPDATED_YMAG":          HIGHRES_IMU_UPDATED_YMAG,
    75  	"HIGHRES_IMU_UPDATED_ZMAG":          HIGHRES_IMU_UPDATED_ZMAG,
    76  	"HIGHRES_IMU_UPDATED_ABS_PRESSURE":  HIGHRES_IMU_UPDATED_ABS_PRESSURE,
    77  	"HIGHRES_IMU_UPDATED_DIFF_PRESSURE": HIGHRES_IMU_UPDATED_DIFF_PRESSURE,
    78  	"HIGHRES_IMU_UPDATED_PRESSURE_ALT":  HIGHRES_IMU_UPDATED_PRESSURE_ALT,
    79  	"HIGHRES_IMU_UPDATED_TEMPERATURE":   HIGHRES_IMU_UPDATED_TEMPERATURE,
    80  	"HIGHRES_IMU_UPDATED_ALL":           HIGHRES_IMU_UPDATED_ALL,
    81  }
    82  
    83  // MarshalText implements the encoding.TextMarshaler interface.
    84  func (e HIGHRES_IMU_UPDATED_FLAGS) MarshalText() ([]byte, error) {
    85  	if e == 0 {
    86  		return []byte("0"), nil
    87  	}
    88  	var names []string
    89  	for i := 0; i < 15; i++ {
    90  		mask := HIGHRES_IMU_UPDATED_FLAGS(1 << i)
    91  		if e&mask == mask {
    92  			names = append(names, labels_HIGHRES_IMU_UPDATED_FLAGS[mask])
    93  		}
    94  	}
    95  	return []byte(strings.Join(names, " | ")), nil
    96  }
    97  
    98  // UnmarshalText implements the encoding.TextUnmarshaler interface.
    99  func (e *HIGHRES_IMU_UPDATED_FLAGS) UnmarshalText(text []byte) error {
   100  	labels := strings.Split(string(text), " | ")
   101  	var mask HIGHRES_IMU_UPDATED_FLAGS
   102  	for _, label := range labels {
   103  		if value, ok := values_HIGHRES_IMU_UPDATED_FLAGS[label]; ok {
   104  			mask |= value
   105  		} else if value, err := strconv.Atoi(label); err == nil {
   106  			mask |= HIGHRES_IMU_UPDATED_FLAGS(value)
   107  		} else {
   108  			return fmt.Errorf("invalid label '%s'", label)
   109  		}
   110  	}
   111  	*e = mask
   112  	return nil
   113  }
   114  
   115  // String implements the fmt.Stringer interface.
   116  func (e HIGHRES_IMU_UPDATED_FLAGS) String() string {
   117  	val, _ := e.MarshalText()
   118  	return string(val)
   119  }