diff --git a/comms/nanovna-saver/Makefile b/comms/nanovna-saver/Makefile index faedd3e34948..f4873bfe58d8 100644 --- a/comms/nanovna-saver/Makefile +++ b/comms/nanovna-saver/Makefile @@ -1,31 +1,31 @@ PORTNAME= nanovna-saver DISTVERSIONPREFIX= v DISTVERSION= 0.3.10 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= comms hamradio MAINTAINER= hamradio@FreeBSD.org COMMENT= Multiplatform tool to save Touchstone files from the NanoVNA LICENSE= GPLv3 LICENSE_FILE= ${WRKSRC}/LICENSE PY_DEPENDS= ${PYNUMPY} \ ${PYTHON_PKGNAMEPREFIX}scipy>0:science/py-scipy@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pyserial>0:comms/py-pyserial@${PY_FLAVOR} BUILD_DEPENDS= ${PY_DEPENDS} RUN_DEPENDS= ${PY_DEPENDS} USES= python:3.3+ pyqt:5 USE_PYTHON= distutils autoplist noflavors USE_PYQT= pyqt5_run USE_GITHUB= yes GH_ACCOUNT= mihtjel NO_ARCH= yes post-extract: ${CP} ${FILESDIR}/Sysctl.py ${WRKSRC}/NanoVNASaver/Hardware/ .include diff --git a/comms/nanovna-saver/files/Sysctl.py b/comms/nanovna-saver/files/Sysctl.py index c05dd8036b9b..db94a418a1c4 100644 --- a/comms/nanovna-saver/files/Sysctl.py +++ b/comms/nanovna-saver/files/Sysctl.py @@ -1,23 +1,31 @@ import re +import os from ctypes import * from ctypes.util import find_library libc = cdll.LoadLibrary(find_library("c")) sysctlbyname = libc.sysctlbyname def posix_sysctlbyname(name): _len = c_uint(0) result = sysctlbyname(name,None , byref(_len), None, 0) _mem = create_string_buffer(_len.value) result = sysctlbyname(name, _mem, byref(_len), None, 0) if result != 0: raise Exception('sysctlbyname returned with error %s' % result) return _mem.value def usb_vid_pid(name): - digit = (re.search(r'\d',name)).group() - result = (posix_sysctlbyname(b'dev.umodem.'+bytes(digit,'ascii')+b'.%pnpinfo')).decode('ascii') - items=result.split(' ') - vendor=int(items[0].split('=')[1],0) - product=int(items[1].split('=')[1],0) - return([vendor,product]) + dev = bytes(name[8:],'ascii') + for i in range(len(os.listdir('/dev/usb'))): + try: + found_dev = posix_sysctlbyname(b'dev.umodem.'+bytes(str(i),'ascii')+b'.ttyname') + if dev == found_dev: + result = (posix_sysctlbyname(b'dev.umodem.'+bytes(str(i),'ascii')+b'.%pnpinfo')).decode('ascii') + items=result.split(' ') + vendor=int(items[0].split('=')[1],0) + product=int(items[1].split('=')[1],0) + return([vendor,product]) + except: + pass + return [-1,-1]