Felhasználói felület készítése klímakamrához

Az orvostechnikai eszközöknek komoly tesztelésen kell átesniük mielőtt piacra kerülhetnének. Az eszköz működését nem csak szoftveres oldalról kell tesztelni, hanem különböző hőmérsékleti körülmények között is biztosítani kell a megfelelő működést.

Feladatom egy olyan szoftver létrehozása volt, amellyel egy meglévő és működő klímakamrához olyan felhasználói felületet hozzak létre, amelynek segítségével bárki képes hőmérsékletet és üzemmódot beállítani.

A fejlesztés során kitétel volt még, hogy bármikor egy másik PC-ről elérhetőek legyenek az aktuális beállítások és hőmérsékleti viszonyok.

Fejlesztés folyamata:

  • Kommunikációs forma választása
  • Szerverrel történő kommunikáció megvalósítása
  • Grafikai megjelenítő kiválasztása
  • Felhasználó felület felépítésének megtervezése és elkészítése
  • Ellenőrzés, tesztelés

Feladat ismertetése:

A legfőbb feladat a fejlesztés során az volt, hogy az elkészült program platform független legyen, windows és linux rendszeren is egyaránt használható legyen.

Mivel az adatokat szükséges lehet online is továbbítani, így egy szervert kellett létrehozni, amelyhez felhasználók és a klímakamra tud csatlakozni.

Első feladatom volt a kommunikációs forma megválasztása, ahol a választás a TCP protokollra esett. Ezt követte a központi szerver létrehozása, ahova felhasználók és a klímakamra tud csatlakozni, majd a felhasználói felület létrehozása.

A felhasználói felület esetén weblapra esett a megoldás, mivel ez platform független és a szerverhez történő kapcsolódás is könnyedén megvalósítható vele. A felhasználhatóság fontos szempont volt a tervezésnél mivel a kezelés érintőképernyőről történik így ennek megfelelő gomb kiosztást és méreteket kellett meghatározni.

projekt megvalósítása

A megvalósítás alatt fontos követelmény volt, hogy az adatok ne vesszenek el az elküldés során, illetve egy ciklus se maradjon ki. Ezért esett a választás a már említett TCP protokollra, mely garantálja az üzenetek sorrendhelyes megérkezését a kommunikációban, illetve a sikertelen adatküldést automatikusan megismétli.

Első lépésként a klímakamrát kellett összekapcsolni a szerverrel, ez TCP protokollon keresztül történt. A felhasználói felület (későbbiekben GUI) ezen a kapcsolaton keresztül kap adatokat a benti viszonyokról, valamint ezen keresztül kerül leküldésre a kívánt hőmérsékleti érték és a működési üzemmód. A csatlakozás elején elküldésre kerül egy azonosító is, amivel a szerver képes azonosítani, hogy a tényleges eszköz kíván csatlakozni a rendszerhez, valamint ezzel történik a felhasználó és a klímakamra megkülönböztetése.

A szerveren el kellett tárolni a hozzá beérkező hőmérséklet és páratartalom adatokat. Erre egy hagyományos txt fájl szolgál, amelyből naponta készül egy új darab az aktuális dátum alapján, így később könnyedén visszatekinthetőek.

A készülék mellett közvetlenül egy érintőképernyővel ellátott ipari PC található linux-os operációs rendszerrel, amelynek segítségével paraméterezhető az eszköz. Ez a PC a bekapcsolása után automatikusan elindítja a szervert, illetve a böngészőt, amelyen belül a GUI kerül megjelenítésre.

A GUI két részből tevődik össze: gombok, amelyek a beállításra szolgálnak, valamint két darab grafikon, amelyeken a hőmérsékleti és páratartalmi adatok láthatóak. A grafikon másodpercenként frissül, mivel a kamra ilyen időközönként küld adatokat a szervernek.

Mivel a kezelői felület, amely a klímakamra mellett helyezkedik el kis méretű, ráadásul érintőképernyős is, így egy olyan megoldás született, amelynek segítségével a gombok átmenetileg eltüntethetőek, így a grafikon az előzőnél lényegesen nagyobb méretben látható.

A felhasználó, aki távolról kíván „ránézni” a benti viszonyokra szintén egy böngésző segítségével teheti meg. Ez úgy lett megvalósítva, hogy csak egy adott weboldalt kell megnyitnia és a weblap automatikusan egy előre definiált hálózati névhez csatlakozik.

Fontos megjegyezni, hogy a felhasználó pontosan ugyan azt látja, mint ha odasétálna a kamrához és az ottani GUI felületet látná. Mind a két esetben visszamenőleg tízpercnyi adat látható mind a két grafikonon.

A GUI számára az adatok WEBSOCKET protokollon keresztül érkeznek meg, aminek az a nagy előnye az AJAX és HTTP protokollokkal szemben, hogy a szerver közvetlenül tud üzenetet küldeni a kliensnek, míg a másik két protokoll esetén a weblap kérést küld a szervernek az új adatok lekérésére.

Ennek köszönhetően az adatátvitel sokkal gyorsabb és dinamikusabb lesz, ezáltal javul a rendszer használhatósága.

A beállítások módosítása csak a kamra melletti felület segítségével történhet, távolról ez nem lehetséges, ennek legfőképpen biztonsági okai vannak, valamint véletlenül ne lehessen elrontani egy mérést.

Tesztelés

A fejlesztés során többféle tesztelési módot végeztem. Ezek közül az első az volt, hogy a készülék és szerver közötti kommunikáció létrejöttét és stabilitását vizsgáljam. Ekkor az elküldött és megkapott üzeneteket fájlokba mentettem, ezáltal bizonyosodva meg az átvitel helyességéről.

Ezt követően vizsgáltam a sikeresen elküldött és sikeresen fogadott adatok számát, ezáltal pontosan felderíthető volt, ha esetlegesen egy üzenet elveszett. Ebben a tesztesetben már a teljes rendszert teszteltem, de a weblapon még csak az üzenetek jelentek meg.

A szerveren terheléses tesztet végeztem, amiben 20 felhasználó vett részt. Ez a szám kevésnek bizonyulhat, de ennél több felhasználó egyidejűleg nem fog tartózkodni a szerveren.

Utolsó ellenőrzésként a grafikont teszteltem. Ebben a tesztben azt vizsgáltam, hogy minden beérkező adat megjelenítésre kerül-e a grafikonon.

A teszt során megbizonyosodtam arról, hogy az átvitelben nem történik hiba, minden üzenet sorrendhelyesen érkezik meg a GUI számára.

Továbbfejlesztési lehetőségek

A jövőben olyan igény merült fel, hogy lehetőség legyen pontos dátummal és idővel előre üzemmódot és hőmérsékleti értéket beállítani. Erre azért van szükség, mert ha valaki egy mérést akar kezdeni akár másnap reggel, vagy esetleg hétfő reggel akkor bekapcsolva kell hagyni a klímakamrát egész éjjel, ami felesleges energiahasználást jelent. Ennek az elkerülésére kell egy olyan jövőbeli új verziót kiadni, amelyben ez a funkció megtalálható.

Összegzés

A kutatói munkám során minden feladatot az elvárásoknak megfelelően teljesítettem és megvalósítottam, illetve a szükséges teszteket elvégeztem.

 

Magyar Tamás