Enhanced protocoll RS232

Status
Nicht offen für weitere Antworten.

eisenhauer

Mitglied
Hallo erstmal,

wende mich an euch in der Hoffnung, dass ihr mir weiterhelfen könnt.

Ich stehe vor der Aufgabe ein Spektrometer über RS232 einzulesen, verwende dazu JAVA. Mit dem Datenaustausch über die serielle Schnittstelle hab ich ein paar Erfahrungen gemacht, sogar ein paar positive ;)

Zu meinem Problem: Das Gerät verwendet ein etwas trickreiches Protokoll. Ich habe zwar eine Verbindung zu dem Messgerät und kann auch Daten einlesen (nämlich die, die es nach dem Einschalten automatisch sendet) aber ich schaffe es einfach nicht gezielte Anfragen an das Spektrometer zu stellen. Diese werden scheinbar ignoriert denn ich bekomme keine Antwort.

Das Protokoll sieht so aus: DLE STX seq node lsb msb data DLE ETX
DLE STX...0x10,0x02 Startsequenz
seq...zb 0x00 Anfragenummer
node...0x00 Datenrichtung Empfänger oder Senden
lsb...Last significant Bit der Länge des Datenstroms
msb...most significant Bit der Länge des Datenstroms
data...Datenbits zb 0x06 für getDeviceConfiguration
DLE ETX...0x10,0x03 Schlusssequenz

Um also von dem Gerät die DeviceConfiguration zu bekommen muss ich "0x10,0x02,0x00,0x00,0x01,0x00,0x06,0x10,0x03" rausschicken. Daher:
Java:
byte[] sendBuffer1 = {0x10,0x02,0x00,0x00,0x01,0x00,0x06,0x10,0x03};   
outputStream.write(sendBuffer1);

Leider bekomme ich dann aber keine Anwort vom Gerät.

Hoffe Ihr könnt mit diesen Informationen was anfangen, ansonsten bitte einfach fragen. Freu mich auf eure Antworten - danke schon jetzt!

martin
 

TobiTobsen

Aktives Mitglied
Hi,

- 0x00 beim node ist dann das das Messgerät auf empfang getrimmt ist?

- mit dem LSB und MSB, das ist mir nicht ganz klar? Meinste das stimmt so?

- Baudrate, Parity, Stoppbit und all so sachen sind richtig gesetzt? Vemutlich schon denn wenn du schon was empfängst... Aber trotzdem
- kann man das Gerät noch auf Remote oder so was stellen? Die Schnittstelle zum Empfangen definieren oder so?

Welches Gerät nutzt du denn? Gibt es da keine Beispiele für die zu sendenden Daten?


Grüße,
Tobi
 

eisenhauer

Mitglied
Hi,

Also mit 0x00 deklariere ich mich als Empfänger, zumindest wenn ich das richtig verstanden habe. Habe es aber auch schon anders probiert - ohne Erfolg.

Mit LSB und MSB gebe ich die Länge meines Datenstroms an der, dann auf diese zwei Register aufgeteilt wird. Nachdem ich "nur" den Gerätestatus erfragen möchte (0x06) und das mit dem einen Befehl getan sein sollte (keine zusätzlichen Paramter), müsste es eigentlich so passen.

Die Übertragunsparamter passen, das trau ich mich mal so zu sagen.

kann man das Gerät noch auf Remote oder so was stellen? Die Schnittstelle zum Empfangen definieren oder so?

-> Müsste eigentlich mit dem 0x00 (siehe oben) getan sein.

Das Gerät ist ein Spektrometer von Avantes. Beschreibungen gibts im Netz nicht, hab allerdings ein gescanntes Datenblatt geschickt bekommen. Kann das auch bei Bedarf weiterschicken, dazu vl per pm die Adresse schicken.

Danke für deine Antwort!
 

eisenhauer

Mitglied
Hallo


Gibt es denn vl sonst noch jemanden der sich da auskennt??:bahnhof:

Ich stecke bei diesem Problem wirklich schon einige Zeit und komm einfach nicht weiter. :(
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben