not1mm 24.10.20__py3-none-any.whl → 24.10.21__py3-none-any.whl

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.
not1mm/__main__.py CHANGED
@@ -16,7 +16,6 @@ import locale
16
16
  import logging
17
17
  from logging.handlers import RotatingFileHandler
18
18
  import os
19
- import platform
20
19
  import socket
21
20
  import sys
22
21
  import uuid
@@ -56,7 +55,8 @@ from not1mm.lib.ham_utility import (
56
55
  reciprocol,
57
56
  fakefreq,
58
57
  )
59
- from not1mm.lib.multicast import Multicast
58
+
59
+ # from not1mm.lib.multicast import Multicast
60
60
  from not1mm.lib.n1mm import N1MM
61
61
  from not1mm.lib.new_contest import NewContest
62
62
  from not1mm.lib.super_check_partial import SCP
@@ -550,6 +550,7 @@ class MainWindow(QtWidgets.QMainWindow):
550
550
  self.show_splash_msg("Starting LookUp Service.")
551
551
 
552
552
  self.lookup_service = LookupService()
553
+ self.lookup_service.message.connect(self.dockwidget_message)
553
554
  self.lookup_service.hide()
554
555
 
555
556
  self.show_splash_msg("Reading preferences.")
@@ -583,34 +584,12 @@ class MainWindow(QtWidgets.QMainWindow):
583
584
  self.voice_process.current_op = self.current_op
584
585
  self.make_op_dir()
585
586
 
586
- self.clearinputs()
587
- self.show_splash_msg("Loading contest.")
588
- self.load_contest()
589
- self.show_splash_msg("Reading macros.")
590
- self.read_cw_macros()
591
-
592
587
  # Featureset for wayland
593
588
  dockfeatures = (
594
589
  QtWidgets.QDockWidget.DockWidgetFeature.DockWidgetClosable
595
590
  | QtWidgets.QDockWidget.DockWidgetFeature.DockWidgetMovable
596
591
  )
597
592
 
598
- self.show_splash_msg("Starting FlDigi watcher.")
599
- self.fldigi_watcher = FlDigiWatcher()
600
- self.fldigi_watcher.moveToThread(self.fldigi_thread)
601
- self.fldigi_thread.started.connect(self.fldigi_watcher.run)
602
- self.fldigi_thread.finished.connect(self.fldigi_watcher.deleteLater)
603
- self.fldigi_watcher.poll_callback.connect(self.fldigi_qso)
604
- self.fldigi_thread.start()
605
-
606
- self.show_splash_msg("Setting up LogWindow.")
607
- self.log_window = LogWindow()
608
- self.log_window.setObjectName("log-window")
609
- if os.environ.get("WAYLAND_DISPLAY"):
610
- self.log_window.setFeatures(dockfeatures)
611
- self.addDockWidget(Qt.DockWidgetArea.TopDockWidgetArea, self.log_window)
612
- self.log_window.hide()
613
-
614
593
  self.show_splash_msg("Setting up BandMapWindow.")
615
594
  self.bandmap_window = BandMapWindow()
616
595
  self.bandmap_window.setObjectName("bandmap-window")
@@ -619,6 +598,8 @@ class MainWindow(QtWidgets.QMainWindow):
619
598
  self.addDockWidget(Qt.DockWidgetArea.LeftDockWidgetArea, self.bandmap_window)
620
599
  self.bandmap_window.hide()
621
600
  self.bandmap_window.cluster_expire.connect(self.cluster_expire_updated)
601
+ self.bandmap_window.message.connect(self.dockwidget_message)
602
+ self.bandmap_window.callsignField.setText(self.current_op)
622
603
 
623
604
  self.show_splash_msg("Setting up CheckWindow.")
624
605
  self.check_window = CheckWindow()
@@ -627,6 +608,7 @@ class MainWindow(QtWidgets.QMainWindow):
627
608
  self.check_window.setFeatures(dockfeatures)
628
609
  self.addDockWidget(Qt.DockWidgetArea.RightDockWidgetArea, self.check_window)
629
610
  self.check_window.hide()
611
+ self.check_window.message.connect(self.dockwidget_message)
630
612
 
631
613
  self.show_splash_msg("Setting up VFOWindow.")
632
614
  self.vfo_window = VfoWindow()
@@ -636,6 +618,29 @@ class MainWindow(QtWidgets.QMainWindow):
636
618
  self.addDockWidget(Qt.DockWidgetArea.RightDockWidgetArea, self.vfo_window)
