diff --git a/src/rtl_fsk.c b/src/rtl_fsk.c index 4faf780..184f2a9 100644 --- a/src/rtl_fsk.c +++ b/src/rtl_fsk.c @@ -159,25 +159,45 @@ static void rtlsdr_callback(unsigned char *buf, uint32_t len, void *ctx) if (udp_debug) { sample_counter += fsk_nin(fsk); 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 */ + char buf[BUF_SZ]; + char buf1[BUF_SZ]; + size_t Ndft; + float *f_est; + int m; + sample_counter -= samp_rate; 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, "\"Sf\":["); strncat(buf, buf1, BUF_SZ); Ndft = fsk->Ndft; for(i=0; iSf)[i]); strncat(buf, buf1, BUF_SZ); - if(iSf)[i]); strncat(buf, buf1, BUF_SZ); + if(ifreq_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; mmode; 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); udp_sendbuf(buf); fprintf(stderr, "Tick\n");