Jak v C / Arduino pridat funkci do knihovny?
Miroslav Mraz
mrazik na volny.cz
Sobota Leden 20 10:00:33 CET 2024
Ano, to je čisté řešení, bohužel má jedinou vadu - nebude to fungovat.
Abyste mohl v potomkovi přistoupit k privátním datům, musíte v předkovi
udělat něco jako
friend dispLcdVfd;
a abyste to mohl udělat, musíte předem deklarovat class dispLcdVfd.
Takže stejně musíte upravit původní hlavičku. Ale to už je snad lepší
inlinovat tu svou funkci přímo do původní hlavičky.
void bright (uint8_t brg) { command (LCD_FUNCTIONSET | _displayfunction
| brg); }
V c++ lze obvykle vymyslet více řešení, ale které je správné záleží spíš
na vkusu daného uživatele.
Mrazík
On 20. 01. 24 7:53, Pavel Hudeček wrote:
> Jestli je to normální C++, tak udělat vlastní knihovnu, která přes
> dědičnost rozšíří tu původní o požadované metody.
>
> Nějak takhle:
>
> soubor dispLcdVfd.h ------
>
> #include "LiquidCrystal.h"
>
> class dispLcdVfd : LiquidCrystal {
>
> public:
> void bright(uint8_t brg);
>
> }
>
> soubor dispLcdVfd.cpp -----
>
> #include "dispLcdVfd.h"
>
> void dispLcdVfd::bright(uint8_t brg) {
> command(LCD_FUNCTIONSET | _displayfunction | brg);
> }
>
> PH
Další informace o konferenci Hw-list