637
619
  self.vfo_window.hide()
638
620
 
621
+ self.show_splash_msg("Setting up LogWindow.")
622
+ self.log_window = LogWindow()
623
+ self.log_window.setObjectName("log-window")
624
+ if os.environ.get("WAYLAND_DISPLAY"):
625
+ self.log_window.setFeatures(dockfeatures)
626
+ self.addDockWidget(Qt.DockWidgetArea.TopDockWidgetArea, self.log_window)
627
+ self.log_window.hide()
628
+ self.log_window.message.connect(self.dockwidget_message)
629
+
630
+ self.clearinputs()
631
+ self.show_splash_msg("Loading contest.")
632
+ self.load_contest()
633
+ self.show_splash_msg("Reading macros.")
634
+ self.read_cw_macros()
635
+
636
+ self.show_splash_msg("Starting FlDigi watcher.")
637
+ self.fldigi_watcher = FlDigiWatcher()
638
+ self.fldigi_watcher.moveToThread(self.fldigi_thread)
639
+ self.fldigi_thread.started.connect(self.fldigi_watcher.run)
640
+ self.fldigi_thread.finished.connect(self.fldigi_watcher.deleteLater)
641
+ self.fldigi_watcher.poll_callback.connect(self.fldigi_qso)
642
+ self.fldigi_thread.start()
643
+
639
644
  self.show_splash_msg("Restoring window states.")
640
645
  self.settings = QSettings("K6GTE", "not1mm")
641
646
  if self.settings.value("windowState") is not None:
@@ -646,19 +651,28 @@ class MainWindow(QtWidgets.QMainWindow):
646
651
  self.actionLog_Window.setChecked(self.pref.get("logwindow", False))
647
652
  if self.actionLog_Window.isChecked():
648
653
  self.log_window.show()
654
+ else:
655
+ self.log_window.hide()
649
656
 
650
657
  self.actionBandmap.setChecked(self.pref.get("bandmapwindow", False))
651
658
  if self.actionBandmap.isChecked():
652
659
  self.bandmap_window.show()
660
+ else:
661
+ self.bandmap_window.hide()
653
662
 
654
663
  self.actionCheck_Window.setChecked(self.pref.get("checkwindow", False))
655
664
  if self.actionCheck_Window.isChecked():
656
665
  self.check_window.show()
657
666
  self.check_window.setActive(True)
667
+ else:
668
+ self.check_window.hide()
669
+ self.check_window.setActive(False)
658
670
 
659
671
  self.actionVFO.setChecked(self.pref.get("vfowindow", False))
660
672
  if self.actionVFO.isChecked():
661
673
  self.vfo_window.show()
674
+ else:
675
+ self.vfo_window.hide()
662
676
 
663
677
  self.cwspeed_spinbox_changed()
664
678
 
@@ -719,6 +733,88 @@ class MainWindow(QtWidgets.QMainWindow):
719
733
  )
720
734
  QCoreApplication.processEvents()
721
735
 
