Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
admin Site Admin
Anmeldungsdatum: 20.10.2004 Beiträge: 355
|
Verfasst am: Di Aug 09, 2005 16:32 Titel: [R-10] Protokoll+Beispiel zum Auslesen von Sensorwerten 1.05 |
|
|
Hier eine kurze Übersicht über das verwendete UDP Protokoll zum Auslesen eines Sensorwertes aus dem EZcontrol R-10
Anwendungen wären z.B.
- Darstellung von Werten in Webseiten (über CGI Script)
- Weiterverarbeitung von Werten, z.B. durch MRTG, Speicherung in Datenbanken, Steuerungen/Regelungen etc.
Nutzungsbedingungen:
Zur freien Verwendung in kommerzieller und nicht-kommerzieller Software jedoch nur zur Kommunikation mit EZcontrol Geräten der Firma Rose+Herleth GbR. Nutzung in der Firmware der Hardware von Fremdherstellern bedarf der schriftlichen Genehmigung der Rose+Herleth GbR.
Beispielprogramm (Linux)
Download: sensorpoll.c
UDP Paket
Code: | #define SEND_PORT 7042
struct config_pakets {
uint16_t teletype;
uint16_t type; // Aktor, Sensor, Script
uint16_t n; // Speicherplatznr.
char descr[32];
uint16_t reserved1[7];
uint16_t system;
uint16_t hc;
uint16_t hc2;
uint16_t address;
int16_t value1;
int16_t value2;
int16_t value3; // valueN, welcher sensorwert... 1. 2. o. 3.
int16_t value4;
float fvalue1;
float fvalue2;
float fvalue3;
float fvalue4;
uint16_t astype; // Art des Sensors/Aktors
uint16_t status;
uint16_t reserved2[3];
char reserved3[256];
};
|
Zuletzt bearbeitet von admin am Fr Dez 29, 2006 17:44, insgesamt einmal bearbeitet |
|
Nach oben |
|
|
admin Site Admin
Anmeldungsdatum: 20.10.2004 Beiträge: 355
|
Verfasst am: Mi Dez 14, 2005 17:28 Titel: |
|
|
Wir wurden gefragt, wie man erkennen kann, wann der jeweilige Sensorwert empfangen wurden. D.h., ob es einen Timestamp gibt.
So funktioniert es:
Bei dem Wert "status" handelt es sich um einen Zähler, der das Alter des jeweiligen Sensorwertes angibt, d.h. wenn z.B. status==22, dann wurde der Meßwert genau vor 22 Sekunden empfangen.
Mit der aktuellen Zeit läßt sich so schnell ein Timestamp ausrechnen.
UDP Paket Code: | struct config_pakets {
...
uint16_t status;
...
};
|
|
|
Nach oben |
|
|
admin Site Admin
Anmeldungsdatum: 20.10.2004 Beiträge: 355
|
Verfasst am: Fr Feb 15, 2008 13:15 Titel: |
|
|
Kurzanleitung für Linux Benutzer ohne Programmiererfahrung
Erzeugt eine ausfürbare Datei sensorpoll im aktuellen Verzeichnis, durch den Aufruf des GCC Compilers:
gcc sensorpoll.c -o sensorpoll
Ausführen der Datei:
./sensorpoll 192.168.1.142 5
EZcontrol R-10 Adresse ist 192.168.142, die Nummer des auszulesenen Sensors ist 5.
Die Ausgabe des Sensorwertes erfolgt als Text. |
|
Nach oben |
|
|
|