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))