Files
control/examples/rpc_call/main.cpp
2026-02-10 23:59:40 -05:00

41 lines
1.0 KiB
C++

#include <chrono>
#include <cstdint>
#include <cstring>
#include <format>
#include <iostream>
#include <thread>
#include <vector>
#include "libcontrol.h"
int main() {
const auto messaging_interface = std::make_unique<MessagingInterface>();
const auto modules =
messaging_interface->find_connected_modules(std::chrono::seconds(3));
std::cout << "Found " << modules.size() << " modules" << std::endl;
for (const auto module : modules) {
std::cout << "Found ID " << (int)module << std::endl;
}
const auto function_tag = 100;
const auto module = 98;
std::string msg = "Hello world!";
std::vector<uint8_t> parameters(msg.begin(), msg.end());
auto maybe_return_value =
messaging_interface->remote_call(function_tag, module, parameters);
if (maybe_return_value) {
auto return_value = std::move(*maybe_return_value);
std::cout << "Got return value " << (char *)return_value->data()
<< std::endl;
} else {
std::cout << "Function call time out" << std::endl;
}
return 0;
}