not1mm 24.10.8__py3-none-any.whl → 24.10.11__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 +94 -11
- not1mm/data/configuration.ui +585 -0
- not1mm/lib/settings.py +53 -0
- not1mm/lib/version.py +1 -1
- not1mm/plugins/cq_ww_cw.py +108 -0
- not1mm/plugins/cq_ww_rtty.py +134 -16
- not1mm/plugins/cq_ww_ssb.py +108 -0
- {not1mm-24.10.8.dist-info → not1mm-24.10.11.dist-info}/METADATA +61 -2
- {not1mm-24.10.8.dist-info → not1mm-24.10.11.dist-info}/RECORD +13 -13
- {not1mm-24.10.8.dist-info → not1mm-24.10.11.dist-info}/LICENSE +0 -0
- {not1mm-24.10.8.dist-info → not1mm-24.10.11.dist-info}/WHEEL +0 -0
- {not1mm-24.10.8.dist-info → not1mm-24.10.11.dist-info}/entry_points.txt +0 -0
- {not1mm-24.10.8.dist-info → not1mm-24.10.11.dist-info}/top_level.txt +0 -0
not1mm/plugins/cq_ww_cw.py
CHANGED
@@ -380,3 +380,111 @@ def cabrillo(self):
|
|
380
380
|
|
381
381
|
def recalculate_mults(self):
|
382
382
|
"""Recalculates multipliers after change in logged qso."""
|
383
|
+
|
384
|
+
|
385
|
+
def process_esm(self, new_focused_widget=None, with_enter=False):
|
386
|
+
"""ESM State Machine"""
|
387
|
+
|
388
|
+
# self.pref["run_state"]
|
389
|
+
|
390
|
+
# -----===== Assigned F-Keys =====-----
|
391
|
+
# self.esm_dict["CQ"]
|
392
|
+
# self.esm_dict["EXCH"]
|
393
|
+
# self.esm_dict["QRZ"]
|
394
|
+
# self.esm_dict["AGN"]
|
395
|
+
# self.esm_dict["HISCALL"]
|
396
|
+
# self.esm_dict["MYCALL"]
|
397
|
+
# self.esm_dict["QSOB4"]
|
398
|
+
|
399
|
+
# ----==== text fields ====----
|
400
|
+
# self.callsign
|
401
|
+
# self.sent
|
402
|
+
# self.receive
|
403
|
+
# self.other_1
|
404
|
+
# self.other_2
|
405
|
+
|
406
|
+
inputs = {
|
407
|
+
self.callsign: "callsign",
|
408
|
+
self.sent: "sent",
|
409
|
+
self.receive: "receive",
|
410
|
+
self.other_1: "other_1",
|
411
|
+
self.other_2: "other_2",
|
412
|
+
}
|
413
|
+
if new_focused_widget is not None:
|
414
|
+
self.current_widget = inputs.get(new_focused_widget)
|
415
|
+
|
416
|
+
# print(f"checking esm {self.current_widget=} {with_enter=} {self.pref.get("run_state")=}")
|
417
|
+
|
418
|
+
for a_button in [
|
419
|
+
self.F1,
|
420
|
+
self.F2,
|
421
|
+
self.F3,
|
422
|
+
self.F4,
|
423
|
+
self.F5,
|
424
|
+
self.F6,
|
425
|
+
self.F7,
|
426
|
+
self.F8,
|
427
|
+
self.F9,
|
428
|
+
self.F10,
|
429
|
+
self.F11,
|
430
|
+
self.F12,
|
431
|
+
]:
|
432
|
+
self.restore_button_color(a_button)
|
433
|
+
|
434
|
+
buttons_to_send = []
|
435
|
+
|
436
|
+
if self.pref.get("run_state"):
|
437
|
+
if self.current_widget == "callsign":
|
438
|
+
if len(self.callsign.text()) < 3:
|
439
|
+
self.make_button_green(self.esm_dict["CQ"])
|
440
|
+
buttons_to_send.append(self.esm_dict["CQ"])
|
441
|
+
elif len(self.callsign.text()) > 2 and self.callsign.text().isalnum():
|
442
|
+
self.make_button_green(self.esm_dict["HISCALL"])
|
443
|
+
self.make_button_green(self.esm_dict["EXCH"])
|
444
|
+
buttons_to_send.append(self.esm_dict["HISCALL"])
|
445
|
+
buttons_to_send.append(self.esm_dict["EXCH"])
|
446
|
+
|
447
|
+
if self.current_widget == "other_2":
|
448
|
+
if self.other_2.text() == "":
|
449
|
+
self.make_button_green(self.esm_dict["AGN"])
|
450
|
+
buttons_to_send.append(self.esm_dict["AGN"])
|
451
|
+
elif self.other_2.text().isnumeric():
|
452
|
+
self.make_button_green(self.esm_dict["QRZ"])
|
453
|
+
buttons_to_send.append(self.esm_dict["QRZ"])
|
454
|
+
buttons_to_send.append("LOGIT")
|
455
|
+
else:
|
456
|
+
self.make_button_green(self.esm_dict["AGN"])
|
457
|
+
buttons_to_send.append(self.esm_dict["AGN"])
|
458
|
+
|
459
|
+
if with_enter is True and bool(len(buttons_to_send)):
|
460
|
+
for button in buttons_to_send:
|
461
|
+
if button:
|
462
|
+
if button == "LOGIT":
|
463
|
+
self.save_contact()
|
464
|
+
continue
|
465
|
+
self.process_function_key(button)
|
466
|
+
else:
|
467
|
+
if self.current_widget == "callsign":
|
468
|
+
if len(self.callsign.text()) > 2 and self.callsign.text().isalnum():
|
469
|
+
self.make_button_green(self.esm_dict["MYCALL"])
|
470
|
+
buttons_to_send.append(self.esm_dict["MYCALL"])
|
471
|
+
|
472
|
+
if self.current_widget == "other_2":
|
473
|
+
if self.other_2.text() == "":
|
474
|
+
self.make_button_green(self.esm_dict["AGN"])
|
475
|
+
buttons_to_send.append(self.esm_dict["AGN"])
|
476
|
+
elif self.other_2.text().isnumeric():
|
477
|
+
self.make_button_green(self.esm_dict["EXCH"])
|
478
|
+
buttons_to_send.append(self.esm_dict["EXCH"])
|
479
|
+
buttons_to_send.append("LOGIT")
|
480
|
+
else:
|
481
|
+
self.make_button_green(self.esm_dict["AGN"])
|
482
|
+
buttons_to_send.append(self.esm_dict["AGN"])
|
483
|
+
|
484
|
+
if with_enter is True and bool(len(buttons_to_send)):
|
485
|
+
for button in buttons_to_send:
|
486
|
+
if button:
|
487
|
+
if button == "LOGIT":
|
488
|
+
self.save_contact()
|
489
|
+
continue
|
490
|
+
self.process_function_key(button)
|
not1mm/plugins/cq_ww_rtty.py
CHANGED
@@ -146,7 +146,7 @@ def set_contact_vars(self):
|
|
146
146
|
self.contact["ZN"] = self.other_1.text()
|
147
147
|
self.contact["Exchange1"] = self.other_2.text()
|
148
148
|
self.contact["SentNr"] = self.contest_settings.get("SentExchange", 0)
|
149
|
-
|
149
|
+
|
150
150
|
|
151
151
|
def predupe(self):
|
152
152
|
"""called after callsign entered"""
|
@@ -195,7 +195,11 @@ def show_mults(self):
|
|
195
195
|
res3_query = f"select count(DISTINCT(Exchange1 || ':' || Band)) as spc_count from dxlog where ContestNR = {self.database.current_contest};"
|
196
196
|
result3 = self.database.exec_sql(res3_query)
|
197
197
|
if result1 and result2 and result3:
|
198
|
-
return
|
198
|
+
return (
|
199
|
+
int(result1.get("zb_count", 0))
|
200
|
+
+ int(result2.get("cb_count", 0))
|
201
|
+
+ int(result3.get("spc_count", 0))
|
202
|
+
)
|
199
203
|
return 0
|
200
204
|
|
201
205
|
|
@@ -366,21 +370,21 @@ def cabrillo(self):
|
|
366
370
|
if themode == "LSB" or themode == "USB":
|
367
371
|
themode = "PH"
|
368
372
|
if themode.strip() in (
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
373
|
+
"RTTY",
|
374
|
+
"RTTY-R",
|
375
|
+
"LSB-D",
|
376
|
+
"USB-D",
|
377
|
+
"AM-D",
|
378
|
+
"FM-D",
|
379
|
+
"DIGI-U",
|
380
|
+
"DIGI-L",
|
381
|
+
"RTTYR",
|
382
|
+
"PKTLSB",
|
383
|
+
"PKTUSB",
|
384
|
+
):
|
381
385
|
themode = "RY"
|
382
|
-
exchange1 = contact.get(
|
383
|
-
if exchange1 ==
|
386
|
+
exchange1 = contact.get("Exchange1", "")
|
387
|
+
if exchange1 == "":
|
384
388
|
exchange1 = "DX"
|
385
389
|
frequency = str(int(contact.get("Freq", "0"))).rjust(5)
|
386
390
|
|
@@ -491,3 +495,117 @@ def ft8_handler(the_packet: dict):
|
|
491
495
|
ALTEREGO.other_1.setText(str(the_packet.get("CQZ", "ERR")))
|
492
496
|
ALTEREGO.other_2.setText(f'{the_packet.get("STATE", "")}'.strip())
|
493
497
|
ALTEREGO.save_contact()
|
498
|
+
|
499
|
+
|
500
|
+
def process_esm(self, new_focused_widget=None, with_enter=False):
|
501
|
+
"""ESM State Machine"""
|
502
|
+
|
503
|
+
# self.pref["run_state"]
|
504
|
+
|
505
|
+
# -----===== Assigned F-Keys =====-----
|
506
|
+
# self.esm_dict["CQ"]
|
507
|
+
# self.esm_dict["EXCH"]
|
508
|
+
# self.esm_dict["QRZ"]
|
509
|
+
# self.esm_dict["AGN"]
|
510
|
+
# self.esm_dict["HISCALL"]
|
511
|
+
# self.esm_dict["MYCALL"]
|
512
|
+
# self.esm_dict["QSOB4"]
|
513
|
+
|
514
|
+
# ----==== text fields ====----
|
515
|
+
# self.callsign
|
516
|
+
# self.sent
|
517
|
+
# self.receive
|
518
|
+
# self.other_1
|
519
|
+
# self.other_2
|
520
|
+
|
521
|
+
inputs = {
|
522
|
+
self.callsign: "callsign",
|
523
|
+
self.sent: "sent",
|
524
|
+
self.receive: "receive",
|
525
|
+
self.other_1: "other_1",
|
526
|
+
self.other_2: "other_2",
|
527
|
+
}
|
528
|
+
if new_focused_widget is not None:
|
529
|
+
self.current_widget = inputs.get(new_focused_widget)
|
530
|
+
|
531
|
+
# print(f"checking esm {self.current_widget=} {with_enter=} {self.pref.get("run_state")=}")
|
532
|
+
|
533
|
+
for a_button in [
|
534
|
+
self.F1,
|
535
|
+
self.F2,
|
536
|
+
self.F3,
|
537
|
+
self.F4,
|
538
|
+
self.F5,
|
539
|
+
self.F6,
|
540
|
+
self.F7,
|
541
|
+
self.F8,
|
542
|
+
self.F9,
|
543
|
+
self.F10,
|
544
|
+
self.F11,
|
545
|
+
self.F12,
|
546
|
+
]:
|
547
|
+
self.restore_button_color(a_button)
|
548
|
+
|
549
|
+
buttons_to_send = []
|
550
|
+
|
551
|
+
if self.pref.get("run_state"):
|
552
|
+
if self.current_widget == "callsign":
|
553
|
+
if len(self.callsign.text()) < 3:
|
554
|
+
self.make_button_green(self.esm_dict["CQ"])
|
555
|
+
buttons_to_send.append(self.esm_dict["CQ"])
|
556
|
+
elif len(self.callsign.text()) > 2 and self.callsign.text().isalnum():
|
557
|
+
self.make_button_green(self.esm_dict["HISCALL"])
|
558
|
+
self.make_button_green(self.esm_dict["EXCH"])
|
559
|
+
buttons_to_send.append(self.esm_dict["HISCALL"])
|
560
|
+
buttons_to_send.append(self.esm_dict["EXCH"])
|
561
|
+
|
562
|
+
if self.current_widget in ["other_1", "other_2"]:
|
563
|
+
if self.other_2.text() == "" or self.other_1.text() == "":
|
564
|
+
self.make_button_green(self.esm_dict["AGN"])
|
565
|
+
buttons_to_send.append(self.esm_dict["AGN"])
|
566
|
+
elif self.other_1.text().isnumeric() and self.other_2.text().isalpha():
|
567
|
+
self.make_button_green(self.esm_dict["QRZ"])
|
568
|
+
buttons_to_send.append(self.esm_dict["QRZ"])
|
569
|
+
buttons_to_send.append("LOGIT")
|
570
|
+
else:
|
571
|
+
self.make_button_green(self.esm_dict["AGN"])
|
572
|
+
buttons_to_send.append(self.esm_dict["AGN"])
|
573
|
+
|
574
|
+
if with_enter is True and bool(len(buttons_to_send)):
|
575
|
+
sendstring = ""
|
576
|
+
for button in buttons_to_send:
|
577
|
+
if button:
|
578
|
+
if button == "LOGIT":
|
579
|
+
self.save_contact()
|
580
|
+
continue
|
581
|
+
sendstring = f"{sendstring}{self.process_macro(button.toolTip())} "
|
582
|
+
# self.process_function_key(button, rttysendrx=False)
|
583
|
+
self.fldigi_util.send_string(sendstring)
|
584
|
+
else:
|
585
|
+
if self.current_widget == "callsign":
|
586
|
+
if len(self.callsign.text()) > 2 and self.callsign.text().isalnum():
|
587
|
+
self.make_button_green(self.esm_dict["MYCALL"])
|
588
|
+
buttons_to_send.append(self.esm_dict["MYCALL"])
|
589
|
+
|
590
|
+
if self.current_widget in ["other_1", "other_2"]:
|
591
|
+
if self.other_2.text() == "" or self.other_1.text() == "":
|
592
|
+
self.make_button_green(self.esm_dict["AGN"])
|
593
|
+
buttons_to_send.append(self.esm_dict["AGN"])
|
594
|
+
elif self.other_1.text().isnumeric() and self.other_2.text().isalpha():
|
595
|
+
self.make_button_green(self.esm_dict["EXCH"])
|
596
|
+
buttons_to_send.append(self.esm_dict["EXCH"])
|
597
|
+
buttons_to_send.append("LOGIT")
|
598
|
+
else:
|
599
|
+
self.make_button_green(self.esm_dict["AGN"])
|
600
|
+
buttons_to_send.append(self.esm_dict["AGN"])
|
601
|
+
|
602
|
+
if with_enter is True and bool(len(buttons_to_send)):
|
603
|
+
sendstring = ""
|
604
|
+
for button in buttons_to_send:
|
605
|
+
if button:
|
606
|
+
if button == "LOGIT":
|
607
|
+
self.save_contact()
|
608
|
+
continue
|
609
|
+
sendstring = f"{sendstring}{self.process_macro(button.toolTip())} "
|
610
|
+
# self.process_function_key(button, rttysendrx=False)
|
611
|
+
self.fldigi_util.send_string(sendstring)
|
not1mm/plugins/cq_ww_ssb.py
CHANGED
@@ -380,3 +380,111 @@ def cabrillo(self):
|
|
380
380
|
|
381
381
|
def recalculate_mults(self):
|
382
382
|
"""Recalculates multipliers after change in logged qso."""
|
383
|
+
|
384
|
+
|
385
|
+
def process_esm(self, new_focused_widget=None, with_enter=False):
|
386
|
+
"""ESM State Machine"""
|
387
|
+
|
388
|
+
# self.pref["run_state"]
|
389
|
+
|
390
|
+
# -----===== Assigned F-Keys =====-----
|
391
|
+
# self.esm_dict["CQ"]
|
392
|
+
# self.esm_dict["EXCH"]
|
393
|
+
# self.esm_dict["QRZ"]
|
394
|
+
# self.esm_dict["AGN"]
|
395
|
+
# self.esm_dict["HISCALL"]
|
396
|
+
# self.esm_dict["MYCALL"]
|
397
|
+
# self.esm_dict["QSOB4"]
|
398
|
+
|
399
|
+
# ----==== text fields ====----
|
400
|
+
# self.callsign
|
401
|
+
# self.sent
|
402
|
+
# self.receive
|
403
|
+
# self.other_1
|
404
|
+
# self.other_2
|
405
|
+
|
406
|
+
inputs = {
|
407
|
+
self.callsign: "callsign",
|
408
|
+
self.sent: "sent",
|
409
|
+
self.receive: "receive",
|
410
|
+
self.other_1: "other_1",
|
411
|
+
self.other_2: "other_2",
|
412
|
+
}
|
413
|
+
if new_focused_widget is not None:
|
414
|
+
self.current_widget = inputs.get(new_focused_widget)
|
415
|
+
|
416
|
+
# print(f"checking esm {self.current_widget=} {with_enter=} {self.pref.get("run_state")=}")
|
417
|
+
|
418
|
+
for a_button in [
|
419
|
+
self.F1,
|
420
|
+
self.F2,
|
421
|
+
self.F3,
|
422
|
+
self.F4,
|
423
|
+
self.F5,
|
424
|
+
self.F6,
|
425
|
+
self.F7,
|
426
|
+
self.F8,
|
427
|
+
self.F9,
|
428
|
+
self.F10,
|
429
|
+
self.F11,
|
430
|
+
self.F12,
|
431
|
+
]:
|
432
|
+
self.restore_button_color(a_button)
|
433
|
+
|
434
|
+
buttons_to_send = []
|
435
|
+
|
436
|
+
if self.pref.get("run_state"):
|
437
|
+
if self.current_widget == "callsign":
|
438
|
+
if len(self.callsign.text()) < 3:
|
439
|
+
self.make_button_green(self.esm_dict["CQ"])
|
440
|
+
buttons_to_send.append(self.esm_dict["CQ"])
|
441
|
+
elif len(self.callsign.text()) > 2 and self.callsign.text().isalnum():
|
442
|
+
self.make_button_green(self.esm_dict["HISCALL"])
|
443
|
+
self.make_button_green(self.esm_dict["EXCH"])
|
444
|
+
buttons_to_send.append(self.esm_dict["HISCALL"])
|
445
|
+
buttons_to_send.append(self.esm_dict["EXCH"])
|
446
|
+
|
447
|
+
if self.current_widget == "other_2":
|
448
|
+
if self.other_2.text() == "":
|
449
|
+
self.make_button_green(self.esm_dict["AGN"])
|
450
|
+
buttons_to_send.append(self.esm_dict["AGN"])
|
451
|
+
elif self.other_2.text().isnumeric():
|
452
|
+
self.make_button_green(self.esm_dict["QRZ"])
|
453
|
+
buttons_to_send.append(self.esm_dict["QRZ"])
|
454
|
+
buttons_to_send.append("LOGIT")
|
455
|
+
else:
|
456
|
+
self.make_button_green(self.esm_dict["AGN"])
|
457
|
+
buttons_to_send.append(self.esm_dict["AGN"])
|
458
|
+
|
459
|
+
if with_enter is True and bool(len(buttons_to_send)):
|
460
|
+
for button in buttons_to_send:
|
461
|
+
if button:
|
462
|
+
if button == "LOGIT":
|
463
|
+
self.save_contact()
|
464
|
+
continue
|
465
|
+
self.process_function_key(button)
|
466
|
+
else:
|
467
|
+
if self.current_widget == "callsign":
|
468
|
+
if len(self.callsign.text()) > 2 and self.callsign.text().isalnum():
|
469
|
+
self.make_button_green(self.esm_dict["MYCALL"])
|
470
|
+
buttons_to_send.append(self.esm_dict["MYCALL"])
|
471
|
+
|
472
|
+
if self.current_widget == "other_2":
|
473
|
+
if self.other_2.text() == "":
|
474
|
+
self.make_button_green(self.esm_dict["AGN"])
|
475
|
+
buttons_to_send.append(self.esm_dict["AGN"])
|
476
|
+
elif self.other_2.text().isnumeric():
|
477
|
+
self.make_button_green(self.esm_dict["EXCH"])
|
478
|
+
buttons_to_send.append(self.esm_dict["EXCH"])
|
479
|
+
buttons_to_send.append("LOGIT")
|
480
|
+
else:
|
481
|
+
self.make_button_green(self.esm_dict["AGN"])
|
482
|
+
buttons_to_send.append(self.esm_dict["AGN"])
|
483
|
+
|
484
|
+
if with_enter is True and bool(len(buttons_to_send)):
|
485
|
+
for button in buttons_to_send:
|
486
|
+
if button:
|
487
|
+
if button == "LOGIT":
|
488
|
+
self.save_contact()
|
489
|
+
continue
|
490
|
+
self.process_function_key(button)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: not1mm
|
3
|
-
Version: 24.10.
|
3
|
+
Version: 24.10.11
|
4
4
|
Summary: NOT1MM Logger
|
5
5
|
Author-email: Michael Bridak <michael.bridak@gmail.com>
|
6
6
|
Project-URL: Homepage, https://github.com/mbridak/not1mm
|
@@ -118,6 +118,16 @@ Requires-Dist: Levenshtein
|
|
118
118
|
- [Cabrillo](#cabrillo)
|
119
119
|
- [ADIF](#adif)
|
120
120
|
- [Recalulate Mults](#recalulate-mults)
|
121
|
+
- [Testing Out ESM Currently only in CQ WW](#testing-out-esm-currently-only-in-cq-ww)
|
122
|
+
- [Run States](#run-states)
|
123
|
+
- [CQ](#cq)
|
124
|
+
- [Call Entered send His Call and the Exchange](#call-entered-send-his-call-and-the-exchange)
|
125
|
+
- [Empty exchange field send AGN till you get it](#empty-exchange-field-send-agn-till-you-get-it)
|
126
|
+
- [Exchange field filled, send TU QRZ and logs it](#exchange-field-filled-send-tu-qrz-and-logs-it)
|
127
|
+
- [S\&P States](#sp-states)
|
128
|
+
- [With his call entered, Send your call](#with-his-call-entered-send-your-call)
|
129
|
+
- [If no exchange entered send AGN](#if-no-exchange-entered-send-agn)
|
130
|
+
- [With exchange entered, send your exchange and log it](#with-exchange-entered-send-your-exchange-and-log-it)
|
121
131
|
- [Contest specific notes](#contest-specific-notes)
|
122
132
|
- [ARRL Sweekstakes](#arrl-sweekstakes)
|
123
133
|
- [The exchange parser](#the-exchange-parser)
|
@@ -219,6 +229,8 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
|
|
219
229
|
|
220
230
|
## Recent Changes
|
221
231
|
|
232
|
+
- [24-10-11] added ESM to CQWW SSB and RTTY.
|
233
|
+
- [24-10-10] Add ESM to CQ WW CW to test it out.
|
222
234
|
- [24-10-8] Fix crash on Tune to spot. Change placeholder text for the CW port for those unable to read documentation.
|
223
235
|
- [24-10-6] Removed 60, 30, 17 and 12M from the default list of bands.
|
224
236
|
- [24-10-5-1] Store the bandmap spots age timer in the preferences.
|
@@ -828,6 +840,53 @@ After editing a contact and before generating a Cabrillo file. There is a Misc
|
|
828
840
|
menu option that will recalculate the multipliers incase an edit had caused a
|
829
841
|
change.
|
830
842
|
|
843
|
+
## Testing Out ESM Currently only in CQ WW
|
844
|
+
|
845
|
+
I caved and started working on ESM or Enter Sends Message. Currently it is only
|
846
|
+
working in the CQ WW. To test it out you can go to `FILE -> Configuration Settings`
|
847
|
+
|
848
|
+

|
849
|
+
|
850
|
+
Check the mark to Enable ESM and tell it which function keys do what. The keys will need
|
851
|
+
to have the same function in both Run and S&P modes. The function keys will highlight
|
852
|
+
green depending on the state of the input fields. The green keys will be sent if you
|
853
|
+
press the Enter key. You should use the Space bar to move to another field.
|
854
|
+
|
855
|
+
The contact will be automatically logged once all the needed info is collected and the
|
856
|
+
QRZ (for Run) or Exchange (for S&P) is sent.
|
857
|
+
|
858
|
+
### Run States
|
859
|
+
|
860
|
+
#### CQ
|
861
|
+
|
862
|
+

|
863
|
+
|
864
|
+
#### Call Entered send His Call and the Exchange
|
865
|
+
|
866
|
+

|
867
|
+
|
868
|
+
#### Empty exchange field send AGN till you get it
|
869
|
+
|
870
|
+

|
871
|
+
|
872
|
+
#### Exchange field filled, send TU QRZ and logs it
|
873
|
+
|
874
|
+

|
875
|
+
|
876
|
+
### S&P States
|
877
|
+
|
878
|
+
#### With his call entered, Send your call
|
879
|
+
|
880
|
+

|
881
|
+
|
882
|
+
#### If no exchange entered send AGN
|
883
|
+
|
884
|
+

|
885
|
+
|
886
|
+
#### With exchange entered, send your exchange and log it
|
887
|
+
|
888
|
+

|
889
|
+
|
831
890
|
## Contest specific notes
|
832
891
|
|
833
892
|
I found it might be beneficial to have a section devoted to wierd quirky things
|
@@ -869,4 +928,4 @@ The best thing you can do is play around with it to see how it behaves.
|
|
869
928
|
In the `Sent Exchange` field of the New Contest dialog put in the Precidence,
|
870
929
|
Call, Check and Section. Example: `A K6GTE 17 ORG`.
|
871
930
|
|
872
|
-
For the Run Exchange macro I'd put `{HISCALL}
|
931
|
+
For the Run Exchange macro I'd put `{HISCALL} {SENTNR} {EXCH}`.
|
@@ -1,5 +1,5 @@
|
|
1
1
|
not1mm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
|
-
not1mm/__main__.py,sha256=
|
2
|
+
not1mm/__main__.py,sha256=ngZS47u69zLx2N6xzpRqisV8_NB5_JDhTPh6BD8x0DY,134836
|
3
3
|
not1mm/bandmap.py,sha256=P91rYGmd8r5K6TRNZt7kqqW6zCBVlFA1_n9-V7as1WE,31672
|
4
4
|
not1mm/checkwindow.py,sha256=aI-nr8OF90IWV7R_XRdmitvBJ9M85evCs72HoU3Jnvc,10374
|
5
5
|
not1mm/fsutils.py,sha256=ukHKxKTeNKxKwqRaJjtzRShL4X5Xl0jRBbADyy3Ifp8,1701
|
@@ -16,7 +16,7 @@ not1mm/data/alpha bravo charlie delta.txt,sha256=d5QMmSWEUAe4Rj1XbNjTPLa_5Be4Se6
|
|
16
16
|
not1mm/data/bandmap.ui,sha256=hvovf1YKyfUVVbKl6Ib2zU4RdUrFsQwm-255wVeKXZE,7180
|
17
17
|
not1mm/data/check.png,sha256=UvFOLr8V-79qnjW8wUaGItXk_OSP8m8hqPevs8NDlFY,387
|
18
18
|
not1mm/data/checkwindow.ui,sha256=Ux5EgO-JalGB9qx3M6tmMpGHO0RmuuY1w0XEbuwd1xk,4658
|
19
|
-
not1mm/data/configuration.ui,sha256=
|
19
|
+
not1mm/data/configuration.ui,sha256=VGJYL14XPuJkJVKk0FWyZWFXK5ibZ3_0_VUBXyzKnOk,68141
|
20
20
|
not1mm/data/contests.sql,sha256=4hmJCDvrbxnA_Y5S4T5o52TZieeFk6QUwFerwlFePNA,89307
|
21
21
|
not1mm/data/cty.json,sha256=sBIN1raQOKeVIO5dRaWn0Yqq8XZKpM_VCzS3kMlcwp4,4871545
|
22
22
|
not1mm/data/cwmacros.txt,sha256=PvJ7TxGILq-ErHb6Gbrm-08x76BbCdXb8AY8a7st5mg,451
|
@@ -112,9 +112,9 @@ not1mm/lib/new_contest.py,sha256=IznTDMq7yXHB6zBoGUEC_WDYPCPpsSZW4wwMJi16zK0,816
|
|
112
112
|
not1mm/lib/playsound.py,sha256=kxkcitBFbZCXJ2wxQ1lxg4rBwfxiSpuNpJSXHOPCoXA,9241
|
113
113
|
not1mm/lib/plugin_common.py,sha256=TbFUbftjELFt4QRdsjSHbqnXSngZOlSwlCTClqosDXA,9727
|
114
114
|
not1mm/lib/select_contest.py,sha256=WsptLuwkouIHeocJL3oZ6-eUfEnhpwdc-x7eMZ_TIVM,359
|
115
|
-
not1mm/lib/settings.py,sha256=
|
115
|
+
not1mm/lib/settings.py,sha256=7_JFDSKPOd35Gwzqhrbed4EfrlYUm7AEnz2xBRioc-g,13280
|
116
116
|
not1mm/lib/super_check_partial.py,sha256=p5l3u2ZOCBtlWgbvskC50FpuoaIpR07tfC6zTdRWbh4,2334
|
117
|
-
not1mm/lib/version.py,sha256=
|
117
|
+
not1mm/lib/version.py,sha256=11sLQyVzbaMjvkMIKVrGCgt7rstPeuBY2T3MByUrYys,49
|
118
118
|
not1mm/lib/versiontest.py,sha256=8vDNptuBBunn-1IGkjNaquehqBYUJyjrPSF8Igmd4_Y,1286
|
119
119
|
not1mm/plugins/10_10_fall_cw.py,sha256=IttjX1yy4nDdACGsiYlPteFG8eVseX_WtoFio6bqHE8,10953
|
120
120
|
not1mm/plugins/10_10_spring_cw.py,sha256=ThCptdM3dX4ywhoy2JRcOEyHSqcJolFaT7O_PYzM1Mg,10958
|
@@ -137,9 +137,9 @@ not1mm/plugins/cq_160_ssb.py,sha256=zIwSMAjHSt6W2edrDzVbyTf860JowHoFkU9BKO8Enag,
|
|
137
137
|
not1mm/plugins/cq_wpx_cw.py,sha256=9aNzAR-KhznIwUlxUFjAi_hbiw_6RrCMwUBk9I2f6Hs,14037
|
138
138
|
not1mm/plugins/cq_wpx_rtty.py,sha256=PpU_PxjQGeMjzbofYNsl-No37s7IgkPyW2bKFRkN9jU,16473
|
139
139
|
not1mm/plugins/cq_wpx_ssb.py,sha256=-hGRovqHR9rfOUnG4LPOoABTb4heH8VAX6rYdJbCqsw,12687
|
140
|
-
not1mm/plugins/cq_ww_cw.py,sha256=
|
141
|
-
not1mm/plugins/cq_ww_rtty.py,sha256=
|
142
|
-
not1mm/plugins/cq_ww_ssb.py,sha256=
|
140
|
+
not1mm/plugins/cq_ww_cw.py,sha256=rtJynxy4RAYXwGOk76k6DbVN1lo-Zl9voFH5t2OgplA,16130
|
141
|
+
not1mm/plugins/cq_ww_rtty.py,sha256=PkwYEObRGw2oX5E1ch7ApsEP0AnnOCL9fbxq4zh4jns,21088
|
142
|
+
not1mm/plugins/cq_ww_ssb.py,sha256=yZ-M6FE9TTKpZk9kMIzGCGB8Lszowj_bO2fRUa2PuP4,16421
|
143
143
|
not1mm/plugins/cwt.py,sha256=KvvkEfQrYSra0y8qE4yThvZNLrZcslt0IqYEomDpf-M,12774
|
144
144
|
not1mm/plugins/general_logging.py,sha256=n-2es7erqK1ptwq_wwIKIwktptKN7ra2eWjAQlpXUac,3479
|
145
145
|
not1mm/plugins/helvetia.py,sha256=6aOO4uiLzFFgHA-A3xz6IRdCJpqPOAm0egKxP5Y_Ie0,15432
|
@@ -157,9 +157,9 @@ not1mm/plugins/ref_cw.py,sha256=aWjHHkqIKutjRUtzh09y5haFfnZK9poRQDWRQMDRxxU,1632
|
|
157
157
|
not1mm/plugins/stew_perry_topband.py,sha256=CKBQbYl4ETxhXJd2dma4fg_C5pag_s7Nf61SCztZtqE,10668
|
158
158
|
not1mm/plugins/weekly_rtty.py,sha256=DQcy3SY0Zn56EdlYGf3NxrRhTnkNa5IqRQPRQdKDSPs,14255
|
159
159
|
not1mm/plugins/winter_field_day.py,sha256=4rcfRtobwjHO6BNL3WOTHzBmyyeuX79BNGBG8PfjrI8,10238
|
160
|
-
not1mm-24.10.
|
161
|
-
not1mm-24.10.
|
162
|
-
not1mm-24.10.
|
163
|
-
not1mm-24.10.
|
164
|
-
not1mm-24.10.
|
165
|
-
not1mm-24.10.
|
160
|
+
not1mm-24.10.11.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
161
|
+
not1mm-24.10.11.dist-info/METADATA,sha256=BUtm_36wm9fHDJY2I_NUWaM2pp8CDqmgZZ1OACiSGb8,33562
|
162
|
+
not1mm-24.10.11.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
|
163
|
+
not1mm-24.10.11.dist-info/entry_points.txt,sha256=pMcZk_0dxFgLkcUkF0Q874ojpwOmF3OL6EKw9LgvocM,47
|
164
|
+
not1mm-24.10.11.dist-info/top_level.txt,sha256=0YmTxEcDzQlzXub-lXASvoLpg_mt1c2thb5cVkDf5J4,7
|
165
|
+
not1mm-24.10.11.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|