Vehicle Control Unit 0.01
This is the c library for controlling the car.
Loading...
Searching...
No Matches
Functions
AppsMonitor.c File Reference
#include "../../../Inc/Systems/Monitor/AppsMonitor.h"
#include "../../../Inc/Utils/Common.h"
#include "../../../Inc/Utils/MessageFormat.h"
#include <math.h>
Include dependency graph for AppsMonitor.c:

Go to the source code of this file.

Functions

void initAppsMonitor (AppsMonitor *am, Apps *apps, int hz)
 
int startAppsMonitor (AppsMonitor *am)
 
int checkAppsMonitor (void *am)
 
void checkAppsLimit (Apps *apps)
 Checks App limits for faults. More...
 

Function Documentation

◆ checkAppsLimit()

void checkAppsLimit ( Apps apps)

Checks App limits for faults.

Checks if apps are more than 10% out of sync and if the values are reasonable. Position is in % of pedal travel.

Parameters
appsA pointer to the APPs structure.

Definition at line 35 of file AppsMonitor.c.

35 {
36 float pos1 = getAppPosition(apps->app[0]);
37 float pos2 = getAppPosition(apps->app[1]);
38
39 // Resonable Value check upper bound
40 if (pos1 > 1 || pos2 > 1) {
41 apps->status = APPS_FAULT;
42 return;
43 }
44
45 // In sync check
46 float difference = fabs(pos1 - pos2);
47 if (difference > APPS_DIFFERENCE) {
48 apps->status = APPS_FAULT;
49 return;
50 }
51
52 // Resonable Value check lower bound
53 if (pos1 < 0 || pos2 < 0) {
54 apps->status = APPS_LOW;
55 return;
56 }
57
58 apps->status = APPS_OK;
59}
float getAppPosition(App *app)
Gets the current position of the APP.
Definition: App.c:17
@ APPS_LOW
Definition: Apps.h:19
@ APPS_OK
Definition: Apps.h:17
@ APPS_FAULT
Definition: Apps.h:18
#define APPS_DIFFERENCE
Definition: Apps.h:14
App * app[2]
Definition: Apps.h:25
AppsStatus status
Definition: Apps.h:24
Here is the call graph for this function:
Here is the caller graph for this function:

◆ checkAppsMonitor()

int checkAppsMonitor ( void *  am)

Definition at line 24 of file AppsMonitor.c.

24 {
25 AppsMonitor* amPtr = (AppsMonitor*)am;
26 Apps* apps = amPtr->apps;
27 checkAppsLimit(apps);
28 if (apps->status != APPS_OK && apps->status != APPS_LOW) {
29 return _FAILURE;
30 }
31 return _SUCCESS;
32}
void checkAppsLimit(Apps *apps)
Checks App limits for faults.
Definition: AppsMonitor.c:35
#define _FAILURE
Definition: Common.h:6
#define _SUCCESS
Definition: Common.h:5
Apps * apps
Definition: AppsMonitor.h:9
Definition: Apps.h:22
Here is the call graph for this function:
Here is the caller graph for this function:

◆ initAppsMonitor()

void initAppsMonitor ( AppsMonitor am,
Apps apps,
int  hz 
)

Definition at line 7 of file AppsMonitor.c.

7 {
9 am->apps = apps;
10 am->status = APPS_OK;
11}
int checkAppsMonitor(void *am)
Definition: AppsMonitor.c:24
void initMonitorSystem(MonitorSystem *monitor, const char *name, int hz, MonitorType type, FaultType fault, int(*runMonitor)(void *self))
Initializes the Monitor System with initial settings.
Definition: MonitorSystem.c:3
@ m_APPS
Definition: MonitorSystem.h:12
@ VEHICLE_SHUTDOWN
Definition: MonitorSystem.h:23
AppsStatus status
Definition: AppsMonitor.h:10
MonitorSystem base
Definition: AppsMonitor.h:8
Here is the call graph for this function:
Here is the caller graph for this function:

◆ startAppsMonitor()

int startAppsMonitor ( AppsMonitor am)

Definition at line 14 of file AppsMonitor.c.

14 {
15 if (am->base.runMonitor == NULL) {
16 //printf("Monitor function not set for AppsMonitor\n");
17 return _FAILURE;
18 }
19 ENABLE(am->base.system);
20 return _SUCCESS;
21}
#define ENABLE(item_)
Definition: Updateable.h:10
int(* runMonitor)(void *self)
Definition: MonitorSystem.h:30
Here is the caller graph for this function: