Controlling an Embedded cDAQ Controller from a Mac OS Host

Updated Jun 4, 2018

Reported In


  • cDAQ-9134
  • cDAQ-9132
  • cDAQ-9138
  • cDAQ-9133
  • cDAQ-9135
  • cDAQ-9136
  • cDAQ-9137
  • cDAQ-9139


  • NI-DAQmx

Operating System

  • Mac OS X
  • Windows Embedded Standard (WES)

Issue Details

I want to use a Mac OS computer for a user interface to a DAQ program written in LabVIEW. However, DAQmx Base does not meet my application's needs, I must use the full DAQmx driver. Can a write a program for an embedded cDAQ controller, and then stream data between that VI and a user interface VI on my Mac OS computer?


There are 3 main ways to communicate data between VIs in LabVIEW: The Shared Variable Engine, Reference Nodes, and the DataSocket API. Of these options, only the DataSocket API is supported on Mac OS. DataSocket works by posting values to a unique URL for each variable. One application could write its data to the DataSocket, and the other would read the values from that URL. However, this is not a lossless communication method. If the loop rates of both programs don't match, data points could be skipped or duplicated. Because of this, the DataSocket API should not be used to stream recorded data from the DAQ program. It can be used to send commands like button presses from the user interface, as they do not rely on every single data point being read.


Not Helpful