analogdevicesinc / libiio

A cross platform library for interfacing with local and remote Linux IIO devices
http://analogdevicesinc.github.io/libiio/
GNU Lesser General Public License v2.1
487 stars 315 forks source link

iio_utils fails on Windows #533

Closed rgetz closed 4 years ago

rgetz commented 4 years ago

This works (to validate git master tip):

C:\Users\rgetz>iio_info -s
Library version: 0.19 (git tag: 3f32d4e)
Compiled with backends: xml ip usb serial
Available contexts:
        0: 0456:b673 (Analog Devices Inc. PlutoSDR (ADALM-PLUTO)), serial=104400b839910012feff04003fe464e1b9 [usb:1.5.5]
        1: 192.168.1.127 (ad7124-4) [ip:analog-2.local]
        2: 192.168.1.120 (AD-FMCOMMS2-EBZ on Xilinx Zynq ZED (armv7l)), serial=00100 [ip:analog.local]

however:

C:\Users\rgetz>iio_attr -a usb -C
Using auto-detected IIO context at URI "usb:1.5.5"
ERROR: Bad URI: 'usb:1.5.5'

Comes from: https://github.com/analogdevicesinc/libiio/blob/master/usb.c#L1181

This works on Linux and MAC...

rgetz commented 4 years ago

Ok - bisecting says:

AppVeyor says:

build 1958 - works

build 1959 - fails: https://ci.appveyor.com/project/analogdevicesinc/libiio/builds/32634100/artifacts rgetz-dont-ignore-sign-differences 30ebfb49

https://github.com/analogdevicesinc/libiio/commit/30ebfb491179aeb3a9b1a439152f9f6abe2e1b94

1959 - fails

rgetz commented 4 years ago

Ok - I have a fix for that, but libiio build with MSVC crashes, with ming - it works. Still poking at that (and trying to make it easier for others to do the same).

rgetz commented 4 years ago

iio_info -a on my Win10 machine now causes libiio to crash.

All I get is:

C:\Users\rgetz>iio_info -a
Library version: 0.19 (git tag: bae0e60)
Compiled with backends: xml ip usb serial

and then: image

just scanning works:

C:\Users\rgetz>iio_info -s
Library version: 0.19 (git tag: bae0e60)
Compiled with backends: xml ip usb serial
Available contexts:
        0: 0456:b673 (Analog Devices Inc. PlutoSDR (ADALM-PLUTO)), serial=104400b839910012feff04003fe464e1b9 [usb:1.5.5]
        1: 192.168.1.120 (AD-FMCOMMS2-EBZ on Xilinx Zynq ZED (armv7l)), serial=00100 [ip:analog.local]
        2: 192.168.1.127 (ad7124-4) [ip:analog-2.local]

and connecting by hand works:

C:\Users\rgetz>iio_info -a usb:
Library version: 0.19 (git tag: bae0e60)
Compiled with backends: xml ip usb serial
Using auto-detected IIO context at URI "usb:1.5.5"
IIO context created with usb backend.
Backend version: 0.18 (git tag: v0.18  )
Backend description string: Linux (none) 4.14.0-g387d584d434e #1 SMP PREEMPT Mon Aug 26 23:48:00 EDT 2019 armv7l
IIO context has 15 attributes:
...

or

C:\Users\rgetz>iio_info -u usb:1.5.5
Library version: 0.19 (git tag: bae0e60)
Compiled with backends: xml ip usb serial
IIO context created with usb backend.
Backend version: 0.18 (git tag: v0.18  )
Backend description string: Linux (none) 4.14.0-g387d584d434e #1 SMP PREEMPT Mon Aug 26 23:48:00 EDT 2019 armv7l
IIO context has 15 attributes:
...

it's only iio_info -a with multiple devices attached.

on other applications, it functions properly...

C:\Users\rgetz>iio_attr -a -C
Multiple contexts found. Please select one using --uri:
        0: 0456:b673 (Analog Devices Inc. PlutoSDR (ADALM-PLUTO)), serial=104400b839910012feff04003fe464e1b9 [usb:1.5.5]
        1: 192.168.1.120 (AD-FMCOMMS2-EBZ on Xilinx Zynq ZED (armv7l)), serial=00100 [ip:analog.local]
        2: 192.168.1.127 (ad7124-4) [ip:analog-2.local]

or

C:\Users\rgetz>iio_attr -a usb -C
Using auto-detected IIO context at URI "usb:1.5.5"
IIO context with 15 attributes:
hw_model: Analog Devices PlutoSDR Rev.B (Z7010-AD9364)
hw_model_variant: 1
hw_serial: 104400b839910012feff04003fe464e1b9
fw_version: v0.31-dirty
ad9361-phy,xo_correction: 40000000
ad9361-phy,model: ad9364
local,kernel: 4.14.0-g387d584d434e
uri: usb:1.5.5
usb,idVendor: 0456
usb,idProduct: b673
usb,release: 2.0
usb,vendor: Analog Devices Inc.
usb,product: PlutoSDR (ADALM-PLUTO)
usb,serial: 104400b839910012feff04003fe464e1b9
usb,libusb: 1.0.19.10905
rgetz commented 4 years ago

The last part was fixed with #538 - Everything is working on Windows/MSVC again...