mirror of
https://git.FreeBSD.org/ports.git
synced 2024-10-18 19:49:40 +00:00
comms/nanovna-saver: Fixed incorrect /dev/cua* to umodem number mapping
Linux has an ioctl that directly retrieves information about the usb serial port on (FreeBSD) I have to find the umodem dev that the usb serial port is reference then use a sysctl to find the needed for nanovna-saver to work correctly. Originally I assumed a 1-1 mapping of devices. I was wrong. PR: ports/264272 Reported by: jeffpc@josefsipek.net
This commit is contained in:
parent
87d17cc776
commit
1ae8d833d6
@ -1,7 +1,7 @@
|
||||
PORTNAME= nanovna-saver
|
||||
DISTVERSIONPREFIX= v
|
||||
DISTVERSION= 0.3.10
|
||||
PORTREVISION= 1
|
||||
PORTREVISION= 2
|
||||
CATEGORIES= comms hamradio
|
||||
|
||||
MAINTAINER= hamradio@FreeBSD.org
|
||||
|
@ -1,4 +1,5 @@
|
||||
import re
|
||||
import os
|
||||
from ctypes import *
|
||||
from ctypes.util import find_library
|
||||
|
||||
@ -15,9 +16,16 @@ def posix_sysctlbyname(name):
|
||||
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]
|
||||
|
Loading…
Reference in New Issue
Block a user