github.com/bluenviron/gomavlib/v2@v2.2.1-0.20240308101627-2c07e3da629c/pkg/dialects/uavionix/enum_uavionix_adsb_rf_health.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 // Status flags for ADS-B transponder dynamic output 12 type UAVIONIX_ADSB_RF_HEALTH uint64 13 14 const ( 15 UAVIONIX_ADSB_RF_HEALTH_INITIALIZING UAVIONIX_ADSB_RF_HEALTH = 0 16 UAVIONIX_ADSB_RF_HEALTH_OK UAVIONIX_ADSB_RF_HEALTH = 1 17 UAVIONIX_ADSB_RF_HEALTH_FAIL_TX UAVIONIX_ADSB_RF_HEALTH = 2 18 UAVIONIX_ADSB_RF_HEALTH_FAIL_RX UAVIONIX_ADSB_RF_HEALTH = 16 19 ) 20 21 var labels_UAVIONIX_ADSB_RF_HEALTH = map[UAVIONIX_ADSB_RF_HEALTH]string{ 22 UAVIONIX_ADSB_RF_HEALTH_INITIALIZING: "UAVIONIX_ADSB_RF_HEALTH_INITIALIZING", 23 UAVIONIX_ADSB_RF_HEALTH_OK: "UAVIONIX_ADSB_RF_HEALTH_OK", 24 UAVIONIX_ADSB_RF_HEALTH_FAIL_TX: "UAVIONIX_ADSB_RF_HEALTH_FAIL_TX", 25 UAVIONIX_ADSB_RF_HEALTH_FAIL_RX: "UAVIONIX_ADSB_RF_HEALTH_FAIL_RX", 26 } 27 28 var values_UAVIONIX_ADSB_RF_HEALTH = map[string]UAVIONIX_ADSB_RF_HEALTH{ 29 "UAVIONIX_ADSB_RF_HEALTH_INITIALIZING": UAVIONIX_ADSB_RF_HEALTH_INITIALIZING, 30 "UAVIONIX_ADSB_RF_HEALTH_OK": UAVIONIX_ADSB_RF_HEALTH_OK, 31 "UAVIONIX_ADSB_RF_HEALTH_FAIL_TX": UAVIONIX_ADSB_RF_HEALTH_FAIL_TX, 32 "UAVIONIX_ADSB_RF_HEALTH_FAIL_RX": UAVIONIX_ADSB_RF_HEALTH_FAIL_RX, 33 } 34 35 // MarshalText implements the encoding.TextMarshaler interface. 36 func (e UAVIONIX_ADSB_RF_HEALTH) MarshalText() ([]byte, error) { 37 if e == 0 { 38 return []byte("0"), nil 39 } 40 var names []string 41 for i := 0; i < 4; i++ { 42 mask := UAVIONIX_ADSB_RF_HEALTH(1 << i) 43 if e&mask == mask { 44 names = append(names, labels_UAVIONIX_ADSB_RF_HEALTH[mask]) 45 } 46 } 47 return []byte(strings.Join(names, " | ")), nil 48 } 49 50 // UnmarshalText implements the encoding.TextUnmarshaler interface. 51 func (e *UAVIONIX_ADSB_RF_HEALTH) UnmarshalText(text []byte) error { 52 labels := strings.Split(string(text), " | ") 53 var mask UAVIONIX_ADSB_RF_HEALTH 54 for _, label := range labels { 55 if value, ok := values_UAVIONIX_ADSB_RF_HEALTH[label]; ok { 56 mask |= value 57 } else if value, err := strconv.Atoi(label); err == nil { 58 mask |= UAVIONIX_ADSB_RF_HEALTH(value) 59 } else { 60 return fmt.Errorf("invalid label '%s'", label) 61 } 62 } 63 *e = mask 64 return nil 65 } 66 67 // String implements the fmt.Stringer interface. 68 func (e UAVIONIX_ADSB_RF_HEALTH) String() string { 69 val, _ := e.MarshalText() 70 return string(val) 71 }