Hi Bill, Thank you for your reply. I understood both your preference for WSJT-X coverage and the issue of GPL licensing for closed source dynamic link libraries.
The USBIF4CW was designed as HID like keyboard and mouse. The current USBIF4CW supports not only CW software but also digital mode software such as MMTTY, MMSSTV and MMVARI with DLL. We already considered to control PTT with either RTS or DTR signals via VCP driver for USBIF4CW. However, it is difficult to achieve complete operation on all versions of Windows with the developed VCP driver. For personal use, we try to branch the WSJT-X code to control our equipment. 73 de Mutsuhiro, JG5CBR On 2019/07/04 23:49, Bill Somerville wrote:
On 04/07/2019 13:54, [email protected] wrote:Hello all, We are developing a digital mode / CW interface named USBIF4CW from 2002. Could you please support our interface for the PTT method on WSJT-X? You can access it from python code via dll for Windows-OS as shown below. ##################################### self.lib = ctypes.windll.LoadLibrary("./usbif4cw.dll"); if (self.lib.usbif4cwOpen(0) < 0): tkmsg.showerror('err', 'USBIF4CW not found') self.dlg.destroy() self.port0_data = 0xFF # port0 default value # ON the PTT with audio self.port0_data &= 0xFD # ptt on self.port0_data &= 0xF7 # switch audio self.lib.usbif4cwWriteData(0, 0, self.port0_data) # OFF the PTT with audio self.port0_data |= 0x02; # ptt off self.port0_data |= 0x08; # switch audio self.lib.usbif4cwWriteData(0, 0, self.port0_data) self.lib.usbif4cwClose(0) ##################################### For details, please see the link below. http://nksg.net/usbif4cw/dll/usbif4cw-python-dev.zip http://nksg.net/usbif4cw/lab/devlib/ 73 de Mutsuhiro, JG5CBRHi Mutsuhiro san, thank you for informing us about your project. Unfortunately at first sight it does not seem to be compatible with WSJT-X for the following reasons: 1) Implementation appears to require closed source library which must be dynamically linked, to use such a library in WSJT-X would be in violation of our GPL licence terms. The only exception for closed source code in a GPL project is what is referred to as "system libraries" (https://www.gnu.org/licenses/gpl-faq.html#SystemLibraryException), 2) WSJT-X defers PTT handling either to Hamlib or to other applications via networking or other inter-process communications, 3) WSJT-X is not a python application and we do not have any current ability to call out to Python (yes I realize that we could call the DLL API via direct C/C++ calls), 4) Our preference is to support all of WSJT-X's features on multiple platforms currently including MS Windows, MacOS, and many *nix versions and distributions. We do have a couple of historical exceptions in the case of HRD and DX Lab Suite Commander, but note that they are via inter-process network interfaces and could be used across platform boundaries. And the OmniRig rig control server which is again via inter-process communications albeit MS proprietary (note that OmniRig is an Open Source project and could be ported to other platforms although not easily). So unfortunately at this stage it seems we must reject your kind offer to integrate your project with WSJT-X unless one or more of the above issues can be addressed or clarified. I note the USBIF4CW utilizes virtual serial port devices over a USB connection, if there is a spare virtual serial device available in the USBIF4CW; have you considered using either the RTS or DTR signals from this virtual device for direct PTT control? Doing so would make it possible for many CAT control applications, including WSJT-X, to control the target rig's PTT without any software modifications. I think this would only be possible if the controlling application can open the COM port even if it does not do any RS-232 communications on that port. 73 Bill G4WJS. _______________________________________________ wsjt-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/wsjt-devel
_______________________________________________ wsjt-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/wsjt-devel
