Vehicle Control Unit 0.01
This is the c library for controlling the car.
Loading...
Searching...
No Matches
Classes | Functions | Variables
DigitalOutput.h File Reference
#include "Output.h"
#include "../Utils/Constants.h"
#include "../Utils/Telemetry.h"
#include <stdint.h>
Include dependency graph for DigitalOutput.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  DigitalOutput
 

Functions

void initDigitalOutput (DigitalOutput *digitaloutput, const char *name, int hz, int port)
 Initializes a digital output with the given parameters. More...
 
int writeDigitalOutputData (DigitalOutput *output, int data)
 Writes data to the buffer of the digital output. More...
 

Variables

uint8_t digital_out_buffer [NUM_DIGITAL_OUTPUTS]
 

Function Documentation

◆ initDigitalOutput()

void initDigitalOutput ( DigitalOutput digitaloutput,
const char *  name,
int  hz,
int  port 
)

Initializes a digital output with the given parameters.

Parameters
digitaloutputPointer to the Output structure to initialize.
namePointer to a string containing the name of the output.
hzThe frequency in Hertz at which the output operates.
portLocation of the digital output on board.

Definition at line 6 of file DigitalOutput.c.

7 {
8 if (port < 0 || port >= NUM_DIGITAL_OUTPUTS) {
9 sendMessage(name, MSG_ERROR, "Port %u Invalid", port);
10 return;
11 }
12 initOutput(&digitalOutput->output, name, hz, o_DIGITAL);
13 digitalOutput->port = port;
14 digitalOutput->telem_state = registerTelemetrySignal(name, TELEMETRY_OUTPUT, UNIT_BOOLEAN, 1000/hz, 0, 1);
15}
#define NUM_DIGITAL_OUTPUTS
Definition: Constants.h:13
@ MSG_ERROR
Definition: MessageFormat.h:13
void sendMessage(const char *sender, MessageType type, const char *format,...)
Definition: MessageFormat.c:5
@ o_DIGITAL
Definition: Output.h:11
void initOutput(Output *output, const char *name, int hz, OutputType type)
Initializes an output with the given parameters.
Definition: Output.c:4
@ TELEMETRY_OUTPUT
Definition: Telemetry.h:10
TelemetrySignal * registerTelemetrySignal(const char *name, TelemetryType type, UnitId unit_id, uint32_t expected_rate_ms, float custom_min, float custom_max)
Definition: Telemetry.c:23
@ UNIT_BOOLEAN
Definition: Units.h:66
Here is the call graph for this function:
Here is the caller graph for this function:

◆ writeDigitalOutputData()

int writeDigitalOutputData ( DigitalOutput output,
int  data 
)

Writes data to the buffer of the digital output.

Parameters
outputPointer to the DigitalOutput structure.
dataData to write to the output.
Returns
int _SUCCESS or _FAILURE.

Definition at line 17 of file DigitalOutput.c.

17 {
18 digital_out_buffer[output->port] = data;
19 sendTelemetryValue(output->telem_state, data);
20 return _SUCCESS;
21}
#define _SUCCESS
Definition: Common.h:5
uint8_t digital_out_buffer[NUM_DIGITAL_OUTPUTS]
Definition: main.c:130
void sendTelemetryValue(TelemetrySignal *signal, float value)
Definition: Telemetry.c:59
TelemetrySignal * telem_state
Definition: DigitalOutput.h:15
Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ digital_out_buffer

uint8_t digital_out_buffer[NUM_DIGITAL_OUTPUTS]
extern

Definition at line 130 of file main.c.