FIREpyDAQ is a python based Facilitated Interface for Recording Experiments (FIRE), for devices that are generally used for data acquisition in engineering research. The device list and general requirements are given below.
Using pip
, you can install this package. pip
will also install relevant dependencies.
$ pip install firepydaq
Else, you can clone this repository and use poetry
to compile the project locally.
Once cloned, you can do the following to create a virtual environment using poetry.
# Create and Install package dependencies.
$ poetry install
# To activate the virtual environment, unless the IDE you use automatically does this for you
$ poetry shell
This interface can be used for three types of devices simultaneously,
Please refer to the documentation for additional details.
firepydaq
can be compiled by using one of the following scripts.
# On Windows: Protect your script from importing child processes
# Required if you need dashboard access.
# Dashboard is spawned as a separate process.
if __name__ == "__main__":
from firepydaq.FIREpyDAQ_Acquisition import FIREpyDAQ_Acquisition
FIREpyDAQ_Acquisition()
Alternatively, you can run the following.
# On Windows: Protect your script from importing child processes
# Required if you need dashboard access.
# Dashboard is spawned as a separate process.
if __name__ == "__main__":
import multiprocessing as mp
mp.freeze_support()
from firepydaq.acquisition.acquisition import application
import sys
from PySide6.QTWidgets import QApplication
app = QApplication(sys.argv)
main_app = application()
main_app.show()
sys.exit(app.exec())
Example usage is given in the following two videos. The corresponding files and two snapshots are provided after the video for reference.
FIREpyDAQ Setup
FIREpyDAQ Acquisition and Dashboard
Example of NI config that is required to set-up the acquisition. You can formulate your own config file. You can use the NISYSCheck.py
utility to get information of the connected NI device.
# | Panel | Device | Channel | ScaleMax | ScaleMin | Label | Type | TCType | Chart | AIRangeMin | AIRangeMax | Layout | Position | Processed_Unit | Legend |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | cDAQ1Mod1 | ai0 | 1 | 1 | Temperature1 | Thermocouple | K | Temperature | 1 | 1 | 2 | 1 | C | Temperature1 |
1 | 1 | cDAQ1Mod1 | ai2 | 1 | 1 | Temperature2 | Thermocouple | K | Temperature | 1 | 1 | 2 | 1 | C | Temperature2 |
2 | 1 | cDAQ1Mod3 | ai0 | 1 | 0 | Voltage1 | Voltage | NA | V1 | 0 | 1 | 1 | 1 | V | Open V1 |
3 | 1 | cDAQ1Mod3 | ai2 | 1 | 0 | Voltage2 | Voltage | NA | None | 0 | 1 | 1 | 1 | C | Open V2 |
Example of Formulae file that is used to post-process data is display in dashboard is selected.
Label | RHS | Chart | Legend | Layout | Position | Processed_Unit |
---|---|---|---|---|---|---|
TF_mult | 9/5 | None | TF_mult | 1 | 1 | - |
TF_offset | 32 | Constant | TF_mult | 1 | 1 | - |
Temp_F | (Temperature1)*TF_mult + TF_offset | Temperature | Fahrenheit temp | 2 | 2 | F |
T_mean | (Temperature1 + Temperature2)/2 | Mean Temperture | Mean Temp | 1 | 1 | C |
V_mA | Voltage1/1000 | V1 (mV) | Volts | 1 | 1 | mA |
Interested in contributing? Check out the contributing guidelines. Please note that this project is released with a Code of Conduct. By contributing to this project, you agree to abide by its terms.
Suggested procedure is given below. Note: Pull request into the main
branch will not be accepted.
your_feature
branch from the dev
branch. pipx
as recommended or using pip
, and make
(optional). make
- run make build
, which will initiate the commands poetry build
, poetry lock
, and poetry install
in succession. This will create a virtual environment for testing your developments.make
), you can run individual poetry
commands to install the package on a virtual environment (ideal) for local development.firepydaq
was created by Dushyant M. Chaudhari. It is licensed under the terms
of the GNU General Public license, v.3.0.
Full citation:
Chaudhari, D. M., & Mishra, A. (2024). FIREpyDAQ: Facilitated Interface for Recording Experiments (FIRE), a python-package for Data Acquisition. (v0.1.0). Zenodo. https://doi.org/10.5281/zenodo.13486708
Bib:
@misc{firepydaq,
title={FIREpyDAQ: Facilitated Interface for Recording Experiments (FIRE), a python-package for Data Acquisition. (v0.1.0)},
url = {https://github.com/ulfsri/firepydaq},
author = {Chaudhari, Dushyant M. and Mishra, Anvii},
publisher = {Zenodo},
doi = {10.5281/zenodo.13486708},
year = {2024}
}
Thanks to the following community guidelines which were immensely helpful while making this package.
Additionally, the contributors are grateful for the support from Fire Safety Research Institute, a part of UL Research Institutes, for this project.