Skip to main content

SOME/IP Driver

jumpstarter-driver-someip provides SOME/IP (Scalable service-Oriented Middleware over IP) protocol operations for Jumpstarter. This driver wraps the opensomeip Python binding to enable remote RPC calls, service discovery, raw messaging, and event subscriptions with automotive ECUs over Ethernet.

Installation

pip3 install --extra-index-url https://pkg.jumpstarter.dev/simple/ jumpstarter-driver-someip

Configuration

Parameter Type Default Description
host str required Local IP address to bind
port int 30490 Local SOME/IP port
transport_mode str UDP Transport protocol: UDP or TCP
multicast_group str 239.127.0.1 SD multicast group address
multicast_port int 30490 SD multicast port
remote_host str | None None Remote ECU IP for static routing (bypasses SD)
remote_port int | None None Remote ECU port (defaults to port when remote_host is set)

UDP (default)

export:
  someip:
    type: jumpstarter_driver_someip.driver.SomeIp
    config:
      host: "192.168.1.100"
      port: 30490
      transport_mode: UDP
      multicast_group: "239.127.0.1"
      multicast_port: 30490

TCP

export:
  someip:
    type: jumpstarter_driver_someip.driver.SomeIp
    config:
      host: "192.168.1.100"
      port: 30490
      transport_mode: TCP

Static remote endpoint (no Service Discovery)

When the target ECU does not run SOME/IP-SD (e.g. Zephyr firmware with multicast TX disabled), set remote_host and optionally remote_port to send messages directly without Service Discovery:

export:
  someip:
    type: jumpstarter_driver_someip.driver.SomeIp
    config:
      host: "192.168.100.1"
      port: 30490
      transport_mode: UDP
      remote_host: "192.168.100.10"
      remote_port: 30490

Usage

RPC Call

from jumpstarter.common.utils import env

with env() as client:
    someip = client.someip

    response = someip.rpc_call(0x1234, 0x0001, b"\x01\x02\x03")
    print(f"Response: {bytes.fromhex(response.payload)}")
    print(f"Return code: {response.return_code}")

Service Discovery + RPC

from jumpstarter.common.utils import env

with env() as client:
    someip = client.someip

    # Discover available services
    services = someip.find_service(0x1234, timeout=3.0)
    for svc in services:
        print(f"Found: service={svc.service_id:#06x} instance={svc.instance_id:#06x}")

    # Call the first discovered service
    if services:
        resp = someip.rpc_call(0x1234, 0x0001, b"\x10\x20")
        print(f"RPC result: {resp.payload}")

Event Subscription

from jumpstarter.common.utils import env

with env() as client:
    someip = client.someip

    # Subscribe to event group 1
    someip.subscribe_eventgroup(1)

    # Wait for event notifications
    try:
        event = someip.receive_event(timeout=10.0)
        print(f"Event service={event.service_id:#06x} id={event.event_id:#06x}")
        print(f"Payload: {bytes.fromhex(event.payload)}")
    finally:
        someip.unsubscribe_eventgroup(1)

Raw Messaging

from jumpstarter.common.utils import env

with env() as client:
    someip = client.someip

    someip.send_message(0x1234, 0x0001, b"\xAA\xBB")
    msg = someip.receive_message(timeout=2.0)
    print(f"Received from service={msg.service_id:#06x}: {msg.payload}")

Connection Management

from jumpstarter.common.utils import env

with env() as client:
    someip = client.someip

    # Perform operations...
    someip.rpc_call(0x1234, 0x0001, b"\x01")

    # Reconnect after network disruption
    someip.reconnect()

    # Continue operations
    someip.rpc_call(0x1234, 0x0001, b"\x02")

    # Clean up
    someip.close_connection()

API Reference

.. autoclass:: jumpstarter_driver_someip.driver.SomeIp()

Metadata

Release files for jumpstarter-driver-someip 0.9.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jumpstarter-driver-someip 0.9.0
File Size Uploaded
jumpstarter_driver_someip-0.9.0.tar.gz 14.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jumpstarter-driver-someip 0.9.0
File Interpreter ABI Platform
jumpstarter_driver_someip-0.9.0-py3-none-any.whl Python 3 none any Details

Total release size: 31.7 kB

Release files / jumpstarter_driver_someip-0.9.0.tar.gz

Download URL jumpstarter_driver_someip-0.9.0.tar.gz
Size 14.3 kB
Tags Source
SHA-256 checksum
How to use checksums
61ea1015185e697e414f7e41911f79b958b5d1024052644c56955dce77110507
BLAKE2b-256 checksum
How to use checksums
e3f3cafedfee51984ab5e07419685714c031f9db4fbf6467f5f7e9c1ba6623ae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.22

Release files / jumpstarter_driver_someip-0.9.0-py3-none-any.whl

Download URL jumpstarter_driver_someip-0.9.0-py3-none-any.whl
Size 17.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
59b607178d4b1e8234fe785ee2517c9e65c2b4241d4b11ab44fa3e4beec734c1
BLAKE2b-256 checksum
How to use checksums
462c5b96b820ea8f503b69f5c7705d448b1a55a473758aaf5deb3ccbba37871a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.22

Release history Release notifications | RSS feed

This release

0.9.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page