forked from Mirrors/arNetSked
Minor changes to get running in Python 3.13.
This commit is contained in:
15
arElement.py
15
arElement.py
@@ -18,8 +18,9 @@
|
|||||||
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
#
|
#
|
||||||
import datetime as dt
|
import datetime as dt
|
||||||
import pytz
|
#import pytz
|
||||||
from tzlocal import get_localzone
|
from tzlocal import get_localzone
|
||||||
|
from zoneinfo import ZoneInfo
|
||||||
|
|
||||||
import threading
|
import threading
|
||||||
|
|
||||||
@@ -47,12 +48,18 @@ class arElement():
|
|||||||
self._arTz = v
|
self._arTz = v
|
||||||
|
|
||||||
def arGetLocalTime(self):
|
def arGetLocalTime(self):
|
||||||
ldt = self._arLtz.localize(dt.datetime.now())
|
naive_dt = dt.datetime.now()
|
||||||
|
#print(naive_dt)
|
||||||
|
#aware_dt = naive_dt.replace(tzinfo=ZoneInfo('America/Chicago'))
|
||||||
|
ldt = naive_dt.replace(tzinfo=self._arLtz)
|
||||||
|
#ldt = self._arLtz.localize(dt.datetime.now())
|
||||||
return ldt.astimezone(self._arTz)
|
return ldt.astimezone(self._arTz)
|
||||||
|
|
||||||
def arGetUTCTime(self):
|
def arGetUTCTime(self):
|
||||||
ldt = self._arLtz.localize(dt.datetime.now())
|
#ldt = self._arLtz.localize(dt.datetime.now())
|
||||||
return ldt.astimezone(pytz.utc)
|
naive_dt = dt.datetime.now()
|
||||||
|
ldt = naive_dt.replace(tzinfo=self._arLtz)
|
||||||
|
return ldt.astimezone("Etc/UTC")
|
||||||
|
|
||||||
def arPrint(self, message):
|
def arPrint(self, message):
|
||||||
self._arPrintLock.acquire()
|
self._arPrintLock.acquire()
|
||||||
|
|||||||
28
arNetSked.py
28
arNetSked.py
@@ -183,8 +183,8 @@ class arNet(arElement, threading.Thread):
|
|||||||
if len(v) > 7:
|
if len(v) > 7:
|
||||||
raise ValueError("Invalid objfreq, len <= 7" % v)
|
raise ValueError("Invalid objfreq, len <= 7" % v)
|
||||||
|
|
||||||
if not re.fullmatch('[\d ]\d\d\.\d\d[\d ]', v):
|
if not re.fullmatch(r'[\d ]\d\d\.\d\d[\d ]', v):
|
||||||
raise ValueError("Invalid objfreq[%], format [\d ]\d\d.\d\d[\d ]" % v)
|
raise ValueError(r"Invalid objfreq[%], format [\d ]\d\d.\d\d[\d ]" % v)
|
||||||
|
|
||||||
self._objfreq = v
|
self._objfreq = v
|
||||||
|
|
||||||
@@ -198,9 +198,9 @@ class arNet(arElement, threading.Thread):
|
|||||||
if len(v) > 4:
|
if len(v) > 4:
|
||||||
raise ValueError("Invalid objtone, len <= 4" % v)
|
raise ValueError("Invalid objtone, len <= 4" % v)
|
||||||
|
|
||||||
if v != 'none' and not re.fullmatch('[CDTcdt]\d\d\d', v) \
|
if v != 'none' and not re.fullmatch(r'[CDTcdt]\d\d\d', v) \
|
||||||
and not re.fullmatch('[1l]750', v):
|
and not re.fullmatch('[1l]750', v):
|
||||||
raise ValueError("Invalid objtone[%s], format none, [1l]750 or [CDTcdt]\d\d\d" % v)
|
raise ValueError(r"Invalid objtone[%s], format none, [1l]750 or [CDTcdt]\d\d\d" % v)
|
||||||
|
|
||||||
self._objtone = v
|
self._objtone = v
|
||||||
|
|
||||||
@@ -214,9 +214,9 @@ class arNet(arElement, threading.Thread):
|
|||||||
if len(v) > 4:
|
if len(v) > 4:
|
||||||
raise ValueError("Invalid objrange, len <= 4")
|
raise ValueError("Invalid objrange, len <= 4")
|
||||||
|
|
||||||
if v != 'none' and not re.fullmatch('R\d\d[mk]', v) \
|
if v != 'none' and not re.fullmatch(r'R\d\d[mk]', v) \
|
||||||
and not re.fullmatch('[+-]\d\d\d', v):
|
and not re.fullmatch(r'[+-]\d\d\d', v):
|
||||||
raise ValueError("Invalid objrange[%s], format none or R\d\d[mk]" % v)
|
raise ValueError(r"Invalid objrange[%s], format none or R\d\d[mk]" % v)
|
||||||
|
|
||||||
self._objrange = v
|
self._objrange = v
|
||||||
|
|
||||||
@@ -233,7 +233,7 @@ class arNet(arElement, threading.Thread):
|
|||||||
|
|
||||||
if v != 'none' and \
|
if v != 'none' and \
|
||||||
not re.fullmatch('WIDE[21]-[21]', v) and \
|
not re.fullmatch('WIDE[21]-[21]', v) and \
|
||||||
not re.fullmatch('[A-Za-z]{1,2}\d[A-Za-z]{1,3}-\d{1,2}', v):
|
not re.fullmatch(r'[A-Za-z]{1,2}\d[A-Za-z]{1,3}-\d{1,2}', v):
|
||||||
raise ValueError("Invalid path[%s], format none or WIDEN-M or call-ssid" % v)
|
raise ValueError("Invalid path[%s], format none or WIDEN-M or call-ssid" % v)
|
||||||
|
|
||||||
self._path = v
|
self._path = v
|
||||||
@@ -249,7 +249,7 @@ class arNet(arElement, threading.Thread):
|
|||||||
if len(v) > 8:
|
if len(v) > 8:
|
||||||
raise ValueError("Invalid latitude[%s], len == 8" % v)
|
raise ValueError("Invalid latitude[%s], len == 8" % v)
|
||||||
|
|
||||||
if not re.fullmatch('[0-9]{4}\.[0-9]{2}[NS]', v):
|
if not re.fullmatch(r'[0-9]{4}\.[0-9]{2}[NS]', v):
|
||||||
raise ValueError("Invalid latitude[%s], format 0000.00[SN]" % v)
|
raise ValueError("Invalid latitude[%s], format 0000.00[SN]" % v)
|
||||||
|
|
||||||
self._latitude = v
|
self._latitude = v
|
||||||
@@ -265,7 +265,7 @@ class arNet(arElement, threading.Thread):
|
|||||||
if len(v) > 9:
|
if len(v) > 9:
|
||||||
raise ValueError("Invalid longitude[%s], len == 9" % v)
|
raise ValueError("Invalid longitude[%s], len == 9" % v)
|
||||||
|
|
||||||
if not re.fullmatch('[0-9]{5}\.[0-9]{2}[EW]', v):
|
if not re.fullmatch(r'[0-9]{5}\.[0-9]{2}[EW]', v):
|
||||||
raise ValueError("Invalid longitude[%s], format 00000.00[EW]" % v)
|
raise ValueError("Invalid longitude[%s], format 00000.00[EW]" % v)
|
||||||
|
|
||||||
self._longitude = v
|
self._longitude = v
|
||||||
@@ -367,7 +367,7 @@ class arNet(arElement, threading.Thread):
|
|||||||
def packHeader(self, call, path):
|
def packHeader(self, call, path):
|
||||||
valb = struct.pack('6s B', 'APZFRG'.encode('utf-8'), 0x70)
|
valb = struct.pack('6s B', 'APZFRG'.encode('utf-8'), 0x70)
|
||||||
|
|
||||||
m = re.search("([A-Za-z]{1,2}\d[A-Za-z]{1,3})-(\d{1,2})", call)
|
m = re.search(r"([A-Za-z]{1,2}\d[A-Za-z]{1,3})-(\d{1,2})", call)
|
||||||
if m:
|
if m:
|
||||||
callbase = m.group(1).ljust(6)
|
callbase = m.group(1).ljust(6)
|
||||||
callssid = int(m.group(2))
|
callssid = int(m.group(2))
|
||||||
@@ -382,7 +382,7 @@ class arNet(arElement, threading.Thread):
|
|||||||
valb += struct.pack('6s B', *vals)
|
valb += struct.pack('6s B', *vals)
|
||||||
|
|
||||||
vals = []
|
vals = []
|
||||||
dp = re.search("([A-Za-z]{1,2}\d[A-Za-z]{1,3})-(\d{1,2})", path)
|
dp = re.search(r"([A-Za-z]{1,2}\d[A-Za-z]{1,3})-(\d{1,2})", path)
|
||||||
wp = re.search("(WIDE[12])-([12])", path)
|
wp = re.search("(WIDE[12])-([12])", path)
|
||||||
if dp:
|
if dp:
|
||||||
pathbase = dp.group(1).ljust(6)
|
pathbase = dp.group(1).ljust(6)
|
||||||
@@ -488,7 +488,7 @@ class arNetSked(arElement):
|
|||||||
# connect to TNC
|
# connect to TNC
|
||||||
self.arPrint("Binding TNC client socket...")
|
self.arPrint("Binding TNC client socket...")
|
||||||
|
|
||||||
if re.fullmatch("\S\S:\S\S:\S\S:\S\S:\S\S:\S\S", self.tnchost):
|
if re.fullmatch(r"\S\S:\S\S:\S\S:\S\S:\S\S:\S\S", self.tnchost):
|
||||||
self.arPrint("Bluetooth host address detected")
|
self.arPrint("Bluetooth host address detected")
|
||||||
if self.tncport == 8001:
|
if self.tncport == 8001:
|
||||||
self.arPrint("Setting default bluetooth RFCOMM channel to 1")
|
self.arPrint("Setting default bluetooth RFCOMM channel to 1")
|
||||||
@@ -520,7 +520,7 @@ class arNetSked(arElement):
|
|||||||
lineno = 2
|
lineno = 2
|
||||||
for line in f:
|
for line in f:
|
||||||
lineno += 1
|
lineno += 1
|
||||||
if re.search('^\s*#', line):
|
if re.search(r'^\s*#', line):
|
||||||
continue
|
continue
|
||||||
# print (line)
|
# print (line)
|
||||||
line = line.ljust(75)
|
line = line.ljust(75)
|
||||||
|
|||||||
13
w1cdn_sked.cfg
Normal file
13
w1cdn_sked.cfg
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
DAY TIME RATE LATITUDE LONGITUDE NAME FREQ TONE RA/O PATH COMMENT
|
||||||
|
--- ------- ---- -------- --------- --------- ------- ---- ---- --------- -------------|---------
|
||||||
|
#FRI 08:00PM 3/30 0000.00N 00000.00W NET-????? 146.520 none R05m none NetSked Example
|
||||||
|
#SAT 09:00AM 5/45 0000.00N 00000.00W NET-????? 147.265 T100 +060 WIDE2-1 NetSked Example
|
||||||
|
#MON 03:00PM 3/30 4755.61N 09701.68W NET-TEST 146.940 T123 +060 WIDE2-1 NetSked Example
|
||||||
|
MON 09:00PM 5/30 4755.61N 09701.68W NET-WEEK 146.940 T123 -060 WIDE1-1 Weekly FM Net
|
||||||
|
WED 07:15PM 5/30 4755.61N 09701.68W NET-WEEK2 147.33 T123 +060 WIDE1-1 Weekly FM Net
|
||||||
|
WED 07:30PM 5/30 4755.61N 09701.68W NET-WEEK3 147.33 T123 +060 WIDE1-1 Weekly Dig Net
|
||||||
|
MON 08:30AM 5/30 4755.61N 09701.68W NET-AM 146.940 T123 -060 WIDE1-1 Morning Net
|
||||||
|
TUE 08:30AM 5/30 4755.61N 09701.68W NET-AM 146.940 T123 -060 WIDE1-1 Morning Net
|
||||||
|
WED 08:30AM 5/30 4755.61N 09701.68W NET-AM 146.940 T123 -060 WIDE1-1 Morning Net
|
||||||
|
THU 08:30AM 5/30 4755.61N 09701.68W NET-AM 146.940 T123 -060 WIDE1-1 Morning Net
|
||||||
|
FRI 08:30AM 5/30 4755.61N 09701.68W NET-AM 146.940 T123 -060 WIDE1-1 Morning Net
|
||||||
Reference in New Issue
Block a user