736
+ def dockwidget_message(self, msg):
737
+ """signal from bandmap"""
738
+ if msg:
739
+ if msg.get("cmd", "") == "GETCOLUMNS":
740
+ if hasattr(self.contest, "columns"):
741
+ cmd = {}
742
+ cmd["cmd"] = "SHOWCOLUMNS"
743
+ cmd["COLUMNS"] = self.contest.columns
744
+ if self.log_window:
745
+ self.log_window.msg_from_main(cmd)
746
+ return
747
+ if msg.get("cmd", "") == "TUNE":
748
+ # b'{"cmd": "TUNE", "freq": 7.0235, "spot": "MM0DGI"}'
749
+ vfo = msg.get("freq")
750
+ vfo = float(vfo) * 1000000
751
+ self.radio_state["vfoa"] = int(vfo)
752
+ if self.rig_control:
753
+ self.rig_control.set_vfo(int(vfo))
754
+ spot = msg.get("spot", "")
755
+ self.callsign.setText(spot)
756
+ self.callsign_changed()
757
+ self.callsign.setFocus()
758
+ self.callsign.activateWindow()
759
+ return
760
+
761
+ if msg.get("cmd", "") == "GETWORKEDLIST":
762
+ result = self.database.get_calls_and_bands()
763
+ cmd = {}
764
+ cmd["cmd"] = "WORKED"
765
+ cmd["worked"] = result
766
+ if self.bandmap_window:
767
+ self.bandmap_window.msg_from_main(cmd)
768
+ return
769
+
770
+ if msg.get("cmd", "") == "GETCONTESTSTATUS":
771
+ cmd = {
772
+ "cmd": "CONTESTSTATUS",
773
+ "contest": self.contest_settings,
774
+ "operator": self.current_op,
775
+ }
776
+ if self.bandmap_window:
777
+ self.bandmap_window.msg_from_main(cmd)
778
+ self.bandmap_window.callsignField.setText(self.current_op)
779
+ return
780
+
781
+ if msg.get("cmd", "") == "CHANGECALL":
782
+ self.callsign.setText(msg.get("call", ""))
783
+ self.callsign.setFocus()
784
+
785
+ if msg.get("cmd", "") == "CHECKSPOTS":
786
+ if self.check_window:
787
+ self.check_window.msg_from_main(msg)
788
+
789
+ # '{"cmd": "LOOKUP_RESPONSE", "station": "fredo", "result": {"call": "K6GTE", "aliases": "KM6HQI", "dxcc": "291", "nickname": "Mike", "fname": "Michael C", "name": "Bridak", "addr1": "2854 W Bridgeport Ave", "addr2": "Anaheim", "state": "CA", "zip": "92804", "country": "United States", "lat": "33.825460", "lon": "-117.987510", "grid": "DM13at", "county": "Orange", "ccode": "271", "fips": "06059", "land": "United States", "efdate": "2021-01-13", "expdate": "2027-11-07", "class": "G", "codes": "HVIE", "email": "michael.bridak@gmail.com", "u_views": "3049", "bio": "7232", "biodate": "2023-04-10 17:56:55", "image": "https://cdn-xml.qrz.com/e/k6gte/qsl.png", "imageinfo": "285:545:99376", "moddate": "2021-04-08 21:41:07", "MSA": "5945", "AreaCode": "714", "TimeZone": "Pacific", "GMTOffset": "-8", "DST": "Y", "eqsl": "0", "mqsl": "1", "cqzone": "3", "ituzone": "6", "born": "1967", "lotw": "1", "user": "K6GTE", "geoloc": "geocode", "name_fmt": "Michael C \\"Mike\\" Bridak"}}'
790
+
791
+ if msg.get("cmd", "") == "LOOKUP_RESPONSE":
792
+ if msg.get("result", None) is not None:
793
+ fname = msg.get("result", {}).get("fname", "")
794
+ name = msg.get("result", {}).get("name", "")
795
+ grid = msg.get("result", {}).get("grid", "")
796
+ nickname = msg.get("result", {}).get("nickname", "")
797
+
798
+ if self.contest:
799
+ if "General Logging" in self.contest.name:
800
+ if nickname:
801
+ self.other_1.setText(nickname)
802
+ elif fname:
803
+ self.other_1.setText(fname)
804
+ elif name:
805
+ self.other_1.setText(name)
806
+
807
+ if grid:
808
+ self.contact["GridSquare"] = grid
809
+ # _theircountry = response.get("country", "")
810
+ if self.station.get("GridSquare", ""):
811
+ heading = bearing(self.station.get("GridSquare", ""), grid)
812
+ kilometers = distance(self.station.get("GridSquare", ""), grid)
813
+ self.heading_distance.setText(
814
+ f"{grid} Hdg {heading}° LP {reciprocol(heading)}° / "
815
+ f"distance {int(kilometers*0.621371)}mi {kilometers}km"
816
+ )
817
+
722
818
  def cluster_expire_updated(self, number):
723
819
  """signal from bandmap"""
724
820
  self.pref["cluster_expire"] = int(number)
@@ -778,8 +874,12 @@ class MainWindow(QtWidgets.QMainWindow):
778
874
  cmd = {}
779
875
  cmd["cmd"] = "DARKMODE"
780
876
  cmd["state"] = setdarkmode
781
- cmd["station"] = platform.node()
782
- self.multicast_interface.send_as_json(cmd)
877
+ if self.log_window:
878
+ self.log_window.msg_from_main(cmd)
879
+ if self.bandmap_window:
880
+ self.bandmap_window.msg_from_main(cmd)
881
+ if self.check_window:
882
+ self.check_window.msg_from_main(cmd)
783
883
 
784
884
  if setdarkmode:
