wxDAQ - NI cDAQ Console using wxPython


NI cDAQ Console using wxPython (https://github.com/jaemannyeh/wxDAQ)

Initially, I created wxDAQ.py just to become familiar with NI cDAQ. I later improved it to handle situations where users make mistakes or encounter hardware problems. The productivity of wxPython is impressive, even though it might not be the best choice for core programming tasks.

Application Architecture:

  • GUI Part: The GUI layer is developed using the wxPython library.
  • Data Acquisition Part: The nidaqmx library is utilized to communicate with and control the NI DAQ devices.
  • Data Visualization Part: The matplotlib library is integrated into the GUI for real-time visualization of acquired data.
  • Control Logic Part: This layer manages user interactions, data acquisition threads, and data visualization updates.

Thread Management:

  • Analog Data Collection: A separate thread collects analog data from specified channels using the nidaqmx library.
  • Digital Data Collection: Another thread collects digital data from the specified channel using the nidaqmx library.