Projekt riešený na Katedre experimentálnej fyziky FMFI UK
Prvým krokom pri tvorbe GUI je konzolová aplikácia, ktorá má plnú funkčnosť - musí umožniť nastavenie meracích pozícií (orientácií snímača) a typu merania (aké filtre sa majú nastaviť). Potom musí aplikácia autonómne vykonať merania pre každú pozíciu a výsledky merania uložiť do súboru. Po otestovaní aplikácie a jej zotavenia za rôznych situácií (vrátane harvérových problémov ako odpojenie USB káblov alebo reštart počítača) je možné pristúpiť k tvorbe samotného GUI.
Merací cyklus predstavuje dva vnorené cykly: vonkajší cez pozície hlavy a vnútorný cez filtre. Prakticky sa opakovane využívajú rovnaké sady pozícií hlavy, napríklad celooblohový sken s rozlíšením 10 stupňov alebo sken po poludníku od horizontu po zenit. Preto rôzne sady pozícií meracej hlavy si užívateľ pripraví vopred v jednoduchých textových súboroch, kde v každom riadku je dvojica čísel elevácia, azimut zadaná v stupňoch. Príkladom môže byť sada pozícií pre meranie po poludníku od horizontu po zenit s krokom 10 stupňov.
Podobná situácia je aj s typom meraní, ktoré sa tiež vykonávajú opakovane. Príkladom môže byť zmeranie spektra alebo zmeranie polarizácie svetla na niektorej vlnovej dĺžke. Preto aj typ merania definujeme v samostatnom textovom súbore. Štruktúru súboru ilustrujeme na meraní spektra. Prvý riadok súboru sa nakopíruje ako prvý riadok do výstupného súboru s výsledkami merania. Potom nasledujú riadky s povelmi pre meraciu hlavu. V našom príklade sú to iba príkazy pre nastavenie filtrov 'SFL' a príkazy pre meranie GSV. Program každú hodnotu získanú meraním zapíše do výstupného súboru, jednotlivé namerané hodnoty sú oddelené tabelátorom. Je zrejmé, že prvý riadok má mať toľko textov oddelených tabelátorom, koľko príkazov 'GSV' je v ďalších riadkoch.
Výsledkom tak bude formátovaný súbor dát, kde prvý riadok predstavuje záhlavia stĺpcov, pričom na začiatok riadkov sa pridá údaj o zenitovom uhle a azimute. Formát dát je kompatibilný s MS EXCEL a s programami pre kreslenie grafov v polárnych súradniciach (zenitový uhol vtedy predstavuje polomer).
Oproti udalosťami riadenému GUI je náš konzolový program lineárny. Postupne sa vykonajú nasledujúce kroky:
Pre ilustráciu funkčnosti celého systému uvádzame celooblohový sken integrálneho jasu oblohy cez všetky vlnové dĺžky. Sken má rozlíšenie 7°x7°. V obrázku je vysvetlená príčina vzniku hlavných útvarov. Zelená čiara približne oddeľuje oblohu od stien bytu a balkóna. Niektoré steny a okná boli osvetlené pouličným osvetlením.
Príklad nameraného jasu oblohy (vľavo), stupňa polarizácie (v strede) a uhla polarizácie (vpravo) nočnej oblohy v okolí Lábu:
Kompletný program je na tejto linke.
Po odskúšaní konzolovej verzie programu sme pristúpili k tvorbe GUI. Základné okno umožňuje pokračovať v prerušenom meraní, alebo prejsť k nastaveniam nového merania:
Sekcia "Settings" umožňuje manuálne nastavenie všetkých parametrov zariadenia (voľba filtrov, citlivosť fotonásobiča, počet spriemerovaných meraní, nastavenie minimálnej teploty pre spustenie vykurovania):
Sekcia "File configuration" umožňuje výber predpripravených pozícií merania (napríklad celooblohový sken s rôznym rozlíšením) a predpripravených meraní (napríklad spektrum alebo polarizácia):
Po spustení merania sa zobrazuje progres v meraní a tiež sa robí priebežne odhad zostávajúceho času merania:
Keďže sady filtrov 10 nm a 40 nm sa navzájom líšia v rozsahu pokrytia spektra, k dispozícii sú dve verzie GUI: pre filtre 10 nm a pre filtre 40 nm