RS232 Bibliothek
Autor: David Weigt, Louis Holtaple
Einleitung
Im Rahmen des SDE Praktikums ist es die Aufgabe Daten von einem PC auf die DS1104 Karte zu versenden. Dies dient der schnelleren Verarbeitung der Kamera und LiDaR Daten, da der Rechner über mehr Ressourcen verfügt. Dazu werden zu Beginn die Daten der Sensoren an den Rechner geschickt, verarbeitet und auf die DSpace Karte versendet. Die Kommunikation zwischen PC und DSPace Karte erfolgt dabei über eine RS232 Schnittstelle, welche im verlinkten Artikel genauer beschrieben ist. Damit nun diese Kommunikation über den PC erfolgen kann, wird im C++ Code eine fertig entwickelte Bibliothek eingebunden. Die RS232.c ermöglicht es, Serielle Schnittstellen am Rechner als Übertragungsmedium zu nutzen. Die hierfür vorgesehenen Betriebssysteme beschränken sich dabei auf Windows und Linux. Damit man eine besseres Verständnis für die Bibliothek gewinnen kann, soll im Folgenden die RS232 Bibliothek genauer beschreiben werden.
Allgemeiner Überblick
Die Funktionen der Bibliothek sind in der RS232.h zu finden. Um Änderungen in der Bibliothek einzusehen hat der Entwickler Teunis van Beelen eine eigene Seite mit den Versionen angelegt Link.
Im Folgenden sind die angebotenen Funktionen einmal aufgelistet.
//1
int RS232_OpenComport(int, int, const char *, int);
int RS232_PollComport(int, unsigned char *, int);
void RS232_CloseComport(int);
- //1
Die ersten Funktionen Open- , Poll- und CloseComport dienen Kontrolle des COM Ports. Dieser muss für das Versenden oder Empfangen entsprechend angesteuert werden. Zudem bedarf es der Schließung des Ports nach dem Verwenden, da sonst keine anderen Programme mehr darauf zugreifen können.
//2
int RS232_SendByte(int, unsigned char);
int RS232_SendBuf(int, unsigned char *, int);
void RS232_cputs(int, const char *);
void RS232_CloseComport(int);
- //2
- Die darauf folgenden Funktionen geben ihren Nutzen schon preis. Diese werden verwendet um Daten über die Serielle Schnittstelle zu versenden.
//3
int RS232_IsDCDEnabled(int);
int RS232_IsRINGEnabled(int);
int RS232_IsCTSEnabled(int);
int RS232_IsDSREnabled(int);
- //3
- Wie in RS232 üblich, ist es möglich, bestimmte Hardware Flags abzufragen oder zu setzen. Dies ermöglicht die Empfangs- oder Sendeseite über Zustände oder Ereignisse zu informieren. Aus diesem Grund kann man mit den Funktionen in Abschnitt 3, diese Zustände abfragen.
//4
void RS232_enableDTR(int);
void RS232_disableDTR(int);
void RS232_enableRTS(int);
void RS232_disableRTS(int);
- //4
Wie im vorherigen Abschnitt erklärt, kann die Empfangseite Flags setzen. Dies wird über die Funktionen RS232_enable/disable realisiert.
//5
void RS232_flushRX(int);
void RS232_flushTX(int);
void RS232_flushRXTX(int);
- //5
//6
int RS232_GetPortnr(const char *);
Funktionsbeschreibung
Einen Allgemeinen Überblick über die Funktionen bietet der vorherige Abschnitt. In diesem Abschnitt werden nun die Funktionen genauer erklärt.