add isFlushed() to Stream/HardwareSerial
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- cpp
- Ambito
- api, embedded-iot
Direzione di ricerca
Inizia esaminando Stream/HardwareSerial e le precedenti PRs Arduino collegate nell’issue per comprendere l’API proposta e le implementazioni del core interessate. Verifica come viene esposto oggi lo stato del buffer di trasmissione, quindi definisci come completato il fatto che Serial.isFlushed() segnali in modo affidabile che tutti i dati di trasmissione hanno lasciato il buffer per l’uso half-duplex, con una copertura corrispondente nei punti in cui i core rilevanti testano il comportamento seriale.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Please add Serial.isFlushed() method for checking that all data in Tx buffer have been flushed. We need it for non-blocking Serial.write() to half duplex communication (such as RS485).
At the moment I use something like this in my non-blocking code:
while (Serial.availableForWrite() > 0 && ndx < sizeof(buffer)) {
Serial.write(buffer[ndx]);
ndx++;
}
if (Serial.availableForWrite() == SERIAL_TX_BUFFER_SIZE - 1 && ndx > sizeof(buffer)) {
ndx = 0;
// Disable RS485 transmit and start receiving
}
But Serial.availableForWrite() == SERIAL_TX_BUFFER_SIZE - 1 is not reliable for checking that Tx buffer has been flushed.
Here is an earlier PR which was never merged:
https://github.com/arduino/Arduino/pull/3737
and a similar PR for ArduinoCore-sam here:
https://github.com/arduino/ArduinoCore-sam/pull/7
I would help, but coding Arduino core is beyond my skills.
- Lingua principale
- C++
- Stelle
- 306
- Fork
- 150
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di arduino/ArduinoCore-API
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 25/100
arduino/ArduinoCore-API#261 ·
-
bug
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 30/100
arduino/ArduinoCore-API#256 ·
-
enhancement
Difficoltà 3/5 1-2 giorni Idoneità per principianti 48/100
arduino/ArduinoCore-API#251 · 1 commento ·
-
enhancement
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
arduino/ArduinoCore-API#250 ·
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 45/100
arduino/ArduinoCore-API#249 ·
Tutte le issue di arduino/ArduinoCore-API
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
ros2/message_filters#338 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
subsurface/subsurface#4984 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
flutter-webrtc/flutter-webrtc#2206 ·
-
litertlm-android AAR ships no consumer ProGuard rules → "mid == null" SIGABRT in minified apps Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
google-ai-edge/LiteRT-LM#3739 ·