diff --git a/boards/varmint_h7 b/boards/varmint_h7 index c0c1a317..ed343c0f 160000 --- a/boards/varmint_h7 +++ b/boards/varmint_h7 @@ -1 +1 @@ -Subproject commit c0c1a3177b7aa7c755778dcbe810f405d3d9c075 +Subproject commit ed343c0fcc5b404dd9d3977ed75b6fb6d797efde diff --git a/include/board.h b/include/board.h index 15dbe117..0151003a 100644 --- a/include/board.h +++ b/include/board.h @@ -54,6 +54,13 @@ class Board virtual void init_board() = 0; virtual void board_reset(bool bootloader) = 0; + virtual void sensors_init(void) = 0; + virtual uint16_t sensors_errors_count() = 0; + + virtual uint16_t sensors_init_message_count() = 0; + virtual bool sensors_init_message_good(uint16_t i) = 0; + virtual uint16_t sensors_init_message(char *message, uint16_t size, uint16_t i) = 0; + // clock virtual uint32_t clock_millis() = 0; virtual uint64_t clock_micros() = 0; @@ -67,11 +74,8 @@ class Board virtual uint8_t serial_read() = 0; virtual void serial_flush() = 0; - // sensors - virtual void sensors_init() = 0; - virtual uint16_t num_sensor_errors() = 0; - // IMU + virtual bool imu_present() = 0; virtual bool imu_has_new_data() = 0; virtual bool imu_read(float accel[3], float * temperature, float gyro[3], uint64_t * time) = 0; virtual void imu_not_responding_error() = 0; diff --git a/include/comm_manager.h b/include/comm_manager.h index 1125019e..3edd2793 100644 --- a/include/comm_manager.h +++ b/include/comm_manager.h @@ -162,7 +162,6 @@ class CommManager : public CommLinkInterface::ListenerInterface, public ParamLis // Debugging Utils void send_named_value_int(const char * const name, int32_t value); - // void send_named_command_struct(const char *const name, control_t command_struct); void send_next_param(void); @@ -180,8 +179,8 @@ class CommManager : public CommLinkInterface::ListenerInterface, public ParamLis void send_param_value(uint16_t param_id); void update_status(); void log(CommLinkInterface::LogSeverity severity, const char * fmt, ...); + void log_message(CommLinkInterface::LogSeverity severity, char * text); - void send_parameter_list(); void send_named_value_float(const char * const name, float value); void send_backup_data(const StateManager::BackupData & backup_data); diff --git a/include/interface/comm_link.h b/include/interface/comm_link.h index c5a156e0..1bb3a816 100644 --- a/include/interface/comm_link.h +++ b/include/interface/comm_link.h @@ -32,7 +32,6 @@ #ifndef ROSFLIGHT_FIRMWARE_COMM_LINK_H #define ROSFLIGHT_FIRMWARE_COMM_LINK_H -#include "board.h" #include "param.h" #include "sensors.h" #include "state_manager.h" diff --git a/src/comm_manager.cpp b/src/comm_manager.cpp index 6e872c5e..253ddf8f 100644 --- a/src/comm_manager.cpp +++ b/src/comm_manager.cpp @@ -129,8 +129,6 @@ void CommManager::param_request_list_callback(uint8_t target_system) if (target_system == sysid_) { send_params_index_ = 0; } } -void CommManager::send_parameter_list() { send_params_index_ = 0; } - void CommManager::param_request_read_callback(uint8_t target_system, const char * const param_name, int16_t param_index) { @@ -329,10 +327,15 @@ void CommManager::log(CommLinkInterface::LogSeverity severity, const char * fmt, // Convert the format string to a raw char array va_list args; va_start(args, fmt); - char text[LOG_MSG_SIZE]; - vsnprintf(text, LOG_MSG_SIZE, fmt, args); + char message[LOG_MSG_SIZE]; + vsnprintf(message, LOG_MSG_SIZE, fmt, args); va_end(args); + log_message(severity, message); +} + +void CommManager::log_message(CommLinkInterface::LogSeverity severity, char * text) +{ if (initialized_ && connected_) { comm_link_.send_log_message(sysid_, severity, text); } else { @@ -361,7 +364,7 @@ void CommManager::send_status(void) comm_link_.send_status( sysid_, RF_.state_manager_.state().armed, RF_.state_manager_.state().failsafe, RF_.command_manager_.rc_override_active(), RF_.command_manager_.offboard_control_active(), - RF_.state_manager_.state().error_codes, control_mode, RF_.board_.num_sensor_errors(), + RF_.state_manager_.state().error_codes, control_mode, RF_.board_.sensors_errors_count(), RF_.get_loop_time_us()); } diff --git a/test/test_board.cpp b/test/test_board.cpp index 0cbf1142..54541dac 100644 --- a/test/test_board.cpp +++ b/test/test_board.cpp @@ -73,8 +73,13 @@ uint8_t testBoard::serial_read() { return 0; } void testBoard::serial_flush() {} // sensors -void testBoard::sensors_init() {} -uint16_t testBoard::num_sensor_errors() { return 0; } +void testBoard::sensors_init() {}; +uint16_t testBoard::sensors_errors_count() {return 0;} +uint16_t testBoard::sensors_init_message_count() {return 0;} +uint16_t testBoard::sensors_init_message(char * message, uint16_t size, uint16_t i) {return 0;} +bool testBoard::sensors_init_message_good(uint16_t i) {return false;} + +bool testBoard::imu_present() {return false;} bool testBoard::imu_has_new_data() { diff --git a/test/test_board.h b/test/test_board.h index 5d0e19b1..b26d8110 100644 --- a/test/test_board.h +++ b/test/test_board.h @@ -69,8 +69,12 @@ class testBoard : public Board // sensors void sensors_init() override; - uint16_t num_sensor_errors() override; + uint16_t sensors_errors_count() override; + uint16_t sensors_init_message_count() override; + uint16_t sensors_init_message(char * message, uint16_t size, uint16_t i) override; + bool sensors_init_message_good(uint16_t i) override; + bool imu_present() override; bool imu_has_new_data() override; bool imu_read(float accel[3], float * temperature, float gyro[3], uint64_t * time) override; void imu_not_responding_error() override;