Class DashboardClient

Class Documentation

class DashboardClient

This class is a wrapper around the dashboard server.

For every Dashboard command there exists a wrapper function that will send the request and wait for the server’s response.

For documentation about the dashboard server, please see

Public Types

enum class ClientPolicy

Values:

enumerator G5
enumerator POLYSCOPE_X

Public Functions

DashboardClient(const std::string &host, const ClientPolicy client_policy = ClientPolicy::G5)

Constructor that shall be used by default.

Parameters:

host – IP address of the robot

DashboardClient() = delete
virtual ~DashboardClient() = default
virtual bool connect(const size_t max_num_tries = 0, const std::chrono::milliseconds reconnection_time = std::chrono::seconds(10))

Opens a connection to the dashboard server on the host as specified in the constructor.

Parameters:
  • max_num_tries – Maximum number of connection attempts before counting the connection as failed. Unlimited number of attempts when set to 0.

  • reconnection_time – time in between connection attempts to the server

Returns:

True on successful connection, false otherwise.

void disconnect()

Makes sure no connection to the dashboard server is held inside the object.

std::string sendAndReceive(const std::string &command)

Sends a command through the socket and waits for an answer.

Parameters:

command – Command that will be sent to the server.

Throws:

UrException – if no response was read from the dashboard server

Returns:

Answer as received by the server cut off any trailing newlines.

bool sendRequest(const std::string &command, const std::string &expected = "")

Sends command and compare it with the expected answer.

Parameters:
  • command – Command that will be sent to the server.

  • expected – Expected response as a regex string

Returns:

True if the reply to the command is as expected

std::string sendRequestString(const std::string &command, const std::string &expected)

Sends command and compare it with the expected answer.

Parameters:
  • command – Command that will be sent to the server.

  • expected – Expected response as a regex string

Throws:

UrException – if the received answer does not match the expected one.

Returns:

Answer string as received by the server

bool waitForReply(const std::string &command, const std::string &expected, std::chrono::duration<double> timeout = std::chrono::seconds(30))

brief Sends a command and wait until it returns the expected answer

Parameters:
  • command – Command that will be sent to the server

  • expected – Expected replay

  • timeout – Timeout to wait before the command is considered failed.

Returns:

True if the reply was as expected within the timeout time

bool retryCommand(const std::string &requestCommand, const std::string &requestExpectedResponse, const std::string &waitRequest, const std::string &waitExpectedResponse, const std::chrono::duration<double> timeout, const std::chrono::duration<double> retry_period = std::chrono::seconds(1))

Keep Sending the requesting Command and wait until it returns the expected answer.

Parameters:
  • requestCommand – Request command that will be sent to the server

  • requestExpectedResponse – The expected reply to the request

  • waitRequest – The status request

  • waitExpectedResponse – The expected reply on the status

  • timeout – Timeout before the command is ultimately considered failed

  • retry_period – Retries will be done with this period

Returns:

True when both the requested command was receive with the expected reply as well as the resulting status also is as expected within the timeout time

bool commandPowerOff()

Send Power off command.

Returns:

True succeeded

DashboardResponse commandPowerOffWithResponse()

Send Power off command.

bool commandPowerOn(const std::chrono::duration<double> timeout = std::chrono::seconds(300))

Send Power on command.

Parameters:

timeout – Timeout in seconds - The robot might take some time to boot before this call can be made successfully.

Returns:

True succeeded

DashboardResponse commandPowerOnWithResponse(const std::chrono::duration<double> timeout = std::chrono::seconds(300))

Send Power on command.

Parameters:

timeout – Timeout in seconds - The robot might take some time to boot before this call can be made successfully.

bool commandBrakeRelease()

Send Brake release command.

Returns:

True succeeded

DashboardResponse commandBrakeReleaseWithResponse()

Send Brake release command.

bool commandLoadProgram(const std::string &program_file_name)

Send Load program command.

Parameters:

program_file_name – The urp program file name with the urp extension

Returns:

True succeeded

DashboardResponse commandLoadProgramWithResponse(const std::string &program_file_name)

Send Load program command and wait for a response.

Stores the following entries in the data field:

  • ‘program_name’: std::string

Parameters:

program_file_name – The urp program file name with the urp extension

bool commandLoadInstallation(const std::string &installation_file_name)

Send Load installation command.

Parameters:

installation_file_name – The installation file name with the installation extension

Returns:

True succeeded

DashboardResponse commandLoadInstallationWithResponse(const std::string &installation_file_name)

Send Load installation command.

Parameters:

installation_file_name – The installation file name with the installation extension

bool commandPlay()

Send Play program command.

Returns:

True succeeded

DashboardResponse commandPlayWithResponse()

