Home » Presse » Fachartikel » SOME/IP Simulation Teil 2 Client 

SOME/IP Simulation Teil 2 Client

Dieser Teil des Artikels beschäftigt sich mit der Konfiguration des Clients. Im ersten Teil wird der Server konfiguriert.

Client initialisieren

Im ersten Schritt werden die Parameter des Zustandsautomaten für die Service-Discovery Nachrichten definiert. Für das Starten des Clients gibt es die Werte InitialDelayMin, InitialDelayMax, RepetitionBaseDelay und RepetitionMax.  Diese Werte definieren wie das zeitliche Verhalten und wie die Wiederholrate der ersten Service-Discovery Nachrichten sind.

Zusätzlich wird noch ein sogenannter Applicationendpoint erstellt. Dieser Applicationendpoint wird definiert über die Parameter IP-Adresse, Port und Protokoll. Er gibt an mit welchen TCP- oder UDP-Einstellungen auf eingehende SOME/IP Nachrichten reagiert wird. Diese Einstellungen werden dann auch für ausgehende SOME/IP Nachrichten verwendet.

Für die allgemeine Übertragung von Service-Discovery Nachrichten werden UDP Multicast-Nachrichten verwendet. In diesem Fall hat der Client noch kein Wissen über einen Server. Es werden nur Nachrichten verbreitet, die Informationen über Services enthalten, die dieser Client sucht. Als Minimum an Konfigurationsparameter benötigt man die Multicast-Adresse, die IP-Adresse und den Port. Als Protokoll ist immer standardmäßig UDP definiert.

Client Init

Eventgroups definieren

Wenn ein Client einen Service abonnieren will, muss er mit bestimmten Informationen auf eine Service-Discovery Nachricht reagieren. Die Einstellungen dafür werden über die Eventgroup Konfigurationen vorgenommen. Die wichtigsten Parameter sind Service-ID, Eventgroup-ID, TTL, Instance-ID und Major-Version.

Client Eventgroup

Callback für Funktionsaufrufe

Über diese Callbacks wird auf eingehende SOME/IP Nachrichten reagiert. Sendet ein Server eine SOME/IP Nachricht an einen Client, wird dieser Aufruf an den jeweiligen Callback weiter geleitet. Der Client kann nun darauf reagieren und eine Antwort über eine SOME/IP Nachricht an den Server zurückschicken.

Client Callback

Der Header einer SOME/IP Nachricht vom Client zum Server kann schon vorkonfiguriert werden. Neben den Service-ID und Method-ID gibt es dafür noch die Parameter Typ, Protokoll-Version und Interface-Version. An diesen SOME/IP Header werden vor dem Versenden noch die jeweiligen Daten angehängt.

Client Init Vars

In diesem Beispiel wird in regelmäßigen Abständen eine SOME/IP Nachricht an den Server gesendet. Als Nachricht dient ein ALive-Zähler der bis 20 hochgezählt wird. Über den Befehl getSomeIpPayload wird aus den Header-Informationen und den zu versendenden Dateien ein Byte-Array erzeugt. Mit dem Befehl rbsSendPayloadClient wird dieses Byte-Array an den Server versendet.

Client Request

Mit all diesen Informationen kann der Client gestartet werden. Nach dem Start wartet der Client auf eingehende Service-Discovery Nachrichten und beantwortet diese je nach Konfiguration. Besteht eine Verbindung zu einem Server, werden SOME/IP Nachrichten in regelmäßigen Intervallen versendet.

Client Start

In Whireshark sieht der Ethernet-Datenverkehr wie folgt aus. Man sieht die Service-Discovery Nachrichten zwischen Client und Server auf dem UDP-Port 30490. SOME/IP Nachrichten werden auf den Ports 30492 und 30494 ausgetauscht. Im Bild markiert ist die SOME/IP Anfrage vom Client an den Server.

Wireshark Client

SOME/IP Simulation Teil 1 Server

Datenblatt der verwendeten SOME/IP Simulation