Wire library has no timeout functionality (meaning it is blocking).

Aperta
#83 3 commenti 4 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
42/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
cpp
Ambito
embedded-iot

Direzione di ricerca

Inizia leggendo la pull request collegata di ArduinoCore-avr e confrontando la sua implementazione di Wire con ArduinoCore-megaavr, concentrandoti su Wire.endTransmission() e sulle funzioni setWireTimeout(), getWireTimeoutFlag() e clearWireTimeoutFlag() indicate nell’issue. Il lavoro è completato quando la libreria Wire di megaavr fornisce un comportamento di timeout equivalente e non si blocca più indefinitamente durante la trasmissione.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

In trying to solve some I2C issues I've been having, I came across this thread (and a great many others), which indicate the Wire libraries don't have any timeout capabilities, particularly making Wire .endTransmission () blocking. This has since been solved and merged into ArduinoCore-avr and has appeared in my libraries locally. To the best of my knowledge (and my own experience), the ArduinoCore-megaavr Wire library is also blocking. I haven't been able to find this fix in the ArduinoCore-megaavr version of Wire, and I haven't found any other issues relating to this, so I'm raising one now.

I'm not aware of the development relationship between the two cores, so if this already on its way, that's great. If not (and it's appropriate to do so), I'd like to see the functionality added to ArduinoCore-avr added here too. Particularly, I'd like to see functionality added that's similar to that provided by the new functions setWireTimeout(), getWireTimeoutFlag(), clearWireTimeoutFlag().

Lingua principale
C++
Stelle
112
Fork
66
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

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

Tutte le issue di arduino/ArduinoCore-megaavr

Issue simili

Altre issue su C++

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.