qrailway 0.9
Öffentliche Methoden | Private Attribute

cSeriell Klassenreferenz

Serielle Kommunikation. Mehr ...

#include <cSeriell.h>

Aufstellung aller Elemente

Öffentliche Methoden

 cSeriell (QObject *nachrichtenzieltmp)
 Initialisiert die serielle Kommunikation und bereitet die Kommandoschleife vor. nachrichtenzieltmp gibt einen Zeiger auf das QObject an, welches Rueckmeldungen erhalten soll.
 ~cSeriell (void)
 Beendet die serielle Kommunikation, beendet notfalls die noch laufende Kommandoschleife.
void cDebug (int prioritaet, const QString &meldung)
 Gibt die Meldung "meldung" in eine der Klasse zugeordnete Logdatei aus. Dabei werden Meldungen mit der Prioritaet prioritaet 0 auch auf dem Bildschirm als Warnung ausgegeben. Meldungen mit Prioritaet >=2 (bzw. >=1) werden in aller Regel nicht in die Log-Datei ausgegeben, lassen sich aber durch Modifikation der Funktion cDebug zur Ausgabe hinzufuegen. Die zugeordnete Log-Datei ist log.cSeriell.
void run (void)
 Die Kommandoschleife (einen eigenen Thread)
void initialisiereSeriellenPort (void)
 Initialisiert den seriellen Port.