Send Play program command.

bool commandPause()

Send Pause program command.

Returns:

True succeeded

DashboardResponse commandPauseWithResponse()

Send Pause program command.

bool commandResume()

Send resume command.

This does only exist for PolyScope X, for e-Series robots “play” is used also for resuming a paused program.

Returns:

True succeeded

DashboardResponse commandResumeWithResponse()

Send resume command.

This does only exist for PolyScope X, for e-Series robots “play” is used also for resuming a paused program.

bool commandStop()

Send Stop program command.

Returns:

True succeeded

DashboardResponse commandStopWithResponse()

Send Stop program command.

bool commandClosePopup()

Send Stop program command.

Returns:

True succeeded

DashboardResponse commandClosePopupWithResponse()

Send Close popup command.

bool commandCloseSafetyPopup()

Send Close safety popup command.

Returns:

True succeeded

DashboardResponse commandCloseSafetyPopupWithResponse()

Send Close safety popup command.

bool commandRestartSafety()

Send Restart Safety command.

Returns:

True succeeded

DashboardResponse commandRestartSafetyWithResponse()

Send Restart Safety command.

bool commandUnlockProtectiveStop()

Send Unlock Protective stop popup command.

Returns:

True succeeded

DashboardResponse commandUnlockProtectiveStopWithResponse()

Send Unlock Protective stop popup command.

bool commandShutdown()

Send Shutdown command.

Returns:

True succeeded

DashboardResponse commandShutdownWithResponse()

Send Shutdown command.

bool commandQuit()

Send Quit command.

Returns:

True succeeded

DashboardResponse commandQuitWithResponse()

Send Quit command.

bool commandRunning()

Send Running command.

Returns:

True succeeded

DashboardResponse commandRunningWithResponse()

Send Running command.

Stores the following entries in the data field:

  • ‘running’: bool

bool commandIsProgramSaved()

Send “Is program saved” request command.

Returns:

True if the program is saved correctly

DashboardResponse commandIsProgramSavedWithResponse()

Send “Is program saved” request command.

Stores the following entries in the data field:

  • ‘saved’: bool

  • ’program_name’: std::string (PolyScope 5 only)

bool commandIsInRemoteControl()

Send “Is in remote control” query command.

Throws:

anUrException when called on CB3 robots

Returns:

True if the robot is currently in remote control

DashboardResponse commandIsInRemoteControlWithResponse()

Send “Is in remote control” query command.

Stores the following entries in the data field:

  • ‘remote_control’: bool

bool commandPopup(const std::string &popup_text)

Send popup command.

Parameters:

popup_text – The text to be shown in the popup

Returns:

True succeeded

DashboardResponse commandPopupWithResponse(const std::string &popup_text)

Send popup command.

bool commandAddToLog(const std::string &log_text)

Send text to log.

Parameters:

log_text – The text to be sent to the log

Returns:

True succeeded

DashboardResponse commandAddToLogWithResponse(const std::string &log_text)

Send text to log.

Parameters:

log_text – The text to be sent to the log

bool commandPolyscopeVersion(std::string &polyscope_version)

Get Polyscope version.

Parameters:

polyscope_version – The string for the polyscope version number returned

Returns:

True succeeded

DashboardResponse commandPolyscopeVersionWithResponse()

Get Polyscope version.

Stores the following entries in the data field:

  • ‘polyscope_version’: std::string

bool commandGetRobotModel(std::string &robot_model)

Get Robot model.

Parameters:

robot_model – The string for the robot model returned

Returns:

True succeeded

DashboardResponse commandGetRobotModelWithResponse()

Get Robot model.

Stores the following entries in the data field:

  • ‘robot_model’: std::string

bool commandGetSerialNumber(std::string &serial_number)

Get Serial number.

Parameters:

serial_number – The serial number of the robot returned

Returns:

True succeeded

DashboardResponse commandGetSerialNumberWithResponse()

Get Serial number.

Stores the following entries in the data field:

  • ‘serial_number’: std::string

bool commandRobotMode(std::string &robot_mode)

Get Robot mode.

Parameters:

robot_mode – The mode of the robot returned

Returns:

True succeeded

DashboardResponse commandRobotModeWithResponse()

Get Robot mode.

Stores the following entries in the data field:

  • ‘robot_mode’: std::string

bool commandGetLoadedProgram(std::string &loaded_program)

Get Loaded Program.

Parameters:

loaded_program – The path to the loaded program

Returns:

True succeeded

DashboardResponse commandGetLoadedProgramWithResponse()

Get Loaded Program.

Stores the following entries in the data field:

  • ‘program_name’: std::string

bool commandSafetyMode(std::string &safety_mode)

Get Safety mode.

Parameters:

