arduino / arduino/ArduinoCore-API

Ambiguous timeout return value of `Stream::parseInt` and `Stream::parseFloat`

Abierto
#88 3 comentarios 0 reacciones 0 asignados Ver en GitHub
bug
Lenguaje dominante
C++
Estrellas
306
Forks
150
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

### Describe the problem

The parsing functions of the `Stream` class have a timeout mechanism. If the operation does not complete prior to the expiration of the timeout, the functions return `0`:

`Stream::parseInt`:

https://github.com/arduino/ArduinoCore-API/blob/0f4e57ea193a00163ae59f0f0ff478feae7eb5db/api/Stream.cpp#L141

`Stream::parseFloat`:

https://github.com/arduino/ArduinoCore-API/blob/0f4e57ea193a00163ae59f0f0ff478feae7eb5db/api/Stream.cpp#L172

🐛 The function does not provide the user with an unambiguous indicator that the parsing failed.

### ArduinoCore-API version

Last verified with: 0f4e57ea193a00163ae59f0f0ff478feae7eb5db

### Additional context

I suggest that these functions be changed to return `(int)NAN` or `(float)NAN` on timeout.

#### Additional reports

- https://github.com/arduino/Arduino/issues/1796
- https://github.com/arduino/Arduino/issues/7177

#### Related

- https://github.com/arduino/ArduinoCore-API/issues/70

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Línea de trabajo

Comienza con Stream.cpp, en las implementaciones de parseInt y parseFloat enlazadas en el issue, y después lee el issue relacionado #70 y los informes adicionales de Arduino para conocer el contexto de compatibilidad. Compara el comportamiento del timeout con resultados válidos de cero y define la finalización como un resultado de timeout inequívoco para ambas funciones de análisis, comprobando el comportamiento en los llamadores de API relevantes.

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

Evaluación

Stack tecnológico
cpp
Área
api, embedded-iot
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.