ecal.core.core module

Contents

ecal.core.core module#

@package ecal Python wrapper for eCAL the enhanced communication abstraction layer.

You can use the eCAL API in a function style or OO manner.

ecal.core.core.client_add_response_callback(client_handle, callback)#

add response callback to client

Parameters:
  • client_handle – the client handle

  • callback – the response callback function (f(service_info, response))

ecal.core.core.client_call_method(client_handle, method_name, request, timeout=-1)#

call a method of the service

Parameters:
  • client_handle – the client handle

  • method_name (string) – the method name to call

  • request (bytes) – the request argument for the method

  • timeout (integer) – maximum time before operation returns (in milliseconds, -1 means infinite)

ecal.core.core.client_create(service_name)#

create client

Parameters:

service_name (string) – the unique service name

ecal.core.core.client_destroy(client_handle)#

destroy client

Parameters:

client_handle – the client handle

ecal.core.core.client_rem_response_callback(client_handle)#

remove response callback from client

Parameters:

client_handle – the client handle

ecal.core.core.client_set_hostname(client_handle, host_name)#

set host name of the service

Parameters:
  • client_handle – the client handle

  • host_name (string) – the host name the service is running on

ecal.core.core.dyn_json_sub_create(topic_name)#

create subscriber

Parameters:

topic_name (string) – the unique topic name

ecal.core.core.dyn_json_sub_destroy(topic_handle)#

destroy subscriber

Parameters:

topic_handle – the topic handle

ecal.core.core.dyn_json_sub_rem_callback(topic_handle, callback)#

remove callback function for incoming messages

Parameters:
  • topic_handle – the topic handle

  • callback – python callback function (f(topic_name, msg, time))

ecal.core.core.dyn_json_sub_set_callback(topic_handle, callback)#

set callback function for incoming messages

Parameters:
  • topic_handle – the topic handle

  • callback – python callback function (f(topic_name, msg, time))

ecal.core.core.enable_loopback(state)#

enable ecal message loopback

Parameters:

state (int) – switch on ecal message loop back (default 0)

ecal.core.core.finalize()#

finalize eCAL API

ecal.core.core.getdate()#

get ecal date string

ecal.core.core.getmicroseconds()#

get ecal microsecond timestamp

ecal.core.core.getversion()#

get ecal version string

ecal.core.core.getversion_components()#

get ecal version as major, minor, patch tuple

ecal.core.core.initialize(args, unit_name)#

initialize eCAL API

Parameters:
  • args – command line argument list (sys.argv)

  • unit_name (string) – instance unit name

ecal.core.core.is_initialized()#

get if ecal has been initialized

ecal.core.core.log_message(message)#

log message

Parameters:

message (string) – the message to log

ecal.core.core.log_setcoretime(time)#

log core time

Parameters:

time (int) – module core time in ms

ecal.core.core.log_setlevel(level)#

set log level

Parameters:

level (int) – log level (info = 1, warning = 2, error = 3, fatal = 4)

ecal.core.core.mon_finalize()#

finalize eCAL monitoring API

ecal.core.core.mon_initialize()#

initialize eCAL monitoring API

ecal.core.core.mon_logging()#

get list of ecal log messages

ecal.core.core.mon_monitoring()#

get all host, process and topic information as dictionary

ecal.core.core.mon_publogging(state_, name_)#

activate an eCAL internal publisher for logging info

Parameters:
  • state – publisher state on / off

  • name (string) – topic name for the publisher

ecal.core.core.mon_pubmonitoring(state_, name_)#

activate an eCAL internal publisher for monitoring info

Parameters:
  • state – publisher state on / off

  • name (string) – topic name for the publisher

ecal.core.core.mon_setexclfilter(filter_)#

Set topics filter blacklist regular expression

Parameters:

filter (string) – filter string as regular expression

ecal.core.core.mon_setfilterstate(state_)#

Switch eCAL monitoring filter on/off

Parameters:

state – filter state on / off

ecal.core.core.mon_setinclfilter(filter_)#

Set topics filter whitelist regular expression

Parameters:

filter (string) – filter string as regular expression

ecal.core.core.ok()#

returns ecal process state

ecal.core.core.pub_create(topic_name, topic_type, topic_desc)#

create publisher

Parameters:
  • topic_name (string) – the unique topic name

  • topic_type (string) – optional type name

  • topic_desc (bytes) – optional type description

ecal.core.core.pub_destroy(topic_handle)#

