github.com/bluenviron/gomavlib/v2@v2.2.1-0.20240308101627-2c07e3da629c/pkg/dialects/uavionix/enum_uavionix_adsb_out_dynamic_state.go (about) 1 //autogenerated:yes 2 //nolint:revive,misspell,govet,lll,dupl,gocritic 3 package uavionix 4 5 import ( 6 "fmt" 7 "strconv" 8 "strings" 9 ) 10 11 // State flags for ADS-B transponder dynamic report 12 type UAVIONIX_ADSB_OUT_DYNAMIC_STATE uint64 13 14 const ( 15 UAVIONIX_ADSB_OUT_DYNAMIC_STATE_INTENT_CHANGE UAVIONIX_ADSB_OUT_DYNAMIC_STATE = 1 16 UAVIONIX_ADSB_OUT_DYNAMIC_STATE_AUTOPILOT_ENABLED UAVIONIX_ADSB_OUT_DYNAMIC_STATE = 2 17 UAVIONIX_ADSB_OUT_DYNAMIC_STATE_NICBARO_CROSSCHECKED UAVIONIX_ADSB_OUT_DYNAMIC_STATE = 4 18 UAVIONIX_ADSB_OUT_DYNAMIC_STATE_ON_GROUND UAVIONIX_ADSB_OUT_DYNAMIC_STATE = 8 19 UAVIONIX_ADSB_OUT_DYNAMIC_STATE_IDENT UAVIONIX_ADSB_OUT_DYNAMIC_STATE = 16 20 ) 21 22 var labels_UAVIONIX_ADSB_OUT_DYNAMIC_STATE = map[UAVIONIX_ADSB_OUT_DYNAMIC_STATE]string{ 23 UAVIONIX_ADSB_OUT_DYNAMIC_STATE_INTENT_CHANGE: "UAVIONIX_ADSB_OUT_DYNAMIC_STATE_INTENT_CHANGE", 24 UAVIONIX_ADSB_OUT_DYNAMIC_STATE_AUTOPILOT_ENABLED: "UAVIONIX_ADSB_OUT_DYNAMIC_STATE_AUTOPILOT_ENABLED", 25 UAVIONIX_ADSB_OUT_DYNAMIC_STATE_NICBARO_CROSSCHECKED: "UAVIONIX_ADSB_OUT_DYNAMIC_STATE_NICBARO_CROSSCHECKED", 26 UAVIONIX_ADSB_OUT_DYNAMIC_STATE_ON_GROUND: "UAVIONIX_ADSB_OUT_DYNAMIC_STATE_ON_GROUND", 27 UAVIONIX_ADSB_OUT_DYNAMIC_STATE_IDENT: "UAVIONIX_ADSB_OUT_DYNAMIC_STATE_IDENT", 28 } 29 30 var values_UAVIONIX_ADSB_OUT_DYNAMIC_STATE = map[string]UAVIONIX_ADSB_OUT_DYNAMIC_STATE{ 31 "UAVIONIX_ADSB_OUT_DYNAMIC_STATE_INTENT_CHANGE": UAVIONIX_ADSB_OUT_DYNAMIC_STATE_INTENT_CHANGE, 32 "UAVIONIX_ADSB_OUT_DYNAMIC_STATE_AUTOPILOT_ENABLED": UAVIONIX_ADSB_OUT_DYNAMIC_STATE_AUTOPILOT_ENABLED, 33 "UAVIONIX_ADSB_OUT_DYNAMIC_STATE_NICBARO_CROSSCHECKED": UAVIONIX_ADSB_OUT_DYNAMIC_STATE_NICBARO_CROSSCHECKED, 34 "UAVIONIX_ADSB_OUT_DYNAMIC_STATE_ON_GROUND": UAVIONIX_ADSB_OUT_DYNAMIC_STATE_ON_GROUND, 35 "UAVIONIX_ADSB_OUT_DYNAMIC_STATE_IDENT": UAVIONIX_ADSB_OUT_DYNAMIC_STATE_IDENT, 36 } 37 38 // MarshalText implements the encoding.TextMarshaler interface. 39 func (e UAVIONIX_ADSB_OUT_DYNAMIC_STATE) MarshalText() ([]byte, error) { 40 if e == 0 { 41 return []byte("0"), nil 42 } 43 var names []string 44 for i := 0; i < 5; i++ { 45 mask := UAVIONIX_ADSB_OUT_DYNAMIC_STATE(1 << i) 46 if e&mask == mask { 47 names = append(names, labels_UAVIONIX_ADSB_OUT_DYNAMIC_STATE[mask]) 48 } 49 } 50 return []byte(strings.Join(names, " | ")), nil 51 } 52 53 // UnmarshalText implements the encoding.TextUnmarshaler interface. 54 func (e *UAVIONIX_ADSB_OUT_DYNAMIC_STATE) UnmarshalText(text []byte) error { 55 labels := strings.Split(string(text), " | ") 56 var mask UAVIONIX_ADSB_OUT_DYNAMIC_STATE 57 for _, label := range labels { 58 if value, ok := values_UAVIONIX_ADSB_OUT_DYNAMIC_STATE[label]; ok { 59 mask |= value 60 } else if value, err := strconv.Atoi(label); err == nil { 61 mask |= UAVIONIX_ADSB_OUT_DYNAMIC_STATE(value) 62 } else { 63 return fmt.Errorf("invalid label '%s'", label) 64 } 65 } 66 *e = mask 67 return nil 68 } 69 70 // String implements the fmt.Stringer interface. 71 func (e UAVIONIX_ADSB_OUT_DYNAMIC_STATE) String() string { 72 val, _ := e.MarshalText() 73 return string(val) 74 }