30 ElementId(
const std::vector<std::string> & category,
const std::string & name,
int sid)
31 : category(category), name(name), sid(sid)
35 ElementId(
const std::vector<std::string> & category,
const std::string & name) :
ElementId(category, name, -1) {}
38 std::vector<std::string> category = {};
40 std::string name = {};
72 ControllerClient(
const std::string & sub_conn_uri,
const std::string & push_conn_uri,
double timeout = 0);
89 void connect(
const std::string & sub_conn_uri,
const std::string & push_conn_uri);
103 send_request(
id, c(
"data"));
121 raw_request(
id, c(
"data"), out);
146 void run(std::vector<char> & buffer, std::chrono::system_clock::time_point & t_last_received);
154 void run(
const char * buffer,
size_t bufferSize);
168 void reconnect(
const std::string & sub_conn_uri,
const std::string & push_conn_uri);
176 const std::string & category,
188 virtual void category(
const std::vector<std::string> & parent,
const std::string & category) {};
191 inline virtual void label(
const ElementId &
id,
const std::string &) { default_impl(
"Label",
id); }
200 inline virtual void array_label(
const ElementId &
id,
const std::vector<std::string> &,
const Eigen::VectorXd &)
201 { default_impl(
"ArrayLabel",
id); }
219 { default_impl(
"NumberSlider",
id); }
223 const std::vector<std::string> & ,
224 const Eigen::VectorXd & )
225 { default_impl(
"ArrayInput",
id); }
229 const std::vector<std::string> & ,
230 const std::string & )
231 { default_impl(
"ComboInput",
id); }
236 const std::vector<std::string> & ,
237 const std::string & )
238 { default_impl(
"DataComboInput",
id); }
249 const Eigen::Vector3d & ,
251 { default_impl(
"Point3D",
id); }
258 const std::vector<Eigen::Vector3d> & ,
260 { default_impl(
"Point3DTrajectory",
id); }
267 const std::vector<sva::PTransformd> & ,
269 { default_impl(
"PoseTrajectory",
id); }
276 const Eigen::Vector3d & ,
278 { default_impl(
"Point3DRealTimeTrajectory",
id); }
287 { default_impl(
"PoseRealTimeTrajectory",
id); }
301 const std::vector<std::vector<Eigen::Vector3d>> & ,
303 { default_impl(
"PolygonArray",
id); }
316 const std::vector<std::vector<Eigen::Vector3d>> & points,
318 { polygon(
id, points, config.
color); }
331 const std::vector<std::array<Eigen::Vector3d, 3>> & triangles,
332 const std::vector<std::array<mc_rtc::gui::Color, 3>> & colors,
346 const std::vector<Eigen::Vector3d> & vertices,
347 const std::vector<std::array<size_t, 3>> & triangles,
348 const std::vector<mc_rtc::gui::Color> & colors,
359 { default_impl(
"Force",
id); }
365 const Eigen::Vector3d & ,
366 const Eigen::Vector3d & ,
369 { default_impl(
"Arrow",
id); }
381 { default_impl(
"Rotation",
id); }
393 { default_impl(
"Transform",
id); }
404 const Eigen::Vector3d & ,
406 { default_impl(
"XYTheta",
id); }
410 { default_impl(
"Table",
id); }
421 const std::vector<std::string> & ,
422 const std::vector<std::vector<double>> & ,
424 { default_impl(
"Robot",
id); }
427 { default_impl(
"RobotMsg",
id); }
433 { default_impl(
"Visual",
id); }
439 virtual void schema(
const ElementId &
id,
const std::string & ) { default_impl(
"Schema",
id); }
449 const std::string & ,
457 const std::string & name,
461 { form_checkbox(formId, name, required, default_); }
468 const std::string & ,
476 const std::string & name,
480 { form_integer_input(formId, name, required, default_); }
487 const std::string & ,
495 const std::string & name,
499 { form_number_input(formId, name, required, default_); }
506 const std::string & ,
508 const std::string & )
514 const std::string & name,
516 const std::string & default_,
518 { form_string_input(formId, name, required, default_); }
525 const std::string & ,
527 const Eigen::VectorXd & ,
537 const std::string & name,
539 const Eigen::VectorXd & default_,
542 { form_array_input(formId, name, required, default_, fixed_size); }
546 const std::string & name,
548 const std::vector<std::string> & ,
549 const Eigen::VectorXd & default_,
551 bool default_from_user)
552 { form_array_input(formId, name, required, default_, fixed_size, default_from_user); }
559 const std::string & ,
561 const std::vector<std::string> & ,
580 const std::string & name,
582 const std::vector<std::string> & values,
585 { form_combo_input(formId, name, required, values, send_index); }
603 const std::string & ,
605 const std::vector<std::string> & ,
625 const std::string & ,
627 const Eigen::Vector3d & ,
651 const std::string & ,
674 const std::string & ,
711 std::optional<std::vector<Configuration>> )
735 const std::optional<std::pair<size_t, Configuration>> & )
768 const std::string & ,
783 const std::string & ,
798 const std::string & ,
823 const std::string & ,
827 mc_rtc::gui::plot::Style ,
828 mc_rtc::gui::plot::Side )
847 const std::string & ,
849 mc_rtc::gui::plot::Side )
868 const std::string & ,
869 const std::vector<mc_rtc::gui::plot::PolygonDescription> & ,
870 mc_rtc::gui::plot::Side )
883 int sub_socket_ = -1;
885 int push_socket_ = -1;
898 virtual void default_impl(
const std::string & type,
const ElementId &
id);
944 const std::vector<std::string> & header,
945 const std::vector<std::string> & format,
946 const std::vector<mc_rtc::Configuration> & data);
950 bool default_polyhedron_triangles_list_ =
false;
951 bool default_polyhedron_vertices_triangles_ =
false;
#define MC_CONTROL_CLIENT_DLLAPI
Definition: client_api.h:50
Definition: CompletionCriteria.h:11
Definition: ControllerClient.h:52
virtual void polyhedron(const ElementId &id, const std::vector< std::array< Eigen::Vector3d, 3 >> &triangles, const std::vector< std::array< mc_rtc::gui::Color, 3 >> &colors, const mc_rtc::gui::PolyhedronConfig &config)
ControllerClient & operator=(const ControllerClient &)=delete
void handle_gui_state(mc_rtc::Configuration state)
virtual void arrow(const ElementId &id, const ElementId &, const Eigen::Vector3d &, const Eigen::Vector3d &, const mc_rtc::gui::ArrowConfig &, bool)
Definition: ControllerClient.h:363
virtual void trajectory(const ElementId &id, const sva::PTransformd &, const mc_rtc::gui::LineConfig &)
Definition: ControllerClient.h:284
virtual void form_data_combo_input(const ElementId &, const std::string &, bool, const std::vector< std::string > &, bool)
Definition: ControllerClient.h:602
virtual void form_point3d_input(const ElementId &, const std::string &, bool, const Eigen::Vector3d &, bool, bool)
Definition: ControllerClient.h:624
void handle_widget(const ElementId &id, const mc_rtc::Configuration &data)
double timeout_
Definition: ControllerClient.h:886
virtual void xytheta(const ElementId &id, const ElementId &, bool, const Eigen::Vector3d &, double)
Definition: ControllerClient.h:401
virtual void form_number_input(const ElementId &formId, const std::string &name, bool required, double default_, bool)
Definition: ControllerClient.h:494
virtual void start_form_one_of_input(const std::string &, bool, const std::optional< std::pair< size_t, Configuration >> &)
Definition: ControllerClient.h:733
virtual void form_transform_input(const ElementId &, const std::string &, bool, const sva::PTransformd &, bool, bool)
Definition: ControllerClient.h:673
virtual void table_row(const ElementId &, const std::vector< std::string > &)
Definition: ControllerClient.h:413
void handle_category(const std::vector< std::string > &parent, const std::string &category, const mc_rtc::Configuration &data)
virtual void data_combo_input(const ElementId &id, const std::vector< std::string > &, const std::string &)
Definition: ControllerClient.h:235
virtual void table_start(const ElementId &id, const std::vector< std::string > &)
Definition: ControllerClient.h:409
virtual void visual(const ElementId &id, [[maybe_unused]] const rbd::parsers::Visual &visual, [[maybe_unused]] const sva::PTransformd &pose)
Definition: ControllerClient.h:430
ControllerClient(const ControllerClient &)=delete
virtual void rotation(const ElementId &id, const ElementId &, bool, const sva::PTransformd &)
Definition: ControllerClient.h:377
virtual void array_label(const ElementId &id, const std::vector< std::string > &, const Eigen::VectorXd &)
Definition: ControllerClient.h:200
virtual void robot_msg(const ElementId &id, const mc_rtc::gui::RobotMsgData &)
Definition: ControllerClient.h:426
virtual void string_input(const ElementId &id, const std::string &)
Definition: ControllerClient.h:210
virtual void checkbox(const ElementId &id, bool)
Definition: ControllerClient.h:207
void send_request(const ElementId &id, const T &data)
Definition: ControllerClient.h:99
virtual void start_plot(uint64_t, const std::string &)
Definition: ControllerClient.h:756
virtual void form_checkbox(const ElementId &formId, const std::string &name, bool required, bool default_, bool)
Definition: ControllerClient.h:456
virtual void start_form_generic_array_input(const std::string &, bool, std::optional< std::vector< Configuration >>)
Definition: ControllerClient.h:709
virtual void plot_setup_yaxis_left(uint64_t, const std::string &, const mc_rtc::gui::plot::Range &)
Definition: ControllerClient.h:782
virtual void start_form_object_input(const std::string &, bool)
Definition: ControllerClient.h:690
virtual void end_form_object_input()
Definition: ControllerClient.h:697
virtual void plot_polygon(uint64_t, uint64_t, const std::string &, const mc_rtc::gui::plot::PolygonDescription &, mc_rtc::gui::plot::Side)
Definition: ControllerClient.h:845
virtual void stopped()
Definition: ControllerClient.h:185
void raw_request(const ElementId &id, const T &data, std::string &out)
Definition: ControllerClient.h:117
virtual void form(const ElementId &id)
Definition: ControllerClient.h:442
virtual void number_input(const ElementId &id, double)
Definition: ControllerClient.h:216
virtual void started()
Definition: ControllerClient.h:182
virtual void polyhedron(const ElementId &id, const std::vector< Eigen::Vector3d > &vertices, const std::vector< std::array< size_t, 3 >> &triangles, const std::vector< mc_rtc::gui::Color > &colors, const mc_rtc::gui::PolyhedronConfig &config)
virtual void category(const std::vector< std::string > &parent, const std::string &category)
Definition: ControllerClient.h:188
virtual void plot_polygons(uint64_t, uint64_t, const std::string &, const std::vector< mc_rtc::gui::plot::PolygonDescription > &, mc_rtc::gui::plot::Side)
Definition: ControllerClient.h:866
ControllerClient(ControllerServer &server, mc_rtc::gui::StateBuilder &gui)
virtual void trajectory(const ElementId &id, const std::vector< sva::PTransformd > &, const mc_rtc::gui::LineConfig &)
Definition: ControllerClient.h:266
virtual void polygon(const ElementId &id, const std::vector< std::vector< Eigen::Vector3d >> &points, const mc_rtc::gui::LineConfig &config)
Definition: ControllerClient.h:315
virtual void combo_input(const ElementId &id, const std::vector< std::string > &, const std::string &)
Definition: ControllerClient.h:228
ControllerClient(const std::string &sub_conn_uri, const std::string &push_conn_uri, double timeout=0)
virtual void force(const ElementId &id, const ElementId &, const sva::ForceVecd &, const sva::PTransformd &, const mc_rtc::gui::ForceConfig &, bool)
Definition: ControllerClient.h:353
void run(std::vector< char > &buffer, std::chrono::system_clock::time_point &t_last_received)
virtual void integer_input(const ElementId &id, int)
Definition: ControllerClient.h:213
virtual void plot_point(uint64_t, uint64_t, const std::string &, double, double, mc_rtc::gui::Color, mc_rtc::gui::plot::Style, mc_rtc::gui::plot::Side)
Definition: ControllerClient.h:821
mc_rtc::Configuration data_
Definition: ControllerClient.h:889
virtual void form_integer_input(const ElementId &formId, const std::string &name, bool required, int default_, bool)
Definition: ControllerClient.h:475
virtual void array_input(const ElementId &id, const std::vector< std::string > &, const Eigen::VectorXd &)
Definition: ControllerClient.h:222
virtual void end_form_generic_array_input()
Definition: ControllerClient.h:720
virtual void label(const ElementId &id, const std::string &)
Definition: ControllerClient.h:191
void connect(const std::string &sub_conn_uri, const std::string &push_conn_uri)
virtual void point3d(const ElementId &id, const ElementId &, bool, const Eigen::Vector3d &, const mc_rtc::gui::PointConfig &)
Definition: ControllerClient.h:246
virtual void polygon(const ElementId &id, const std::vector< std::vector< Eigen::Vector3d >> &, const mc_rtc::gui::Color &)
Definition: ControllerClient.h:300
virtual void end_form_one_of_input()
Definition: ControllerClient.h:744
virtual void form_string_input(const ElementId &formId, const std::string &name, bool required, const std::string &default_, bool)
Definition: ControllerClient.h:513
virtual void form_integer_input(const ElementId &, const std::string &, bool, int)
Definition: ControllerClient.h:467
std::thread sub_th_
Definition: ControllerClient.h:884
void send_request(const ElementId &id)
virtual void form_combo_input(const ElementId &, const std::string &, bool, const std::vector< std::string > &, bool)
Definition: ControllerClient.h:558
virtual void plot_setup_yaxis_right(uint64_t, const std::string &, const mc_rtc::gui::plot::Range &)
Definition: ControllerClient.h:797
virtual void form_string_input(const ElementId &, const std::string &, bool, const std::string &)
Definition: ControllerClient.h:505
void reconnect(const std::string &sub_conn_uri, const std::string &push_conn_uri)
virtual void form_array_input(const ElementId &formId, const std::string &name, bool required, const std::vector< std::string > &, const Eigen::VectorXd &default_, bool fixed_size, bool default_from_user)
Definition: ControllerClient.h:545
virtual void form_array_input(const ElementId &formId, const std::string &name, bool required, const Eigen::VectorXd &default_, bool fixed_size, bool)
Definition: ControllerClient.h:536
virtual void button(const ElementId &id)
Definition: ControllerClient.h:204
virtual void form_combo_input(const ElementId &formId, const std::string &name, bool required, const std::vector< std::string > &values, bool send_index, int)
Definition: ControllerClient.h:579
void run(const char *buffer, size_t bufferSize)
virtual void form_array_input(const ElementId &, const std::string &, bool, const Eigen::VectorXd &, bool)
Definition: ControllerClient.h:524
virtual void schema(const ElementId &id, const std::string &)
Definition: ControllerClient.h:439
virtual void number_slider(const ElementId &id, double, double, double)
Definition: ControllerClient.h:218
virtual void end_plot(uint64_t)
Definition: ControllerClient.h:879
void raw_request(const ElementId &id, std::string &out)
virtual void trajectory(const ElementId &id, const Eigen::Vector3d &, const mc_rtc::gui::LineConfig &)
Definition: ControllerClient.h:275
void send_request(const ElementId &id, const mc_rtc::Configuration &data)
virtual void transform(const ElementId &id, const ElementId &, bool, const sva::PTransformd &)
Definition: ControllerClient.h:389
virtual void form_checkbox(const ElementId &, const std::string &, bool, bool)
Definition: ControllerClient.h:448
virtual void trajectory(const ElementId &id, const std::vector< Eigen::Vector3d > &, const mc_rtc::gui::LineConfig &)
Definition: ControllerClient.h:257
virtual void robot(const ElementId &id, const std::vector< std::string > &, const std::vector< std::vector< double >> &, const sva::PTransformd &)
Definition: ControllerClient.h:420
virtual void form_number_input(const ElementId &, const std::string &, bool, double)
Definition: ControllerClient.h:486
virtual void plot_setup_xaxis(uint64_t, const std::string &, const mc_rtc::gui::plot::Range &)
Definition: ControllerClient.h:767
void raw_request(const ElementId &id, const mc_rtc::Configuration &data, std::string &out)
void connect(ControllerServer &server, mc_rtc::gui::StateBuilder &gui)
virtual void table_end(const ElementId &)
Definition: ControllerClient.h:416
virtual void form_rotation_input(const ElementId &, const std::string &, bool, const sva::PTransformd &, bool, bool)
Definition: ControllerClient.h:650
Definition: ControllerServer.h:26
Definition: ControllerClient.h:23
ElementId(const std::vector< std::string > &category, const std::string &name)
Definition: ControllerClient.h:35
ElementId(const std::vector< std::string > &category, const std::string &name, int sid)
Definition: ControllerClient.h:30
ElementId & operator=(ElementId &&)=default
ElementId(ElementId &&)=default
ElementId & operator=(const ElementId &)=default
ElementId(const ElementId &)=default
Simplify access to values hold within a JSON file.
Definition: Configuration.h:166
void add(const std::string &key, bool value)
Add a bool element to the Configuration.
Color color
Definition: types.h:138
Definition: StateBuilder.h:28