Add timing monitor for main loop and add monitors to safety flag command
This commit is contained in:
@@ -37,12 +37,14 @@ enum safety_flag {
|
||||
ERR_FLAG_WTCHDG_FIRED = (1<<11),
|
||||
ERR_FLAG_UNCAL = (1<<12),
|
||||
ERR_FLAG_DEBUG = (1<<13),
|
||||
ERR_FLAG_TIMING_MAIN_LOOP = (1<<14),
|
||||
};
|
||||
|
||||
enum timing_monitor {
|
||||
ERR_TIMING_PID = (1<<0),
|
||||
ERR_TIMING_MEAS_ADC = (1<<1),
|
||||
ERR_TIMING_SAFETY_ADC = (1<<2),
|
||||
ERR_TIMING_MAIN_LOOP = (1<<3),
|
||||
};
|
||||
|
||||
enum analog_value_monitor {
|
||||
|
@@ -46,6 +46,14 @@ struct analog_monitor_info {
|
||||
uint64_t timestamp;
|
||||
};
|
||||
|
||||
struct timing_monitor_info {
|
||||
uint64_t last_run;
|
||||
uint64_t min;
|
||||
uint64_t max;
|
||||
bool enabled;
|
||||
uint64_t delta;
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief Initialize the safety controller
|
||||
*
|
||||
@@ -94,6 +102,12 @@ int safety_controller_get_analog_mon_by_index(uint32_t index, struct analog_moni
|
||||
|
||||
int safety_controller_get_analog_mon_name_by_index(uint32_t index, char *buffer, size_t buffsize);
|
||||
|
||||
int safety_controller_get_timing_mon_by_index(uint32_t index, struct timing_monitor_info *info);
|
||||
|
||||
int safety_controller_get_timing_mon_name_by_index(uint32_t index, char *buffer, size_t buffsize);
|
||||
|
||||
uint32_t safety_controller_get_timing_monitor_count();
|
||||
|
||||
#endif /* __SAFETY_CONTROLLER_H__ */
|
||||
|
||||
/** @} */
|
||||
|
Reference in New Issue
Block a user