Reverse Engineering serielle Befehle

8

tl; dr;

Ich muss in der Lage sein, serielle Befehle zurückzuentwickeln, damit ich herausfinden kann, wie entweder die lesbaren Werte oder die binären Werte serialisiert werden rohe serielle Befehle.

IE:

%Vor%

Ich arbeite an einem Wrapper für ein Open-Source-Automatisierungsprojekt.

Es gibt eine Möglichkeit, raw -Befehle zu senden und theoretisch mehrere Befehle miteinander zu verknüpfen.
Ich habe ein paar serielle Befehle geschnüffelt, und so sehen sie aus.

%Vor%

Was ich tun muss, ist Reverse Engineering, so dass ich die seriellen Aufrufe programmgesteuert ausführen kann, oder besser noch, wie entweder die menschenlesbaren Werte oder die Binärdatei Werte werden in rohen seriellen Befehlen serialisiert.

Ja, ich könnte alle Befehle ausspionieren und jeden Wert separat speichern, aber ich würde gerne wissen, wie das gemacht wurde.

Hier ist meine aktuelle Beobachtung.

  1. Die Anrufe sind in zwei Teile aufgeteilt.
    • 04 wird initiiert und teilt dem Gerät mit, was es nach
    • suchen soll
    • ** teilt dem System mit, welches Gerät gesteuert wird [ HouseCode & amp; DeviceCode ]
    • hex 55 wird zurückgegeben, um Ihnen mitzuteilen, dass es bereit ist
    • 06 wird initiiert und teilt dem Gerät mit, was zu erwarten ist
    • ** teilt dem System den Hauscode und den Befehl mit [ HouseCode & amp; %Code%]
      • FunctionCode wird optional gesendet und ist ein Wert zwischen 0 & amp; 100, um auf eine Dimmstufe zu verweisen
    • hex ** wird erneut gesendet, um Ihnen mitzuteilen, dass es bereit ist
  2. Das zweite Paar verwendet das erste Zeichen als alphabetischen Code ( 55 = A, B, C usw.) und das zweite Zeichen ist die Adresse ( HouseCode = 1, 2, 3 usw.)
    • mit diesen Informationen ist meine persönliche Vermutung, dass ...
      • DeviceCode muss direkt mit 6
      • übereinstimmen
      • A muss direkt mit e übereinstimmen
  3. Das vierte Paar beginnt mit dem gleichen B wie das zweite Paar
  4. Das vierte Paar endet mit HouseCode
    • 1 = alles ein
    • 2 = ein
    • 3 = aus
    • 4 = dim
    • 5 = hell
    • 6 = alles aus
    • usw. ..
  5. Das fünfte Paar wird nur bei einem Hell / Dunkel-Befehl angezeigt und repräsentiert die Zahl zwischen 0 und 100

Schließlich beziehen sich in den Dokumenten die einzelnen Befehle auf binäre Daten. Es ist also wahrscheinlich nicht , FunctionCode in A1 zu konvertieren, sondern eher hex in binary .

%Vor%

Weiß jemand, wie ich das erreichen könnte?

    
Chase Florell 12.11.2012, 22:17
quelle

1 Antwort

1

Heyu ist eine fantastische Open-Source-Anwendung für die Arbeit mit X10-Geräten. Sie haben eine sehr umfassende X10-Protokollspezifikation basierend auf dem Originaldokument von X10 veröffentlicht.

Dies sollte Ihre Arbeit raten. Wesentlich ist, dass der Hauscode und der Einheitencode statische Karten sind und nicht berechnet werden können. Die Protokollspezifikation spezifiziert genau, wie der Bitstrom gebildet wird. ZB

%Vor%     
Alastair McCormack 14.11.2012, 14:21
quelle