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.
Files changed (62) hide show
  1. {pyft8-2.1.1 → pyft8-2.1.2}/PKG-INFO +1 -1
  2. {pyft8-2.1.1 → pyft8-2.1.2}/PyFT8/gui.py +8 -0
  3. {pyft8-2.1.1 → pyft8-2.1.2}/PyFT8/pyft8.py +7 -3
  4. {pyft8-2.1.1 → pyft8-2.1.2}/PyFT8.egg-info/PKG-INFO +1 -1
  5. {pyft8-2.1.1 → pyft8-2.1.2}/pyproject.toml +1 -1
  6. {pyft8-2.1.1 → pyft8-2.1.2}/LICENSE +0 -0
  7. {pyft8-2.1.1 → pyft8-2.1.2}/MANIFEST.in +0 -0
  8. {pyft8-2.1.1 → pyft8-2.1.2}/PyFT8/__init__.py +0 -0
  9. {pyft8-2.1.1 → pyft8-2.1.2}/PyFT8/receiver.py +0 -0
  10. {pyft8-2.1.1 → pyft8-2.1.2}/PyFT8/rigctrl.py +0 -0
  11. {pyft8-2.1.1 → pyft8-2.1.2}/PyFT8/time_utils.py +0 -0
  12. {pyft8-2.1.1 → pyft8-2.1.2}/PyFT8/transmitter.py +0 -0
  13. {pyft8-2.1.1 → pyft8-2.1.2}/PyFT8.egg-info/SOURCES.txt +0 -0
  14. {pyft8-2.1.1 → pyft8-2.1.2}/PyFT8.egg-info/dependency_links.txt +0 -0
  15. {pyft8-2.1.1 → pyft8-2.1.2}/PyFT8.egg-info/entry_points.txt +0 -0
  16. {pyft8-2.1.1 → pyft8-2.1.2}/PyFT8.egg-info/requires.txt +0 -0
  17. {pyft8-2.1.1 → pyft8-2.1.2}/PyFT8.egg-info/top_level.txt +0 -0
  18. {pyft8-2.1.1 → pyft8-2.1.2}/README.md +0 -0
  19. {pyft8-2.1.1 → pyft8-2.1.2}/setup.cfg +0 -0
  20. {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_01.wav +0 -0
  21. {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_02.wav +0 -0
  22. {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_03.wav +0 -0
  23. {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_04.wav +0 -0
  24. {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_05.wav +0 -0
  25. {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_06.wav +0 -0
  26. {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_07.wav +0 -0
  27. {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_08.wav +0 -0
  28. {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_09.wav +0 -0
  29. {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_10.wav +0 -0
  30. {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_11.wav +0 -0
  31. {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_12.wav +0 -0
  32. {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_13.wav +0 -0
  33. {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_14.wav +0 -0
  34. {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_15.wav +0 -0
  35. {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_16.wav +0 -0
  36. {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_17.wav +0 -0
  37. {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_18.wav +0 -0
  38. {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_19.wav +0 -0
  39. {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_20.wav +0 -0
  40. {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_21.wav +0 -0
  41. {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_22.wav +0 -0
  42. {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_23.wav +0 -0
  43. {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_24.wav +0 -0
  44. {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_25.wav +0 -0
  45. {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_26.wav +0 -0
  46. {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_27.wav +0 -0
  47. {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_28.wav +0 -0
  48. {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_29.wav +0 -0
  49. {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_30.wav +0 -0
  50. {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_31.wav +0 -0
  51. {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_32.wav +0 -0
  52. {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_33.wav +0 -0
  53. {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_34.wav +0 -0
  54. {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_35.wav +0 -0
  55. {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_36.wav +0 -0
  56. {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_37.wav +0 -0
  57. {pyft8-2.1.1 → pyft8-2.1.2}/tests/data/ft8_lib_20m_busy/test_38.wav +0 -0
  58. {pyft8-2.1.1 → pyft8-2.1.2}/tests/dev/test_generate_wav.py +0 -0
  59. {pyft8-2.1.1 → pyft8-2.1.2}/tests/dev/test_loopback_performance.py +0 -0
  60. {pyft8-2.1.1 → pyft8-2.1.2}/tests/plot_baseline.py +0 -0
  61. {pyft8-2.1.1 → pyft8-2.1.2}/tests/spare.py +0 -0
  62. {pyft8-2.1.1 → pyft8-2.1.2}/tests/test_batch_and_live.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PyFT8
3
- Version: 2.1.1
3
+ Version: 2.1.2
4
4
  Summary: FT8 Decoding and Encoding in Python with test/loopback code
5
5
  Author-email: G1OJS <g1ojs@yahoo.com>
6
6
  License-Expression: GPL-3.0-or-later
@@ -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':'20m', 'f':14.074}
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
- #with mock.patch('sys.argv', ['pyft8', '-i Mic, CODEC', '-o Speak, CODEC', '-cC:/Users/drala/Documents/Projects/GitHub/G1OJS/PyFT8_cfg']):
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()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PyFT8
3
- Version: 2.1.1
3
+ Version: 2.1.2
4
4
  Summary: FT8 Decoding and Encoding in Python with test/loopback code
5
5
  Author-email: G1OJS <g1ojs@yahoo.com>
6
6
  License-Expression: GPL-3.0-or-later
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "PyFT8"
3
- version = "2.1.1"
3
+ version = "2.1.2"
4
4
  license = "GPL-3.0-or-later"
5
5
 
6
6
  authors = [
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