wer brauchts? (F/E-CNT lesen) Kategorie: 2W-Bus (von Heiko - 31.10.2003 16:04) | |
| |
einfügen z.B. in twbs.c2 //------------------------------------------------------------------- function stempFE (byte adresse) returns int //------------------------------------------------------------------- /******************************************************************** Send Temp Data (Command 5) gültig nur für Sensor F/E-CNT (Sensor Gruppe 2) Antwort ist int Frequenz ********************************************************************/ { int i; byte j; string s; // Zusammenstellen des Stringes für Kommando 5 "SEND TEMP DATA" str.clear(s); str.putchar(s,0x05); // 8 ID 0 Kommando 5 str.putchar(s,adresse);// 7 Send 1 Sensoradresse str.putchar(s,0x20); // 6 Empf 2 frei wählbare Modemadresse = 0x20 str.putchar(s,0x00); // 5 FCS1 3 nicht relevant -> definiert auf 0 gesetzt str.putchar(s,0x00); // 4 D2 4 Format 0 (Frequenz in HZ gewünscht) str.putchar(s,0x00); // 3 D1 5 nicht relevant -> definiert auf 0 gesetzt str.putchar(s,0x00); // 2 D0 6 nicht relevant -> definiert auf 0 gesetzt str.putchar(s,0x00); // 1 FCS2 7 nicht relevant -> definiert auf 0 gesetzt twb.io(s); // Ausgabe des Strings s // Abfrage ob die Ausgabe ohne Fehler beendet und die Antwort empfangen wurde if (! twb.rxd()) return -1; // Timeout -1 i = mem.getint(s,0); // Antwortstring testen j = i / 256; // Kommando (oberes Byte) if j != 0x05 return -2; // fehlerhafter Antwortstring -2 j = i % 256; // Modem adressse (unteres Byte) if j != 0x20 return -3; // falsche Modem Adresse -3 i = mem.getint(s,2); j = i / 256; // Sensor Adresse if j != adresse return -4; // falsche Sensor Adresse -4 j = i % 256; // FCS1 (0) if j != 0x00 return -5; // falsche FCS1 -5 i = mem.getint(s,5); // Bytes 5 und 6 geben Frequenz an return i; } //***************************************************************************** falls jemand nen Fehler entdeckt bitte Bescheid sagen Mfg Heiko | |
Antwort schreiben Antworten: |