SOME/IP Server Demo

There is an example implementation of SOME/IP server demo available in apps folder. SOME/IP server is in waiting condition for UDP socket connection .Once connected SOME/IP server is ready to send the response to the client.

The below diagram captures the high level flow of client and server of SOME/IP.

Service Discovery Process

SOME/IP Discovery process Sequence Diagram

Notification Process

SOME/IP Notification process Sequence Diagram

In this implementation, a model ECU is created to mimic various features that hold vehicle information like speed, RPM, door state, and gear state. Based on the SOME/IP protocol, if any event group is subscribed to by a client, the notification events will be sent while fields are updated in the corresponding event group, and data will be read and written on particular events(under subscribed eventgroup) with the below-mentioned event IDs.

Server Service Details Information

Supported Service Details

Service ID

Instance ID

TTL

Major Ver

Minor Ver

Port

IP Ver

Proto Type

0x1234

0x5678

15

1

0

30510

IPV4/IPV6

UDP

0x1234

0x5678

20

2

5

30511

IPV4/IPV6

UDP

0x1235

0x5679

30

1

5

30510

IPV4/IPV6

UDP

0x1234

0x5678

45

4

4

30510

IPV4/IPV6

TCP

0x1235

0x5678

15

1

2

30512

IPV4/IPV6

TCP

Server Eventgroup Details Information

Supported Eventgroup Details

Service ID

Instance ID

Eventgroup

Multicast Port

Multicast IPV4 Addr

Multicast IPV6 Addr

0x1234

0x5678

0x4425

35689

“224.0.10.5”

“FF05:0000:0000:0000:0000:0000:1235:1236”

0x1234

0x5678

0x4426

0

0

0

0x1234

0x5678

0x4425

35670

“224.25.36.15”

“FF05:0000:0000:0000:1237:0000:7777:5000”

0x1234

0x5678

0x4426

35689

“224.0.10.5”

“FF05:0000:0000:0000:1237:0000:8000:2000”

0x1235

0x5679

0x4425

0

0

0

0x1235

0x5678

0x4425

0

0

0

0x1235

0x5678

0x4425

0

0

0

Server Event Information

Supported Event Information

Service ID

Instance ID

Major Version

Eventgroup ID

Event ID

0x1234

0x5678

1

0x4425

0x8001

0x1234

0x5678

1

0x4425

0x8002

0x1234

0x5678

1

0x4425

0x8003

0x1234

0x5678

1

0x4426

0x8004

0x1234

0x5678

1

0x4426

0x8005

0x1234

0x5678

1

0x4426

0x8006

0x1234

0x5678

2

0x4425

0x8007

0x1234

0x5678

2

0x4425

0x8008

0x1234

0x5678

2

0x4426

0x8009

0x1235

0x5679

1

0x4425

0x800A

0x1235

0x5679

1

0x4425

0x800B

0x1234

0x5678

4

0x4425

0x800C

0x1235

0x5678

1

0x4425

0x800D

0x1235

0x5678

1

0x4425

0x800E

Server Event Data Information

Supported Event Data Information

Event ID

User Data Type

Description

0x8001

uint8

Wheel Slip Status

0x8002

uint16

Speed Data

0x8003

uint32

RPM Data

0x8004

int8

Engine State

0x8005

int16

Steering Data

0x8006

int32

Yaw State

0x8007

One Dimensional Array

Peak Vol Current

0x8008

One Dimensional Array

State of charge

0x8009

Multi Dimensional Array

Battery Heat Grid

0x800A

One Dimensional Array

ota state message

0x800B

One Dimensional Array

ota error message

0x800C

Structure (float …, float .., uint32_t .., uint32_t …)

Vehicle Pos Event data (latitude, longitude, speed, heading_direction)

0x800D

union (uint8_t, uint16_t, uint32_t)

Diag Payload Data 1 (status_flags, error_type, fault_code)

0x800E

union (uint8_t, uint16_t, uint32_t)

Diag Payload Data 2 (status_flags, error_type, fault_code)

Read data by Method ID services:

Read (Getter) data by method id

Event ID

Method ID

0x8001

11

0x8002

12

0x8003

13

0x8004

14

0x8005

15

0x8006

16

0x8007

17

0x8008

18

0x8009

19

0x800A

1A

0x800B

1B

0x800C

1C

0x800D

1D

0x800E

1E

Write data by Method ID services:

Write(Setter) data by method id

Event ID

Method ID

0x8001

01

0x8002

02

0x8003

03

0x8004

04

0x8005

05

0x8006

06

0x8007

07

0x8008

08

0x8009

09

0x800A

0A

0x800B

0B

0x800C

0C

0x800D

0D

0x800E

0E

SOME/IP Server Running Example

Refer to the Supported Platforms page to setup your environmental setup and follow further.

User Configuration for Server (IPV4)

Server Configuration IPV4

Socket configuration

Value

SOME/IP Protocol Version

0 - IPV4

SOME/IP server IP address

IP address of server running PC or machine

SOME/IP SD Port

30490

SOME/IP server Port number

30509

SOME/IP Service Discovery Multicast Addr(224.0.0.0 - 239.255.255.255)

224.0.0.0

SOME/IP server cyclic offer delay (ms)

5000

SOME/IP server initial delay (ms)

500

SOME/IP server repetition base delay (ms)

200

SOME/IP server repetitions maximum

5

SOME/IP server log level in hex without(0x)

1

SOME/IP serer run for cyclic event update

  1. for Send notification event by automatially with cyclic manner, (N) for Send notification event by manually

  • After project successfully built, someip_server_demo binary generated.

  • Open the terminal in the above folder and run the below command

Windows (IPV4)

Server Menu

User Configuration for Server (IPV6)

Server Configuration IPV6

Socket configuration

Value

SOME/IP Protocol Version

1 - IPV6

SOME/IP server IP address

IP address of server running PC or machine

SOME/IP SD Port

30490

SOME/IP server Port number

30509

SOME/IP Service Discovery Multicast Addr(FF00:0000:0000:0000:0000:0000:0000 - FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF)

FF05:0000:0000:0000:0000:0000:0011

SOME/IP server cyclic offer delay (ms)

5000

SOME/IP server initial delay (ms)

500

SOME/IP server repetition base delay (ms)

200

SOME/IP server repetitions maximum

5

SOME/IP server log level in hex without(0x)

1

SOME/IP serer run for cyclic event update

  1. for Send notification event by automatially with cyclic manner, (N) for Send notification event by manually

  • After project successfully built, someip_server_demo binary generated.

  • Open the terminal in the above folder and run the below command

Windows (IPV6)

Server Menu
  • The SOME/IP server initiates the process and waits for the client to connect. After the SOME/IP client starts the process, both the server and client connects and proceed with services.

  • Refer to the SOME/IP protocol page for more details SOME/IP Protocol.