Legality of writing software that controls devices via LXI as an independent dev - Page 1
Forum section: electronics / testgear

author: szszoke
author_rank: Regular Contributor
timestamp: April 15, 2021, 07:44:34 pm
content: Hello!I am wondering if anyone knows anything about the legality of writing and releasing software that controls test equipment via LXI as an individual.I tried to look this up, but the only information I found was about the LXI logo, and the LXI trademark itself, nothing about what it takes to be able to write and distribute software that controls LXI devices.Can I write and distribute software that controls LXI-compatible test equipment just like that or I need to buy some kind of license/become a member at the LXI Consortium?

author: tautech
author_rank: Super Contributor
timestamp: April 16, 2021, 02:52:15 am
content: Ask member lundmar here:https://www.eevblog.com/forum/testgear/open-source-lxi-tools-and-liblxi-v1-0-released-for-gnulinux/

author: szszoke
author_rank: Regular Contributor
timestamp: April 16, 2021, 07:10:01 am
content: Thank you for the suggestion! I already did that and I am waiting for his response.

author: nctnico
author_rank: Super Contributor
timestamp: April 16, 2021, 11:41:28 am
content: Another question is: why would you want to use LXI in the first place? To me it seems much more cumbersome compared to using a plain text SCPI interface over network or USB.

author: szszoke
author_rank: Regular Contributor
timestamp: April 16, 2021, 02:42:57 pm
content: To be honest, I assumed that I have to. It seemed that SCPI and LXI goes hand in hand.I recently got some Siglent gear that can be remote controlled via SCPI commands but the Easy*** applications are horrible.I am a software engineer by trade so I figured I could try creating something useful and share it with the community. I'm thinking of something that would make data logging easier, or just have a window that would display data from the instruments.So when you mean SCPI interface over network, do you mean something like sending SCPI commands over TCP sockets for example?

author: nctnico
author_rank: Super Contributor
timestamp: April 16, 2021, 02:45:05 pm
content: Quote from: szszoke on April 16, 2021, 02:42:57 pmYes. And due to the simplicity most test equipment supports this either through USB (TMC; which is a text based interface), network, RS232 or GPIB (which is simple to convert to a network socket interface using a Prologix interface). Did you already come across this thread?https://www.eevblog.com/forum/testgear/program-that-can-log-from-many-multimeters/msg2981004/#msg2981004The software from this thread has morphed into a universal logging application which can talk to / log from any instrument. Perhaps you can team up with the author. And then there is Sigrok as well.

author: szszoke
author_rank: Regular Contributor
timestamp: April 16, 2021, 03:03:03 pm
content: Now I feel dumb. But hey, my issue is resolved!I tried with both of my Siglent devices and indeed, I could telnet into them over port 5025 and issue SCPI commands.Thanks!Regarding the project you linked, I did, but I am thinking in a web-based solution, so that I can put a database behind it and save everything by default.I also have multiple computers that I want to use to look at the logged data.Since all of my (two) devices can be controlled over ethernet, and I will make this a priority for any new purchase, a web based solution makes the most sense to me.

author: tautech
author_rank: Super Contributor
timestamp: April 16, 2021, 07:52:30 pm
content: Quote from: szszoke on April 16, 2021, 03:03:03 pmPort availability is listed in manuals or programming guides.Since you have the same DSO and PSU some tricks HendriXML has done with these may interest you.https://www.eevblog.com/forum/testgear/battery-charging-using-a-siglent-sds1104x-and-spd3303x/https://www.eevblog.com/forum/testgear/automated-wave-capture-for-siglent-sds1104x-e-and-sds1204x-e-dsos/

author: tautech
author_rank: Super Contributor
timestamp: April 16, 2021, 08:54:49 pm
content: Quote from: szszoke on April 16, 2021, 03:03:03 pmHave you explored the webserver capabilities of your SDS1104X-E ?in the Instrument Control page you can expand the interface and access full mouse control of the scope and there's some additional virtual buttons one of which will save screenshots direct to your browsers download folder.The SCPI control window permits full SCPI control of the scope.SCPI programming manual:https://www.siglenteu.com/download/9103/

author: szszoke
author_rank: Regular Contributor
timestamp: April 16, 2021, 09:52:53 pm
content: I did. I think it's good that it is there but it's not quite what I'm looking for.I like that it has a VNC server built in, and I think it could be useful to have a data logging session where the screen is captured as well.

author: szszoke
author_rank: Regular Contributor
timestamp: April 16, 2021, 10:01:12 pm
content: Quote from: tautech on April 16, 2021, 07:52:30 pmThis looks really good!Thanks for the suggestion!

author: nightfire
author_rank: Frequent Contributor
timestamp: April 17, 2021, 04:10:56 pm
content: Could you perhaps usehttps://lxi-tools.github.io/as a foundation for your work? Like, putting a web-interface on top of it?

author: szszoke
author_rank: Regular Contributor
timestamp: April 18, 2021, 11:07:21 am
content: The project seems abandoned. At this point I would rather not touch it.It is also written in C++ and I'm planning to use C# as the backend, since that is where I'm more competent.As of right now, I'm planning to use simple TCP sockets for communication, so there is really no need to bring in any third party library.I gave this project a bit more thought and as of right now my plan is to make it centered around scripting.Essentially there would be a layer that abstracts away the equipment and implements I/O.This later will be responsible for putting a common interface in front of test equipment, or devices under test and I'm initially thinking of supporting communication over TCP and over serial ports. (These are the two use-cases that are relevant for me right now)After this comes a persistence layer, which stores everything that comes and goes from devices in a dataset with timestamps.With some simplification, we can say that every command and response from a device is a data point.I'm planning on having logging "sessions" that would group a collection of data points together.Then comes the scripting layer where custom scripts can be executed.The scripts would have exposed slots for devices.Device I/O would go through these slots. Scripts would also be able to "yield" results.All device I/O and yielded data would be recorded by the persistence layer.Later some UI would be able to visualize these recorded sessions if needed.This is the initial draft of my idea.It's almost like having a Python script writing into a CSV file but more standardized.