hamnet70/impl/src/packet_mod.h

52 lines
1.1 KiB
C
Raw Normal View History

#ifndef PACKET_MOD
#define PACKET_MOD
#include <stdlib.h>
#include <complex.h>
#include <liquid/liquid.h>
#include "results.h"
typedef enum
{
NOT_STARTED,
DATA_RAW,
DATA_CODED,
DATA_MODULATED,
HEADER_ADDED,
PREAMBLE_ADDED,
} packet_mod_state_t;
typedef struct
{
unsigned char *pkt_bytes;
float complex *pkt_symbols;
packet_mod_state_t state;
modem modem;
fec fec;
uint16_t raw_data_crc;
size_t length;
} packet_mod_ctx_t;
result_t packet_mod_init(packet_mod_ctx_t *ctx);
result_t packet_mod_free(packet_mod_ctx_t *ctx);
result_t packet_mod_set_data(packet_mod_ctx_t *ctx, const unsigned char *data, size_t length);
result_t packet_mod_encode(packet_mod_ctx_t *ctx);
result_t packet_mod_modulate(packet_mod_ctx_t *ctx);
result_t packet_mod_add_header(packet_mod_ctx_t *ctx);
result_t packet_mod_add_preamble(packet_mod_ctx_t *ctx);
result_t packet_mod_dump(packet_mod_ctx_t *ctx, const char *filename);
result_t packet_mod_get_result_b(packet_mod_ctx_t *ctx, unsigned char *data, size_t *length);
result_t packet_mod_get_result_cf(packet_mod_ctx_t *ctx, float complex *data, size_t *length);
#endif // PACKET_MOD