Jak v C / Arduino pridat funkci do knihovny?

Jindrich Fucik fulda na seznam.cz
Neděle Leden 21 09:19:01 CET 2024


To nevím, záleží na tom, jaké autor sleduje zájmy. Někteří autoři 
směřují spíš geek směrem, jiní jsou konzervativní.
Pokud je to geek, tak změnu přijme, pokud je konzervativní, tak zase 
tvůj klon dlouho vydrží.

Dovedu si představit třeba jinou init funkci, která bude mít o parametr 
víc a tím se bude posílat číslo v rozsahu od 0 do 374 - tedy varianta a 
pak už bude ten if celkem přímočarej.

Dne 20.01.2024 v 23:32 Pavel Kutina napsal(a):
> Jen k tomu if - jak? Teda ne v kódu, ale ta knihovna nijak nerozlišuje, 
> k čemu se připojí - prostě je napsaná na klasické HD44780, no a jestli 
> má nějaký kompatibilní řadič rozšířenou instrukční sadu je jí vcelku 
> putna. Z displeje se (obvykle) nečte, takže ani ten nemá jak prokázat 
> svoji identifikaci, takže buď do kódu vnořit nějaké #define a #ifdef 
> větev do knihovny, nebo to udělat jak to je teď, kdy se definují 
> varianty při inicializaci. Je tam 8- nebo 4bit komunikace, jednořádková 
> nebo dvouřádková komunikace, velikost znaku - no a to je asi všechno, co 
> původní 44780 umí. Ale kdyby se pod to měly zahrnout všechny nadstavby 
> kompatibilních řadičů, asi by to značně nakynulo a vlastně nebyo nikdy 
> hotové, vcelku chápu, že autor tímhle směrem nešel.
> 
> Celkem pochybuju, že těch pár řádků do hlavní větve zařadí - ono těch 
> variant bude mračno, a když tam zapíše jednu, proč tam nezapsat dalších 
> 374 - a celá jednoduchost a stabilita bude v /dev/null...
> 
> Pavel Kutina
> 
> 
> 
> ----- Original Message ----- From: "Jindrich Fucik" <fulda na seznam.cz>
> To: <hw-list na list.hw.cz>
> Sent: Saturday, January 20, 2024 6:51 PM
> Subject: Re: Jak v C / Arduino pridat funkci do knihovny?
> 
> 
> 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
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
> _______________________________________________
> 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