Poloha ISS naživo

Projekt Qenex_IssLiveTracking.qproj najdete ve složce Examples vedle QInsight.exe. Používá dvojici ukázkových pluginů, jejichž zdrojové kódy rozebírá kapitola Ukázka ISS: driver ISS Position (example) a protokol ISS JSON Protocol (example). Zařízením je tu veřejné REST API s aktuální polohou Mezinárodní vesmírné stanice, takže k běhu stačí připojení k internetu.

Co ukázka předvádí

  • Vlastní driver a protokol v akci: nejmenší reálný driver (jeden HTTP GET za sekundu) a protokol, který z jednoho JSON dokumentu plní čtyři proměnné podle klíče path.
  • Obnovu spojení vlastního driveru přes ReconnectPolicy: výpadek internetu driver přepne do Faulted, po obnovení se sám vrátí do Running.
  • Zeměpisnou šířku, délku, výšku a rychlost stanice v grafu, gauge, signal controlech a watch table.

Co potřebujete

Jen QInsight a internet. Pluginy jsou součástí instalace (složky Drivers a Protocols vedle QInsight.exe). API api.wheretheiss.at je zdarma a bez klíče; driver dodržuje jeho limit jednoho požadavku za sekundu.

Projekt

Driver a protokol

Driver ISS Position (example)Význam
periodMs=1000perioda dotazů; driver nedovolí méně než 1000 ms

Klíče reconnectDelayMs a reconnectAttempts projekt neuvádí, platí tedy výchozí hodnoty ze šablony driveru: nový pokus po 5 s, donekonečna. Protokol nemá žádné nastavení.

Proměnné

Čtyři proměnné typu double, každá s vlastní prezentací a klíčem path, který říká, ze kterého pole JSON se hodnota bere:

ProměnnápathPrezentace
Latitudelatitude−90 až 90 °
Longitudelongitude−180 až 180 °
Altitudealtitude380 až 460 km
Velocityvelocity27 400 až 27 700 km/h

Žádná událost není potřeba: rychlost určuje perioda driveru, protokol dekóduje každou přijatou odpověď.

Skripty

script.py v režimu Periodic jen vypíše řádek do Script-Logs; slouží jako místo, kam doplníte vlastní zpracování hodnot.

Pracovní plocha

Graf průběhu všech čtyř veličin, gauge, čtyři signal controly a watch table.

Co uvidíte a co vyzkoušet

  • Po Startu se během jedné sekundy objeví první hodnoty: šířka kmitá jako sinus s periodou zhruba 92 minut (jeden oblet), délka se s každým obletem posouvá na západ, výška se drží kolem 420 km, rychlost kolem 27 600 km/h.
  • Odpojte internet: driver ohlásí neúspěšný požadavek, přejde do Faulted a každých 5 s se pokusí o nové připojení. Po obnovení připojení se bez zásahu vrátí do Running.
  • V nastavení driveru nastavte reconnectAttempts=2: po dvou neúspěšných pokusech se driver zastaví s důvodem ve stavu; tlačítko Start v jeho Properties ho po obnovení sítě znovu spustí.
  • Do nastavení driveru zapište neznámý klíč, například x=1: v logu se objeví varování s výčtem známých klíčů.

Související kapitoly