Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7121dacbbd |
@@ -1,3 +1,9 @@
|
|||||||
|
Quisk Version 4.2.46 October 2025
|
||||||
|
==================================
|
||||||
|
I fixed a bug in Hamlib rig 2 which happens with the new Pure Signal code. The Hamlib "f" command
|
||||||
|
now always returns the main receiver frequency, not one of the added receiver frequencies. This is
|
||||||
|
consistent with the Flex ZZ commands.
|
||||||
|
|
||||||
Quisk Version 4.2.45 October 2025
|
Quisk Version 4.2.45 October 2025
|
||||||
==================================
|
==================================
|
||||||
The new FreeDV including RADE mode is now a built-in mode of Quisk. Just press "FDV" to talk FreeDV.
|
The new FreeDV including RADE mode is now a built-in mode of Quisk. Just press "FDV" to talk FreeDV.
|
||||||
|
|||||||
+1
-1
@@ -1,2 +1,2 @@
|
|||||||
#Quisk version 4.2.45
|
#Quisk version 4.2.46
|
||||||
from .quisk import main
|
from .quisk import main
|
||||||
|
|||||||
@@ -1,8 +1,5 @@
|
|||||||
# This is the hardware control file for my shack.
|
# This is the hardware control file for my shack.
|
||||||
# It is for the Hermes-Lite2 5 watt output which uses only the antenna tuner.
|
# It is for the Hermes-Lite2 RF1 output and Alt Rx input.
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
|
|
||||||
from hermes.quisk_hardware import Hardware as BaseHw
|
from hermes.quisk_hardware import Hardware as BaseHw
|
||||||
from n2adr import station_hardware
|
from n2adr import station_hardware
|
||||||
@@ -17,7 +14,7 @@ class Hardware(BaseHw):
|
|||||||
self.controlbox = station_hardware.ControlBox(app, conf) # Control my Station Control Box
|
self.controlbox = station_hardware.ControlBox(app, conf) # Control my Station Control Box
|
||||||
self.v2filter = station_hardware.FilterBoxV2(app, conf) # Control V2 filter box
|
self.v2filter = station_hardware.FilterBoxV2(app, conf) # Control V2 filter box
|
||||||
def open(self):
|
def open(self):
|
||||||
if False:
|
if False: # Start the station control GUI
|
||||||
from n2adr.station_hardware import StationControlGUI
|
from n2adr.station_hardware import StationControlGUI
|
||||||
self.GUI = StationControlGUI(self.application.main_frame, self, self.application, self.conf)
|
self.GUI = StationControlGUI(self.application.main_frame, self, self.application, self.conf)
|
||||||
self.GUI.Show()
|
self.GUI.Show()
|
||||||
@@ -42,8 +39,6 @@ class Hardware(BaseHw):
|
|||||||
# band is a string: "60", "40", "WWV", etc.
|
# band is a string: "60", "40", "WWV", etc.
|
||||||
ret = BaseHw.ChangeBand(self, band)
|
ret = BaseHw.ChangeBand(self, band)
|
||||||
self.anttuner.ChangeBand(band)
|
self.anttuner.ChangeBand(band)
|
||||||
#self.lpfilter.ChangeBand(band)
|
|
||||||
#self.hpfilter.ChangeBand(band)
|
|
||||||
self.v2filter.ChangeBand(band)
|
self.v2filter.ChangeBand(band)
|
||||||
self.CorrectSmeter()
|
self.CorrectSmeter()
|
||||||
return ret
|
return ret
|
||||||
|
|||||||
+4
-50
@@ -1,56 +1,10 @@
|
|||||||
# Please do not change this widgets module for Quisk. Instead copy
|
|
||||||
# it to your own quisk_widgets.py and make changes there.
|
|
||||||
#
|
|
||||||
# This module is used to add extra widgets to the QUISK screen.
|
# This module is used to add extra widgets to the QUISK screen.
|
||||||
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
|
|
||||||
import wx, time
|
import wx, time
|
||||||
import _quisk as QS
|
import _quisk as QS
|
||||||
|
|
||||||
class BottomWidgets: # Add extra widgets to the bottom of the screen
|
from hermes.quisk_widgets import BottomWidgets as BaseWidgets
|
||||||
|
|
||||||
|
class BottomWidgets(BaseWidgets): # Add extra widgets to the bottom of the screen
|
||||||
def __init__(self, app, hardware, conf, frame, gbs, vertBox):
|
def __init__(self, app, hardware, conf, frame, gbs, vertBox):
|
||||||
#self.config = conf
|
BaseWidgets.__init__(self, app, hardware, conf, frame, gbs, vertBox)
|
||||||
#self.hardware = hardware
|
|
||||||
#self.application = app
|
|
||||||
#start_row = app.widget_row # The first available row
|
|
||||||
#start_col = app.button_start_col # The start of the button columns
|
|
||||||
#b = app.QuiskCycleCheckbutton(frame, self.OnAntTuner, ('Antenna', 'Ant 0', 'Ant 1'))
|
|
||||||
#bw, bh = b.GetMinSize()
|
|
||||||
#gbs.Add(b, (start_row, start_col), (1, 2), flag=wx.EXPAND)
|
|
||||||
#b = app.QuiskPushbutton(frame, self.OnAntTuner, 'L+')
|
|
||||||
#b.Enable(0)
|
|
||||||
#gbs.Add(b, (start_row, start_col + 2), (1, 2), flag=wx.EXPAND)
|
|
||||||
#b = app.QuiskPushbutton(frame, self.OnAntTuner, 'L-')
|
|
||||||
#b.Enable(0)
|
|
||||||
#gbs.Add(b, (start_row, start_col + 4), (1, 2), flag=wx.EXPAND)
|
|
||||||
#b = app.QuiskPushbutton(frame, self.OnAntTuner, 'C+')
|
|
||||||
#b.Enable(0)
|
|
||||||
#gbs.Add(b, (start_row, start_col + 6), (1, 2), flag=wx.EXPAND)
|
|
||||||
#b = app.QuiskPushbutton(frame, self.OnAntTuner, 'C-')
|
|
||||||
#b.Enable(0)
|
|
||||||
#gbs.Add(b, (start_row, start_col + 8), (1, 2), flag=wx.EXPAND)
|
|
||||||
#b = app.QuiskPushbutton(frame, self.OnAntTuner, 'Save')
|
|
||||||
#b.Enable(0)
|
|
||||||
#gbs.Add(b, (start_row, start_col + 10), (1, 2), flag=wx.EXPAND)
|
|
||||||
#self.swr_label = app.QuiskText(frame, 'Watts 000 SWR 10.1 Zh Ind 22 Cap 33 Freq 28100 (7777)', bh)
|
|
||||||
#gbs.Add(self.swr_label, (start_row, start_col + 2), (1, 10), flag=wx.EXPAND)
|
|
||||||
#b = app.QuiskCheckbutton(frame, None, text='')
|
|
||||||
#gbs.Add(b, (start_row, start_col + 25), (1, 2), flag=wx.EXPAND)
|
|
||||||
# Example of a horizontal slider:
|
|
||||||
# lab = wx.StaticText(frame, -1, 'Preamp', style=wx.ALIGN_CENTER)
|
|
||||||
# gbs.Add(lab, (5,0), flag=wx.EXPAND)
|
|
||||||
# sl = wx.Slider(frame, -1, 1024, 0, 2048) # parent, -1, initial, min, max
|
|
||||||
# gbs.Add(sl, (5,1), (1, 5), flag=wx.EXPAND)
|
|
||||||
# sl.Bind(wx.EVT_SCROLL, self.OnPreamp)
|
|
||||||
# def OnPreamp(self, event):
|
|
||||||
# print event.GetPosition()
|
|
||||||
self.num_rows_added = 0
|
|
||||||
#def OnAntTuner(self, event):
|
|
||||||
# btn = event.GetEventObject()
|
|
||||||
# text = btn.GetLabel()
|
|
||||||
# self.hardware.OnAntTuner(text)
|
|
||||||
#def UpdateText(self, text):
|
|
||||||
# self.swr_label.SetLabel(text)
|
|
||||||
|
|||||||
@@ -410,7 +410,7 @@ class AntennaTuner: # Control my homebrew antenna tuner and my KI8BV dipole
|
|||||||
self.set_C = 0
|
self.set_C = 0
|
||||||
self.set_HighZ = 0
|
self.set_HighZ = 0
|
||||||
self.antnum = 0 # Antenna number 0 or 1
|
self.antnum = 0 # Antenna number 0 or 1
|
||||||
self.dipole2 = AntennaControl(app, conf) # Control the KI8BV dipole
|
self.dipole2 = None #AntennaControl(app, conf) # Control the KI8BV dipole
|
||||||
if False and conf.use_rx_udp == 10: # Hermes UDP protocol for Hermes-Lite2
|
if False and conf.use_rx_udp == 10: # Hermes UDP protocol for Hermes-Lite2
|
||||||
path = 'TunerLCZ_HL2.txt'
|
path = 'TunerLCZ_HL2.txt'
|
||||||
else:
|
else:
|
||||||
@@ -484,10 +484,10 @@ class AntennaTuner: # Control my homebrew antenna tuner and my KI8BV dipole
|
|||||||
if tx_freq < 17000000:
|
if tx_freq < 17000000:
|
||||||
if DEBUG and self.antnum == 1: print ("antnum 0")
|
if DEBUG and self.antnum == 1: print ("antnum 0")
|
||||||
self.antnum = 0
|
self.antnum = 0
|
||||||
else:
|
elif self.dipole2:
|
||||||
if DEBUG and self.antnum == 0: print ("antnum 1")
|
if DEBUG and self.antnum == 0: print ("antnum 1")
|
||||||
self.antnum = 1
|
self.antnum = 1
|
||||||
if self.antnum == 1:
|
if self.antnum == 1 and self.dipole2:
|
||||||
self.dipole2.SetTxFreq(tx_freq)
|
self.dipole2.SetTxFreq(tx_freq)
|
||||||
if not self.socket:
|
if not self.socket:
|
||||||
return
|
return
|
||||||
@@ -521,7 +521,8 @@ class AntennaTuner: # Control my homebrew antenna tuner and my KI8BV dipole
|
|||||||
self.timer = 0
|
self.timer = 0
|
||||||
else:
|
else:
|
||||||
self.timer = 0
|
self.timer = 0
|
||||||
self.dipole2.HeartBeat()
|
if self.dipole2:
|
||||||
|
self.dipole2.HeartBeat()
|
||||||
def Send(self):
|
def Send(self):
|
||||||
try:
|
try:
|
||||||
self.socket.send(self.want_data)
|
self.socket.send(self.want_data)
|
||||||
@@ -657,9 +658,9 @@ class StationControlGUI(wx.Frame): # Display a stand-alone control window for
|
|||||||
fff, anttuner.set_L, anttuner.set_C, anttuner.set_HighZ = tup
|
fff, anttuner.set_L, anttuner.set_C, anttuner.set_HighZ = tup
|
||||||
if tx_freq < 17000000:
|
if tx_freq < 17000000:
|
||||||
anttuner.antnum = 0
|
anttuner.antnum = 0
|
||||||
else:
|
elif anttuner.dipole2:
|
||||||
anttuner.antnum = 1
|
anttuner.antnum = 1
|
||||||
if anttuner.antnum == 1:
|
if anttuner.antnum == 1 and anttuner.dipole2:
|
||||||
anttuner.dipole2.SetTxFreq(tx_freq)
|
anttuner.dipole2.SetTxFreq(tx_freq)
|
||||||
anttuner.WantData()
|
anttuner.WantData()
|
||||||
def FindIndexTup(self, tx_freq):
|
def FindIndexTup(self, tx_freq):
|
||||||
|
|||||||
@@ -995,17 +995,12 @@ class HamlibHandlerRig2: # Test with telnet localhost 4532
|
|||||||
else:
|
else:
|
||||||
self.Send('0\n')
|
self.Send('0\n')
|
||||||
def GetFreq(self): # The Rx frequency
|
def GetFreq(self): # The Rx frequency
|
||||||
rx = self.app.multi_rx_screen.receiver_list
|
# This is always the main Rx frequency without reference to added receivers.
|
||||||
if rx:
|
self.Reply('Frequency', self.app.rxFreq + self.app.VFO, 0)
|
||||||
rx = rx[0]
|
if HAMLIB_DEBUG:
|
||||||
self.Reply('Frequency', rx.txFreq + rx.VFO, 0)
|
print ("GetFreq app", self.app.rxFreq, self.app.txFreq, self.app.VFO)
|
||||||
if HAMLIB_DEBUG:
|
|
||||||
print ("GetFreq rx", rx.txFreq, rx.VFO)
|
|
||||||
else:
|
|
||||||
self.Reply('Frequency', self.app.rxFreq + self.app.VFO, 0)
|
|
||||||
if HAMLIB_DEBUG:
|
|
||||||
print ("GetFreq app", self.app.rxFreq, self.app.txFreq, self.app.VFO)
|
|
||||||
def SetFreq(self): # The Rx frequency
|
def SetFreq(self): # The Rx frequency
|
||||||
|
# This is always the main Rx frequency without reference to added receivers.
|
||||||
freq = self.GetParamNumber()
|
freq = self.GetParamNumber()
|
||||||
try:
|
try:
|
||||||
freq = float(freq)
|
freq = float(freq)
|
||||||
@@ -1014,12 +1009,7 @@ class HamlibHandlerRig2: # Test with telnet localhost 4532
|
|||||||
self.ErrParam()
|
self.ErrParam()
|
||||||
else:
|
else:
|
||||||
freq = int(freq + 0.5)
|
freq = int(freq + 0.5)
|
||||||
# For multiple receivers this controls the first added receiver frequency; else it controls split Rx/Tx frequency.
|
self.app.ChangeRxTxFrequency(freq, None)
|
||||||
rx = self.app.multi_rx_screen.receiver_list
|
|
||||||
if rx:
|
|
||||||
rx[0].ChangeRxTxFrequency(freq)
|
|
||||||
else:
|
|
||||||
self.app.ChangeRxTxFrequency(freq, None)
|
|
||||||
def GetSplitFreq(self): # The Tx Frequency
|
def GetSplitFreq(self): # The Tx Frequency
|
||||||
self.Reply('TX Frequency', self.app.txFreq + self.app.VFO, 0)
|
self.Reply('TX Frequency', self.app.txFreq + self.app.VFO, 0)
|
||||||
def SetSplitFreq(self): # The Tx Frequency
|
def SetSplitFreq(self): # The Tx Frequency
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import os
|
|||||||
# You must define the version here. A title string including
|
# You must define the version here. A title string including
|
||||||
# the version will be written to __init__.py and read by quisk.py.
|
# the version will be written to __init__.py and read by quisk.py.
|
||||||
|
|
||||||
Version = '4.2.45'
|
Version = '4.2.46'
|
||||||
|
|
||||||
fp = open("__init__.py", "w") # write title string
|
fp = open("__init__.py", "w") # write title string
|
||||||
fp.write("#Quisk version %s\n" % Version)
|
fp.write("#Quisk version %s\n" % Version)
|
||||||
|
|||||||
Reference in New Issue
Block a user