19#include "fota_packet.h"
28#define FOTA_MAX_DATAGRAM_SIZE (8U * 256U)
31#define FOTA_MAX_PACKETS_PER_DATAGRAM ((FOTA_MAX_DATAGRAM_SIZE / FOTA_PACKET_PAYLOAD_SIZE) + 1U)
FotaDatagramType
Datagram types corresponding to different FOTA operations.
Definition: fota_datagram.h:36
bool fota_datagram_is_complete(FotaDatagram *datagram)
Check if a datagram has been completely received.
Definition: fota_datagram.c:29
FotaError fota_datagram_to_packets(FotaDatagram *datagram, FotaPacket *packets, uint16_t *num_packets, uint16_t max_packets)
Fragment a datagram into packets for transmission.
Definition: fota_datagram.c:21
FotaError fota_datagram_process_packet(FotaDatagram *datagram, FotaPacket *packet)
Process a received packet and incorporate it into a datagram.
Definition: fota_datagram.c:25
#define FOTA_MAX_DATAGRAM_SIZE
Maximum supported datagram size (2KB)
Definition: fota_datagram.h:28
FotaError fota_datagram_verify(FotaDatagram *datagram)
Verify the integrity of a complete datagram.
Definition: fota_datagram.c:33
FotaError fota_datagram_init(FotaDatagram *datagram, FotaDatagramType type, uint32_t datagram_id, uint8_t *data, uint32_t length)
Initialize a datagram structure.
Definition: fota_datagram.c:17
#define FOTA_MAX_PACKETS_PER_DATAGRAM
Maximum number of packets that can make up a datagram (8 data + 1 Header)
Definition: fota_datagram.h:31
FotaError
FOTA Error code definitions.
Definition: fota_error.h:27
@ FOTA_DATAGRAM_TYPE_UPDATE_REQUEST
Definition: fota_datagram.h:39
@ FOTA_DATAGRAM_TYPE_UPDATE_RESPONSE
Definition: fota_datagram.h:40
@ FOTA_DATAGRAM_TYPE_VERIFICATION
Definition: fota_datagram.h:41
@ FOTA_DATAGRAM_TYPE_FIRMWARE_METADATA
Definition: fota_datagram.h:37
@ FOTA_DATAGRAM_TYPE_FIRMWARE_CHUNK
Definition: fota_datagram.h:38
Structure representing datagram.
Definition: fota_datagram.h:58
uint16_t packets_received
Definition: fota_datagram.h:62
bool is_complete
Definition: fota_datagram.h:63
FotaDatagramHeader header
Definition: fota_datagram.h:59
FOTA Packet structure.
Definition: fota_packet.h:68