mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-12-25 20:33:08 -05:00
d431e2cecd
Re-factor the JT4, JT65 and JT9 decoders as Fortran modules using type bound procedures, the decoder types implement a callback procedure such that he client of the decoder can interpret the decode results as they need. The JT4 decoder has a second callback that delivers message averaging status. Also the previously separate source files lib/jt4a.f90 and lib/avg4.f90 have been merged into lib/jt4_decode.f90 as private type bound procedures of the new jt4_decoder type. Re-factored the lib/decoder.f90 subroutine to utilize the new decoder types. Added local procedures to process decodes and averaging results including the necessary OpenMP synchronization directives for parallel JT9+JT65 decoding. Added the jt65_test module which is a basic test harness for JT65 decoding. Re-factored the jt65 utility to utilize the new jt65_test module. Changed a few integers to logical variables where their meaning is clearly binary. git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6324 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
78 lines
1.6 KiB
C
78 lines
1.6 KiB
C
#ifndef COMMONS_H
|
|
#define COMMONS_H
|
|
|
|
#define NSMAX 6827
|
|
#define NTMAX 120
|
|
#define RX_SAMPLE_RATE 12000
|
|
|
|
#ifdef __cplusplus
|
|
#include <cstdbool>
|
|
extern "C" {
|
|
#else
|
|
#include <stdbool.h>
|
|
#endif
|
|
|
|
/*
|
|
* This structure is shared with Fortran code, it MUST be kept in
|
|
* sync with lib/jt9com.f90
|
|
*/
|
|
extern struct dec_data {
|
|
float ss[184*NSMAX];
|
|
float savg[NSMAX];
|
|
short int d2[NTMAX*RX_SAMPLE_RATE];
|
|
struct
|
|
{
|
|
int nutc; //UTC as integer, HHMM
|
|
bool ndiskdat; //true ==> data read from *.wav file
|
|
int ntrperiod; //TR period (seconds)
|
|
int nfqso; //User-selected QSO freq (kHz)
|
|
bool newdat; //true ==> new data, must do long FFT
|
|
int npts8; //npts for c0() array
|
|
int nfa; //Low decode limit (Hz)
|
|
int nfSplit; //JT65 | JT9 split frequency
|
|
int nfb; //High decode limit (Hz)
|
|
int ntol; //+/- decoding range around fQSO (Hz)
|
|
int kin;
|
|
int nzhsym;
|
|
int nsubmode;
|
|
bool nagain;
|
|
int ndepth;
|
|
int ntxmode;
|
|
int nmode;
|
|
int minw;
|
|
int nclearave;
|
|
int minSync;
|
|
float emedelay;
|
|
float dttol;
|
|
int nlist;
|
|
int listutc[10];
|
|
int n2pass;
|
|
int nranera;
|
|
int naggressive;
|
|
bool nrobust;
|
|
int nexp_decode;
|
|
char datetime[20];
|
|
char mycall[12];
|
|
char mygrid[6];
|
|
char hiscall[12];
|
|
char hisgrid[6];
|
|
} params;
|
|
} dec_data;
|
|
|
|
extern struct {
|
|
float syellow[NSMAX];
|
|
} jt9w_;
|
|
|
|
extern struct {
|
|
int nclearave;
|
|
int nsum;
|
|
float blue[4096];
|
|
float red[4096];
|
|
} echocom_;
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif // COMMONS_H
|