785
885
  darkPalette = QPalette()
@@ -948,8 +1048,8 @@ class MainWindow(QtWidgets.QMainWindow):
948
1048
 
949
1049
  cmd = {}
950
1050
  cmd["cmd"] = "HALT"
951
- cmd["station"] = platform.node()
952
- self.multicast_interface.send_as_json(cmd)
1051
+ if self.lookup_service:
1052
+ self.lookup_service.msg_from_main(cmd)
953
1053
  app.quit()
954
1054
 
955
1055
  def show_message_box(self, message: str) -> None:
@@ -1110,8 +1210,8 @@ class MainWindow(QtWidgets.QMainWindow):
1110
1210
  self.make_op_dir()
1111
1211
  cmd = {}
1112
1212
  cmd["cmd"] = "NEWDB"
1113
- cmd["station"] = platform.node()
1114
- self.multicast_interface.send_as_json(cmd)
1213
+ if self.log_window:
1214
+ self.log_window.msg_from_main(cmd)
1115
1215
  self.clearinputs()
1116
1216
  self.edit_station_settings()
1117
1217
 
@@ -1147,8 +1247,8 @@ class MainWindow(QtWidgets.QMainWindow):
1147
1247
  self.make_op_dir()
1148
1248
  cmd = {}
1149
1249
  cmd["cmd"] = "NEWDB"
1150
- cmd["station"] = platform.node()
1151
- self.multicast_interface.send_as_json(cmd)
1250
+ if self.log_window:
1251
+ self.log_window.msg_from_main(cmd)
1152
1252
  self.clearinputs()
1153
1253
  self.open_contest()
1154
1254
 
@@ -1436,14 +1536,14 @@ class MainWindow(QtWidgets.QMainWindow):
1436
1536
  self.clearinputs()
1437
1537
  cmd = {}
1438
1538
  cmd["cmd"] = "NEWDB"
1439
- cmd["station"] = platform.node()
1440
- self.multicast_interface.send_as_json(cmd)
1539
+ if self.log_window:
1540
+ self.log_window.msg_from_main(cmd)
1441
1541
  if hasattr(self.contest, "columns"):
1442
1542
  cmd = {}
1443
1543
  cmd["cmd"] = "SHOWCOLUMNS"
1444
- cmd["station"] = platform.node()
1445
1544
  cmd["COLUMNS"] = self.contest.columns
1446
- self.multicast_interface.send_as_json(cmd)
1545
+ if self.log_window:
1546
+ self.log_window.msg_from_main(cmd)
1447
1547
 
1448
1548
  def check_for_new_cty(self) -> None:
