Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

`stream_readers` array shape validation is incompatible with `READ_ALL_AVAILABLE`

Abierto
#421 2 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 2 días

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
38/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
numpy, python
Área
api

Línea de trabajo

Comienza con generated/nidaqmx/stream_readers.py, especialmente con read_many_sample y _verify_array, y después reproduce el ejemplo usando AnalogMultiChannelReader y READ_ALL_AVAILABLE. Se considera terminado cuando se acepta un array de NumPy preasignado de (2, 1000) aunque varíe la cantidad de muestras disponibles, y el ejemplo imprime los datos del array sin el error de validación de forma.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

If you use stream_readers to read into a preallocated NumPy array with number_of_samples_per_channel=READ_ALL_AVAILABLE, the stream reader validates the NumPy array shape against the available samples per channel, which is not a predictable number.

Steps to reproduce

Install an X Series or M Series as Dev1 and run this code:

import pprint
import time

import nidaqmx
import numpy
from nidaqmx.constants import AcquisitionType
from nidaqmx.stream_readers import AnalogMultiChannelReader

pp = pprint.PrettyPrinter(indent=4)

with nidaqmx.Task() as task:
    task.ai_channels.add_ai_voltage_chan("Dev1/ai0:1")
    task.timing.cfg_samp_clk_timing(1000.0, sample_mode=AcquisitionType.CONTINUOUS)
    task.start()
    time.sleep(100e-3)

    reader = AnalogMultiChannelReader(task.in_stream)
    data = numpy.zeros((2, 1000), dtype=numpy.double)
    reader.read_many_sample(data, timeout=0.0)

    pp.pprint(data)

Expected output

Prints array data

Actual output

The required number of samples varies from run to run but is around 100 to 110.

Traceback (most recent call last):
  File "D:\dev\nidaqmx-python\examples\ai_raw.py", line 19, in <module>
    reader.read_many_sample(data, timeout=0.0)
  File "D:\dev\nidaqmx-python\generated\nidaqmx\stream_readers.py", line 322, in read_many_sample
    self._verify_array(data, number_of_samples_per_channel, True, True)
  File "D:\dev\nidaqmx-python\generated\nidaqmx\stream_readers.py", line 83, in _verify_array
    raise DaqError(
nidaqmx.errors.DaqError: Read cannot be performed because the NumPy array passed into this function is not shaped correctly. You must pass in a NumPy array of the correct shape based on the number of channels in task and the number of samples per channel requested.

Shape of NumPy Array provided: (2, 1000)
Shape of NumPy Array required: (2, 105)

Task Name: _unnamedTask<0>
Lenguaje dominante
Python
Estrellas
590
Forks
199
Merge medio
1 d 20 h
PR fusionados (30 d)
10

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de ni/nidaqmx-python

Todos los issues de ni/nidaqmx-python

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.