Úvod do vybavení SW 1.0, volba programovacího jazyka

 

Původní ovládací jednotka je samostatná elektronická část bez možnosti dálkového ovládání. To se mi zdá v dnešní době poněkud nepraktické. Nová jednotka s Raspberry Pi je schopná komunikovat po síti a tedy je možné ji ovládat programem umístěným v jakémkoliv počítači. Takový program se může nacházet přímo v satelitním přijímači jako plugin v Enigmě a otáčet parabolou podle zvoleného programu. Může ale být i v tabletu nebo mobilu a tak toto zařízení používat jako dálkový ovladač. Nebo může být v klasickém PC nebo notebooku a velký monitor těchto zařízení lze využít k přehlednému grafickému zobrazení při různých experimentech. Například při lovení exotických družic, při vytváření nových předvoleb nebo nastavení, při sledování družic, které nejsou geostacionární, a podobně.

Všechny tyto možnosti závisí na způsobu naprogramování ovládacího software. A zde se musím zmínit o jedné vlastnosti, kterou původní zařízení má a kterou se mi určitě nepodaří zajistit. Totiž plná funkčnost i po 35 letech. Dnes je ve světě software doba překotných inovací a aktualizací a je těžké předpovídat, co bude byť jen za několik let. Tedy jestli dnešní ovládací software bude kompatibilní s operačními systémy zítřka.

Pokud bych měl ambice vytvořit zařízení, které bude funkční i za 35 let, musel bych z druhého Raspberry Pi vytvořit ovládací jednotku umístěnou v dosahu obsluhy, která by obsahovala ovládací SW bez potřeby jakýchkoliv následných úprav. To znamená obě části propojit samostatným datovým kabelem bez napojení na jakoukoliv počítačovou síť. A to je dost nepraktické a omezující. Spíše by tyto dvě zařízení komunikovaly po běžné síti, nejspíše i napojené na internet, proto by bylo vždy zapotřebí alespoň instalovat bezpečnostní aktualizace operačních systémů. A tím pádem je vize zcela autonomního zařízení nereálná.

Pokud bych se snažil co nejvíce eliminovat dopady změn v softwarovém vybavení počítačů, musel bych svůj program napsat v nějakém dlouhodobě stabilním programovacím standardu. Například pomocí jazyka C bez využití externích knihoven operačního systému. Lze předpokládat, že kompatibilita s takto napsaným programem by mohla být udržitelná relativně dlouhou dobu. Bohužel se obávám, že na takové programování mé znalosti nestačí. A proto musím pro začátek z podobných vlastností trochu slevit. V tuto chvíli je mým hlavním cílem celé zařízení zprovoznit. To je nejdůležitější parametr, kterému podřídím vše ostatní.

Takže půjdu cestou nejmenšího odporu a zvolím to nejjednodušší řešení, i když vím, že použité komponenty bude potřeba brzy aktualizovat a tedy nedokážu odhadnout, jaký to bude mít vliv na funkčnost a tedy i životnost mého software. Protože jsem ale jen amatér, pro kterého je tato činnost koníčkem, nemusí mě tento nedostatek zase tak moc trápit. Třeba se dříve či později najdou schopnější programátoři, které by mohlo mé dílo oslovit, a převedou ho do dokonalejších forem.

Z uvedených důvodů jsem se nakonec rozhodl, že nebudu psát žádný samostatný ovládací program. Místo toho použiji k ovládání běžný webový prohlížeč. Tím je zajištěna nezávislost na platformě, ze které půjde pozicionér ovládat. V Raspberry Pi bude webový server, který bude přijímat povely z webového prohlížeče – klienta a podle těchto pokynů bude ovládat celý HW. Vzhledem k potřebě rychlé obousměrné komunikace mezi klientským webovým prohlížečem a serverovou výkonnou aplikací jsem se rozhodl pro využití programovacího jazyka javascript. K jeho interpretaci jsem zvolil webový server Node.js. Z pohledu programátora - amatéra se mi zatím jeví tento přístup jako nejschůdnější.

No a na závěr těchto úvah se musím ještě zmínit o nejtěžším rozhodnutí, které na mě čekalo. Takovýto projekt si určitě zaslouží nějaké originální pojmenování. Po dlouhém přemýšlení jsem nakonec zvolil označení "SatProwler". Nebudu zapírat, že inspiraci jsem našel u skupiny AC/DC v jejich skladbě Night Prowler.