Signal Hound VSG60/200 Programming API for AArch64

Email/Support: support@signalhound.com

-- Documentation -- 
https://signalhound.com/sigdownloads/SDK/online_docs/vsg_api/index.html

-- Limitations --
The follow limitations apply to the ARM build of the API,
- The imbalance correction mode is limited to "partial". This improves CPU load at the expense of image imbalance.
- Digital tuning is disabled. This improves CPU load at the expense of some low level spurious signals.

-- Compilation Notes -- 
The API is compiled on the Nvidia Jetson Orin AGX dev kit
- Ubuntu 20.04 using g++ 9.4.0

-- Libusb 1.0 requirement -- 
The API depends on the libusb-1.0 USB drivers.
You will need libusb-1.0 installed in the system path. 
Determine if libusb-1.0 is installed on your system with
  'locate libusb-1.0.so'
You can install libusb-1.0 with
  'sudo apt-get install libusb-1.0-0' 
or
  download and install from www.libusb.org

-- Device Permissions --
To run an application utilizing libusb, you need to be have root permissions. 
You can either run your application as root or change permissions for the device.

-- Changing Device Permissions --
If you do not want to run your application with root permissions, 
you will need to change permissions for the Signal Hound device. 
You will need to place the sh_usb.rules file in the /etc/udev/rules.d/ directory. 
Once you have done this, you will need to unplug and plug in the device for the rules to take effect. 
You should then be able to interface the device without root permissions.

-- Installation --
This is a 64 bit shared library. An easy way to use this library is to rename the .so file to
libvsg_api.so and copy it to the /usr/local/lib folder. The library can now be linked in with g++ by
    g++ sources -o output_exe -Wl, -rpath /usr/local/lib -lvsg_api


