Michael Ackermann schrieb:
> und hab da mal ne
> Frage zur Datenübertragung zu einem Aurel RTF-868 Tranceiver.
Nach ein wenig Recherche bin ich wohl zu dem Schluss gekommen, dass du
wohl RFT (nicht RTF) 868 meinst. Zumindest konnte ich unter dieser
Bezeichnung ein Datenblatt [1] organisieren, welches o.g. Passagen
enthält. In Zukunft solltest du Datenblätter lieber gleich verlinken,
weil wohl nur die wenigsten Lust haben das heraus zu suchen und wohl
kaum einer schon genau mit diesem Modul gearbeitet hat.
> Ich habe diesen an einen Uart (MAX232) angeschlossen und möchte mit
> diesem Daten übertragen.
Gibt es auch einen entsprechenden Empfänger?
> folgendes Protokol habe ich aus dem Datenblatt
Ja, soweit richtig.
> Wie muss ich das Paket senden damit das AUREL Modul was damit anfangen
> kann.
> z.B. der Einfachkeit halber mal ein Ping senden
> Aus dem Datenblatt:
> Command: PING, Value 0x0002 Rückgabewert: Byte5-6: Frimware Version,
> Byte7 aktuelles Profil
> Command: Send_Packet, Value 0x0000, Payload: UserData
Hier hast du einige Dinge weggelassen, die essentiell sind. Schaue dir
mal Seite 13 in o.g. Datenblatt an. Dort wird schematisch dargestellt,
wie das Ganze abläuft. Die Tabelle auf Seite 14 gibt dir dann eine
Übersicht über mögliche Kommandos. Hier hast du z.B. die eigentliche
Payload nicht genannt, sondern nur den "Rückgabewert". Dieser kommt aber
schon vom Empfangsmodul.
> Wie packe ich die Daten zusammen um mit dem Kerlchen zu kommunizieren.
Das hast du doch im Prinzip schon selbst heraus gefunden:
> |CmdLSB|CmdMSB|Address|Byte0|Byte1|Byte2|Byte3|Byte4|Byte5|Byte6|Byte7|
Wichtig ist nur noch zu wissen wofür "LSB" und "MSB" steht. Beim
Kommando handelt es sich nämlich um einen 16-Bit Wert, d.h. es gibt zwei
Bytes - ein höherwertiges (MSB) und ein niederwertiges (LSB).
Dein Ping Kommando würde also so aussehen (der Verständlichkeit halber
in Binär):
1 | 00000010 00000000 00101011 00000000
|
2 | CmdLSB CmdMSB Address NC
|
Die Adresse des Empfängers hier (0x2B) wird sich bei dir vermutlich
unterscheiden, insofern ist das anzupassen. Ich bin gerade zu unkreativ
heraus zu finden, wofür "NC" steht. Allerdings vermute ich, dass der
Inhalt an dieser Stelle keine Rolle spielt.
Nach Absetzen dieses Kommands erhältst du dann eine Antwort zurück,
wobei du die Bedeutung der Bits in der Antwort ja oben schon angedeutet
hast.
Was noch wichtig ist, ist die korrekte Einrichtung der seriellen
Schnittstelle (Baud Rate, Anzahl der Daten-, Parity und Stopp-Bits) -
ansonsten wird das Ganze nicht funktionieren.
> Programmieren kann ich noch in PHP.
Ist hierfür ziemlich ungeeignet. Es gibt wohl ein paar Bibliotheken, die
sich dem Thema widmen, allerdings ist das sicherlich nicht der gedachte
Einsatzzweck dieser Programmiersprache (und das sage ich als jemand der
auch ab und an gerne in PHP programmiert). Für erste Tests sollte ein
Terminal ausreichen, ansonsten ist C sicherlich nicht verkehrt, wobei
auch andere Sprachen entsprechende Möglichkeiten bieten - zum Teil sogar
plattformunabhängig.
Mit freundlichen Grüßen,
Karol Babioch
[1]: http://www.farnell.com/datasheets/1674415.pdf