[WT-support] Little help with LUA-stuff
Bob Wilson, N6TV
n6tv at arrl.net
Mon Sep 13 21:02:16 CEST 2010
On Mon, Sep 13, 2010 at 6:50 AM, Laurent HAAS - F6FVY <f6fvy at free.fr> wrote:
> > 2) How can I set the rounding for the freqs?
>
>
> http://www.lua.org/manual/5.1/manual.html
>
>
>
Unfortunately Laurent assumes everyone is computer programmer. :-)
Fortunately I can help. The attached script, repeated below, will send a
PSE QSY message to the nearest half kHz. Please test.
-- FreqS - Send a "PSE QSY" message to the frequency of the secondary radio
-- rounding to nearest half kHz
--
-- Assign to F8, F9, F10, or F12 or user choice
--
-- Time-stamp: "13 September 2010 18:56 UTC"
--
-- Written by N6TV
local QSYmsg = "PSE QSY"
local QSYfreq = ""
-- Get the VFOA frequency of the secondary radio
local freqS = wtRadioSecondary:GetFreq()
-- If frequency obtained OK
if freqS ~= nil and freqS ~= 0 then
-- Split the frequency into the whole kHz and the fractional kHz
local freqInt, freqFrac = math.modf(freqS)
-- If fractional kHz is below 0.250 kHz
if freqFrac <= 0.25 then
-- Round DOWN to nearest kHz
QSYfreq = math.floor(freqS)
-- Else if fractional kHz is above 0.750 kHz
elseif freqFrac >= 0.75 then
-- Round UP to nearest kHz
QSYfreq = math.ceil(freqS)
-- Else round to nearest half kHz
else
QSYfreq = math.floor(freqS) .. "R5"
end
end
QSYmsg = QSYmsg .. " --" .. QSYfreq .. "++ ?"
-- Play the PSE QSY message
wtKeyer:Play(QSYmsg)
-- No further keystroke processing
return -1
Or if you don't want any rounding:
-- FreqSnr - Send a "PSE QSY" message to the frequency of the secondary
radio,
-- like the FREQnn messages, with no rounding.
--
-- Assign to F8, F9, F10, or F12 or user choice
--
-- Time-stamp: "13 September 2010 18:54 UTC"
--
-- Written by N6TV
local QSYmsg = "PSE QSY"
local QSYfreq = ""
local freqFrac = ""
-- Get the VFOA frequency of the secondary radio
local freqS = wtRadioSecondary:GetFreq()
-- If frequency obtained OK
if freqS ~= nil and freqS ~= 0 then
-- Split the frequency into the whole kHz and the fractional kHz
QSYfreq, freqFrac = math.modf(freqS)
-- If fractional kHz is to be sent
if freqFrac >= 0.1 and freqFrac <= 0.9 then
-- Play fractional kHz after "R"
QSYfreq = QSYfreq .. "R" .. math.floor(freqFrac * 10)
end
end
QSYmsg = QSYmsg .. " --" .. QSYfreq .. "++ ?"
-- Play the PSE QSY message
wtKeyer:Play(QSYmsg)
-- No further keystroke processing
return -1
Unfortunately I cannot enhance either one to work with networked computers
at a multi-multi until new LUA APIs are provided to obtain the values of the
$FREQnn variables, or obtain the frequencies of networked radios, by band.
73,
Bob, N6TV
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.f5mzn.org/pipermail/support/attachments/20100913/194ef7b9/attachment-0001.htm
-------------- next part --------------
A non-text attachment was scrubbed...
Name: FreqS.wts
Type: application/octet-stream
Size: 1133 bytes
Desc: not available
Url : http://www.f5mzn.org/pipermail/support/attachments/20100913/194ef7b9/attachment-0002.obj
-------------- next part --------------
A non-text attachment was scrubbed...
Name: FreqSnr.wts
Type: application/octet-stream
Size: 960 bytes
Desc: not available
Url : http://www.f5mzn.org/pipermail/support/attachments/20100913/194ef7b9/attachment-0003.obj
More information about the Support
mailing list