Midnight Sun Firmware
Loading...
Searching...
No Matches
network_buffer.h
1#pragma once
2
3/************************************************************************************************
4 * @file network_buffer.h
5 *
6 * @brief Circular Buffer class implementation for firmware over the air (FOTA) updates
7 *
8 * @date 2025-03-16
9 * @author Midnight Sun Team #24 - MSXVI
10 ************************************************************************************************/
11
12/* Standard library Headers */
13#include <stdbool.h>
14#include <stdint.h>
15
16/* Inter-component Headers */
17
18/* Intra-component Headers */
19#include "fota_error.h"
20
27#define NETWORK_BUFFER_SIZE 1024U
28
36typedef struct {
37 uint8_t data[NETWORK_BUFFER_SIZE];
38 uint16_t num_items;
39 uint16_t write_index;
40 uint16_t read_index;
42
50
56uint16_t network_buffer_num_items(NetworkBuffer *network_buffer);
57
63uint16_t network_buffer_num_empty_slots(NetworkBuffer *network_buffer);
64
71bool network_buffer_empty(NetworkBuffer *network_buffer);
72
79bool network_buffer_full(NetworkBuffer *network_buffer);
80
88FotaError network_buffer_write(NetworkBuffer *network_buffer, uint8_t *data);
89
97FotaError network_buffer_read(NetworkBuffer *network_buffer, uint8_t *data);
98
bool network_buffer_empty(NetworkBuffer *network_buffer)
Checks if the network buffer is empty.
Definition: network_buffer.c:39
FotaError network_buffer_init(NetworkBuffer *network_buffer)
Initalizes circular buffer for use, by initalizing assocated structs.
Definition: network_buffer.c:18
FotaError network_buffer_read(NetworkBuffer *network_buffer, uint8_t *data)
Read data bytes.
Definition: network_buffer.c:64
bool network_buffer_full(NetworkBuffer *network_buffer)
Checks if the network buffer is full.
Definition: network_buffer.c:43
uint16_t network_buffer_num_empty_slots(NetworkBuffer *network_buffer)
Fetches the number of empty slots in the network buffer.
Definition: network_buffer.c:35
FotaError network_buffer_write(NetworkBuffer *network_buffer, uint8_t *data)
Write data bytes.
Definition: network_buffer.c:47
uint16_t network_buffer_num_items(NetworkBuffer *network_buffer)
Fetches the number of items in the network buffer.
Definition: network_buffer.c:31
FotaError
FOTA Error code definitions.
Definition: fota_error.h:26
struct containing details of circular buffer
Definition: network_buffer.h:36