[fix] compilation of this tag on windows
Some checks failed
Verification / Is-Buildable (push) Failing after 2m4s

This commit is contained in:
amukhamadiev 2026-04-13 23:58:32 +03:00
parent 5634773eaf
commit e9e15a20a2
5 changed files with 26 additions and 29 deletions

35
API.md
View File

@ -1,6 +1,10 @@
# 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
@ -59,15 +63,11 @@ Retrieves the intrinsic camera parameters as a flat 3x3 matrix (row-major).
```json
{
"jsonrpc": "2.0",
"result": [
1.0, 0.0, 0.0,
0.0, 1.0, 0.0,
0.0, 0.0, 1.0
],
"result": <base64-encoded-array>,
"id": 1
}
```
*Type: `vector<double>` (size 9)*
*Type: `vector<double>` (size 9) encoded as base64*
### `get-extrinsic-params`
@ -86,16 +86,11 @@ Retrieves the extrinsic camera parameters as a flat 4x4 matrix (row-major).
```json
{
"jsonrpc": "2.0",
"result": [
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
],
"result": <base64-encoded-array>,
"id": 2
}
```
*Type: `vector<double>` (size 16)*
*Type: `vector<double>` (size 16) encoded as base64*
### `get-cloud-point`
@ -114,12 +109,12 @@ Retrieves the current field of view point cloud.
```json
{
"jsonrpc": "2.0",
"result": [
[0.1, 0.2, 0.3],
[1.1, 1.2, 1.3],
[5.5, 6.6, 7.7]
],
"result": {
"width": int,
"height": int,
"data": <base64-encoded-array>
},
"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*

View File

@ -6,16 +6,17 @@
#include <string>
#include <vector>
#include "export.h"
namespace score {
class IRPCCoder {
class CRPC_EXPORT IRPCCoder {
public:
virtual ~IRPCCoder() = default;
virtual std::vector<char> decode(const std::string& encoded) = 0;
virtual std::string encode(const std::vector<char>& data) = 0;
};
class Base64RPCCoder final : public IRPCCoder {
class CRPC_EXPORT Base64RPCCoder final : public IRPCCoder {
public:
Base64RPCCoder();
~Base64RPCCoder() override;
@ -24,4 +25,4 @@ public:
std::string encode(const std::vector<char>& data) override;
};
}
}

View File

@ -11,17 +11,18 @@ base64_dep = dependency('base64', fallback: ['aklomp-base64', 'base64'])
cmake = import('cmake')
glog_opt = cmake.subproject_options()
glog_opt.add_cmake_defines({
'WITH_GFLAGS': 'OFF',
'WITH_GFLAGS': 'OFF',
'WITH_GTEST': 'OFF',
'CMAKE_POLICY_VERSION_MINIMUM': '3.5'
})
libtype = get_option('default_library')
if libtype == 'static'
if libtype == 'static'
message('Will share static state with glog')
glog_opt.add_cmake_defines({
'BUILD_SHARED_LIBS': 'OFF',
})
add_project_arguments('-DBASE64_STATIC_DEFINE', '-DYAML_CPP_STATIC_DEFINE', language: 'cpp')
endif
glog_proj = cmake.subproject('glog', options: glog_opt)

View File

@ -1,7 +1,7 @@
//
// 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 <glog/logging.h>
@ -39,4 +39,4 @@ std::string Base64RPCCoder::encode(const std::vector<char>& data) {
DLOG(INFO) << "result_len: " << result_len;
return result;
}
}
}

View File

@ -7,7 +7,7 @@
#include <thread>
#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 {
@ -28,4 +28,4 @@ TEST_F(Base64Test, EncodeDecode) {
auto decoded = coder.decode(encoded);
EXPECT_EQ(std::ranges::equal(decoded, raw), true);
LOG(INFO) << "done";
}
}