From ca9b8554e351a45172a3490a4716a52d8af6e95e Mon Sep 17 00:00:00 2001 From: Joo Liang Cheah Date: Mon, 10 Jun 2024 18:07:46 +0800 Subject: [PATCH 1/4] Update documentation for better getting started experience --- README.rst | 178 ++++++++++++++++++++++++++++++++++++++++--- hwcu_device_name.png | Bin 0 -> 35985 bytes max_device_name.png | Bin 0 -> 62377 bytes waveform.png | Bin 0 -> 22764 bytes 4 files changed, 166 insertions(+), 12 deletions(-) create mode 100644 hwcu_device_name.png create mode 100644 max_device_name.png create mode 100644 waveform.png diff --git a/README.rst b/README.rst index 0422322a6..107069e47 100644 --- a/README.rst +++ b/README.rst @@ -8,17 +8,17 @@ About The **nidaqmx** package contains an API (Application Programming Interface) for interacting with the NI-DAQmx driver. The package is implemented in Python. -The package is implemented as a complex, -highly object-oriented wrapper around the NI-DAQmx C API using the +The package is implemented as a complex, +highly object-oriented wrapper around the NI-DAQmx C API using the `ctypes `_ Python library. **nidaqmx** supports all versions of the NI-DAQmx driver that ships with the C API. The C API is included in any version of the driver that supports it. The **nidaqmx** package does not require installation of the C header files. -Some functions in the **nidaqmx** package may be unavailable with earlier -versions of the NI-DAQmx driver. Visit the -`ni.com/downloads `_ to upgrade your version of +Some functions in the **nidaqmx** package may be unavailable with earlier +versions of the NI-DAQmx driver. Visit the +`ni.com/downloads `_ to upgrade your version of NI-DAQmx. **nidaqmx** supports Windows and Linux operating systems where the NI-DAQmx @@ -58,12 +58,164 @@ Python: provides an abstraction of NI-DAQmx in the ``nidaqmx`` module, which collides with this package's module name. +Getting Started +=============== + +In order to use the **nidaqmx** package, you must have at least one DAQ device installed on your +machine. X series DAQ device (eg: PCIe-6363 or USB-6351) is recommended, physical or +simulated devices are supported. You can use the **NI MAX** or **NI Hardware Configuration Utility** +to verify and configure your devices. + +Verify and configure devices on **NI MAX**: + +.. image:: max_device_name.png + :alt: NI MAX Device Name + :align: center + :width: 800px + +Verify and configure devices on **NI Hardware Configuration Utility**: + +.. image:: hwcu_device_name.png + :alt: NI HWCU Device Name + :align: center + :width: 800px + +Virtual channels and tasks are fundamental components of NI-DAQmx. + +Task in NI-DAQmx +---------------- +A task is a collection of one or more virtual channels with timing, triggering, and other properties. +Refer to the `NI-DAQmx Task `_ for more information. + +Example code to create a task: + +.. code-block:: python + + >>> import nidaqmx + >>> with nidaqmx.Task() as task: + ... pass + +Virtual Channels in NI-DAQmx +---------------------------- +Virtual channels, or sometimes referred to generically as channels, are software entities that encapsulate the physical channel +along with other channel specific information—range, terminal configuration, and custom scaling—that formats the data. +Refer to the `NI-DAQmx Channel `_ for more information. + +Example code to create a task to read data from an analog input channel: + +.. code-block:: python + + >>> import nidaqmx + >>> with nidaqmx.Task() as task: + ... ai_channel = task.ai_channels.add_ai_voltage_chan("Dev1/ai0") + ... ai_channel.ai_min = -10.0 + ... ai_channel.ai_max = 10.0 + ... task.read() + ... + -0.14954069643238624 + +Example code to create a task to read data from two analog input channels: + +.. code-block:: python + + >>> import nidaqmx + >>> with nidaqmx.Task() as task: + ... ai_channel_1 = task.ai_channels.add_ai_voltage_chan("Dev1/ai0") + ... ai_channel_2 = task.ai_channels.add_ai_voltage_chan("Dev1/ai1") + ... ai_channel_1.ai_min = -5.0 + ... ai_channel_1.ai_max = 5.0 + ... ai_channel_2.ai_min = -10.0 + ... ai_channel_2.ai_max = 10.0 + ... task.read() + ... + [-0.07477034821619312, 0.8642841883602405] + +Timing +------ +You can use software timing or hardware timing to control when a signal is generated. With hardware timing, +a digital signal, such as a clock on your device, controls the rate of generation. With software timing, +the rate at which the samples are generated is determined by the software and operating system instead of +by the measurement device. A hardware clock can run much faster than a software loop. A hardware clock is +also more accurate than a software loop. +Refer to the `Timing, Hardware Versus Software `_ for more information. + +Example code to acquire finite amount of data using hardware timing: + +.. code-block:: python + + >>> import nidaqmx + >>> from nidaqmx.constants import AcquisitionType, READ_ALL_AVAILABLE + >>> with nidaqmx.Task() as task: + ... task.ai_channels.add_ai_voltage_chan("Dev1/ai0") + ... task.timing.cfg_samp_clk_timing(1000.0, sample_mode=AcquisitionType.FINITE, samps_per_chan=10) + ... data = task.read(READ_ALL_AVAILABLE) + ... print("Acquired data: [" + ", ".join(f"{value:f}" for value in data) + "]") + ... + AIChannel(name=Dev1/ai0) + Acquired data: [-0.149693, 2.869503, 4.520249, 4.704886, 2.875912, -0.006104, -2.895596, -4.493698, -4.515671, -2.776574] + +TDMS Logging +------------ +Technical Data Management Streaming (TDMS) is a binary file format that allows for high-speed data logging. +When you enable TDMS data logging, NI-DAQmx can stream data directly from the device buffer to the hard disk. +Refer to the `TDMS Logging `_ for more information. + +Example code to acquire finite amount of data and log it to a TDMS file: + +.. code-block:: python + + >>> import nidaqmx + >>> from nidaqmx.constants import AcquisitionType, LoggingMode, LoggingOperation, READ_ALL_AVAILABLE + >>> with nidaqmx.Task() as task: + ... task.ai_channels.add_ai_voltage_chan("Dev1/ai0") + ... task.timing.cfg_samp_clk_timing(1000.0, sample_mode=AcquisitionType.FINITE, samps_per_chan=10) + ... task._in_stream.configure_logging("TestData.tdms", LoggingMode.LOG_AND_READ, operation=LoggingOperation.CREATE_OR_REPLACE) + ... data = task.read(READ_ALL_AVAILABLE) + ... print("Acquired data: [" + ", ".join(f"{value:f}" for value in data) + "]") + ... + AIChannel(name=Dev1/ai0) + Acquired data: [-0.149693, 2.869503, 4.520249, 4.704886, 2.875912, -0.006104, -2.895596, -4.493698, -4.515671, -2.776574] + +Plot Data +--------- +You can use the 3rd-party module **matplotlib.pyplot** to plot a waveform for the acquired data. +For more information on how to use **matplotlib.pyplot** module, refer to the +`Pyplot tutorial `_. + +Example code to plot waveform for acquired data using **matplotlib.pyplot** module: + +.. code-block:: python + + >>> import nidaqmx + >>> from nidaqmx.constants import AcquisitionType, READ_ALL_AVAILABLE + >>> import matplotlib.pyplot as plt + >>> with nidaqmx.Task() as task: + ... task.ai_channels.add_ai_voltage_chan("Dev1/ai0") + ... task.timing.cfg_samp_clk_timing(1000.0, sample_mode=AcquisitionType.FINITE, samps_per_chan=50) + ... data = task.read(READ_ALL_AVAILABLE) + ... plt.plot(data) + ... plt.ylabel('Amplitude') + ... plt.title('waveform') + ... plt.show() + ... + AIChannel(name=Dev1/ai0) + [] + Text(0, 0.5, 'Amplitude') + Text(0.5, 1.0, 'waveform') + +.. image:: waveform.png + :alt: Waveform + :align: center + :width: 400px + +For more information on how to use **nidaqmx** package, refer to **Usage** section below. + .. _usage-section: Usage ===== -The following is a basic example of using an **nidaqmx.task.Task** object. -This example illustrates how the single, dynamic **nidaqmx.task.Task.read** +The following is a basic example of using an **nidaqmx.task.Task** object. +This example illustrates how the single, dynamic **nidaqmx.task.Task.read** method returns the appropriate data type. .. code-block:: python @@ -142,10 +294,12 @@ Following is an example of using an **nidaqmx.system.System** object. >>> isinstance(phys_chan.ai_term_cfgs[0], Enum) True +You can find more examples in `nidaqmx-python examples `_. + Bugs / Feature Requests ======================= -To report a bug or submit a feature request, please use the +To report a bug or submit a feature request, please use the `GitHub issues page `_. Information to Include When Asking for Help @@ -153,7 +307,7 @@ Information to Include When Asking for Help Please include **all** of the following information when opening an issue: -- Detailed steps on how to reproduce the problem and full traceback, if +- Detailed steps on how to reproduce the problem and full traceback, if applicable. - The python version used:: @@ -163,8 +317,8 @@ Please include **all** of the following information when opening an issue: $ python -m pip list -- The version of the NI-DAQmx driver used. Follow - `this KB article `_ +- The version of the NI-DAQmx driver used. Follow + `this KB article `_ to determine the version of NI-DAQmx you have installed. - The operating system and version, for example Windows 7, CentOS 7.2, ... @@ -176,7 +330,7 @@ Documentation is available `here `_. Additional Documentation ======================== -Refer to the `NI-DAQmx Help `_ +Refer to the `NI-DAQmx Help `_ for API-agnostic information about NI-DAQmx or measurement concepts. NI-DAQmx Help installs only with the full version of NI-DAQmx. diff --git a/hwcu_device_name.png b/hwcu_device_name.png new file mode 100644 index 0000000000000000000000000000000000000000..5b22ca07d56eeba66ec19b35dd4b23cd9bd3d3af GIT binary patch literal 35985 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 literal 0 HcmV?d00001 diff --git a/max_device_name.png b/max_device_name.png new file mode 100644 index 0000000000000000000000000000000000000000..d72ae939ccdf5153a8c5ec74834e5f8ed65daa2e GIT binary patch literal 62377 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

