arduino / arduino/ArduinoCore-API

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

Ouverte
#88 3 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
bug
Langage dominant
C++
Étoiles
306
Forks
150
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

### 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

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Piste de recherche

Commencez par Stream.cpp, au niveau des implémentations de parseInt et parseFloat référencées dans l’issue, puis lisez l’issue associée #70 ainsi que les rapports Arduino supplémentaires pour le contexte de compatibilité. Comparez le comportement du timeout avec des résultats valides égaux à zéro et définissez la fin du traitement comme un résultat de timeout non ambigu pour les deux fonctions d’analyse, en vérifiant le comportement au niveau des appelants d’API concernés.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
cpp
Domaine
api, embedded-iot
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.