mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-30 20:40:28 -04:00 
			
		
		
		
	git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7341 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
		
			
				
	
	
		
			66 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| // qra64_subs.c
 | |
| // Fortran interface routines for QRA64
 | |
| 
 | |
| #include "qra64.h"
 | |
| #include <stdio.h>
 | |
| 
 | |
| static qra64codec *pqra64codec = NULL;
 | |
| 
 | |
| void qra64_enc_(int x[], int y[])
 | |
| {
 | |
|   if (pqra64codec==NULL) pqra64codec = qra64_init(QRA_USERAP);  
 | |
|   qra64_encode(pqra64codec, y, x);
 | |
| }
 | |
| 
 | |
| void qra64_dec_(float r[], int* nc1, int* nc2, int* ng2, int* APtype, 
 | |
| 		int* iset, int* ns0, float* b0, int* nf0,
 | |
| 		int xdec[], float* snr, int* rc)
 | |
| {
 | |
| /*
 | |
|   APtype:                         AP
 | |
| -----------------------------------------------------------------------
 | |
|      -1                            0     (no AP information)
 | |
|       0    [CQ/QRZ    ?      ? ]  25/37
 | |
|       1    [MyCall    ?      ? ]  25/37
 | |
|       2    [  ?    HisCall   ? ]  25/37
 | |
|       3    [MyCall HisCall   ? ]  49/68
 | |
|       4    [MyCall HisCall grid]  68
 | |
|       5    [CQ/QRZ HisCall   ? ]  49/68
 | |
| 
 | |
|      rc    Message format         AP APTYPE Comments
 | |
| ------------------------------------------------------------------------
 | |
|     -16                                     Failed sanity check
 | |
|      -2                                     Decoded but CRC failed
 | |
|      -1                                     No decode
 | |
|       0    [   ?      ?      ? ]   0   -1   Decode with no AP info
 | |
|       1    [CQ/QRZ    ?      ? ]  25    0
 | |
|       2    [CQ/QRZ    ?      _ ]  37    0
 | |
|       3    [MyCall    ?      ? ]  25    1
 | |
|       4    [MyCall    ?      _ ]  37    1
 | |
|       5    [MyCall HisCall   ? ]  49    3
 | |
|       6    [   ?   HisCall   ? ]  25    2   Optional
 | |
|       7    [   ?   HisCall   _ ]  37    2   Optional
 | |
|       8    [MyCall HisCall Grid]  68    4
 | |
|       9    [CQ/QRZ HisCall   ? ]  49    5   Optional (not needed?)
 | |
|      10    [CQ/QRZ HisCall   _ ]  68    5   Optional
 | |
|      11    [CQ/QRZ HisCall Grid]  68    ?   Optional
 | |
| */
 | |
| 
 | |
|   float EbNodBEstimated;
 | |
|   int err=0;
 | |
|   int nSubmode=*ns0;
 | |
|   float b90=*b0;
 | |
|   int nFadingModel=*nf0;
 | |
| 
 | |
|   if(pqra64codec==NULL) pqra64codec = qra64_init(QRA_USERAP);
 | |
|   err=qra64_apset(pqra64codec,*nc1,*nc2,*ng2,*APtype);
 | |
|   if(err<0) printf("ERROR: qra64_apset returned %d\n",err);
 | |
| 
 | |
|   if(*iset==0) {
 | |
|     *rc = qra64_decode_fastfading(pqra64codec,&EbNodBEstimated,xdec,r,
 | |
|     				  nSubmode,b90,nFadingModel);
 | |
|     *snr = EbNodBEstimated - 31.0;
 | |
|   }
 | |
| }
 | |
| 
 |