[fix] compilation of this tag on windows
Some checks failed
Verification / Is-Buildable (push) Failing after 2m4s
Some checks failed
Verification / Is-Buildable (push) Failing after 2m4s
This commit is contained in:
parent
5634773eaf
commit
e9e15a20a2
35
API.md
35
API.md
@ -1,6 +1,10 @@
|
|||||||
# JSON-RPC API Documentation
|
# JSON-RPC API Documentation
|
||||||
|
|
||||||
The Cloud Point RPC server implements the **JSON-RPC 2.0** protocol over TCP.
|
The Cloud Point RPC server implements the **JSON-RPC 2.0** protocol over TCP.
|
||||||
|
|
||||||
|
> **NOTE 1:** Base64 encoding of data should be implemented on Unity Side.
|
||||||
|
|
||||||
|
> **NOTE 2:** Unit Tests were not written for the described API yet
|
||||||
|
|
||||||
## General Format
|
## General Format
|
||||||
|
|
||||||
@ -59,15 +63,11 @@ Retrieves the intrinsic camera parameters as a flat 3x3 matrix (row-major).
|
|||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"jsonrpc": "2.0",
|
"jsonrpc": "2.0",
|
||||||
"result": [
|
"result": <base64-encoded-array>,
|
||||||
1.0, 0.0, 0.0,
|
|
||||||
0.0, 1.0, 0.0,
|
|
||||||
0.0, 0.0, 1.0
|
|
||||||
],
|
|
||||||
"id": 1
|
"id": 1
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
*Type: `vector<double>` (size 9)*
|
*Type: `vector<double>` (size 9) encoded as base64*
|
||||||
|
|
||||||
### `get-extrinsic-params`
|
### `get-extrinsic-params`
|
||||||
|
|
||||||
@ -86,16 +86,11 @@ Retrieves the extrinsic camera parameters as a flat 4x4 matrix (row-major).
|
|||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"jsonrpc": "2.0",
|
"jsonrpc": "2.0",
|
||||||
"result": [
|
"result": <base64-encoded-array>,
|
||||||
1.0, 0.0, 0.0, 0.0,
|
|
||||||
0.0, 1.0, 0.0, 0.0,
|
|
||||||
0.0, 0.0, 1.0, 0.0,
|
|
||||||
0.0, 0.0, 0.0, 1.0
|
|
||||||
],
|
|
||||||
"id": 2
|
"id": 2
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
*Type: `vector<double>` (size 16)*
|
*Type: `vector<double>` (size 16) encoded as base64*
|
||||||
|
|
||||||
### `get-cloud-point`
|
### `get-cloud-point`
|
||||||
|
|
||||||
@ -114,12 +109,12 @@ Retrieves the current field of view point cloud.
|
|||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"jsonrpc": "2.0",
|
"jsonrpc": "2.0",
|
||||||
"result": [
|
"result": {
|
||||||
[0.1, 0.2, 0.3],
|
"width": int,
|
||||||
[1.1, 1.2, 1.3],
|
"height": int,
|
||||||
[5.5, 6.6, 7.7]
|
"data": <base64-encoded-array>
|
||||||
],
|
},
|
||||||
"id": 3
|
"id": 3
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
*Type: `vector<vector<double>>` (List of [x, y, z] points)*
|
*Type of data: `matrix WxH` (List of [x, y, z] points) encoded as base 64*
|
||||||
|
|||||||
@ -6,16 +6,17 @@
|
|||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
#include "export.h"
|
||||||
namespace score {
|
namespace score {
|
||||||
|
|
||||||
class IRPCCoder {
|
class CRPC_EXPORT IRPCCoder {
|
||||||
public:
|
public:
|
||||||
virtual ~IRPCCoder() = default;
|
virtual ~IRPCCoder() = default;
|
||||||
virtual std::vector<char> decode(const std::string& encoded) = 0;
|
virtual std::vector<char> decode(const std::string& encoded) = 0;
|
||||||
virtual std::string encode(const std::vector<char>& data) = 0;
|
virtual std::string encode(const std::vector<char>& data) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
class Base64RPCCoder final : public IRPCCoder {
|
class CRPC_EXPORT Base64RPCCoder final : public IRPCCoder {
|
||||||
public:
|
public:
|
||||||
Base64RPCCoder();
|
Base64RPCCoder();
|
||||||
~Base64RPCCoder() override;
|
~Base64RPCCoder() override;
|
||||||
@ -24,4 +25,4 @@ public:
|
|||||||
std::string encode(const std::vector<char>& data) override;
|
std::string encode(const std::vector<char>& data) override;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -11,17 +11,18 @@ base64_dep = dependency('base64', fallback: ['aklomp-base64', 'base64'])
|
|||||||
cmake = import('cmake')
|
cmake = import('cmake')
|
||||||
glog_opt = cmake.subproject_options()
|
glog_opt = cmake.subproject_options()
|
||||||
glog_opt.add_cmake_defines({
|
glog_opt.add_cmake_defines({
|
||||||
'WITH_GFLAGS': 'OFF',
|
'WITH_GFLAGS': 'OFF',
|
||||||
'WITH_GTEST': 'OFF',
|
'WITH_GTEST': 'OFF',
|
||||||
'CMAKE_POLICY_VERSION_MINIMUM': '3.5'
|
'CMAKE_POLICY_VERSION_MINIMUM': '3.5'
|
||||||
})
|
})
|
||||||
|
|
||||||
libtype = get_option('default_library')
|
libtype = get_option('default_library')
|
||||||
if libtype == 'static'
|
if libtype == 'static'
|
||||||
message('Will share static state with glog')
|
message('Will share static state with glog')
|
||||||
glog_opt.add_cmake_defines({
|
glog_opt.add_cmake_defines({
|
||||||
'BUILD_SHARED_LIBS': 'OFF',
|
'BUILD_SHARED_LIBS': 'OFF',
|
||||||
})
|
})
|
||||||
|
add_project_arguments('-DBASE64_STATIC_DEFINE', '-DYAML_CPP_STATIC_DEFINE', language: 'cpp')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
glog_proj = cmake.subproject('glog', options: glog_opt)
|
glog_proj = cmake.subproject('glog', options: glog_opt)
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
//
|
//
|
||||||
// Created by vptyp on 11.03.2026.
|
// Created by vptyp on 11.03.2026.
|
||||||
//
|
//
|
||||||
#include "cloud_point_rpc/rpc_coder.h"
|
#include "cloud_point_rpc/rpc_coder.hpp"
|
||||||
|
|
||||||
#include "libbase64.h"
|
#include "libbase64.h"
|
||||||
#include <glog/logging.h>
|
#include <glog/logging.h>
|
||||||
@ -39,4 +39,4 @@ std::string Base64RPCCoder::encode(const std::vector<char>& data) {
|
|||||||
DLOG(INFO) << "result_len: " << result_len;
|
DLOG(INFO) << "result_len: " << result_len;
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
#include <thread>
|
#include <thread>
|
||||||
|
|
||||||
#include "cloud_point_rpc/config.hpp"
|
#include "cloud_point_rpc/config.hpp"
|
||||||
#include "cloud_point_rpc/rpc_coder.h"
|
#include "cloud_point_rpc/rpc_coder.hpp"
|
||||||
|
|
||||||
|
|
||||||
class Base64Test : public ::testing::Test {
|
class Base64Test : public ::testing::Test {
|
||||||
@ -28,4 +28,4 @@ TEST_F(Base64Test, EncodeDecode) {
|
|||||||
auto decoded = coder.decode(encoded);
|
auto decoded = coder.decode(encoded);
|
||||||
EXPECT_EQ(std::ranges::equal(decoded, raw), true);
|
EXPECT_EQ(std::ranges::equal(decoded, raw), true);
|
||||||
LOG(INFO) << "done";
|
LOG(INFO) << "done";
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user