Beide Seiten der vorigen Revision
Vorhergehende Überarbeitung
Nächste Überarbeitung
|
Vorhergehende Überarbeitung
|
wiki:ems:re [2014/04/18 17:50] karlmw reveng |
wiki:ems:re [2014/07/04 13:36] maniac103 |
====== Reverse Engineering ====== | ====== Reverse Engineering ====== |
==== Sniffen ==== | ==== Sniffen ==== |
Wie man EMS Telegramme identifiziert und z.B. in den "collectord" einbaut, hat Michael Moosbauer (moosy) detailliert [[http://www.mikrocontroller.net/topic/318364#3530428|im Thread]] beschrieben. In der Zwischenzeit (Mitte April 2014) sind einige Änderungen eingetreten, so dass moosys aktualisierter Text, auch der einfacheren Auffindbarkeit, hier noch einmal wieder gegeben wird. | Wie man EMS Telegramme identifiziert und z.B. in den "collectord" einbaut, hat Michael Moosbauer (moosy) detailliert [[http://www.mikrocontroller.net/topic/318364#3530428|im Thread]] beschrieben. In der Zwischenzeit (Mitte April 2014) sind einige Änderungen eingetreten, so dass moosys aktualisierter Text, auch der einfacheren Auffindbarkeit halber, hier noch einmal wiedergegeben wird. |
==== HowTo ==== | ==== HowTo ==== |
Der Einbau eines neuen Features ist eigentlich immer gleich: | Der Einbau eines neuen Features ist eigentlich immer gleich: |
| |
- Identifizierung der Parameter/Werte, die man ändern/einstellen kann. | * Identifizierung der Parameter/Werte, die man ändern/einstellen kann.\\ |
- Herausfinden, in welchen Telegrammen sie stecken. Das geht mit dem collectord recht leicht, allerdings muss hierzu der ems-collector mit Raw-Kommando-Support gebaut werden (Zeile 3 des Makefiles auskommentieren, d.h. Raute entfernen). Dann im collectord: | * Herausfinden, in welchen Telegrammen sie stecken. Das geht mit dem collectord recht leicht, allerdings muss hierzu der ems-collector mit Raw-Kommando-Support gebaut werden (Zeile 3 des Makefiles auskommentieren, d.h. Raute entfernen). Dann im collectord:\\ |
| |
a) 'raw read <device> <type> <offset> <len>' also: | a) 'raw read <device> <type> <offset> <len>' also: |
raw read DE TY 0 25 , wobei DE das DEVICE is (also 10=RC35, 08=UBA), | raw read DE TY 0 25 , wobei DE das DEVICE is (also 0x10=RC35, 0x08=UBA), |
und TY der Telegrammtyp, den man im Verdacht hat, dass er zuständig ist. | und TY der Telegrammtyp, den man im Verdacht hat, dass er zuständig ist. |
Ausgabe merken. | Ausgabe merken. |
b) Wert am RCxx[x] verstellen | b) Wert am RCxx[x] verstellen |
c) a) wiederholen. Wenn sich was geändert hat, ist es ein heißer Kandidat. | c) a) wiederholen. Wenn sich was geändert hat, ist es ein heißer Kandidat. |
d) a) - c) wiederholen um sicherzugehen | d) a) - c) wiederholen um sicherzugehen |
e) raw read DE TY OFF 1 , wobei OFF der ausgezählte Offset ist, | e) raw read DE TY OFF 1 , wobei OFF der ausgezählte Offset ist, |
so lange probieren, bis genau dieser eine Wert da steht | so lange probieren, bis genau dieser eine Wert da steht |
f) 'raw write <device> <type> <offset> <data0> ... <dataX>', also: | f) 'raw write <device> <type> <offset> <data0> ... <dataX>', also: |
raw write DE TY OFF <andererWert> und gucken, ob sich der Wert am RCxx[x] geändert hat. | raw write DE TY OFF <andererWert> und gucken, ob sich der Wert am RCxx[x] geändert hat. |
WENN NICHT: mit raw write DE TY OFF <Wert aus e)> alten Wert wiederherstellen. | WENN NICHT: mit raw write DE TY OFF <Wert aus e)> alten Wert wiederherstellen. |
- Für die Messwerte parallel die Werte am RC35 ablesen und per raw read gucken, ob man sie irgendwo findet (dabei beachten: raw read liefert hex, Temperaturen sind oft verdoppelt 30°=60 oder verzehnfacht 30°=300). | g) Für die Messwerte parallel die Werte am RCxx[x] ablesen und per raw read gucken, |
| ob man sie irgendwo findet (dabei beachten: raw read liefert hex, Temperaturen sind |
| oft verdoppelt 30°=60 oder verzehnfacht 30°=300). |
| |
- Ins EMS-Wiki eintragen (lassen) | * Ins EMS-Wiki eintragen (lassen)\\ |
- In den ems-collectord einbauen (lassen) | * In den ems-collectord einbauen (lassen)\\ |
- Ins Webinterface einbauen (lassen) | * Ins Webinterface einbauen (lassen)\\ |
| |