Jak v C / Arduino pridat funkci do knihovny?

Pavel Kutina hw na prelude.cz
Sobota Leden 20 16:18:27 CET 2024


Máte pravdu, to je čistší. Tak jsem zkusil udělat fork, doplnil pět řádků do 
headeru a zkusím, co to udělá :)

Díky za pošťouchnutí.

Pavel Kutina


----- Original Message ----- 
From: "Lubos Medovarsky" <lubos.hwlist na accelera-networks.com>
To: <hw-list na list.hw.cz>
Sent: Saturday, January 20, 2024 2:54 PM
Subject: Re: Jak v C / Arduino pridat funkci do knihovny?



Zdravim,

z pohladu tych, ktori pisu a zdielaju podobne kniznice mi pripada
vhodnejsie nez vselijake hacky vytvorit jednym klikom kopiu - "fork"
kniznice na Githube, upravit ju tak, aby bola zmena vseobecne uzitocna,
a zaslat dalsim klikom pull request povodnym vyvojarom s kratkym
vysvetlenim, na co je uprava dobra. Zlozitost tejto aktivity je
subjektivne nizka, odporucal by som aspon to raz skusit.

Vysledkom zvycajne byva zapracovanie upravy do "upstreamu", podakovanie,
referencia na autora v historii zmien, multimetrom tazko meratelny dobry
pocit, a odpadava potreba udrzby vlastnej upravenej kopie.

Su za tym ludia podobneho zamerania, zvycajne ti slusnejsi, ktori
pochopia dokonca aj to, ak druha strana neovlada dokonale prave ich
matersky alebo programovaci jazyk.


S pozdravom

LM

On 1/20/24 01:17, Pavel Kutina wrote:
> 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