diff --git a/tnc/daemon.py b/tnc/daemon.py index f4bfd110..61f08182 100755 --- a/tnc/daemon.py +++ b/tnc/daemon.py @@ -386,6 +386,11 @@ if __name__ == '__main__': ARGS = PARSER.parse_args() PORT = ARGS.socket_port HAMLIB_USE_RIGCTL = ARGS.hamlib_use_rigctl + + # force use of rigctl when on windows + if sys.platform == 'win32' or sys.platform == 'win64': + HAMLIB_USE_RIGCTL = True + if HAMLIB_USE_RIGCTL: structlog.get_logger("structlog").warning("using hamlib rigctl module...") hamlib_version = 0 diff --git a/tnc/lib/hamlib/win32/README b/tnc/lib/hamlib/win32/README new file mode 100644 index 00000000..3f32f449 --- /dev/null +++ b/tnc/lib/hamlib/win32/README @@ -0,0 +1 @@ +# hamlib win32 4.4 diff --git a/tnc/lib/hamlib/win32/libgcc_s_sjlj-1.dll b/tnc/lib/hamlib/win32/libgcc_s_sjlj-1.dll new file mode 100755 index 00000000..c8d71f74 Binary files /dev/null and b/tnc/lib/hamlib/win32/libgcc_s_sjlj-1.dll differ diff --git a/tnc/lib/hamlib/win32/libhamlib-4.dll b/tnc/lib/hamlib/win32/libhamlib-4.dll new file mode 100755 index 00000000..9879636c Binary files /dev/null and b/tnc/lib/hamlib/win32/libhamlib-4.dll differ diff --git a/tnc/lib/hamlib/win32/libusb-1.0.dll b/tnc/lib/hamlib/win32/libusb-1.0.dll new file mode 100644 index 00000000..fd7a9414 Binary files /dev/null and b/tnc/lib/hamlib/win32/libusb-1.0.dll differ diff --git a/tnc/lib/hamlib/win32/libwinpthread-1.dll b/tnc/lib/hamlib/win32/libwinpthread-1.dll new file mode 100755 index 00000000..1d7f127a Binary files /dev/null and b/tnc/lib/hamlib/win32/libwinpthread-1.dll differ diff --git a/tnc/lib/hamlib/win32/rigctl.exe b/tnc/lib/hamlib/win32/rigctl.exe new file mode 100755 index 00000000..0f626fe8 Binary files /dev/null and b/tnc/lib/hamlib/win32/rigctl.exe differ diff --git a/tnc/lib/hamlib/win64/README b/tnc/lib/hamlib/win64/README new file mode 100644 index 00000000..596040dc --- /dev/null +++ b/tnc/lib/hamlib/win64/README @@ -0,0 +1 @@ +# hamlib win64 4.4 diff --git a/tnc/lib/hamlib/win64/libgcc_s_sjlj-1.dll b/tnc/lib/hamlib/win64/libgcc_s_sjlj-1.dll new file mode 100755 index 00000000..c8d71f74 Binary files /dev/null and b/tnc/lib/hamlib/win64/libgcc_s_sjlj-1.dll differ diff --git a/tnc/lib/hamlib/win64/libhamlib-4.dll b/tnc/lib/hamlib/win64/libhamlib-4.dll new file mode 100755 index 00000000..acbfe29a Binary files /dev/null and b/tnc/lib/hamlib/win64/libhamlib-4.dll differ diff --git a/tnc/lib/hamlib/win64/libusb-1.0.dll b/tnc/lib/hamlib/win64/libusb-1.0.dll new file mode 100644 index 00000000..8ff6bcb2 Binary files /dev/null and b/tnc/lib/hamlib/win64/libusb-1.0.dll differ diff --git a/tnc/lib/hamlib/win64/libwinpthread-1.dll b/tnc/lib/hamlib/win64/libwinpthread-1.dll new file mode 100755 index 00000000..acd04238 Binary files /dev/null and b/tnc/lib/hamlib/win64/libwinpthread-1.dll differ diff --git a/tnc/lib/hamlib/win64/rigctl.exe b/tnc/lib/hamlib/win64/rigctl.exe new file mode 100755 index 00000000..769a7115 Binary files /dev/null and b/tnc/lib/hamlib/win64/rigctl.exe differ diff --git a/tnc/main.py b/tnc/main.py index bf174ab3..ecf3283d 100644 --- a/tnc/main.py +++ b/tnc/main.py @@ -59,6 +59,10 @@ if __name__ == '__main__': static.HAMLIB_USE_RIGCTL = ARGS.hamlib_use_rigctl print(ARGS.hamlib_use_rigctl) + # force use of rigctl when on windows + if sys.platform == 'win32' or sys.platform == 'win64': + HAMLIB_USE_RIGCTL = True + # we need to wait until we got all parameters from argparse first before we can load the other modules import sock diff --git a/tnc/rigctl.py b/tnc/rigctl.py index 54f46be6..44c874fd 100644 --- a/tnc/rigctl.py +++ b/tnc/rigctl.py @@ -9,6 +9,8 @@ import subprocess import structlog import time +import sys + # for rig_model -> rig_number only @@ -47,10 +49,16 @@ class radio: else: self.devicenumber = 6 #dummy structlog.get_logger("structlog").warning("[TNC] RADIO NOT FOUND USING DUMMY!", error=e) - - + print(self.devicenumber, self.deviceport, self.serialspeed) - self.cmd = 'rigctl -m %d -r %s -s %d ' % (int(self.devicenumber), self.deviceport, int(self.serialspeed)) + + # select precompiled executable for win32/win64 rigctl + # this is really a hack...somewhen we need a native hamlib integration for windows + if sys.platform == 'win32' or sys.platform == 'win64': + self.cmd = 'lib\\hamlib\\'+sys.platform+'\\rigctl -m %d -r %s -s %d ' % (int(self.devicenumber), self.deviceport, int(self.serialspeed)) + + else: + self.cmd = 'rigctl -m %d -r %s -s %d ' % (int(self.devicenumber), self.deviceport, int(self.serialspeed)) # eseguo semplicemente rigctl con il solo comando T 1 o T 0 per # il set e t per il get