ni / ni/nidaqmx-python

Missing support for multi-channel counter reads in `stream_readers` and `task`

Open
#498 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
592
Forks
199
Avg merge
1d 16h
Merged PRs (30d)
10

Description

Note: this is a VERY uncommon use-case. We can probably ignore this for a bit, and nobody would notice. We didn't for a long time!

DAQmx supports having multiple Counter Input channels in a single task (note: these may not be 100% correct, and I may be missing some. We'll need to do a little digging to get the full landscape of what is possible):

  • 9361 supports multiple counters in a single task doing a double-datatype read, e.g. multiple duty cycle reads
  • X Series supports multiple pulse counters in a single task

I suspect the channel_collection APIs handle this already. It doesn't look like task.read supports this. double probably work as-is, but pulses definitely not. And there are no stream_reader (ChannelReaderBase) classes that are appropriate. We have a CounterReader, but that should probably be CounterSingleChannelReader (with continued support using the old name and deprecation), and we don't have a CounterMulChannelReader.

AB#3076225

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the stream_readers ChannelReaderBase classes, CounterReader, and task.read, then compare their behavior with the channel_collection APIs. Determine the supported multi-channel counter-read cases, add the appropriate single- and multi-channel reader support, and preserve CounterReader as a deprecated name.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
api, embedded-iot
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.