19#include "fota_packet.h"
28#define FOTA_MAX_DATAGRAM_SIZE (16U * FOTA_PACKET_PAYLOAD_SIZE)
31#define FOTA_MAX_PACKETS_PER_DATAGRAM ((FOTA_MAX_DATAGRAM_SIZE / FOTA_PACKET_PAYLOAD_SIZE) + 1U)
34#define FOTA_DATAGRAM_HEADER_PAYLOAD_SIZE 10U
44 FOTA_DATAGRAM_TYPE_ERROR
FotaDatagramType
Datagram types corresponding to different FOTA operations.
Definition: fota_datagram.h:39
bool fota_datagram_is_complete(FotaDatagram *datagram)
Check if a datagram has been completely received.
Definition: fota_datagram.c:161
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:55
#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:170
FotaError fota_datagram_process_data_packet(FotaDatagram *datagram, FotaPacket *packet)
Process a received packet and incorporate it into a datagram.
Definition: fota_datagram.c:109
FotaError fota_datagram_process_header_packet(FotaDatagram *datagram, FotaPacket *packet)
Process a received header packet and incorporate it into a datagram.
Definition: fota_datagram.c:134
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:26
#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_FIRMWARE_METADATA
Definition: fota_datagram.h:40
@ FOTA_DATAGRAM_TYPE_ACKNOWLEDGEMENT
Definition: fota_datagram.h:43
@ FOTA_DATAGRAM_TYPE_FIRMWARE_CHUNK
Definition: fota_datagram.h:41
@ FOTA_DATAGRAM_TYPE_JUMP_TO_APP
Definition: fota_datagram.h:42
Structure representing datagram.
Definition: fota_datagram.h:78
uint16_t packets_received
Definition: fota_datagram.h:82
bool is_complete
Definition: fota_datagram.h:83
FotaDatagramHeaderPacketPayload header
Definition: fota_datagram.h:79
FOTA Packet structure.
Definition: fota_packet.h:69