destroy publisher

Parameters:

topic_handle – the topic handle

ecal.core.core.pub_send(topic_handle, msg_payload, msg_time=-1)#

send publisher content

Parameters:
  • topic_handle – the topic handle

  • msg_payload (bytes) – message python string (can contain zeros)

  • msg_time (int) – optional message time in us (default -1 == eCAL system time)

ecal.core.core.pub_send_sync(topic_handle, msg_payload, msg_time, ack_timeout_ms)#

send publisher content synchronized to connected local subscribers with acknowledge timeout

Parameters:
  • topic_handle – the topic handle

  • msg_payload (bytes) – message python string (can contain zeros)

  • msg_time (int) – message time in us (-1 == eCAL system time)

  • ack_timeout_ms (int) – Maximum time to wait for all subscribers acknowledge feedback in ms (message received and processed)

ecal.core.core.pub_set_description(topic_handle, description)#

set publisher topic type description

Parameters:
  • topic_handle (string) – the topic handle

  • description (bytes) – the topic type description

ecal.core.core.pub_set_layer_mode(topic_handle, layer, mode)#

set send mode for specific transport layer

Parameters:
  • topic_handle – the topic handle

  • layer (int) – 0 = udp, 1 = shm, 42 = inproc

  • mode (int) – 0 = off, 1 = on, 2 = auto

ecal.core.core.pub_set_max_bandwidth_udp(topic_handle, bandwidth)#

set publisher maximum transmit bandwidth for the udp layer.

Parameters:
  • topic_handle – the topic handle

  • bandwidth (int) – maximum bandwidth in bytes/s (-1 == unlimited)

ecal.core.core.pub_set_qos_historykind(topic_handle, qpolicy, depth)#

set publisher quality of service historykind mode and depth

Parameters:
  • topic_handle – the topic handle

  • qpolicy (int) – 0 = keep_last_history_qos, 1 = keep_all_history_qos

  • depth – history kind buffer depth

ecal.core.core.pub_set_qos_reliability(topic_handle, qpolicy)#

set publisher quality of service reliability mode

Parameters:
  • topic_handle – the topic handle

  • qpolicy (int) – 0 = best_effort_reliability_qos, 1 = reliable_reliability_qos

  • depth – history kind buffer depth

ecal.core.core.pub_set_topic_type_name(topic_handle, topic_type_name)#

set publisher topic type name

Parameters:
  • topic_handle (string) – the topic handle

  • topic_type_name (string) – the topic type name

class ecal.core.core.publisher(topic_name, topic_type='', topic_desc=b'')#

Bases: object

eCAL publisher

destroy()#

destroy publisher

send(msg_payload, msg_time=-1)#

send publisher content

Parameters:
  • msg_payload (bytes) – message python string (can contain zeros)

  • msg_time (int) – optional message time in us (default -1 == eCAL system time)

send_sync(msg_payload, msg_time, ack_timeout_ms)#

send publisher content synchronized to connected local subscribers with acknowledge timeout

Parameters:
  • msg_payload (bytes) – message python string (can contain zeros)

  • msg_time (int) – message time in us (-1 == eCAL system time)

  • ack_timeout_ms (int) – Maximum time to wait for subscriber receive and process acknowledge feedback in ms

set_layer_mode(layer, mode)#

set send mode for specific transport layer

Parameters:
  • layer (int) – 0 = udp, 1 = shm, 42 = inproc

  • mode – 0 = off, 1 = on, 2 = auto

set_max_bandwidth_udp(bandwidth)#

set publisher maximum transmit bandwidth for the udp layer.

Parameters:

bandwidth (int) – maximum bandwidth in bytes/s (-1 == unlimited)

set_qos_historykind(qpolicy, depth)#

set quality of service historykind mode and depth

Parameters:
  • qpolicy – 0 = keep_last_history_qos, 1 = keep_all_history_qos

  • depth – history kind buffer depth

set_qos_reliability(qpolicy)#

set quality of service reliability mode

Parameters:

qpolicy – 0 = best_effort_reliability_qos, 1 = reliable_reliability_qos

set_topic_description(description)#

set topic description

Parameters:

description (bytes) – the topic type description

set_topic_type_name(topic_type_name)#

set topic type name

Parameters:

topic_type_name (string) – the topic type name

ecal.core.core.server_add_method_callback(server_handle, method_name, req_type, resp_type, callback)#

add method callback to server

