diff --git a/SP5WWP/include/m17/m17.h b/SP5WWP/include/m17/m17.h new file mode 100644 index 0000000..7791243 --- /dev/null +++ b/SP5WWP/include/m17/m17.h @@ -0,0 +1,147 @@ +//-------------------------------------------------------------------- +// M17 C library - m17.h +// +// Wojciech Kaczmarski, SP5WWP +// M17 Project, 29 December 2023 +//-------------------------------------------------------------------- +#pragma once + +#ifdef __cplusplus +extern "C" { +#endif +#include +#include + +// M17 C library - lib/lib.c +#define BSB_SPS 10 //samples per symbol +#define FLT_SPAN 8 //baseband RRC filter span in symbols +#define SYM_PER_SWD 8 //symbols per syncword +#define SW_LEN (BSB_SPS*SYM_PER_SWD) //syncword detector length +#define SYM_PER_PLD 184 //symbols per payload in a frame +#define SYM_PER_FRA 192 //symbols per whole 40 ms frame +#define RRC_DEV 7168.0f //.rrc file deviation for +1.0 symbol + +//L2 metric threshold +#define DIST_THRESH 2.0f //threshold for distance (syncword detection) + +void send_preamble(float out[SYM_PER_FRA], uint32_t *cnt, const uint8_t type); +void send_syncword(float out[SYM_PER_SWD], uint32_t *cnt, const uint16_t syncword); +void send_data(float out[SYM_PER_PLD], uint32_t *cnt, const uint8_t* in); +void send_eot(float out[SYM_PER_FRA], uint32_t *cnt); + + +// M17 C library - lib/payload/call.c +#define CHAR_MAP " ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-/." + +void decode_callsign_bytes(uint8_t *outp, const uint8_t inp[6]); +void decode_callsign_value(uint8_t *outp, const uint64_t inp); +int8_t encode_callsign_bytes(uint8_t out[6], const uint8_t *inp); +int8_t encode_callsign_value(uint64_t *out, const uint8_t *inp); + +// M17 C library - payload +/** + * @brief Structure holding Link Setup Frame data. + * + */ +struct LSF +{ + uint8_t dst[6]; + uint8_t src[6]; + uint8_t type[2]; + uint8_t meta[112/8]; + uint8_t crc[2]; +}; + +// M17 C library - lib/encode/convol.c +extern const uint8_t puncture_pattern_1[61]; +extern const uint8_t puncture_pattern_2[12]; +extern const uint8_t puncture_pattern_3[8]; + +void conv_encode_stream_frame(uint8_t* out, const uint8_t* in, const uint16_t fn); +void conv_encode_packet_frame(uint8_t* out, const uint8_t* in); +void conv_encode_LSF(uint8_t* out, const struct LSF *in); + +// M17 C library - lib/payload/crc.c +//M17 CRC polynomial +extern const uint16_t M17_CRC_POLY; + +uint16_t CRC_M17(const uint8_t *in, const uint16_t len); +uint16_t LSF_CRC(const struct LSF *in); + +// M17 C library - lib/math/golay.c +extern const uint16_t encode_matrix[12]; +extern const uint16_t decode_matrix[12]; + +uint32_t golay24_encode(const uint16_t data); +uint16_t golay24_sdecode(const uint16_t codeword[24]); +void decode_LICH(uint8_t* outp, const uint16_t* inp); + +// M17 C library - lib/phy/interleave.c +//interleaver pattern +extern const uint16_t intrl_seq[368]; + +// M17 C library - lib/math/math.c +uint16_t q_abs_diff(const uint16_t v1, const uint16_t v2); +float eucl_norm(const float* in1, const int8_t* in2, const uint8_t n); +void int_to_soft(uint16_t* out, const uint16_t in, const uint8_t len); +uint16_t soft_to_int(const uint16_t* in, const uint8_t len); +uint16_t div16(const uint16_t a, const uint16_t b); +uint16_t mul16(const uint16_t a, const uint16_t b); +uint16_t soft_bit_XOR(const uint16_t a, const uint16_t b); +void soft_XOR(uint16_t* out, const uint16_t* a, const uint16_t* b, const uint8_t len); + +// M17 C library - lib/phy/randomize.c +//randomizing pattern +extern const uint8_t rand_seq[46]; + +// M17 C library - lib/math/rrc.c +//sample RRC filter for 48kHz sample rate +//alpha=0.5, span=8, sps=10, gain=sqrt(sps) +extern const float rrc_taps_10[8*10+1]; + +//sample RRC filter for 24kHz sample rate +//alpha=0.5, span=8, sps=5, gain=sqrt(sps) +extern const float rrc_taps_5[8*5+1]; + +// M17 C library - lib/encode/symbols.c +// dibits-symbols map (TX) +extern const int8_t symbol_map[4]; + +// M17 C library - lib/phy/sync.c +//syncwords +extern const uint16_t SYNC_LSF; +extern const uint16_t SYNC_STR; +extern const uint16_t SYNC_PKT; +extern const uint16_t SYNC_BER; +extern const uint16_t EOT_MRKR; + +// M17 C library - lib/decode/viterbi.c +#define K 5 //constraint length +#define NUM_STATES (1 << (K - 1)) //number of states + +uint32_t viterbi_decode(uint8_t* out, const uint16_t* in, const uint16_t len); +uint32_t viterbi_decode_punctured(uint8_t* out, const uint16_t* in, const uint8_t* punct, const uint16_t in_len, const uint16_t p_len); +void viterbi_decode_bit(uint16_t s0, uint16_t s1, size_t pos); +uint32_t viterbi_chainback(uint8_t* out, size_t pos, const uint16_t len); +void viterbi_reset(void); + +// M17 C library - encode/symbols.c +// dibits-symbols map (TX) +extern const int8_t symbol_map[4]; + +//End of Transmission symbol pattern +extern const float eot_symbols[8]; + +// M17 C library - decode/symbols.c +// syncword patterns (RX) +// TODO: Compute those at runtime from the consts below +extern const int8_t lsf_sync_symbols[8]; +extern const int8_t str_sync_symbols[8]; +extern const int8_t pkt_sync_symbols[8]; + +// symbol levels (RX) +extern const float symbol_levels[4]; + +#ifdef __cplusplus +} +#endif diff --git a/SP5WWP/lib/decode/symbols.c b/SP5WWP/lib/decode/symbols.c index d7813bf..d0d914a 100644 --- a/SP5WWP/lib/decode/symbols.c +++ b/SP5WWP/lib/decode/symbols.c @@ -4,7 +4,7 @@ // Wojciech Kaczmarski, SP5WWP // M17 Project, 29 December 2023 //-------------------------------------------------------------------- -#include "symbols.h" +#include // syncword patterns (RX) // TODO: Compute those at runtime from the consts below diff --git a/SP5WWP/lib/decode/symbols.h b/SP5WWP/lib/decode/symbols.h deleted file mode 100644 index 1dbec3d..0000000 --- a/SP5WWP/lib/decode/symbols.h +++ /dev/null @@ -1,25 +0,0 @@ -//------------------------------- -// M17 C library - decode/symbols.h -// -// Wojciech Kaczmarski, SP5WWP -// M17 Project, 28 December 2023 -//------------------------------- -#pragma once - -#ifdef __cplusplus -extern "C" { -#endif -#include - -// syncword patterns (RX) -// TODO: Compute those at runtime from the consts below -extern const int8_t lsf_sync_symbols[8]; -extern const int8_t str_sync_symbols[8]; -extern const int8_t pkt_sync_symbols[8]; - -// symbol levels (RX) -extern const float symbol_levels[4]; - -#ifdef __cplusplus -} -#endif diff --git a/SP5WWP/lib/decode/viterbi.c b/SP5WWP/lib/decode/viterbi.c index fd4ef06..ee15898 100644 --- a/SP5WWP/lib/decode/viterbi.c +++ b/SP5WWP/lib/decode/viterbi.c @@ -10,8 +10,7 @@ #include #include -#include -#include "viterbi.h" +#include static uint32_t prevMetrics[NUM_STATES]; static uint32_t currMetrics[NUM_STATES]; diff --git a/SP5WWP/lib/decode/viterbi.h b/SP5WWP/lib/decode/viterbi.h deleted file mode 100644 index 103905f..0000000 --- a/SP5WWP/lib/decode/viterbi.h +++ /dev/null @@ -1,25 +0,0 @@ -//-------------------------------------------------------------------- -// M17 C library - decode/viterbi.h -// -// Wojciech Kaczmarski, SP5WWP -// M17 Project, 29 December 2023 -//-------------------------------------------------------------------- -#pragma once - -#ifdef __cplusplus -extern "C" { -#endif -#include - -#define K 5 //constraint length -#define NUM_STATES (1 << (K - 1)) //number of states - -uint32_t viterbi_decode(uint8_t* out, const uint16_t* in, const uint16_t len); -uint32_t viterbi_decode_punctured(uint8_t* out, const uint16_t* in, const uint8_t* punct, const uint16_t in_len, const uint16_t p_len); -void viterbi_decode_bit(uint16_t s0, uint16_t s1, size_t pos); -uint32_t viterbi_chainback(uint8_t* out, size_t pos, const uint16_t len); -void viterbi_reset(void); - -#ifdef __cplusplus -} -#endif diff --git a/SP5WWP/lib/encode/convol.c b/SP5WWP/lib/encode/convol.c index 27ebb0b..daf1f0e 100644 --- a/SP5WWP/lib/encode/convol.c +++ b/SP5WWP/lib/encode/convol.c @@ -8,7 +8,7 @@ // M17 Project, 29 December 2023 //-------------------------------------------------------------------- #include -#include "convol.h" +#include const uint8_t puncture_pattern_1[61] = { 1,1,0,1,1,1,0,1,1,1,0,1,1,1,0,1,1, diff --git a/SP5WWP/lib/encode/convol.h b/SP5WWP/lib/encode/convol.h deleted file mode 100644 index b0c86a9..0000000 --- a/SP5WWP/lib/encode/convol.h +++ /dev/null @@ -1,25 +0,0 @@ -//-------------------------------------------------------------------- -// M17 C library - encode/convol.h -// -// Wojciech Kaczmarski, SP5WWP -// M17 Project, 29 December 2023 -//-------------------------------------------------------------------- -#pragma once - -#ifdef __cplusplus -extern "C" { -#endif -#include -#include - -extern const uint8_t puncture_pattern_1[61]; -extern const uint8_t puncture_pattern_2[12]; -extern const uint8_t puncture_pattern_3[8]; - -void conv_encode_stream_frame(uint8_t* out, const uint8_t* in, const uint16_t fn); -void conv_encode_packet_frame(uint8_t* out, const uint8_t* in); -void conv_encode_LSF(uint8_t* out, const struct LSF *in); - -#ifdef __cplusplus -} -#endif diff --git a/SP5WWP/lib/encode/symbols.c b/SP5WWP/lib/encode/symbols.c index 614574f..39e96a7 100644 --- a/SP5WWP/lib/encode/symbols.c +++ b/SP5WWP/lib/encode/symbols.c @@ -4,7 +4,7 @@ // Wojciech Kaczmarski, SP5WWP // M17 Project, 5 January 2024 //-------------------------------------------------------------------- -#include "symbols.h" +#include //dibits-symbols map (TX) const int8_t symbol_map[4]={+1, +3, -1, -3}; diff --git a/SP5WWP/lib/encode/symbols.h b/SP5WWP/lib/encode/symbols.h deleted file mode 100644 index 0ebdaa6..0000000 --- a/SP5WWP/lib/encode/symbols.h +++ /dev/null @@ -1,22 +0,0 @@ -//------------------------------- -// M17 C library - encode/symbols.h -// -// Wojciech Kaczmarski, SP5WWP -// M17 Project, 5 January 2024 -//------------------------------- -#pragma once - -#ifdef __cplusplus -extern "C" { -#endif -#include - -//dibits-symbols map (TX) -extern const int8_t symbol_map[4]; - -//End of Transmission symbol pattern -extern const float eot_symbols[8]; - -#ifdef __cplusplus -} -#endif diff --git a/SP5WWP/lib/lib.c b/SP5WWP/lib/lib.c index f886783..8780ee0 100644 --- a/SP5WWP/lib/lib.c +++ b/SP5WWP/lib/lib.c @@ -4,8 +4,7 @@ // Wojciech Kaczmarski, SP5WWP // M17 Project, 5 January 2024 //-------------------------------------------------------------------- -#include -#include "lib.h" +#include /** * @brief Generate symbol stream for a preamble. diff --git a/SP5WWP/lib/lib.h b/SP5WWP/lib/lib.h deleted file mode 100644 index bb1089f..0000000 --- a/SP5WWP/lib/lib.h +++ /dev/null @@ -1,32 +0,0 @@ -//------------------------------- -// M17 C library - lib.h -// -// Wojciech Kaczmarski, SP5WWP -// M17 Project, 5 January 2024 -//------------------------------- -#pragma once - -#ifdef __cplusplus -extern "C" { -#endif -#include - -#define BSB_SPS 10 //samples per symbol -#define FLT_SPAN 8 //baseband RRC filter span in symbols -#define SYM_PER_SWD 8 //symbols per syncword -#define SW_LEN (BSB_SPS*SYM_PER_SWD) //syncword detector length -#define SYM_PER_PLD 184 //symbols per payload in a frame -#define SYM_PER_FRA 192 //symbols per whole 40 ms frame -#define RRC_DEV 7168.0f //.rrc file deviation for +1.0 symbol - -//L2 metric threshold -#define DIST_THRESH 2.0f //threshold for distance (syncword detection) - -void send_preamble(float out[SYM_PER_FRA], uint32_t *cnt, const uint8_t type); -void send_syncword(float out[SYM_PER_SWD], uint32_t *cnt, const uint16_t syncword); -void send_data(float out[SYM_PER_PLD], uint32_t *cnt, const uint8_t* in); -void send_eot(float out[SYM_PER_FRA], uint32_t *cnt); - -#ifdef __cplusplus -} -#endif diff --git a/SP5WWP/lib/math/golay.c b/SP5WWP/lib/math/golay.c index b0d8938..fce2ba5 100644 --- a/SP5WWP/lib/math/golay.c +++ b/SP5WWP/lib/math/golay.c @@ -11,8 +11,7 @@ //-------------------------------------------------------------------- #include -#include -#include "golay.h" +#include /** * @brief Precomputed encoding matrix for Golay(24, 12). diff --git a/SP5WWP/lib/math/golay.h b/SP5WWP/lib/math/golay.h deleted file mode 100644 index 1eec0f9..0000000 --- a/SP5WWP/lib/math/golay.h +++ /dev/null @@ -1,23 +0,0 @@ -//-------------------------------------------------------------------- -// M17 C library - math/golay.h -// -// Wojciech Kaczmarski, SP5WWP -// M17 Project, 29 December 2023 -//-------------------------------------------------------------------- -#pragma once - -#ifdef __cplusplus -extern "C" { -#endif -#include - -extern const uint16_t encode_matrix[12]; -extern const uint16_t decode_matrix[12]; - -uint32_t golay24_encode(const uint16_t data); -uint16_t golay24_sdecode(const uint16_t codeword[24]); -void decode_LICH(uint8_t* outp, const uint16_t* inp); - -#ifdef __cplusplus -} -#endif diff --git a/SP5WWP/lib/math/math.c b/SP5WWP/lib/math/math.c index 3a24f5f..b78db64 100644 --- a/SP5WWP/lib/math/math.c +++ b/SP5WWP/lib/math/math.c @@ -11,7 +11,7 @@ // M17 Project, 29 December 2023 //-------------------------------------------------------------------- #include -#include "math.h" +#include /** * @brief Utility function returning the absolute value of a difference between diff --git a/SP5WWP/lib/math/math.h b/SP5WWP/lib/math/math.h deleted file mode 100644 index d95a9c1..0000000 --- a/SP5WWP/lib/math/math.h +++ /dev/null @@ -1,25 +0,0 @@ -//-------------------------------------------------------------------- -// M17 C library - math/math.h -// -// Wojciech Kaczmarski, SP5WWP -// M17 Project, 29 December 2023 -//-------------------------------------------------------------------- -#pragma once - -#ifdef __cplusplus -extern "C" { -#endif -#include - -uint16_t q_abs_diff(const uint16_t v1, const uint16_t v2); -float eucl_norm(const float* in1, const int8_t* in2, const uint8_t n); -void int_to_soft(uint16_t* out, const uint16_t in, const uint8_t len); -uint16_t soft_to_int(const uint16_t* in, const uint8_t len); -uint16_t div16(const uint16_t a, const uint16_t b); -uint16_t mul16(const uint16_t a, const uint16_t b); -uint16_t soft_bit_XOR(const uint16_t a, const uint16_t b); -void soft_XOR(uint16_t* out, const uint16_t* a, const uint16_t* b, const uint8_t len); - -#ifdef __cplusplus -} -#endif diff --git a/SP5WWP/lib/math/rrc.c b/SP5WWP/lib/math/rrc.c index ba84058..08530f1 100644 --- a/SP5WWP/lib/math/rrc.c +++ b/SP5WWP/lib/math/rrc.c @@ -4,7 +4,7 @@ // Wojciech Kaczmarski, SP5WWP // M17 Project, 29 December 2023 //-------------------------------------------------------------------- -#include "rrc.h" +#include //sample RRC filter for 48kHz sample rate //alpha=0.5, span=8, sps=10, gain=sqrt(sps) diff --git a/SP5WWP/lib/math/rrc.h b/SP5WWP/lib/math/rrc.h deleted file mode 100644 index f2a0781..0000000 --- a/SP5WWP/lib/math/rrc.h +++ /dev/null @@ -1,23 +0,0 @@ -//------------------------------- -// M17 C library - math/rrc.h -// -// Wojciech Kaczmarski, SP5WWP -// M17 Project, 28 December 2023 -//------------------------------- -#pragma once - -#ifdef __cplusplus -extern "C" { -#endif - -//sample RRC filter for 48kHz sample rate -//alpha=0.5, span=8, sps=10, gain=sqrt(sps) -extern const float rrc_taps_10[8*10+1]; - -//sample RRC filter for 24kHz sample rate -//alpha=0.5, span=8, sps=5, gain=sqrt(sps) -extern const float rrc_taps_5[8*5+1]; - -#ifdef __cplusplus -} -#endif diff --git a/SP5WWP/lib/payload/call.c b/SP5WWP/lib/payload/call.c index 8637c54..7246cbb 100644 --- a/SP5WWP/lib/payload/call.c +++ b/SP5WWP/lib/payload/call.c @@ -9,7 +9,7 @@ //-------------------------------------------------------------------- #include #include -#include "call.h" +#include /** * @brief Decode a 6-byte long array (little-endian) into callsign string. diff --git a/SP5WWP/lib/payload/call.h b/SP5WWP/lib/payload/call.h deleted file mode 100644 index 23f387b..0000000 --- a/SP5WWP/lib/payload/call.h +++ /dev/null @@ -1,23 +0,0 @@ -//-------------------------------------------------------------------- -// M17 C library - payload/call.h -// -// Wojciech Kaczmarski, SP5WWP -// M17 Project, 29 December 2023 -//-------------------------------------------------------------------- -#pragma once - -#ifdef __cplusplus -extern "C" { -#endif -#include - -#define CHAR_MAP " ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-/." - -void decode_callsign_bytes(uint8_t *outp, const uint8_t inp[6]); -void decode_callsign_value(uint8_t *outp, const uint64_t inp); -int8_t encode_callsign_bytes(uint8_t out[6], const uint8_t *inp); -int8_t encode_callsign_value(uint64_t *out, const uint8_t *inp); - -#ifdef __cplusplus -} -#endif diff --git a/SP5WWP/lib/payload/crc.c b/SP5WWP/lib/payload/crc.c index 71aedd7..51da222 100644 --- a/SP5WWP/lib/payload/crc.c +++ b/SP5WWP/lib/payload/crc.c @@ -8,7 +8,7 @@ // M17 Project, 29 December 2023 //-------------------------------------------------------------------- #include -#include "crc.h" +#include //M17 CRC polynomial const uint16_t M17_CRC_POLY = 0x5935; diff --git a/SP5WWP/lib/payload/crc.h b/SP5WWP/lib/payload/crc.h deleted file mode 100644 index 2a94a91..0000000 --- a/SP5WWP/lib/payload/crc.h +++ /dev/null @@ -1,23 +0,0 @@ -//-------------------------------------------------------------------- -// M17 C library - payload/crc.h -// -// Wojciech Kaczmarski, SP5WWP -// M17 Project, 29 December 2023 -//-------------------------------------------------------------------- -#pragma once - -#ifdef __cplusplus -extern "C" { -#endif -#include -#include "lsf.h" - -//M17 CRC polynomial -extern const uint16_t M17_CRC_POLY; - -uint16_t CRC_M17(const uint8_t *in, const uint16_t len); -uint16_t LSF_CRC(const struct LSF *in); - -#ifdef __cplusplus -} -#endif diff --git a/SP5WWP/lib/payload/lsf.h b/SP5WWP/lib/payload/lsf.h deleted file mode 100644 index 2d76918..0000000 --- a/SP5WWP/lib/payload/lsf.h +++ /dev/null @@ -1,28 +0,0 @@ -//------------------------------- -// M17 C library - payload/lsf.h -// -// Wojciech Kaczmarski, SP5WWP -// M17 Project, 28 December 2023 -//------------------------------- -#pragma once - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * @brief Structure holding Link Setup Frame data. - * - */ -struct LSF -{ - uint8_t dst[6]; - uint8_t src[6]; - uint8_t type[2]; - uint8_t meta[112/8]; - uint8_t crc[2]; -}; - -#ifdef __cplusplus -} -#endif diff --git a/SP5WWP/lib/phy/interleave.c b/SP5WWP/lib/phy/interleave.c index 363405e..2b30218 100644 --- a/SP5WWP/lib/phy/interleave.c +++ b/SP5WWP/lib/phy/interleave.c @@ -5,7 +5,7 @@ // M17 Project, 28 December 2023 //------------------------------- -#include "interleave.h" +#include //interleaver pattern const uint16_t intrl_seq[368]= diff --git a/SP5WWP/lib/phy/interleave.h b/SP5WWP/lib/phy/interleave.h deleted file mode 100644 index ddeca4e..0000000 --- a/SP5WWP/lib/phy/interleave.h +++ /dev/null @@ -1,19 +0,0 @@ -//------------------------------- -// M17 C library - phy/interleave.h -// -// Wojciech Kaczmarski, SP5WWP -// M17 Project, 28 December 2023 -//------------------------------- -#pragma once - -#ifdef __cplusplus -extern "C" { -#endif -#include - -//interleaver pattern -extern const uint16_t intrl_seq[368]; - -#ifdef __cplusplus -} -#endif diff --git a/SP5WWP/lib/phy/randomize.c b/SP5WWP/lib/phy/randomize.c index d1c72bb..1867159 100644 --- a/SP5WWP/lib/phy/randomize.c +++ b/SP5WWP/lib/phy/randomize.c @@ -4,7 +4,7 @@ // Wojciech Kaczmarski, SP5WWP // M17 Project, 29 December 2023 //-------------------------------------------------------------------- -#include "randomize.h" +#include //randomizing pattern const uint8_t rand_seq[46]= diff --git a/SP5WWP/lib/phy/randomize.h b/SP5WWP/lib/phy/randomize.h deleted file mode 100644 index 864b6ee..0000000 --- a/SP5WWP/lib/phy/randomize.h +++ /dev/null @@ -1,19 +0,0 @@ -//------------------------------- -// M17 C library - phy/randomize.h -// -// Wojciech Kaczmarski, SP5WWP -// M17 Project, 28 December 2023 -//------------------------------- -#pragma once - -#ifdef __cplusplus -extern "C" { -#endif -#include - -//randomizing pattern -extern const uint8_t rand_seq[46]; - -#ifdef __cplusplus -} -#endif diff --git a/SP5WWP/lib/phy/sync.c b/SP5WWP/lib/phy/sync.c index 60f021f..1008c84 100644 --- a/SP5WWP/lib/phy/sync.c +++ b/SP5WWP/lib/phy/sync.c @@ -4,7 +4,7 @@ // Wojciech Kaczmarski, SP5WWP // M17 Project, 29 December 2023 //-------------------------------------------------------------------- -#include "sync.h" +#include //syncwords const uint16_t SYNC_LSF = 0x55F7; diff --git a/SP5WWP/lib/phy/sync.h b/SP5WWP/lib/phy/sync.h deleted file mode 100644 index 48a800e..0000000 --- a/SP5WWP/lib/phy/sync.h +++ /dev/null @@ -1,23 +0,0 @@ -//------------------------------- -// M17 C library - phy/sync.h -// -// Wojciech Kaczmarski, SP5WWP -// M17 Project, 28 December 2023 -//------------------------------- -#pragma once - -#ifdef __cplusplus -extern "C" { -#endif -#include - -//syncwords -extern const uint16_t SYNC_LSF; -extern const uint16_t SYNC_STR; -extern const uint16_t SYNC_PKT; -extern const uint16_t SYNC_BER; -extern const uint16_t EOT_MRKR; - -#ifdef __cplusplus -} -#endif diff --git a/SP5WWP/m17-coder/Makefile b/SP5WWP/m17-coder/Makefile index 28c51e3..f0a429c 100644 --- a/SP5WWP/m17-coder/Makefile +++ b/SP5WWP/m17-coder/Makefile @@ -1,5 +1,5 @@ m17-coder-sym: m17-coder-sym.c - gcc -I ../lib -L ../lib -O2 -Wall m17-coder-sym.c -o m17-coder-sym -lm -lm17 + gcc -I ../include -L ../lib -O2 -Wall m17-coder-sym.c -o m17-coder-sym -lm -lm17 clean: rm -f m17-coder-sym diff --git a/SP5WWP/m17-coder/m17-coder-sym.c b/SP5WWP/m17-coder/m17-coder-sym.c index bd710da..f32de65 100644 --- a/SP5WWP/m17-coder/m17-coder-sym.c +++ b/SP5WWP/m17-coder/m17-coder-sym.c @@ -4,14 +4,7 @@ #include //libm17 -#include -#include -#include -#include -#include -#include -#include -#include +#include //#define FN60_DEBUG diff --git a/SP5WWP/m17-decoder/Makefile b/SP5WWP/m17-decoder/Makefile index 5bfa258..aaa3e2a 100644 --- a/SP5WWP/m17-decoder/Makefile +++ b/SP5WWP/m17-decoder/Makefile @@ -1,5 +1,5 @@ m17-decoder-sym: m17-decoder-sym.c - gcc -I ../lib -L ../lib -Wall -O2 m17-decoder-sym.c -o m17-decoder-sym -lm -lm17 + gcc -I ../include -L ../lib -Wall -O2 m17-decoder-sym.c -o m17-decoder-sym -lm -lm17 clean: rm -f m17-decoder-sym diff --git a/SP5WWP/m17-decoder/m17-decoder-sym.c b/SP5WWP/m17-decoder/m17-decoder-sym.c index 9cb32a1..9fdbab8 100644 --- a/SP5WWP/m17-decoder/m17-decoder-sym.c +++ b/SP5WWP/m17-decoder/m17-decoder-sym.c @@ -4,18 +4,7 @@ #include //libm17 -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include #define DECODE_CALLSIGNS #define SHOW_VITERBI_ERRS diff --git a/SP5WWP/m17-packet/Makefile b/SP5WWP/m17-packet/Makefile index ec7225c..8a9e2a1 100644 --- a/SP5WWP/m17-packet/Makefile +++ b/SP5WWP/m17-packet/Makefile @@ -1,10 +1,10 @@ all: m17-packet-encode m17-packet-decode m17-packet-encode: m17-packet-encode.c - gcc -I ../lib -L ../lib -O2 -Wall m17-packet-encode.c -o m17-packet-encode -lm -lm17 + gcc -I ../include -L ../lib -O2 -Wall m17-packet-encode.c -o m17-packet-encode -lm -lm17 m17-packet-decode: m17-packet-decode.c - gcc -I ../lib -L ../lib -O2 -Wall m17-packet-decode.c -o m17-packet-decode -lm -lm17 + gcc -I ../include -L ../lib -O2 -Wall m17-packet-decode.c -o m17-packet-decode -lm -lm17 install: all sudo install m17-packet-encode /usr/local/bin diff --git a/SP5WWP/m17-packet/m17-packet-decode.c b/SP5WWP/m17-packet/m17-packet-decode.c index 05e9846..da3a975 100644 --- a/SP5WWP/m17-packet/m17-packet-decode.c +++ b/SP5WWP/m17-packet/m17-packet-decode.c @@ -4,18 +4,7 @@ #include //libm17 -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include float sample; //last raw sample from the stdin float last[8]; //look-back buffer for finding syncwords diff --git a/SP5WWP/m17-packet/m17-packet-encode.c b/SP5WWP/m17-packet/m17-packet-encode.c index ab701c4..f6b9b54 100644 --- a/SP5WWP/m17-packet/m17-packet-encode.c +++ b/SP5WWP/m17-packet/m17-packet-encode.c @@ -5,17 +5,7 @@ #include //libm17 -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include #define FLT_LEN (BSB_SPS*FLT_SPAN+1) //for 48kHz sample rate this is 81