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  }