All Projects → lxi-tools → Lxi Tools

lxi-tools / Lxi Tools

Licence: other
Open source LXI tools

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Lxi Tools

Goofi
✨Let's contribute to OSS. Here is how to find good first issues in GitHub. "goofi" is an abbreviation of "good first issues".
Stars: ✭ 125 (-5.3%)
Mutual labels:  open-source
Python Pytest Cases
Separate test code from test cases in pytest.
Stars: ✭ 127 (-3.79%)
Mutual labels:  test
Knowledgesummary
📚A list of core knowledge that most Android programmers need to know. (continuously updated...)
Stars: ✭ 131 (-0.76%)
Mutual labels:  open-source
Octopod
Free open source client for OctoPrint
Stars: ✭ 126 (-4.55%)
Mutual labels:  open-source
Awesome Python Scripts
A curated collection of some 😍 cool Python scripts.
Stars: ✭ 128 (-3.03%)
Mutual labels:  open-source
Grandnode
Open source, headless, multi-tenant eCommerce platform built with .NET Core, MongoDB, AWS DocumentDB, Azure CosmosDB, Vue.js.
Stars: ✭ 1,768 (+1239.39%)
Mutual labels:  open-source
Chevrotain
Parser Building Toolkit for JavaScript
Stars: ✭ 1,795 (+1259.85%)
Mutual labels:  open-source
Simple Chrome Custom Tabs
Easy integration of Chrome Custom Tabs into your project. Just connect it to your activity, and navigate to the external website styling your tab as you wish.
Stars: ✭ 131 (-0.76%)
Mutual labels:  open-source
Wallstant
Create your own social network for free with Wallstant social network, easy to install and fast to use .. Make people connected
Stars: ✭ 127 (-3.79%)
Mutual labels:  open-source
Tape
A Simple Traffic Generator for Hyperledger Fabric
Stars: ✭ 131 (-0.76%)
Mutual labels:  test
Tsed
📐 Ts.ED is a Node.js and TypeScript framework on top of Express to write your application with TypeScript (or ES6). It provides a lot of decorators and guideline to make your code more readable and less error-prone.
Stars: ✭ 1,941 (+1370.45%)
Mutual labels:  open-source
Awesome Jsgames
A curated list of awesome JavaScript Games 🎮
Stars: ✭ 127 (-3.79%)
Mutual labels:  open-source
Instantsearch Android
A library of widgets and helpers to build instant-search applications on Android.
Stars: ✭ 129 (-2.27%)
Mutual labels:  open-source
Redux Unhandled Action
Redux middleware that logs an error to the console when an action is fired and the state is not mutated,
Stars: ✭ 125 (-5.3%)
Mutual labels:  open-source
Open Source Handbook
⭐️ Open source projects for all skill levels
Stars: ✭ 131 (-0.76%)
Mutual labels:  open-source
Black Widow
GUI based offensive penetration testing tool (Open Source)
Stars: ✭ 124 (-6.06%)
Mutual labels:  open-source
Warzone2100
Command the forces of The Project in a battle to rebuild the world after mankind has been nearly destroyed by nuclear missiles. A 100% free and open source real-time strategy game for Windows, macOS, Linux, BSD+
Stars: ✭ 2,094 (+1486.36%)
Mutual labels:  open-source
Rhisis
Rhisis is an experimental FlyFF MMORPG emulator built with C# 9 and .NET 5
Stars: ✭ 132 (+0%)
Mutual labels:  open-source
Partyshare
A free, open source file sharing application, built on the peer-to-peer hypermedia protocol IPFS.
Stars: ✭ 131 (-0.76%)
Mutual labels:  open-source
Popupblocker
Popup blocking userscript
Stars: ✭ 130 (-1.52%)
Mutual labels:  open-source

lxi-tools

Build Status Snap Status

1. Introduction

lxi-tools is a collection of open source software tools that enables control of LXI compatible instruments such as modern oscilloscopes, power supplies, spectrum analyzers etc.

All features are consolidated in the 'lxi' application which provides a simple commandline interface to discover LXI instruments, send SCPI commands, and capture screenshots from supported LXI instruments.

Also provided is a GUI application which provide some of the features of the commandline tool.

lxi-tools rely on liblxi for all communication.

2. Usage

2.1 lxi-gui (BETA)