1449
1549
  """
@@ -1721,8 +1821,12 @@ class MainWindow(QtWidgets.QMainWindow):
1721
1821
 
1722
1822
  cmd = {}
1723
1823
  cmd["cmd"] = "HALT"
1724
- cmd["station"] = platform.node()
1725
- self.multicast_interface.send_as_json(cmd)
1824
+ if self.bandmap_window:
1825
+ self.bandmap_window.msg_from_main(cmd)
1826
+ if self.log_window:
1827
+ self.log_window.msg_from_main(cmd)
1828
+ if self.lookup_service:
1829
+ self.lookup_service.msg_from_main(cmd)
1726
1830
  self.write_preference()
1727
1831
 
1728
1832
  def cty_lookup(self, callsign: str) -> list:
@@ -1802,10 +1906,10 @@ class MainWindow(QtWidgets.QMainWindow):
1802
1906
  if freq and dx:
1803
1907
  cmd = {}
1804
1908
  cmd["cmd"] = "SPOTDX"
1805
- cmd["station"] = platform.node()
1806
1909
  cmd["dx"] = dx
1807
1910
  cmd["freq"] = float(int(freq) / 1000)
1808
- self.multicast_interface.send_as_json(cmd)
1911
+ if self.bandmap_window:
1912
+ self.bandmap_window.msg_from_main(cmd)
1809
1913
  return
1810
1914
  if (
1811
1915
  event.key() == Qt.Key.Key_M
@@ -1816,10 +1920,10 @@ class MainWindow(QtWidgets.QMainWindow):
1816
1920
  if freq and dx:
1817
1921
  cmd = {}
1818
1922
  cmd["cmd"] = "MARKDX"
1819
- cmd["station"] = platform.node()
1820
1923
  cmd["dx"] = dx
1821
1924
  cmd["freq"] = float(int(freq) / 1000)
1822
- self.multicast_interface.send_as_json(cmd)
1925
+ if self.bandmap_window:
1926
+ self.bandmap_window.msg_from_main(cmd)
1823
1927
  return
1824
1928
  if (
1825
1929
  event.key() == Qt.Key.Key_G
@@ -1829,9 +1933,9 @@ class MainWindow(QtWidgets.QMainWindow):
1829
1933
  if dx:
1830
1934
  cmd = {}
1831
1935
  cmd["cmd"] = "FINDDX"
1832
- cmd["station"] = platform.node()
1833
1936
  cmd["dx"] = dx
1834
- self.multicast_interface.send_as_json(cmd)
1937
+ if self.bandmap_window:
1938
+ self.bandmap_window.msg_from_main(cmd)
1835
1939
  return
1836
1940
  if (
1837
1941
  event.key() == Qt.Key.Key_Escape
@@ -1856,14 +1960,14 @@ class MainWindow(QtWidgets.QMainWindow):
1856
1960
  if event.key() == Qt.Key.Key_Up:
1857
1961
  cmd = {}
1858
1962
  cmd["cmd"] = "PREVSPOT"
1859
- cmd["station"] = platform.node()
1860
- self.multicast_interface.send_as_json(cmd)
1963
+ if self.bandmap_window:
1964
+ self.bandmap_window.msg_from_main(cmd)
1861
1965
  return
1862
1966
  if event.key() == Qt.Key.Key_Down:
1863
1967
  cmd = {}
1864
1968
  cmd["cmd"] = "NEXTSPOT"
1865
- cmd["station"] = platform.node()
1866
- self.multicast_interface.send_as_json(cmd)
1969
+ if self.bandmap_window:
1970
+ self.bandmap_window.msg_from_main(cmd)
1867
1971
  return
1868
1972
  if (
1869
1973
  event.key() == Qt.Key.Key_PageUp
@@ -1959,9 +2063,9 @@ class MainWindow(QtWidgets.QMainWindow):
1959
2063
  text = text.upper()
1960
2064
  cmd = {}
1961
2065
  cmd["cmd"] = "LOOKUP_CALL"
1962
- cmd["station"] = platform.node()
1963
2066
  cmd["call"] = text
1964
- self.multicast_interface.send_as_json(cmd)
2067
+ if self.lookup_service:
2068
+ self.lookup_service.msg_from_main(cmd)
1965
2069
  next_tab = self.tab_next.get(self.callsign)
1966
2070
  next_tab.setFocus()
1967
2071
  next_tab.deselect()
@@ -2031,10 +2135,10 @@ class MainWindow(QtWidgets.QMainWindow):
2031
2135
 
2032
2136
  cmd = {}
2033
2137
  cmd["cmd"] = "WORKED"
2034
- cmd["station"] = platform.node()
2035
2138
  cmd["worked"] = self.worked_list
2036
2139
  logger.debug("%s", f"{cmd}")
2037
- self.multicast_interface.send_as_json(cmd)
2140
+ if self.bandmap_window:
2141
+ self.bandmap_window.msg_from_main(cmd)
2038
2142
 
2039
2143
  def clearinputs(self) -> None:
2040
2144
  """
@@ -2077,9 +2181,13 @@ class MainWindow(QtWidgets.QMainWindow):
2077
2181
  self.callsign.setFocus()
2078
2182
  cmd = {}
2079
2183
  cmd["cmd"] = "CALLCHANGED"
2080
- cmd["station"] = platform.node()
2081
2184
  cmd["call"] = ""
2082
- self.multicast_interface.send_as_json(cmd)
2185
+ if self.log_window:
2186
+ self.log_window.msg_from_main(cmd)
2187
+ if self.bandmap_window:
2188
+ self.bandmap_window.msg_from_main(cmd)
2189
+ if self.check_window:
2190
+ self.check_window.msg_from_main(cmd)
2083
2191
 
2084
2192
  def save_contact(self) -> None:
2085
2193
  """
@@ -2199,8 +2307,10 @@ class MainWindow(QtWidgets.QMainWindow):
2199
2307
 
2200
2308
  cmd = {}
2201
2309
  cmd["cmd"] = "UPDATELOG"
2202
- cmd["station"] = platform.node()
2203
- self.multicast_interface.send_as_json(cmd)
2310
+ if self.log_window:
2311
+ self.log_window.msg_from_main(cmd)
2312
+ if self.check_window:
2313
+ self.check_window.msg_from_main(cmd)
2204
2314
 
2205
2315
  def new_contest_dialog(self) -> None:
2206
2316
  """
