Indice

Flushock

Ideja

Nadaljuje se sodelovanje z društvom Società Adriatica di Speleologia. Čeprav prvi projekt CO2SHOCK ima še precej potenciala v razvoju, kot objaviti vse meritve na spletu, se je pojavila nova želja. Eden izmed zanimivih podatkov, ki bi se ga dalo izmeriti, je pretok reke Timava, ki teče v najnižjem delu jame Labadnìce (it. Abisso di Trebiciano).

Meritev toka reke je precej kompliciran, ker je odvisen od hitrosti pretoka vode, ki pa ni enakomeren v strugi. Ponavadi je tok v sredini struge hitrejši, na dnu in na robovih pa počasnejši. Dodaten problem v tem primeru je, da globina reke se zelo hitro spreminja za precej metrov.

Torej kot prvo zadevo bi morsli izvesti celo serijo meritev v raznih točkah struge. Na podlagi teh podatkov je potem možno izračunati približno količino vode, ki se pretaka v reki. V končni fazi, ko bo na razpolago cela serija meritev z različnimi globinami reke, bo verjetno možno izračunaki pretok na osnovi le majhnega števila meritev.

Strojna oprema

Sergio Dambrosi od speleološkega društva je imel na razpolago zastarel merilec hitrosti toka, ki ga je priredil z modernejšo elektroniko. Merilec meri impuluze in vsakih 10 sekund pošlje število impulzov preko WiFi antene na WiFi sprejemnik, ki podatek pretvori v običajen RS-232 paket. Od tu dalje se lahko podatek enostavno prebere z računalnikom direktno povezan preko serijskih vrat ali pa preko cenovnega vmesnika, ki pretvori RS-232 v USB signal za računalnike, ki nimajo več na razpolago serijskih vrat.

Ko se WiFi sprejemnik prižge pošlje računalniku niz, ki vsebuje podatke sprejemnika (sigla modela ipd.). Nato vsakih 10 sekund pošlje niz s številom seštetih impulzov.

>000\n

Sprejemnik preko serijskih vrat ne sprejema nobenega ukaza, tako dačunalnik prebere samo podatke.

Programska oprema

Cilj programa, ki smo ga hoteli razviti, je prebrati število impulzov in si označiti v kateri uri je bila izvedena meritev. Serijo meritev je nato treba shraniti v datodeko v format CSV.

V Mittelab-u najraje delamo z odprto programsko opremo. Pri speleološkem društvu imajo precej različnih računalnikov z različnimi operacijskimi sistemi, kot Windows (več različic) in Linux. Da bi bilo čim lažje uporabiti program na različnih operacijskih sistemih, smo odločili, da bo program napisan v JAVA jeziku.

Knjižnica

Serijaka vrata

Dostop do serijskih vrat z Jave je nemogoč. V sami strukturi Jave ni nobenih API za dostop do serijskih vrat, ker je to močno odvisno od operacijskega sistema. V Unix operacijskih sistemih je dostop do serijskih vrat relativno enostaven z branjem sistemskih datotek, kot npr. /dev/ttyS0. To pa ne reši problema nastavitve vrat (hitrost, pariteta, itd.). Pri Windowsih pa branje COM vrat je bolj zapleteno z uporabo čiste Jave.

Zaradi teh problematik je bila razvita knjižnica jssc java-simple-serial-connector. Knjižnica je dosegljiva na githabu. Ta knjižnica ni čista Java knjižnica, saj ima v sebi del kode napisane v C++, ki je namenjena vsakemu operacijskemu sistemu. S to knjižnico postane dostop do serijskih vrat s strani JAVA kode precej enostaven.

MVC

Model-view-control je eden izmed modernih paradigmov programiranja. Spring je že dolgo let ena najpomembnejših framework-ov za razvijanje programov v Javi. Za ta program je bil uporabljen Spring Boot.

Unit Testing

V začetku razvoja je bil namen razviti vse potrebne razrede za testiranje kode. Za ta namen so bile vključene v program sledeče knjižnice: JUnit, mockito in Hamcrest. V samem začetku programiranja je bilo napisanih nekaj testnih razredov, kmalu pa je postalo jasno, da tak pristop ne bi imel zadostnih rezultatov. Da bi se lahko učinkovito testiralo bistveno kodo bi bilo potreba uporabiti še PowerMock. Iz tehničnega vidika ne bi bil problem, bi pa zahteval nekaj več časa za celoten razvoj.

Če bo potreba dodati kako funkcionalnost ali razviti novo verzijo tega programa bo spet vzeta v poštev ta pomanjkljivost in bi bilo treba razviti testno kodo tako za obstoječo kot za novo kodo.

Trenutno je samo omenjenih nekaj testov.

Dolpoteg

Koda programa je na razpolago v našem GIT-u. Koda je na razpolago pod licenco GPL3. V primeru, da bi radi kaj popravili, prikrojili ali dodali funkcionalnosti, vljudno prosimo, da to javite na info@mittelab.org . Veselili bi se sodelovanja.