Fixed dtmf waterfall painting. Added constant for dtmf spacing.
This commit is contained in:
parent
19e9428218
commit
3d590e93d5
@ -18,6 +18,14 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef TEST_FOX_WAVE_GEN_OFFSET
|
||||||
|
#if TEST_FOX_WAVE_GEN
|
||||||
|
#define TEST_FOX_WAVE_GEN_OFFSET 25
|
||||||
|
#else
|
||||||
|
#define TEST_FOX_WAVE_GEN_OFFSET 0
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
#include <cstdbool>
|
#include <cstdbool>
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
@ -2,6 +2,7 @@ subroutine foxfilt(nslots,nfreq,width,wave)
|
|||||||
|
|
||||||
parameter (NN=79,ND=58,KK=87,NSPS=4*1920)
|
parameter (NN=79,ND=58,KK=87,NSPS=4*1920)
|
||||||
parameter (NWAVE=NN*NSPS,NFFT=614400,NH=NFFT/2)
|
parameter (NWAVE=NN*NSPS,NFFT=614400,NH=NFFT/2)
|
||||||
|
parameter (OFFSET=25)
|
||||||
real wave(NWAVE)
|
real wave(NWAVE)
|
||||||
real x(NFFT)
|
real x(NFFT)
|
||||||
complex cx(0:NH)
|
complex cx(0:NH)
|
||||||
@ -12,7 +13,7 @@ subroutine foxfilt(nslots,nfreq,width,wave)
|
|||||||
call four2a(x,NFFT,1,-1,0) !r2c
|
call four2a(x,NFFT,1,-1,0) !r2c
|
||||||
df=48000.0/NFFT
|
df=48000.0/NFFT
|
||||||
fa=nfreq - 0.5*6.25
|
fa=nfreq - 0.5*6.25
|
||||||
fb=nfreq + 7.5*6.25 + (nslots-1)*60.0
|
fb=nfreq + 7.5*6.25 + (nslots-1)*(width+OFFSET)
|
||||||
ia2=nint(fa/df)
|
ia2=nint(fa/df)
|
||||||
ib1=nint(fb/df)
|
ib1=nint(fb/df)
|
||||||
ia1=nint(ia2-width/df)
|
ia1=nint(ia2-width/df)
|
||||||
|
@ -17,6 +17,7 @@ subroutine foxgen()
|
|||||||
use crc
|
use crc
|
||||||
parameter (NN=79,ND=58,KK=87,NSPS=4*1920)
|
parameter (NN=79,ND=58,KK=87,NSPS=4*1920)
|
||||||
parameter (NWAVE=NN*NSPS,NFFT=614400,NH=NFFT/2)
|
parameter (NWAVE=NN*NSPS,NFFT=614400,NH=NFFT/2)
|
||||||
|
parameter (OFFSET=25)
|
||||||
character*40 cmsg
|
character*40 cmsg
|
||||||
character*22 msg,msgsent
|
character*22 msg,msgsent
|
||||||
character*6 mygrid
|
character*6 mygrid
|
||||||
@ -36,8 +37,9 @@ subroutine foxgen()
|
|||||||
equivalence (x,cx),(y,cy)
|
equivalence (x,cx),(y,cy)
|
||||||
data icos7/4,2,5,6,1,3,0/ !Costas 7x7 tone pattern
|
data icos7/4,2,5,6,1,3,0/ !Costas 7x7 tone pattern
|
||||||
|
|
||||||
|
width=50.0
|
||||||
bcontest=.false.
|
bcontest=.false.
|
||||||
fstep=60.d0
|
fstep=width+OFFSET
|
||||||
dfreq=6.25d0
|
dfreq=6.25d0
|
||||||
dt=1.d0/48000.d0
|
dt=1.d0/48000.d0
|
||||||
twopi=8.d0*atan(1.d0)
|
twopi=8.d0*atan(1.d0)
|
||||||
@ -127,7 +129,6 @@ subroutine foxgen()
|
|||||||
|
|
||||||
! call plotspec(2,wave) !Plot the spectrum
|
! call plotspec(2,wave) !Plot the spectrum
|
||||||
|
|
||||||
width=50.0
|
|
||||||
call foxfilt(nslots,nfreq,width,wave)
|
call foxfilt(nslots,nfreq,width,wave)
|
||||||
peak3=maxval(abs(wave))
|
peak3=maxval(abs(wave))
|
||||||
wave=wave/peak3
|
wave=wave/peak3
|
||||||
|
32
plotter.cpp
32
plotter.cpp
@ -457,7 +457,7 @@ void CPlotter::DrawOverlay() //DrawOverlay()
|
|||||||
if(m_mode=="FT8"){
|
if(m_mode=="FT8"){
|
||||||
int fwidth=XfromFreq(m_rxFreq+bw)-XfromFreq(m_rxFreq);
|
int fwidth=XfromFreq(m_rxFreq+bw)-XfromFreq(m_rxFreq);
|
||||||
#if TEST_FOX_WAVE_GEN
|
#if TEST_FOX_WAVE_GEN
|
||||||
int offset=XfromFreq(m_rxFreq+bw+10)-XfromFreq(m_rxFreq+bw);
|
int offset=XfromFreq(m_rxFreq+bw+TEST_FOX_WAVE_GEN_OFFSET)-XfromFreq(m_rxFreq+bw) + 4; // + 4 for the line padding
|
||||||
#endif
|
#endif
|
||||||
QPainter overPainter(&m_DialOverlayPixmap);
|
QPainter overPainter(&m_DialOverlayPixmap);
|
||||||
overPainter.initFrom(this);
|
overPainter.initFrom(this);
|
||||||
@ -465,22 +465,26 @@ void CPlotter::DrawOverlay() //DrawOverlay()
|
|||||||
overPainter.fillRect(0, 0, m_Size.width(), m_h, Qt::transparent);
|
overPainter.fillRect(0, 0, m_Size.width(), m_h, Qt::transparent);
|
||||||
QPen thinRed(Qt::red, 1);
|
QPen thinRed(Qt::red, 1);
|
||||||
overPainter.setPen(thinRed);
|
overPainter.setPen(thinRed);
|
||||||
overPainter.drawLine(0, 30, 0, m_h);
|
overPainter.drawLine(0, 30, 0, m_h); // first slot, left line
|
||||||
overPainter.drawLine(fwidth+1, 30, fwidth+1, m_h);
|
overPainter.drawLine(fwidth + 1, 30, fwidth + 1, m_h); // first slot, right line
|
||||||
#if TEST_FOX_WAVE_GEN
|
#if TEST_FOX_WAVE_GEN
|
||||||
if(m_turbo){
|
if(m_turbo){
|
||||||
overPainter.drawLine(offset+fwidth+1, 30, offset+fwidth+1, m_h);
|
for(int i = 1; i < TEST_FOX_WAVE_GEN_SLOTS; i++){
|
||||||
overPainter.drawLine(offset+2*fwidth+1, 30, offset+2*fwidth+1, m_h);
|
overPainter.drawLine(i*(fwidth + offset), 30, i*(fwidth + offset), m_h); // n slot, left line
|
||||||
|
overPainter.drawLine(i*(fwidth + offset) + fwidth + 2, 30, i*(fwidth + offset) + fwidth + 2, m_h); // n slot, right line
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
overPainter.setPen(penRed);
|
overPainter.setPen(penRed);
|
||||||
overPainter.drawLine(0, 26, fwidth, 26);
|
overPainter.drawLine(0, 26, fwidth, 26); // first slot, top bar
|
||||||
overPainter.drawLine(0, 28, fwidth, 28);
|
overPainter.drawLine(0, 28, fwidth, 28); // first slot, top bar 2
|
||||||
#if TEST_FOX_WAVE_GEN
|
#if TEST_FOX_WAVE_GEN
|
||||||
if(m_turbo){
|
if(m_turbo){
|
||||||
overPainter.drawLine(offset+fwidth, 26, offset+2*fwidth, 26);
|
for(int i = 1; i < TEST_FOX_WAVE_GEN_SLOTS; i++){
|
||||||
overPainter.drawLine(offset+fwidth, 28, offset+2*fwidth, 28);
|
overPainter.drawLine(i*(fwidth + offset) + 1, 26, i*(fwidth + offset) + fwidth + 1, 26); // n slot, top bar
|
||||||
|
overPainter.drawLine(i*(fwidth + offset) + 1, 28, i*(fwidth + offset) + fwidth + 1, 28); // n slot, top bar 2
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -489,12 +493,14 @@ void CPlotter::DrawOverlay() //DrawOverlay()
|
|||||||
hoverPainter.setCompositionMode(QPainter::CompositionMode_Source);
|
hoverPainter.setCompositionMode(QPainter::CompositionMode_Source);
|
||||||
hoverPainter.fillRect(0, 0, m_Size.width(), m_h, Qt::transparent);
|
hoverPainter.fillRect(0, 0, m_Size.width(), m_h, Qt::transparent);
|
||||||
hoverPainter.setPen(QPen(Qt::white));
|
hoverPainter.setPen(QPen(Qt::white));
|
||||||
hoverPainter.drawLine(0, 30, 0, m_h);
|
hoverPainter.drawLine(0, 30, 0, m_h); // first slot, left line hover
|
||||||
hoverPainter.drawLine(fwidth+1, 30, fwidth+1, m_h);
|
hoverPainter.drawLine(fwidth, 30, fwidth, m_h); // first slot, right line hover
|
||||||
#if TEST_FOX_WAVE_GEN
|
#if TEST_FOX_WAVE_GEN
|
||||||
if(m_turbo){
|
if(m_turbo){
|
||||||
hoverPainter.drawLine(offset+fwidth+1, 30, offset+fwidth+1, m_h);
|
for(int i = 1; i < TEST_FOX_WAVE_GEN_SLOTS; i++){
|
||||||
hoverPainter.drawLine(offset+2*fwidth+1, 30, offset+2*fwidth+1, m_h);
|
hoverPainter.drawLine(i*(fwidth + offset), 30, i*(fwidth + offset), m_h); // n slot, left line
|
||||||
|
hoverPainter.drawLine(i*(fwidth + offset) + fwidth + 2, 30, i*(fwidth + offset) + fwidth + 2, m_h); // n slot, right line
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user