.. _program_listing_file__tmp_ws_src_opensw_include_opensw_client.h: Program Listing for File client.h ================================= |exhale_lsh| :ref:`Return to documentation for file ` (``/tmp/ws/src/opensw/include/opensw/client.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #pragma once #include #include #include #include #include #include #include #include #include namespace opensw { class Client { public: Client(); ~Client() = default; bool connect(const std::string& host, int port, int timeout_ms); bool connected() const; void disconnect(); std::optional getBatteryPercentage(); Bitmap::Ptr getBitmapData(float x, float y, float width, float height, MapKind kind); std::optional getBoardTemperature(); std::optional getDcInConnected(); std::optional getHealthStatus(); std::optional getImuData(); std::optional getIsCharging(); std::optional> getKnownArea(MapType type, MapKind kind); LaserScan::Ptr getLaserScan(); std::optional getLocation(); std::optional getOnDock(); std::optional getPose(); std::optional getRawImuData(); std::optional getSdpVersion(); private: void handleConnect(const std::error_code& err); void checkDeadline(const std::error_code& err); std::optional sendAndReceive(const std::string& msg); const size_t max_buffer_size_ = 10000000; asio::io_context io_context_; asio::io_context::work work_; asio::deadline_timer deadline_; asio::ip::tcp::socket socket_; asio::streambuf stream_buffer_; std::mt19937 rng_; std::uniform_int_distribution id_dist_; int timeout_ms_ = 500; bool connection_failed_ = false; }; } // namespace opensw