Yes, R&S brought Hameg - back around 2005/6 I think. Mine were bought around the time they were switching things over to R&S branding - the HMO3054 is branded as "R&S/Hameg".
The PS and and DMM were bought later and have have R&S branding, which is why it's a bit weird that the DMM id string still returns "Hameg" instead of R&S. However, I doubt any future instruments will return "Hameg" as the manufacturer.
lundmar
I've been following this for some time and I'd like to offer my sincere thanks for your efforts in supporting a wide range of Siglent products.
AFAIK there'll be a couple more for you to check later on this year.
Ok.
I've updated the list of tested instruments and added you to our list of contributors as a thank you for testing.
lundmar
I've been following this for some time and I'd like to offer my sincere thanks for your efforts in supporting a wide range of Siglent products.
AFAIK there'll be a couple more for you to check later on this year.
tautech, thank you very much
Siglent has been very helpful making it possible for me to add full support for their LXI compatible instruments
I'm very happy to see instrument manufacturers like Siglent put their support behind the open source lxi-tools project. In fact, I'm hoping more instrument manufacturers will do the same. The end goal is to make available free high quality open source instrument software tools which make it easy for users to manage their instruments remotely without having to concern themselves with costly proprietary software which may or may not bring much value.
I hope Siglent will continue to support the lxi-tools project and I'll be looking forward to add support for more of their instruments in the future.
Ok.
I've updated the list of tested instruments and added you to our list of contributors as a thank you for testing.
One note - the HMO 3054 is not discoverable via "lxi discover" and does not claim LXI support.
It also doesn't support VXI-11; it is raw sockets only, defaulting to port 5025. Commands and the screenshots work fine.
The HMC8043/HMC8012 are discoverable if the -m option is used.
Ok.
I've updated the list of tested instruments and added you to our list of contributors as a thank you for testing.
One note - the HMO 3054 is not discoverable via "lxi discover" and does not claim LXI support.
It also doesn't support VXI-11; it is raw sockets only, defaulting to port 5025. Commands and the screenshots work fine.
The HMC8043/HMC8012 are discoverable if the -m option is used.
Ok, I've removed the discover feature from the instrument list for HMO 3054.
Are you sure that VXI-11 scpi commands does not work with the HMO 3054?
If the HMO 3054 works with the screenshot plugin that implies that VXI-11 is working since all plugins use VXI-11 to retrieve screenshots at this point.
Just checked - apparently it does. Using strace confirms lxi is connecting to port 1024 sucessfully. Interestingly, there is no mention of VXI-11 anywhere in the programming manual. It explicitly says to use raw sockets on port 5025. I guess the VXI-11 support is intended for VISA since the VISA address shown in the device info dialog uses ::INSTR.
Oh well, at least it works...
To be honest, I don't see the point of front panel emulators. If I want to use the instruments front panel, I dont need a computer.
What would be much more useful in my view would be some way of writing simple scripts so I can do something like this
For V = 0 to 3.3 step 0.1
Set the power supply output to V
Tell the meter to read the current I
Save V, I to file
End for
Surely such automation is the real use of LXI, not just having a remote front panel?
$ lxi run test.lua
device = connect("192.168.0.110")
id = scpi(device, "*IDN?")
print("Instrument ID = " .. id)
disconnect(device)
Excellent - is there some documentation?
but
snap refresh lxi-tools --edge
snap "lxi-tools" has no updates available
$ lxi run myscript.lua
-- Connect to instrument ip and return device handle
device = connect(ip)
-- Send SCPI command to device and return response if ? command
response = scpi(device, command)
-- Send SCPI command to device and return raw response if ? command
response = scpi_raw(device, command)
-- Sleep ms
msleep(milliseconds)
-- Sleep seconds
sleep(seconds)
-- Disconnect device
disconnect(device)
$ snap install lxi-tools
Nice work... Using it now...
$ lxi run basic-tests.lua
$ diff -u /tmp/SBo/lxi-tools-1.19/configure.ac ./configure.ac
--- /tmp/SBo/lxi-tools-1.19/configure.ac 2018-03-10 18:54:41.000000000 -0600
+++ ./configure.ac 2018-03-18 07:21:43.825850367 -0500
@@ -14,8 +14,8 @@
AC_CHECK_LIB([readline], [readline], [], [AC_MSG_ERROR(libreadline not found)])
AC_CHECK_LIB([lxi], [lxi_connect], [], [AC_MSG_ERROR(liblxi not found)])
-# Check for Lua 5.2
-PKG_CHECK_MODULES([lua], [lua5.2])
+# Check for Lua 5.1 or newer
+PKG_CHECK_MODULES([lua], [lua >= 5.1])
# Handle bash completion
AC_ARG_WITH([bash-completion-dir],
CC libapp_a-lxilua.o
lxilua.c: In function ‘connect’:
lxilua.c:51:26: warning: passing argument 1 of ‘lxi_connect’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
device = lxi_connect(address, 0, NULL, option.timeout, VXI11);
^
In file included from lxilua.c:36:0:
/usr/include/lxi.h:63:5: note: expected ‘char *’ but argument is of type ‘const char *’
int lxi_connect(char *address, int port, char *name, int timeout, lxi_protocol_t protocol);
^
lxilua.c: In function ‘scpi’:
lxilua.c:83:31: warning: passing argument 2 of ‘lxi_send’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
length = lxi_send(device, command, strlen(command), option.timeout);
^
In file included from lxilua.c:36:0:
/usr/include/lxi.h:64:5: note: expected ‘char *’ but argument is of type ‘const char *’
int lxi_send(int device, char *message, int length, int timeout);
^
lxilua.c:92:18: warning: passing argument 1 of ‘question’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
if (question(command))
^
lxilua.c:42:12: note: expected ‘char *’ but argument is of type ‘const char *’
extern int question(char *string);
^
lxilua.c: In function ‘scpi_raw’:
lxilua.c:132:31: warning: passing argument 2 of ‘lxi_send’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
length = lxi_send(device, command, strlen(command), option.timeout);
^
In file included from lxilua.c:36:0:
/usr/include/lxi.h:64:5: note: expected ‘char *’ but argument is of type ‘const char *’
int lxi_send(int device, char *message, int length, int timeout);
^
lxilua.c:141:18: warning: passing argument 1 of ‘question’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
if (question(command))
^
lxilua.c:42:12: note: expected ‘char *’ but argument is of type ‘const char *’
extern int question(char *string);
^
Well, I did get lxt-tools to compile with Lua 5.1.5. No telling if it works or not!
I had to patch configure.ac as follows:Code: [Select]$ diff -u /tmp/SBo/lxi-tools-1.19/configure.ac ./configure.ac
--- /tmp/SBo/lxi-tools-1.19/configure.ac 2018-03-10 18:54:41.000000000 -0600
+++ ./configure.ac 2018-03-18 07:21:43.825850367 -0500
@@ -14,8 +14,8 @@
AC_CHECK_LIB([readline], [readline], [], [AC_MSG_ERROR(libreadline not found)])
AC_CHECK_LIB([lxi], [lxi_connect], [], [AC_MSG_ERROR(liblxi not found)])
-# Check for Lua 5.2
-PKG_CHECK_MODULES([lua], [lua5.2])
+# Check for Lua 5.1 or newer
+PKG_CHECK_MODULES([lua], [lua >= 5.1])
# Handle bash completion
AC_ARG_WITH([bash-completion-dir],
and run autoreconf --force -v --install to rebuild configure.
It built fine but with the following warnings:Code: [Select]CC libapp_a-lxilua.o
lxilua.c: In function ‘connect’:
lxilua.c:51:26: warning: passing argument 1 of ‘lxi_connect’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
device = lxi_connect(address, 0, NULL, option.timeout, VXI11);
^
In file included from lxilua.c:36:0:
/usr/include/lxi.h:63:5: note: expected ‘char *’ but argument is of type ‘const char *’
int lxi_connect(char *address, int port, char *name, int timeout, lxi_protocol_t protocol);
^
lxilua.c: In function ‘scpi’:
lxilua.c:83:31: warning: passing argument 2 of ‘lxi_send’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
length = lxi_send(device, command, strlen(command), option.timeout);
^
In file included from lxilua.c:36:0:
/usr/include/lxi.h:64:5: note: expected ‘char *’ but argument is of type ‘const char *’
int lxi_send(int device, char *message, int length, int timeout);
^
lxilua.c:92:18: warning: passing argument 1 of ‘question’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
if (question(command))
^
lxilua.c:42:12: note: expected ‘char *’ but argument is of type ‘const char *’
extern int question(char *string);
^
lxilua.c: In function ‘scpi_raw’:
lxilua.c:132:31: warning: passing argument 2 of ‘lxi_send’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
length = lxi_send(device, command, strlen(command), option.timeout);
^
In file included from lxilua.c:36:0:
/usr/include/lxi.h:64:5: note: expected ‘char *’ but argument is of type ‘const char *’
int lxi_send(int device, char *message, int length, int timeout);
^
lxilua.c:141:18: warning: passing argument 1 of ‘question’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
if (question(command))
^
lxilua.c:42:12: note: expected ‘char *’ but argument is of type ‘const char *’
extern int question(char *string);
^
I don't know if those warnings are simply due to the older version of Lua I'm compiling against or what. As the compiler didn't error out, I'm inclined to think that Lua support will probably work.
lxi run test/basic-tests.lua
Arghh!
I'm getting tripped up by Lua in updating my SlackBuild script for lxi-tools 1.19. The configure script halts as Lua5.2 is not found and the SlackBuilds.org site has version 5.1.5 available. I presume this version is too old for various and sundry reasons?
I've never used Lua knowingly, but I found when writing a SlackBuild script for Hamlib (someone else contributed Swig Lua bindings). The impression I got is that Lua seems to be rather incompatible between minor versions. I hope I am wrong about that.
I suppose I can try installing Lua 5.1.5 and see if lxi-tools will build and run against it.
Perfectly fine patch
I simply had it fixed at Lua 5.2 but I assume it will work fine with all 5.x. If you feel like it I invite you to create a github pull request to push your change upstream. Or I can apply the patch on your behalf.
and run autoreconf --force -v --install to rebuild configure.
FYI - for convenience, same as running ./autogen.sh
Those are warnings that are yet to be fixed. You can ignore them for now. To test you could start by running the basic Lua test script:Code: [Select]lxi run test/basic-tests.lua
Perfectly fine patch
I simply had it fixed at Lua 5.2 but I assume it will work fine with all 5.x. If you feel like it I invite you to create a github pull request to push your change upstream. Or I can apply the patch on your behalf.
Go ahead and apply it, Martin.
I see that is in the Git repository but not in the 1.19 release tarball. It would be useful to include the test script in the 1.20 release tarball.
Edit:
The basic-test.lua script ran without error using Lua 5.1.5, so it will likely work just fine.
An interesting issue I am seeing has to do with my main Slackware 14.2 desktop which is running the avahi daemon cannot discover the 'scope. However, in a Slackware 14.2 VM where I have avahi installed for building lxi-tools, but not running, I can access the 'scope just fine.
I know that avahi is working as I am using it to play audio over to my MythTV box using PulseAudio. Also the avahi browser utility shows a bunch of mDNS stuff from the network.
I have to admit that I am far from knowledgeable regarding mDNS and even less so in beginning to troubleshoot it.