kopia lustrzana https://github.com/SP8EBC/ParaTNC
62 wiersze
1.5 KiB
C
62 wiersze
1.5 KiB
C
/*
|
||
* ax25_t.h
|
||
*
|
||
* Created on: Apr 20, 2024
|
||
* Author: mateusz
|
||
*/
|
||
|
||
#ifndef INCLUDE_APRS_AX25_T_H_
|
||
#define INCLUDE_APRS_AX25_T_H_
|
||
|
||
#include "stdint.h"
|
||
#include "ax25_config.h"
|
||
|
||
/**
|
||
* Maximum number of Repeaters in a AX25 message.
|
||
*/
|
||
#define AX25_MAX_RPT 8
|
||
|
||
/**
|
||
* AX25 Call sign.
|
||
*/
|
||
typedef struct AX25Call
|
||
{
|
||
char call[6]; ///< Call string, max 6 character
|
||
uint8_t ssid; ///< SSID (secondary station ID) for the call
|
||
} AX25Call;
|
||
|
||
/**
|
||
* AX25 Message.
|
||
* Used to handle AX25 sent/received messages.
|
||
*/
|
||
typedef struct AX25Msg
|
||
{
|
||
|
||
AX25Call src; ///< Source adress
|
||
AX25Call dst; ///< Destination address
|
||
AX25Call rpt_lst[AX25_MAX_RPT]; ///< List of repeaters
|
||
uint8_t rpt_cnt; ///< Number of repeaters in this message
|
||
uint8_t rpt_flags; ///< Has-been-repeated flags for each repeater (bit-mapped)
|
||
#define AX25_REPEATED(msg, idx) ((msg)->rpt_flags & BV(idx))
|
||
uint16_t ctrl; ///< AX25 control field
|
||
uint8_t pid; ///< AX25 PID field
|
||
const uint8_t *info; ///< Pointer to the info field (payload) of the message
|
||
uint16_t len; ///< Payload length
|
||
uint8_t raw_data[CONFIG_AX25_FRAME_BUF_LEN]; /// Surowa zawarto<74><6F> ramki przekopiowana z Ctx->buff
|
||
short int raw_msg_len; // wielkosc surowej ramki
|
||
|
||
} AX25Msg;
|
||
|
||
/**
|
||
* Type for AX25 messages callback.
|
||
*/
|
||
typedef void (*ax25_callback_t)(struct AX25Msg *ax25_rxed_frame);
|
||
|
||
/**
|
||
* Type for channel free wait timeout callback
|
||
*/
|
||
typedef void (*ax25_ch_free_timeout_callback_t)(void);
|
||
|
||
|
||
#endif /* INCLUDE_APRS_AX25_T_H_ */
|