Vehicle Control Unit 0.01
This is the c library for controlling the car.
Loading...
Searching...
No Matches
Updateable.c
Go to the documentation of this file.
1#include "../../Inc/Utils/Updateable.h"
2#include "../../Inc/Utils/Common.h"
3
4#include <string.h>
5
6void initUpdateable(Updateable* updateable, const char* name, int hz) {
7 strncpy(updateable->name, name, MAX_NAME_LENGTH);
8 updateable->hz = hz;
9 updateable->update = defaultUpdate;
10 updateable->status = defaultStatus;
11 updateable->enable = defaultEnable;
12 updateable->disable = defaultDisable;
13 updateable->enabled = DISABLED;
14}
15
16void defaultUpdate(void* self) {
17 printf("Warning: Calling default Sensor Update Function.\n");
18}
19
20int defaultStatus(struct Updateable* self) {
21 return self->enabled;
22}
23
24int defaultEnable(struct Updateable* self) {
25 self->enabled = ENABLED;
26 return SUCCESS;
27}
28
29int defaultDisable(struct Updateable* self) {
30 self->enabled = DISABLED;
31 return SUCCESS;
32}
33
34int writeDataToFileImplementation(const char* filename, void* self) {
35 FILE* file = fopen(filename, "w");
36 if (!file) {
37 perror("Failed to open file");
38 return FAILURE;
39 }
40
41 printf("Writing data to file %s\n", filename);
42
43 fclose(file);
44 return FAILURE;
45}
#define FAILURE
Definition: Common.h:6
#define SUCCESS
Definition: Common.h:5
int defaultEnable(struct Updateable *self)
Default enable function for Updateable objects.
Definition: Updateable.c:24
int defaultDisable(struct Updateable *self)
Default disable function for Updateable objects.
Definition: Updateable.c:29
int writeDataToFileImplementation(const char *filename, void *self)
Write data to a file.
Definition: Updateable.c:34
void defaultUpdate(void *self)
Default update function for Updateable objects.
Definition: Updateable.c:16
int defaultStatus(struct Updateable *self)
Default status function for Updateable objects.
Definition: Updateable.c:20
void initUpdateable(Updateable *updateable, const char *name, int hz)
Definition: Updateable.c:6
#define MAX_NAME_LENGTH
Definition: Updateable.h:13
#define ENABLED
Definition: Updateable.h:15
#define DISABLED
Definition: Updateable.h:14
void(* update)(void *self)
Definition: Updateable.h:26
int(* disable)(struct Updateable *self)
Definition: Updateable.h:29
int enabled
Definition: Updateable.h:25
int(* status)(struct Updateable *self)
Definition: Updateable.h:27
char name[MAX_NAME_LENGTH]
Definition: Updateable.h:23
int(* enable)(struct Updateable *self)
Definition: Updateable.h:28