@@ -2623,17 +2733,10 @@ class MainWindow(QtWidgets.QMainWindow):
2623
2733
  else:
2624
2734
  self.actionMode_and_Bands.setChecked(False)
2625
2735
 
2626
- self.multicast_interface = Multicast(
2627
- self.pref.get("multicast_group", "239.1.1.1"),
2628
- self.pref.get("multicast_port", 2239),
2629
- self.pref.get("interface_ip", "0.0.0.0"),
2630
- )
2631
- self.multicast_interface.ready_read_connect(self.watch_udp)
2632
-
2633
2736
  cmd = {}
2634
2737
  cmd["cmd"] = "REFRESH_LOOKUP"
2635
- cmd["station"] = platform.node()
2636
- self.multicast_interface.send_as_json(cmd)
2738
+ if self.lookup_service:
2739
+ self.lookup_service.msg_from_main(cmd)
2637
2740
 
2638
2741
  if self.pref.get("darkmode"):
2639
2742
  self.actionDark_Mode_2.setChecked(True)
@@ -2782,119 +2885,6 @@ class MainWindow(QtWidgets.QMainWindow):
2782
2885
  self.esm_dict["MYCALL"] = fkey_dict.get(self.pref.get("esm_mycall", "DISABLED"))
2783
2886
  self.esm_dict["QSOB4"] = fkey_dict.get(self.pref.get("esm_qsob4", "DISABLED"))
2784
2887
 
