Midnight Sun Firmware
Loading...
Searching...
No Matches
fota_can.h
1#pragma once
2
3/************************************************************************************************
4 * @file fota_can.h
5 *
6 * @brief Header file for CAN communication in FOTA
7 *
8 * @date 2025-01-08
9 * @author Midnight Sun Team #24 - MSXVI
10 ************************************************************************************************/
11
12/* Standard library Headers */
13#include <stdbool.h>
14#include <stddef.h>
15#include <stdint.h>
16
17/* Inter-component Headers */
18
19/* Intra-component Headers */
20#include "fota_error.h"
21
40typedef struct {
41 uint16_t prescaler;
42 uint32_t bs1;
43 uint32_t bs2;
45
46typedef enum {
53
54typedef enum { CAN_CONTINUOUS = 0, CAN_ONE_SHOT_MODE, NUM_CAN_MODES } Boot_CanMode;
55
56#define CAN_HW_BASE CAN1
57
66typedef struct FotaCanSettings {
67 uint16_t device_id;
69 bool loopback;
70 bool silent;
72
80typedef struct {
81 uint32_t id;
82 uint8_t extended;
83 size_t dlc;
84 union {
85 uint64_t data;
86 uint32_t data_u32[2];
87 uint16_t data_u16[4];
88 uint8_t data_u8[8];
89 };
91
98
108FotaError fota_can_transmit(uint32_t id, bool extended, const uint8_t *data, size_t len);
109
117
FotaError fota_can_receive(FotaCanMessage *const msg)
Receive a CAN message in FOTA.
FotaCanBitrate
Definition: fota_can.h:46
FotaError fota_can_transmit(uint32_t id, bool extended, const uint8_t *data, size_t len)
Transmit a CAN message in FOTA.
FotaError
FOTA Error code definitions.
Definition: fota_error.h:27
FotaError fota_can_init(const FotaCanSettings *settings)
Initialize the CAN interface for FOTA.
@ FOTA_CAN_BITRATE_500KBPS
Definition: fota_can.h:49
@ FOTA_CAN_BITRATE_1000KBPS
Definition: fota_can.h:50
@ NUM_FOTA_CAN_BITRATES
Definition: fota_can.h:51
@ FOTA_CAN_BITRATE_250KBPS
Definition: fota_can.h:48
@ FOTA_CAN_BITRATE_125KBPS
Definition: fota_can.h:47
CAN message structure.
Definition: fota_can.h:80
size_t dlc
Definition: fota_can.h:83
uint32_t id
Definition: fota_can.h:81
uint8_t extended
Definition: fota_can.h:82
uint64_t data
Definition: fota_can.h:85
CAN Settings.
Definition: fota_can.h:66
FotaCanBitrate bitrate
Definition: fota_can.h:68
bool loopback
Definition: fota_can.h:69
bool silent
Definition: fota_can.h:70
uint16_t device_id
Definition: fota_can.h:67
Selection for the supported CAN Bitrates.
Definition: fota_can.h:40