aboutsummaryrefslogtreecommitdiff
path: root/comms/nanovna-saver
diff options
context:
space:
mode:
authorDiane Bruce <db@FreeBSD.org>2020-10-17 16:50:25 +0000
committerDiane Bruce <db@FreeBSD.org>2020-10-17 16:50:25 +0000
commit6437cedaf2d049a7ef17fe0799934672f159494e (patch)
treeaaead67346f9d90294c22d0c9977117ad0da1a51 /comms/nanovna-saver
parent87138d3657952c373ba29acc2111c207d736f4e2 (diff)
downloadports-6437cedaf2d049a7ef17fe0799934672f159494e.tar.gz
ports-6437cedaf2d049a7ef17fe0799934672f159494e.zip
Long overdue upgrade to 0.3.7
Added Sysctl.py to handle retrieving pid/vid of comports [db] Changelog [upstream] ========= v0.3.7 ------ - Added a delta marker - Segments can now have exponential different step widths (see logarithmic sweeping) - More different data points selectable (shorter are useful on logarithmic sweeping) - Scrollable marker column - Markers initialize on start, middle, end - Frequency input is now more "lazy" 10m, 50K and 1g are now valid for 10MHz, 50kHz and 1GHz - Added a wavelength field to Markers - 32 bit windows binaries build in actions - Stability improvements due to better exception handling - Workaround for wrong first S21mag value on V2 devices v0.3.6 ------ - Implemented bandwidth setting in device management v0.3.5 ------ - Sweep worker now initializes full dataset on setting changes. Therefore no resize of charts when doing multi segment sweep - Changing datapoints in DeviceSettings are reflected in SweepSettings widget step size - Simplified calibration code by just using scipy.interp1d with fill\_value - Established Interface class to ease locking and allow non usb connections in future - Cleaned up VNA code. Added some pause statements to get more robust readings - Added MagLoopAnalysis - Touchstone class can now generate interpolated Datapoints for a given frequency Will be usefull in future analysis code - Fixed a bug in Version comparison v0.3.4 ------ - Refactored Analysis - Add Antenna Analysis - Fixed bug in Through Calibration - Fixed bug in s2p saving - Fixed crash when clicking connect with no device connected - Fixed module error with source installation if pkg\_resources missing v0.3.3 ------ - Fixed data acquisition with S-A-A-2 / NanoVNA V2 - Refactored calibration code - Calibration data between known datapoints in now interpolated by spline interpolation - Fixed through calibration v0.3.2 ------ - fixed crash with averaging sweeps also averaging now discards reading by geometrical distance v0.3.1 ------ - fixed crash with calibration assistant v0.3.0 ------ - Support for S-A-A-2 / NanoVNA V2 - Support for 202 Datapoints/scan with NanoVNA-H - Support for attenuator at S11 - Massive code separation to easy additon of Hardware, Charts, Analysis ... Known Issues ------------ - -H / -H4 supports depends on Firmware
Notes
Notes: svn path=/head/; revision=552598
Diffstat (limited to 'comms/nanovna-saver')
-rw-r--r--comms/nanovna-saver/Makefile6
-rw-r--r--comms/nanovna-saver/distinfo6
-rw-r--r--comms/nanovna-saver/files/Sysctl.py23
-rw-r--r--comms/nanovna-saver/files/patch-NanoVNASaver_Hardware_Hardware.py33
-rw-r--r--comms/nanovna-saver/files/patch-NanoVNASaver_NanoVNASaver.py15
-rw-r--r--comms/nanovna-saver/files/patch-setup.py34
6 files changed, 70 insertions, 47 deletions
diff --git a/comms/nanovna-saver/Makefile b/comms/nanovna-saver/Makefile
index 50b59d9634aa..a17cbb28012f 100644
--- a/comms/nanovna-saver/Makefile
+++ b/comms/nanovna-saver/Makefile
@@ -2,8 +2,7 @@
PORTNAME= nanovna-saver
DISTVERSIONPREFIX= v
-DISTVERSION= 0.2.2
-PORTREVISION= 2
+DISTVERSION= 0.3.7
CATEGORIES= comms hamradio
MAINTAINER= hamradio@FreeBSD.org
@@ -27,4 +26,7 @@ GH_ACCOUNT= mihtjel
NO_ARCH= yes
+post-extract:
+ ${CP} ${FILESDIR}/Sysctl.py ${WRKSRC}/NanoVNASaver/Hardware/
+
.include <bsd.port.mk>
diff --git a/comms/nanovna-saver/distinfo b/comms/nanovna-saver/distinfo
index 290469632964..08190c830e43 100644
--- a/comms/nanovna-saver/distinfo
+++ b/comms/nanovna-saver/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1578812631
-SHA256 (mihtjel-nanovna-saver-v0.2.2_GH0.tar.gz) = 82fa37fcd487cbafebd07751f76fc5bad42f7e6f1276008f5463f0256e17748f
-SIZE (mihtjel-nanovna-saver-v0.2.2_GH0.tar.gz) = 178819
+TIMESTAMP = 1602611094
+SHA256 (mihtjel-nanovna-saver-v0.3.7_GH0.tar.gz) = 4b2cb4e736855452ef0fcc198f4f467ab042857b7844aac973fa99de7eb128ad
+SIZE (mihtjel-nanovna-saver-v0.3.7_GH0.tar.gz) = 359208
diff --git a/comms/nanovna-saver/files/Sysctl.py b/comms/nanovna-saver/files/Sysctl.py
new file mode 100644
index 000000000000..c05dd8036b9b
--- /dev/null
+++ b/comms/nanovna-saver/files/Sysctl.py
@@ -0,0 +1,23 @@
+import re
+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])
diff --git a/comms/nanovna-saver/files/patch-NanoVNASaver_Hardware_Hardware.py b/comms/nanovna-saver/files/patch-NanoVNASaver_Hardware_Hardware.py
new file mode 100644
index 000000000000..b2e67ff9cf1d
--- /dev/null
+++ b/comms/nanovna-saver/files/patch-NanoVNASaver_Hardware_Hardware.py
@@ -0,0 +1,33 @@
+--- NanoVNASaver/Hardware/Hardware.py.orig 2020-08-13 17:01:29 UTC
++++ NanoVNASaver/Hardware/Hardware.py
+@@ -32,6 +32,7 @@ from NanoVNASaver.Hardware.NanoVNA_H import NanoVNA_H
+ from NanoVNASaver.Hardware.NanoVNA_H4 import NanoVNA_H4
+ from NanoVNASaver.Hardware.NanoVNA_V2 import NanoVNA_V2
+ from NanoVNASaver.Hardware.Serial import drain_serial, Interface
++from NanoVNASaver.Hardware.Sysctl import usb_vid_pid
+
+ logger = logging.getLogger(__name__)
+
+@@ -61,8 +62,12 @@ def get_interfaces() -> List[Interface]:
+ interfaces = []
+ # serial like usb interfaces
+ for d in list_ports.comports():
+- if platform.system() == 'Windows' and d.vid is None:
+- d = _fix_v2_hwinfo(d)
++ if platform.system() == 'FreeBSD':
++ logger.debug("Found FreeBSD USB port %s", d.device)
++ vid_pid = usb_vid_pid(d.device)
++ d.vid = vid_pid[0]
++ d.pid = vid_pid[1]
++
+ for t in USBDEVICETYPES:
+ if d.vid != t.vid or d.pid != t.pid:
+ continue
+@@ -72,7 +77,6 @@ def get_interfaces() -> List[Interface]:
+ iface.port = d.device
+ interfaces.append(iface)
+ return interfaces
+-
+
+ def get_VNA(iface: Interface) -> 'VNA':
+ # serial_port.timeout = TIMEOUT
diff --git a/comms/nanovna-saver/files/patch-NanoVNASaver_NanoVNASaver.py b/comms/nanovna-saver/files/patch-NanoVNASaver_NanoVNASaver.py
deleted file mode 100644
index 14e95aaae3d6..000000000000
--- a/comms/nanovna-saver/files/patch-NanoVNASaver_NanoVNASaver.py
+++ /dev/null
@@ -1,15 +0,0 @@
---- NanoVNASaver/NanoVNASaver.py.orig 2019-12-04 11:05:36 UTC
-+++ NanoVNASaver/NanoVNASaver.py
-@@ -540,11 +540,7 @@ class NanoVNASaver(QtWidgets.QWidget):
- return_ports = []
- device_list = list_ports.comports()
- for d in device_list:
-- if (d.vid == VID and
-- d.pid == PID):
-- port = d.device
-- logger.info("Found NanoVNA (%04x %04x) on port %s", d.vid, d.pid, d.device)
-- return_ports.append(port)
-+ return_ports.append(d.device)
- return return_ports
-
- def exportFileS1P(self):
diff --git a/comms/nanovna-saver/files/patch-setup.py b/comms/nanovna-saver/files/patch-setup.py
index 04306045bbad..0396193802d8 100644
--- a/comms/nanovna-saver/files/patch-setup.py
+++ b/comms/nanovna-saver/files/patch-setup.py
@@ -1,36 +1,16 @@
---- setup.py.orig 2019-12-04 11:05:36 UTC
+--- setup.py.orig 2020-08-13 17:01:29 UTC
+++ setup.py
-@@ -15,10 +15,11 @@
- # along with this program. If not, see <https://www.gnu.org/licenses/>.
-
- import sys
-+import io
- from NanoVNASaver.about import version
-
--if sys.version_info < (3, 7):
-- print("You need at least Python 3.7 for this application!")
-+if sys.version_info < (3, 3):
-+ print("You need at least Python 3.3 for this application!")
- if sys.version_info[0] < 3:
- print("try running with python3 {}".format(" ".join(sys.argv)))
- sys.exit(1)
-@@ -30,7 +31,7 @@ except ImportError:
- print("Try installing them with pip install setuptools")
- sys.exit(1)
-
--with open("README.md", "r") as fh:
-+with io.open("README.md", "r", encoding="utf-8") as fh:
- long_description = fh.read()
-
- setup(
-@@ -48,10 +49,4 @@ setup(
+@@ -37,12 +37,5 @@ setup(
+ 'console_scripts': [
'NanoVNASaver = NanoVNASaver.__main__:main'
],
- },
+- },
- install_requires=[
- 'pyserial',
- 'PyQt5',
- 'numpy',
-- 'scipy'
+- 'scipy<1.5',
+- 'cython',
- ],
++ }
)