Skip to content

Commit 4b02ab1

Browse files
committed
runtime/main.cpp : add macro for defining commands
1 parent a2b2229 commit 4b02ab1

File tree

1 file changed

+14
-10
lines changed

1 file changed

+14
-10
lines changed

src/candlewick/runtime/main.cpp

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,14 @@ namespace cdw = candlewick;
1717
namespace pin = pinocchio;
1818
using cdw::multibody::Visualizer;
1919

20-
constexpr std::string_view CMD_SEND_MODELS = "send_models";
21-
constexpr std::string_view CMD_SEND_STATE = "state_update";
22-
constexpr std::string_view CMD_SEND_CAM_POSE = "send_cam_pose";
23-
constexpr std::string_view CMD_CLEAN = "cmd_clean";
20+
#define CANDLEWICK_RUNTIME_DEFINE_COMMAND(name) \
21+
constexpr std::string_view CMD_##name = #name
22+
23+
CANDLEWICK_RUNTIME_DEFINE_COMMAND(send_models);
24+
CANDLEWICK_RUNTIME_DEFINE_COMMAND(send_state);
25+
CANDLEWICK_RUNTIME_DEFINE_COMMAND(send_cam_pose);
26+
CANDLEWICK_RUNTIME_DEFINE_COMMAND(clean);
27+
2428
using RowMat4d = Eigen::Matrix<pin::context::Scalar, 4, 4, Eigen::RowMajor>;
2529

2630
msgpack::object_handle get_handle_from_zmq_msg(zmq::message_t &&msg) {
@@ -92,7 +96,7 @@ bool handle_first_message(zmq::socket_ref sock, ApplicationContext &app_ctx) {
9296
return false;
9397

9498
auto msg_header = msgs[0].to_string_view();
95-
if (msg_header == CMD_SEND_MODELS) {
99+
if (msg_header == CMD_send_models) {
96100
msgpack::object_handle oh = get_handle_from_zmq_msg(std::move(msgs[1]));
97101
auto obj = oh.get();
98102
std::array<std::string, 2> model_strings;
@@ -108,7 +112,7 @@ bool handle_first_message(zmq::socket_ref sock, ApplicationContext &app_ctx) {
108112
return true;
109113
} else {
110114
SDL_Log("First message must have header \'%s\', got \'%s\'. Retry.",
111-
CMD_SEND_MODELS.data(), msg_header.data());
115+
CMD_send_models.data(), msg_header.data());
112116
continue;
113117
}
114118
}
@@ -125,7 +129,7 @@ void run_main_loop(Visualizer &viz, ApplicationContext &app_ctx) {
125129
if (rec) {
126130
// route through message headers
127131
auto header = msgs[0].to_string_view();
128-
if (header == CMD_SEND_STATE) {
132+
if (header == CMD_send_state) {
129133
auto oh = get_handle_from_zmq_msg(std::move(msgs[1]));
130134
msgpack::object obj = oh.get();
131135
std::tuple<ArrayMessage, std::optional<ArrayMessage>> arrays;
@@ -145,14 +149,14 @@ void run_main_loop(Visualizer &viz, ApplicationContext &app_ctx) {
145149
zmq::recv_flags::dontwait);
146150
if (rec) {
147151
auto header = msgs[0].to_string_view();
148-
if (header == CMD_SEND_CAM_POSE) {
152+
if (header == CMD_send_cam_pose) {
149153
auto oh = get_handle_from_zmq_msg(std::move(msgs[1]));
150154
msgpack::object obj = oh.get();
151155
ArrayMessage M_msg = obj.as<ArrayMessage>();
152156
auto M = get_eigen_view_from_spec<RowMat4d>(M_msg);
153157
viz.setCameraPose(M);
154158
app_ctx.sync_sock.send(zmq::str_buffer("ok"));
155-
} else if (header == CMD_CLEAN) {
159+
} else if (header == CMD_clean) {
156160
viz.clean();
157161
app_ctx.sync_sock.send(zmq::str_buffer("ok"));
158162
}
@@ -183,7 +187,7 @@ int main(int argc, char **argv) {
183187
zmq::socket_t &state_sock = app_ctx.state_sock;
184188
sync_sock.bind(std::format("tcp://{:s}:{:d}", hostname, port));
185189
state_sock.bind(std::format("tcp://{:s}:{:d}", hostname, port + 2));
186-
state_sock.set(zmq::sockopt::subscribe, CMD_SEND_STATE);
190+
state_sock.set(zmq::sockopt::subscribe, CMD_send_state);
187191

188192
std::string endpoint;
189193
endpoint = sync_sock.get(zmq::sockopt::last_endpoint);

0 commit comments

Comments
 (0)