SLAMTEC Aurora Public Remote SDK  1.2.0-rtm
rp::standalone::aurora::RemoteController Class Reference

The controller class for communicating with the remote device. More...

#include <slamtec_remote_public.hxx>

Inheritance diagram for rp::standalone::aurora::RemoteController:
rp::standalone::aurora::Noncopyable

Public Member Functions

size_t getDiscoveredServers (std::vector< SDKServerConnectionDesc > &serverList, size_t maxFetchCount=32)
 Get the discovered server list. More...
 
bool connect (const SDKServerConnectionDesc &serverDesc, slamtec_aurora_sdk_errorcode_t *errCode=nullptr)
 Connect to the remote device. More...
 
void disconnect ()
 Disconnect from the remote device.
 
bool isConnected ()
 Check if the controller is connected to the remote device. More...
 
void setLowRateMode (bool enable)
 Set the low rate mode. More...
 
void setMapDataSyncing (bool enable)
 Set the map data syncing mode. More...
 
void resyncMapData (bool invalidateCache=false)
 Resync the map data. More...
 
void setRawDataSubscription (bool enable)
 Set the raw data subscription mode. More...
 
bool isRawDataSubscribed ()
 Check if the raw data subscription is enabled. More...
 
bool requireMapReset (uint64_t timeout_ms=SLAMTEC_AURORA_SDK_REMOTE_SERVER_DEFAULT_TIMEOUT, slamtec_aurora_sdk_errorcode_t *errcode=nullptr)
 Require the remote device to perform the map reset. More...
 
bool requirePureLocalizationMode (uint64_t timeout_ms=SLAMTEC_AURORA_SDK_REMOTE_SERVER_DEFAULT_TIMEOUT, slamtec_aurora_sdk_errorcode_t *errcode=nullptr)
 Require the remote device to enter the pure localization mode. More...
 
bool requireMappingMode (uint64_t timeout_ms=SLAMTEC_AURORA_SDK_REMOTE_SERVER_DEFAULT_TIMEOUT, slamtec_aurora_sdk_errorcode_t *errcode=nullptr)
 Require the remote device to enter the mapping mode. More...
 
bool requireRelocalization (uint64_t timeout_ms=SLAMTEC_AURORA_SDK_REMOTE_SERVER_DEFAULT_TIMEOUT, slamtec_aurora_sdk_errorcode_t *errcode=nullptr)
 Require the remote device to perform the relocalization. More...
 
bool cancelRelocalization (uint64_t timeout_ms=SLAMTEC_AURORA_SDK_REMOTE_SERVER_DEFAULT_TIMEOUT, slamtec_aurora_sdk_errorcode_t *errcode=nullptr)
 Cancel the relocalization. More...
 
bool setLoopClosure (bool enable, uint64_t timeout_ms=SLAMTEC_AURORA_SDK_REMOTE_SERVER_DEFAULT_TIMEOUT, slamtec_aurora_sdk_errorcode_t *errcode=nullptr)
 Set the loop closure flag. More...
 
bool sendCustomCommand (uint64_t timeout_ms, uint64_t cmd, const void *data=nullptr, size_t data_size=0, void *response=nullptr, size_t response_buffer_size=0, size_t *response_retrieved_size=nullptr, slamtec_aurora_sdk_errorcode_t *errcode=nullptr)
 Send a custom command to the remote device. More...
 

Protected Member Functions

 RemoteController (slamtec_aurora_sdk_session_handle_t &sdk)
 
- Protected Member Functions inherited from rp::standalone::aurora::Noncopyable
 Noncopyable (const Noncopyable &)=delete
 
Noncopyableoperator= (const Noncopyable &)=delete
 
 Noncopyable (Noncopyable &&)=default
 
Noncopyableoperator= (Noncopyable &&)=default
 

Protected Attributes

slamtec_aurora_sdk_session_handle_t _sdk
 

Friends

class RemoteSDK
 

Detailed Description

The controller class for communicating with the remote device.

Member Function Documentation

◆ cancelRelocalization()

bool rp::standalone::aurora::RemoteController::cancelRelocalization ( uint64_t  timeout_ms = SLAMTEC_AURORA_SDK_REMOTE_SERVER_DEFAULT_TIMEOUT,
slamtec_aurora_sdk_errorcode_t errcode = nullptr 
)
inline

Cancel the relocalization.

Parameters
[in]timeout_msThe timeout in milliseconds, default is 5000ms
[out]errcodeThe error code, set to nullptr if not interested
Returns
True if the relocalization is canceled successfully, false otherwise

◆ connect()

bool rp::standalone::aurora::RemoteController::connect ( const SDKServerConnectionDesc serverDesc,
slamtec_aurora_sdk_errorcode_t errCode = nullptr 
)
inline

Connect to the remote device.

Parameters
[in]serverDescThe server description to connect to
[out]errCodeThe error code, set to nullptr if not interested
Returns
True if the connection is successful, false otherwise

◆ getDiscoveredServers()

size_t rp::standalone::aurora::RemoteController::getDiscoveredServers ( std::vector< SDKServerConnectionDesc > &  serverList,
size_t  maxFetchCount = 32 
)
inline

Get the discovered server list.

Get the discovered remote devices, the SDK continuously performs the discovery process to update the server list in the background

Parameters
[out]serverListThe output server list to store the discovered servers
[in]maxFetchCountThe maximum number of servers to fetch, default is 32
Returns
The number of servers fetched

◆ isConnected()

bool rp::standalone::aurora::RemoteController::isConnected ( )
inline

Check if the controller is connected to the remote device.

Returns
True if the controller is connected, false otherwise

◆ isRawDataSubscribed()

bool rp::standalone::aurora::RemoteController::isRawDataSubscribed ( )
inline

