# wxDAQ
NI cDAQ Console using wxPython
(https://github.com/jaemannyeh/wxDAQ/blob/main/wxDAQ.png)
![wxDAQ Screen](./wxDAQ.png)
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 Python 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.