#include <io.h>
Datenfelder | |
| void * | private |
| int(* | GetFd )(void *private) |
| Nä,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. | |
| 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ä,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:
| [in] | private | Zeiger auf private Daten des Treibers |
| [in] | fd | Socket bzw. Filedescriptor, der Daten zum Lesen liefern kann. |
| [in] | PendingData | Wird 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ß. |
| 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:
| [in] | private | Zeiger auf private Daten des Treibers |
| [in] | ReceiverSocket | Wenn 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] | CanMsg | Struktur mit der zu versendenden CAN Nachricht |
1.8.1.2