diff --git a/SP5WWP/m17-coder/Makefile b/SP5WWP/m17-coder/Makefile index 43cc8e3..28c51e3 100644 --- a/SP5WWP/m17-coder/Makefile +++ b/SP5WWP/m17-coder/Makefile @@ -1,5 +1,5 @@ -m17-coder-sym: m17-coder-sym.c ../lib/*.c ../lib/*.h - gcc -O2 -Wall m17-coder-sym.c ../lib/*.c -o m17-coder-sym -lm +m17-coder-sym: m17-coder-sym.c + gcc -I ../lib -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 b1a48ea..02db80c 100644 --- a/SP5WWP/m17-coder/m17-coder-sym.c +++ b/SP5WWP/m17-coder/m17-coder-sym.c @@ -3,14 +3,15 @@ #include #include -#include "../lib/m17lib.h" -#include "../lib/m17call.h" -#include "../lib/m17consts.h" -#include "../lib/m17convol.h" -#include "../lib/m17crc.h" -#include "../lib/m17golay.h" -#include "../lib/m17math.h" -#include "../lib/m17viterbi.h" +//libm17 +#include +#include +#include +#include +#include +#include +#include +#include //#define FN60_DEBUG diff --git a/SP5WWP/m17-decoder/Makefile b/SP5WWP/m17-decoder/Makefile index b8dff7b..5bfa258 100644 --- a/SP5WWP/m17-decoder/Makefile +++ b/SP5WWP/m17-decoder/Makefile @@ -1,5 +1,5 @@ -m17-decoder-sym: m17-decoder-sym.c ../lib/*.c ../lib/*.h - gcc -Wall -O2 m17-decoder-sym.c ../lib/*.c -o m17-decoder-sym -lm +m17-decoder-sym: m17-decoder-sym.c + gcc -I ../lib -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 0f9fa09..9cb32a1 100644 --- a/SP5WWP/m17-decoder/m17-decoder-sym.c +++ b/SP5WWP/m17-decoder/m17-decoder-sym.c @@ -3,14 +3,19 @@ #include #include -#include "../lib/m17lib.h" -#include "../lib/m17call.h" -#include "../lib/m17consts.h" -#include "../lib/m17convol.h" -#include "../lib/m17crc.h" -#include "../lib/m17golay.h" -#include "../lib/m17math.h" -#include "../lib/m17viterbi.h" +//libm17 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #define DECODE_CALLSIGNS #define SHOW_VITERBI_ERRS @@ -54,7 +59,7 @@ int main(void) last[7]=sample; //calculate euclidean norm - dist = eucl_norm(last, str_sync, 8); + dist = eucl_norm(last, str_sync_symbols, 8); if(dist=symbs[3]) + if(pld[i]>=symbol_map[3]) { soft_bit[i*2+1]=0xFFFF; } - else if(pld[i]>=symbs[2]) + else if(pld[i]>=symbol_map[2]) { - soft_bit[i*2+1]=-(float)0xFFFF/(symbs[3]-symbs[2])*symbs[2]+pld[i]*(float)0xFFFF/(symbs[3]-symbs[2]); + soft_bit[i*2+1]=-(float)0xFFFF/(symbol_map[3]-symbol_map[2])*symbol_map[2]+pld[i]*(float)0xFFFF/(symbol_map[3]-symbol_map[2]); } - else if(pld[i]>=symbs[1]) + else if(pld[i]>=symbol_map[1]) { soft_bit[i*2+1]=0x0000; } - else if(pld[i]>=symbs[0]) + else if(pld[i]>=symbol_map[0]) { - soft_bit[i*2+1]=(float)0xFFFF/(symbs[1]-symbs[0])*symbs[1]-pld[i]*(float)0xFFFF/(symbs[1]-symbs[0]); + soft_bit[i*2+1]=(float)0xFFFF/(symbol_map[1]-symbol_map[0])*symbol_map[1]-pld[i]*(float)0xFFFF/(symbol_map[1]-symbol_map[0]); } else { @@ -110,13 +115,13 @@ int main(void) } //bit 1 - if(pld[i]>=symbs[2]) + if(pld[i]>=symbol_map[2]) { soft_bit[i*2]=0x0000; } - else if(pld[i]>=symbs[1]) + else if(pld[i]>=symbol_map[1]) { - soft_bit[i*2]=0x7FFF-pld[i]*(float)0xFFFF/(symbs[2]-symbs[1]); + soft_bit[i*2]=0x7FFF-pld[i]*(float)0xFFFF/(symbol_map[2]-symbol_map[1]); } else { @@ -147,7 +152,7 @@ int main(void) } //decode - uint32_t e=viterbi_decode_punctured(frame_data, enc_data, P_2, 272, 12); + uint32_t e=viterbi_decode_punctured(frame_data, enc_data, puncture_pattern_2, 272, 12); uint16_t fn = (frame_data[1] << 8) | frame_data[2]; @@ -241,7 +246,7 @@ int main(void) printf("LSF\n"); //decode - uint32_t e=viterbi_decode_punctured(lsf, d_soft_bit, P_1, 2*SYM_PER_PLD, 61); + uint32_t e=viterbi_decode_punctured(lsf, d_soft_bit, puncture_pattern_1, 2*SYM_PER_PLD, 61); //shift the buffer 1 position left - get rid of the encoded flushing bits for(uint8_t i=0; i<30; i++) diff --git a/SP5WWP/m17-packet/Makefile b/SP5WWP/m17-packet/Makefile index d7c214d..ec7225c 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 ../lib/*.c ../lib/*.h - gcc -O2 -Wall m17-packet-encode.c ../lib/*.c -o m17-packet-encode -lm +m17-packet-encode: m17-packet-encode.c + gcc -I ../lib -L ../lib -O2 -Wall m17-packet-encode.c -o m17-packet-encode -lm -lm17 -m17-packet-decode: m17-packet-decode.c ../lib/*.c ../lib/*.h - gcc -O2 -Wall m17-packet-decode.c ../lib/*.c -o m17-packet-decode -lm +m17-packet-decode: m17-packet-decode.c + gcc -I ../lib -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 57a3954..05e9846 100644 --- a/SP5WWP/m17-packet/m17-packet-decode.c +++ b/SP5WWP/m17-packet/m17-packet-decode.c @@ -3,14 +3,19 @@ #include #include -#include "../lib/m17lib.h" -#include "../lib/m17call.h" -#include "../lib/m17consts.h" -#include "../lib/m17convol.h" -#include "../lib/m17crc.h" -#include "../lib/m17golay.h" -#include "../lib/m17math.h" -#include "../lib/m17viterbi.h" +//libm17 +#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 @@ -94,7 +99,7 @@ int main(int argc, char* argv[]) last[7]=sample; //calculate euclidean norm - dist = eucl_norm(last, pkt_sync, 8); + dist = eucl_norm(last, pkt_sync_symbols, 8); //fprintf(stderr, "pkt_sync dist: %3.5f\n", dist); if(dist=symbs[3]) + if(pld[i]>=symbol_map[3]) { soft_bit[i*2+1]=0xFFFF; } - else if(pld[i]>=symbs[2]) + else if(pld[i]>=symbol_map[2]) { - soft_bit[i*2+1]=-(float)0xFFFF/(symbs[3]-symbs[2])*symbs[2]+pld[i]*(float)0xFFFF/(symbs[3]-symbs[2]); + soft_bit[i*2+1]=-(float)0xFFFF/(symbol_map[3]-symbol_map[2])*symbol_map[2]+pld[i]*(float)0xFFFF/(symbol_map[3]-symbol_map[2]); } - else if(pld[i]>=symbs[1]) + else if(pld[i]>=symbol_map[1]) { soft_bit[i*2+1]=0x0000; } - else if(pld[i]>=symbs[0]) + else if(pld[i]>=symbol_map[0]) { - soft_bit[i*2+1]=(float)0xFFFF/(symbs[1]-symbs[0])*symbs[1]-pld[i]*(float)0xFFFF/(symbs[1]-symbs[0]); + soft_bit[i*2+1]=(float)0xFFFF/(symbol_map[1]-symbol_map[0])*symbol_map[1]-pld[i]*(float)0xFFFF/(symbol_map[1]-symbol_map[0]); } else { @@ -152,13 +157,13 @@ int main(int argc, char* argv[]) } //bit 1 - if(pld[i]>=symbs[2]) + if(pld[i]>=symbol_map[2]) { soft_bit[i*2]=0x0000; } - else if(pld[i]>=symbs[1]) + else if(pld[i]>=symbol_map[1]) { - soft_bit[i*2]=0x7FFF-pld[i]*(float)0xFFFF/(symbs[2]-symbs[1]); + soft_bit[i*2]=0x7FFF-pld[i]*(float)0xFFFF/(symbol_map[2]-symbol_map[1]); } else { @@ -183,7 +188,7 @@ int main(int argc, char* argv[]) if(!fl) { //decode - uint32_t e=viterbi_decode_punctured(frame_data, d_soft_bit, P_3, SYM_PER_PLD*2, 8); + uint32_t e=viterbi_decode_punctured(frame_data, d_soft_bit, puncture_pattern_3, SYM_PER_PLD*2, 8); //dump FN uint8_t rx_fn=(frame_data[26]>>2)&0x1F; @@ -246,7 +251,7 @@ int main(int argc, char* argv[]) //fprintf(stderr, "LSF\n"); //decode - uint32_t e=viterbi_decode_punctured(lsf, d_soft_bit, P_1, 2*SYM_PER_PLD, 61); + uint32_t e=viterbi_decode_punctured(lsf, d_soft_bit, puncture_pattern_1, 2*SYM_PER_PLD, 61); //shift the buffer 1 position left - get rid of the encoded flushing bits for(uint8_t i=0; i<30; i++) diff --git a/SP5WWP/m17-packet/m17-packet-encode.c b/SP5WWP/m17-packet/m17-packet-encode.c index ae882a7..dde2a20 100644 --- a/SP5WWP/m17-packet/m17-packet-encode.c +++ b/SP5WWP/m17-packet/m17-packet-encode.c @@ -4,14 +4,18 @@ #include #include -#include "../lib/m17lib.h" -#include "../lib/m17call.h" -#include "../lib/m17consts.h" -#include "../lib/m17convol.h" -#include "../lib/m17crc.h" -#include "../lib/m17golay.h" -#include "../lib/m17math.h" -#include "../lib/m17viterbi.h" +//libm17 +#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 @@ -383,7 +387,7 @@ int main(int argc, char* argv[]) //calc the sum of products for(uint16_t k=0; k0; k--)