Class DesertClient

Class Documentation

class DesertClient

Public Functions

DesertClient(std::string service_name, const rosidl_service_type_support_t *type_supports, rmw_gid_t gid)

Create a client.

Parameters:
  • service_name – Name of the service to send requests and receive responses

  • type_supports – Pointer to the message data structure coming from the ROS upper layers

  • gid – Global identifier of the entity

bool has_data()

Check if there is available data for the current client instance.

The has_data function calls the interpret_packets method in RxStream and then verifies if in the map of client packets there is a correspondence with the service name and the sequence identifier of the current instance.

Returns:

True if data is present otherwise false

void send_request(const void *req, int64_t *sequence_id)

Send a request to the service.

The send_request function starts a transmission with the current sequence identifier and then serializes the message using the method from the MessageSerialization namespace. A discrimination is made between C members and C++ members based on the type support.

Parameters:
  • req – Pointer to the request to send

  • sequence_id – Pointer to the random service sequence identifier

void read_response(void *res, rmw_service_info_t *req_header)

Read a response from the service.

The read_response function interprets a transmission with the current sequence identifier deserializing the message using the method from the MessageSerialization namespace. A discrimination is made between C members and C++ members based on the type support.

Parameters:
  • res – Pointer to the memory location used to store the reading

  • req_header – Pointer to the request header used to store the service sequence identifier

rmw_gid_t get_gid()

Retreive the gid of the current entity.

This function returns the global identifier of the current entity in the rmw format.

Returns:

Global identifier of the entity

std::string get_service_name()

Retreive the service name of the current entity.

This function returns a string containing the service name of the current entity.

Returns:

Name of the service

std::string get_request_type_name()

Retreive the request type of the current entity.

This function returns a string containing the service request type name of the current entity.

Returns:

Type of the service request

std::string get_response_type_name()

Retreive the response type of the current entity.

This function returns a string containing the service response type name of the current entity.

Returns:

Type of the service response