SomeipListener

class mtf.network_port.someip_listener.SomeipListener
__init__(channel_name='ETH-SOMEIP', protocol=<mtf_eth_protocol_type.SOME_IP: 2251799813685248>, callback_fnc=None, lazy_mode=False)
check_filter_keys()
start(channel=None, keep_cache=False, callback_fnc=None, someip_filter: dict | None = None, lazy_mode=None, silent_mode: bool = False) bool
Parameters:

someip_filter (<keys:values>, optional) – list of attribute to filter on

Create Filter Examples
listener.start(
    someip_filter={'someip_header': {'service_identifier': 0x1234, 'method_identifier': 0x8000, 'message_type': 0x02 }}
)
# or
listener.start(
    someip_filter={'someip_header':{'service_identifier': 0x1234, 'method_identifier': 0x8000, 'message_type': 0x02 },
                   'ipv4_header': {'ip_address_source': '192.168.0.1'}}
)

Other SomeIP keys that can be filtered:

  • service_identifier

  • message_id

  • method_identifier

  • message_type

  • request_id

  • return_code

start_listening(channel=None, keep_cache=False, callback_fnc=None, someip_filter: dict | None = None, lazy_mode=None, silent_mode: bool = False) bool
Parameters:

someip_filter (<keys:values>, optional) – list of attribute to filter on

Create Filter Examples
listener.start(
    someip_filter={'someip_header': {'service_identifier': 0x1531, 'method_identifier': 0x8001, 'message_type': 0x02 }}
)
# or
listener.start(
    someip_filter={'someip_header':{'service_identifier': 0x1531, 'method_identifier': 0x8001, 'message_type': 0x02 },
                   'ipv4_header': {'ip_address_source': '192.168.0.1'}}
)

Other SomeIP keys that can be filtered:

  • service_identifier

  • message_id

  • method_identifier

  • message_type

  • request_id

  • return_code

get_someip_timestamp_queue()
filter_divider(filters: dict | None = None)
set_filters(someip_filter: dict | None = None)
build_and_get_messages(update_origin=True, force_build=False) list
build_messages_queue() list
adapt_queue_elements() Queue[BaseEvent]

ensure the object.timestamp, object.payload

static __new__(cls, *args, **kwargs)

Initialize a new instance of the ControllerBase.

The instance will be automatically added to the list of controllers.

callback_(data_frame: BusEvent)
clean_up()
classmethod controllers_cleanup()

Clean up all controller instances.

Calls the clean_up() method for each instance.

get_message_queue() list[dict[str, Any]]

Get messages queue :return: :rtype:

get_queue() list[dict[str, Any]]

Get the queue

get_timestamp_queue() list[int]
register_callback(callback_fnc: Callable[[IEthernetProtocol], None])
Parameters:

callback_fnc – callback function with parameter of type MessageEthernet

Setting a callback
# ...
from andisdk import MessageEthernet
# ...

def eth_listener_callback(msg: MessageEthernet):
    # do things

# ... creating listener 
# register our callback
listener.register_callback(eth_listener_callback)

Warning

The callback function should be lightweight without logs. Otherwise, it will reduce the performance dramatically. The object that is passed to callback functions is mutable. So the user must be careful. In case of silent mode, the callback functions will be invoked only when getting the queue.

reset() None

cleanup the queue

stop()
stop_listening() bool
unregister_callback(callback_fnc: Callable[[IEthernetProtocol], None])
Parameters:

callback_fnc – callback function with parameter of type MessageEthernet

Remove a callback
# ...
from andisdk import MessageEthernet
# ...

def eth_listener_callback(msg: MessageEthernet):
    # do things

# ... creating listener 
# ... do work
# unregister our callback
listener.unregister_callback(eth_listener_callback)