The lxi-gui application provides some of the same features as the commandline tool but presents them in a GUI frontend.

2.2 lxi

The commandline interface of the lxi application is described in the output from 'lxi --help':

     Usage: lxi [--version] [--help] <command> [<args>]

       -v, --version                        Display version
       -h, --help                           Display help

     Commands:
       discover [<options>]                 Search for LXI devices
       scpi [<options>] <scpi-command>      Send SCPI command
       screenshot [<options>] [<filename>]  Capture screenshot
       benchmark [<options>]                Benchmark

     Discover options:
       -t, --timeout <seconds>              Timeout (default: 3)
       -m, --mdns                           Search via mDNS/DNS-SD

     Scpi options:
       -a, --address <ip>                   Device IP address
       -p, --port <port>                    Use port (default: VXI11: 111, RAW: 5025)
       -t, --timeout <seconds>              Timeout (default: 3)
       -x, --hex                            Print response in hexadecimal
       -i, --interactive                    Enter interactive mode
       -s, --script <filename>              Run script file
       -r, --raw                            Use raw/TCP

     Screenshot options:
       -a, --address <ip>                   Device IP address
       -t, --timeout <seconds>              Timeout (default: 15)
       -p, --plugin <name>                  Use screenshot plugin by name
       -l, --list                           List available screenshot plugins

     Benchmark options:
       -a, --address <ip>                   Device IP address
       -p, --port <port>                    Use port (default: VXI11: 111, RAW: 5025)
       -t, --timeout <seconds>              Timeout (default: 3)
       -c, --count <count>                  Number of request messages (default: 100)
       -r, --raw                            Use raw/TCP

2.2.1 Example - Discover LXI devices on available networks

     $ lxi discover
     Searching for LXI devices - please wait...

     Broadcasting on interface lo
     Broadcasting on interface eth0
         Found "RIGOL TECHNOLOGIES,DS1104Z,DS1ZA1234567890,00.04.03.SP2" on address 10.42.1.20
         Found "RIGOL TECHNOLOGIES,DP831,DP8F1234567890,00.01.14" on address 10.42.1.67
     Broadcasting on interface wlan0

     Found 2 devices

2.2.2 Example - Send SCPI command to an instrument

     $ lxi scpi --address 10.42.1.20 "*IDN?"
     RIGOL TECHNOLOGIES,DS1104Z,DS1ZA1234567890,00.04.03

To dump response to file simply do:

     $ lxi scpi --address 10.42.1.20 "*IDN?" > response.txt

2.2.3 Example - Capture screenshot from a Rigol 1000z series oscilloscope

     $ lxi screenshot --address 10.42.1.20 --plugin rigol-1000z
     Saved screenshot image to screenshot_10.42.1.20_2017-11-11_13:45:47.png

Or using plugin autodetection simply:

     $ lxi screenshot --address 10.42.1.20
     Loaded rigol-1000 screenshot plugin
     Saved screenshot image to screenshot_10.42.1.20_2017-11-11_13:46:02.png

2.2.4 Example - Capture screenshot and convert it to any image format

By default the format of the captured screenshot image is dictated by which screenshot plugin and instrument are in play. However, it is possible to write the screenshot image to stdout and pipe it directly to other tools for image processing.

For example, use ImageMagicks convert tool to automatically convert screenshot image to JPG:

    $ lxi screenshot --address 10.42.1.20 - | convert - screenshot.jpg

2.2.5 Example - List available screenshot plugins

     $ lxi screenshot --list
                 Name   Description
         keysight-ivx   Keysight InfiniVision 2000X/3000X series oscilloscope
          rigol-1000z   Rigol DS/MSO 1000z series oscilloscope
           rigol-2000   Rigol DS/MSO 2000 series oscilloscope
         rigol-dg4000   Rigol DG 4000 series function generator
         rigol-dm3000   Rigol DM 3000 series digital multimeter
          rigol-dp800   Rigol DP 800 series power supply
            rigol-dsa   Rigol DSA 700/800 series spectrum analyzer
           rs-hmo1000   Rohde & Schwarz HMO 1000 series oscilloscope
      siglent-sdm3000   Siglent SDM 3000/3000X series digital multimeter
          siglent-sdg   Siglent SDG 1000X/2000X/6000X series waveform generator
          siglent-sds   Siglent SDS 1000X/2000X series oscilloscope
     siglent-ssa3000x   Siglent SSA 3000X series spectrum analyzer
       tektronix-2000   Tektronix DPO/MSO 2000 series oscilloscope (experimental)

