Formula Student Electronics & Software
The code for the embedded software
Loading...
Searching...
No Matches
Communicator Class Reference

Class that contains definitions of typical messages to send via CAN It serves only as an example of the usage of the strategy pattern, where the communicator is the strategy. More...

#include <communicator.hpp>

Collaboration diagram for Communicator:
Collaboration graph

Public Member Functions

 Communicator (SystemData *systemdata)
 Constructor for the Communicator class Initializes the Communicator with the given system data instance.
 
void init ()
 Initializes the CAN bus.
 

Static Public Member Functions

static void parse_message (const CAN_message_t &msg)
 Parses the message received from the CAN bus.
 
template<std::size_t N>
static int send_message (unsigned len, const std::array< uint8_t, N > &buffer, unsigned id)
 Sends a message to the CAN bus.
 
static void pc_callback (const uint8_t *buf)
 Callback for message from AS CU.
 
static void res_state_callback (const uint8_t *buf)
 Callback RES default callback.
 
static void res_ready_callback ()
 Callback for RES activation.
 
static void bamocar_callback (const uint8_t *buf)
 Callback from inversor, for alive signal and data.
 
static void steering_callback ()
 Callback for steering actuator information.
 
static int publish_state (int state_id)
 Publish AS State to CAN.
 
static int publish_mission (int mission_id)
 Publish AS Mission to CAN.
 
static int publish_soc (uint8_t soc)
 Publish SOC to CAN.
 
static int publish_asms_on (bool asms_on)
 Publish ASMS state to CAN.
 
static int publish_debug_morning_log (const SystemData &system_data, uint8_t sate, uint8_t state_checkup)
 Publish AS Mission to CAN.
 
static int publish_rpm ()
 Publish rl wheel rpm to CAN.
 

Static Public Attributes

static SystemData_systemData = nullptr
 

Detailed Description

Class that contains definitions of typical messages to send via CAN It serves only as an example of the usage of the strategy pattern, where the communicator is the strategy.

Definition at line 41 of file communicator.hpp.

Constructor & Destructor Documentation

◆ Communicator()

Communicator::Communicator ( SystemData systemdata)
inlineexplicit

Constructor for the Communicator class Initializes the Communicator with the given system data instance.

Parameters
system_dataPointer to the SystemData instance.

Definition at line 131 of file communicator.hpp.

Member Function Documentation

◆ bamocar_callback()

void Communicator::bamocar_callback ( const uint8_t *  buf)
inlinestatic

Callback from inversor, for alive signal and data.

Definition at line 182 of file communicator.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ init()

void Communicator::init ( )

Initializes the CAN bus.

Definition at line 133 of file communicator.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_message()

void Communicator::parse_message ( const CAN_message_t &  msg)
inlinestatic

Parses the message received from the CAN bus.

Definition at line 226 of file communicator.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ pc_callback()

void Communicator::pc_callback ( const uint8_t *  buf)
inlinestatic

Callback for message from AS CU.

Definition at line 212 of file communicator.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ publish_asms_on()

int Communicator::publish_asms_on ( bool  asms_on)
inlinestatic

Publish ASMS state to CAN.

Definition at line 272 of file communicator.hpp.

Here is the call graph for this function:

◆ publish_debug_morning_log()

int Communicator::publish_debug_morning_log ( const SystemData system_data,
uint8_t  sate,
uint8_t  state_checkup 
)
inlinestatic

Publish AS Mission to CAN.

Definition at line 259 of file communicator.hpp.

Here is the call graph for this function:

◆ publish_mission()

int Communicator::publish_mission ( int  mission_id)
inlinestatic

Publish AS Mission to CAN.

Definition at line 253 of file communicator.hpp.

Here is the call graph for this function:

◆ publish_rpm()

int Communicator::publish_rpm ( )
inlinestatic

Publish rl wheel rpm to CAN.

Definition at line 278 of file communicator.hpp.

Here is the call graph for this function:

◆ publish_soc()

int Communicator::publish_soc ( uint8_t  soc)
inlinestatic

Publish SOC to CAN.

Definition at line 266 of file communicator.hpp.

Here is the call graph for this function:

◆ publish_state()

int Communicator::publish_state ( int  state_id)
inlinestatic

Publish AS State to CAN.

Definition at line 247 of file communicator.hpp.

Here is the call graph for this function:

◆ res_ready_callback()

void Communicator::res_ready_callback ( )
inlinestatic

Callback for RES activation.

Definition at line 175 of file communicator.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ res_state_callback()

void Communicator::res_state_callback ( const uint8_t *  buf)
inlinestatic

Callback RES default callback.

Definition at line 151 of file communicator.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ send_message()

template<std::size_t N>
int Communicator::send_message ( unsigned  len,
const std::array< uint8_t, N > &  buffer,
unsigned  id 
)
inlinestatic

Sends a message to the CAN bus.

Parameters
lenLength of the message
bufferBuffer containing the message
idID of the message
Returns
0 if successful

Definition at line 303 of file communicator.hpp.

Here is the caller graph for this function:

◆ steering_callback()

void Communicator::steering_callback ( )
inlinestatic

Callback for steering actuator information.

Definition at line 222 of file communicator.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ _systemData

SystemData* Communicator::_systemData = nullptr
inlinestatic

Definition at line 48 of file communicator.hpp.


The documentation for this class was generated from the following file: