Morse Micro IoT SDK  2.10.4
mmagic_datalink_controller.h
1/*
2 * Copyright 2024 Morse Micro
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
17#pragma once
18
19#include <stdbool.h>
20#include <stdint.h>
21#include <stddef.h>
22
23#include "mmbuf.h"
24
25#ifdef __cplusplus
26extern "C"
27{
28#endif
29
39#define MMAGIC_DATALINK_PAYLOAD_TYPE_SIZE (1)
41#define MMAGIC_DATALINK_PAYLOAD_LEN_SIZE (2)
43#define MMAGIC_DATALINK_PAYLOAD_HEADER_SIZE \
44 (MMAGIC_DATALINK_PAYLOAD_TYPE_SIZE + MMAGIC_DATALINK_PAYLOAD_LEN_SIZE)
45
48{
49 MMAGIC_DATALINK_NACK,
50 MMAGIC_DATALINK_ACK,
51 MMAGIC_DATALINK_WRITE,
52 MMAGIC_DATALINK_READ,
53 MMAGIC_DATALINK_REREAD,
54};
55
62struct mmagic_datalink_controller;
63
76 struct mmagic_datalink_controller *controller_dl,
77 void *arg,
78 struct mmbuf *buf);
79
84{
88 void *rx_arg;
89};
90
94#define MMAGIC_DATALINK_CONTROLLER_ARGS_INIT { 0 }
95
103struct mmagic_datalink_controller *mmagic_datalink_controller_init(
104 const struct mmagic_datalink_controller_init_args *args);
105
111void mmagic_datalink_controller_deinit(struct mmagic_datalink_controller *controller_dl);
112
126 struct mmagic_datalink_controller *controller_dl,
127 size_t header_size,
128 size_t payload_size);
129
142int mmagic_datalink_controller_tx_buffer(struct mmagic_datalink_controller *controller_dl,
143 struct mmbuf *buf);
144
145#ifdef __cplusplus
146}
147#endif
148
char buf[1408]
Statically allocated buffer for HTTP GET request, just under 1 packet size.
Definition: sslclient.c:176
Core mmbuf data structure.
Definition: mmbuf.h:54