From d4e6f8e4fba9f5b7325eefc90038a69c66721f09 Mon Sep 17 00:00:00 2001 From: walkermburns Date: Mon, 5 Feb 2024 22:08:56 -0500 Subject: [PATCH] Cleaned up main with comments, added third argument to MessageQueueDefine --- lib/interfaces/include/MessageQueueDefine.h | 2 +- src/main.cpp | 40 ++++++++++++++------- 2 files changed, 29 insertions(+), 13 deletions(-) diff --git a/lib/interfaces/include/MessageQueueDefine.h b/lib/interfaces/include/MessageQueueDefine.h index 28561e931..13ff40b9b 100644 --- a/lib/interfaces/include/MessageQueueDefine.h +++ b/lib/interfaces/include/MessageQueueDefine.h @@ -5,6 +5,6 @@ constexpr std::size_t CANBufferSize = 16; // does this need to be 3 params like our original definitions of the buffers? -using CANBufferType = Circular_Buffer; +using CANBufferType = Circular_Buffer; #endif \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index 5ea8502c6..16d2d247f 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,8 +1,8 @@ -// /* Prototype main function for logic soothing */ - -// /* Include files */ +/* Include files */ +/* System Includes*/ #include +/* Libraries */ #include "FlexCAN_T4.h" #include "HyTech_CAN.h" #include "MCU_rev15_defs.h" @@ -17,6 +17,7 @@ #include "DashboardInterface.h" #include "InverterInterface.h" #include "TelemetryInterface.h" + /* Systems */ #include "SysClock.h" #include "Buzzer.h" @@ -24,32 +25,41 @@ #include "DrivetrainSystem.h" #include "PedalsSystem.h" #include "TorqueControllerMux.h" + /* State machine */ #include "MCUStateMachine.h" + /* External info sources */ /* Two CAN lines on Main ECU rev15 */ -FlexCAN_T4 INV_CAN; -FlexCAN_T4 TELEM_CAN; +FlexCAN_T4 INV_CAN; // Inverter CAN (now both are on same line) +FlexCAN_T4 TELEM_CAN; // telemetry CAN (basically everything except inverters) + /* Set up CAN circular buffer */ using CircularBufferType = Circular_Buffer; + + /* Sensors */ MCP3208 ADC1(ADC1_CS); MCP3208 ADC2(ADC2_CS); MCP3208 ADC3(ADC3_CS); OrbisBR10 steering1(STEERING_SERIAL); + /* Declare interfaces */ -// DashboardInterface dashboard; +DashboardInterface dashboard(&CAN2_txBuffer); AMSInterface ams_interface(SOFTWARE_OK); WatchdogInterface wd_interface(WATCHDOG_INPUT); // MCUInterface main_ecu(&CAN3_txBuffer); // TelemetryInterface telem_interface(&CAN3_txBuffer); + using InverterInterfaceType = InverterInterface; InverterInterfaceType fl_inv(&CAN2_txBuffer, ID_MC1_SETPOINTS_COMMAND); InverterInterfaceType fr_inv(&CAN2_txBuffer, ID_MC2_SETPOINTS_COMMAND); InverterInterfaceType rl_inv(&CAN2_txBuffer, ID_MC3_SETPOINTS_COMMAND); InverterInterfaceType rr_inv(&CAN2_txBuffer, ID_MC4_SETPOINTS_COMMAND); + + /* Declare systems */ SysClock sys_clock; BuzzerController buzzer(BUZZER_ON_INTERVAL); @@ -58,19 +68,25 @@ PedalsSystem pedals; // SteeringSystem steering_system(steering1); // Unify member reference and pointers? tied by reference in this case using DrivetrainSystemType = DrivetrainSystem; auto drivetrain = DrivetrainSystemType({&fl_inv, &fr_inv, &rl_inv, &rr_inv}, INVERTER_ENABLING_TIMEOUT_INTERVAL); // Tie inverter interfaces to drivetrain system (by pointers) -// Hypothetical controllers, need more implementation details -// TorqueControllerSimple simple_mode; -// TorqueControllerSimple normal_force_mode; -// TorqueControllerSimple endurance_derating_mode; -// TorqueControllerSimple launch_control_mode; -// TorqueControllerSimple torque_vectoring_mode; +/* + Hypothetical controllers, need more implementation details + TorqueControllerSimple simple_mode; + TorqueControllerSimple normal_force_mode; + TorqueControllerSimple endurance_derating_mode; + TorqueControllerSimple launch_control_mode; + TorqueControllerSimple torque_vectoring_mode; +*/ TorqueControllerMux torque_controller_mux; // would prob need to tie controllers to mux as well? + + /* Declare state machine */ // MCUStateMachine fsm(&buzzer, &drivetrain, &dashboard); // need more implemetation details. associated interfaces and systems tied by pointers + /* Global instantiations */ SysTick_s curr_tick; + /* Function declarations */ /* CAN functions */ /* External value readings */