arduino / arduino/ArduinoCore-API
[Feature Request] Make Wire library methods virtual
- Vorherrschende Sprache
- C++
- Sterne
- 306
- Forks
- 150
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
I suggest making the public methods of the TwoWire class virtual in order to allow polymorphism when subclassing it.
**Use case**: Have another library that utilizes the Wire library and takes a refrence to a TwoWire instance in constructor. Want to use it on pins without hardware I2C (or other reason for not wanting to use the standard Wire implementation). So I want to pass another class instance that inherits from TwoWire and implements the same methods (but uses software I2C). This does not work with current implementation because of early binding (the base class functions will be called instead of the ones in subclass).
Moved from: https://github.com/arduino/Arduino/issues/8734
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Beginne damit, die Deklaration der Klasse TwoWire in ArduinoCore-API zu lokalisieren und ihre öffentlichen Methoden sowie deren bestehende Verwendungen anhand von Referenzen zu überprüfen. Bewerte die Auswirkungen auf API und Kompatibilität, wenn diese Methoden virtuell gemacht werden, und verifiziere anschließend, dass eine Unterklasse, die dieselben Methoden implementiert, dort übergeben werden kann, wo eine TwoWire-Instanz erwartet wird, und die Aufrufe erhält.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- cpp
- Bereich
- embedded-iot
- Issue-Typ
- Feature
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100