112 lines
4.0 KiB
Python
112 lines
4.0 KiB
Python
########################################################################
|
|
# Pi-HFIQ widgets module for Quisk.
|
|
#
|
|
# Original 'funcube_widget.py' for RS-HFIQ hardware by _____.
|
|
#
|
|
# Adapted into the "Pi-HFIQ" configuration by Rob French, KC4UPR.
|
|
#
|
|
# This file provides custom widgets for display in the Quisk window when
|
|
# used with an RS-HFIQ. This was specifically defined for the "Pi-HFIQ"
|
|
# in which a Raspberry Pi is used with the RS-HFIQ, and Quisk has been
|
|
# modified with the GPIO Keyer patch.
|
|
#
|
|
# TODO as of 2020-04-21:
|
|
# (1) Make keyer parameter(s) (mode, speed) saved to a config file auto-
|
|
# matically on exit.
|
|
# (2) Convert the horizontal sliders to popup sliders. This is mainly
|
|
# to fix the goofy cell sizing I get with the GridBagSizer.
|
|
#
|
|
########################################################################
|
|
|
|
from __future__ import print_function
|
|
import math
|
|
import wx
|
|
|
|
from quisk_widgets import *
|
|
|
|
import _quisk as QS
|
|
|
|
class BottomWidgets: # Add extra widgets to the bottom of the screen
|
|
def __init__(self, app, hardware, conf, frame, gbs, vertBox):
|
|
self.config = conf
|
|
self.hardware = hardware
|
|
self.application = app
|
|
self.start_row = app.widget_row # The first available row
|
|
self.start_col = app.button_start_col # The start of the button columns
|
|
|
|
self.num_rows_added = 1
|
|
start_row = self.start_row
|
|
|
|
bt = app.QuiskCycleCheckbutton(frame, self.OnKeyerMode, hardware.keyer_mode_list)
|
|
b = WrapSlider(bt, self.OnKeyerWPM, slider_value=self.hardware.keyer_wpm, slider_min=1, slider_max=60, display=True)
|
|
bw, bh = b.GetMinSize()
|
|
bt.SetIndex(self.hardware.keyer_mode)
|
|
gbs.Add(b, (start_row, self.start_col), (1, 2), flag=wx.EXPAND)
|
|
|
|
#b = app.SliderBoxHH(frame, '%d wpm', 15, 1, 60, self.OnKeyerWPM, True)
|
|
#b.SetValue(self.hardware.keyer_wpm)
|
|
#gbs.Add(b, (start_row, self.start_col+2), (1, 3), flag=wx.EXPAND)
|
|
|
|
b = app.SliderBoxHH(frame, 'Output: %d%%', conf.mic_out_volume, 0, 100, self.OnOutputLevel, True)
|
|
b.SetValue(70)
|
|
gbs.Add(b, (start_row, self.start_col+2), (1, 3), flag=wx.EXPAND)
|
|
|
|
self.status_text = app.QuiskText(frame, 'Rig: 100C, CPU: 100C, Proc: 100%, Mem: 100%', bh, wx.ALIGN_CENTER, True)
|
|
gbs.Add(self.status_text, (start_row, self.start_col+5), (1, 4), flag=wx.EXPAND)
|
|
|
|
def OnKeyerMode(self, event):
|
|
index = event.GetEventObject().index
|
|
self.hardware.SetKeyerMode(index)
|
|
|
|
def OnKeyerWPM(self, event):
|
|
btn = event.GetEventObject()
|
|
value = btn.slider_value
|
|
print('Keyer WPM: ', value)
|
|
self.hardware.SetKeyerWPM(value)
|
|
|
|
def OnOutputLevel(self, event):
|
|
btn = event.GetEventObject()
|
|
value = btn.GetValue()
|
|
print('Output Level: ', value)
|
|
QS.set_mic_out_volume(value)
|
|
|
|
def UpdateText(self, text):
|
|
self.status_text.SetLabel(text)
|
|
|
|
# lna = app.QuiskCheckbutton(frame, self.OnLNA, 'LNA')
|
|
# lna.SetValue( self.hardware.lna )
|
|
# gbs.Add(lna, (start_row, self.start_col), (1, 2), flag=wx.EXPAND)
|
|
|
|
# mixer = app.QuiskCheckbutton(frame, self.OnMixer, 'Mixer gain')
|
|
# mixer.SetValue( self.hardware.mixer )
|
|
# gbs.Add(mixer, (start_row, self.start_col+2), (1, 2), flag=wx.EXPAND)
|
|
|
|
# gain = app.SliderBoxHH(frame, 'If gain %d dB', 0, 0, 59, self.OnIF, True)
|
|
# gain.SetValue(self.hardware.ifgain)
|
|
# gbs.Add(gain,(start_row, self.start_col+4),(1,4), flag=wx.EXPAND)
|
|
|
|
# def OnLNA(self, event):
|
|
# btn = event.GetEventObject()
|
|
# if btn.GetValue() :
|
|
# value = 1
|
|
# else :
|
|
# value = 0
|
|
# print('LNA: ',value)
|
|
# self.hardware.SetLNA(value)
|
|
|
|
# def OnMixer(self, event):
|
|
# btn = event.GetEventObject()
|
|
# if btn.GetValue() :
|
|
# value = 1
|
|
# else :
|
|
# value = 0
|
|
# print('Mixer: ',value)
|
|
# self.hardware.SetMixer(value)
|
|
|
|
# def OnIF(self,event) :
|
|
# btn = event.GetEventObject()
|
|
# value = btn.GetValue()
|
|
# print('IF: ', value )
|
|
# self.hardware.SetIfGain(value)
|
|
|