freq ests, snr, Fs
parent
200073294f
commit
29c0bcf4bb
|
@ -159,25 +159,45 @@ static void rtlsdr_callback(unsigned char *buf, uint32_t len, void *ctx)
|
||||||
if (udp_debug) {
|
if (udp_debug) {
|
||||||
sample_counter += fsk_nin(fsk);
|
sample_counter += fsk_nin(fsk);
|
||||||
if (sample_counter > samp_rate) {
|
if (sample_counter > samp_rate) {
|
||||||
char buf[BUF_SZ];
|
|
||||||
char buf1[BUF_SZ];
|
|
||||||
size_t Ndft;
|
|
||||||
|
|
||||||
/* one second has passed, lets send some debug information */
|
/* one second has passed, lets send some debug information */
|
||||||
|
char buf[BUF_SZ];
|
||||||
|
char buf1[BUF_SZ];
|
||||||
|
size_t Ndft;
|
||||||
|
float *f_est;
|
||||||
|
int m;
|
||||||
|
|
||||||
sample_counter -= samp_rate;
|
sample_counter -= samp_rate;
|
||||||
buf[0]=0;
|
buf[0]=0;
|
||||||
|
|
||||||
/* Print a sample of the FFT from the freq estimator */
|
/* Current magnitude spectrum Sf[] from freq estimator */
|
||||||
|
|
||||||
snprintf(buf1, BUF_SZ, "{"); strncat(buf, buf1, BUF_SZ);
|
snprintf(buf1, BUF_SZ, "{"); strncat(buf, buf1, BUF_SZ);
|
||||||
snprintf(buf1, BUF_SZ, "\"Sf\":["); strncat(buf, buf1, BUF_SZ);
|
snprintf(buf1, BUF_SZ, "\"Sf\":["); strncat(buf, buf1, BUF_SZ);
|
||||||
|
|
||||||
Ndft = fsk->Ndft;
|
Ndft = fsk->Ndft;
|
||||||
for(i=0; i<Ndft; i++) {
|
for(i=0; i<Ndft; i++) {
|
||||||
snprintf(buf1, BUF_SZ, "%f ",(fsk->Sf)[i]); strncat(buf, buf1, BUF_SZ);
|
snprintf(buf1, BUF_SZ, "%f",(fsk->Sf)[i]); strncat(buf, buf1, BUF_SZ);
|
||||||
if(i<Ndft-1) { snprintf(buf1, BUF_SZ, ","); strncat(buf, buf1, BUF_SZ); }
|
if(i<Ndft-1) { snprintf(buf1, BUF_SZ, ", "); strncat(buf, buf1, BUF_SZ); }
|
||||||
}
|
}
|
||||||
snprintf(buf1, BUF_SZ, "]"); strncat(buf, buf1, BUF_SZ);
|
snprintf(buf1, BUF_SZ, "]"); strncat(buf, buf1, BUF_SZ);
|
||||||
/* TODO: tone freq ests, SNRest, maybe buffer sample clock offsets and send as an array */
|
|
||||||
|
/* FSK tone freq estimates */
|
||||||
|
|
||||||
|
if (fsk->freq_est_type)
|
||||||
|
f_est = fsk->f2_est;
|
||||||
|
else
|
||||||
|
f_est = fsk->f_est;
|
||||||
|
snprintf(buf1, BUF_SZ, ", \"f_est\":["); strncat(buf, buf1, BUF_SZ);
|
||||||
|
for(m=0; m<fsk->mode; m++) {
|
||||||
|
snprintf(buf1, BUF_SZ, "%f", f_est[m]); strncat(buf, buf1, BUF_SZ);
|
||||||
|
if (m < (fsk->mode-1)) { snprintf(buf1, BUF_SZ, ", "); strncat(buf, buf1, BUF_SZ); }
|
||||||
|
}
|
||||||
|
snprintf(buf1, BUF_SZ, "]"); strncat(buf, buf1, BUF_SZ);
|
||||||
|
|
||||||
|
snprintf(buf1, BUF_SZ, ", \"SNRest\":[%f], \"Fs\":[%d]",
|
||||||
|
fsk->SNRest, fsk->Fs); strncat(buf, buf1, BUF_SZ);
|
||||||
|
|
||||||
|
/* finish up JSON and send to GUI */
|
||||||
snprintf(buf1, BUF_SZ, "}\n"); strncat(buf, buf1, BUF_SZ);
|
snprintf(buf1, BUF_SZ, "}\n"); strncat(buf, buf1, BUF_SZ);
|
||||||
udp_sendbuf(buf);
|
udp_sendbuf(buf);
|
||||||
fprintf(stderr, "Tick\n");
|
fprintf(stderr, "Tick\n");
|
||||||
|
|
Loading…
Reference in New Issue