Vehicle Control Unit 0.01
This is the c library for controlling the car.
Loading...
Searching...
No Matches
Inverter.c
Go to the documentation of this file.
1#include "../../../Inc/Utils/Common.h"
2#include "../../../Inc/Systems/External/Inverter.h"
3
4#include <stdio.h> // For printf
5
6void initInverter(Inverter* inverter, TorqueControl* tc, int hz, int maxCurrent, int maxTemp, int maxVoltage) {
7 initExternalSystem(&inverter->base, "Inverter", hz, e_INVERTER, updateInverter, checkInverterHeartbeat, inverter);
8 inverter->tc = tc;
9 inverter->maxCurrent = maxCurrent;
10 inverter->maxTemp = maxTemp;
11 inverter->maxVoltage = maxVoltage;
12}
13
15 Inverter* inverter = (Inverter*)external->child;
16 // Check if torque control is validated
17 if (inverter->tc->base.state != c_validated) {
18 printf("Inverter: Torque Control Actuator is not validated\r\n");
19 return _FAILURE;
20 }
21
22
23 #ifdef DEBUGn
24 printf("Inverter updated. Torque: %f, Current: %d, Temp: %d, Voltage: %d\r\n",
25 inverter->tc->desiredTorque, inverter->maxCurrent, inverter->maxTemp, inverter->maxVoltage);
26 #endif
27
28 dac1_buffer[0] = ((inverter->tc->desiredTorque) / (inverter->tc->maxAllowedTorque)) * 4096.0;
29
30 return _SUCCESS;
31}
32
33int checkInverterHeartbeat(void* self) {
34 Inverter* inverter = (Inverter*)self;
35 // Check if the inverter is still alive
36 return _SUCCESS;
37}
uint32_t dac1_buffer[DAC1_BUFFER_SIZE]
Definition: main.c:116
#define _FAILURE
Definition: Common.h:6
#define _SUCCESS
Definition: Common.h:5
@ c_validated
void initExternalSystem(ExternalSystem *external, const char *name, int hz, ExternalType type, int(*updateExternal)(ExternalSystem *external), int(*check_heartbeat)(void *self), void *child)
Definition: ExternalSystem.c:6
@ e_INVERTER
int checkInverterHeartbeat(void *self)
Checks the heartbeat of the Inverter.
Definition: Inverter.c:33
void initInverter(Inverter *inverter, TorqueControl *tc, int hz, int maxCurrent, int maxTemp, int maxVoltage)
Initializes the Inverter with initial settings.
Definition: Inverter.c:6
int updateInverter(ExternalSystem *external)
Updates the Inverter.
Definition: Inverter.c:14
ControllerState state
int maxCurrent
Definition: Inverter.h:11
ExternalSystem base
Definition: Inverter.h:9
int maxVoltage
Definition: Inverter.h:13
TorqueControl * tc
Definition: Inverter.h:10
int maxTemp
Definition: Inverter.h:12
ControllerSystem base
Definition: TorqueControl.h:19
float maxAllowedTorque
Definition: TorqueControl.h:22
float desiredTorque
Definition: TorqueControl.h:21