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.
> <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>
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.
> 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
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".
@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.
> ich würde mal annehmen, das kingkong_18 einfach nicht deutscher > Muttersprachler ist so wie sich das ließt das stimmt
> 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.
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.
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
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...
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
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.