Formula Student Electronics & Software
The code for the embedded software
Loading...
Searching...
No Matches
main.cpp
Go to the documentation of this file.
1
#include "
comm/communicator.hpp
"
2
#include "
debugUtils.hpp
"
3
#include "
embedded/digitalReceiver.hpp
"
4
#include "
embedded/digitalSender.hpp
"
5
#include "
enum_utils.hpp
"
6
#include "
logic/outputCoordinator.hpp
"
7
#include "
logic/stateLogic.hpp
"
8
#include "
model/systemData.hpp
"
9
#include "
timings.hpp
"
10
11
SystemData
system_data
;
12
Communicator
communicator
=
Communicator
(&
system_data
);
// CAN
13
DigitalReceiver
digital_receiver
=
DigitalReceiver
(&
system_data
);
14
DigitalSender
digital_sender
=
DigitalSender
();
15
OutputCoordinator
output_coordinator
=
16
OutputCoordinator
(&
system_data
, &
communicator
, &
digital_sender
);
17
ASState
as_state
=
ASState
(&
system_data
, &
communicator
, &
output_coordinator
);
18
TeensyTimerTool::PeriodicTimer
watchdog_timer_
;
19
bool
is_first_loop
=
true
;
20
void
setup
() {
21
Serial.begin(9600);
22
Communicator::_systemData
= &
system_data
;
23
communicator
.
init
();
24
output_coordinator
.
init
();
25
DEBUG_PRINT
(
"Starting up..."
);
26
delay(100);
27
}
28
29
void
loop
() {
30
digital_receiver
.
digital_reads
();
31
noInterrupts();
32
system_data
.
updated_timestamps_
=
system_data
.
updatable_timestamps_
;
33
interrupts();
34
35
as_state
.
calculate_state
();
36
uint8_t current_master_state =
to_underlying
(
as_state
.
state_
);
37
uint8_t current_checkup_state =
to_underlying
(
as_state
.
_checkup_manager_
.
checkup_state_
);
38
uint8_t ebs_state =
to_underlying
(
as_state
.
_checkup_manager_
.
pressure_test_phase_
);
39
40
output_coordinator
.
process
(current_master_state, current_checkup_state, ebs_state);
41
42
delay(
LOOP_DELAY
);
43
}
ASState
The ASState class manages and transitions between different states of the vehicle system.
Definition
stateLogic.hpp:18
ASState::calculate_state
void calculate_state()
Calculates the state of the vehicle.
Definition
stateLogic.hpp:56
ASState::_checkup_manager_
CheckupManager _checkup_manager_
CheckupManager object for handling various checkup operations.
Definition
stateLogic.hpp:31
ASState::state_
State state_
Current state of the vehicle system, initialized to OFF.
Definition
stateLogic.hpp:32
CheckupManager::pressure_test_phase_
EbsPressureTestPhase pressure_test_phase_
Definition
checkupManager.hpp:90
CheckupManager::checkup_state_
CheckupState checkup_state_
Current state of the checkup process.
Definition
checkupManager.hpp:87
Communicator
Class that contains definitions of typical messages to send via CAN It serves only as an example of t...
Definition
communicator.hpp:42
Communicator::init
void init()
Initializes the CAN bus.
Definition
communicator.hpp:148
Communicator::_systemData
static SystemData * _systemData
Definition
communicator.hpp:49
DigitalReceiver
Class responsible for the reading of the digital inputs into the Master teensy.
Definition
digitalReceiver.hpp:45
DigitalReceiver::digital_reads
void digital_reads()
read all digital inputs
Definition
digitalReceiver.hpp:177
DigitalSender
Class responsible for controlling digital outputs in the Master Teensy.
Definition
digitalSender.hpp:15
OutputCoordinator
Definition
outputCoordinator.hpp:12
OutputCoordinator::process
void process(uint8_t current_master_state, uint8_t current_checkup_state, uint8_t ebs_state)
Definition
outputCoordinator.hpp:52
OutputCoordinator::init
void init()
Definition
outputCoordinator.hpp:46
communicator.hpp
debugUtils.hpp
DEBUG_PRINT
#define DEBUG_PRINT(str)
Definition
debugUtils.hpp:30
digitalReceiver.hpp
digitalSender.hpp
enum_utils.hpp
to_underlying
constexpr auto to_underlying(Enum e) noexcept
Definition
enum_utils.hpp:4
watchdog_timer_
TeensyTimerTool::PeriodicTimer watchdog_timer_
Definition
main.cpp:18
communicator
Communicator communicator
Definition
main.cpp:12
as_state
ASState as_state
Definition
main.cpp:17
system_data
SystemData system_data
Definition
main.cpp:11
output_coordinator
OutputCoordinator output_coordinator
Definition
main.cpp:15
setup
void setup()
Definition
main.cpp:20
digital_sender
DigitalSender digital_sender
Definition
main.cpp:14
is_first_loop
bool is_first_loop
Definition
main.cpp:19
digital_receiver
DigitalReceiver digital_receiver
Definition
main.cpp:13
loop
void loop()
Definition
main.cpp:29
outputCoordinator.hpp
stateLogic.hpp
SystemData
The whole model of the system: holds all the data necessary.
Definition
systemData.hpp:11
SystemData::updatable_timestamps_
NonUnitaryFailureDetection updatable_timestamps_
Definition
systemData.hpp:12
SystemData::updated_timestamps_
NonUnitaryFailureDetection updated_timestamps_
Definition
systemData.hpp:13
systemData.hpp
timings.hpp
LOOP_DELAY
constexpr auto LOOP_DELAY
Definition
timings.hpp:8
master
src
main.cpp
Generated by
1.9.8