diff --git a/afsk/main.c b/afsk/main.c index d2fc4bca..3c957254 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -69,6 +69,53 @@ void trans_x25(); int upper_digit(int number); int lower_digit(int number); +#define S_RATE (48000) // (44100) +#define BUF_SIZE (S_RATE*10) /* 2 second buffer */ + +// BPSK Settings +#define BIT_RATE 1200 // 200 for DUV +#define DUV 0 // 1 for DUV +#define RS_FRAMES 3 // 3 frames for BPSK, 1 for DUV +#define PAYLOADS 6 // 1 for DUV +#define DATA_LEN 78 // 56 for DUV +#define RS_FRAME_LEN 159 // 64 for DUV +#define SYNC_BITS 31 // 10 for DUV +#define SYNC_WORD 0b1000111110011010010000101011101 // 0b0011111010 for DUV +#define HEADER_LEN 8 // 6 for DUV +/* +// DUV Settings +#define BIT_RATE 200 +#define DUV 1 +#define RS_FRAMES 1 +#define PAYLOADS 1 +#define RS_FRAME_LEN 64 +#define HEADER_LEN 6 +#define DATA_LEN 58 +#define SYNC_BITS 10 +#define SYNC_WORD 0b0011111010 +*/ + +#define PARITY_LEN 32 + +float amplitude = 32767/3; // 20000; // 32767/(10%amp+5%amp+100%amp) +float freq_Hz = 3000; // 1200 + +int smaller; +int flip_ctr = 0; +int phase = 1; +int ctr = 0; +void write_to_buffer(int i, int symbol, int val); +void write_wave(); +#define SAMPLES (S_RATE / BIT_RATE) +#define FRAME_CNT 5 + +//#define BUF_LEN (FRAME_CNT * (SYNC_BITS + 10 * (8 + 6 * DATA_LEN + 96)) * SAMPLES) +#define BUF_LEN (FRAME_CNT * (SYNC_BITS + 10 * (HEADER_LEN + RS_FRAMES * (RS_FRAME_LEN + PARITY_LEN))) * SAMPLES) +short int buffer[BUF_LEN]; +short int data10[8 + RS_FRAMES * (RS_FRAME_LEN + PARITY_LEN)]; +short int data8[8 + RS_FRAMES * (RS_FRAME_LEN + PARITY_LEN)]; + + struct SensorConfig { int fd; uint16_t config; @@ -1460,51 +1507,7 @@ void write_wav(char * filename, unsigned long num_samples, short int * data, int } -#define S_RATE (48000) // (44100) -#define BUF_SIZE (S_RATE*10) /* 2 second buffer */ -// BPSK Settings -#define BIT_RATE 1200 // 200 for DUV -#define DUV 0 // 1 for DUV -#define RS_FRAMES 3 // 3 frames for BPSK, 1 for DUV -#define PAYLOADS 6 // 1 for DUV -#define DATA_LEN 78 // 56 for DUV -#define RS_FRAME_LEN 159 // 64 for DUV -#define SYNC_BITS 31 // 10 for DUV -#define SYNC_WORD 0b1000111110011010010000101011101 // 0b0011111010 for DUV -#define HEADER_LEN 8 // 6 for DUV -/* -// DUV Settings -#define BIT_RATE 200 -#define DUV 1 -#define RS_FRAMES 1 -#define PAYLOADS 1 -#define RS_FRAME_LEN 64 -#define HEADER_LEN 6 -#define DATA_LEN 58 -#define SYNC_BITS 10 -#define SYNC_WORD 0b0011111010 -*/ - -#define PARITY_LEN 32 - -float amplitude = 32767/3; // 20000; // 32767/(10%amp+5%amp+100%amp) -float freq_Hz = 3000; // 1200 - -int smaller; -int flip_ctr = 0; -int phase = 1; -int ctr = 0; -void write_to_buffer(int i, int symbol, int val); -void write_wave(); -#define SAMPLES (S_RATE / BIT_RATE) -#define FRAME_CNT 5 - -//#define BUF_LEN (FRAME_CNT * (SYNC_BITS + 10 * (8 + 6 * DATA_LEN + 96)) * SAMPLES) -#define BUF_LEN (FRAME_CNT * (SYNC_BITS + 10 * (HEADER_LEN + RS_FRAMES * (RS_FRAME_LEN + PARITY_LEN))) * SAMPLES) -short int buffer[BUF_LEN]; -short int data10[8 + RS_FRAMES * (RS_FRAME_LEN + PARITY_LEN)]; -short int data8[8 + RS_FRAMES * (RS_FRAME_LEN + PARITY_LEN)]; //int main(int argc, char * argv[]) //{