0m5LBeF<_V{dVO-EG#Az_p&e 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 literal 0 HcmV?d00001 diff --git a/waveform.png b/waveform.png new file mode 100644 index 0000000000000000000000000000000000000000..83e778557e5be01d14344d3b3fc1e26551def807 GIT binary patch literal 22764 zcmdSBWmHvd)Hb>R5tR~9NF)aG;yK?tzH@$_G0u>sW)?RDf_dVm9*SzNTf1o5oe2(@Uf*{0lvXZI@g6o4I zIHPAy!%uFt4^F~=gdC(a93EPmI5->F86%1Y4mK9n4i;vHmz|95?9HsLcsYeQxj8OB zb8xV+7v|!!{GSUrt?f*?_)f{@!%fcG$ZFan2&n=37w4-)su_Z4Xv#_6QFDn~9CD3Q z+?=Rg?J3%BDKm!BpCQZ&ZC`z z=LdgehgESdkdcx3bF=%PzaW#we;_F-$@2Rv@(zA2NqzA){1$sA36~B1n1LE11;54w zp8JG;__fOa|392+)}5}|^+PN2-@j)ZjpJ>f@1-#N`^8-hnME*|vC+yGcn-_MA7gHr zukFoePOR^;X=Htx)xcm(rC_Hf`O-DAU;g~b=SxB_Kag*!SW8AG#43!>fw80AS{fp} zJ@)&J{Q_?YolvMz!WE3&RoK63zdZ9ELru!g6vf8)g6DtPIT{mn%iL;j41B&vK+A7& zrjkm}<4&s5N4AG4MB)h{?2o>2JN$d_@|XVB8Xf^j@`KNJlT%X@vWDZu+*QA+rA(YJPg&haZCJMaVB*x}T|AhGcOByuc&4Y1YBQSvZP& z?gHEGiJBnI0xNpNs5W@2biIXHSU4u)hSu8taz#RY3MHA)3os38mG6&loTK7wN|Xx7 znYp1`N*&qwCq&{%_W5&mB;Rs<$a%!J{z@dWGVH#r^7R4JX=2*yMy?74crn*;e^!^B zvA4MrsWKr9bV7EoGt2kp3LR5YQ`e^=_3SqPs!uqT;806=iGCDzOoYt{q~>{9%jg}K z;C&Qr(i~$<^+SfyGhEBM?4nO+GyL~Un<_wj=0P>FNxq7$!0FSk|E6lID+^xa&O zW~D+omh0C8wiX8-CQ6=_4yKbUuo?>9A6hP17I)iTY7SEtuji^b_zjP4na`|fxt>}2 zo8Ecw7apl-WyhEMMYAcfcB2(Oev*7LlGX2(J_-vF)AH3F?SA{7VV6-n#|}>v;Wce> zpsTfgoT5akgd<|w zo+uSOA*l4^NzB7S8-tk$Eh{0bB3OyY>gsB3v-kFpGkv9IwxQHk>Fvv-;cP0u(;j_~ zu;2LCzOdVws_cx+__M~>#rKprTNBtYc&e-Q$4aJCAFZ5=UjE1v6YLHV@ zY>t<3S%9>VtE z)9tPO&W?`W3U3K8K~^!bkHnYwky@oRUHj%+O;J3rs@{^Ca!J^ZOEyH@h&|K<`?~d( zgg()cLU@yCuI#cD?43_2~A#W~mF0PKgu#D1@Y+&)Q!W77E6D?U{kc-*s@{ z`>vij{rN4!@BGDuR;#YBWEZbLo&=MbDxS}n09Ts)*PaAc!0aAf5y1$)@a3e-k1X z@*q*tKbLkO^X{8-h{a$bw)=+`<90usORgRj+1XoYsFc112L@Zf>wR>vfU8mJV%s8d z>>(XUjV&WOSbo+!65@rAi!cm4JD@<73Icwbm(D4R;+DeLmxt6pGeM@`YZyWqzEy3#r;4)-t^>3?Tn$$v{- z?c+VSG@TZDu{s+FXVD~iO)&j^)W$Mn%{!9MO1-=A*?D<*(6L8HBjV4_>csJ?!!tN; z!R69*myLFr)&0ZTk4N}^0Rcu}DuXsv#9iOjL(DVFB3{2fm2W-LqORvD1+m_BF|X%{ z$6ZbB0<(1BC+m@N^h_ay=a{xK=z8rMvp-I+E88B9#nY0NWSN;gdADRaia{%Z?Ck6= zi0SS}BgzEFUo^4}6%xchLhxDdH45Reo0R1&+fa@7KHBv@IA9QSdmj-|<2v)v`8U#u z^yoO#+t0Lofv8ft@|$qbb9=~Rt)3P2<8sgaBl9D1&pmE%P23j^>v=~fi7>A5Hc>sz7F3|tK%JlK4>_{vIt_lf7_x5UVG~T3_0ra5sYCh;U}f=F=nfqF1vojCP}IWGB)K-Fg>@a*LJ`c%wEqtfj3}U{*WZb}g=6!7 z7_2jz%Zg`3m&qKB>Q9T8MudF(GuM9bo3l$e^Yd&Jz$Ml!2>S|e�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 literal 0 HcmV?d00001 From 1d1cdfa9c5f797aa859830dc4c1a5f7ecf2dcda5 Mon Sep 17 00:00:00 2001 From: Joo Liang Cheah Date: Wed, 12 Jun 2024 19:22:28 +0800 Subject: [PATCH 2/4] reworked on given comments --- README.rst | 94 ++++++++++-------- .../img/hwcu_device_name.png | Bin .../img/max_device_name.png | Bin waveform.png => docs/img/waveform.png | Bin 4 files changed, 54 insertions(+), 40 deletions(-) rename hwcu_device_name.png => docs/img/hwcu_device_name.png (100%) rename max_device_name.png => docs/img/max_device_name.png (100%) rename waveform.png => docs/img/waveform.png (100%) diff --git a/README.rst b/README.rst index 107069e47..286d41413 100644 --- a/README.rst +++ b/README.rst @@ -60,32 +60,30 @@ Python: Getting Started =============== +In order to use the **nidaqmx** package, you must have at least one DAQ (`Data Acquisition `_) +device installed on your system. Both physical and simulated devices are supported. The examples below use an X Series DAQ device +(e.g.: PXIe-6363, PCIe-6363, or USB-6363). +You can use **NI MAX** or **NI Hardware Configuration Utility** to verify and configure your devices. -In order to use the **nidaqmx** package, you must have at least one DAQ device installed on your -machine. X series DAQ device (eg: PCIe-6363 or USB-6351) is recommended, physical or -simulated devices are supported. You can use the **NI MAX** or **NI Hardware Configuration Utility** -to verify and configure your devices. +Finding and configuring device name in **NI MAX**: -Verify and configure devices on **NI MAX**: - -.. image:: max_device_name.png +.. image:: https://raw.githubusercontent.com/ni/nidaqmx-python/ca9b8554e351a45172a3490a4716a52d8af6e95e/max_device_name.png :alt: NI MAX Device Name :align: center :width: 800px -Verify and configure devices on **NI Hardware Configuration Utility**: -.. image:: hwcu_device_name.png +Finding and configuring device name in **NI Hardware Configuration Utility**: + +.. image:: https://raw.githubusercontent.com/ni/nidaqmx-python/ca9b8554e351a45172a3490a4716a52d8af6e95e/hwcu_device_name.png :alt: NI HWCU Device Name :align: center :width: 800px -Virtual channels and tasks are fundamental components of NI-DAQmx. - -Task in NI-DAQmx ----------------- +Tasks in NI-DAQmx +----------------- A task is a collection of one or more virtual channels with timing, triggering, and other properties. -Refer to the `NI-DAQmx Task `_ for more information. +Refer to `NI-DAQmx Task `_ for more information. Example code to create a task: @@ -98,46 +96,47 @@ Example code to create a task: Virtual Channels in NI-DAQmx ---------------------------- Virtual channels, or sometimes referred to generically as channels, are software entities that encapsulate the physical channel -along with other channel specific information—range, terminal configuration, and custom scaling—that formats the data. -Refer to the `NI-DAQmx Channel `_ for more information. +along with other channel specific information (e.g.: range, terminal configuration, and custom scaling) that formats the data. +A physical channel is a terminal or pin at which you can measure or generate an analog or digital signal.A single physical channel +can include more than one terminal, as in the case of a differential analog input channel or a digital port of eight lines. +Every physical channel on a device has a unique name (for instance, SC1Mod4/ai0, Dev2/ao5, and Dev6/ctr3) that follows the +NI-DAQmx physical channel naming convention. +Refer to `NI-DAQmx Channel `_ for more information. -Example code to create a task to read data from an analog input channel: +Example code that adds an analog input channel to a task, configures the range, and reads data. .. code-block:: python >>> import nidaqmx >>> with nidaqmx.Task() as task: - ... ai_channel = task.ai_channels.add_ai_voltage_chan("Dev1/ai0") - ... ai_channel.ai_min = -10.0 - ... ai_channel.ai_max = 10.0 + ... task.ai_channels.add_ai_voltage_chan("Dev1/ai0", min_val=-10.0, max_val=10.0) ... task.read() ... + AIChannel(name=Dev1/ai0) -0.14954069643238624 -Example code to create a task to read data from two analog input channels: +Example code that adds multiple analog input channels to a task, configures their range, and reads data. .. code-block:: python >>> import nidaqmx >>> with nidaqmx.Task() as task: - ... ai_channel_1 = task.ai_channels.add_ai_voltage_chan("Dev1/ai0") - ... ai_channel_2 = task.ai_channels.add_ai_voltage_chan("Dev1/ai1") - ... ai_channel_1.ai_min = -5.0 - ... ai_channel_1.ai_max = 5.0 - ... ai_channel_2.ai_min = -10.0 - ... ai_channel_2.ai_max = 10.0 + ... task.ai_channels.add_ai_voltage_chan("Dev1/ai0", min_val=-5.0, max_val=5.0) + ... task.ai_channels.add_ai_voltage_chan("Dev1/ai1", min_val=-10.0, max_val=10.0) ... task.read() ... + AIChannel(name=Dev1/ai0) + AIChannel(name=Dev1/ai1) [-0.07477034821619312, 0.8642841883602405] Timing ------ -You can use software timing or hardware timing to control when a signal is generated. With hardware timing, -a digital signal, such as a clock on your device, controls the rate of generation. With software timing, -the rate at which the samples are generated is determined by the software and operating system instead of -by the measurement device. A hardware clock can run much faster than a software loop. A hardware clock is -also more accurate than a software loop. -Refer to the `Timing, Hardware Versus Software `_ for more information. +You can use software timing or hardware timing to control when a signal is acquired or generated. +With hardware timing, a digital signal, such as a clock on your device, controls the rate of acquisition or generation. +With software timing, the rate at which the samples are acquired or generated is determined by the software and operating system +instead of by the measurement device. A hardware clock can run much faster than a software loop. +A hardware clock is also more accurate than a software loop. +Refer to `Timing, Hardware Versus Software `_ for more information. Example code to acquire finite amount of data using hardware timing: @@ -158,7 +157,7 @@ TDMS Logging ------------ Technical Data Management Streaming (TDMS) is a binary file format that allows for high-speed data logging. When you enable TDMS data logging, NI-DAQmx can stream data directly from the device buffer to the hard disk. -Refer to the `TDMS Logging `_ for more information. +Refer to `TDMS Logging `_ for more information. Example code to acquire finite amount of data and log it to a TDMS file: @@ -176,11 +175,26 @@ Example code to acquire finite amount of data and log it to a TDMS file: AIChannel(name=Dev1/ai0) Acquired data: [-0.149693, 2.869503, 4.520249, 4.704886, 2.875912, -0.006104, -2.895596, -4.493698, -4.515671, -2.776574] +To read the TDMS file, you can use the **npTDMS** third-party module. +Refer to `npTDMS `_ for detailed usage. + +Example code to read the TDMS file created from example above and display the data: + +.. code-block:: python + + >>> from nptdms import TdmsFile + >>> with TdmsFile.read("TestData.tdms") as tdms_file: + ... for group in tdms_file.groups(): + ... for channel in group.channels(): + ... data = channel[:] + ... print("data: [" + ", ".join(f"{value:f}" for value in data) + "]") + ... + data: [-0.149693, 2.869503, 4.520249, 4.704886, 2.875912, -0.006104, -2.895596, -4.493698, -4.515671, -2.776574] + Plot Data --------- -You can use the 3rd-party module **matplotlib.pyplot** to plot a waveform for the acquired data. -For more information on how to use **matplotlib.pyplot** module, refer to the -`Pyplot tutorial `_. +To visualize the acquired data as a waveform, you can use the **matplotlib.pyplot** third-party module. +Refer to `Pyplot tutorial `_ for detailed usage. Example code to plot waveform for acquired data using **matplotlib.pyplot** module: @@ -195,7 +209,7 @@ Example code to plot waveform for acquired data using **matplotlib.pyplot** modu ... data = task.read(READ_ALL_AVAILABLE) ... plt.plot(data) ... plt.ylabel('Amplitude') - ... plt.title('waveform') + ... plt.title('Waveform') ... plt.show() ... AIChannel(name=Dev1/ai0) @@ -203,7 +217,7 @@ Example code to plot waveform for acquired data using **matplotlib.pyplot** modu Text(0, 0.5, 'Amplitude') Text(0.5, 1.0, 'waveform') -.. image:: waveform.png +.. image:: https://raw.githubusercontent.com/ni/nidaqmx-python/ca9b8554e351a45172a3490a4716a52d8af6e95e/waveform.png :alt: Waveform :align: center :width: 400px @@ -346,4 +360,4 @@ licenses allow for non-commercial and commercial use. **gRPC Features** For driver APIs that support it, passing a GrpcSessionOptions instance as a parameter is subject to the NI General Purpose EULA -(`see NILICENSE `_). \ No newline at end of file +(`see NILICENSE `_). diff --git a/hwcu_device_name.png b/docs/img/hwcu_device_name.png similarity index 100% rename from hwcu_device_name.png rename to docs/img/hwcu_device_name.png diff --git a/max_device_name.png b/docs/img/max_device_name.png similarity index 100% rename from max_device_name.png rename to docs/img/max_device_name.png diff --git a/waveform.png b/docs/img/waveform.png similarity index 100% rename from waveform.png rename to docs/img/waveform.png From 1ef226877b469e77ee2afecfe8b64c42d28101f0 Mon Sep 17 00:00:00 2001 From: Joo Liang Cheah Date: Thu, 13 Jun 2024 09:48:33 +0800 Subject: [PATCH 3/4] changed full stop to colon --- README.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.rst b/README.rst index 286d41413..ca499d2ff 100644 --- a/README.rst +++ b/README.rst @@ -103,7 +103,7 @@ Every physical channel on a device has a unique name (for instance, SC1Mod4/ai0, NI-DAQmx physical channel naming convention. Refer to `NI-DAQmx Channel `_ for more information. -Example code that adds an analog input channel to a task, configures the range, and reads data. +Example code that adds an analog input channel to a task, configures the range, and reads data: .. code-block:: python @@ -115,7 +115,7 @@ Example code that adds an analog input channel to a task, configures the range, AIChannel(name=Dev1/ai0) -0.14954069643238624 -Example code that adds multiple analog input channels to a task, configures their range, and reads data. +Example code that adds multiple analog input channels to a task, configures their range, and reads data: .. code-block:: python From 9b11cf62ee4f3a3660f392404be0a8f6d47916d0 Mon Sep 17 00:00:00 2001 From: Joo Liang Cheah Date: Wed, 19 Jun 2024 08:51:41 +0800 Subject: [PATCH 4/4] fixed minor mistakes --- README.rst | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/README.rst b/README.rst index ca499d2ff..9d213dd95 100644 --- a/README.rst +++ b/README.rst @@ -72,7 +72,6 @@ Finding and configuring device name in **NI MAX**: :align: center :width: 800px - Finding and configuring device name in **NI Hardware Configuration Utility**: .. image:: https://raw.githubusercontent.com/ni/nidaqmx-python/ca9b8554e351a45172a3490a4716a52d8af6e95e/hwcu_device_name.png @@ -97,9 +96,9 @@ Virtual Channels in NI-DAQmx ---------------------------- Virtual channels, or sometimes referred to generically as channels, are software entities that encapsulate the physical channel along with other channel specific information (e.g.: range, terminal configuration, and custom scaling) that formats the data. -A physical channel is a terminal or pin at which you can measure or generate an analog or digital signal.A single physical channel +A physical channel is a terminal or pin at which you can measure or generate an analog or digital signal. A single physical channel can include more than one terminal, as in the case of a differential analog input channel or a digital port of eight lines. -Every physical channel on a device has a unique name (for instance, SC1Mod4/ai0, Dev2/ao5, and Dev6/ctr3) that follows the +Every physical channel on a device has a unique name (for instance, cDAQ1Mod4/ai0, Dev2/ao5, and Dev6/ctr3) that follows the NI-DAQmx physical channel naming convention. Refer to `NI-DAQmx Channel `_ for more information. @@ -168,7 +167,7 @@ Example code to acquire finite amount of data and log it to a TDMS file: >>> with nidaqmx.Task() as task: ... task.ai_channels.add_ai_voltage_chan("Dev1/ai0") ... task.timing.cfg_samp_clk_timing(1000.0, sample_mode=AcquisitionType.FINITE, samps_per_chan=10) - ... task._in_stream.configure_logging("TestData.tdms", LoggingMode.LOG_AND_READ, operation=LoggingOperation.CREATE_OR_REPLACE) + ... task.in_stream.configure_logging("TestData.tdms", LoggingMode.LOG_AND_READ, operation=LoggingOperation.CREATE_OR_REPLACE) ... data = task.read(READ_ALL_AVAILABLE) ... print("Acquired data: [" + ", ".join(f"{value:f}" for value in data) + "]") ...