1#ifndef MASTERBOARDINTERFACE_H
2#define MASTERBOARDINTERFACE_H
60 void callback(uint8_t
src_mac[6], uint8_t *data,
int len);
64 uint8_t payload_[127];
66 bool listener_mode =
false;
74 bool first_sensor_received =
false;
78 uint16_t nb_sensors_recv = 0;
79 uint16_t last_sensor_index = 0;
80 uint32_t nb_sensors_sent = 0;
81 uint32_t nb_sensors_lost = 0;
82 uint16_t last_recv_cmd_index = 0;
83 int histogram_lost_sensor_packets[
MAX_HIST];
87 uint16_t cmd_packet_index = 0;
88 uint16_t last_cmd_packet_loss = 0;
89 uint32_t nb_cmd_sent = 0;
90 uint32_t nb_cmd_lost = 0;
91 int histogram_lost_cmd_packets[
MAX_HIST];
94 std::mutex received_packet_mutex;
98 std::chrono::milliseconds t_before_shutdown_ack{2500};
102 std::chrono::milliseconds t_before_shutdown_control{50};
105 std::chrono::high_resolution_clock::time_point t_last_packet =
106 std::chrono::high_resolution_clock::now();
108 bool first_command_sent_ =
false;
112 bool timeout =
false;
119 void GenerateSessionId();
121 bool init_sent =
false;
122 bool ack_received =
false;
uint8_t src_mac[6]
Definition ETHERNET_types.h:1
Definition Link_manager.h:15
Definition Link_manager.h:30
Definition master_board_interface.h:18
uint32_t GetCmdSent()
Definition master_board_interface.cpp:592
int Init()
Definition master_board_interface.cpp:39
float imu_data_attitude(int i)
Definition master_board_interface.h:137
void PrintADC()
Definition master_board_interface.cpp:451
Motor * GetMotor(int i)
Definition master_board_interface.h:134
void PrintIMU()
Definition master_board_interface.cpp:425
MotorDriver motor_drivers[N_SLAVES]
Definition master_board_interface.h:126
bool IsAckMsgReceived()
Definition master_board_interface.cpp:525
uint32_t GetSensorsLost()
Definition master_board_interface.cpp:590
void set_motor_drivers(MotorDriver motor_drivers[])
Definition master_board_interface.cpp:549
bool IsTimeout()
Definition master_board_interface.cpp:519
MotorDriver * GetDriver(int i)
Definition master_board_interface.h:133
~MasterBoardInterface()
Definition master_board_interface.cpp:28
void PrintStats()
Definition master_board_interface.cpp:558
imu_data_t get_imu_data() const
Definition master_board_interface.h:142
void PrintPowerBoard()
Definition master_board_interface.cpp:443
float imu_data_accelerometer(int i)
Definition master_board_interface.h:135
float powerboard_voltage()
Definition master_board_interface.h:140
void ResetTimeout()
Definition master_board_interface.cpp:511
void ParseSensorData()
Definition master_board_interface.cpp:361
void PrintMotorDrivers()
Definition master_board_interface.cpp:490
float imu_data_gyroscope(int i)
Definition master_board_interface.h:136
void PrintMotors()
Definition master_board_interface.cpp:467
int SendCommand()
Definition master_board_interface.cpp:143
int GetProtocolVersion()
Definition master_board_interface.cpp:535
float imu_data_linear_acceleration(int i)
Definition master_board_interface.h:138
int GetSessionId()
Definition master_board_interface.cpp:530
int SendInit()
Definition master_board_interface.cpp:104
int GetSensorHistogram(int index)
Definition master_board_interface.cpp:600
void SetMasterboardTimeoutMS(uint8_t)
Motor motors[N_SLAVES *2]
Definition master_board_interface.h:125
float powerboard_energy()
Definition master_board_interface.h:141
int Stop()
Definition master_board_interface.cpp:87
void set_motors(Motor motors[])
Definition master_board_interface.cpp:540
int GetCmdHistogram(int index)
Definition master_board_interface.cpp:609
uint16_t GetCmdPacketIndex()
Definition master_board_interface.cpp:598
void ResetPacketLossStats()
Definition master_board_interface.cpp:618
float powerboard_current()
Definition master_board_interface.h:139
static void KeyboardStop(int signum)
Definition master_board_interface.cpp:95
uint32_t GetSensorsSent()
Definition master_board_interface.cpp:588
uint32_t GetCmdLost()
Definition master_board_interface.cpp:594
uint16_t GetLastRecvCmdIndex()
Definition master_board_interface.cpp:596
Definition motor_driver.h:8
#define N_SLAVES
Definition defines.h:5
uint16_t session_id
Definition defines.h:0
#define MAX_HIST
Definition master_board_interface.h:15
float attitude[3]
Definition defines.h:41
float accelerometer[3]
Definition defines.h:39
float gyroscope[3]
Definition defines.h:40
float linear_acceleration[3]
Definition defines.h:42
float voltage_bus
Definition defines.h:54
float energy_bus
Definition defines.h:55
float current_bus
Definition defines.h:53