Missing support for multi-channel counter reads in `stream_readers` and `task`
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.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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