github.com/bluenviron/gomavlib/v2@v2.2.1-0.20240308101627-2c07e3da629c/pkg/dialects/common/enum_hil_sensor_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 HIL_SENSOR message indicate which fields have updated since the last message
    12  type HIL_SENSOR_UPDATED_FLAGS uint64
    13  
    14  const (
    15  	// None of the fields in HIL_SENSOR have been updated
    16  	HIL_SENSOR_UPDATED_NONE HIL_SENSOR_UPDATED_FLAGS = 0
    17  	// The value in the xacc field has been updated
    18  	HIL_SENSOR_UPDATED_XACC HIL_SENSOR_UPDATED_FLAGS = 1
    19  	// The value in the yacc field has been updated
    20  	HIL_SENSOR_UPDATED_YACC HIL_SENSOR_UPDATED_FLAGS = 2
    21  	// The value in the zacc field has been updated
    22  	HIL_SENSOR_UPDATED_ZACC HIL_SENSOR_UPDATED_FLAGS = 4
    23  	// The value in the xgyro field has been updated
    24  	HIL_SENSOR_UPDATED_XGYRO HIL_SENSOR_UPDATED_FLAGS = 8
    25  	// The value in the ygyro field has been updated
    26  	HIL_SENSOR_UPDATED_YGYRO HIL_SENSOR_UPDATED_FLAGS = 16
    27  	// The value in the zgyro field has been updated
    28  	HIL_SENSOR_UPDATED_ZGYRO HIL_SENSOR_UPDATED_FLAGS = 32
    29  	// The value in the xmag field has been updated
    30  	HIL_SENSOR_UPDATED_XMAG HIL_SENSOR_UPDATED_FLAGS = 64
    31  	// The value in the ymag field has been updated
    32  	HIL_SENSOR_UPDATED_YMAG HIL_SENSOR_UPDATED_FLAGS = 128
    33  	// The value in the zmag field has been updated
    34  	HIL_SENSOR_UPDATED_ZMAG HIL_SENSOR_UPDATED_FLAGS = 256
    35  	// The value in the abs_pressure field has been updated
    36  	HIL_SENSOR_UPDATED_ABS_PRESSURE HIL_SENSOR_UPDATED_FLAGS = 512
    37  	// The value in the diff_pressure field has been updated
    38  	HIL_SENSOR_UPDATED_DIFF_PRESSURE HIL_SENSOR_UPDATED_FLAGS = 1024
    39  	// The value in the pressure_alt field has been updated
    40  	HIL_SENSOR_UPDATED_PRESSURE_ALT HIL_SENSOR_UPDATED_FLAGS = 2048
    41  	// The value in the temperature field has been updated
    42  	HIL_SENSOR_UPDATED_TEMPERATURE HIL_SENSOR_UPDATED_FLAGS = 4096
    43  	// Full reset of attitude/position/velocities/etc was performed in sim (Bit 31).
    44  	HIL_SENSOR_UPDATED_RESET HIL_SENSOR_UPDATED_FLAGS = 2147483648
    45  )
    46  
    47  var labels_HIL_SENSOR_UPDATED_FLAGS = map[HIL_SENSOR_UPDATED_FLAGS]string{
    48  	HIL_SENSOR_UPDATED_NONE:          "HIL_SENSOR_UPDATED_NONE",
    49  	HIL_SENSOR_UPDATED_XACC:          "HIL_SENSOR_UPDATED_XACC",
    50  	HIL_SENSOR_UPDATED_YACC:          "HIL_SENSOR_UPDATED_YACC",
    51  	HIL_SENSOR_UPDATED_ZACC:          "HIL_SENSOR_UPDATED_ZACC",
    52  	HIL_SENSOR_UPDATED_XGYRO:         "HIL_SENSOR_UPDATED_XGYRO",
    53  	HIL_SENSOR_UPDATED_YGYRO:         "HIL_SENSOR_UPDATED_YGYRO",
    54  	HIL_SENSOR_UPDATED_ZGYRO:         "HIL_SENSOR_UPDATED_ZGYRO",
    55  	HIL_SENSOR_UPDATED_XMAG:          "HIL_SENSOR_UPDATED_XMAG",
    56  	HIL_SENSOR_UPDATED_YMAG:          "HIL_SENSOR_UPDATED_YMAG",
    57  	HIL_SENSOR_UPDATED_ZMAG:          "HIL_SENSOR_UPDATED_ZMAG",
    58  	HIL_SENSOR_UPDATED_ABS_PRESSURE:  "HIL_SENSOR_UPDATED_ABS_PRESSURE",
    59  	HIL_SENSOR_UPDATED_DIFF_PRESSURE: "HIL_SENSOR_UPDATED_DIFF_PRESSURE",
    60  	HIL_SENSOR_UPDATED_PRESSURE_ALT:  "HIL_SENSOR_UPDATED_PRESSURE_ALT",
    61  	HIL_SENSOR_UPDATED_TEMPERATURE:   "HIL_SENSOR_UPDATED_TEMPERATURE",
    62  	HIL_SENSOR_UPDATED_RESET:         "HIL_SENSOR_UPDATED_RESET",
    63  }
    64  
    65  var values_HIL_SENSOR_UPDATED_FLAGS = map[string]HIL_SENSOR_UPDATED_FLAGS{
    66  	"HIL_SENSOR_UPDATED_NONE":          HIL_SENSOR_UPDATED_NONE,
    67  	"HIL_SENSOR_UPDATED_XACC":          HIL_SENSOR_UPDATED_XACC,
    68  	"HIL_SENSOR_UPDATED_YACC":          HIL_SENSOR_UPDATED_YACC,
    69  	"HIL_SENSOR_UPDATED_ZACC":          HIL_SENSOR_UPDATED_ZACC,
    70  	"HIL_SENSOR_UPDATED_XGYRO":         HIL_SENSOR_UPDATED_XGYRO,
    71  	"HIL_SENSOR_UPDATED_YGYRO":         HIL_SENSOR_UPDATED_YGYRO,
    72  	"HIL_SENSOR_UPDATED_ZGYRO":         HIL_SENSOR_UPDATED_ZGYRO,
    73  	"HIL_SENSOR_UPDATED_XMAG":          HIL_SENSOR_UPDATED_XMAG,
    74  	"HIL_SENSOR_UPDATED_YMAG":          HIL_SENSOR_UPDATED_YMAG,
    75  	"HIL_SENSOR_UPDATED_ZMAG":          HIL_SENSOR_UPDATED_ZMAG,
    76  	"HIL_SENSOR_UPDATED_ABS_PRESSURE":  HIL_SENSOR_UPDATED_ABS_PRESSURE,
    77  	"HIL_SENSOR_UPDATED_DIFF_PRESSURE": HIL_SENSOR_UPDATED_DIFF_PRESSURE,
    78  	"HIL_SENSOR_UPDATED_PRESSURE_ALT":  HIL_SENSOR_UPDATED_PRESSURE_ALT,
    79  	"HIL_SENSOR_UPDATED_TEMPERATURE":   HIL_SENSOR_UPDATED_TEMPERATURE,
    80  	"HIL_SENSOR_UPDATED_RESET":         HIL_SENSOR_UPDATED_RESET,
    81  }
    82  
    83  // MarshalText implements the encoding.TextMarshaler interface.
    84  func (e HIL_SENSOR_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 := HIL_SENSOR_UPDATED_FLAGS(1 << i)
    91  		if e&mask == mask {
    92  			names = append(names, labels_HIL_SENSOR_UPDATED_FLAGS[mask])
    93  		}
    94  	}
    95  	return []byte(strings.Join(names, " | ")), nil
    96  }
    97  
    98  // UnmarshalText implements the encoding.TextUnmarshaler interface.
    99  func (e *HIL_SENSOR_UPDATED_FLAGS) UnmarshalText(text []byte) error {
   100  	labels := strings.Split(string(text), " | ")
   101  	var mask HIL_SENSOR_UPDATED_FLAGS
   102  	for _, label := range labels {
   103  		if value, ok := values_HIL_SENSOR_UPDATED_FLAGS[label]; ok {
   104  			mask |= value
   105  		} else if value, err := strconv.Atoi(label); err == nil {
   106  			mask |= HIL_SENSOR_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 HIL_SENSOR_UPDATED_FLAGS) String() string {
   117  	val, _ := e.MarshalText()
   118  	return string(val)
   119  }