Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

add isFlushed() to Stream/HardwareSerial

Aperta
#110 0 commenti 1 reazione 0 assegnatari Vedi su GitHub

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

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di arduino/ArduinoCore-API

Tutte le issue di arduino/ArduinoCore-API

Issue simili

Altre issue su C++

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.