Check if the raw data subscription is enabled.

Returns
True if the raw data subscription is enabled, false otherwise

◆ requireMappingMode()

bool rp::standalone::aurora::RemoteController::requireMappingMode ( uint64_t  timeout_ms = SLAMTEC_AURORA_SDK_REMOTE_SERVER_DEFAULT_TIMEOUT,
slamtec_aurora_sdk_errorcode_t errcode = nullptr 
)
inline

Require the remote device to enter the mapping mode.

Parameters
[in]timeout_msThe timeout in milliseconds, default is 5000ms
[out]errcodeThe error code, set to nullptr if not interested
Returns
True if the mapping request is sent and performed successfully, false otherwise

◆ requireMapReset()

bool rp::standalone::aurora::RemoteController::requireMapReset ( uint64_t  timeout_ms = SLAMTEC_AURORA_SDK_REMOTE_SERVER_DEFAULT_TIMEOUT,
slamtec_aurora_sdk_errorcode_t errcode = nullptr 
)
inline

Require the remote device to perform the map reset.

Parameters
[in]timeout_msThe timeout in milliseconds, default is 5000ms
[out]errcodeThe error code, set to nullptr if not interested
Returns
True if the map reset request is sent and performed successfully, false otherwise

◆ requirePureLocalizationMode()

bool rp::standalone::aurora::RemoteController::requirePureLocalizationMode ( uint64_t  timeout_ms = SLAMTEC_AURORA_SDK_REMOTE_SERVER_DEFAULT_TIMEOUT,
slamtec_aurora_sdk_errorcode_t errcode = nullptr 
)
inline

Require the remote device to enter the pure localization mode.

Parameters
[in]timeout_msThe timeout in milliseconds, default is 5000ms
[out]errcodeThe error code, set to nullptr if not interested
Returns
True if the pure localization request is sent and performed successfully, false otherwise

◆ requireRelocalization()

bool rp::standalone::aurora::RemoteController::requireRelocalization ( uint64_t  timeout_ms = SLAMTEC_AURORA_SDK_REMOTE_SERVER_DEFAULT_TIMEOUT,
slamtec_aurora_sdk_errorcode_t errcode = nullptr 
)
inline

Require the remote device to perform the relocalization.

Parameters
[in]timeout_msThe timeout in milliseconds, default is 5000ms
[out]errcodeThe error code, set to nullptr if not interested
Returns
True if the relocalization request is sent and performed successfully, false otherwise

◆ resyncMapData()

void rp::standalone::aurora::RemoteController::resyncMapData ( bool  invalidateCache = false)
inline

Resync the map data.

Ask the SDK to refetch all the map data from the remote device

Parameters
[in]invalidateCacheTrue to invalidate the cached map data, false to keep the cached map data

◆ sendCustomCommand()

bool rp::standalone::aurora::RemoteController::sendCustomCommand ( uint64_t  timeout_ms,
uint64_t  cmd,
const void *  data = nullptr,
size_t  data_size = 0,
void *  response = nullptr,
size_t  response_buffer_size = 0,
size_t *  response_retrieved_size = nullptr,
slamtec_aurora_sdk_errorcode_t errcode = nullptr 
)
inline

Send a custom command to the remote device.

Parameters
[in]timeout_msThe timeout in milliseconds, default is 5000ms
[in]cmdThe command to send
[in]dataThe data to send, set to nullptr if not interested
[in]data_sizeThe size of the data to send, default is 0
[out]responseThe response from the remote device, set to nullptr if not interested
[in]response_buffer_sizeThe size of the response buffer, default is 0
[out]response_retrieved_sizeThe size of the response retrieved, set to nullptr if not interested
[out]errcodeThe error code, set to nullptr if not interested
Returns
True if the custom command is sent and performed successfully, false otherwise

◆ setLoopClosure()

bool rp::standalone::aurora::RemoteController::setLoopClosure ( bool  enable,
uint64_t  timeout_ms = SLAMTEC_AURORA_SDK_REMOTE_SERVER_DEFAULT_TIMEOUT,
slamtec_aurora_sdk_errorcode_t errcode = nullptr 
)
inline

Set the loop closure flag.

Parameters
[in]enableTrue to enable the loop closure, false to disable
[in]timeout_msThe timeout in milliseconds, default is 5000ms
[out]errcodeThe error code, set to nullptr if not interested
Returns
True if the loop closure is set successfully, false otherwise

◆ setLowRateMode()

void rp::standalone::aurora::RemoteController::setLowRateMode ( bool  enable)
inline

Set the low rate mode.

Once the low rate mode is enabled, the SDK will disable the IMU data and Raw image data subscription to reduce the data traffic

Some SDK operations like map streaming will automatically set the low rate mode to true, and the mode will be automatically disabled after the map streaming operation is done

Parameters
[in]enableTrue to enable the low rate mode, false to disable

◆ setMapDataSyncing()

void rp::standalone::aurora::RemoteController::setMapDataSyncing ( bool  enable)
inline

Set the map data syncing mode.

Once the map data syncing is enabled, the SDK will start a background thread to sync the map data from the remote device

The synced map data will be cached in the local device.

The map data can be accessed via the map data access function

NOTICE: the synced map data is only for visualization, it should not be used for localization or other high-precision requirements

Parameters
[in]enableTrue to enable the map data syncing, false to disable

◆ setRawDataSubscription()

void rp::standalone::aurora::RemoteController::setRawDataSubscription ( bool  enable)
inline

Set the raw data subscription mode.

Once the raw data subscription is enabled, the SDK will subscribe the raw image data

Parameters
[in]enableTrue to enable the raw data subscription, false to disable

The documentation for this class was generated from the following file: