Package Details: nidaqmx-source-support-dummy 0.1-2

Git Clone URL: https://aur.archlinux.org/nidaqmx-source-support-dummy.git (read-only, click to copy)
Package Base: nidaqmx-source-support-dummy
Description: Dummy library to compile and link code using NI DAQmx under Linux
Upstream URL: https://aur.archlinux.org/pkgbase/nidaqmx-source-support-dummy
Licenses: GPL3
Submitter: AstroFloyd
Maintainer: AstroFloyd
Last Packager: AstroFloyd
Votes: 1
Popularity: 0.000035
First Submitted: 2022-05-05 09:26 (UTC)
Last Updated: 2022-05-05 09:26 (UTC)

Pinned Comments

AstroFloyd commented on 2020-06-10 08:29 (UTC)

My situation is that I'm a Linux user in a Windows world. We were using an NI 6218 for motor control, sensor reading, etc. If you have a stone-age Linux kernel, you may still be able to use NI drivers, but I don't, so I can't. The NI library is obsolete as well. Hence, not only did I have to run our code on a Windows machine, but also develop on one, since my code wouldn't compile on Linux. So what I did was:

1) create this dummy library, so that at least I can develop on my Linux box (which takes much more time than running/testing), so that was a big improvement (I want to check that my code compiles before I start developing, and I'd rather find out that I made a mistake after changing ten lines of code than after changing hundreds). I took the NIDAQmx.h, copied it to .c and transformed the function prototypes to empty, non-functional C functions.

2) buy LabJacks to replace the NI 6218s. Now I could replace and test the code function by function, sensor by sensor, motor by motor while my code would always compile and I could test the new implementations.

I've become quite fond of the LabJacks, they're cheaper, easier to code, and more flexible (Linux, Python wrapper). If you're also replacing an NI 6218, look at the LabJack T4, T7 and T7 pro. Depending on your need, they can replace (part of) an NI 6218. One non-obvious advantage of the NI 8218 is that it has a 32-bit clock, which can be used as two 16-bit clocks, whereas the LabJacks only have a single 16-bit clock. We needed two 16-bit clocks for low-frequency motor control, so we needed two T4's. But if you compare the prices (2xT4 = 2x€173 = €346 vs. ~€1500 for an NI, a factor of >4!) that's not an issue.

Here's a selection of my LabJack notes when I was looking into them - the details can be found on their website:

  • LabJack T7 pro: top model, better in analogue tasks, 16-bit ADC + 24-bit low-speed ADC, ~ NI 6218: €460 (€400 OEM)
  • LabJack T7: 16-bit ADC, €373/€312 OEM
  • T4: more digital options: €173 (€147 OEM), analogue in: 12-bit, out: 10-bit
  • Comparison: https://labjack.com/products/comparison

There's (at least) two ways to set this up:

1) on Arch, if I remember correctly, you can put the PKGBUILD and ChangeLog from AUR and the nidaqmx-dummy-0.1.tar.gz I sent you in the same directory (as a NORMAL USER), and run makepkg. This will build the library and create an .xz file for your architecture, which can be installed with sudo pacman -U nidaqmx-dummy-*.xz.

2) manual compilation: $ tar xfz nidaqmx-dummy-0.1.tar.gz $ cp etc/Makefile $ make and then install the library and header file somewhere where they can be found.

Latest Comments

ulfwin commented on 2020-06-11 17:34 (UTC)

Thanks for the info! Labjack sounds like a good option, I just happen to have a NI device at home. I was considering trying to make a package for the official version, but should I take it that there is no use, since you say it's not compatible with recent Linux kernels?

AstroFloyd commented on 2020-06-10 08:29 (UTC)

My situation is that I'm a Linux user in a Windows world. We were using an NI 6218 for motor control, sensor reading, etc. If you have a stone-age Linux kernel, you may still be able to use NI drivers, but I don't, so I can't. The NI library is obsolete as well. Hence, not only did I have to run our code on a Windows machine, but also develop on one, since my code wouldn't compile on Linux. So what I did was:

