mc_rtc  2.16.0
ControllerClient.h
Go to the documentation of this file.
1 /*
2  * Copyright 2015-2020 CNRS-UM LIRMM, CNRS-AIST JRL
3  */
4 
5 #pragma once
6 
9 
10 #include <mc_rtc/Configuration.h>
11 #include <mc_rtc/gui/plot/types.h>
12 #include <mc_rtc/gui/types.h>
13 
14 #include <string>
15 #include <thread>
16 #include <vector>
17 
18 namespace mc_control
19 {
20 
23 {
24  ElementId() = default;
25  ElementId(const ElementId &) = default;
26  ElementId(ElementId &&) = default;
27  ElementId & operator=(const ElementId &) = default;
28  ElementId & operator=(ElementId &&) = default;
29 
30  ElementId(const std::vector<std::string> & category, const std::string & name, int sid)
31  : category(category), name(name), sid(sid)
32  {
33  }
34 
35  ElementId(const std::vector<std::string> & category, const std::string & name) : ElementId(category, name, -1) {}
36 
38  std::vector<std::string> category = {};
40  std::string name = {};
42  int sid = -1;
43 };
44 
52 {
53 
59 
72  ControllerClient(const std::string & sub_conn_uri, const std::string & push_conn_uri, double timeout = 0);
73 
82 
85 
87 
89  void connect(const std::string & sub_conn_uri, const std::string & push_conn_uri);
90 
93 
95  void send_request(const ElementId & id, const mc_rtc::Configuration & data);
96 
98  template<typename T>
99  void send_request(const ElementId & id, const T & data)
100  {
102  c.add("data", data);
103  send_request(id, c("data"));
104  }
105 
107  void send_request(const ElementId & id);
108 
113  void raw_request(const ElementId & id, const mc_rtc::Configuration & data, std::string & out);
114 
116  template<typename T>
117  void raw_request(const ElementId & id, const T & data, std::string & out)
118  {
120  c.add("data", data);
121  raw_request(id, c("data"), out);
122  }
123 
125  void raw_request(const ElementId & id, std::string & out);
126 
128  void timeout(double t);
129 
131  double timeout();
132 
146  void run(std::vector<char> & buffer, std::chrono::system_clock::time_point & t_last_received);
147 
154  void run(const char * buffer, size_t bufferSize);
155 
156 protected:
158  void start();
159 
168  void reconnect(const std::string & sub_conn_uri, const std::string & push_conn_uri);
169 
171  void stop();
172 
174 
175  void handle_category(const std::vector<std::string> & parent,
176  const std::string & category,
177  const mc_rtc::Configuration & data);
178 
179  void handle_widget(const ElementId & id, const mc_rtc::Configuration & data);
180 
182  virtual void started() {}
183 
185  virtual void stopped() {}
186 
188  virtual void category(const std::vector<std::string> & parent, const std::string & category) {};
189 
191  inline virtual void label(const ElementId & id, const std::string &) { default_impl("Label", id); }
192 
200  inline virtual void array_label(const ElementId & id, const std::vector<std::string> &, const Eigen::VectorXd &)
201  { default_impl("ArrayLabel", id); }
202 
204  virtual void button(const ElementId & id) { default_impl("Button", id); }
205 
207  virtual void checkbox(const ElementId & id, bool /*state */) { default_impl("Checkbox", id); }
208 
210  virtual void string_input(const ElementId & id, const std::string & /*data*/) { default_impl("StringInput", id); }
211 
213  virtual void integer_input(const ElementId & id, int /*data*/) { default_impl("IntegerInput", id); }
214 
216  virtual void number_input(const ElementId & id, double /*data*/) { default_impl("NumberInput", id); }
217 
218  virtual void number_slider(const ElementId & id, double /*data*/, double /*min*/, double /*max*/)
219  { default_impl("NumberSlider", id); }
220 
222  virtual void array_input(const ElementId & id,
223  const std::vector<std::string> & /*labels*/,
224  const Eigen::VectorXd & /*data*/)
225  { default_impl("ArrayInput", id); }
226 
228  virtual void combo_input(const ElementId & id,
229  const std::vector<std::string> & /*values*/,
230  const std::string & /*data*/)
231  { default_impl("ComboInput", id); }
232 
235  virtual void data_combo_input(const ElementId & id,
236  const std::vector<std::string> & /*data_ref*/,
237  const std::string & /*data*/)
238  { default_impl("DataComboInput", id); }
239 
246  virtual void point3d(const ElementId & id,
247  const ElementId & /*requestId*/,
248  bool /*ro */,
249  const Eigen::Vector3d & /*pos*/,
250  const mc_rtc::gui::PointConfig & /* config */)
251  { default_impl("Point3D", id); }
252 
257  virtual void trajectory(const ElementId & id,
258  const std::vector<Eigen::Vector3d> & /* points */,
259  const mc_rtc::gui::LineConfig & /* config */)
260  { default_impl("Point3DTrajectory", id); }
261 
266  virtual void trajectory(const ElementId & id,
267  const std::vector<sva::PTransformd> & /* points */,
268  const mc_rtc::gui::LineConfig & /* config */)
269  { default_impl("PoseTrajectory", id); }
270 
275  virtual void trajectory(const ElementId & id,
276  const Eigen::Vector3d & /* point */,
277  const mc_rtc::gui::LineConfig & /* config */)
278  { default_impl("Point3DRealTimeTrajectory", id); }
279 
284  virtual void trajectory(const ElementId & id,
285  const sva::PTransformd & /* point */,
286  const mc_rtc::gui::LineConfig & /* config */)
287  { default_impl("PoseRealTimeTrajectory", id); }
288 
300  virtual void polygon(const ElementId & id,
301  const std::vector<std::vector<Eigen::Vector3d>> & /* points */,
302  const mc_rtc::gui::Color & /* color */)
303  { default_impl("PolygonArray", id); }
304 
315  virtual void polygon(const ElementId & id,
316  const std::vector<std::vector<Eigen::Vector3d>> & points,
317  const mc_rtc::gui::LineConfig & config)
318  { polygon(id, points, config.color); }
319 
330  virtual void polyhedron(const ElementId & id,
331  const std::vector<std::array<Eigen::Vector3d, 3>> & triangles,
332  const std::vector<std::array<mc_rtc::gui::Color, 3>> & colors,
333  const mc_rtc::gui::PolyhedronConfig & config);
334 
345  virtual void polyhedron(const ElementId & id,
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,
349  const mc_rtc::gui::PolyhedronConfig & config);
350 
353  virtual void force(const ElementId & id,
354  const ElementId & /*requestId*/,
355  const sva::ForceVecd & /* force */,
356  const sva::PTransformd & /* application point for the force */,
357  const mc_rtc::gui::ForceConfig & /* forceConfig */,
358  bool /* ro */)
359  { default_impl("Force", id); }
360 
363  virtual void arrow(const ElementId & id,
364  const ElementId & /* requestId */,
365  const Eigen::Vector3d & /* start */,
366  const Eigen::Vector3d & /* end */,
367  const mc_rtc::gui::ArrowConfig & /* config */,
368  bool /* ro */)
369  { default_impl("Arrow", id); }
370 
377  virtual void rotation(const ElementId & id,
378  const ElementId & /*requestId*/,
379  bool /*ro */,
380  const sva::PTransformd & /*pos*/)
381  { default_impl("Rotation", id); }
382 
389  virtual void transform(const ElementId & id,
390  const ElementId & /*requestId*/,
391  bool /*ro */,
392  const sva::PTransformd & /*pos*/)
393  { default_impl("Transform", id); }
394 
401  virtual void xytheta(const ElementId & id,
402  const ElementId & /*requestId*/,
403  bool /*ro */,
404  const Eigen::Vector3d & /*xytheta*/,
405  double /* altitude */)
406  { default_impl("XYTheta", id); }
407 
409  virtual void table_start(const ElementId & id, const std::vector<std::string> & /*header*/)
410  { default_impl("Table", id); }
411 
413  virtual void table_row(const ElementId & /*id*/, const std::vector<std::string> & /*data*/) {}
414 
416  virtual void table_end(const ElementId & /*id*/) {}
417 
420  virtual void robot(const ElementId & id,
421  const std::vector<std::string> & /*parameters*/,
422  const std::vector<std::vector<double>> & /*q*/,
423  const sva::PTransformd & /*posW*/)
424  { default_impl("Robot", id); }
425 
426  virtual void robot_msg(const ElementId & id, const mc_rtc::gui::RobotMsgData & /*msg*/)
427  { default_impl("RobotMsg", id); }
428 
430  virtual void visual(const ElementId & id,
431  [[maybe_unused]] const rbd::parsers::Visual & visual,
432  [[maybe_unused]] const sva::PTransformd & pose)
433  { default_impl("Visual", id); }
434 
439  virtual void schema(const ElementId & id, const std::string & /*schema*/) { default_impl("Schema", id); }
440 
442  virtual void form(const ElementId & id) { default_impl("Form", id); }
443 
448  virtual void form_checkbox(const ElementId & /*formId*/,
449  const std::string & /*name*/,
450  bool /*required*/,
451  bool /*default*/)
452  {
453  }
454 
456  virtual void form_checkbox(const ElementId & formId,
457  const std::string & name,
458  bool required,
459  bool default_,
460  bool /*default_from_user*/)
461  { form_checkbox(formId, name, required, default_); }
462 
467  virtual void form_integer_input(const ElementId & /*formId*/,
468  const std::string & /*name*/,
469  bool /*required*/,
470  int /*default*/)
471  {
472  }
473 
475  virtual void form_integer_input(const ElementId & formId,
476  const std::string & name,
477  bool required,
478  int default_,
479  bool /*default_from_user*/)
480  { form_integer_input(formId, name, required, default_); }
481 
486  virtual void form_number_input(const ElementId & /*formId*/,
487  const std::string & /*name*/,
488  bool /*required*/,
489  double /*default*/)
490  {
491  }
492 
494  virtual void form_number_input(const ElementId & formId,
495  const std::string & name,
496  bool required,
497  double default_,
498  bool /*default_from_user*/)
499  { form_number_input(formId, name, required, default_); }
500 
505  virtual void form_string_input(const ElementId & /*formId*/,
506  const std::string & /*name*/,
507  bool /*required*/,
508  const std::string & /*default*/)
509  {
510  }
511 
513  virtual void form_string_input(const ElementId & formId,
514  const std::string & name,
515  bool required,
516  const std::string & default_,
517  bool /*default_from_user*/)
518  { form_string_input(formId, name, required, default_); }
519 
524  virtual void form_array_input(const ElementId & /*formId*/,
525  const std::string & /*name*/,
526  bool /*required*/,
527  const Eigen::VectorXd & /*default*/,
528  bool /*fixed_size*/)
529  {
530  }
531 
536  virtual void form_array_input(const ElementId & formId,
537  const std::string & name,
538  bool required,
539  const Eigen::VectorXd & default_,
540  bool fixed_size,
541  bool /*default_from_user*/)
542  { form_array_input(formId, name, required, default_, fixed_size); }
543 
545  virtual void form_array_input(const ElementId & formId,
546  const std::string & name,
547  bool required,
548  const std::vector<std::string> & /*labels*/,
549  const Eigen::VectorXd & default_,
550  bool fixed_size,
551  bool default_from_user)
552  { form_array_input(formId, name, required, default_, fixed_size, default_from_user); }
553 
558  virtual void form_combo_input(const ElementId & /*formId*/,
559  const std::string & /*name*/,
560  bool /*required*/,
561  const std::vector<std::string> & /*values*/,
562  bool /*send_index*/)
563  {
564  }
565 
579  virtual void form_combo_input(const ElementId & formId,
580  const std::string & name,
581  bool required,
582  const std::vector<std::string> & values,
583  bool send_index,
584  int /*def*/)
585  { form_combo_input(formId, name, required, values, send_index); }
586 
602  virtual void form_data_combo_input(const ElementId & /*formId*/,
603  const std::string & /*name*/,
604  bool /*required*/,
605  const std::vector<std::string> & /*ref*/,
606  bool /*send_index*/)
607  {
608  }
609 
624  virtual void form_point3d_input(const ElementId & /*formId*/,
625  const std::string & /*name*/,
626  bool /*required*/,
627  const Eigen::Vector3d & /*default_*/,
628  bool /*default_from_user*/,
629  bool /*interactive*/)
630  {
631  }
632 
650  virtual void form_rotation_input(const ElementId & /*formId*/,
651  const std::string & /*name*/,
652  bool /*required*/,
653  const sva::PTransformd & /*default_*/,
654  bool /*default_from_user*/,
655  bool /*interactive*/)
656  {
657  }
658 
673  virtual void form_transform_input(const ElementId & /*formId*/,
674  const std::string & /*name*/,
675  bool /*required*/,
676  const sva::PTransformd & /*default_*/,
677  bool /*default_from_user*/,
678  bool /*interactive*/)
679  {
680  }
681 
690  virtual void start_form_object_input(const std::string & /*name*/, bool /*required*/) {}
691 
697  virtual void end_form_object_input() {}
698 
709  virtual void start_form_generic_array_input(const std::string & /*name*/,
710  bool /*required*/,
711  std::optional<std::vector<Configuration>> /*data*/)
712  {
713  }
714 
721 
733  virtual void start_form_one_of_input(const std::string & /*name*/,
734  bool /*required*/,
735  const std::optional<std::pair<size_t, Configuration>> & /*data*/)
736  {
737  }
738 
744  virtual void end_form_one_of_input() {}
745 
756  virtual void start_plot(uint64_t /*id*/, const std::string & /*title*/) {}
757 
767  virtual void plot_setup_xaxis(uint64_t /*id*/,
768  const std::string & /*legend*/,
769  const mc_rtc::gui::plot::Range & /*range*/)
770  {
771  }
772 
782  virtual void plot_setup_yaxis_left(uint64_t /*id*/,
783  const std::string & /*legend*/,
784  const mc_rtc::gui::plot::Range & /*range*/)
785  {
786  }
787 
797  virtual void plot_setup_yaxis_right(uint64_t /*id*/,
798  const std::string & /*legend*/,
799  const mc_rtc::gui::plot::Range & /*range*/)
800  {
801  }
802 
821  virtual void plot_point(uint64_t /* id */,
822  uint64_t /* did */,
823  const std::string & /*legend*/,
824  double /*x*/,
825  double /*y*/,
826  mc_rtc::gui::Color /*color*/,
827  mc_rtc::gui::plot::Style /*style*/,
828  mc_rtc::gui::plot::Side /*side*/)
829  {
830  }
831 
845  virtual void plot_polygon(uint64_t /*id*/,
846  uint64_t /* did */,
847  const std::string & /*legend*/,
848  const mc_rtc::gui::plot::PolygonDescription & /*polygon*/,
849  mc_rtc::gui::plot::Side /*side*/)
850  {
851  }
852 
866  virtual void plot_polygons(uint64_t /*id*/,
867  uint64_t /* did */,
868  const std::string & /*legend*/,
869  const std::vector<mc_rtc::gui::plot::PolygonDescription> & /*polygons*/,
870  mc_rtc::gui::plot::Side /*side*/)
871  {
872  }
873 
879  virtual void end_plot(uint64_t /*id*/) {}
880 
881  /* Network elements */
882  bool run_ = true;
883  int sub_socket_ = -1;
884  std::thread sub_th_;
885  int push_socket_ = -1;
886  double timeout_;
887 
888  /* Hold data from the server */
890 
891  /* Pointer to the server if connected in-memory */
892  ControllerServer * server_ = nullptr;
893  /* Pointer to the GUI if connected in-memory */
894  mc_rtc::gui::StateBuilder * gui_ = nullptr;
895 
896 private:
898  virtual void default_impl(const std::string & type, const ElementId & id);
899 
901  void handle_point3d(const ElementId & id, const mc_rtc::Configuration & data);
902 
904  void handle_trajectory(const ElementId & id, const mc_rtc::Configuration & data);
905 
907  void handle_polygon(const ElementId & id, const mc_rtc::Configuration & data);
908 
910  void handle_polyhedron_triangles_list(const ElementId & id, const mc_rtc::Configuration & data_);
911 
913  void handle_polyhedron_vertices_triangles(const ElementId & id, const mc_rtc::Configuration & data_);
914 
916  void handle_force(const ElementId & id, const mc_rtc::Configuration & data);
917 
919  void handle_arrow(const ElementId & id, const mc_rtc::Configuration & data);
920 
922  void handle_rotation(const ElementId & id, const mc_rtc::Configuration & data);
923 
925  void handle_transform(const ElementId & id, const mc_rtc::Configuration & data);
926 
928  void handle_xytheta(const ElementId & id, const mc_rtc::Configuration & data);
929 
931  void handle_form(const ElementId & id, const mc_rtc::Configuration & data);
932 
934  void handle_plot(const mc_rtc::Configuration & plot);
935 
937  void handle_standard_plot(const mc_rtc::Configuration & plot);
938 
940  void handle_xy_plot(const mc_rtc::Configuration & plot);
941 
943  void handle_table(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);
947 
950  bool default_polyhedron_triangles_list_ = false;
951  bool default_polyhedron_vertices_triangles_ = false;
952 };
953 
954 } // namespace mc_control
#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.
Definition: types.h:207
Definition: types.h:20
Definition: types.h:288
Definition: types.h:137
Color color
Definition: types.h:138
Definition: types.h:343
Definition: types.h:400
Definition: types.h:483
Definition: StateBuilder.h:28
Definition: types.h:70