Rozšíření iqrfpy
@ondracekr @spinarr @mastikj @vobornikp @Hynek
navrhované změny aktuální knihovny
-
MqttTransport
- bude osamostatněn do pluginu, který lze nainstalovat - přesunutí
ITransport
do rootu iqrfpy, tedyiqrfpy.transports.itransport.ITransport
=>iqrfpy.itransport.ITransport
- datové třídy nesoucí req / rsp data budou přesunuty do samostatného submodulu (zlepšení interních importů), prozatím pracuji s hlavě s
iqrfpy.objects
nebo podobné
návrh pro "rozšíření"
- vhodné položky budou včleněny
- pomocné metody a obecně aplikační logika by měly být samostatné aplikace, případně pluginy, které je možné doinstalovat, ale nejsou součástí základu iqrfpy (
MqttTransport
), sem by patřila i vznikající diagnostika (iqrfpy-mqtt-transport, iqrfpy-diagnostics)
iqrfpy_app_helpers
-
TransportType
- do iqrfpy nepatří, knihovna poskytuje rozhraníITransport
, dle kterého si každý může definovat svůj komunikační kanál, včetně MQTT kanálu, který je jiný než námi definovaný "synchronní" MQTT -
McuTypes
,TrTypes
,RfBands
(a dle mého názoru ještě InitPhy) - může být přidáno do knihovny, a mohou tak být i rozšířeny datové třídy pro OS Read, TR konfigurace a případně další - metody pro formátování na stdout - do knihovny nepatří, jedná se o čistě aplikační logiku
-
is_response_ok
- asi by mohlo být včleněno jako statická metoda třídyResponseCodes
-
get_rcode_string
- tato metoda existuje vResponseCodes
, pokud je požadavek na změny, tak se o nich můžeme pobavit -
interval_extract
,get_intervals_from_list
,get_list_from_intervals
- aplikační logika, aplikace nebo plugin -
get_hex_string_from_list
- existuje v iqrfpy, ale chybí delimiter, může být rozšířeno o nepovinný argument -
get_tr_conf_checksum
,fletcher_checksum
- může být přidáno jako statická metoda datové třídy TR konfigurace, případně do common -
metody pro formátování datumu build a verze - asi může být včleněno na vhodné místo v knihovně -
convert_bytes_to_std_sensor
- existuje,SensorParser.read_sensors_dpa
IqrfApplication
- již dle názvu (ale i kódu) jde o aplikační logiku
-
gw_params
metodyconnect
bych předělal na dataclass, u dict je třeba si pamatovat (nebo mít někde zdokumentované) jeho položky, dataclass poskytuje "tečkovou" notaci s výčtem položek a je možné jim definovat typy explicitně (pro intellisense a typovou kontrolu) -
client_id
by mělo být kombinace prefixu a generovaného náhodného řetězce, aby nedocházelo ke kolizím (u MQTT se projevuje tak, že 2 klienti se stále připojují k brokeru a navzájem se "vyhazují" a znevalidují si připojení
NtwDevice a IqmeshNtw
- aplikační logika, samostatná aplikace nebo plugin
-
is_per_enabled
-return per in self.tr_config.embedded_peripherals
Diagnostika
- aplikační logika, samostatná aplikace nebo plugin
Edited by Karel Hanák