[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [linrad] Mirroring of Waterfall



Hello Sigurd,

> I have made some progress in that I can send data from the user 
> routine to a
> UDP socket, but so far I am getting only zeros when I attempt to 
> QSY.  Could
> you look at my program and see if there is anything obvious that 
> I have done
> wrong?  I took the following statement right out of w3sz code, but it
> returns only zeros.
> 
> "freq=(mix1_fq_mid[fftx_nx]);"
> 
> Do I have to do something to make the freq variable visiable to the user
> code?

There are several frequency variables.

If you want to use the frequency control window, then you should
retrieve the frequency from the variable fg.passband_center and 
place code in set_hardware_rx_frequency() to send the data to your 
radio with the appropriate offset. Use the variable rx_mode
(modes in globdef.h, MODE_WCW, MODE_SSB,....) to decide what offset 
to use.

If you want to read the frequency from the radio and place the data
on the Linrad screen, use this (Linrad-01.16, user.c):

void control_hware(void)
{
// This routine is responsible to set
// int hware_flag=0 when it does not want to be called any more.
// If you use this routine to read data from your hardware
// to update fg.passband_center or fg.passband_direction,
// call show_center_frequency() to make Linrad update the frequency scales
// on the screen.  
}

The variable mix1_fq_mid[fftx_nx] is the frequency latest found 
by the AFC routine while tracking a signal. It will follow the 
signal as it drifts in frequency. This is the frequency to send 
to your transmitter if you have a wideband receiver such as the 
WSE converters. You would then use the frequency control window 
to set the center frequency of the wide waterfall.

With a few seconds of afc delay you can catch a station that 
sends only his own call once even if it was 10 kHz away. If 
interested you can respond immediately at the frequency he used.
The delay he will experience is the delay you selected for the AFC
and if you can react fast with your mouse, 3 seconds will be enough.
This should be extremely efficient in contesting because you can 
catch new stations entering the contest before anyone else noticed 
he is present so you can work before a pileup is created.  

You may use the frequency found in mix1_selfreq[0]. This is the 
frequency you actually clicked at and it is available even if the 
AFC is disabled.

The frequencies you get are the frequencies within the waterfall, 
it is from 0 to fsamp or 0 to fsamp/2 depending on the soundcard 
configuration. The frequency 0 is at the left side or at the right 
side of the waterfall depending on fg.passband_direction.

To convert to the correct RF frequency, use the below (from afc_graph):

// Get center frequency and put on screen
hwfreq=0.001*mix1_fq_mid[fftx_nx]+100*frequency_scale_offset;
sprintf(s,"%.4f kHz",hwfreq);

To set frequency scale offset, call show_center_frequency()
(which you should do anyway to have the scales on screen)

73

Leif  /  SM5BSZ


LINRADDARNIL