2.2.6 Example - Benchmark instrument request/response performance

     $ lxi benchmark --address 10.42.1.20
     Benchmarking by sending 100 ID requests. Please wait...
     Result: 24.7 requests/second

3. Installation

The latest release version can be downloaded from https://lxi-tools.github.io

3.1 Installation using source

To compile and install successfully from source you need to install the following dependencies:

  • liblxi
  • lua
  • Qt5Core (optional)
  • Qt5Gui (optional)
  • Qt5Widgets (optional)
  • Qt5Charts (optional)

Install steps:

    $ ./configure
    $ make
    $ make install

Note: Please do no try to install from source if you are not familiar with using autotools.

Note: If you are installing from git source remember to run the autogen.sh script to generate the configure script.

3.2 Installation using package

lxi-tools comes prepackaged for various GNU/Linux distributions. Visit https://lxi-tools.github.io to see list of supported distributions.

4. Tested instruments

The commandline lxi tool is tested to work successfully with the following LXI compatible instruments:

Instrument Working features
Keysight Technologies AWG 33612A (discover+scpi+screenshot)
Keysight Technologies DMM 34461A (discover+scpi+screenshot)
Keysight Technologies MSO-X 3024T (discover+scpi+screenshot)
Kikusui Electronics PMX35-3A (discover+scpi)
Rigol Technologies DG4062 (discover+scpi+screenshot)
Rigol Technologies DG4102 (discover+scpi+screenshot)
Rigol Technologies DG4162 (discover+scpi+screenshot)
Rigol Technologies DP831 (discover+scpi+screenshot)
Rigol Technologies DP832 (discover+scpi+screenshot)
Rigol Technologies DM3068 (discover+scpi+screenshot)
Rigol Technologies DS1104Z (discover+scpi+screenshot)
Rigol Technologies DS2302 (discover+scpi+screenshot)
Rigol Technologies DSA815 (discover+scpi+screenshot)
Rigol Technologies MSO1104Z (discover+scpi+screenshot)
Rigol Technologies MSO2302A (discover+scpi+screenshot)
Rigol Technologies MSO5074 (discover+scpi+screenshot)
Rohde & Schwarz HMC 8012 (discover+scpi+screenshot)
Rohde & Schwarz HMC 8043 (discover+scpi+screenshot)
Rohde & Schwarz HMO 1202 (discover+scpi+screenshot)
Rohde & Schwarz HMO 3054 (scpi+screenshot)
Rohde & Schwarz RTB 2004 (discover+scpi+screenshot)
Siglent Technologies SDG1032X (discover+scpi+screenshot)
Siglent Technologies SDG2122X (discover+scpi+screenshot)
Siglent Technologies SDG6052 (discover+scpi+screenshot)
Siglent Technologies SDS1202X-E (discover+scpi+screenshot)
Siglent Technologies SDS1204X-E (discover+scpi+screenshot)
Siglent Technologies SDS2304X (discover+scpi+screenshot)
Siglent Technologies SDM3045X (discover+scpi+screenshot)
Siglent Technologies SDM3055 (discover+scpi+screenshot)
Siglent Technologies SDM3065X (discover+scpi+screenshot)
Siglent Technologies SPD3303X-E (scpi)
Siglent Technologies SSA3032X (discover+scpi+screenshot)

Note: Feel free to add your instrument(s) to the list via GitHub pull request or simply create a GitHub issue reporting your instrument(s) and which features work.

5. Contributing

lxi-tools is open source. If you want to help out with the project please join in.

All contributions (bug reports, code, doc, ideas, etc.) are welcome.

Please use the github issue tracker and pull request features.

Also, if you find this free open source software useful please consider making a donation:

Donate

6. Website

Visit https://lxi-tools.github.io

7. License

This code is released under BSD-3, commonly known as the 3-clause (or "modified") BSD license.

8. Authors

Created and maintained by Martin Lund <[email protected]>

See the AUTHORS file for full list of authors.

9. Sponsors

A thank you to the following sponsors that have donated test equipment to support the lxi-tools open source effort:

  • Siglent Technologies
  • KIKUSUI Electronics Corp.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].