safety_mode – The safety mode of the robot returned

Returns:

True succeeded

DashboardResponse commandSafetyModeWithResponse()

Get Safety mode.

Stores the following entries in the data field:

  • ‘safety_mode’: std::string

bool commandSafetyStatus(std::string &safety_status)

Get Safety status.

Parameters:

safety_status – The safety status of the robot returned

Returns:

True succeeded

DashboardResponse commandSafetyStatusWithResponse()

Get Safety status.

Stores the following entries in the data field:

  • ‘safety_status’: std::string

bool commandProgramState(std::string &program_state)

Get Program state.

Parameters:

program_state – The program state of the robot returned

Returns:

True succeeded

DashboardResponse commandProgramStateWithResponse()

Get Program state.

Stores the following entries in the data field:

  • ‘program_state’: std::string

  • ’program_name’: std::string

bool commandGetOperationalMode(std::string &operational_mode)

Get Operational mode.

Parameters:

operational_mode – The operational mode of the robot returned (Only available for e-series)

Throws:

anUrException when called on CB3 robots

Returns:

True succeeded

DashboardResponse commandGetOperationalModeWithResponse()

Get Operational mode.

Stores the following entries in the data field:

  • ‘operational_mode’: std::string

bool commandSetOperationalMode(const std::string &operational_mode)

Send Set operational mode command (Only available for e-series)

Parameters:

operational_mode – The operational mode to set on the robot

Throws:

anUrException when called on CB3 robots

Returns:

True succeeded

DashboardResponse commandSetOperationalModeWithResponse(const std::string &operational_mode)

Send Set operational mode command (Only available for e-series)

Parameters:

operational_mode – The operational mode to set on the robot

bool commandClearOperationalMode()

Send Clear operational mode command.

Throws:

anUrException when called on CB3 robots

Returns:

True succeeded

DashboardResponse commandClearOperationalModeWithResponse()

Send Clear operational mode command.

Throws:

anUrException when called on CB3 robots

bool commandSetUserRole(const std::string &user_role)

Send Set user role command (Only available for CB3)

Parameters:

user_role – The user role to set on the robot

Throws:

anUrException when called on e-series robots

Returns:

True succeeded

DashboardResponse commandSetUserRoleWithResponse(const std::string &user_role)

Send Set user role command (Only available for CB3)

Throws:

anUrException when called on e-series robots

bool commandGetUserRole(std::string &user_role)

Send Get user role command (Only available for CB3)

Parameters:

user_role – The user role on the robot

Throws:

anUrException when called on e-series robots

Returns:

True succeeded

DashboardResponse commandGetUserRoleWithResponse()

Send Get user role command (Only available for CB3)

Stores the following entries in the data field:

  • ‘user_role’: std::string

Throws:

anUrException when called on e-series robots

bool commandGenerateFlightReport(const std::string &report_type)

Send Generate flight report command.

Note

This may take a long time to run.

Parameters:

report_type – The report type to set for the flight report

Returns:

True succeeded

DashboardResponse commandGenerateFlightReportWithResponse(const std::string &report_type)

Send Generate flight report command.

Note

This may take a long time to run.

Parameters:

report_type – The report type to set for the flight report

bool commandGenerateSupportFile(const std::string &dir_path)

Send Generate support file command.

Note

This may take a long time to run.

Parameters:

dir_path – The path to the directory of an already existing directory location inside the programs directory, where the support file is saved

Returns:

True succeeded

DashboardResponse commandGenerateSupportFileWithResponse(const std::string &dir_path)

Send Generate support file command.

Note

This may take a long time to run.

Parameters:

dir_path – The path to the directory of an already existing directory location inside the programs directory, where the support file is saved

bool commandSaveLog()

Flush the polyscope log to the log_history.txt file.

Returns:

True succeeded

DashboardResponse commandSaveLogWithResponse()

Flush the polyscope log to the log_history.txt file.

void assertVersion(const std::string &e_series_min_ver, const std::string &cb3_min_ver, const std::string &required_call)

Makes sure that the dashboard_server’s version is above the required version.

Parameters:
  • e_series_min_ver – SW version for e-Series

  • cb3_min_ver – SW version for cb3

  • required_call – The dashboard call that should be checked

Throws:

UrException – if the robot’s version isn’t large enough

timeval getConfiguredReceiveTimeout() const

Gets the configured receive timeout. If receive timeout is unconfigured “normal” socket timeout of 1 second will be returned.

Returns:

configured receive timeout

void setReceiveTimeout(const timeval &timeout)

Setup Receive timeout used for this socket.

Parameters:

timeout – Timeout used for setting things up

Protected Attributes

std::shared_ptr<DashboardClientImpl> impl_