Jak v C / Arduino pridat funkci do knihovny?

Jindrich Fucik fulda na seznam.cz
Sobota Leden 20 18:51:54 CET 2024


Hele a proč nepoužít vlastnosti githubu?

Mám velmi dobrou zkušenost s tím, že si udělám vlastní klon, v něm si 
potřebné soubory nějak kulturně zadituji, abych nneponičil původní 
myšlenku a pak zase vrátím původnímu autorovi. Github udělá patch, já 
nějak popíšu, co jsem udělal a proč a je to. Pokud maintainer ještě 
žije, tak buď změnu akceptuje jak je, nebo mi napíše co jsem nepochopil 
a udělá podobnou.

Vlastně ve tvojem modelu schází nějaký ten if, jenom pro podporovaný 
displej. Třeba se to chytne a zjistíš, že ještě pár dalších displejů 
podporuje brightnes.

Dne 20.01.2024 v 1:17 Pavel Kutina napsal(a):
> Zdravim,
> 
> resim drobnost, ale trochu si s ni lamu hlavu, v C fakt nejsem moc dobrej.
> 
> Mam Arduino, v nem pouzivam jednu ze sdilenych knihoven (standardni 
> LiquidCrystal), ale protoze ji pouzivam ve spojeni s Futaba VFD, docela 
> by se mi hodilo mit tam rizeny i jas, coz u LCD neni potreba. Tohle jsou 
> originaly:
> 
> https://github.com/arduino-libraries/LiquidCrystal/blob/master/src/LiquidCrystal.cpp
> https://github.com/arduino-libraries/LiquidCrystal/blob/master/src/LiquidCrystal.h
> 
> Ja potrebuju pripsat v podstate jednu funkci:
> 
> // This will set bright of text
> void LiquidCrystal::bright(uint8_t brg) {
>   command(LCD_FUNCTIONSET | _displayfunction | brg);
> }
> 
> Blbe je, ze _displayfunction je v .h definovana jako private, takze se k 
> ni z meho kodu nedostanu (nebo to neumim). Resenim je upravit si kod 
> knihovny i headeru natvrdo - funkci jsem pripsal, v .h jsem ji 
> deklaroval, pridal jsem definice pro nastaveni jasu. V mem kodu ji 
> zavolam jako:
> 
> lcd.bright(LCD_BRIGHT25);
> 
> A vsechno funguje.
> 
> Potud OK. Ale protoze je to jedna se sdilenych knihoven, muze u ni dojit 
> casem k nejake uprave a predpokladam, ze pri updatu to moji lokalni 
> upravu zahodi. Da se tohle nejak resit? Udelat si vlastni fork a 
> udrzovat to se mi uplne nechce - da se ta knihovna nejak rozsirit a 
> dostanu se pak i k te privatni promenne? V ni je schovane aktualni 
> nastaveni displeje - pocet radku, zpusob komunikace. V podstate jde o 
> stav tri bitu, ale protoze z displeje nectu, jen se do nej zapisuje, tak 
> neni jak je zjistit, takze se jejich stav udrzuje v pameti.
> 
> Napadne nekoho, jak to udelat pokud mozno spravne?
> 
> Diky.
> 
> Pavel Kutina
> 
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list


Další informace o konferenci Hw-list