Vehicle Control Unit 0.01
This is the c library for controlling the car.
Loading...
Searching...
No Matches
DigitalOutput.c
Go to the documentation of this file.
1#include "../../Inc/Outputs/DigitalOutput.h"
2#include "../../Inc/Utils/Common.h"
3#include "../../Inc/Utils/MessageFormat.h"
4#include "../../Inc/Utils/Telemetry.h"
5
6void initDigitalOutput(DigitalOutput* digitalOutput, const char* name, int hz,
7 int port) {
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}
16
17int writeDigitalOutputData(DigitalOutput* output, int data) {
18 digital_out_buffer[output->port] = data;
19 sendTelemetryValue(output->telem_state, data);
20 return _SUCCESS;
21}
#define _SUCCESS
Definition: Common.h:5
#define NUM_DIGITAL_OUTPUTS
Definition: Constants.h:13
void initDigitalOutput(DigitalOutput *digitalOutput, const char *name, int hz, int port)
Initializes a digital output with the given parameters.
Definition: DigitalOutput.c:6
int writeDigitalOutputData(DigitalOutput *output, int data)
Writes data to the buffer of the digital output.
Definition: DigitalOutput.c:17
uint8_t digital_out_buffer[NUM_DIGITAL_OUTPUTS]
Definition: main.c:130
@ 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
void sendTelemetryValue(TelemetrySignal *signal, float value)
Definition: Telemetry.c:59
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
TelemetrySignal * telem_state
Definition: DigitalOutput.h:15