int sendeBefehl (char *befehl, int prioritaet=1)
 Traegt den Befehl, auf den der Zeiger befehl zeigt, in die Kommandoschleife ein. Prioritaet kann entweder 1 oder 3 sein. Befehle mit Prioritaet 3 werden trotz gesetztem notaus-Flag gesendet (dient insbesondere dazu, trotz gesetztem notaus-Flag den Notaus-Befehl an die Reglerkarten senden zu koennen.
int sendeDauerBefehl (char *befehl, int wieoft=1)
 Traegt einen permanenten Befehl, auf den der Zeiger befehl zeigt, in die Kommandoschleife ein. (status 2)
void getAntwort (int karte, int nummer, char *antwort)
 Liefert die Antwort des Befehls mit der ID nummer zurueck und loescht Ihn aus der Kommandoschleife.
void setNotaus (bool notausantmp)
 Setzt das notaus flag, welches die Steuerung der Karten betrifft: Falls notausan=TRUE, so werden keine fahrreglerbefehle abgeschickt bis notausan=FALSE gesetzt wird.

Private Attribute

bool notausan
 Falls notausan=TRUE, so werden keine fahrreglerbefehle abgeschickt bis notausan=FALSE gesetzt wird.
FILE * serialport
 Zeiger fuer die Initialisierung des seriellen Ports.
struct termios serialconfig
 Zeiger fuer die Initialisierung des seriellen Ports.
cAuftragdef auftrag [128][absmaxauftraege]
 Die Kommandoschleife. Kartenspezifisch. Jede Karte hat Ihre eigene Auftragsschleife.
int momentanerauftrag [128]
 Aktuelle Kommandonummer je Karte.
int genutztebefehle [128]
 Anzahl der genutzten Befehle je Karte.
int momentanekarte
 aktuelle Karte im Durchlauf
bool raushier
 Ist raushier=TRUE, so wird die Kommandoschleife unterbrochen (fuer Destruktor).
QObject * nachrichtenziel
 Speichert das Ziel fuer ausgehende Empfangsmeldungen.
unsigned long int anzahlfehlera [128]
 Nachrichten und Fehler zaehlen:
unsigned long int anzahlfehlerb [128]
unsigned long int anzahlfehlerc [128]
unsigned long int anzahlnachrichten [128]
int befehlsoffset
 Legt fest, wieviel spaeter Befehle in die Schleife geschrieben werden.
int maxauftraege
 Gibt an, wieviele Befehle die Befehlsschleife umfassen soll.
int maxseriellefehler
 Legt fest, wie oft ein Befehl versucht wird zu schreiben.
int baudrate
 Legt baudrate fest.
int timetowrite
 Legt Zeit fuer Schreiben/Lesen fest.
int timetoread
int timetowait
int hardwareaktiv
 Legt fest, ob die Hardwareschnittstelle aktiv ist (1) oder nicht (0)
int statusmeldung1 [128]
 Speichert, welche Karten beim letzten Durchlauf ueberprueft wurden.
int statusmeldung2 [128]
 Speichert, welche Karten beim letzten Durchlauf ueberprueft wurden.

Ausführliche Beschreibung

Serielle Kommunikation.

Ist zustaendig fuer saemtliche Kommunikation mit der Hardware (wird von cHardware verwendet). Je Karte existiert eine Schleife, in der die Befehle für diese Karte stehen. Nacheinander werden die jeweiligen Schleifen durchgegangen, damit nicht an eine Karte zu viele Befehle direkt hintereinander erfolgen, so dass die Karte diese Befehle nicht mehr verarbeiten könnte.

Definiert in Zeile 64 der Datei cSeriell.h.


Beschreibung der Konstruktoren und Destruktoren

cSeriell::cSeriell ( QObject *  nachrichtenzieltmp)

Initialisiert die serielle Kommunikation und bereitet die Kommandoschleife vor. nachrichtenzieltmp gibt einen Zeiger auf das QObject an, welches Rueckmeldungen erhalten soll.

cSeriell::~cSeriell ( void  )

Beendet die serielle Kommunikation, beendet notfalls die noch laufende Kommandoschleife.


Dokumentation der Elementfunktionen

void cSeriell::cDebug ( int  prioritaet,
const QString &  meldung 
)

Gibt die Meldung "meldung" in eine der Klasse zugeordnete Logdatei aus. Dabei werden Meldungen mit der Prioritaet prioritaet 0 auch auf dem Bildschirm als Warnung ausgegeben. Meldungen mit Prioritaet >=2 (bzw. >=1) werden in aller Regel nicht in die Log-Datei ausgegeben, lassen sich aber durch Modifikation der Funktion cDebug zur Ausgabe hinzufuegen. Die zugeordnete Log-Datei ist log.cSeriell.

void cSeriell::getAntwort ( int  karte,
int  nummer,
char *  antwort 
)

Liefert die Antwort des Befehls mit der ID nummer zurueck und loescht Ihn aus der Kommandoschleife.

void cSeriell::initialisiereSeriellenPort ( void  )

Initialisiert den seriellen Port.

void cSeriell::run ( void  )

Die Kommandoschleife (einen eigenen Thread)

int cSeriell::sendeBefehl ( char *  befehl,
int  prioritaet = 1 
)

Traegt den Befehl, auf den der Zeiger befehl zeigt, in die Kommandoschleife ein. Prioritaet kann entweder 1 oder 3 sein. Befehle mit Prioritaet 3 werden trotz gesetztem notaus-Flag gesendet (dient insbesondere dazu, trotz gesetztem notaus-Flag den Notaus-Befehl an die Reglerkarten senden zu koennen.

int cSeriell::sendeDauerBefehl ( char *  befehl,
int  wieoft = 1 
)

Traegt einen permanenten Befehl, auf den der Zeiger befehl zeigt, in die Kommandoschleife ein. (status 2)

void cSeriell::setNotaus ( bool  notausantmp) [inline]

Setzt das notaus flag, welches die Steuerung der Karten betrifft: Falls notausan=TRUE, so werden keine fahrreglerbefehle abgeschickt bis notausan=FALSE gesetzt wird.

Definiert in Zeile 85 der Datei cSeriell.h.

Benutzt notausan.

{ notausan=notausantmp; };

Dokumentation der Datenelemente

unsigned long int cSeriell::anzahlfehlera[128] [private]

Nachrichten und Fehler zaehlen:

Definiert in Zeile 106 der Datei cSeriell.h.

unsigned long int cSeriell::anzahlfehlerb[128] [private]

Definiert in Zeile 106 der Datei cSeriell.h.

unsigned long int cSeriell::anzahlfehlerc[128] [private]

Definiert in Zeile 106 der Datei cSeriell.h.

unsigned long int cSeriell::anzahlnachrichten[128] [private]

Definiert in Zeile 106 der Datei cSeriell.h.

Die Kommandoschleife. Kartenspezifisch. Jede Karte hat Ihre eigene Auftragsschleife.

Definiert in Zeile 94 der Datei cSeriell.h.

int cSeriell::baudrate [private]

Legt baudrate fest.

Definiert in Zeile 114 der Datei cSeriell.h.

int cSeriell::befehlsoffset [private]

Legt fest, wieviel spaeter Befehle in die Schleife geschrieben werden.

Definiert in Zeile 108 der Datei cSeriell.h.

int cSeriell::genutztebefehle[128] [private]

Anzahl der genutzten Befehle je Karte.

Definiert in Zeile 98 der Datei cSeriell.h.

int cSeriell::hardwareaktiv [private]

Legt fest, ob die Hardwareschnittstelle aktiv ist (1) oder nicht (0)

Definiert in Zeile 118 der Datei cSeriell.h.

int cSeriell::maxauftraege [private]

Gibt an, wieviele Befehle die Befehlsschleife umfassen soll.

Definiert in Zeile 110 der Datei cSeriell.h.

Legt fest, wie oft ein Befehl versucht wird zu schreiben.

Definiert in Zeile 112 der Datei cSeriell.h.

int cSeriell::momentanekarte [private]

aktuelle Karte im Durchlauf

Definiert in Zeile 100 der Datei cSeriell.h.

int cSeriell::momentanerauftrag[128] [private]

Aktuelle Kommandonummer je Karte.

Definiert in Zeile 96 der Datei cSeriell.h.

QObject* cSeriell::nachrichtenziel [private]

Speichert das Ziel fuer ausgehende Empfangsmeldungen.

Definiert in Zeile 104 der Datei cSeriell.h.

bool cSeriell::notausan [private]

Falls notausan=TRUE, so werden keine fahrreglerbefehle abgeschickt bis notausan=FALSE gesetzt wird.

Definiert in Zeile 85 der Datei cSeriell.h.

Wird benutzt von setNotaus().

bool cSeriell::raushier [private]

Ist raushier=TRUE, so wird die Kommandoschleife unterbrochen (fuer Destruktor).

Definiert in Zeile 102 der Datei cSeriell.h.

struct termios cSeriell::serialconfig [private]

Zeiger fuer die Initialisierung des seriellen Ports.

Definiert in Zeile 92 der Datei cSeriell.h.

FILE* cSeriell::serialport [private]

Zeiger fuer die Initialisierung des seriellen Ports.

Definiert in Zeile 90 der Datei cSeriell.h.

int cSeriell::statusmeldung1[128] [private]

Speichert, welche Karten beim letzten Durchlauf ueberprueft wurden.

Definiert in Zeile 120 der Datei cSeriell.h.

int cSeriell::statusmeldung2[128] [private]

Speichert, welche Karten beim letzten Durchlauf ueberprueft wurden.

Definiert in Zeile 122 der Datei cSeriell.h.

int cSeriell::timetoread [private]

Definiert in Zeile 116 der Datei cSeriell.h.

int cSeriell::timetowait [private]

Definiert in Zeile 116 der Datei cSeriell.h.

int cSeriell::timetowrite [private]

Legt Zeit fuer Schreiben/Lesen fest.

Definiert in Zeile 116 der Datei cSeriell.h.


Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Datei: