-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
newer version of QtDMM called QtDMM2 and CDMM #18
Comments
It is very strange, because the code of dmm2 and cdmm is much older then the code of dmm. So I don't know of which versiob the focus of the original author will be. But when more people has an interest on it, then I think it will be an good idea to create an QtDMM project on gh with the 3 repos (QtDMM, QtDMM2, CDMM) |
The QtDMM author started on the next-gen version which split the frontend/backend into separate codebases with the goal of the backend supporting more than one DMM simultaneous AND to provide a network interface so the frontend(QtDMM2) could be run remotely. SigRok was supposed to take over development of QtDMM when they wanted to use it in one of their products but that seemed to end up with them just using the code and not supporting nor updating so he jumped back in and update in 2016. I was looking for a commandline tool so I could connect a little headless Raspberry Pi ZW to my Metex meter and either log data or run the logging remotely. QtDMM2 would fit that need perfectly but wouldn't compile with qt5 tools. Maybe I'll spin up a Ubuntu 16.04 virtual machine and see if that'll work. |
I try to port it to Qt5/Qt6 but my reference systems are all rhel/fedora based. So you must then check if it will work under the Debian family. |
I booted an Lubuntu 18.04 iso and was able to compile with qt4 but it took me 2 hours to figure it all out. I can build on ubuntu/qt5 if you get it to compile on rhel/fedora and then test if that's something you're up for. |
I have created an repo for cdmm. I will try to build an qt5 or Qt6 port. And use cmake instant of qmake |
cdmm was only native c++ code, so the port to cmake was easily. |
I'm building cmake 3.25.1 now and will give it a shot. I've not heard back from Matthias yet and will try to see if the Qt UI is in the qtdmm2-0.3 version. update: I found the source files for the client/server version of QtDMM in qtdmm2 directory of the v0.2 package: http://www.mtoussaint.de/qtdmm2-0.2.tgz |
after building and installing cmake 3.25.1 I had an error running cmake because of missing doxygen and dot executable. So I installed the following: After trying to compile I received link errors related to pthread: |
Do you have another cmake/gcc version? I have tested it, with the versions from the read me file. |
Kubuntu 20.04 has cmake 3.16 and you required 3.24 so I got the latest source for cmake, built and installed it. gcc is at version 9.4.0 |
It looks like your os use an old glibc. :( |
I suppose I can boot a ubuntu 22.04 iso and try to build there. My gcc isn't latest/greatest either(9.4.x vs 12.2.x). |
you can also to add this line into to cmake file: |
I tried adding the find_package(xx) entry and while it says it finds pthreads, it still fails the same way. It built fine using lubuntu 22.04 which has the required versions of cmake and gcc and apparently other required libs. $ cmake -B myBuild/ |
While I know 22.04 is the latest LTSP version there's been lots of packages which don't move so fast and it's why I recently moved from 18.04 to 20.04 instead of 22.04. Booting an iso to build or booting a vm isn't so bad, just an annoyance so it seems you have the backend(cdmm) building and since I found the source to the frontend(qtdmm2) I'm going to go back to booting a lubuntu 18.04 iso and seeing if I can build his qtdmm2-0.2.tgz source. I was able to build the cdmm source(0.2) after fixing 4 files and if successful it will prove the client/server version is available. |
I was able to get the QtDMM2 GUI working with cdmm. I didn't try it with your cmake port( the 0.3 version) but since it outputs to the console data like this(see below) it should be a-ok. Currently qtdmm2 spawns a cdmm process and grabs the output/stdio stream for processing. It has no UDP capabilities and only the cdmm-0.4 version of that backend has the UDP option. I've tested that with a python UDP client and it does send the meter output lines(one at a time) on any UDP char sent from the UDP client. But instead of "V0: 124.6 mV AC" which is sent to the console, the UDP stream gets "124.6 V AC" so fixing the GUI is just a bit more than being able to read a UDP stream vs stdout stream. ./cdmm --port=/dev/ttyUSB0 --device="Metex ME-11" --interval=0.2 |
I recall you mentioning that the cdmm/qtdmm2 stuff was older than the Qt5 stuff but when I looked at the supported DMMs( cdmm -L ) it support lots more than what's shown in the README for the Qt5 version of QtDMM. The output list from cdmm 0.4 is: ./bin$ ./cdmm -L |
Where do you have found the QtDMM2 GUI part? |
In qtdmm2-0.2.tgz found http://www.mtoussaint.de/qtdmm2.html#download It presents a more simplistic GUI without much of the Window decorations and layout of the QtDMM package but does spawn the cdmm server process and uses the stdout stream from it as input to the GUI parts. Matthias had responded to my email and said QtDMM2 was just a prototype and he'd not finished it and didn't expect to do anything with it. Because the GUI part of QtDMM2 doesn't have UDP stream support I couldn't use it for my current project needs, and instead used cdmm along with inotifywait and rsync. Later I wrote a simple python based UDP client to get and display the multimeter data. |
Did you find the GUI sources in the qtdmm2-0.2.tgz archive? |
Due to lack of time, I have not look into it. But I have it on my "to do" list. |
Today I have found time so create the "base" check in https://github.com/tuxmaster/QtDMM2 |
Now you can build the code, but I can't test the result. |
Do you think it will build with Qt version 5.12.8 ? I tried changing 5.15 in CMakeLists.txt to 5.12 and running cmake -B build but got this about not finding Core:
|
I think the upstream developers of Qt has changed many thinks in Qt5 line over the time. So I think you will need an newer Qt5 version. You can try an newer from: https://www.qt.io/download-qt-installer |
I'll boot into Lubuntu 22.04 again and see how building and testing goes. |
Booted into Lubuntu 22.04, installed build env, got cmake 2.25 and when it was compiling it threw errors about xpm files having unknown command, 'version' and upon looking at the xpm files they start with the line "version https://git-lfs.github.com/spec/v1" I could not find an explanation for what that was all about. |
Ah, then you git installation is incomplete. You need the git and the git lfs package. |
ah, it's git-lfs on Ubuntu also. Gotta head out for a few hours and not sure if I'll be able to get back to this until tomorrow sometime. But I will get back to it. |
I was able to build them( analog, digital and displayTest ) but had to edit each of the main.cpp.* files because references to local header files were using system references instead of local references( had <....> instead of "...." ). I changed the digitalapp.cpp and analogapp.cpp so it was loading from ttyUSB0 and the Metex ME-11 device but it didn't seem to connect. I could get cdmm to connect and it was in the local directory... I was surprised it didn't complain about not finding cdmm backend service to start or something but I'm guessing there wasn't much error reporting coded into it. FWIW, here's my script to build on Lubuntu 22.04:
|
On my system no modifications are need. So I think it is an issue with your system. |
I will have to look at the build system more closely. I have been linking the 3 code files, main.cpp.analog, main.cpp.digital, and main.cpp.displayTest each to main.cpp and running make clean then running the build to make each of the 3 versions. Looking like the build system will do that with directives DIGITAL and DISPLAYTEST. |
Thanks for the Qt5 port, it's made it easier to build since that's the env I'm running now. Not sure if you know that the original author did an update he calls QtDMM2 and I believe he breaks out the code into a commandline tool( CDMM ) and a GUI display(QTDMM2). It's built with Qt4 so I've not been able to try it yet.
I found it while looking for a commandline tool since I'd like to stick a single lithium cell powering an rPiZW and do some data logging without a big laptop connected and using ssh and scp to see what's going on.
Again, thanks for the Qt5 port.
http://www.mtoussaint.de/qtdmm2.html#description
The text was updated successfully, but these errors were encountered: