Skip to content

Commit 5f742e7

Browse files
author
Murilo Marinho
committed
[SimulatorServer] Adding callback set functions.
1 parent d414d91 commit 5f742e7

3 files changed

Lines changed: 25 additions & 4 deletions

File tree

include/sas_common/sas_simulator_server.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,8 @@ class SimulatorServer: private sas::Object
6666
SimulatorServer(const std::shared_ptr<Node> &node,
6767
const std::string topic_prefix="GET_FROM_NODE");
6868

69-
//bool start_simulation();
70-
//bool stop_simulation();
69+
void set_start_simulation_callback(const std::function<void()>&);
70+
void set_stop_simulation_callback(const std::function<void()>&);
7171

7272
bool is_enabled() const;
7373
std::string get_topic_prefix() const;

src/examples/sas_simulator_test_node.cpp

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
# ################################################################*/
2424
#include <exception>
2525
#include <rclcpp/rclcpp.hpp>
26+
#include <sas_core/sas_clock.hpp>
2627
#include <sas_common/sas_simulator_client.hpp>
2728
#include <sas_common/sas_simulator_server.hpp>
2829

@@ -44,13 +45,24 @@ int main(int argc, char** argv)
4445

4546
rclcpp::init(argc,argv,rclcpp::InitOptions(),rclcpp::SignalHandlerOptions::None);
4647
auto node = std::make_shared<rclcpp::Node>("sas_simulator_test_node");
48+
auto clock = sas::Clock(0.001);
4749

4850
try
4951
{
5052
auto simulator_client = sas::SimulatorClient(node);
51-
simulator_client.is_enabled();
5253
auto simulator_server = sas::SimulatorServer(node);
53-
simulator_server.is_enabled();
54+
auto f1 = [](){};
55+
auto f2 = [](){};
56+
simulator_server.set_start_simulation_callback(f1);
57+
simulator_server.set_stop_simulation_callback(f2);
58+
59+
clock.init();
60+
while(!(simulator_client.is_enabled() &&
61+
simulator_server.is_enabled()))
62+
{
63+
clock.update_and_sleep();
64+
}
65+
5466
}
5567
catch (const std::exception& e)
5668
{

src/sas_simulator_server.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,15 @@ void SimulatorServer::stop_simulation_callback_ros_(
7979
stop_simulation_callback_();
8080
}
8181

82+
void SimulatorServer::set_start_simulation_callback(const std::function<void()>& start_simulation_callback)
83+
{
84+
start_simulation_callback_ = start_simulation_callback;
85+
}
86+
void SimulatorServer::set_stop_simulation_callback(const std::function<void()>& stop_simulation_callback)
87+
{
88+
stop_simulation_callback_ = stop_simulation_callback;
89+
}
90+
8291
bool SimulatorServer::is_enabled() const
8392
{
8493
return !(start_simulation_callback_ == nullptr ||

0 commit comments

Comments
 (0)