RP 1210
Kurze Einführung in RP1210
Die RP 1210 ist eine bewährte Programmierschnittstelle, die durch die „Recommended Engineering and Maintenance Practice“ des Technology & Maintenance Council (TMC) und der American Trucking Associations (ATA) initiiert wurde. Mit dieser Schnittstelle kann vor allem auf VCIs im Truck-Umfeld zugegriffen werden. Über die RP 1210 ist der Zugriff auf die Bussysteme J1708/J1587, CAN, J1939 und J1850 möglich. Hauptanwendungsfälle sind Programmierung, Diagnose und Analyse. Ähnlich wie bei der SAE J2534 kann das Diagnose-Interface unabhängig vom OEM eingesetzt werden – ein klarer Vorteil für die Werkstatt.
Ablauf
Das nachfolgende Diagramm zeigt einen vereinfachten Ablauf, wie RP1210 von einer Applikation genutzt wird:

RP1210_SendMessage transferiert einen Byte-Buffer zur RP 1210-Bibliothek. Die Applikation muss selbst sicherstellen, dass der Buffer-Inhalt im zu Protokoll passendem Format vorliegt. Für ISO15765 sieht das Format beispielsweise so aus:
1 Byte (Message Type) + 4 Bytes (CAN ID) + 1 Byte (Extended Address) + (0 – 4096) Message Bytes
RP1210_ReadMessage liefert einen Byte-Buffer zurück, dessen Format vom Protokoll abhängt. Für ISO15765 werden zu dem oben beschrieben Format am Anfang des Buffers noch folgende Informationen hinzugefügt:
4 Bytes (Time Stamp) + 0/1 (Echo) + 1 Byte (Indication Status)
Echo: wenn aktiviert, signalisiert, ob der Client die Nachricht ursprünglich verschickt hat. Wenn Echo-Modus deaktiviert ist, ist dieses Byte nicht vorhanden.
Indication Status: Nachricht bestätigt, Fehler aufgetreten, Erste Nachricht von einem Segment (First Frame of multi-frame message).
Die API bietet folgende Funktionen an:
| Funktion | Beschreibung |
|---|---|
| RP1210_ClientConnect | Herstellen einer logischen Verbindung zur RP 1210 DLL. |
| RP1210_ClientDisconnect | Beenden der logischen Verbindung zur RP 1210 DLL. |
| RP1210_SendMessage | Schickt eine Nachricht zur RP 1210 DLL. |
| RP1210_ReadMessage | Liest eine Nachricht von der RP 1210 DLL. |
| RP1210_SendCommand | Schickt ein Befehl zur RP 1210 DLL. |
| RP1210_GetErrorMsg | Übersetzt einen RP 1210 Fehlercode auf einen Text. |
| RP1210_GetLastErrorMsg | Übersetzt einen RP 1210 Fehlercode auf einen Text mit mehr Details. |
| RP1210_GetHardwareStatus | Gibt den Verbindungsstatus zurück. |
| RP1210_ReadVersion | Liest die Versionsinformation der RP 1210 API DLL über die API. |
| RP1210_ReadDetailedVersion | Liest die Versionsinformation der RP 1210 API DLL über die API (neue bevorzugte Version). |
| RP1210_Ioctl | Wird verwendet, um den Status der Fahrzeugkommunikation zu ändern. Dies war neu im RP1210B, und wird vom RP1210 zurzeit nur für die ISO9141- und KWP2000-Kommunikation verwendet. Diese Funktion ermöglicht die zukünftige Entwicklung des RP1210 im Hinblick auf weitere Protokolle für den Automobilbereich. |
Merkmale
- Mehrere Client-Applikationen können parallel auf denselben Fahrzeugbus zugreifen
- Es ist die Aufgabe der Client-Applikation die Nachrichten korrespondierenden Steuergeräten zuzuordnen
- Reine C-API mit 11 Funktionen
- Fehlerbehandlung durch Auswertung von Rückgabewerten (keine Exceptions)
- Hauptsächlich für Windows spezifiziert
Da es sich bei der RP 1210 um eine eher einfache Programmierschnittstelle handelt, ist ein Großteil der Logik durch die anwendende Applikation selbst zu gewährleisten.
Integration in einer Applikation
Zu jeder RP 1210 Installation gehört eine .INI und eine .DLL Datei. Die RP 1210 Spezifikation schreibt das Format für den Namen der Dateien und deren Pfad vor.
| Dateityp | Installationspfad | Dateiname |
|---|---|---|
| INI | GetSystemWindowsDirectory – WIN API | VENDRX32.ini |
| DLL | GetSystemDirectory() – WIN API | VENDRX32.dll |
VENDRX ist dabei der Herstellername der Schnittstelle.
