PyFT8 2.1.1__tar.gz → 2.1.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pyft8-2.1.1 → pyft8-2.1.2}/PKG-INFO +1 -1
- {pyft8-2.1.1 → pyft8-2.1.2}/PyFT8/gui.py +8 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/PyFT8/pyft8.py +7 -3
- {pyft8-2.1.1 → pyft8-2.1.2}/PyFT8.egg-info/PKG-INFO +1 -1
- {pyft8-2.1.1 → pyft8-2.1.2}/pyproject.toml +1 -1
- {pyft8-2.1.1 → pyft8-2.1.2}/LICENSE +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/MANIFEST.in +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/PyFT8/__init__.py +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/PyFT8/receiver.py +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/PyFT8/rigctrl.py +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/PyFT8/time_utils.py +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/PyFT8/transmitter.py +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/PyFT8.egg-info/SOURCES.txt +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/PyFT8.egg-info/dependency_links.txt +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/PyFT8.egg-info/entry_points.txt +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/PyFT8.egg-info/requires.txt +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/PyFT8.egg-info/top_level.txt +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/README.md +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/setup.cfg +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_01.wav +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_02.wav +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_03.wav +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_04.wav +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_05.wav +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_06.wav +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_07.wav +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_08.wav +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_09.wav +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_10.wav +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_11.wav +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_12.wav +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_13.wav +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_14.wav +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_15.wav +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_16.wav +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_17.wav +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_18.wav +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_19.wav +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_20.wav +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_21.wav +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_22.wav +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_23.wav +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_24.wav +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_25.wav +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_26.wav +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_27.wav +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_28.wav +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_29.wav +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_30.wav +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_31.wav +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_32.wav +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_33.wav +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_34.wav +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_35.wav +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_36.wav +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_37.wav +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_38.wav +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/tests/dev/test_generate_wav.py +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/tests/dev/test_loopback_performance.py +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/tests/plot_baseline.py +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/tests/spare.py +0 -0
- {pyft8-2.1.1 → pyft8-2.1.2}/tests/test_batch_and_live.py +0 -0
|
@@ -49,8 +49,16 @@ class Gui:
|
|
|
49
49
|
self.hps, self.bpt = hps, bpt
|
|
50
50
|
self.msg_boxes = {}
|
|
51
51
|
self.decode_queue = queue.Queue()
|
|
52
|
+
self.simple_message_art = None
|
|
52
53
|
self.make_layout(config)
|
|
53
54
|
|
|
55
|
+
def simple_message(self, text, color):
|
|
56
|
+
if self.simple_message_art:
|
|
57
|
+
self.simple_message_art.remove()
|
|
58
|
+
self.simple_message_art = self.fig.text(0.2,0.985, text, color = color)
|
|
59
|
+
self.fig.canvas.draw()
|
|
60
|
+
self.fig.canvas.flush_events()
|
|
61
|
+
|
|
54
62
|
def make_layout(self, config):
|
|
55
63
|
self.fig, self.ax_wf = plt.subplots(figsize=(10,10), frameon = False)
|
|
56
64
|
self.fig.canvas.manager.set_window_title('PyFT8 by G1OJS')
|
|
@@ -38,7 +38,7 @@ def get_config():
|
|
|
38
38
|
class FT8_QSO:
|
|
39
39
|
def __init__(self):
|
|
40
40
|
self.mStation = {'c':config['station']['call'], 'g':config['station']['grid']}
|
|
41
|
-
self.band_info = {'b':
|
|
41
|
+
self.band_info = {'b':None, 'f':0}
|
|
42
42
|
self.start()
|
|
43
43
|
|
|
44
44
|
def start(self):
|
|
@@ -126,6 +126,9 @@ def transmit(msg): # move to transmitter.py?
|
|
|
126
126
|
return
|
|
127
127
|
if msg is None:
|
|
128
128
|
return
|
|
129
|
+
if qso.band_info['b'] is None:
|
|
130
|
+
gui.simple_message("Please select a band", 'red')
|
|
131
|
+
return
|
|
129
132
|
print(f"Transmit {msg}")
|
|
130
133
|
symbols = audio_out.create_ft8_symbols(msg)
|
|
131
134
|
curr_cycle, curr_cycle_time = global_time_utils.curr_cycle_from_time()
|
|
@@ -180,6 +183,7 @@ def on_control_click(btn_widg):
|
|
|
180
183
|
if('m' in btn_text):
|
|
181
184
|
qso.band_info = {'b':btn_text, 'f':btn_data}
|
|
182
185
|
rig.PyFT8_set_freq_Hz(int(1000000*float(qso.band_info['f'])))
|
|
186
|
+
gui.simple_message(f"{qso.band_info['b']} {qso.band_info['f']}", 'black')
|
|
183
187
|
|
|
184
188
|
def on_msg_click(clicked_msg, msg_params):
|
|
185
189
|
progress_qso(clicked_msg, msg_params)
|
|
@@ -235,9 +239,9 @@ def cli():
|
|
|
235
239
|
print(__name__)
|
|
236
240
|
if __name__ == "__main__":
|
|
237
241
|
import mock
|
|
238
|
-
|
|
242
|
+
with mock.patch('sys.argv', ['pyft8', '-i Mic, CODEC', '-o Speak, CODEC', '-cC:/Users/drala/Documents/Projects/GitHub/G1OJS/PyFT8_cfg']):
|
|
239
243
|
#with mock.patch('sys.argv', ['pyft8', '-i Mic, CODEC']):
|
|
240
244
|
#with mock.patch('sys.argv', ['pyft8', '-i Mic, CODEC', '-n']):
|
|
241
|
-
with mock.patch('sys.argv', ['pyft8', '-m', "CQ G1OJS IO90", '-cC:/Users/drala/Documents/Projects/GitHub/G1OJS/PyFT8_cfg']):
|
|
245
|
+
#with mock.patch('sys.argv', ['pyft8', '-m', "CQ G1OJS IO90", '-cC:/Users/drala/Documents/Projects/GitHub/G1OJS/PyFT8_cfg']):
|
|
242
246
|
#with mock.patch('sys.argv', ['pyft8', '-m', "CQ G1OJS IO90", '-o', "Speak, CODEC"]):
|
|
243
247
|
cli()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|