github.com/bluenviron/gomavlib/v2@v2.2.1-0.20240308101627-2c07e3da629c/pkg/dialects/common/enum_mav_generator_status_flag.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 to report status/failure cases for a power generator (used in GENERATOR_STATUS). Note that FAULTS are conditions that cause the generator to fail. Warnings are conditions that require attention before the next use (they indicate the system is not operating properly). 12 type MAV_GENERATOR_STATUS_FLAG uint64 13 14 const ( 15 // Generator is off. 16 MAV_GENERATOR_STATUS_FLAG_OFF MAV_GENERATOR_STATUS_FLAG = 1 17 // Generator is ready to start generating power. 18 MAV_GENERATOR_STATUS_FLAG_READY MAV_GENERATOR_STATUS_FLAG = 2 19 // Generator is generating power. 20 MAV_GENERATOR_STATUS_FLAG_GENERATING MAV_GENERATOR_STATUS_FLAG = 4 21 // Generator is charging the batteries (generating enough power to charge and provide the load). 22 MAV_GENERATOR_STATUS_FLAG_CHARGING MAV_GENERATOR_STATUS_FLAG = 8 23 // Generator is operating at a reduced maximum power. 24 MAV_GENERATOR_STATUS_FLAG_REDUCED_POWER MAV_GENERATOR_STATUS_FLAG = 16 25 // Generator is providing the maximum output. 26 MAV_GENERATOR_STATUS_FLAG_MAXPOWER MAV_GENERATOR_STATUS_FLAG = 32 27 // Generator is near the maximum operating temperature, cooling is insufficient. 28 MAV_GENERATOR_STATUS_FLAG_OVERTEMP_WARNING MAV_GENERATOR_STATUS_FLAG = 64 29 // Generator hit the maximum operating temperature and shutdown. 30 MAV_GENERATOR_STATUS_FLAG_OVERTEMP_FAULT MAV_GENERATOR_STATUS_FLAG = 128 31 // Power electronics are near the maximum operating temperature, cooling is insufficient. 32 MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_OVERTEMP_WARNING MAV_GENERATOR_STATUS_FLAG = 256 33 // Power electronics hit the maximum operating temperature and shutdown. 34 MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_OVERTEMP_FAULT MAV_GENERATOR_STATUS_FLAG = 512 35 // Power electronics experienced a fault and shutdown. 36 MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_FAULT MAV_GENERATOR_STATUS_FLAG = 1024 37 // The power source supplying the generator failed e.g. mechanical generator stopped, tether is no longer providing power, solar cell is in shade, hydrogen reaction no longer happening. 38 MAV_GENERATOR_STATUS_FLAG_POWERSOURCE_FAULT MAV_GENERATOR_STATUS_FLAG = 2048 39 // Generator controller having communication problems. 40 MAV_GENERATOR_STATUS_FLAG_COMMUNICATION_WARNING MAV_GENERATOR_STATUS_FLAG = 4096 41 // Power electronic or generator cooling system error. 42 MAV_GENERATOR_STATUS_FLAG_COOLING_WARNING MAV_GENERATOR_STATUS_FLAG = 8192 43 // Generator controller power rail experienced a fault. 44 MAV_GENERATOR_STATUS_FLAG_POWER_RAIL_FAULT MAV_GENERATOR_STATUS_FLAG = 16384 45 // Generator controller exceeded the overcurrent threshold and shutdown to prevent damage. 46 MAV_GENERATOR_STATUS_FLAG_OVERCURRENT_FAULT MAV_GENERATOR_STATUS_FLAG = 32768 47 // Generator controller detected a high current going into the batteries and shutdown to prevent battery damage. 48 MAV_GENERATOR_STATUS_FLAG_BATTERY_OVERCHARGE_CURRENT_FAULT MAV_GENERATOR_STATUS_FLAG = 65536 49 // Generator controller exceeded it's overvoltage threshold and shutdown to prevent it exceeding the voltage rating. 50 MAV_GENERATOR_STATUS_FLAG_OVERVOLTAGE_FAULT MAV_GENERATOR_STATUS_FLAG = 131072 51 // Batteries are under voltage (generator will not start). 52 MAV_GENERATOR_STATUS_FLAG_BATTERY_UNDERVOLT_FAULT MAV_GENERATOR_STATUS_FLAG = 262144 53 // Generator start is inhibited by e.g. a safety switch. 54 MAV_GENERATOR_STATUS_FLAG_START_INHIBITED MAV_GENERATOR_STATUS_FLAG = 524288 55 // Generator requires maintenance. 56 MAV_GENERATOR_STATUS_FLAG_MAINTENANCE_REQUIRED MAV_GENERATOR_STATUS_FLAG = 1048576 57 // Generator is not ready to generate yet. 58 MAV_GENERATOR_STATUS_FLAG_WARMING_UP MAV_GENERATOR_STATUS_FLAG = 2097152 59 // Generator is idle. 60 MAV_GENERATOR_STATUS_FLAG_IDLE MAV_GENERATOR_STATUS_FLAG = 4194304 61 ) 62 63 var labels_MAV_GENERATOR_STATUS_FLAG = map[MAV_GENERATOR_STATUS_FLAG]string{ 64 MAV_GENERATOR_STATUS_FLAG_OFF: "MAV_GENERATOR_STATUS_FLAG_OFF", 65 MAV_GENERATOR_STATUS_FLAG_READY: "MAV_GENERATOR_STATUS_FLAG_READY", 66 MAV_GENERATOR_STATUS_FLAG_GENERATING: "MAV_GENERATOR_STATUS_FLAG_GENERATING", 67 MAV_GENERATOR_STATUS_FLAG_CHARGING: "MAV_GENERATOR_STATUS_FLAG_CHARGING", 68 MAV_GENERATOR_STATUS_FLAG_REDUCED_POWER: "MAV_GENERATOR_STATUS_FLAG_REDUCED_POWER", 69 MAV_GENERATOR_STATUS_FLAG_MAXPOWER: "MAV_GENERATOR_STATUS_FLAG_MAXPOWER", 70 MAV_GENERATOR_STATUS_FLAG_OVERTEMP_WARNING: "MAV_GENERATOR_STATUS_FLAG_OVERTEMP_WARNING", 71 MAV_GENERATOR_STATUS_FLAG_OVERTEMP_FAULT: "MAV_GENERATOR_STATUS_FLAG_OVERTEMP_FAULT", 72 MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_OVERTEMP_WARNING: "MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_OVERTEMP_WARNING", 73 MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_OVERTEMP_FAULT: "MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_OVERTEMP_FAULT", 74 MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_FAULT: "MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_FAULT", 75 MAV_GENERATOR_STATUS_FLAG_POWERSOURCE_FAULT: "MAV_GENERATOR_STATUS_FLAG_POWERSOURCE_FAULT", 76 MAV_GENERATOR_STATUS_FLAG_COMMUNICATION_WARNING: "MAV_GENERATOR_STATUS_FLAG_COMMUNICATION_WARNING", 77 MAV_GENERATOR_STATUS_FLAG_COOLING_WARNING: "MAV_GENERATOR_STATUS_FLAG_COOLING_WARNING", 78 MAV_GENERATOR_STATUS_FLAG_POWER_RAIL_FAULT: "MAV_GENERATOR_STATUS_FLAG_POWER_RAIL_FAULT", 79 MAV_GENERATOR_STATUS_FLAG_OVERCURRENT_FAULT: "MAV_GENERATOR_STATUS_FLAG_OVERCURRENT_FAULT", 80 MAV_GENERATOR_STATUS_FLAG_BATTERY_OVERCHARGE_CURRENT_FAULT: "MAV_GENERATOR_STATUS_FLAG_BATTERY_OVERCHARGE_CURRENT_FAULT", 81 MAV_GENERATOR_STATUS_FLAG_OVERVOLTAGE_FAULT: "MAV_GENERATOR_STATUS_FLAG_OVERVOLTAGE_FAULT", 82 MAV_GENERATOR_STATUS_FLAG_BATTERY_UNDERVOLT_FAULT: "MAV_GENERATOR_STATUS_FLAG_BATTERY_UNDERVOLT_FAULT", 83 MAV_GENERATOR_STATUS_FLAG_START_INHIBITED: "MAV_GENERATOR_STATUS_FLAG_START_INHIBITED", 84 MAV_GENERATOR_STATUS_FLAG_MAINTENANCE_REQUIRED: "MAV_GENERATOR_STATUS_FLAG_MAINTENANCE_REQUIRED", 85 MAV_GENERATOR_STATUS_FLAG_WARMING_UP: "MAV_GENERATOR_STATUS_FLAG_WARMING_UP", 86 MAV_GENERATOR_STATUS_FLAG_IDLE: "MAV_GENERATOR_STATUS_FLAG_IDLE", 87 } 88 89 var values_MAV_GENERATOR_STATUS_FLAG = map[string]MAV_GENERATOR_STATUS_FLAG{ 90 "MAV_GENERATOR_STATUS_FLAG_OFF": MAV_GENERATOR_STATUS_FLAG_OFF, 91 "MAV_GENERATOR_STATUS_FLAG_READY": MAV_GENERATOR_STATUS_FLAG_READY, 92 "MAV_GENERATOR_STATUS_FLAG_GENERATING": MAV_GENERATOR_STATUS_FLAG_GENERATING, 93 "MAV_GENERATOR_STATUS_FLAG_CHARGING": MAV_GENERATOR_STATUS_FLAG_CHARGING, 94 "MAV_GENERATOR_STATUS_FLAG_REDUCED_POWER": MAV_GENERATOR_STATUS_FLAG_REDUCED_POWER, 95 "MAV_GENERATOR_STATUS_FLAG_MAXPOWER": MAV_GENERATOR_STATUS_FLAG_MAXPOWER, 96 "MAV_GENERATOR_STATUS_FLAG_OVERTEMP_WARNING": MAV_GENERATOR_STATUS_FLAG_OVERTEMP_WARNING, 97 "MAV_GENERATOR_STATUS_FLAG_OVERTEMP_FAULT": MAV_GENERATOR_STATUS_FLAG_OVERTEMP_FAULT, 98 "MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_OVERTEMP_WARNING": MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_OVERTEMP_WARNING, 99 "MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_OVERTEMP_FAULT": MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_OVERTEMP_FAULT, 100 "MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_FAULT": MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_FAULT, 101 "MAV_GENERATOR_STATUS_FLAG_POWERSOURCE_FAULT": MAV_GENERATOR_STATUS_FLAG_POWERSOURCE_FAULT, 102 "MAV_GENERATOR_STATUS_FLAG_COMMUNICATION_WARNING": MAV_GENERATOR_STATUS_FLAG_COMMUNICATION_WARNING, 103 "MAV_GENERATOR_STATUS_FLAG_COOLING_WARNING": MAV_GENERATOR_STATUS_FLAG_COOLING_WARNING, 104 "MAV_GENERATOR_STATUS_FLAG_POWER_RAIL_FAULT": MAV_GENERATOR_STATUS_FLAG_POWER_RAIL_FAULT, 105 "MAV_GENERATOR_STATUS_FLAG_OVERCURRENT_FAULT": MAV_GENERATOR_STATUS_FLAG_OVERCURRENT_FAULT, 106 "MAV_GENERATOR_STATUS_FLAG_BATTERY_OVERCHARGE_CURRENT_FAULT": MAV_GENERATOR_STATUS_FLAG_BATTERY_OVERCHARGE_CURRENT_FAULT, 107 "MAV_GENERATOR_STATUS_FLAG_OVERVOLTAGE_FAULT": MAV_GENERATOR_STATUS_FLAG_OVERVOLTAGE_FAULT, 108 "MAV_GENERATOR_STATUS_FLAG_BATTERY_UNDERVOLT_FAULT": MAV_GENERATOR_STATUS_FLAG_BATTERY_UNDERVOLT_FAULT, 109 "MAV_GENERATOR_STATUS_FLAG_START_INHIBITED": MAV_GENERATOR_STATUS_FLAG_START_INHIBITED, 110 "MAV_GENERATOR_STATUS_FLAG_MAINTENANCE_REQUIRED": MAV_GENERATOR_STATUS_FLAG_MAINTENANCE_REQUIRED, 111 "MAV_GENERATOR_STATUS_FLAG_WARMING_UP": MAV_GENERATOR_STATUS_FLAG_WARMING_UP, 112 "MAV_GENERATOR_STATUS_FLAG_IDLE": MAV_GENERATOR_STATUS_FLAG_IDLE, 113 } 114 115 // MarshalText implements the encoding.TextMarshaler interface. 116 func (e MAV_GENERATOR_STATUS_FLAG) MarshalText() ([]byte, error) { 117 if e == 0 { 118 return []byte("0"), nil 119 } 120 var names []string 121 for i := 0; i < 23; i++ { 122 mask := MAV_GENERATOR_STATUS_FLAG(1 << i) 123 if e&mask == mask { 124 names = append(names, labels_MAV_GENERATOR_STATUS_FLAG[mask]) 125 } 126 } 127 return []byte(strings.Join(names, " | ")), nil 128 } 129 130 // UnmarshalText implements the encoding.TextUnmarshaler interface. 131 func (e *MAV_GENERATOR_STATUS_FLAG) UnmarshalText(text []byte) error { 132 labels := strings.Split(string(text), " | ") 133 var mask MAV_GENERATOR_STATUS_FLAG 134 for _, label := range labels { 135 if value, ok := values_MAV_GENERATOR_STATUS_FLAG[label]; ok { 136 mask |= value 137 } else if value, err := strconv.Atoi(label); err == nil { 138 mask |= MAV_GENERATOR_STATUS_FLAG(value) 139 } else { 140 return fmt.Errorf("invalid label '%s'", label) 141 } 142 } 143 *e = mask 144 return nil 145 } 146 147 // String implements the fmt.Stringer interface. 148 func (e MAV_GENERATOR_STATUS_FLAG) String() string { 149 val, _ := e.MarshalText() 150 return string(val) 151 }