Vehicle Control Unit 0.01
This is the c library for controlling the car.
Loading...
Searching...
No Matches
Imd.c
Go to the documentation of this file.
1#include "../../../Inc/Systems/External/Imd.h"
2#include "../../../Inc/Systems/ExternalSystem.h"
3
4void initIMD(IMDValues* IMD, int hz) {
5 initExternalSystem(&IMD->base, "IMD", hz, EXTERNAL);
6 IMD->base.system.updateable.update = updateIMD;
7 // IMD->base.system.updateable.status = getIMDStatus; // FIXME: Update getIMDStatus
8 IMD->IMDStatus = IMD_OK;
9 IMD->IsoResistanceNeg = 0;
10 IMD->IsoResistancePos = 0;
11 IMD->IsoResistanceCorrected = 0;
12}
13
14void updateIMD(void* IMDValues) {
15 //TODO: Implement logic to determine IMD status
16 /*if (something){
17 set IMD_ERROR;
18 } else if (something){
19 set IMD_START;
20 } else {*/
21 // set IMD_OK
22 return;
23 }
24
25int getIMDStatus(void* imdValues, IMDStatus status) {
26 IMDValues* IMD = (IMDValues*) imdValues;
27 return IMD->IMDStatus;
28}
29
30float getIsoResistanceNeg (void* imdValues) {
31 IMDValues* IMD = (IMDValues*) imdValues;
32 return IMD->IsoResistanceNeg;
33}
34
35float getIsoResistancePos (void* imdValues) {
36 IMDValues* IMD = (IMDValues*) imdValues;
37 return IMD->IsoResistancePos;
38}
39
40float getIsoResistanceCorrected (void* imdValues) {
41 IMDValues* IMD = (IMDValues*) imdValues;
42 return IMD->IsoResistanceCorrected;
43}
44
void initExternalSystem(ExternalSystem *external, const char *name, int hz, ExternalType type)
Definition: ExternalSystem.c:3
@ IMD
float getIsoResistancePos(void *imdValues)
Retrieves the positive isolation resistance value from the IMD values.
Definition: Imd.c:35
void initIMD(IMDValues *IMD, int hz)
Initializes the IMD with the specified frequency.
Definition: Imd.c:4
float getIsoResistanceNeg(void *imdValues)
Retrieves the negative isolation resistance value from the given IMD values.
Definition: Imd.c:30
float getIsoResistanceCorrected(void *imdValues)
Retrieves the positive isolation resistance value from the IMD values.
Definition: Imd.c:40
int getIMDStatus(void *imdValues, IMDStatus status)
Gets the status of the IMD.
Definition: Imd.c:25
void updateIMD(void *IMDValues)
Updates the IMD values.
Definition: Imd.c:14
IMDStatus
Definition: Imd.h:7
@ IMD_OK
Definition: Imd.h:8
@ EXTERNAL
Definition: System.h:12
Definition: Imd.h:13