IO-Fkts
I/O Funktionsdefinitionen
 Alle Datenstrukturen Dateien Variablen Makrodefinitionen Seiten
Datenfelder
IoFktStruct Strukturreferenz

#include <io.h>

Datenfelder

void * private
int(* GetFd )(void *private)
 N&auml,chsten filedescriptor holen.
BOOL(* Open )(void *private)
 Öffnen des Treibers
void(* Close )(void *private)
 Schließen des Treibers.
BOOL(* Read )(void *private, int fd, BOOL PendingData, MrCs2CanDataType *CanMsg)
 Lesen von Daten.
BOOL(* Write )(void *private, int ReceiverSocket, MrCs2CanDataType *CanMsg)
 Schreiben von Daten.

Dokumentation der Datenelemente

void(* Close)(void *private)

Schließen des Treibers.

Die Close Funktion wird zum Ende aufgerufen und kann die Sockets wieder schließen.

int(* GetFd)(void *private)

N&auml,chsten filedescriptor holen.

Diese Funktion liefert der Reihe nach jeden Socket, den der Treiber benutzt. Nach dem letzten Socket liefet der nächste Aufruf den Wert IOFKT_INVALID_FD als Indikator, daß der letzte Socket geliefert wurde. Der danach nächste Aufruf fängt wieder mit dem ersten Socket an. Damit kann z.B. der allgemeine Teil alle Sockets für den Aufruf von select() ermitteln.

BOOL(* Open)(void *private)

Öffnen des Treibers

Die Open Funktion wird als erste Funktion aufgerufen, um den Treiber zu öffnen. Hier kann die Verbindung zu einem Server aufgebaut werden. Oder selbst einen Socket für einen Dienst geöffnet werden.

void* private

Dies ist der Zeiger auf private Daten, der von der Initfunktion des Treibers angelegt wurde.

BOOL(* Read)(void *private, int fd, BOOL PendingData, MrCs2CanDataType *CanMsg)

Lesen von Daten.

Diese Funktion wird aufgerufen, wenn auf einem Socket Daten gelesen werden können. Die Funktion hat folgende Parameter:

Parameter
[in]privateZeiger auf private Daten des Treibers
[in]fdSocket bzw. Filedescriptor, der Daten zum Lesen liefern kann.
[in]PendingDataWird auf TRUE gesetzt, wenn der vorherige Aufruf Daten zuückgeliefert hat und der weitere Aufruf noch möglicherweise nicht gelesen Daten ohne erneute aufruf von select() liefern soll. Siehe dazu die Benutzung im common Teil
[out]Struktur für eine CAN Nachricht, die Anhand der vorliegenden Daten passend gefüllt werden muß.
Rückgabe
TRUE, wenn die Struktur für eine CAN Nachricht gefüllt wurde, deren Inhalt also gültig ist.
BOOL(* Write)(void *private, int ReceiverSocket, MrCs2CanDataType *CanMsg)

Schreiben von Daten.

Diese Funktion wird aufgerufen, wenn aus dem System verschickt werden sollen. Die Funktion hat folgende Parameter:

Parameter
[in]privateZeiger auf private Daten des Treibers
[in]ReceiverSocketWenn die Message eine Antwort ist, kann dieser Parameter den Sender der Anforderung enthalten. Dann werden die Daten nur versendet, wenn dies der (oder einer der) eigene Socket ist. Ansonsten hat der Parameter den Wert MR_IPC_SOCKET_ALL. Damit ist es z.B. möglich, die Dateien nur über die Schnittstelle zu senden, von der sie angefordert wurden und damit den CAN Bus nicht zu belasten.
[in]CanMsgStruktur mit der zu versendenden CAN Nachricht
Rückgabe
TRUE, die Daten versendet wurden.

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