2785
- def watch_udp(self) -> None:
2786
- """
2787
- Watch the UDP socket for incoming data.
2788
-
2789
- Parameters
2790
- ----------
2791
- None
2792
-
2793
- Returns
2794
- -------
2795
- None
2796
- """
2797
-
2798
- while self.multicast_interface.has_pending_datagrams():
2799
- json_data = self.multicast_interface.read_datagram_as_json()
2800
- if json_data:
2801
- if (
2802
- json_data.get("cmd", "") == "GETCOLUMNS"
2803
- and json_data.get("station", "") == platform.node()
2804
- ):
2805
- if hasattr(self.contest, "columns"):
2806
- cmd = {}
2807
- cmd["cmd"] = "SHOWCOLUMNS"
2808
- cmd["station"] = platform.node()
2809
- cmd["COLUMNS"] = self.contest.columns
2810
- self.multicast_interface.send_as_json(cmd)
2811
- continue
2812
- if (
2813
- json_data.get("cmd", "") == "TUNE"
2814
- and json_data.get("station", "") == platform.node()
2815
- ):
2816
- # b'{"cmd": "TUNE", "freq": 7.0235, "spot": "MM0DGI"}'
2817
- vfo = json_data.get("freq")
2818
- vfo = float(vfo) * 1000000
2819
- self.radio_state["vfoa"] = int(vfo)
2820
- if self.rig_control:
2821
- self.rig_control.set_vfo(int(vfo))
2822
- spot = json_data.get("spot", "")
2823
- self.callsign.setText(spot)
2824
- self.callsign_changed()
2825
- self.callsign.setFocus()
2826
- self.callsign.activateWindow()
2827
- # This broke somehow.
2828
- # window.raise_()
2829
- continue
2830
-
2831
- if (
2832
- json_data.get("cmd", "") == "GETWORKEDLIST"
2833
- and json_data.get("station", "") == platform.node()
2834
- ):
2835
- result = self.database.get_calls_and_bands()
2836
- cmd = {}
2837
- cmd["cmd"] = "WORKED"
2838
- cmd["station"] = platform.node()
2839
- cmd["worked"] = result
2840
- self.multicast_interface.send_as_json(cmd)
2841
- continue
2842
-
2843
- if (
2844
- json_data.get("cmd", "") == "GETCONTESTSTATUS"
2845
- and json_data.get("station", "") == platform.node()
2846
- ):
2847
- cmd = {
2848
- "cmd": "CONTESTSTATUS",
2849
- "station": platform.node(),
2850
- "contest": self.contest_settings,
2851
- "operator": self.current_op,
2852
- }
2853
- self.multicast_interface.send_as_json(cmd)
2854
- continue
2855
-
2856
- if (
2857
- json_data.get("cmd", "") == "CHANGECALL"
2858
- and json_data.get("station", "") == platform.node()
2859
- ):
2860
- self.callsign.setText(json_data.get("call", ""))
2861
- self.callsign.setFocus()
2862
-
2863
- # '{"cmd": "LOOKUP_RESPONSE", "station": "fredo", "result": {"call": "K6GTE", "aliases": "KM6HQI", "dxcc": "291", "nickname": "Mike", "fname": "Michael C", "name": "Bridak", "addr1": "2854 W Bridgeport Ave", "addr2": "Anaheim", "state": "CA", "zip": "92804", "country": "United States", "lat": "33.825460", "lon": "-117.987510", "grid": "DM13at", "county": "Orange", "ccode": "271", "fips": "06059", "land": "United States", "efdate": "2021-01-13", "expdate": "2027-11-07", "class": "G", "codes": "HVIE", "email": "michael.bridak@gmail.com", "u_views": "3049", "bio": "7232", "biodate": "2023-04-10 17:56:55", "image": "https://cdn-xml.qrz.com/e/k6gte/qsl.png", "imageinfo": "285:545:99376", "moddate": "2021-04-08 21:41:07", "MSA": "5945", "AreaCode": "714", "TimeZone": "Pacific", "GMTOffset": "-8", "DST": "Y", "eqsl": "0", "mqsl": "1", "cqzone": "3", "ituzone": "6", "born": "1967", "lotw": "1", "user": "K6GTE", "geoloc": "geocode", "name_fmt": "Michael C \\"Mike\\" Bridak"}}'
2864
-
2865
- if (
2866
- json_data.get("cmd", "") == "LOOKUP_RESPONSE"
2867
- and json_data.get("station", "") == platform.node()
2868
- ):
2869
- if json_data.get("result", None) is not None:
2870
- fname = json_data.get("result", {}).get("fname", "")
2871
- name = json_data.get("result", {}).get("name", "")
2872
- grid = json_data.get("result", {}).get("grid", "")
2873
- # error_text = json_data.get("result", {}).get("error_text", "")
2874
- nickname = json_data.get("result", {}).get("nickname", "")
2875
-
2876
- if self.contest:
2877
- if "General Logging" in self.contest.name:
2878
- if nickname:
2879
- self.other_1.setText(nickname)
2880
- elif fname:
2881
- self.other_1.setText(fname)
2882
- elif name:
2883
- self.other_1.setText(name)
2884
-
2885
- if grid:
2886
- self.contact["GridSquare"] = grid
2887
- # _theircountry = response.get("country", "")
2888
- if self.station.get("GridSquare", ""):
2889
- heading = bearing(self.station.get("GridSquare", ""), grid)
2890
- kilometers = distance(
2891
- self.station.get("GridSquare", ""), grid
2892
- )
2893
- self.heading_distance.setText(
2894
- f"{grid} Hdg {heading}° LP {reciprocol(heading)}° / "
2895
- f"distance {int(kilometers*0.621371)}mi {kilometers}km"
2896
- )
2897
-
2898
2888
  def dark_mode_state_changed(self) -> None:
2899
2889
  """Called when the Dark Mode menu state is changed."""
2900
2890
  self.pref["darkmode"] = self.actionDark_Mode_2.isChecked()
@@ -3097,32 +3087,26 @@ class MainWindow(QtWidgets.QMainWindow):
3097
3087
  self.show_help_dialog()
3098
3088
  self.clearinputs()
3099
3089
  return
3100
- # if stripped_text == "TEST":
3101
- # result = self.database.get_calls_and_bands()
3102
- # cmd = {}
3103
- # cmd["cmd"] = "WORKED"
3104
- # cmd["station"] = platform.node()
3105
- # cmd["worked"] = result
3106
- # self.multicast_interface.send_as_json(cmd)
3107
- # self.clearinputs()
3108
- # return
3109
3090
  if self.is_floatable(stripped_text):
3110
3091
  self.change_freq(stripped_text)
3111
3092
  self.clearinputs()
3112
3093
  return
3113
-
3114
3094
  cmd = {}
3115
3095
  cmd["cmd"] = "LOOKUP_CALL"
3116
- cmd["station"] = platform.node()
3117
3096
  cmd["call"] = stripped_text
3118
- self.multicast_interface.send_as_json(cmd)
3097
+ if self.lookup_service:
3098
+ self.lookup_service.msg_from_main(cmd)
3119
3099
  self.next_field.setFocus()