Parameters:
  • server_handle – the server handle

  • method_name – the name of method to add

  • method_name – string

  • req_type – the type of the method request (optional)

  • resp_type – the type of the method response (optional)

  • callback – the method callback function (response = f(method_name, req_type, resp_type, request))

ecal.core.core.server_create(service_name)#

create server

Parameters:

service_name (string) – the unique service name

ecal.core.core.server_destroy(server_handle)#

destroy server

Parameters:

server_handle – the server handle

ecal.core.core.server_rem_method_callback(server_handle, method_name)#

remove method callback from server

Parameters:
  • server_handle – the server handle

  • method_name – the name of method to add

  • method_name – string

ecal.core.core.set_process_state(severity, level, info)#

set the process state

Parameters:
  • severity (int) – severity (unknown = 0, healthy = 1, warning = 2, critical = 3, failed = 4)

  • level (int) – severity level (level1 = 1, level2 = 2, level3 = 3, level4 = 4, level5 = 5)

  • info (string) – info message

ecal.core.core.set_unit_name(unit_name)#

set/change the unit name of the current module

Parameters:

unit_name (string) – Name of the eCAL unit

ecal.core.core.shutdown_core()#

shutdown ecal core components

ecal.core.core.shutdown_process_id(process_id)#

shutdown ecal user processes with specified process id

Parameters:

process_id – process ID of the process to shut down

ecal.core.core.shutdown_process_uname(unit_name)#

shutdown ecal user processes with specified unit name

Parameters:

unit_name – unit name of the process to shut down

ecal.core.core.shutdown_processes()#

shutdown all ecal user processes

ecal.core.core.sub_create(topic_name, topic_type)#

create subscriber

Parameters:
  • topic_name (string) – the unique topic name

  • topic_type (string) – optional topic type

ecal.core.core.sub_destroy(topic_handle)#

destroy subscriber

Parameters:

topic_handle – the topic handle

ecal.core.core.sub_receive(topic_handle, timeout=0)#

receive subscriber content with timeout

Parameters:
  • topic_handle – the topic handle

  • timeout (int) – receive timeout in ms

ecal.core.core.sub_rem_callback(topic_handle, callback)#

remove callback function for incoming messages

Parameters:
  • topic_handle – the topic handle

  • callback – python callback function (f(topic_name, msg, time))

ecal.core.core.sub_set_callback(topic_handle, callback)#

set callback function for incoming messages

Parameters:
  • topic_handle – the topic handle

  • callback – python callback function (f(topic_name, msg, time))

ecal.core.core.sub_set_qos_historykind(topic_handle, qpolicy, depth)#

set subscriber quality of service historykind mode and depth

Parameters:
  • topic_handle – the topic handle

  • qpolicy (int) – 0 = keep_last_history_qos, 1 = keep_all_history_qos

  • depth (int) – history kind buffer depth

ecal.core.core.sub_set_qos_reliability(topic_handle, qpolicy)#

set subscriber quality of service reliability mode

Parameters:
  • topic_handle – the topic handle

  • qpolicy (int) – 0 = best_effort_reliability_qos, 1 = reliable_reliability_qos

class ecal.core.core.subscriber(topic_name, topic_type='')#

Bases: object

eCAL subscriber

destroy()#

destroy subscriber

receive(timeout=0)#

receive subscriber content with timeout

Parameters:

timeout (int) – receive timeout in ms

rem_callback(callback)#

remove callback function for incoming messages

Parameters:

callback – python callback function (f(topic_name, msg, time))

set_callback(callback)#

set callback function for incoming messages

Parameters:

callback – python callback function (f(topic_name, msg, time))

set_qos_historykind(qpolicy, depth)#

set quality of service historykind mode and depth

Parameters:
  • qpolicy (int) – 0 = keep_last_history_qos, 1 = keep_all_history_qos

  • depth (int) – history kind buffer depth

set_qos_reliability(qpolicy)#

set quality of service reliability mode

Parameters:

qpolicy (int) – 0 = best_effort_reliability_qos, 1 = reliable_reliability_qos

class ecal.core.core.subscriberDynJSON(topic_name)#

Bases: object

eCAL Protobuf dynamic JSON subscriber

destroy()#

destroy subscriber

rem_callback(callback)#

remove callback function for incoming messages

Parameters:

callback – python callback function (f(topic_name, msg, time))

set_callback(callback)#

set callback function for incoming messages

Parameters:

callback – python callback function (f(topic_name, msg, time))