Forum: PC-Programmierung aufbau der Nachricht für Rs232


von Kaiser K. (kingkong_18)


Lesenswert?

tag ihr wissenden,

ich bin neu in C- Programmierung und muss ein Code zur Datenübertragung 
schreiben. Nach der tastatureingabe wird die ensprechende Kommendo zu 
Rs232 geschickt. Laut des datenblattes sollte besteht die Nachricht aus 
8 Data Bits, 1 Stop Bits, CR, LF, CRC, ohne parity und Flow control.

was mich gerade irritiert ist, wie ich diese Nachricht aufbauen soll.

zB. wenn data (also was ich schicken möchte) = 0x20;
<STX><lenght><data><CRC><CR><LF><><><ETX>

könnte mir einer bisschen erklären wie man das macht, und was man drauf 
achten muss.

ich habe schon einige Sachen in Internet gelesen und komme damit aber 
immer noch nicht klar.

PS: ich arbeite mit Eclipse auf Windows.

von Kaiser K. (kingkong_18)


Lesenswert?

> <STX><lenght><data><CRC><CR><LF><><><ETX>

also auf dem Datenblatt steht dass CR und LF am ende jede Kommando 
angehängt werden müssen. ich weiß nich welche von der beiden 
Schreibweise richtig ist

<STX><lenght><data><CRC><><><ETX><CR><LF>

von Theor (Gast)


Lesenswert?

Kaiser K. schrieb:
> tag ihr wissenden,
>
> ich bin neu in C- Programmierung und muss ein Code zur Datenübertragung
> schreiben. [...]

Das musst Du nicht. Es darf Dich niemand dazu zwingen. Mach einfach 
was Anderes.

von Kaiser K. (kingkong_18)


Lesenswert?

> Das musst Du nicht. Es darf Dich niemand dazu zwingen. Mach einfach
> was Anderes.

Auf eine hilfreiche Antwort würde ich mich herzlich freuen.

Mfg

von Theor (Gast)


Lesenswert?

Und ich würde mich freuen, falls Du die Netiquette mal lesen würdest. 
Darauf habe ich Dich schon vor rund 6 Wochen anlässlich Deiner ersten 
Frage hier hingewiesen.

In der Zwischenzeit lese ich von Dir nur Fragen, die mich auf den 
Gedanken bringen, dass Du tatsächlich und wortwörtlich "gezwungen" bist 
dies oder jenes zu tun - nicht aber, dass Du dazu in der Lage bist. 
Wobei in diesem Fall derjenige, der den Zwang auf Dich ausübt irgendwie 
auch einen Mangel an Urteilsvermögen hat. So etwas nennt man "tote 
Pferde prügeln".

von Duck Mc Scrooge (Gast)


Lesenswert?

@Theor
ich würde mal annehmen, das kingkong_18 einfach nicht deutscher 
Muttersprachler ist so wie sich das ließt

>Laut des datenblattes sollte besteht die Nachricht aus
>8 Data Bits, 1 Stop Bits, CR, LF, CRC, ohne parity und Flow control.
wo kommt das "Datenblatt" denn her?
Klingt für mich SEHR seltsam DENN : CRC, LF und CRC haben nichts mit der 
RS232 zu tun. Sie sind Teil eines Protokolls welche eventuell über die 
RS232 geht.

von Kaiser K. (kingkong_18)


Lesenswert?

> ich würde mal annehmen, das kingkong_18 einfach nicht deutscher
> Muttersprachler ist so wie sich das ließt

das stimmt

von Kaiser K. (kingkong_18)


Lesenswert?

> wo kommt das "Datenblatt" denn her?
> Klingt für mich SEHR seltsam DENN : CRC, LF und CRC haben nichts mit der
> RS232 zu tun. Sie sind Teil eines Protokolls welche eventuell über die
> RS232 geht.

also ich arbeite mit einem fertigen Messgerät.

von Hitzegeschädigter (Gast)


Lesenswert?

Theor schrieb:
> Kaiser K. schrieb:
>> tag ihr wissenden,
>>
>> ich bin neu in C- Programmierung und muss ein Code zur Datenübertragung
>> schreiben. [...]
>
> Das musst Du nicht. Es darf Dich niemand dazu zwingen. Mach einfach
> was Anderes.

Kaiser K. schrieb:

> Auf eine hilfreiche Antwort würde ich mich herzlich freuen.

