That service provider suppliles services for all robotkernel modules with support for canopen protocol devices. The service provider will provide acyclic calls to access the canopen dictionary entries.
No specific configuration is needed for the service provider. The robotkernel just needs to know which service provider to load. To load der service_provider_canopen_device just add it to your config file.
service_providers:
- name: canopen
so_file: libservice_provider_canopen_protocol.soget object dictionary list : Returns a list indices with all available ids on the device. On error, the error_message field will be filled with the error cause.
response:
- vector/uint16_t: indices
- string: error_messageread_object : Returns the description of the object with given index. On error, the error_message field will be filled with the error cause.
request:
- uint16_t: index
response:
- uint16_t: data_type
- uint8_t: objcode
- uint8_t: max_subindices
- string: name
- string: error_messageread element : Reads one element value of an id with given index and sub_index.
request:
- uint16_t: index
- uint8_t: sub_index
response:
- string: name
- uint8_t: value_info
- uint16_t: data_type
- uint16_t: bit_length
- uint16_t: obj_access
- uint16_t: unit
- string: default_value
- string: min_value
- string: max_value
- string: value
- string: error_messagewrite element : Writes value to one element (sub index) of anindex*. The datatype ofvaluemust match to the datatype of the element. On error, the*error_message'' field will be filled with the error cause.
request:
- uint16_t: index
- uint8_t: sub_index
- string: value
response:
- string: error_messageAll of these services will be available through a robotkernel brigdge (e.g. bridge_ln, bridge_jsonrpc, bridge_cli, ...)
Serivice Provider Canopen Protocol