diff --git a/examples/analog_in/calculated_power_acq_int_clk.py b/examples/analog_in/calculated_power_acq_int_clk.py new file mode 100644 index 00000000..df0816ef --- /dev/null +++ b/examples/analog_in/calculated_power_acq_int_clk.py @@ -0,0 +1,28 @@ +"""Example of analog input calculated power acquisition. + +This example demonstrates how to acquire a finite amount +of calculated power data using the DAQ device's internal clock. + +Supported Devices: + +- PXIe-4311 (DAQmx 26.3.0 or later) +""" + +import nidaqmx +from nidaqmx.constants import READ_ALL_AVAILABLE, AcquisitionType + +with nidaqmx.Task() as task: + task.ai_channels.add_ai_calculated_power_chan( + voltage_physical_channel="Dev1/ai0", + current_physical_channel="Dev1/ai1", + voltage_min_val=0.0, + voltage_max_val=5.0, + current_min_val=0.0, + current_max_val=0.02, + ext_shunt_resistor_val=249.0, + ) + + task.timing.cfg_samp_clk_timing(1000.0, sample_mode=AcquisitionType.FINITE, samps_per_chan=50) + + data = task.read(READ_ALL_AVAILABLE) + print("Acquired data: [" + ", ".join(f"{value:f}" for value in data) + "]") diff --git a/examples/analog_in/cont_calculated_power_acq_int_clk.py b/examples/analog_in/cont_calculated_power_acq_int_clk.py new file mode 100644 index 00000000..132c87a2 --- /dev/null +++ b/examples/analog_in/cont_calculated_power_acq_int_clk.py @@ -0,0 +1,39 @@ +"""Example of analog input calculated power acquisition. + +This example demonstrates how to acquire a continuous amount of +calculated power data using the DAQ device's internal clock. + +Supported Devices: + +- PXIe-4311 (DAQmx 26.3.0 or later) +""" + +import nidaqmx +from nidaqmx.constants import AcquisitionType + +with nidaqmx.Task() as task: + task.ai_channels.add_ai_calculated_power_chan( + voltage_physical_channel="Dev1/ai0", + current_physical_channel="Dev1/ai1", + voltage_min_val=0.0, + voltage_max_val=5.0, + current_min_val=0.0, + current_max_val=0.02, + ext_shunt_resistor_val=249.0, + ) + task.timing.cfg_samp_clk_timing(1000.0, sample_mode=AcquisitionType.CONTINUOUS) + task.start() + print("Running task. Press Ctrl+C to stop.") + + try: + total_read = 0 + while True: + data = task.read(number_of_samples_per_channel=1000) + read = len(data) + total_read += read + print(f"Acquired data: {read} samples. Total {total_read}.", end="\r") + except KeyboardInterrupt: + pass + finally: + task.stop() + print(f"\nAcquired {total_read} total samples.")