Kriegst Du von dem nicht. Blende ihn einfach aus, das ist das Beste.

von Bernd K. (prof7bit)


Lesenswert?

Kaiser K. schrieb:
> ich weiß nich welche von der beiden
> Schreibweise richtig ist

Probiers doch einfach aus und sieh wie das Gerät reagiert. Vielleicht 
siehst Du auch schon an den Antworten des Gerätes wie eine Nachricht 
formatiert sein muss und dann machst Du es genau so.

: Bearbeitet durch User
von mmm (Gast)


Lesenswert?

Kaiser K. schrieb:
> also ich arbeite mit einem fertigen Messgerät.

Dann sag' uns doch, wie das heißt und wo man die Doku findet.


Kaiser K. schrieb:
> zB. wenn data (also was ich schicken möchte) = 0x20;
> <STX><lenght><data><CRC><CR><LF><><><ETX>

Mit dieser "Beschreibung" kann man recht wenig anfangen. Ich  würde 
vermuten, dass das Kommando um 0x20 zu schicken so in etwa aussehen 
müsste:
1
uint8_t buffer[] = {0x02, 0x01, 0x20, ???, 0x0D, 0x0A, ???, ???, 0x03};

STX und ETX müssten 0x02 und 0x03 sein.
CR und LF sind 0x0D und 0x0A.
Wie die CRC zu berechnen ist, steht in der Dokumentation des unbekannten 
Messgerätes.
Und was die zwei leeren "<>" zu bedeuten haben - keine Ahnung...

von georg (Gast)


Lesenswert?

Kaiser K. schrieb:
> Laut des datenblattes sollte besteht die Nachricht aus
> 8 Data Bits, 1 Stop Bits, CR, LF, CRC, ohne parity und Flow control.

Das steht so ganz sicher NICHT im Datenblatt. CR und LF sind 
ASCII-Zeichen, CRC ist vermutlich auch ein Zeichen oder auch zwei, ohne 
Unterlagen über das Gerät weiss man das nicht.

Data Bits, Stop Bits, Parity beschreiben dagegen, wie so ein Zeichen 
gesendet wird, wobei das wichtigste fehlt: die Baudrate.

Flow Control beschreibt, wie das Senden gesteuert wird, z.B. mit 
RTS/CTS.

STX und ETX sind ebenfalls ASCII-Zeichen wie CR und LF. Dabei erhebt 
sich die Frage, ob die Steuerzeichen als Daten vorkommen dürfen, 
normalerweise nicht.

Irgendwie hast du einfach Wörter aus verschiedenen Stellen des 
Datenblatts bunt zusammengemixt, das Ergebnis hat mit dem ursprünglichen 
Datenblatt keine Ähnlichkeit mehr und ist unverständlich.

Georg

von Jörn P. (jonnyp)


Lesenswert?

Kaiser K. schrieb:
> Laut des datenblattes sollte besteht die Nachricht aus
> 8 Data Bits, 1 Stop Bits, CR, LF, CRC, ohne parity und Flow control.

Das ist bullshit.
Ein Zeichen besteht aus Startbit, 8 Datenbits und 1 Stopbit (in diesem 
Fall).
CR und LF sind Steuerzeichen, die aber genau so gesendet werden wie 
Buchstaben. Die Gegenseite setzt diese Zeichen normalerweise in die 
entsprechenden Kommandos um (z.B. LF = line feed).
Die Baudrate wurde schon erwähnt, ebenso das Handshake entweder RTS/CTS
oder xon/xoff.
Über RS-232 gibt es tonnenweise Literatur.

von Legastenicker (Gast)


Lesenswert?

Duck Mc Scrooge schrieb:
> nicht deutscher Muttersprachler ist so wie sich das ließt

Da hast Du offenbar auch Not mit, es "ließt" ich nicht und an das 
Satzende gehört ein Punkt.

von Eddy C. (chrisi)


Lesenswert?

Mein Gott, hört doch auf, euch an Nebensächlichkeiten aufzuhängen. Wir 
sind hier doch keine Firma, in der es gilt eine Spezifikation zu 
erstellen. Grüße auch an die unsäglichen Zwangsgestörten, die es nur 
schaffen, einen Beitrag zu bewerten, ohne an der Diskussion 
teilzunehmen. Wie frustriert muss man sein?

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.