1) create this dummy library, so that at least I can develop on my Linux box (which takes much more time than running/testing), so that was a big improvement (I want to check that my code compiles before I start developing, and I'd rather find out that I made a mistake after changing ten lines of code than after changing hundreds). I took the NIDAQmx.h, copied it to .c and transformed the function prototypes to empty, non-functional C functions.

2) buy LabJacks to replace the NI 6218s. Now I could replace and test the code function by function, sensor by sensor, motor by motor while my code would always compile and I could test the new implementations.

I've become quite fond of the LabJacks, they're cheaper, easier to code, and more flexible (Linux, Python wrapper). If you're also replacing an NI 6218, look at the LabJack T4, T7 and T7 pro. Depending on your need, they can replace (part of) an NI 6218. One non-obvious advantage of the NI 8218 is that it has a 32-bit clock, which can be used as two 16-bit clocks, whereas the LabJacks only have a single 16-bit clock. We needed two 16-bit clocks for low-frequency motor control, so we needed two T4's. But if you compare the prices (2xT4 = 2x€173 = €346 vs. ~€1500 for an NI, a factor of >4!) that's not an issue.

Here's a selection of my LabJack notes when I was looking into them - the details can be found on their website:

  • LabJack T7 pro: top model, better in analogue tasks, 16-bit ADC + 24-bit low-speed ADC, ~ NI 6218: €460 (€400 OEM)
  • LabJack T7: 16-bit ADC, €373/€312 OEM
  • T4: more digital options: €173 (€147 OEM), analogue in: 12-bit, out: 10-bit
  • Comparison: https://labjack.com/products/comparison

There's (at least) two ways to set this up:

1) on Arch, if I remember correctly, you can put the PKGBUILD and ChangeLog from AUR and the nidaqmx-dummy-0.1.tar.gz I sent you in the same directory (as a NORMAL USER), and run makepkg. This will build the library and create an .xz file for your architecture, which can be installed with sudo pacman -U nidaqmx-dummy-*.xz.

2) manual compilation: $ tar xfz nidaqmx-dummy-0.1.tar.gz $ cp etc/Makefile $ make and then install the library and header file somewhere where they can be found.

AstroFloyd commented on 2020-06-10 08:24 (UTC) (edited on 2020-06-10 08:32 (UTC) by AstroFloyd)

Yes, but that is the official verison, not the dummy one. The official version used not to work on Linux: the driver didn't work and the library was obsolete. Hence, you couldn't compile and run your code (and hence it wouldn't do anything). The dummy version also doesn't do anything, but it allows you to compile and run your code, if not test it. Hence, it allowed me to at least develop the code on my own laptop and check whether it compiles, even though I had to do the testing on a Windows machine. Later, I used it to replace the NI devices and calls to LabJack devices and calls. This dummy library allowed me to change them one by one (or function by function) and to at least test whether the code compiles, rather than changing hundreds of lines at once and finding that I created a monster. Of course, it is possible that NI have updated their drivers and library since I created this dummy package. In that case you should of course use the NI pacage! I have more notes on those processes - I'll post them in a separate comment.

ulfwin commented on 2020-06-09 16:29 (UTC)

Isn't it possible to download the source from their homepage? https://www.ni.com/sv-se/support/downloads/drivers/download.ni-daqmx-base.html#326057

It doesn't require login, so should be possible.

AstroFloyd commented on 2019-05-03 08:27 (UTC)

It's a dummy library that allows you to compile and link the code under Linux, but without any functionality. The code is bases on propriatory code, and I can't publish it. If you're interested, drop me a GMail (http://astrofloyd.org/) and I'll send you the tarball you need. Copy it to your distfiles dir and it will install.

aramus commented on 2019-04-26 08:23 (UTC)

Does not exist