Simulovaný teploměr

Projekt Qenex_SimulTempMeasure.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 TempSensor: driver Temperature Sensor (example) a protokol Temperature Sensor Protocol (example). Zařízení je simulované uvnitř driveru, takže projekt běží bez hardwaru.

Co ukázka předvádí

  • Vlastní driver se zápisovou cestou: driver posílá protokolu textové řádky chN=hodnota a přijímá od něj příkazy k přestavení kanálu.
  • Tři datové typy na stejném signálu: double ve °C, float přepočítaný lineární konverzí na °F a int zaokrouhlený protokolem.
  • Zápis operátora ze signal controlů: proměnné Temp1Set a Temp2Set posílají novou základní hodnotu kanálů 1 a 2 zpět do zařízení.
  • Logování do souboru přes driver File data logger a jeho přehrání.

Co potřebujete

Jen QInsight. Pluginy jsou součástí instalace (složky Drivers a Protocols vedle QInsight.exe).

Projekt

Drivery a protokoly

Driver Temperature Sensor (example)Význam
periodMs=200perioda, ve které simulátor vysílá všechny kanály
channels=3počet simulovaných kanálů (1 až 16)

Protokol nemá nastavení. Neznámý klíč v nastavení driveru i protokolu vyvolá varování v logu, stejně jako u dodávaných pluginů.

Projekt má navíc driver File data logger (file=DataLogs;append=true) a File data replay (file=DataLogs\values.qilog;mode=realtime) pro záznam a přehrání měření.

Proměnné

ProměnnáTypComm paramsPrezentace
Temp1doubledirection="read";channel="ch1"°C
Temp2floatdirection="read";channel="ch2"°F, konverze eng = raw × 1,8 + 32
Temp3intdirection="read";channel="ch3"°C, protokol hodnotu zaokrouhlí
Temp1Setdoubledirection="write";channel="ch1"°C, zápis přestaví kanál 1
Temp2Setdoubledirection="write";channel="ch2"°C, zápis přestaví kanál 2

Pracovní plocha

Graf tří kanálů, gauge a pět signal controlů; Temp1Set a Temp2Set jsou v zápisovém režimu.

Co uvidíte a co vyzkoušet

  • Po Startu tři kanály pomalu kolísají kolem svých základních hodnot, Temp2 ve stupních Fahrenheita.
  • Do Temp1Set zapište například 40: kanál 1 přejde na novou základní hodnotu a dále kolem ní kolísá. Totéž s Temp2Set pro kanál 2, v grafu ve °F.
  • Změňte channels=1 a Temp3 přestane přijímat data; periodMs=1000 zpomalí všechny kanály.
  • Zapněte logování u proměnných a po Stopu záznam přehrajte driverem File data replay.

Související kapitoly