Skip to content

Commit 550ff5c

Browse files
committed
fixed pins and overrided vehical state machine
1 parent ae1e3e2 commit 550ff5c

File tree

8 files changed

+40
-26
lines changed

8 files changed

+40
-26
lines changed

include/VCR_Constants.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ constexpr int INV_FAN_CNTRL = 34;
8787
constexpr int MOTOR_FAN_CNTRL = 35;
8888

8989
/* Watchdog constants */
90-
constexpr int INVERTER_ENABLE_PIN = 2;
90+
constexpr int INVERTER_ENABLE_PIN = 5;
9191
constexpr int FLOWMETER_PIN = 7;
9292
constexpr int WATCHDOG_PIN = 26;
9393
constexpr int SOFTWARE_OK_PIN = 27; // Watchdog's !RESET pin

include/VCR_SystemTasks.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,4 +89,6 @@ VehicleState_e evaluate_state_machine(const VCRSystemData_s &system_data,
8989

9090
HT_TASK::TaskResponse run_async_main_task(const unsigned long& sysMicros, const HT_TASK::TaskInfo& taskInfo);
9191

92+
93+
9294
#endif // __VCR_SYSTEMTASKS_H__

lib/systems/include/DrivetrainSystem.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,6 @@
1414
#include <shared_types.h>
1515
#include "SystemTimeInterface.h"
1616

17-
18-
19-
2017
/**
2118
* When user calls evaluate_drivetrain(), this is part of the returned status to
2219
* indicate if the command was successful or invalid

lib/systems/src/DrivetrainSystem.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,6 @@ DrivetrainState_e DrivetrainSystem::_evaluate_state_machine(DrivetrainSystem::Cm
7777
// TODO need to ensure that the inverter outputs CAN messages on idle even not when being sent msgs
7878
case DrivetrainState_e::NOT_CONNECTED:
7979
{
80-
8180
// State Outputs
8281
_set_drivetrain_disabled();
8382
_set_ef_active_pin(false);
@@ -267,9 +266,10 @@ DrivetrainState_e DrivetrainSystem::_evaluate_state_machine(DrivetrainSystem::Cm
267266
break;
268267

269268
}
270-
271269
default:
270+
{
272271
break;
272+
}
273273
}
274274

275275
return get_state();

src/VCR_InterfaceTasks.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,7 @@ HT_TASK::TaskResponse read_ioexpander(const unsigned long& sysMicros, const HT_T
240240
// uint8_t vcr_ok = IOExpanderInstance::instance().digitalRead(10);
241241
// Serial.println(vcr_ok);
242242
//Serial.println(portB);
243-
243+
244244

245245
return HT_TASK::TaskResponse::YIELD;
246246
// NOLINTEND

src/VCR_SystemTasks.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ HT_TASK::TaskResponse run_async_main_task(const unsigned long& sysMicros, const
7272
auto tc_mux_status = VCRControlsInstance::instance().get_tc_mux_status();
7373
vcr_data.system_data.tc_mux_status = tc_mux_status;
7474

75-
vcr_data.system_data.vehicle_state_machine_state = VehicleStateMachineInstance::instance().tick_state_machine(sys_time::hal_millis());
75+
// vcr_data.system_data.vehicle_state_machine_state = VehicleStateMachineInstance::instance().tick_state_machine(sys_time::hal_millis());
7676

7777
vcr_data.system_data.drivetrain_state_machine_state = DrivetrainInstance::instance().get_state();
7878

@@ -81,5 +81,9 @@ HT_TASK::TaskResponse run_async_main_task(const unsigned long& sysMicros, const
8181
vcr_data.system_data.db_cntrl_status.drivebrain_is_in_control = VCRControlsInstance::instance().drivebrain_is_in_control();
8282
vcr_data.system_data.db_cntrl_status.drivebrain_controller_timing_failure = VCRControlsInstance::instance().drivebrain_timing_failure();
8383

84+
VCRControlsInstance::instance().handle_drivetrain_command(true, true);
85+
8486
return HT_TASK::TaskResponse::YIELD;
85-
}
87+
}
88+
89+

src/controls.cpp

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,21 +25,23 @@ void VCRControls::handle_drivetrain_command(bool wanting_ready_to_drive, bool re
2525
if(_dt_system != nullptr)
2626
{
2727
ControllerMode_e mode = vcr_data.interface_data.dash_input_state.dial_state;
28+
DrivetrainStatus_s drivetrain_status;
2829

2930
if (ready_to_drive) {
30-
auto dt_command = _tc_mux.get_drivetrain_command(mode, _torque_limit, vcr_data);
31-
_debug_dt_command = dt_command;
32-
_dt_system->evaluate_drivetrain(dt_command);
31+
DrivetrainCommand_s def = {.desired_speeds = {500.0f, 500.0f, 500.0f, 500.0f}, .torque_limits = {6.0f, 6.0f, 6.0f, 6.0f}};
32+
auto dt_command = def; // _tc_mux.get_drivetrain_command(mode, _torque_limit, vcr_data);
33+
// _debug_dt_command = dt_command;
34+
drivetrain_status = _dt_system->evaluate_drivetrain(dt_command);
3335
} else if (wanting_ready_to_drive) {
3436
DrivetrainInit_s dt_command = {
3537
.init_drivetrain = INIT_DRIVE_MODE
3638
};
37-
_dt_system->evaluate_drivetrain(dt_command);
39+
drivetrain_status = _dt_system->evaluate_drivetrain(dt_command);
3840
} else {
3941
DrivetrainInit_s dt_command = {
4042
.init_drivetrain = UNINITIALIZED
4143
};
42-
_dt_system->evaluate_drivetrain(dt_command);
44+
drivetrain_status = _dt_system->evaluate_drivetrain(dt_command);
4345
}
4446
}
4547
}

src/main.cpp

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ HT_TASK::TaskResponse debug_print(const unsigned long& sysMicros, const HT_TASK:
185185
// Serial.println(vcr_data.interface_data.shutdown_sensing_data.imd_is_ok);
186186
// Serial.println("Linked Data");
187187
// Serial.println(vcr_data.interface_data.ethernet_is_linked.acu_link);
188-
// Serial.println(vcr_data.interface_data.ethernet_is_linked.drivebrain_link);
188+
// Serial.println(vcr_data.interface_data.ethernet_is_linked.drivebrain_link);
189189
// Serial.println(vcr_data.interface_data.ethernet_is_linked.vcf_link);
190190
// Serial.println(vcr_data.interface_data.ethernet_is_linked.teensy_link);
191191
// Serial.println(vcr_data.interface_data.ethernet_is_linked.debug_link);
@@ -388,29 +388,38 @@ void setup() {
388388
);
389389

390390

391-
scheduler.schedule(adc_0_sample_task);
392-
scheduler.schedule(adc_1_sample_task);
391+
// scheduler.schedule(adc_0_sample_task);
392+
// scheduler.schedule(adc_1_sample_task);
393+
393394
scheduler.schedule(kick_watchdog_task);
395+
394396
//scheduler.schedule(ams_system_task); // Commented out to test VCR without ACU otherwise SOFTWARE_OK never goes high
395-
scheduler.schedule(enqueue_suspension_CAN_task);
396-
scheduler.schedule(enqueue_dashboard_CAN_task);
397+
// scheduler.schedule(enqueue_suspension_CAN_task);
398+
// scheduler.schedule(enqueue_dashboard_CAN_task);
399+
397400
scheduler.schedule(send_CAN_task);
398-
scheduler.schedule(vcr_data_ethernet_send);
401+
402+
// scheduler.schedule(vcr_data_ethernet_send);
403+
399404
scheduler.schedule(enqueue_inverter_CAN_task);
400-
scheduler.schedule(enqueue_coolant_temp_CAN_task);
405+
406+
// scheduler.schedule(enqueue_coolant_temp_CAN_task);
407+
401408
scheduler.schedule(async_main_task);
402-
scheduler.schedule(enqueue_controls_CAN_task);
409+
410+
// scheduler.schedule(enqueue_controls_CAN_task);
411+
403412
scheduler.schedule(debug_state_print_task);
404-
scheduler.schedule(update_brakelight_task);
405-
scheduler.schedule(update_sample_flowmeter);
406-
scheduler.schedule(IOExpander_read_task);
413+
414+
// scheduler.schedule(update_brakelight_task);
415+
// scheduler.schedule(update_sample_flowmeter);
416+
// scheduler.schedule(IOExpander_read_task);
407417

408418
// scheduler.schedule(run_enable_fans);
409419
// scheduler.schedule(run_enable_pumps);
410420

411421
}
412422

413423
void loop() {
414-
415424
scheduler.run();
416425
}

0 commit comments

Comments
 (0)