3120
3100
  return
3121
3101
  cmd = {}
3122
3102
  cmd["cmd"] = "CALLCHANGED"
3123
- cmd["station"] = platform.node()
3124
3103
  cmd["call"] = stripped_text
3125
- self.multicast_interface.send_as_json(cmd)
3104
+ if self.bandmap_window:
3105
+ self.bandmap_window.msg_from_main(cmd)
3106
+ if self.log_window:
3107
+ self.log_window.msg_from_main(cmd)
3108
+ if self.check_window:
3109
+ self.check_window.msg_from_main(cmd)
3126
3110
  self.check_callsign(stripped_text)
3127
3111
  if self.check_dupe(stripped_text):
3128
3112
  self.dupe_indicator.show()
@@ -3161,10 +3145,10 @@ class MainWindow(QtWidgets.QMainWindow):
3161
3145
 
3162
3146
  cmd = {}
3163
3147
  cmd["cmd"] = "RADIO_STATE"
3164
- cmd["station"] = platform.node()
3165
3148
  cmd["band"] = band
3166
3149
  cmd["vfoa"] = vfo
3167
- self.multicast_interface.send_as_json(cmd)
3150
+ if self.bandmap_window:
3151
+ self.bandmap_window.msg_from_main(cmd)
3168
3152
 
3169
3153
  def change_mode(self, mode: str) -> None:
3170
3154
  """
@@ -3366,6 +3350,8 @@ class MainWindow(QtWidgets.QMainWindow):
3366
3350
  if self.opon_dialog.NewOperator.text():
3367
3351
  self.current_op = self.opon_dialog.NewOperator.text().upper()
3368
3352
  self.voice_process.current_op = self.current_op
3353
+ if self.bandmap_window:
3354
+ self.bandmap_window.callsignField.setText(self.current_op)
3369
3355
  self.opon_dialog.close()
3370
3356
  logger.debug("New Op: %s", self.current_op)
3371
3357
  self.make_op_dir()
@@ -3457,18 +3443,26 @@ class MainWindow(QtWidgets.QMainWindow):
3457
3443
  ):
3458
3444
  self.setmode("RTTY")
3459
3445
 
3446
+ cmd = {}
3447
+ cmd["cmd"] = "RADIO_STATE"
3448
+ cmd["band"] = band
3449
+ cmd["vfoa"] = vfo
3450
+ cmd["mode"] = mode
3451
+ cmd["bw"] = bw
3452
+ if self.bandmap_window:
3453
+ self.bandmap_window.msg_from_main(cmd)
3460
3454
  if info_dirty:
3461
3455
  try:
3462
3456
  logger.debug("VFO: %s MODE: %s BW: %s", vfo, mode, bw)
3463
3457
  self.set_window_title()
3464
3458
  cmd = {}
3465
3459
  cmd["cmd"] = "RADIO_STATE"
3466
- cmd["station"] = platform.node()
3467
3460
  cmd["band"] = band
3468
3461
  cmd["vfoa"] = vfo
3469
3462
  cmd["mode"] = mode
3470
3463
  cmd["bw"] = bw
3471
- self.multicast_interface.send_as_json(cmd)
3464
+ if self.bandmap_window:
3465
+ self.bandmap_window.msg_from_main(cmd)
3472
3466
  if self.n1mm:
3473
3467
  self.n1mm.radio_info["Freq"] = vfo[:-1]
3474
3468
  self.n1mm.radio_info["TXFreq"] = vfo[:-1]
@@ -3478,13 +3472,6 @@ class MainWindow(QtWidgets.QMainWindow):
3478
3472
  self.pref.get("run_state", False)
3479
3473
  )
3480
3474
  if self.n1mm.send_radio_packets:
3481
- # self.n1mm.radio_info["Freq"] = vfo[:-1]
3482
- # self.n1mm.radio_info["TXFreq"] = vfo[:-1]
3483
- # self.n1mm.radio_info["Mode"] = mode
3484
- # self.n1mm.radio_info["OpCall"] = self.current_op
3485
- # self.n1mm.radio_info["IsRunning"] = str(
3486
- # self.pref.get("run_state", False)
3487
- # )
3488
3475
  self.n1mm.send_radio()
3489
3476
  except TypeError as err:
3490
3477
  logger.debug(f"{err=} {vfo=} {the_dict=}")