From 6d3307f1f3cc32149824fe1c95f722dc8acf8d2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20DI=20MERCURIO?= Date: Thu, 11 Apr 2019 13:03:05 +0200 Subject: [PATCH] merge de la branche dev du repertoire software/monitor/monitor --- software/monitor/monitor/.gitignore | 4 - software/monitor/monitor/MonitorUI.cs | 180 +- .../monitor/docs/html/_client_8cs.html | 116 ++ .../monitor/docs/html/_client_8cs_source.html | 120 ++ .../docs/html/_command_manager_8cs.html | 116 ++ .../html/_command_manager_8cs_source.html | 124 ++ .../html/_destijl_command_manager_8cs.html | 122 ++ .../_destijl_command_manager_8cs_source.html | 167 ++ .../monitor/docs/html/_monitor_u_i_8cs.html | 110 ++ .../docs/html/_monitor_u_i_8cs_source.html | 151 ++ .../monitor/docs/html/_program_8cs.html | 115 ++ .../docs/html/_program_8cs_source.html | 105 ++ .../monitor/monitor/docs/html/annotated.html | 110 ++ .../monitor/docs/html/annotated_dup.js | 5 + software/monitor/monitor/docs/html/bc_s.png | Bin 0 -> 676 bytes software/monitor/monitor/docs/html/bdwn.png | Bin 0 -> 147 bytes .../docs/html/class_main_window-members.html | 123 ++ .../monitor/docs/html/class_main_window.html | 1085 +++++++++++ .../monitor/docs/html/class_main_window.js | 29 + .../html/class_main_window__coll__graph.map | 4 + .../html/class_main_window__coll__graph.md5 | 1 + .../html/class_main_window__coll__graph.png | Bin 0 -> 17454 bytes .../class_main_window__inherit__graph.map | 2 + .../class_main_window__inherit__graph.md5 | 1 + .../class_main_window__inherit__graph.png | Bin 0 -> 3333 bytes .../monitor/monitor/docs/html/classes.html | 111 ++ .../html/classmonitor_1_1_client-members.html | 119 ++ .../docs/html/classmonitor_1_1_client.html | 697 +++++++ .../docs/html/classmonitor_1_1_client.js | 21 + ...ssmonitor_1_1_command_manager-members.html | 117 ++ .../classmonitor_1_1_command_manager.html | 683 +++++++ .../html/classmonitor_1_1_command_manager.js | 23 + ...nitor_1_1_command_manager__coll__graph.map | 2 + ...nitor_1_1_command_manager__coll__graph.md5 | 1 + ...nitor_1_1_command_manager__coll__graph.png | Bin 0 -> 4708 bytes ...itor_1_1_destijl_command_list-members.html | 121 ++ ...classmonitor_1_1_destijl_command_list.html | 477 +++++ .../classmonitor_1_1_destijl_command_list.js | 23 + ...r_1_1_destijl_command_manager-members.html | 134 ++ ...ssmonitor_1_1_destijl_command_manager.html | 1140 ++++++++++++ ...lassmonitor_1_1_destijl_command_manager.js | 43 + ...1_destijl_command_manager__coll__graph.map | 3 + ...1_destijl_command_manager__coll__graph.md5 | 1 + ...1_destijl_command_manager__coll__graph.png | Bin 0 -> 9284 bytes .../classmonitor_1_1_main_class-members.html | 102 ++ .../html/classmonitor_1_1_main_class.html | 143 ++ .../docs/html/classmonitor_1_1_main_class.js | 4 + ...onitor_1_1_robot_command_list-members.html | 111 ++ .../classmonitor_1_1_robot_command_list.html | 297 +++ .../classmonitor_1_1_robot_command_list.js | 13 + software/monitor/monitor/docs/html/closed.png | Bin 0 -> 132 bytes software/monitor/monitor/docs/html/doc.png | Bin 0 -> 746 bytes .../monitor/monitor/docs/html/doxygen.css | 1596 +++++++++++++++++ .../monitor/monitor/docs/html/doxygen.png | Bin 0 -> 3779 bytes .../monitor/monitor/docs/html/dynsections.js | 104 ++ software/monitor/monitor/docs/html/files.html | 107 ++ software/monitor/monitor/docs/html/files.js | 20 + .../monitor/docs/html/folderclosed.png | Bin 0 -> 616 bytes .../monitor/monitor/docs/html/folderopen.png | Bin 0 -> 597 bytes .../monitor/monitor/docs/html/functions.html | 477 +++++ .../monitor/docs/html/functions_enum.html | 105 ++ .../monitor/docs/html/functions_func.html | 291 +++ .../monitor/docs/html/functions_vars.html | 311 ++++ .../monitor/docs/html/graph_legend.html | 127 ++ .../monitor/docs/html/graph_legend.md5 | 1 + .../monitor/docs/html/graph_legend.png | Bin 0 -> 19465 bytes .../monitor/monitor/docs/html/hierarchy.html | 112 ++ .../monitor/monitor/docs/html/hierarchy.js | 12 + software/monitor/monitor/docs/html/index.html | 98 + .../monitor/docs/html/inherit_graph_0.map | 3 + .../monitor/docs/html/inherit_graph_0.md5 | 1 + .../monitor/docs/html/inherit_graph_0.png | Bin 0 -> 2485 bytes .../monitor/docs/html/inherit_graph_1.map | 3 + .../monitor/docs/html/inherit_graph_1.md5 | 1 + .../monitor/docs/html/inherit_graph_1.png | Bin 0 -> 1087 bytes .../monitor/docs/html/inherit_graph_2.map | 3 + .../monitor/docs/html/inherit_graph_2.md5 | 1 + .../monitor/docs/html/inherit_graph_2.png | Bin 0 -> 1843 bytes .../monitor/docs/html/inherit_graph_3.map | 3 + .../monitor/docs/html/inherit_graph_3.md5 | 1 + .../monitor/docs/html/inherit_graph_3.png | Bin 0 -> 1823 bytes .../monitor/docs/html/inherit_graph_4.map | 3 + .../monitor/docs/html/inherit_graph_4.md5 | 1 + .../monitor/docs/html/inherit_graph_4.png | Bin 0 -> 2404 bytes .../monitor/docs/html/inherit_graph_5.map | 3 + .../monitor/docs/html/inherit_graph_5.md5 | 1 + .../monitor/docs/html/inherit_graph_5.png | Bin 0 -> 1466 bytes .../monitor/docs/html/inherit_graph_6.map | 3 + .../monitor/docs/html/inherit_graph_6.md5 | 1 + .../monitor/docs/html/inherit_graph_6.png | Bin 0 -> 1721 bytes .../monitor/monitor/docs/html/inherits.html | 137 ++ software/monitor/monitor/docs/html/jquery.js | 87 + software/monitor/monitor/docs/html/menu.js | 26 + .../monitor/monitor/docs/html/menudata.js | 51 + .../monitor/docs/html/namespacemonitor.html | 122 ++ .../monitor/docs/html/namespacemonitor.js | 9 + .../monitor/monitor/docs/html/namespaces.html | 103 ++ .../monitor/monitor/docs/html/namespaces.js | 4 + software/monitor/monitor/docs/html/nav_f.png | Bin 0 -> 153 bytes software/monitor/monitor/docs/html/nav_g.png | Bin 0 -> 95 bytes software/monitor/monitor/docs/html/nav_h.png | Bin 0 -> 98 bytes .../monitor/monitor/docs/html/navtree.css | 146 ++ software/monitor/monitor/docs/html/navtree.js | 517 ++++++ .../monitor/monitor/docs/html/navtreedata.js | 30 + .../monitor/docs/html/navtreeindex0.js | 165 ++ software/monitor/monitor/docs/html/open.png | Bin 0 -> 123 bytes software/monitor/monitor/docs/html/resize.js | 114 ++ .../monitor/monitor/docs/html/robot-icon.png | Bin 0 -> 12144 bytes .../monitor/docs/html/robot-icon.resized.png | Bin 0 -> 913 bytes .../monitor/docs/html/search/all_0.html | 26 + .../monitor/monitor/docs/html/search/all_0.js | 5 + .../monitor/docs/html/search/all_1.html | 26 + .../monitor/monitor/docs/html/search/all_1.js | 7 + .../monitor/docs/html/search/all_2.html | 26 + .../monitor/monitor/docs/html/search/all_2.js | 23 + .../monitor/docs/html/search/all_3.html | 26 + .../monitor/monitor/docs/html/search/all_3.js | 20 + .../monitor/docs/html/search/all_4.html | 26 + .../monitor/monitor/docs/html/search/all_4.js | 14 + .../monitor/docs/html/search/all_5.html | 26 + .../monitor/monitor/docs/html/search/all_5.js | 6 + .../monitor/docs/html/search/all_6.html | 26 + .../monitor/monitor/docs/html/search/all_6.js | 11 + .../monitor/docs/html/search/all_7.html | 26 + .../monitor/monitor/docs/html/search/all_7.js | 5 + .../monitor/docs/html/search/all_8.html | 26 + .../monitor/monitor/docs/html/search/all_8.js | 19 + .../monitor/docs/html/search/all_9.html | 26 + .../monitor/monitor/docs/html/search/all_9.js | 5 + .../monitor/docs/html/search/all_a.html | 26 + .../monitor/monitor/docs/html/search/all_a.js | 23 + .../monitor/docs/html/search/all_b.html | 26 + .../monitor/monitor/docs/html/search/all_b.js | 8 + .../monitor/docs/html/search/all_c.html | 26 + .../monitor/monitor/docs/html/search/all_c.js | 4 + .../monitor/docs/html/search/all_d.html | 26 + .../monitor/monitor/docs/html/search/all_d.js | 7 + .../monitor/docs/html/search/all_e.html | 26 + .../monitor/monitor/docs/html/search/all_e.js | 5 + .../monitor/docs/html/search/classes_0.html | 26 + .../monitor/docs/html/search/classes_0.js | 5 + .../monitor/docs/html/search/classes_1.html | 26 + .../monitor/docs/html/search/classes_1.js | 5 + .../monitor/docs/html/search/classes_2.html | 26 + .../monitor/docs/html/search/classes_2.js | 5 + .../monitor/docs/html/search/classes_3.html | 26 + .../monitor/docs/html/search/classes_3.js | 4 + .../monitor/docs/html/search/close.png | Bin 0 -> 273 bytes .../monitor/docs/html/search/enums_0.html | 26 + .../monitor/docs/html/search/enums_0.js | 5 + .../monitor/docs/html/search/enums_1.html | 26 + .../monitor/docs/html/search/enums_1.js | 4 + .../docs/html/search/enumvalues_0.html | 26 + .../monitor/docs/html/search/enumvalues_0.js | 4 + .../docs/html/search/enumvalues_1.html | 26 + .../monitor/docs/html/search/enumvalues_1.js | 4 + .../docs/html/search/enumvalues_2.html | 26 + .../monitor/docs/html/search/enumvalues_2.js | 5 + .../docs/html/search/enumvalues_3.html | 26 + .../monitor/docs/html/search/enumvalues_3.js | 4 + .../docs/html/search/enumvalues_4.html | 26 + .../monitor/docs/html/search/enumvalues_4.js | 4 + .../docs/html/search/enumvalues_5.html | 26 + .../monitor/docs/html/search/enumvalues_5.js | 5 + .../docs/html/search/enumvalues_6.html | 26 + .../monitor/docs/html/search/enumvalues_6.js | 5 + .../docs/html/search/enumvalues_7.html | 26 + .../monitor/docs/html/search/enumvalues_7.js | 4 + .../monitor/docs/html/search/files_0.html | 26 + .../monitor/docs/html/search/files_0.js | 5 + .../monitor/docs/html/search/files_1.html | 26 + .../monitor/docs/html/search/files_1.js | 4 + .../monitor/docs/html/search/files_2.html | 26 + .../monitor/docs/html/search/files_2.js | 4 + .../monitor/docs/html/search/files_3.html | 26 + .../monitor/docs/html/search/files_3.js | 4 + .../monitor/docs/html/search/functions_0.html | 26 + .../monitor/docs/html/search/functions_0.js | 4 + .../monitor/docs/html/search/functions_1.html | 26 + .../monitor/docs/html/search/functions_1.js | 15 + .../monitor/docs/html/search/functions_2.html | 26 + .../monitor/docs/html/search/functions_2.js | 6 + .../monitor/docs/html/search/functions_3.html | 26 + .../monitor/docs/html/search/functions_3.js | 6 + .../monitor/docs/html/search/functions_4.html | 26 + .../monitor/docs/html/search/functions_4.js | 19 + .../monitor/docs/html/search/functions_5.html | 26 + .../monitor/docs/html/search/functions_5.js | 16 + .../monitor/docs/html/search/functions_6.html | 26 + .../monitor/docs/html/search/functions_6.js | 4 + .../monitor/docs/html/search/functions_7.html | 26 + .../monitor/docs/html/search/functions_7.js | 4 + .../monitor/docs/html/search/functions_8.html | 26 + .../monitor/docs/html/search/functions_8.js | 5 + .../monitor/docs/html/search/mag_sel.png | Bin 0 -> 563 bytes .../docs/html/search/namespaces_0.html | 26 + .../monitor/docs/html/search/namespaces_0.js | 4 + .../monitor/docs/html/search/nomatches.html | 12 + .../monitor/docs/html/search/search.css | 271 +++ .../monitor/docs/html/search/search.js | 791 ++++++++ .../monitor/docs/html/search/search_l.png | Bin 0 -> 604 bytes .../monitor/docs/html/search/search_m.png | Bin 0 -> 158 bytes .../monitor/docs/html/search/search_r.png | Bin 0 -> 612 bytes .../monitor/docs/html/search/searchdata.js | 36 + .../monitor/docs/html/search/variables_0.html | 26 + .../monitor/docs/html/search/variables_0.js | 6 + .../monitor/docs/html/search/variables_1.html | 26 + .../monitor/docs/html/search/variables_1.js | 7 + .../monitor/docs/html/search/variables_2.html | 26 + .../monitor/docs/html/search/variables_2.js | 15 + .../monitor/docs/html/search/variables_3.html | 26 + .../monitor/docs/html/search/variables_3.js | 14 + .../monitor/docs/html/search/variables_4.html | 26 + .../monitor/docs/html/search/variables_4.js | 5 + .../monitor/docs/html/search/variables_5.html | 26 + .../monitor/docs/html/search/variables_5.js | 5 + .../monitor/docs/html/search/variables_6.html | 26 + .../monitor/docs/html/search/variables_6.js | 4 + .../monitor/docs/html/search/variables_7.html | 26 + .../monitor/docs/html/search/variables_7.js | 4 + .../monitor/docs/html/search/variables_8.html | 26 + .../monitor/docs/html/search/variables_8.js | 17 + .../monitor/docs/html/search/variables_9.html | 26 + .../monitor/docs/html/search/variables_9.js | 5 + .../monitor/docs/html/search/variables_a.html | 26 + .../monitor/docs/html/search/variables_a.js | 4 + .../monitor/docs/html/search/variables_b.html | 26 + .../monitor/docs/html/search/variables_b.js | 6 + .../monitor/monitor/docs/html/splitbar.png | Bin 0 -> 314 bytes .../monitor/monitor/docs/html/sync_off.png | Bin 0 -> 853 bytes .../monitor/monitor/docs/html/sync_on.png | Bin 0 -> 845 bytes software/monitor/monitor/docs/html/tab_a.png | Bin 0 -> 142 bytes software/monitor/monitor/docs/html/tab_b.png | Bin 0 -> 169 bytes software/monitor/monitor/docs/html/tab_h.png | Bin 0 -> 177 bytes software/monitor/monitor/docs/html/tab_s.png | Bin 0 -> 184 bytes software/monitor/monitor/docs/html/tabs.css | 1 + software/monitor/monitor/docs/latex/Makefile | 21 + .../monitor/docs/latex/_client_8cs.tex | 12 + .../docs/latex/_command_manager_8cs.tex | 12 + .../latex/_destijl_command_manager_8cs.tex | 16 + .../monitor/docs/latex/_monitor_u_i_8cs.tex | 7 + .../monitor/docs/latex/_program_8cs.tex | 12 + .../monitor/monitor/docs/latex/annotated.tex | 10 + .../monitor/docs/latex/class_main_window.tex | 537 ++++++ .../latex/class_main_window__coll__graph.md5 | 1 + .../latex/class_main_window__coll__graph.pdf | Bin 0 -> 14842 bytes .../class_main_window__inherit__graph.md5 | 1 + .../class_main_window__inherit__graph.pdf | Bin 0 -> 11623 bytes .../docs/latex/classmonitor_1_1_client.tex | 347 ++++ .../classmonitor_1_1_command_manager.tex | 367 ++++ ...nitor_1_1_command_manager__coll__graph.md5 | 1 + ...nitor_1_1_command_manager__coll__graph.pdf | Bin 0 -> 13111 bytes .../classmonitor_1_1_destijl_command_list.tex | 267 +++ ...assmonitor_1_1_destijl_command_manager.tex | 730 ++++++++ ...1_destijl_command_manager__coll__graph.md5 | 1 + ...1_destijl_command_manager__coll__graph.pdf | Bin 0 -> 13712 bytes .../latex/classmonitor_1_1_main_class.tex | 32 + .../classmonitor_1_1_robot_command_list.tex | 147 ++ .../monitor/monitor/docs/latex/doxygen.sty | 503 ++++++ software/monitor/monitor/docs/latex/files.tex | 8 + .../monitor/monitor/docs/latex/hierarchy.tex | 12 + .../monitor/docs/latex/namespacemonitor.tex | 17 + .../monitor/monitor/docs/latex/namespaces.tex | 4 + .../monitor/monitor/docs/latex/refman.tex | 156 ++ .../monitor/monitor/docs/latex/robot-icon.png | Bin 0 -> 12144 bytes .../monitor/docs/latex/robot-icon.resized.png | Bin 0 -> 913 bytes .../monitor/monitor/gtk-gui/MainWindow.cs | 178 +- software/monitor/monitor/gtk-gui/gui.stetic | 15 +- software/monitor/monitor/monitor | Bin 114688 -> 114176 bytes 269 files changed, 18226 insertions(+), 222 deletions(-) create mode 100644 software/monitor/monitor/docs/html/_client_8cs.html create mode 100644 software/monitor/monitor/docs/html/_client_8cs_source.html create mode 100644 software/monitor/monitor/docs/html/_command_manager_8cs.html create mode 100644 software/monitor/monitor/docs/html/_command_manager_8cs_source.html create mode 100644 software/monitor/monitor/docs/html/_destijl_command_manager_8cs.html create mode 100644 software/monitor/monitor/docs/html/_destijl_command_manager_8cs_source.html create mode 100644 software/monitor/monitor/docs/html/_monitor_u_i_8cs.html create mode 100644 software/monitor/monitor/docs/html/_monitor_u_i_8cs_source.html create mode 100644 software/monitor/monitor/docs/html/_program_8cs.html create mode 100644 software/monitor/monitor/docs/html/_program_8cs_source.html create mode 100644 software/monitor/monitor/docs/html/annotated.html create mode 100644 software/monitor/monitor/docs/html/annotated_dup.js create mode 100644 software/monitor/monitor/docs/html/bc_s.png create mode 100644 software/monitor/monitor/docs/html/bdwn.png create mode 100644 software/monitor/monitor/docs/html/class_main_window-members.html create mode 100644 software/monitor/monitor/docs/html/class_main_window.html create mode 100644 software/monitor/monitor/docs/html/class_main_window.js create mode 100644 software/monitor/monitor/docs/html/class_main_window__coll__graph.map create mode 100644 software/monitor/monitor/docs/html/class_main_window__coll__graph.md5 create mode 100644 software/monitor/monitor/docs/html/class_main_window__coll__graph.png create mode 100644 software/monitor/monitor/docs/html/class_main_window__inherit__graph.map create mode 100644 software/monitor/monitor/docs/html/class_main_window__inherit__graph.md5 create mode 100644 software/monitor/monitor/docs/html/class_main_window__inherit__graph.png create mode 100644 software/monitor/monitor/docs/html/classes.html create mode 100644 software/monitor/monitor/docs/html/classmonitor_1_1_client-members.html create mode 100644 software/monitor/monitor/docs/html/classmonitor_1_1_client.html create mode 100644 software/monitor/monitor/docs/html/classmonitor_1_1_client.js create mode 100644 software/monitor/monitor/docs/html/classmonitor_1_1_command_manager-members.html create mode 100644 software/monitor/monitor/docs/html/classmonitor_1_1_command_manager.html create mode 100644 software/monitor/monitor/docs/html/classmonitor_1_1_command_manager.js create mode 100644 software/monitor/monitor/docs/html/classmonitor_1_1_command_manager__coll__graph.map create mode 100644 software/monitor/monitor/docs/html/classmonitor_1_1_command_manager__coll__graph.md5 create mode 100644 software/monitor/monitor/docs/html/classmonitor_1_1_command_manager__coll__graph.png create mode 100644 software/monitor/monitor/docs/html/classmonitor_1_1_destijl_command_list-members.html create mode 100644 software/monitor/monitor/docs/html/classmonitor_1_1_destijl_command_list.html create mode 100644 software/monitor/monitor/docs/html/classmonitor_1_1_destijl_command_list.js create mode 100644 software/monitor/monitor/docs/html/classmonitor_1_1_destijl_command_manager-members.html create mode 100644 software/monitor/monitor/docs/html/classmonitor_1_1_destijl_command_manager.html create mode 100644 software/monitor/monitor/docs/html/classmonitor_1_1_destijl_command_manager.js create mode 100644 software/monitor/monitor/docs/html/classmonitor_1_1_destijl_command_manager__coll__graph.map create mode 100644 software/monitor/monitor/docs/html/classmonitor_1_1_destijl_command_manager__coll__graph.md5 create mode 100644 software/monitor/monitor/docs/html/classmonitor_1_1_destijl_command_manager__coll__graph.png create mode 100644 software/monitor/monitor/docs/html/classmonitor_1_1_main_class-members.html create mode 100644 software/monitor/monitor/docs/html/classmonitor_1_1_main_class.html create mode 100644 software/monitor/monitor/docs/html/classmonitor_1_1_main_class.js create mode 100644 software/monitor/monitor/docs/html/classmonitor_1_1_robot_command_list-members.html create mode 100644 software/monitor/monitor/docs/html/classmonitor_1_1_robot_command_list.html create mode 100644 software/monitor/monitor/docs/html/classmonitor_1_1_robot_command_list.js create mode 100644 software/monitor/monitor/docs/html/closed.png create mode 100644 software/monitor/monitor/docs/html/doc.png create mode 100644 software/monitor/monitor/docs/html/doxygen.css create mode 100644 software/monitor/monitor/docs/html/doxygen.png create mode 100644 software/monitor/monitor/docs/html/dynsections.js create mode 100644 software/monitor/monitor/docs/html/files.html create mode 100644 software/monitor/monitor/docs/html/files.js create mode 100644 software/monitor/monitor/docs/html/folderclosed.png create mode 100644 software/monitor/monitor/docs/html/folderopen.png create mode 100644 software/monitor/monitor/docs/html/functions.html create mode 100644 software/monitor/monitor/docs/html/functions_enum.html create mode 100644 software/monitor/monitor/docs/html/functions_func.html create mode 100644 software/monitor/monitor/docs/html/functions_vars.html create mode 100644 software/monitor/monitor/docs/html/graph_legend.html create mode 100644 software/monitor/monitor/docs/html/graph_legend.md5 create mode 100644 software/monitor/monitor/docs/html/graph_legend.png create mode 100644 software/monitor/monitor/docs/html/hierarchy.html create mode 100644 software/monitor/monitor/docs/html/hierarchy.js create mode 100644 software/monitor/monitor/docs/html/index.html create mode 100644 software/monitor/monitor/docs/html/inherit_graph_0.map create mode 100644 software/monitor/monitor/docs/html/inherit_graph_0.md5 create mode 100644 software/monitor/monitor/docs/html/inherit_graph_0.png create mode 100644 software/monitor/monitor/docs/html/inherit_graph_1.map create mode 100644 software/monitor/monitor/docs/html/inherit_graph_1.md5 create mode 100644 software/monitor/monitor/docs/html/inherit_graph_1.png create mode 100644 software/monitor/monitor/docs/html/inherit_graph_2.map create mode 100644 software/monitor/monitor/docs/html/inherit_graph_2.md5 create mode 100644 software/monitor/monitor/docs/html/inherit_graph_2.png create mode 100644 software/monitor/monitor/docs/html/inherit_graph_3.map create mode 100644 software/monitor/monitor/docs/html/inherit_graph_3.md5 create mode 100644 software/monitor/monitor/docs/html/inherit_graph_3.png create mode 100644 software/monitor/monitor/docs/html/inherit_graph_4.map create mode 100644 software/monitor/monitor/docs/html/inherit_graph_4.md5 create mode 100644 software/monitor/monitor/docs/html/inherit_graph_4.png create mode 100644 software/monitor/monitor/docs/html/inherit_graph_5.map create mode 100644 software/monitor/monitor/docs/html/inherit_graph_5.md5 create mode 100644 software/monitor/monitor/docs/html/inherit_graph_5.png create mode 100644 software/monitor/monitor/docs/html/inherit_graph_6.map create mode 100644 software/monitor/monitor/docs/html/inherit_graph_6.md5 create mode 100644 software/monitor/monitor/docs/html/inherit_graph_6.png create mode 100644 software/monitor/monitor/docs/html/inherits.html create mode 100644 software/monitor/monitor/docs/html/jquery.js create mode 100644 software/monitor/monitor/docs/html/menu.js create mode 100644 software/monitor/monitor/docs/html/menudata.js create mode 100644 software/monitor/monitor/docs/html/namespacemonitor.html create mode 100644 software/monitor/monitor/docs/html/namespacemonitor.js create mode 100644 software/monitor/monitor/docs/html/namespaces.html create mode 100644 software/monitor/monitor/docs/html/namespaces.js create mode 100644 software/monitor/monitor/docs/html/nav_f.png create mode 100644 software/monitor/monitor/docs/html/nav_g.png create mode 100644 software/monitor/monitor/docs/html/nav_h.png create mode 100644 software/monitor/monitor/docs/html/navtree.css create mode 100644 software/monitor/monitor/docs/html/navtree.js create mode 100644 software/monitor/monitor/docs/html/navtreedata.js create mode 100644 software/monitor/monitor/docs/html/navtreeindex0.js create mode 100644 software/monitor/monitor/docs/html/open.png create mode 100644 software/monitor/monitor/docs/html/resize.js create mode 100644 software/monitor/monitor/docs/html/robot-icon.png create mode 100644 software/monitor/monitor/docs/html/robot-icon.resized.png create mode 100644 software/monitor/monitor/docs/html/search/all_0.html create mode 100644 software/monitor/monitor/docs/html/search/all_0.js create mode 100644 software/monitor/monitor/docs/html/search/all_1.html create mode 100644 software/monitor/monitor/docs/html/search/all_1.js create mode 100644 software/monitor/monitor/docs/html/search/all_2.html create mode 100644 software/monitor/monitor/docs/html/search/all_2.js create mode 100644 software/monitor/monitor/docs/html/search/all_3.html create mode 100644 software/monitor/monitor/docs/html/search/all_3.js create mode 100644 software/monitor/monitor/docs/html/search/all_4.html create mode 100644 software/monitor/monitor/docs/html/search/all_4.js create mode 100644 software/monitor/monitor/docs/html/search/all_5.html create mode 100644 software/monitor/monitor/docs/html/search/all_5.js create mode 100644 software/monitor/monitor/docs/html/search/all_6.html create mode 100644 software/monitor/monitor/docs/html/search/all_6.js create mode 100644 software/monitor/monitor/docs/html/search/all_7.html create mode 100644 software/monitor/monitor/docs/html/search/all_7.js create mode 100644 software/monitor/monitor/docs/html/search/all_8.html create mode 100644 software/monitor/monitor/docs/html/search/all_8.js create mode 100644 software/monitor/monitor/docs/html/search/all_9.html create mode 100644 software/monitor/monitor/docs/html/search/all_9.js create mode 100644 software/monitor/monitor/docs/html/search/all_a.html create mode 100644 software/monitor/monitor/docs/html/search/all_a.js create mode 100644 software/monitor/monitor/docs/html/search/all_b.html create mode 100644 software/monitor/monitor/docs/html/search/all_b.js create mode 100644 software/monitor/monitor/docs/html/search/all_c.html create mode 100644 software/monitor/monitor/docs/html/search/all_c.js create mode 100644 software/monitor/monitor/docs/html/search/all_d.html create mode 100644 software/monitor/monitor/docs/html/search/all_d.js create mode 100644 software/monitor/monitor/docs/html/search/all_e.html create mode 100644 software/monitor/monitor/docs/html/search/all_e.js create mode 100644 software/monitor/monitor/docs/html/search/classes_0.html create mode 100644 software/monitor/monitor/docs/html/search/classes_0.js create mode 100644 software/monitor/monitor/docs/html/search/classes_1.html create mode 100644 software/monitor/monitor/docs/html/search/classes_1.js create mode 100644 software/monitor/monitor/docs/html/search/classes_2.html create mode 100644 software/monitor/monitor/docs/html/search/classes_2.js create mode 100644 software/monitor/monitor/docs/html/search/classes_3.html create mode 100644 software/monitor/monitor/docs/html/search/classes_3.js create mode 100644 software/monitor/monitor/docs/html/search/close.png create mode 100644 software/monitor/monitor/docs/html/search/enums_0.html create mode 100644 software/monitor/monitor/docs/html/search/enums_0.js create mode 100644 software/monitor/monitor/docs/html/search/enums_1.html create mode 100644 software/monitor/monitor/docs/html/search/enums_1.js create mode 100644 software/monitor/monitor/docs/html/search/enumvalues_0.html create mode 100644 software/monitor/monitor/docs/html/search/enumvalues_0.js create mode 100644 software/monitor/monitor/docs/html/search/enumvalues_1.html create mode 100644 software/monitor/monitor/docs/html/search/enumvalues_1.js create mode 100644 software/monitor/monitor/docs/html/search/enumvalues_2.html create mode 100644 software/monitor/monitor/docs/html/search/enumvalues_2.js create mode 100644 software/monitor/monitor/docs/html/search/enumvalues_3.html create mode 100644 software/monitor/monitor/docs/html/search/enumvalues_3.js create mode 100644 software/monitor/monitor/docs/html/search/enumvalues_4.html create mode 100644 software/monitor/monitor/docs/html/search/enumvalues_4.js create mode 100644 software/monitor/monitor/docs/html/search/enumvalues_5.html create mode 100644 software/monitor/monitor/docs/html/search/enumvalues_5.js create mode 100644 software/monitor/monitor/docs/html/search/enumvalues_6.html create mode 100644 software/monitor/monitor/docs/html/search/enumvalues_6.js create mode 100644 software/monitor/monitor/docs/html/search/enumvalues_7.html create mode 100644 software/monitor/monitor/docs/html/search/enumvalues_7.js create mode 100644 software/monitor/monitor/docs/html/search/files_0.html create mode 100644 software/monitor/monitor/docs/html/search/files_0.js create mode 100644 software/monitor/monitor/docs/html/search/files_1.html create mode 100644 software/monitor/monitor/docs/html/search/files_1.js create mode 100644 software/monitor/monitor/docs/html/search/files_2.html create mode 100644 software/monitor/monitor/docs/html/search/files_2.js create mode 100644 software/monitor/monitor/docs/html/search/files_3.html create mode 100644 software/monitor/monitor/docs/html/search/files_3.js create mode 100644 software/monitor/monitor/docs/html/search/functions_0.html create mode 100644 software/monitor/monitor/docs/html/search/functions_0.js create mode 100644 software/monitor/monitor/docs/html/search/functions_1.html create mode 100644 software/monitor/monitor/docs/html/search/functions_1.js create mode 100644 software/monitor/monitor/docs/html/search/functions_2.html create mode 100644 software/monitor/monitor/docs/html/search/functions_2.js create mode 100644 software/monitor/monitor/docs/html/search/functions_3.html create mode 100644 software/monitor/monitor/docs/html/search/functions_3.js create mode 100644 software/monitor/monitor/docs/html/search/functions_4.html create mode 100644 software/monitor/monitor/docs/html/search/functions_4.js create mode 100644 software/monitor/monitor/docs/html/search/functions_5.html create mode 100644 software/monitor/monitor/docs/html/search/functions_5.js create mode 100644 software/monitor/monitor/docs/html/search/functions_6.html create mode 100644 software/monitor/monitor/docs/html/search/functions_6.js create mode 100644 software/monitor/monitor/docs/html/search/functions_7.html create mode 100644 software/monitor/monitor/docs/html/search/functions_7.js create mode 100644 software/monitor/monitor/docs/html/search/functions_8.html create mode 100644 software/monitor/monitor/docs/html/search/functions_8.js create mode 100644 software/monitor/monitor/docs/html/search/mag_sel.png create mode 100644 software/monitor/monitor/docs/html/search/namespaces_0.html create mode 100644 software/monitor/monitor/docs/html/search/namespaces_0.js create mode 100644 software/monitor/monitor/docs/html/search/nomatches.html create mode 100644 software/monitor/monitor/docs/html/search/search.css create mode 100644 software/monitor/monitor/docs/html/search/search.js create mode 100644 software/monitor/monitor/docs/html/search/search_l.png create mode 100644 software/monitor/monitor/docs/html/search/search_m.png create mode 100644 software/monitor/monitor/docs/html/search/search_r.png create mode 100644 software/monitor/monitor/docs/html/search/searchdata.js create mode 100644 software/monitor/monitor/docs/html/search/variables_0.html create mode 100644 software/monitor/monitor/docs/html/search/variables_0.js create mode 100644 software/monitor/monitor/docs/html/search/variables_1.html create mode 100644 software/monitor/monitor/docs/html/search/variables_1.js create mode 100644 software/monitor/monitor/docs/html/search/variables_2.html create mode 100644 software/monitor/monitor/docs/html/search/variables_2.js create mode 100644 software/monitor/monitor/docs/html/search/variables_3.html create mode 100644 software/monitor/monitor/docs/html/search/variables_3.js create mode 100644 software/monitor/monitor/docs/html/search/variables_4.html create mode 100644 software/monitor/monitor/docs/html/search/variables_4.js create mode 100644 software/monitor/monitor/docs/html/search/variables_5.html create mode 100644 software/monitor/monitor/docs/html/search/variables_5.js create mode 100644 software/monitor/monitor/docs/html/search/variables_6.html create mode 100644 software/monitor/monitor/docs/html/search/variables_6.js create mode 100644 software/monitor/monitor/docs/html/search/variables_7.html create mode 100644 software/monitor/monitor/docs/html/search/variables_7.js create mode 100644 software/monitor/monitor/docs/html/search/variables_8.html create mode 100644 software/monitor/monitor/docs/html/search/variables_8.js create mode 100644 software/monitor/monitor/docs/html/search/variables_9.html create mode 100644 software/monitor/monitor/docs/html/search/variables_9.js create mode 100644 software/monitor/monitor/docs/html/search/variables_a.html create mode 100644 software/monitor/monitor/docs/html/search/variables_a.js create mode 100644 software/monitor/monitor/docs/html/search/variables_b.html create mode 100644 software/monitor/monitor/docs/html/search/variables_b.js create mode 100644 software/monitor/monitor/docs/html/splitbar.png create mode 100644 software/monitor/monitor/docs/html/sync_off.png create mode 100644 software/monitor/monitor/docs/html/sync_on.png create mode 100644 software/monitor/monitor/docs/html/tab_a.png create mode 100644 software/monitor/monitor/docs/html/tab_b.png create mode 100644 software/monitor/monitor/docs/html/tab_h.png create mode 100644 software/monitor/monitor/docs/html/tab_s.png create mode 100644 software/monitor/monitor/docs/html/tabs.css create mode 100644 software/monitor/monitor/docs/latex/Makefile create mode 100644 software/monitor/monitor/docs/latex/_client_8cs.tex create mode 100644 software/monitor/monitor/docs/latex/_command_manager_8cs.tex create mode 100644 software/monitor/monitor/docs/latex/_destijl_command_manager_8cs.tex create mode 100644 software/monitor/monitor/docs/latex/_monitor_u_i_8cs.tex create mode 100644 software/monitor/monitor/docs/latex/_program_8cs.tex create mode 100644 software/monitor/monitor/docs/latex/annotated.tex create mode 100644 software/monitor/monitor/docs/latex/class_main_window.tex create mode 100644 software/monitor/monitor/docs/latex/class_main_window__coll__graph.md5 create mode 100644 software/monitor/monitor/docs/latex/class_main_window__coll__graph.pdf create mode 100644 software/monitor/monitor/docs/latex/class_main_window__inherit__graph.md5 create mode 100644 software/monitor/monitor/docs/latex/class_main_window__inherit__graph.pdf create mode 100644 software/monitor/monitor/docs/latex/classmonitor_1_1_client.tex create mode 100644 software/monitor/monitor/docs/latex/classmonitor_1_1_command_manager.tex create mode 100644 software/monitor/monitor/docs/latex/classmonitor_1_1_command_manager__coll__graph.md5 create mode 100644 software/monitor/monitor/docs/latex/classmonitor_1_1_command_manager__coll__graph.pdf create mode 100644 software/monitor/monitor/docs/latex/classmonitor_1_1_destijl_command_list.tex create mode 100644 software/monitor/monitor/docs/latex/classmonitor_1_1_destijl_command_manager.tex create mode 100644 software/monitor/monitor/docs/latex/classmonitor_1_1_destijl_command_manager__coll__graph.md5 create mode 100644 software/monitor/monitor/docs/latex/classmonitor_1_1_destijl_command_manager__coll__graph.pdf create mode 100644 software/monitor/monitor/docs/latex/classmonitor_1_1_main_class.tex create mode 100644 software/monitor/monitor/docs/latex/classmonitor_1_1_robot_command_list.tex create mode 100644 software/monitor/monitor/docs/latex/doxygen.sty create mode 100644 software/monitor/monitor/docs/latex/files.tex create mode 100644 software/monitor/monitor/docs/latex/hierarchy.tex create mode 100644 software/monitor/monitor/docs/latex/namespacemonitor.tex create mode 100644 software/monitor/monitor/docs/latex/namespaces.tex create mode 100644 software/monitor/monitor/docs/latex/refman.tex create mode 100644 software/monitor/monitor/docs/latex/robot-icon.png create mode 100644 software/monitor/monitor/docs/latex/robot-icon.resized.png diff --git a/software/monitor/monitor/.gitignore b/software/monitor/monitor/.gitignore index 25c8528..4e82d27 100644 --- a/software/monitor/monitor/.gitignore +++ b/software/monitor/monitor/.gitignore @@ -38,7 +38,3 @@ Thumbs.db # dotCover *.dotCover - -doc/ -docs/ - diff --git a/software/monitor/monitor/MonitorUI.cs b/software/monitor/monitor/MonitorUI.cs index f2f43e0..a703ec4 100644 --- a/software/monitor/monitor/MonitorUI.cs +++ b/software/monitor/monitor/MonitorUI.cs @@ -25,6 +25,11 @@ // 15/10/2019 dimercur // Demande #43: Migrer le code lié à la gestion des images dans sa propre classe widget +// 11/04/2019 dimercur +// Suppression du timer battery +// suppression de la case à cocher getbattery +// Prise en charge des messages ANSWER_TIMEOUT et ANSWER_COM_ERROR dans OnCommandReceivedEvent + using System; using Gtk; using Gdk; @@ -68,11 +73,6 @@ public partial class MainWindow : Gtk.Window /// private ImageWidget imageWidget; - /// - /// Timer for battery request - /// - private System.Timers.Timer batteryTimer; - /// /// Counter for image reception and detecting bad picture ratio /// @@ -91,10 +91,6 @@ public partial class MainWindow : Gtk.Window // Init of image widget imageWidget = new ImageWidget(drawingAreaCamera); - // create new timer for battery request, every 10s - batteryTimer = new System.Timers.Timer(10000.0); - batteryTimer.Elapsed += OnBatteryTimerElapsed; - // Customize controls AdjustControls(); } @@ -145,7 +141,6 @@ public partial class MainWindow : Gtk.Window if (cmdManager != null) cmdManager.Close(); - batteryTimer.Stop(); break; case SystemState.ServerConnected: buttonServerConnection.Label = "Disconnect"; @@ -159,14 +154,12 @@ public partial class MainWindow : Gtk.Window labelRobotControl.Sensitive = false; gtkAlignmentRobotControl.Sensitive = false; - batteryTimer.Stop(); break; case SystemState.RobotConnected: buttonRobotActivation.Label = "Reset"; labelRobotControl.Sensitive = true; gtkAlignmentRobotControl.Sensitive = true; - batteryTimer.Start(); break; default: labelRobot.Sensitive = false; @@ -259,64 +252,81 @@ public partial class MainWindow : Gtk.Window // Depending on message received (based on header), launch correponding action header = header.ToUpper(); - if (header == DestijlCommandList.ROBOT_BATTERY_LEVEL) + switch (header) { - string batLevel = ""; + case DestijlCommandList.ANSWER_TIMEOUT: + case DestijlCommandList.ANSWER_COM_ERROR: + Console.WriteLine("Communication lost with robot"); + Gtk.Application.Invoke(delegate + { + MessagePopup(MessageType.Error, ButtonsType.Ok, "Robot lost", "Communication with robot lost !"); + }); - switch (data[0]) - { - case '2': - batLevel = "High"; - break; - case '1': - batLevel = "Low"; - break; - case '0': - batLevel = "Empty"; - break; - default: - batLevel = "Invalid value"; - break; - } + ChangeState(SystemState.ServerConnected); - Gtk.Application.Invoke(delegate - { - labelBatteryLevel.Text = batLevel; - }); - } - else if (header == DestijlCommandList.CAMERA_IMAGE) - { - imageReceivedCounter++; + break; + case DestijlCommandList.ROBOT_BATTERY_LEVEL: + string batLevel = ""; - byte[] image = new byte[2]; - try - { - image = Convert.FromBase64String(data); - } - catch (FormatException) - { - badImageReceivedCounter++; - Console.WriteLine("Unable to convert from base64 "); - } + switch (data[0]) + { + case '2': + batLevel = "High"; + break; + case '1': + batLevel = "Low"; + break; + case '0': + batLevel = "Empty"; + break; + default: + batLevel = "Invalid value"; + break; + } - try - { - imageWidget.ShowImage(image); - } - catch (GLib.GException) - { - badImageReceivedCounter++; + Gtk.Application.Invoke(delegate + { + labelBatteryLevel.Text = batLevel; + }); + + break; + case DestijlCommandList.CAMERA_IMAGE: + imageReceivedCounter++; + + byte[] image = new byte[2]; + try + { + image = Convert.FromBase64String(data); + } + catch (FormatException) + { + badImageReceivedCounter++; + Console.WriteLine("Unable to convert from base64 "); + } + + try + { + imageWidget.ShowImage(image); + } + catch (GLib.GException) + { + badImageReceivedCounter++; #if DEBUG - Console.WriteLine("Bad Image: " + badImageReceivedCounter + - " / " + imageReceivedCounter + - " (" + badImageReceivedCounter * 100 / imageReceivedCounter + "%)"); + Console.WriteLine("Bad Image: " + badImageReceivedCounter + + " / " + imageReceivedCounter + + " (" + badImageReceivedCounter * 100 / imageReceivedCounter + "%)"); #endif - } - //} - } - else if (header == DestijlCommandList.CAMERA_POSITION) - { - imageWidget.Position = DestijlCommandManager.DecodePosition(data); + } + + break; + case DestijlCommandList.CAMERA_POSITION: + imageWidget.Position = DestijlCommandManager.DecodePosition(data); + + break; + default: + Console.WriteLine("Untreated message from supervisor: " + header + ": " + data); + + break; } } } @@ -526,50 +536,6 @@ public partial class MainWindow : Gtk.Window } } - /// - /// Callback called when battery timer expired - /// - /// Sender object - /// Event - void OnBatteryTimerElapsed(object sender, System.Timers.ElapsedEventArgs e) - { - DestijlCommandManager.CommandStatus status; - batteryTimer.Stop(); - - // if battery checkbox is checked, a request for battery level is done - if (checkButtonGetBattery.Active) - { - status = cmdManager.RobotGetBattery(); - - // if status is not ok, show appropriate message and print "Unknown" for battery level - switch (status) - { - case DestijlCommandManager.CommandStatus.Success: - batteryTimer.Start(); - break; - case DestijlCommandManager.CommandStatus.CommunicationLostWithServer: - Console.WriteLine("Error: Connection lost with server"); - batteryTimer.Stop(); - labelBatteryLevel.Text = "Unknown"; - - ChangeState(SystemState.NotConnected); - break; - case DestijlCommandManager.CommandStatus.CommunicationLostWithRobot: - Console.WriteLine("Error: Connection lost with robot"); - batteryTimer.Stop(); - labelBatteryLevel.Text = "Unknown"; - - ChangeState(SystemState.ServerConnected); - break; - default: - labelBatteryLevel.Text = "Unknown"; - batteryTimer.Start(); - break; - } - } - else batteryTimer.Start(); - } - /// /// Callback called when checkbutton for camera is clicked /// diff --git a/software/monitor/monitor/docs/html/_client_8cs.html b/software/monitor/monitor/docs/html/_client_8cs.html new file mode 100644 index 0000000..c82158f --- /dev/null +++ b/software/monitor/monitor/docs/html/_client_8cs.html @@ -0,0 +1,116 @@ + + + + + + + +Monitor: Client.cs File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitor +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Client.cs File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + +

+Classes

class  monitor.Client
 Static class for TCP client More...
 
+ + + +

+Namespaces

namespace  monitor
 
+
+
+ + + + diff --git a/software/monitor/monitor/docs/html/_client_8cs_source.html b/software/monitor/monitor/docs/html/_client_8cs_source.html new file mode 100644 index 0000000..0f35d95 --- /dev/null +++ b/software/monitor/monitor/docs/html/_client_8cs_source.html @@ -0,0 +1,120 @@ + + + + + + + +Monitor: Client.cs Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitor +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Client.cs
+
+
+Go to the documentation of this file.
1 //
2 // Client.cs
3 //
4 // Author:
5 // Di MERCURIO Sébastien <dimercur@insa-toulouse.fr>
6 //
7 // Copyright (c) 2018 INSA - DGEI
8 //
9 // This program is free software: you can redistribute it and/or modify
10 // it under the terms of the GNU General Public License as published by
11 // the Free Software Foundation, either version 3 of the License, or
12 // (at your option) any later version.
13 //
14 // This program is distributed in the hope that it will be useful,
15 // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 // GNU General Public License for more details.
18 //
19 // You should have received a copy of the GNU General Public License
20 // along with this program. If not, see <http://www.gnu.org/licenses/>.
21 
22 using System;
23 using System.Net.Sockets;
24 using System.Text;
25 
26 namespace monitor
27 {
31  public static class Client
32  {
36  public const string defaultIP = "localhost";
37 
41  public const int defaultPort = 4500;
42 
46  private static TcpClient client = null;
47 
51  private static NetworkStream stream = null;
52 
56  private const int BufferMaxSize = 512;
57 
61  private static byte[] buffer = new byte[BufferMaxSize];
62 
67  private static byte[] receiveBuffer;
68 
69  private static int initialReceiveBufferIndex = 0;
70 
74  private static StringBuilder message = new StringBuilder();
75  private static int newLength = 1;
76  private static int packetCounter = 0;
77 
81  public delegate void ReadEvent(string msg, byte[] buffer);
82  public static ReadEvent readEvent = null;
83 
89  public static bool Open(string host)
90  {
91  return Client.Open(host, defaultPort);
92  }
93 
100  public static bool Open(string host, int port)
101  {
102  bool status = true;
103 
104  try
105  {
106  client = new TcpClient(host, port);
107 
108  stream = client.GetStream();
109 
110  // Start reading tcp stream and call "ReadCallback" method when newLength data
111  // will be received
112  // initially, "newLength" is equal to 1, so first call to ReadCallback
113  // will be done after reception of 1 byte.
114 
115  // received data are stored in buffer
116  // Next reading will be done in ReadCallback method
117  stream.BeginRead(buffer, 0, newLength, new AsyncCallback(ReadCallback), message);
118  }
119  catch (ArgumentNullException e)
120  {
121  Console.WriteLine("ArgumentNullException: " + e);
122  status = false;
123  }
124  catch (SocketException e)
125  {
126  Console.WriteLine("SocketException: " + e.ToString());
127  status = false;
128  }
129  catch (Exception e)
130  {
131  Console.WriteLine("Unknown Exception: " + e.ToString());
132  status = false;
133  }
134 
135  return status;
136  }
137 
141  public static void Close()
142  {
143  if (stream != null) stream.Close();
144  if (client != null) client.Close();
145  }
146 
151  private static void ReadCallback(IAsyncResult ar)
152  {
153  if (client.Connected)
154  {
155  int bytesRead;
156 
157  try
158  {
159  // Termintae read operation, and get number of byte stored in buffer
160  bytesRead = stream.EndRead(ar);
161  }
162  catch (ObjectDisposedException e)
163  {
164  Console.WriteLine("Connection to server dropped: " + e.ToString());
165  return;
166  }
167 
168  newLength = 1;
169 
170  // if number of byte read is not 0, concatenate string and buffer
171  if (bytesRead > 0)
172  {
173  packetCounter++;
174 
175  if (packetCounter >= 3)
176  {
177  //Console.WriteLine("Supplementary packet " + packetCounter);
178  }
179 
180  // Append new data to current string (expecting data are ascii)
181  message.Append(Encoding.ASCII.GetString(buffer, 0, bytesRead));
182 
183  // Similarly, append received bytes to current buffer
184  if (receiveBuffer == null) receiveBuffer = new byte[bytesRead];
185  else Array.Resize<byte>(ref receiveBuffer, initialReceiveBufferIndex + bytesRead); // resize currrent buffer
186 
187  System.Buffer.BlockCopy(buffer, 0, receiveBuffer, initialReceiveBufferIndex, bytesRead); // and add received data
188  initialReceiveBufferIndex = receiveBuffer.Length; // move last index of current buffer
189  }
190 
191  // if it remains received data, prepare for a new reading (get another buffer to append to current one)
192  if (client.Available > 0)
193  {
194  newLength = client.Available;
195  if (newLength > BufferMaxSize) newLength = BufferMaxSize;
196  else newLength = client.Available;
197  }
198  else
199  {
200  // no more data to read, buffer and string can be send to upper level
201  readEvent?.Invoke(message.ToString(), receiveBuffer);
202 
203  message.Clear();
204  receiveBuffer = null;
205  initialReceiveBufferIndex = 0;
206  packetCounter = 0;
207  }
208 
209  // Prepare for reading new data
210  stream.BeginRead(buffer, 0, newLength, new AsyncCallback(ReadCallback), message);
211  }
212  }
213 
219  public static void Write(string mes)
220  {
221  if (client.Connected)
222  {
223  byte[] writeBuffer = Encoding.UTF8.GetBytes(mes);
224 
225  stream.Write(writeBuffer, 0, mes.Length);
226  }
227  }
228  }
229 }
static byte [] buffer
Internal buffer used when reading data from server
Definition: Client.cs:61
+
static int packetCounter
Definition: Client.cs:76
+
static int initialReceiveBufferIndex
Definition: Client.cs:69
+
const int defaultPort
Default server port number
Definition: Client.cs:41
+
static TcpClient client
Tcp client object
Definition: Client.cs:46
+
static void Write(string mes)
Write a string to server
Definition: Client.cs:219
+
static byte [] receiveBuffer
buffer containing received message from TCP server Used to concatenate internal buffers into one ...
Definition: Client.cs:67
+ +
const int BufferMaxSize
Size of internal buffer used when reading data from server
Definition: Client.cs:56
+
static NetworkStream stream
Stream object used for communication
Definition: Client.cs:51
+
const string defaultIP
Default server name
Definition: Client.cs:36
+
delegate void ReadEvent(string msg, byte[] buffer)
Callback to send received message to upper level
+
static StringBuilder message
String containing received message from tcp server
Definition: Client.cs:74
+
static int newLength
Definition: Client.cs:75
+
static bool Open(string host, int port)
Open connection to server "host", with port number "port"
Definition: Client.cs:100
+ +
static bool Open(string host)
Open connection to server "host", on default port number.
Definition: Client.cs:89
+
Static class for TCP client
Definition: Client.cs:31
+
static void Close()
Close connection to server
Definition: Client.cs:141
+
static ReadEvent readEvent
Definition: Client.cs:82
+
static void ReadCallback(IAsyncResult ar)
Callback call by stream.BeginRead after reception of newLength data
Definition: Client.cs:151
+
+
+ + + + diff --git a/software/monitor/monitor/docs/html/_command_manager_8cs.html b/software/monitor/monitor/docs/html/_command_manager_8cs.html new file mode 100644 index 0000000..369ecf5 --- /dev/null +++ b/software/monitor/monitor/docs/html/_command_manager_8cs.html @@ -0,0 +1,116 @@ + + + + + + + +Monitor: CommandManager.cs File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitor +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
CommandManager.cs File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + +

+Classes

class  monitor.CommandManager
 Command Manager. Use for timeout managment during reception of data Used as intermediate layer between TCP client class (Client) and application level managment of command and answers More...
 
+ + + +

+Namespaces

namespace  monitor
 
+
+
+ + + + diff --git a/software/monitor/monitor/docs/html/_command_manager_8cs_source.html b/software/monitor/monitor/docs/html/_command_manager_8cs_source.html new file mode 100644 index 0000000..f1bf11a --- /dev/null +++ b/software/monitor/monitor/docs/html/_command_manager_8cs_source.html @@ -0,0 +1,124 @@ + + + + + + + +Monitor: CommandManager.cs Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitor +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
CommandManager.cs
+
+
+Go to the documentation of this file.
1 //
2 // CommandManager.cs
3 //
4 // Author:
5 // Di MERCURIO Sébastien <dimercur@insa-toulouse.fr>
6 //
7 // Copyright (c) 2018 INSA - DGEI
8 //
9 // This program is free software: you can redistribute it and/or modify
10 // it under the terms of the GNU General Public License as published by
11 // the Free Software Foundation, either version 3 of the License, or
12 // (at your option) any later version.
13 //
14 // This program is distributed in the hope that it will be useful,
15 // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 // GNU General Public License for more details.
18 //
19 // You should have received a copy of the GNU General Public License
20 // along with this program. If not, see <http://www.gnu.org/licenses/>.
21 
22 using System.Threading;
23 
24 namespace monitor
25 {
31  public class CommandManager
32  {
36  public delegate void CommandReceivedEvent(string msg, byte[] buffer);
37  public CommandReceivedEvent commandReceivedEvent = null;
38 
42  private System.Timers.Timer waitTimer = new System.Timers.Timer();
43  private ManualResetEvent waitEvent = new ManualResetEvent(false);
44 
48  private bool waitForAcknowledge = false;
49 
53  private string messageReceived = null;
54 
58  private bool isBusy = false;
59 
64  {
65  AnswerReceived,
66  Timeout,
67  Busy
68  };
69 
74  public CommandManager(CommandReceivedEvent callback)
75  {
77 
78  this.commandReceivedEvent += callback;
79  waitTimer.Elapsed += OnMessageTimeout;
80  }
81 
87  {
88  Client.Close();
89  }
90 
96  public bool Open(string hostname)
97  {
98  return this.Open(hostname, Client.defaultPort);
99  }
100 
107  public bool Open(string hostname, int port)
108  {
109  return Client.Open(hostname, port);
110  }
111 
115  public void Close()
116  {
117  Client.Close();
118  }
119 
125  private void OnMessageReception(string message, byte[] buffer)
126  {
127  waitTimer.Stop(); // Stop timeout stopwatch
128 
129  this.messageReceived = message;
130  isBusy = false;
131 
132  // if SendCommand wait for an acknowledge, release semaphore waitEvent
133  // so that SendCommand will be able to read received answer
134  // Received answer will not be sent to upper level
135  if (waitForAcknowledge)
136  {
137  waitForAcknowledge = false;
138  waitEvent.Set(); // Envoi de l'evenement
139  }
140  else
141  // if sendCommand doesn't wait for an acknowledge, message received
142  // is for upper level, so call callback
143  {
144 
145  waitForAcknowledge = false;
146 
147  this.commandReceivedEvent?.Invoke(message, buffer);
148  }
149  }
150 
156  private void OnMessageTimeout(object sender, System.Timers.ElapsedEventArgs e)
157  {
158  messageReceived = null;
159  // set buffer and message as null to indicate that no message was received
160  // and call to OnMessagereception is due to timeout
161  OnMessageReception(messageReceived, null);
162  }
163 
171  public CommandManagerStatus SendCommand(string cmd, out string answer, double timeout)
172  {
173  CommandManagerStatus status = CommandManagerStatus.AnswerReceived;
174  answer = null;
175 
176 
177  if (isBusy) status = CommandManagerStatus.Busy;
178  else
179  {
180  isBusy = true;
181 
182  // Send command to server
183  Client.Write(cmd);
184 
185  if (timeout > 0) // Command request an acknowledge
186  {
187 
188  waitForAcknowledge = true; // Flag used in OnMessageReception callback to avoid
189  // sending acknowledge message to upper level
190  waitTimer.Interval = timeout;
191  waitTimer.Start(); // Start timeout timer
192 
193  waitEvent.WaitOne(); // Stop current thread, waiting for waitEvent semaphore
194  // produced in OnMessageReception when either a message is received
195  // or a timeout occur
196 
197  waitEvent.Reset(); // reset semaphore for next message
198 
199  if (this.messageReceived == null) // timeout: server connection error
200  {
201  status = CommandManagerStatus.Timeout;
202  }
203  }
204  else isBusy = false;
205 
206  // return received answer, null in case of timeout
207  answer = this.messageReceived;
208  this.messageReceived = null;
209  }
210 
211  return status;
212  }
213  }
214 }
void OnMessageTimeout(object sender, System.Timers.ElapsedEventArgs e)
Callback called by stopwatch on timeout
+
const int defaultPort
Default server port number
Definition: Client.cs:41
+
bool Open(string hostname)
Open the specified hostname server, using default port number.
+
static void Write(string mes)
Write a string to server
Definition: Client.cs:219
+
Command Manager. Use for timeout managment during reception of data Used as intermediate layer betwee...
+ +
delegate void CommandReceivedEvent(string msg, byte[] buffer)
Callback for sending received data to upper level
+
CommandManagerStatus SendCommand(string cmd, out string answer, double timeout)
Sends a command to TCP server
+
bool isBusy
flag indicating command manager is currently busy waiting an acknowledge
+
void OnMessageReception(string message, byte[] buffer)
Callback called by Client class after reception of new message
+
CommandReceivedEvent commandReceivedEvent
+
System.Timers.Timer waitTimer
Timer for managing timeout
+
ManualResetEvent waitEvent
+ +
static bool Open(string host)
Open connection to server "host", on default port number.
Definition: Client.cs:89
+
Static class for TCP client
Definition: Client.cs:31
+
static void Close()
Close connection to server
Definition: Client.cs:141
+
CommandManagerStatus
Available status when sending command
+
static ReadEvent readEvent
Definition: Client.cs:82
+
bool Open(string hostname, int port)
Open connection to server "host", with port number "port"
+
string messageReceived
received message
+
CommandManager(CommandReceivedEvent callback)
Initializes a new instance of the T:monitor.CommandManager class.
+
~CommandManager()
Releases unmanaged resources and performs other cleanup operations before the T:monitor.CommandManager is reclaimed by garbage collection.
+
bool waitForAcknowledge
Flag to tell rogram to wait for an acknowledge from server
+
void Close()
Close connection to server
+
+
+ + + + diff --git a/software/monitor/monitor/docs/html/_destijl_command_manager_8cs.html b/software/monitor/monitor/docs/html/_destijl_command_manager_8cs.html new file mode 100644 index 0000000..199ca00 --- /dev/null +++ b/software/monitor/monitor/docs/html/_destijl_command_manager_8cs.html @@ -0,0 +1,122 @@ + + + + + + + +Monitor: DestijlCommandManager.cs File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitor +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
DestijlCommandManager.cs File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + +

+Classes

class  monitor.DestijlCommandList
 Commands and options parameters used in Destijl project when communicating with server More...
 
class  monitor.RobotCommandList
 Commands used for robot messages More...
 
class  monitor.DestijlCommandManager
 Specialization class for command manager, which implemnent destijl protocol between monitor and server More...
 
+ + + +

+Namespaces

namespace  monitor
 
+
+
+ + + + diff --git a/software/monitor/monitor/docs/html/_destijl_command_manager_8cs_source.html b/software/monitor/monitor/docs/html/_destijl_command_manager_8cs_source.html new file mode 100644 index 0000000..6e78fbc --- /dev/null +++ b/software/monitor/monitor/docs/html/_destijl_command_manager_8cs_source.html @@ -0,0 +1,167 @@ + + + + + + + +Monitor: DestijlCommandManager.cs Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitor +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
DestijlCommandManager.cs
+
+
+Go to the documentation of this file.
1 //
2 // DestijlCommandManager.cs
3 //
4 // Author:
5 // Di MERCURIO Sébastien <dimercur@insa-toulouse.fr>
6 //
7 // Copyright (c) 2018 INSA - DGEI
8 //
9 // This program is free software: you can redistribute it and/or modify
10 // it under the terms of the GNU General Public License as published by
11 // the Free Software Foundation, either version 3 of the License, or
12 // (at your option) any later version.
13 //
14 // This program is distributed in the hope that it will be useful,
15 // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 // GNU General Public License for more details.
18 //
19 // You should have received a copy of the GNU General Public License
20 // along with this program. If not, see <http://www.gnu.org/licenses/>.
21 
22 using System;
23 
24 namespace monitor
25 {
29  public static class DestijlCommandList
30  {
31  public const string HeaderMtsComDmb = "COM";
32  public const string HeaderMtsDmbOrder = "DMB";
33  public const string HeaderMtsCamera = "CAM";
34  public const string HeaderMtsMessage = "MSG";
35 
36  public const string DataComOpen = "o";
37  public const string DataComClose = "C";
38 
39  public const string DataCamOpen = "A";
40  public const string DataCamClose = "I";
41  public const string DataCamAskArena = "y";
42  public const string DataCamArenaConfirm = "x";
43  public const string DataCamInfirm = "z";
44  public const string DataCamComputePosition = "p";
45  public const string DataCamStopComputePosition = "s";
46 
47  public const string HeaderStmAck = "ACK";
48  public const string HeaderStmNoAck = "NAK";
49  public const string HeaderStmLostDmb = "LCD";
50  public const string HeaderStmImage = "IMG";
51  public const string HeaderStmPos = "POS";
52  public const string HeaderStmMes = "MSG";
53  public const string HeaderStmBat = "BAT";
54  }
55 
59  public static class RobotCommandList
60  {
61  public const string RobotPing = "p";
62  public const string RobotReset = "r";
63  public const string RobotStartWithoutWatchdog = "u";
64  public const string RobotStartWithWatchdog = "W";
65  public const string RobotGetBattery = "v";
66  public const string RobotGetBusyState = "b";
67  public const string RobotMove = "M";
68  public const string RobotTurn = "T";
69  public const string RobotGetVersion = "V";
70  public const string RobotPowerOff = "z";
71  }
72 
76  public class DestijlCommandManager
77  {
81  private CommandManager commandManager = null;
82 
86  private string receivedHeader = null;
87 
91  private string receivedData = null;
92 
96  public delegate void CommandReceivedEvent(string header, string data, byte[] buffer);
97  public CommandReceivedEvent commandReceivedEvent = null;
98 
102  public double timeout = 100;
103 
107  public enum CommandStatus
108  {
109  Success,
110  Rejected,
111  InvalidAnswer,
112  Busy,
113  CommunicationLostWithRobot,
114  CommunicationLostWithServer
115  }
116 
121  public DestijlCommandManager(CommandReceivedEvent callback)
122  {
123  commandManager = new CommandManager(OnCommandReceived);
124  this.commandReceivedEvent += callback;
125  }
126 
132  {
133  if (commandManager != null) commandManager.Close();
134  }
135 
141  private void OnCommandReceived(string msg, byte[] buffer)
142  {
143  // Firstly, split message in (at least) two part : header, and data
144  string[] msgs = msg.Split(':');
145 
146  // If it exist at least on element in string array, it should be command header
147  if (msgs.Length >= 1) receivedHeader = msgs[0];
148  else receivedHeader = null;
149 
150  // if msgs array contains at least two elements, second element is normally data
151  if (msgs.Length >= 2) receivedData = msgs[1];
152  else receivedData = null;
153 
154  // when split is done, provide data to application
155  this.commandReceivedEvent?.Invoke(receivedHeader, receivedData, buffer);
156  }
157 
163  public bool Open(string hostname)
164  {
165  return this.Open(hostname, Client.defaultPort);
166  }
167 
174  public bool Open(string hostname, int port)
175  {
176  if (commandManager != null) return commandManager.Open(hostname, port);
177  else return false;
178  }
179 
183  public void Close()
184  {
185  if (commandManager != null) commandManager.Close();
186  }
187 
194  private string CreateCommand(string header, string data)
195  {
196  return header + ":" + data;
197  }
198 
205  private CommandStatus DecodeStatus(CommandManager.CommandManagerStatus localStatus, string answer)
206  {
207  CommandStatus status = CommandStatus.Success;
208 
209  // if timeout occures, return CommandStatus.CommunicationLostWithServer
210  if (localStatus == CommandManager.CommandManagerStatus.Timeout) status = CommandStatus.CommunicationLostWithServer;
211  // if a command is currently processed, return Busy
212  else if (localStatus == CommandManager.CommandManagerStatus.Busy) status = CommandStatus.Busy;
213  else
214  {
215  if (answer != null)
216  {
217  // if command is not acknowledged, return Rejected
218  if (answer.ToUpper().Contains(DestijlCommandList.HeaderStmNoAck)) status = CommandStatus.Rejected;
219  // if communication is lost with robot, return CommunicationLostWithRobot
220  else if (answer.ToUpper().Contains(DestijlCommandList.HeaderStmLostDmb)) status = CommandStatus.CommunicationLostWithRobot;
221  // if answer is empty, communication with robot is lost
222  else if (answer.Length == 0) status = CommandStatus.CommunicationLostWithServer;
223  //else status = CommandStatus.InvalidAnswer;
224  }
225  }
226 
227  return status;
228  }
229 
235  {
237  string answer;
238 
239  localStatus = commandManager.SendCommand(
241  out answer,
242  this.timeout);
243 
244  return DecodeStatus(localStatus, answer);
245  }
246 
252  {
254  string answer;
255 
256  localStatus = commandManager.SendCommand(
258  out answer,
259  this.timeout);
260 
261  return DecodeStatus(localStatus, answer);
262  }
263 
269  {
271  string answer;
272 
273  localStatus = commandManager.SendCommand(
275  out answer,
276  this.timeout);
277 
278  return DecodeStatus(localStatus, answer);
279  }
280 
286  {
288  string answer;
289 
290  localStatus = commandManager.SendCommand(
292  out answer,
293  0);
294 
295  return DecodeStatus(localStatus, answer);
296  }
297 
303  {
305  string answer;
306 
307  localStatus = commandManager.SendCommand(
309  out answer,
310  this.timeout);
311 
312  return DecodeStatus(localStatus, answer);
313  }
314 
320  {
322  string answer;
323 
324  localStatus = commandManager.SendCommand(
326  out answer,
327  this.timeout);
328 
329  return DecodeStatus(localStatus, answer);
330  }
331 
337  public CommandStatus RobotMove(int distance)
338  {
340  string answer;
341 
342  localStatus = commandManager.SendCommand(
343  CreateCommand(DestijlCommandList.HeaderMtsDmbOrder, RobotCommandList.RobotMove + "=" + distance),
344  out answer,
345  0);
346 
347  return DecodeStatus(localStatus, answer);
348  }
349 
355  public CommandStatus RobotTurn(int angle)
356  {
358  string answer;
359 
360  localStatus = commandManager.SendCommand(
361  CreateCommand(DestijlCommandList.HeaderMtsDmbOrder, RobotCommandList.RobotTurn + "=" + angle),
362  out answer,
363  0);
364 
365  return DecodeStatus(localStatus, answer);
366  }
367 
373  {
375  string answer;
376 
377  localStatus = commandManager.SendCommand(
379  out answer,
380  0);
381 
382  return DecodeStatus(localStatus, answer);
383  }
384 
390  public CommandStatus RobotGetVersion(out string version)
391  {
393  CommandStatus status = CommandStatus.Success;
394  version = "";
395 
396  string answer;
397 
398  localStatus = commandManager.SendCommand(
400  out answer,
401  this.timeout);
402 
403  if (localStatus == CommandManager.CommandManagerStatus.AnswerReceived)
404  {
405  string[] msg = answer.Split(':');
406 
407  if (msg.Length > 1)
408  {
409  version = msg[1];
410  }
411  }
412  else if (localStatus == CommandManager.CommandManagerStatus.Timeout)
413  {
414  status = CommandStatus.CommunicationLostWithServer;
415  }
416 
417  return status;
418  }
419 
425  {
427  string answer;
428 
429  localStatus = commandManager.SendCommand(
431  out answer,
432  0);
433 
434  return DecodeStatus(localStatus, answer);
435  }
436 
442  {
444  string answer;
445 
446  localStatus = commandManager.SendCommand(
448  out answer,
449  this.timeout);
450 
451  return DecodeStatus(localStatus, answer);
452  }
453 
459  {
461  string answer;
462 
463  localStatus = commandManager.SendCommand(
465  out answer,
466  0);
467 
468  return DecodeStatus(localStatus, answer);
469  }
470 
476  {
478  string answer;
479 
480  localStatus = commandManager.SendCommand(
482  out answer,
483  0);
484 
485  return DecodeStatus(localStatus, answer);
486  }
487 
493  {
495  string answer;
496 
497  localStatus = commandManager.SendCommand(
499  out answer,
500  0);
501 
502  return DecodeStatus(localStatus, answer);
503  }
504 
510  {
512  string answer;
513 
514  localStatus = commandManager.SendCommand(
516  out answer,
517  0);
518 
519  return DecodeStatus(localStatus, answer);
520  }
521 
527  {
529  string answer;
530 
531  localStatus = commandManager.SendCommand(
533  out answer,
534  0);
535 
536  return DecodeStatus(localStatus, answer);
537  }
538 
544  {
546  string answer;
547 
548  localStatus = commandManager.SendCommand(
550  out answer,
551  0);
552 
553  return DecodeStatus(localStatus, answer);
554  }
555  }
556 }
+ +
CommandStatus RobotGetVersion(out string version)
Request robot firmware version
+
CommandStatus RobotStartWithoutWatchdog()
Start robot, without enabling watchdog
+
const int defaultPort
Default server port number
Definition: Client.cs:41
+
CommandStatus CameraArenaInfirm()
Reject arena detected (after requesting image of detected arena, using CameraAskArena ...
+
bool Open(string hostname)
Open the specified hostname server, using default port number.
+ +
Command Manager. Use for timeout managment during reception of data Used as intermediate layer betwee...
+
void Close()
Close connection to server
+ + + + +
void OnCommandReceived(string msg, byte[] buffer)
Callback used for receiving data from lower layer (CommandManager class)
+ +
CommandStatus RobotGetBattery()
Request robot battery level
+
CommandStatus RobotStartWithWatchdog()
Start robot, enabling watchdog
+
CommandManagerStatus SendCommand(string cmd, out string answer, double timeout)
Sends a command to TCP server
+ + +
bool Open(string hostname, int port)
Open connection to server "host", with port number "port"
+ + +
Commands used for robot messages
+ +
Specialization class for command manager, which implemnent destijl protocol between monitor and serve...
+ +
CommandStatus RobotPing()
Ping the robot.
+ +
CommandStatus CameraComputePosition()
Request robot position computing
+
CommandStatus CameraStopComputePosition()
Stop robot position computing
+
CommandStatus CameraArenaConfirm()
Confirm arena detection (after requesting image of detected arena, using CameraAskArena ...
+
CommandStatus
List of available return status
+ + +
CommandStatus CameraAskArena()
Request still image of detected arena
+ + +
CommandStatus RobotReset()
Reset robot and let it in idle mode
+
CommandStatus CameraClose()
Close camera on remote device
+ +
DestijlCommandManager(CommandReceivedEvent callback)
Initializes a new instance of the monitor.DestijlCommandManager class.
+ +
CommandStatus RobotTurn(int angle)
Make robot turn left or right, for a given angle
+
string CreateCommand(string header, string data)
Creates the command to send to server, based on header and data provided
+
CommandStatus CameraOpen()
Open camera on remote device
+ +
CommandStatus RobotPowerOff()
Power off robot
+ + + + + +
Static class for TCP client
Definition: Client.cs:31
+
~DestijlCommandManager()
Releases unmanaged resources and performs other cleanup operations before the monitor.DestijlCommandManager is reclaimed by garbage collection.
+
CommandStatus RobotCloseCom()
Close communication with robot and wait acknowledge
+
CommandStatus RobotMove(int distance)
Move robot forward or backward, for a distance expressed in millimeter
+
CommandManagerStatus
Available status when sending command
+ +
CommandStatus RobotOpenCom()
Open communication with robot and wait acknowledge
+ +
CommandStatus DecodeStatus(CommandManager.CommandManagerStatus localStatus, string answer)
Provide DestijlCommandManager.CommandStatus based on status received by CommandManager.SendCommand and answer string
+
Commands and options parameters used in Destijl project when communicating with server ...
+
bool Open(string hostname)
Open the specified hostname server, using default port number.
+ + +
void Close()
Close connection to server
+
+
+ + + + diff --git a/software/monitor/monitor/docs/html/_monitor_u_i_8cs.html b/software/monitor/monitor/docs/html/_monitor_u_i_8cs.html new file mode 100644 index 0000000..e768a82 --- /dev/null +++ b/software/monitor/monitor/docs/html/_monitor_u_i_8cs.html @@ -0,0 +1,110 @@ + + + + + + + +Monitor: MonitorUI.cs File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitor +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
MonitorUI.cs File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + +

+Classes

class  MainWindow
 Main part of the program, behavior of main window More...
 
+
+
+ + + + diff --git a/software/monitor/monitor/docs/html/_monitor_u_i_8cs_source.html b/software/monitor/monitor/docs/html/_monitor_u_i_8cs_source.html new file mode 100644 index 0000000..aa2a168 --- /dev/null +++ b/software/monitor/monitor/docs/html/_monitor_u_i_8cs_source.html @@ -0,0 +1,151 @@ + + + + + + + +Monitor: MonitorUI.cs Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitor +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
MonitorUI.cs
+
+
+Go to the documentation of this file.
1 //
2 // MonitorUI.cs
3 //
4 // Author:
5 // Di MERCURIO Sébastien <dimercur@insa-toulouse.fr>
6 //
7 // Copyright (c) 2018 INSA - DGEI
8 //
9 // This program is free software: you can redistribute it and/or modify
10 // it under the terms of the GNU General Public License as published by
11 // the Free Software Foundation, either version 3 of the License, or
12 // (at your option) any later version.
13 //
14 // This program is distributed in the hope that it will be useful,
15 // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 // GNU General Public License for more details.
18 //
19 // You should have received a copy of the GNU General Public License
20 // along with this program. If not, see <http://www.gnu.org/licenses/>.
21 
22 
23 using System;
24 using Gtk;
25 using Gdk;
26 
27 using monitor;
28 
32 public partial class MainWindow : Gtk.Window
33 {
38 
42  private Pixbuf drawingareaCameraPixbuf;
43 
48  {
49  NotConnected,
50  ServerConnected,
51  RobotConnected
52  };
53 
57  private SystemState systemState = SystemState.NotConnected;
58 
62  private System.Timers.Timer batteryTimer;
63 
67  public MainWindow() : base(Gtk.WindowType.Toplevel)
68  {
69  Build();
70 
72 
73  // create new timer for battery request, every 10s
74  batteryTimer = new System.Timers.Timer(10000.0);
76 
77  // Customize controls
79  }
80 
84  public void AdjustControls()
85  {
86  // Change state of system, and grey every controls not needed
87  ChangeState(SystemState.NotConnected);
88 
89  //drawingareaCameraPixbuf = new Pixbuf((string)null);
90  // Load "no picture" image from disque
91  drawingareaCameraPixbuf = Pixbuf.LoadFromResource("monitor.ressources.missing_picture.png");
92 
93  // setup server controls
94  entryServerName.Text = Client.defaultIP;
95  entryServerPort.Text = Client.defaultPort.ToString();
96  entryTimeout.Text = "100";
97  }
98 
103  private void ChangeState(SystemState newState)
104  {
105  switch (newState)
106  {
107  case SystemState.NotConnected:
108  labelRobot.Sensitive = false;
109  gtkAlignmentRobot.Sensitive = false;
110 
111  labelRobotControl.Sensitive = false;
112  gtkAlignmentRobotControl.Sensitive = false;
113  boxCamera.Sensitive = false;
114 
115  buttonServerConnection.Label = "Connect";
116  buttonRobotActivation.Label = "Activate";
117  labelBatteryLevel.Text = "Unknown";
118 
119  checkButtonCameraOn.Active = false;
120  checkButtonRobotPosition.Active = false;
121  if (cmdManager != null) cmdManager.Close();
122 
123  batteryTimer.Stop();
124  break;
125  case SystemState.ServerConnected:
126  buttonServerConnection.Label = "Disconnect";
127  buttonRobotActivation.Label = "Activate";
128  labelBatteryLevel.Text = "Unknown";
129 
130  labelRobot.Sensitive = true;
131  gtkAlignmentRobot.Sensitive = true;
132  boxCamera.Sensitive = true;
133 
134  labelRobotControl.Sensitive = false;
135  gtkAlignmentRobotControl.Sensitive = false;
136 
137  batteryTimer.Stop();
138  break;
139  case SystemState.RobotConnected:
140  buttonRobotActivation.Label = "Reset";
141  labelRobotControl.Sensitive = true;
142  gtkAlignmentRobotControl.Sensitive = true;
143 
144  batteryTimer.Start();
145  break;
146  default:
147  labelRobot.Sensitive = false;
148  gtkAlignmentRobot.Sensitive = false;
149 
150  labelRobotControl.Sensitive = false;
151  gtkAlignmentRobotControl.Sensitive = false;
152  boxCamera.Sensitive = false;
153 
154  buttonServerConnection.Label = "Connect";
155  buttonRobotActivation.Label = "Activate";
156  labelBatteryLevel.Text = "Unknown";
157 
158  checkButtonCameraOn.Active = false;
159  checkButtonRobotPosition.Active = false;
160 
161  systemState = SystemState.NotConnected;
162 
163  return;
164  }
165 
166  systemState = newState;
167  }
168 
176  private void MessagePopup(MessageType type, ButtonsType buttons, string title, string message)
177  {
178  MessageDialog md = new MessageDialog(this, DialogFlags.DestroyWithParent, type, buttons, message)
179  {
180  Title = title
181  };
182 
183  md.Run();
184  md.Destroy();
185  }
186 
192  protected void OnDeleteEvent(object sender, DeleteEventArgs a)
193  {
194  Console.WriteLine("Bye bye");
195 
196  if (cmdManager != null) cmdManager.Close();
197  Application.Quit();
198  a.RetVal = true;
199  }
200 
207  public void OnCommandReceivedEvent(string header, string data, byte[] buffer)
208  {
209  // if we have received a valid message
210  if (header != null)
211  {
212  // print message content
213  Console.WriteLine("Received header (" + header.Length + "): " + header);
214  if (header.ToUpper() != DestijlCommandList.HeaderStmImage)
215  {
216  if (data != null) Console.WriteLine("Received data (" + data.Length + "): " + data);
217  }
218 
219  // depending on message received (based on header)
220  // launch correponding action
221  if (header.ToUpper() == DestijlCommandList.HeaderStmBat)
222  {
223  switch (data[0])
224  {
225  case '2':
226  labelBatteryLevel.Text = "High";
227  break;
228  case '1':
229  labelBatteryLevel.Text = "Low";
230  break;
231  case '0':
232  labelBatteryLevel.Text = "Empty";
233  break;
234  default:
235  labelBatteryLevel.Text = "Invalid value";
236  break;
237  }
238  }
239  else if (header.ToUpper() == DestijlCommandList.HeaderStmImage)
240  {
241  // if message is an image, convert it to a pixbuf
242  // that can be displayed
243  byte[] image = new byte[buffer.Length - 4];
244  System.Buffer.BlockCopy(buffer, 4, image, 0, image.Length);
245 
246  drawingareaCameraPixbuf = new Pixbuf(image);
247  drawingAreaCamera.QueueDraw();
248  }
249  }
250  }
251 
257  protected void OnQuitActionActivated(object sender, EventArgs e)
258  {
259  Console.WriteLine("Bye bye 2");
260  if (cmdManager != null) cmdManager.Close();
261  this.Destroy();
262  Application.Quit();
263  }
264 
270  protected void OnShowLogWindowActionActivated(object sender, EventArgs e)
271  {
272  MessagePopup(MessageType.Info,
273  ButtonsType.Ok, "Info",
274  "Logger not yet implemented");
275  }
276 
282  protected void OnButtonServerConnectionClicked(object sender, EventArgs e)
283  {
285 
286  // if we are currently connected
287  if (buttonServerConnection.Label == "Disconnect")
288  {
289  // Change state to disconnect and close connection
290  ChangeState(SystemState.NotConnected);
291  }
292  else // we are not currently connected to server
293  {
294  // if information about hostname or port are invalid, show a popup error
295  if ((entryServerName.Text == "") || (entryServerPort.Text == ""))
296  {
297  MessagePopup(MessageType.Error,
298  ButtonsType.Ok, "Error",
299  "Server name or port is invalid");
300  }
301  else
302  {
303  Console.WriteLine("Connecting to " + entryServerName.Text + ":" + entryServerPort.Text);
304  bool status = false;
305 
306  // try to convert timout string value to double. If that failed, default to 100 ms
307  try
308  {
309  cmdManager.timeout = Convert.ToDouble(entryTimeout.Text);
310  }
311  catch (Exception)
312  {
313  cmdManager.timeout = 100;
314  entryTimeout.Text = cmdManager.timeout.ToString();
315  }
316 
317  // try to connect to givn server.
318  try
319  {
320  status = cmdManager.Open(entryServerName.Text, Convert.ToInt32(entryServerPort.Text));
321  }
322  catch (Exception)
323  {
324  Console.WriteLine("Something went wrong during connection");
325  return;
326  }
327 
328  //if connection status is not ok, show an error popup
329  if (status != true)
330  {
331  MessagePopup(MessageType.Error,
332  ButtonsType.Ok, "Error",
333  "Unable to connect to server " + entryServerName.Text + ":" + Convert.ToInt32(entryServerPort.Text));
334  }
335  else // if we succed in connecting, open communication with robot
336  {
337  Console.Write("Send command RobotOpenCom: ");
338  statusCmd = cmdManager.RobotOpenCom();
339  Console.WriteLine(statusCmd.ToString());
340 
341  if (statusCmd == DestijlCommandManager.CommandStatus.Success)
342  {
343  ChangeState(SystemState.ServerConnected);
344  }
345  else // if communication with robot is not possible, show error
346  {
347  MessagePopup(MessageType.Error,
348  ButtonsType.Ok, "Error",
349  "Unable to open communication with robot.\nCheck that supervisor is accepting OPEN_COM_DMB command");
350 
351  cmdManager.Close();
352  }
353  }
354  }
355  }
356  }
357 
363  protected void OnButtonRobotActivationClicked(object sender, EventArgs e)
364  {
366 
367  //if robot is not activated
368  if (buttonRobotActivation.Label == "Activate")
369  {
370  // if a startup with watchdog is requested
371  if (radioButtonWithWatchdog.Active)
372  {
373  status = cmdManager.RobotStartWithWatchdog();
374  }
375  else // startup without watchdog
376  {
377  status = cmdManager.RobotStartWithoutWatchdog();
378  }
379 
380  // if status of command is ok, change state of system, enabling robot control
381  if (status == DestijlCommandManager.CommandStatus.Success)
382  {
383  ChangeState(SystemState.RobotConnected);
384  }
385  else // if status is not ok, depending of error, show appropriate error
386  {
387  if (status == DestijlCommandManager.CommandStatus.CommunicationLostWithServer)
388  {
389  MessagePopup(MessageType.Error, ButtonsType.Ok, "Error", "Connection lost with server");
390  ChangeState(SystemState.NotConnected);
391  }
392  else
393  {
394  MessagePopup(MessageType.Error, ButtonsType.Ok, "Error", "Command rejected\nCheck that supervisor accept \nDMB_START_WITH_WD and/or DMB_START_WITHOUT_WD");
395  }
396  }
397  }
398  else // If robot is already activated, request reset of robot
399  {
400  status = cmdManager.RobotReset();
401 
402  // if status of command is ok, change state of system, disabling robot control
403  if (status == DestijlCommandManager.CommandStatus.Success)
404  {
405  ChangeState(SystemState.ServerConnected);
406  }
407  else // if status is not ok, depending of error, show appropriate error
408  {
409  if (status == DestijlCommandManager.CommandStatus.CommunicationLostWithServer)
410  {
411  MessagePopup(MessageType.Error, ButtonsType.Ok, "Error", "Connection lost with server");
412  ChangeState(SystemState.NotConnected);
413  }
414  else
415  {
416  MessagePopup(MessageType.Error, ButtonsType.Ok, "Error", "Unknown error");
417  }
418  }
419  }
420  }
421 
427  protected void OnButtonMouvClicked(object sender, EventArgs e)
428  {
429  // depending on button clicked, launch appropriate action
430  if (sender == buttonRight)
431  {
432  cmdManager.RobotTurn(90);
433  }
434  else if (sender == buttonLeft)
435  {
436  cmdManager.RobotTurn(-90);
437  }
438  else if (sender == buttonForward)
439  {
440  cmdManager.RobotMove(100);
441  }
442  else if (sender == buttonDown)
443  {
444  cmdManager.RobotMove(-100);
445  }
446  else
447  {
448  MessagePopup(MessageType.Warning, ButtonsType.Ok, "Abnormal behavior", "Callback OnButtonMouvClicked called by unknown sender");
449  }
450  }
451 
457  void OnBatteryTimerElapsed(object sender, System.Timers.ElapsedEventArgs e)
458  {
460  batteryTimer.Stop();
461 
462  // if battery checkbox is checked, a request for battery level is done
463  if (checkButtonGetBattery.Active)
464  {
465  status = cmdManager.RobotGetBattery();
466 
467  // if status is not ok, show appropriate message and print "Unknown" for battery level
468  switch (status)
469  {
471  batteryTimer.Start();
472  break;
473  case DestijlCommandManager.CommandStatus.CommunicationLostWithServer:
474  Console.WriteLine("Error: Connection lost with server");
475  batteryTimer.Stop();
476  labelBatteryLevel.Text = "Unknown";
477 
478  ChangeState(SystemState.NotConnected);
479  break;
480  case DestijlCommandManager.CommandStatus.CommunicationLostWithRobot:
481  Console.WriteLine("Error: Connection lost with robot");
482  batteryTimer.Stop();
483  labelBatteryLevel.Text = "Unknown";
484 
485  ChangeState(SystemState.ServerConnected);
486  break;
487  default:
488  labelBatteryLevel.Text = "Unknown";
489  batteryTimer.Start();
490  break;
491  }
492  }
493  else batteryTimer.Start();
494  }
495 
501  protected void OnCheckButtonCameraOnClicked(object sender, EventArgs e)
502  {
503  // if camera is already active, switch it off
504  if (!checkButtonCameraOn.Active)
505  {
506  if (cmdManager.CameraClose() != DestijlCommandManager.CommandStatus.Success)
507  {
508  MessagePopup(MessageType.Error,
509  ButtonsType.Ok, "Error",
510  "Error when closing camera: bad answer for supervisor or timeout");
511  }
512  }
513  else // camera is not active, switch it on
514  {
515  if (cmdManager.CameraOpen() != DestijlCommandManager.CommandStatus.Success)
516  {
517  MessagePopup(MessageType.Error,
518  ButtonsType.Ok, "Error",
519  "Error when opening camera: bad answer for supervisor or timeout");
520  checkButtonCameraOn.Active = false;
521  }
522  }
523  }
524 
530  protected void OnCheckButtonRobotPositionClicked(object sender, EventArgs e)
531  {
532  // if server already send robot position, stop it
533  if (!checkButtonRobotPosition.Active)
534  {
536  {
537  MessagePopup(MessageType.Error,
538  ButtonsType.Ok, "Error",
539  "Error when stopping position reception: bad answer for supervisor or timeout");
540  }
541  }
542  else // start reception of robot position
543  {
544  if (cmdManager.CameraComputePosition() != DestijlCommandManager.CommandStatus.Success)
545  {
546  MessagePopup(MessageType.Error,
547  ButtonsType.Ok, "Error",
548  "Error when starting getting robot position: bad answer for supervisor or timeout");
549 
550  checkButtonRobotPosition.Active = false;
551  }
552  }
553  }
554 
560  protected void OnDrawingAreaCameraExposeEvent(object o, ExposeEventArgs args)
561  {
562  //Console.WriteLine("Event expose. Args = " + args.ToString());
563 
564  DrawingArea area = (DrawingArea)o;
565  Gdk.Pixbuf displayPixbuf;
566  int areaWidth, areaHeight;
567 
568  // Get graphic context for background
569  Gdk.GC gc = area.Style.BackgroundGC(Gtk.StateType.Normal);
570 
571  // get size of drawingarea widget
572  area.GdkWindow.GetSize(out areaWidth, out areaHeight);
573  int width = drawingareaCameraPixbuf.Width;
574  int height = drawingareaCameraPixbuf.Height;
575  float ratio = (float)width / (float)height;
576 
577  // if widget is smaller than image, reduce it
578  if (areaWidth <= width)
579  {
580  width = areaWidth;
581  height = (int)(width / ratio);
582  }
583 
584  // if image is smaller than widget, enlarge it
585  if (width > areaWidth)
586  {
587  width = areaWidth;
588  }
589 
590  if (height > areaHeight)
591  {
592  height = areaHeight;
593  }
594 
595  //scale original picture and copy result in local pixbuf
596  displayPixbuf = drawingareaCameraPixbuf.ScaleSimple(width, height, InterpType.Bilinear);
597 
598  // draw local pixbuff centered on drawingarea
599  area.GdkWindow.DrawPixbuf(gc, displayPixbuf,
600  0, 0,
601  (areaWidth - displayPixbuf.Width) / 2,
602  (areaHeight - displayPixbuf.Height) / 2,
603  displayPixbuf.Width, displayPixbuf.Height,
604  RgbDither.Normal, 0, 0);
605  }
606 
610  protected void DetectArena()
611  {
613  MessageDialog md = new MessageDialog(this, DialogFlags.DestroyWithParent,
614  MessageType.Question, ButtonsType.YesNo, "Arena is correct ?");
615  {
616  Title = "Check arena";
617  };
618 
619  ResponseType result = (ResponseType)md.Run();
620  md.Destroy();
621 
622  if (result == ResponseType.Yes)
623  {
624  status = cmdManager.CameraArenaConfirm();
625  }
626  else
627  {
628  status = cmdManager.CameraArenaInfirm();
629  }
630 
631  if (status != DestijlCommandManager.CommandStatus.Success)
632  {
633  MessagePopup(MessageType.Error,
634  ButtonsType.Ok, "Error",
635  "Unable to send Confirm or Infirm arena command to supervisor");
636  }
637  }
638 
644  protected void OnButtonAskArenaClicked(object sender, EventArgs e)
645  {
646  // Send command to server for arean rendering
647  if (cmdManager.CameraAskArena() != DestijlCommandManager.CommandStatus.Success)
648  {
649  MessagePopup(MessageType.Error,
650  ButtonsType.Ok, "Error",
651  "Error when asking for arena rendering");
652  return;
653  }
654 
655  // show popup and wait for user to say if arena is ok or not
656  DetectArena();
657  }
658 }
+ + +
CommandStatus RobotStartWithoutWatchdog()
Start robot, without enabling watchdog
+
const int defaultPort
Default server port number
Definition: Client.cs:41
+
void OnButtonServerConnectionClicked(object sender, EventArgs e)
Callback called by "buttonServerConnection" button
Definition: MonitorUI.cs:282
+
CommandStatus CameraArenaInfirm()
Reject arena detected (after requesting image of detected arena, using CameraAskArena ...
+
void Close()
Close connection to server
+
SystemState
List of availble state for the application
Definition: MonitorUI.cs:47
+ + +
void OnButtonRobotActivationClicked(object sender, EventArgs e)
Callback called when "buttonRobotactivation" is clicked
Definition: MonitorUI.cs:363
+
DestijlCommandManager cmdManager
Destijl command manager reference
Definition: MonitorUI.cs:37
+
CommandStatus RobotGetBattery()
Request robot battery level
+
void OnCheckButtonCameraOnClicked(object sender, EventArgs e)
Callback called when checkbutton for camera is clicked
Definition: MonitorUI.cs:501
+
CommandStatus RobotStartWithWatchdog()
Start robot, enabling watchdog
+
void DetectArena()
Show a popup asking user to tell if arena is correct or not
Definition: MonitorUI.cs:610
+
Pixbuf drawingareaCameraPixbuf
Pixbuffer used for displaying image
Definition: MonitorUI.cs:42
+
void OnDeleteEvent(object sender, DeleteEventArgs a)
Callback called when delete event is sent by window
Definition: MonitorUI.cs:192
+
Specialization class for command manager, which implemnent destijl protocol between monitor and serve...
+
CommandStatus CameraComputePosition()
Request robot position computing
+
CommandStatus CameraStopComputePosition()
Stop robot position computing
+
const string defaultIP
Default server name
Definition: Client.cs:36
+
CommandStatus CameraArenaConfirm()
Confirm arena detection (after requesting image of detected arena, using CameraAskArena ...
+
CommandStatus
List of available return status
+
void OnBatteryTimerElapsed(object sender, System.Timers.ElapsedEventArgs e)
Callback called when battery timer expired
Definition: MonitorUI.cs:457
+
void OnButtonMouvClicked(object sender, EventArgs e)
Callback called when user click on direction button
Definition: MonitorUI.cs:427
+
void OnShowLogWindowActionActivated(object sender, EventArgs e)
Callback called by "show log" menu
Definition: MonitorUI.cs:270
+
void OnCheckButtonRobotPositionClicked(object sender, EventArgs e)
Callback called when checkbutton robot position is clicked
Definition: MonitorUI.cs:530
+
CommandStatus CameraAskArena()
Request still image of detected arena
+
CommandStatus RobotReset()
Reset robot and let it in idle mode
+
void ChangeState(SystemState newState)
Method used to change controls visibility (greyed or not) depending on current state ...
Definition: MonitorUI.cs:103
+
void MessagePopup(MessageType type, ButtonsType buttons, string title, string message)
Display a popup message window
Definition: MonitorUI.cs:176
+
void OnQuitActionActivated(object sender, EventArgs e)
Callback called by "quit" menu
Definition: MonitorUI.cs:257
+
MainWindow()
Initializes a new instance of the MainWindow class.
Definition: MonitorUI.cs:67
+
CommandStatus CameraClose()
Close camera on remote device
+
CommandStatus RobotTurn(int angle)
Make robot turn left or right, for a given angle
+
CommandStatus CameraOpen()
Open camera on remote device
+
void OnDrawingAreaCameraExposeEvent(object o, ExposeEventArgs args)
Callback called when drawingarea need refresh
Definition: MonitorUI.cs:560
+ +
void OnButtonAskArenaClicked(object sender, EventArgs e)
Callback called when "detect Arena " button is clicked
Definition: MonitorUI.cs:644
+
Static class for TCP client
Definition: Client.cs:31
+
System.Timers.Timer batteryTimer
Timer for battery request
Definition: MonitorUI.cs:62
+
void AdjustControls()
Make some adjustement to controls, like disabling some controls
Definition: MonitorUI.cs:84
+
CommandStatus RobotMove(int distance)
Move robot forward or backward, for a distance expressed in millimeter
+
SystemState systemState
The state of the system. Can take a value from SystemState
Definition: MonitorUI.cs:57
+
Main part of the program, behavior of main window
Definition: MonitorUI.cs:32
+
CommandStatus RobotOpenCom()
Open communication with robot and wait acknowledge
+
Commands and options parameters used in Destijl project when communicating with server ...
+
void OnCommandReceivedEvent(string header, string data, byte[] buffer)
Callback called when new message is received from server
Definition: MonitorUI.cs:207
+
bool Open(string hostname)
Open the specified hostname server, using default port number.
+
double timeout
Timeout used for command with acknowledge
+
+
+ + + + diff --git a/software/monitor/monitor/docs/html/_program_8cs.html b/software/monitor/monitor/docs/html/_program_8cs.html new file mode 100644 index 0000000..881301d --- /dev/null +++ b/software/monitor/monitor/docs/html/_program_8cs.html @@ -0,0 +1,115 @@ + + + + + + + +Monitor: Program.cs File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitor +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Program.cs File Reference
+
+
+ +

Go to the source code of this file.

+ + + + +

+Classes

class  monitor.MainClass
 
+ + + +

+Namespaces

namespace  monitor
 
+
+
+ + + + diff --git a/software/monitor/monitor/docs/html/_program_8cs_source.html b/software/monitor/monitor/docs/html/_program_8cs_source.html new file mode 100644 index 0000000..dc93ac8 --- /dev/null +++ b/software/monitor/monitor/docs/html/_program_8cs_source.html @@ -0,0 +1,105 @@ + + + + + + + +Monitor: Program.cs Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitor +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Program.cs
+
+
+Go to the documentation of this file.
1 //
2 // Program.cs
3 //
4 // Author:
5 // Di MERCURIO Sébastien <dimercur@insa-toulouse.fr>
6 //
7 // Copyright (c) 2018 INSA - DGEI
8 //
9 // This program is free software: you can redistribute it and/or modify
10 // it under the terms of the GNU General Public License as published by
11 // the Free Software Foundation, either version 3 of the License, or
12 // (at your option) any later version.
13 //
14 // This program is distributed in the hope that it will be useful,
15 // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 // GNU General Public License for more details.
18 //
19 // You should have received a copy of the GNU General Public License
20 // along with this program. If not, see <http://www.gnu.org/licenses/>.
21 
22 using System;
23 using Gtk;
24 
25 namespace monitor
26 {
27  class MainClass
28  {
29  public static void Main(string[] args)
30  {
31  Application.Init();
32  MainWindow win = new MainWindow();
33  win.Show();
34  Application.Run();
35  }
36  }
37 }
+ +
static void Main(string[] args)
Definition: Program.cs:29
+ + +
Main part of the program, behavior of main window
Definition: MonitorUI.cs:32
+
+
+ + + + diff --git a/software/monitor/monitor/docs/html/annotated.html b/software/monitor/monitor/docs/html/annotated.html new file mode 100644 index 0000000..05b9f86 --- /dev/null +++ b/software/monitor/monitor/docs/html/annotated.html @@ -0,0 +1,110 @@ + + + + + + + +Monitor: Class List + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitor +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Class List
+
+
+
Here are the classes, structs, unions and interfaces with brief descriptions:
+
[detail level 12]
+ + + + + + + + +
 Nmonitor
 CClientStatic class for TCP client
 CCommandManagerCommand Manager. Use for timeout managment during reception of data Used as intermediate layer between TCP client class (Client) and application level managment of command and answers
 CDestijlCommandListCommands and options parameters used in Destijl project when communicating with server
 CDestijlCommandManagerSpecialization class for command manager, which implemnent destijl protocol between monitor and server
 CMainClass
 CRobotCommandListCommands used for robot messages
 CMainWindowMain part of the program, behavior of main window
+
+
+
+ + + + diff --git a/software/monitor/monitor/docs/html/annotated_dup.js b/software/monitor/monitor/docs/html/annotated_dup.js new file mode 100644 index 0000000..6714421 --- /dev/null +++ b/software/monitor/monitor/docs/html/annotated_dup.js @@ -0,0 +1,5 @@ +var annotated_dup = +[ + [ "monitor", "namespacemonitor.html", "namespacemonitor" ], + [ "MainWindow", "class_main_window.html", "class_main_window" ] +]; \ No newline at end of file diff --git a/software/monitor/monitor/docs/html/bc_s.png b/software/monitor/monitor/docs/html/bc_s.png new file mode 100644 index 0000000000000000000000000000000000000000..224b29aa9847d5a4b3902efd602b7ddf7d33e6c2 GIT binary patch literal 676 zcmV;V0$crwP)y__>=_9%My z{n931IS})GlGUF8K#6VIbs%684A^L3@%PlP2>_sk`UWPq@f;rU*V%rPy_ekbhXT&s z(GN{DxFv}*vZp`F>S!r||M`I*nOwwKX+BC~3P5N3-)Y{65c;ywYiAh-1*hZcToLHK ztpl1xomJ+Yb}K(cfbJr2=GNOnT!UFA7Vy~fBz8?J>XHsbZoDad^8PxfSa0GDgENZS zuLCEqzb*xWX2CG*b&5IiO#NzrW*;`VC9455M`o1NBh+(k8~`XCEEoC1Ybwf;vr4K3 zg|EB<07?SOqHp9DhLpS&bzgo70I+ghB_#)K7H%AMU3v}xuyQq9&Bm~++VYhF09a+U zl7>n7Jjm$K#b*FONz~fj;I->Bf;ule1prFN9FovcDGBkpg>)O*-}eLnC{6oZHZ$o% zXKW$;0_{8hxHQ>l;_*HATI(`7t#^{$(zLe}h*mqwOc*nRY9=?Sx4OOeVIfI|0V(V2 zBrW#G7Ss9wvzr@>H*`r>zE z+e8bOBgqIgldUJlG(YUDviMB`9+DH8n-s9SXRLyJHO1!=wY^79WYZMTa(wiZ!zP66 zA~!21vmF3H2{ngD;+`6j#~6j;$*f*G_2ZD1E;9(yaw7d-QnSCpK(cR1zU3qU0000< KMNUMnLSTYoA~SLT literal 0 HcmV?d00001 diff --git a/software/monitor/monitor/docs/html/bdwn.png b/software/monitor/monitor/docs/html/bdwn.png new file mode 100644 index 0000000000000000000000000000000000000000..940a0b950443a0bb1b216ac03c45b8a16c955452 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^>_E)H!3HEvS)PKZC{Gv1kP61Pb5HX&C2wk~_T + + + + + + +Monitor: Member List + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitor +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
MainWindow Member List
+
+
+ +

This is the complete list of members for MainWindow, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + +
AdjustControls()MainWindow
batteryTimerMainWindowprivate
ChangeState(SystemState newState)MainWindowprivate
cmdManagerMainWindowprivate
DetectArena()MainWindowprotected
drawingareaCameraPixbufMainWindowprivate
MainWindow()MainWindow
MessagePopup(MessageType type, ButtonsType buttons, string title, string message)MainWindowprivate
OnBatteryTimerElapsed(object sender, System.Timers.ElapsedEventArgs e)MainWindowprivate
OnButtonAskArenaClicked(object sender, EventArgs e)MainWindowprotected
OnButtonMouvClicked(object sender, EventArgs e)MainWindowprotected
OnButtonRobotActivationClicked(object sender, EventArgs e)MainWindowprotected
OnButtonServerConnectionClicked(object sender, EventArgs e)MainWindowprotected
OnCheckButtonCameraOnClicked(object sender, EventArgs e)MainWindowprotected
OnCheckButtonRobotPositionClicked(object sender, EventArgs e)MainWindowprotected
OnCommandReceivedEvent(string header, string data, byte[] buffer)MainWindow
OnDeleteEvent(object sender, DeleteEventArgs a)MainWindowprotected
OnDrawingAreaCameraExposeEvent(object o, ExposeEventArgs args)MainWindowprotected
OnQuitActionActivated(object sender, EventArgs e)MainWindowprotected
OnShowLogWindowActionActivated(object sender, EventArgs e)MainWindowprotected
SystemState enum nameMainWindowprivate
systemStateMainWindowprivate
+
+ + + + diff --git a/software/monitor/monitor/docs/html/class_main_window.html b/software/monitor/monitor/docs/html/class_main_window.html new file mode 100644 index 0000000..43f80b1 --- /dev/null +++ b/software/monitor/monitor/docs/html/class_main_window.html @@ -0,0 +1,1085 @@ + + + + + + + +Monitor: MainWindow Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitor +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ + +
+ +

Main part of the program, behavior of main window + More...

+
+Inheritance diagram for MainWindow:
+
+
Inheritance graph
+
[legend]
+
+Collaboration diagram for MainWindow:
+
+
Collaboration graph
+ + + + +
[legend]
+ + + + + + + + + + + +

+Public Member Functions

 MainWindow ()
 Initializes a new instance of the MainWindow class. More...
 
void AdjustControls ()
 Make some adjustement to controls, like disabling some controls More...
 
void OnCommandReceivedEvent (string header, string data, byte[] buffer)
 Callback called when new message is received from server More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Protected Member Functions

void OnDeleteEvent (object sender, DeleteEventArgs a)
 Callback called when delete event is sent by window More...
 
void OnQuitActionActivated (object sender, EventArgs e)
 Callback called by "quit" menu More...
 
void OnShowLogWindowActionActivated (object sender, EventArgs e)
 Callback called by "show log" menu More...
 
void OnButtonServerConnectionClicked (object sender, EventArgs e)
 Callback called by "buttonServerConnection" button More...
 
void OnButtonRobotActivationClicked (object sender, EventArgs e)
 Callback called when "buttonRobotactivation" is clicked More...
 
void OnButtonMouvClicked (object sender, EventArgs e)
 Callback called when user click on direction button More...
 
void OnCheckButtonCameraOnClicked (object sender, EventArgs e)
 Callback called when checkbutton for camera is clicked More...
 
void OnCheckButtonRobotPositionClicked (object sender, EventArgs e)
 Callback called when checkbutton robot position is clicked More...
 
void OnDrawingAreaCameraExposeEvent (object o, ExposeEventArgs args)
 Callback called when drawingarea need refresh More...
 
void DetectArena ()
 Show a popup asking user to tell if arena is correct or not More...
 
void OnButtonAskArenaClicked (object sender, EventArgs e)
 Callback called when "detect Arena " button is clicked More...
 
+ + + + +

+Private Types

enum  SystemState { SystemState.NotConnected, +SystemState.ServerConnected, +SystemState.RobotConnected + }
 List of availble state for the application More...
 
+ + + + + + + + + + +

+Private Member Functions

void ChangeState (SystemState newState)
 Method used to change controls visibility (greyed or not) depending on current state More...
 
void MessagePopup (MessageType type, ButtonsType buttons, string title, string message)
 Display a popup message window More...
 
void OnBatteryTimerElapsed (object sender, System.Timers.ElapsedEventArgs e)
 Callback called when battery timer expired More...
 
+ + + + + + + + + + + + + +

+Private Attributes

DestijlCommandManager cmdManager
 Destijl command manager reference More...
 
Pixbuf drawingareaCameraPixbuf
 Pixbuffer used for displaying image More...
 
SystemState systemState = SystemState.NotConnected
 The state of the system. Can take a value from SystemState More...
 
System.Timers.Timer batteryTimer
 Timer for battery request More...
 
+

Detailed Description

+

Main part of the program, behavior of main window

+ +

Definition at line 32 of file MonitorUI.cs.

+

Member Enumeration Documentation

+ +

◆ SystemState

+ +
+
+ + + + + +
+ + + + +
enum MainWindow.SystemState
+
+strongprivate
+
+ +

List of availble state for the application

+ + + + +
Enumerator
NotConnected 
ServerConnected 
RobotConnected 
+ +

Definition at line 47 of file MonitorUI.cs.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ MainWindow()

+ +
+
+ + + + + + + +
MainWindow.MainWindow ()
+
+ +

Initializes a new instance of the MainWindow class.

+ +

Definition at line 67 of file MonitorUI.cs.

+ +
+
+

Member Function Documentation

+ +

◆ AdjustControls()

+ +
+
+ + + + + + + +
void MainWindow.AdjustControls ()
+
+ +

Make some adjustement to controls, like disabling some controls

+ +

Definition at line 84 of file MonitorUI.cs.

+ +
+
+ +

◆ ChangeState()

+ +
+
+ + + + + +
+ + + + + + + + +
void MainWindow.ChangeState (SystemState newState)
+
+private
+
+ +

Method used to change controls visibility (greyed or not) depending on current state

+
Parameters
+ + +
newStateNew state
+
+
+ +

Definition at line 103 of file MonitorUI.cs.

+ +
+
+ +

◆ DetectArena()

+ +
+
+ + + + + +
+ + + + + + + +
void MainWindow.DetectArena ()
+
+protected
+
+ +

Show a popup asking user to tell if arena is correct or not

+ +

Definition at line 610 of file MonitorUI.cs.

+ +
+
+ +

◆ MessagePopup()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void MainWindow.MessagePopup (MessageType type,
ButtonsType buttons,
string title,
string message 
)
+
+private
+
+ +

Display a popup message window

+
Parameters
+ + + + + +
typeType of popup window (question, error, information,...)
buttonsButtons available on popup window
titleTitle of window
messageMessage
+
+
+ +

Definition at line 176 of file MonitorUI.cs.

+ +
+
+ +

◆ OnBatteryTimerElapsed()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void MainWindow.OnBatteryTimerElapsed (object sender,
System.Timers.ElapsedEventArgs e 
)
+
+private
+
+ +

Callback called when battery timer expired

+
Parameters
+ + + +
senderSender object
eEvent
+
+
+ +

Definition at line 457 of file MonitorUI.cs.

+ +
+
+ +

◆ OnButtonAskArenaClicked()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void MainWindow.OnButtonAskArenaClicked (object sender,
EventArgs e 
)
+
+protected
+
+ +

Callback called when "detect Arena " button is clicked

+
Parameters
+ + + +
senderSender object
eEvent
+
+
+ +

Definition at line 644 of file MonitorUI.cs.

+ +
+
+ +

◆ OnButtonMouvClicked()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void MainWindow.OnButtonMouvClicked (object sender,
EventArgs e 
)
+
+protected
+
+ +

Callback called when user click on direction button

+
Parameters
+ + + +
senderSender button
eEvent
+
+
+ +

Definition at line 427 of file MonitorUI.cs.

+ +
+
+ +

◆ OnButtonRobotActivationClicked()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void MainWindow.OnButtonRobotActivationClicked (object sender,
EventArgs e 
)
+
+protected
+
+ +

Callback called when "buttonRobotactivation" is clicked

+
Parameters
+ + + +
senderSender object
eEvent
+
+
+ +

Definition at line 363 of file MonitorUI.cs.

+ +
+
+ +

◆ OnButtonServerConnectionClicked()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void MainWindow.OnButtonServerConnectionClicked (object sender,
EventArgs e 
)
+
+protected
+
+ +

Callback called by "buttonServerConnection" button

+
Parameters
+ + + +
senderSender object
eEvent
+
+
+ +

Definition at line 282 of file MonitorUI.cs.

+ +
+
+ +

◆ OnCheckButtonCameraOnClicked()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void MainWindow.OnCheckButtonCameraOnClicked (object sender,
EventArgs e 
)
+
+protected
+
+ +

Callback called when checkbutton for camera is clicked

+
Parameters
+ + + +
senderSender object
eEvent
+
+
+ +

Definition at line 501 of file MonitorUI.cs.

+ +
+
+ +

◆ OnCheckButtonRobotPositionClicked()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void MainWindow.OnCheckButtonRobotPositionClicked (object sender,
EventArgs e 
)
+
+protected
+
+ +

Callback called when checkbutton robot position is clicked

+
Parameters
+ + + +
senderSender object
eEvent
+
+
+ +

Definition at line 530 of file MonitorUI.cs.

+ +
+
+ +

◆ OnCommandReceivedEvent()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void MainWindow.OnCommandReceivedEvent (string header,
string data,
byte [] buffer 
)
+
+ +

Callback called when new message is received from server

+
Parameters
+ + + + +
headerHeader of message
dataData of message
bufferRaw buffer corresponding of received message
+
+
+ +

Definition at line 207 of file MonitorUI.cs.

+ +
+
+ +

◆ OnDeleteEvent()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void MainWindow.OnDeleteEvent (object sender,
DeleteEventArgs a 
)
+
+protected
+
+ +

Callback called when delete event is sent by window

+
Parameters
+ + + +
senderSender object
aNot really sure of what it is...
+
+
+ +

Definition at line 192 of file MonitorUI.cs.

+ +
+
+ +

◆ OnDrawingAreaCameraExposeEvent()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void MainWindow.OnDrawingAreaCameraExposeEvent (object o,
ExposeEventArgs args 
)
+
+protected
+
+ +

Callback called when drawingarea need refresh

+
Parameters
+ + + +
oSender object
argsExpose arguments
+
+
+ +

Definition at line 560 of file MonitorUI.cs.

+ +
+
+ +

◆ OnQuitActionActivated()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void MainWindow.OnQuitActionActivated (object sender,
EventArgs e 
)
+
+protected
+
+ +

Callback called by "quit" menu

+
Parameters
+ + + +
senderSender object
eEvent
+
+
+ +

Definition at line 257 of file MonitorUI.cs.

+ +
+
+ +

◆ OnShowLogWindowActionActivated()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void MainWindow.OnShowLogWindowActionActivated (object sender,
EventArgs e 
)
+
+protected
+
+ +

Callback called by "show log" menu

+
Parameters
+ + + +
senderSender object
eEvent
+
+
+ +

Definition at line 270 of file MonitorUI.cs.

+ +
+
+

Member Data Documentation

+ +

◆ batteryTimer

+ +
+
+ + + + + +
+ + + + +
System.Timers.Timer MainWindow.batteryTimer
+
+private
+
+ +

Timer for battery request

+ +

Definition at line 62 of file MonitorUI.cs.

+ +
+
+ +

◆ cmdManager

+ +
+
+ + + + + +
+ + + + +
DestijlCommandManager MainWindow.cmdManager
+
+private
+
+ +

Destijl command manager reference

+ +

Definition at line 37 of file MonitorUI.cs.

+ +
+
+ +

◆ drawingareaCameraPixbuf

+ +
+
+ + + + + +
+ + + + +
Pixbuf MainWindow.drawingareaCameraPixbuf
+
+private
+
+ +

Pixbuffer used for displaying image

+ +

Definition at line 42 of file MonitorUI.cs.

+ +
+
+ +

◆ systemState

+ +
+
+ + + + + +
+ + + + +
SystemState MainWindow.systemState = SystemState.NotConnected
+
+private
+
+ +

The state of the system. Can take a value from SystemState

+ +

Definition at line 57 of file MonitorUI.cs.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/software/monitor/monitor/docs/html/class_main_window.js b/software/monitor/monitor/docs/html/class_main_window.js new file mode 100644 index 0000000..0ad7f99 --- /dev/null +++ b/software/monitor/monitor/docs/html/class_main_window.js @@ -0,0 +1,29 @@ +var class_main_window = +[ + [ "SystemState", "class_main_window.html#a7b18ca1f8f71faf272c9856aaf7b8e3d", [ + [ "NotConnected", "class_main_window.html#a7b18ca1f8f71faf272c9856aaf7b8e3da4075072d219e061ca0f3124f8fbef463", null ], + [ "ServerConnected", "class_main_window.html#a7b18ca1f8f71faf272c9856aaf7b8e3da911ba363fd1483b5b36fda7b0149cf76", null ], + [ "RobotConnected", "class_main_window.html#a7b18ca1f8f71faf272c9856aaf7b8e3da9761e78f9ae0d6f598d953b4d9e839e1", null ] + ] ], + [ "MainWindow", "class_main_window.html#af607d50e4d1b04d3c494661489283f45", null ], + [ "AdjustControls", "class_main_window.html#a9a0f3d4cd871609f12d328af2f588664", null ], + [ "ChangeState", "class_main_window.html#aedc27cabbe1604313a452fcbf3ffe9f4", null ], + [ "DetectArena", "class_main_window.html#a89c79ce9ca4114ca9c50f32dc080e9cd", null ], + [ "MessagePopup", "class_main_window.html#afc4f923aaa481a93dddaff6303efb9e0", null ], + [ "OnBatteryTimerElapsed", "class_main_window.html#af303b70c08cda04a76f6418f727c4891", null ], + [ "OnButtonAskArenaClicked", "class_main_window.html#a31e299085d6286d680bd488c73fdff82", null ], + [ "OnButtonMouvClicked", "class_main_window.html#a7f8d06747f887216ab8c941ad10cb48b", null ], + [ "OnButtonRobotActivationClicked", "class_main_window.html#a2b5e11a49a10b24c59bebb377cdfeae8", null ], + [ "OnButtonServerConnectionClicked", "class_main_window.html#ac0acc6c3a63f405f14ec8e4d132a2661", null ], + [ "OnCheckButtonCameraOnClicked", "class_main_window.html#af4b587cdd614d5bdb8d9158a1f59e4fa", null ], + [ "OnCheckButtonRobotPositionClicked", "class_main_window.html#a20d07605619027d82a30552f294b128f", null ], + [ "OnCommandReceivedEvent", "class_main_window.html#a4b651f10b9079c128b9e36d15ad10211", null ], + [ "OnDeleteEvent", "class_main_window.html#a64bdcb29cebb58957790da1ee2733fe1", null ], + [ "OnDrawingAreaCameraExposeEvent", "class_main_window.html#afe4b0001f191554aed5d9b65208a06f5", null ], + [ "OnQuitActionActivated", "class_main_window.html#ab54b643c364b46a150f6f993267bb709", null ], + [ "OnShowLogWindowActionActivated", "class_main_window.html#a87132738a6ca496303940d56e091bdc7", null ], + [ "batteryTimer", "class_main_window.html#a57f0325d8b8a63be586001b9a469d9ae", null ], + [ "cmdManager", "class_main_window.html#a0b60450970b8a6fb6e016d5c0728e474", null ], + [ "drawingareaCameraPixbuf", "class_main_window.html#a41581e449b18e87acbdff5baa12c2050", null ], + [ "systemState", "class_main_window.html#a105025ee1bdfac188f1ce640d593550d", null ] +]; \ No newline at end of file diff --git a/software/monitor/monitor/docs/html/class_main_window__coll__graph.map b/software/monitor/monitor/docs/html/class_main_window__coll__graph.map new file mode 100644 index 0000000..c58c8e3 --- /dev/null +++ b/software/monitor/monitor/docs/html/class_main_window__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/software/monitor/monitor/docs/html/class_main_window__coll__graph.md5 b/software/monitor/monitor/docs/html/class_main_window__coll__graph.md5 new file mode 100644 index 0000000..b669cdd --- /dev/null +++ b/software/monitor/monitor/docs/html/class_main_window__coll__graph.md5 @@ -0,0 +1 @@ +150be75c198c88c6d6956083b335a70c \ No newline at end of file diff --git a/software/monitor/monitor/docs/html/class_main_window__coll__graph.png b/software/monitor/monitor/docs/html/class_main_window__coll__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..97f7a0c19b06eaa9b9ad93943305d515af47df1c GIT binary patch literal 17454 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 UV1Nd`Zv%1f?nAkcGLM7)KM3s-`v3p{ literal 0 HcmV?d00001 diff --git a/software/monitor/monitor/docs/html/class_main_window__inherit__graph.map b/software/monitor/monitor/docs/html/class_main_window__inherit__graph.map new file mode 100644 index 0000000..10b2148 --- /dev/null +++ b/software/monitor/monitor/docs/html/class_main_window__inherit__graph.map @@ -0,0 +1,2 @@ + + diff --git a/software/monitor/monitor/docs/html/class_main_window__inherit__graph.md5 b/software/monitor/monitor/docs/html/class_main_window__inherit__graph.md5 new file mode 100644 index 0000000..f51a213 --- /dev/null +++ b/software/monitor/monitor/docs/html/class_main_window__inherit__graph.md5 @@ -0,0 +1 @@ +05926267b1243e6f0056859236801ddc \ No newline at end of file diff --git a/software/monitor/monitor/docs/html/class_main_window__inherit__graph.png b/software/monitor/monitor/docs/html/class_main_window__inherit__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..efcd5766877eacd2b8ea146cc39077dd87692e8d GIT binary patch literal 3333 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 + + + + + + +Monitor: Class Index + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitor +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Class Index
+
+
+
c | d | m | r
+ + + + + + +
  c  
+
CommandManager (monitor)   DestijlCommandManager (monitor)   MainWindow   
  d  
+
  m  
+
  r  
+
Client (monitor)   
DestijlCommandList (monitor)   MainClass (monitor)   RobotCommandList (monitor)   
+
c | d | m | r
+
+
+ + + + diff --git a/software/monitor/monitor/docs/html/classmonitor_1_1_client-members.html b/software/monitor/monitor/docs/html/classmonitor_1_1_client-members.html new file mode 100644 index 0000000..bed38ab --- /dev/null +++ b/software/monitor/monitor/docs/html/classmonitor_1_1_client-members.html @@ -0,0 +1,119 @@ + + + + + + + +Monitor: Member List + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitor +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
monitor.Client Member List
+
+
+ +

This is the complete list of members for monitor.Client, including all inherited members.

+ + + + + + + + + + + + + + + + + + + +
buffermonitor.Clientprivatestatic
BufferMaxSizemonitor.Clientprivate
clientmonitor.Clientprivatestatic
Close()monitor.Clientstatic
defaultIPmonitor.Client
defaultPortmonitor.Client
initialReceiveBufferIndexmonitor.Clientprivatestatic
messagemonitor.Clientprivatestatic
newLengthmonitor.Clientprivatestatic
Open(string host)monitor.Clientstatic
Open(string host, int port)monitor.Clientstatic
packetCountermonitor.Clientprivatestatic
ReadCallback(IAsyncResult ar)monitor.Clientprivatestatic
readEventmonitor.Clientstatic
ReadEvent(string msg, byte[] buffer)monitor.Client
receiveBuffermonitor.Clientprivatestatic
streammonitor.Clientprivatestatic
Write(string mes)monitor.Clientstatic
+
+ + + + diff --git a/software/monitor/monitor/docs/html/classmonitor_1_1_client.html b/software/monitor/monitor/docs/html/classmonitor_1_1_client.html new file mode 100644 index 0000000..2d201a8 --- /dev/null +++ b/software/monitor/monitor/docs/html/classmonitor_1_1_client.html @@ -0,0 +1,697 @@ + + + + + + + +Monitor: monitor.Client Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitor +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ + +
+ +

Static class for TCP client + More...

+ + + + + +

+Public Member Functions

delegate void ReadEvent (string msg, byte[] buffer)
 Callback to send received message to upper level More...
 
+ + + + + + + + + + + + + +

+Static Public Member Functions

static bool Open (string host)
 Open connection to server "host", on default port number. More...
 
static bool Open (string host, int port)
 Open connection to server "host", with port number "port" More...
 
static void Close ()
 Close connection to server More...
 
static void Write (string mes)
 Write a string to server More...
 
+ + + + + + + +

+Public Attributes

const string defaultIP = "localhost"
 Default server name More...
 
const int defaultPort = 4500
 Default server port number More...
 
+ + + +

+Static Public Attributes

static ReadEvent readEvent = null
 
+ + + + +

+Static Private Member Functions

static void ReadCallback (IAsyncResult ar)
 Callback call by stream.BeginRead after reception of newLength data More...
 
+ + + + +

+Private Attributes

const int BufferMaxSize = 512
 Size of internal buffer used when reading data from server More...
 
+ + + + + + + + + + + + + + + + + + + + + + +

+Static Private Attributes

static TcpClient client = null
 Tcp client object More...
 
static NetworkStream stream = null
 Stream object used for communication More...
 
static byte [] buffer = new byte[BufferMaxSize]
 Internal buffer used when reading data from server More...
 
static byte [] receiveBuffer
 buffer containing received message from TCP server Used to concatenate internal buffers into one More...
 
static int initialReceiveBufferIndex = 0
 
static StringBuilder message = new StringBuilder()
 String containing received message from tcp server More...
 
static int newLength = 1
 
static int packetCounter = 0
 
+

Detailed Description

+

Static class for TCP client

+ +

Definition at line 31 of file Client.cs.

+

Member Function Documentation

+ +

◆ Close()

+ +
+
+ + + + + +
+ + + + + + + +
static void monitor.Client.Close ()
+
+static
+
+ +

Close connection to server

+ +

Definition at line 141 of file Client.cs.

+ +
+
+ +

◆ Open() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + +
static bool monitor.Client.Open (string host)
+
+static
+
+ +

Open connection to server "host", on default port number.

+
Returns
true if connection succeded, false otherwise
+
Parameters
+ + +
hostHostname to connect to
+
+
+ +

Definition at line 89 of file Client.cs.

+ +
+
+ +

◆ Open() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
static bool monitor.Client.Open (string host,
int port 
)
+
+static
+
+ +

Open connection to server "host", with port number "port"

+
Returns
true if connection succeded, false otherwise
+
Parameters
+ + + +
hostHostname to connect to
portPort number for connection
+
+
+ +

Definition at line 100 of file Client.cs.

+ +
+
+ +

◆ ReadCallback()

+ +
+
+ + + + + +
+ + + + + + + + +
static void monitor.Client.ReadCallback (IAsyncResult ar)
+
+staticprivate
+
+ +

Callback call by stream.BeginRead after reception of newLength data

+
Parameters
+ + +
arNot sure of what is it, but needed for terminate reading
+
+
+ +

Definition at line 151 of file Client.cs.

+ +
+
+ +

◆ ReadEvent()

+ +
+
+ + + + + + + + + + + + + + + + + + +
delegate void monitor.Client.ReadEvent (string msg,
byte [] buffer 
)
+
+ +

Callback to send received message to upper level

+ +
+
+ +

◆ Write()

+ +
+
+ + + + + +
+ + + + + + + + +
static void monitor.Client.Write (string mes)
+
+static
+
+ +

Write a string to server

+
Returns
Nothing
+
Parameters
+ + +
mesMessage to send to server
+
+
+ +

Definition at line 219 of file Client.cs.

+ +
+
+

Member Data Documentation

+ +

◆ buffer

+ +
+
+ + + + + +
+ + + + +
byte [] monitor.Client.buffer = new byte[BufferMaxSize]
+
+staticprivate
+
+ +

Internal buffer used when reading data from server

+ +

Definition at line 61 of file Client.cs.

+ +
+
+ +

◆ BufferMaxSize

+ +
+
+ + + + + +
+ + + + +
const int monitor.Client.BufferMaxSize = 512
+
+private
+
+ +

Size of internal buffer used when reading data from server

+ +

Definition at line 56 of file Client.cs.

+ +
+
+ +

◆ client

+ +
+
+ + + + + +
+ + + + +
TcpClient monitor.Client.client = null
+
+staticprivate
+
+ +

Tcp client object

+ +

Definition at line 46 of file Client.cs.

+ +
+
+ +

◆ defaultIP

+ +
+
+ + + + +
const string monitor.Client.defaultIP = "localhost"
+
+ +

Default server name

+ +

Definition at line 36 of file Client.cs.

+ +
+
+ +

◆ defaultPort

+ +
+
+ + + + +
const int monitor.Client.defaultPort = 4500
+
+ +

Default server port number

+ +

Definition at line 41 of file Client.cs.

+ +
+
+ +

◆ initialReceiveBufferIndex

+ +
+
+ + + + + +
+ + + + +
int monitor.Client.initialReceiveBufferIndex = 0
+
+staticprivate
+
+ +

Definition at line 69 of file Client.cs.

+ +
+
+ +

◆ message

+ +
+
+ + + + + +
+ + + + +
StringBuilder monitor.Client.message = new StringBuilder()
+
+staticprivate
+
+ +

String containing received message from tcp server

+ +

Definition at line 74 of file Client.cs.

+ +
+
+ +

◆ newLength

+ +
+
+ + + + + +
+ + + + +
int monitor.Client.newLength = 1
+
+staticprivate
+
+ +

Definition at line 75 of file Client.cs.

+ +
+
+ +

◆ packetCounter

+ +
+
+ + + + + +
+ + + + +
int monitor.Client.packetCounter = 0
+
+staticprivate
+
+ +

Definition at line 76 of file Client.cs.

+ +
+
+ +

◆ readEvent

+ +
+
+ + + + + +
+ + + + +
ReadEvent monitor.Client.readEvent = null
+
+static
+
+ +

Definition at line 82 of file Client.cs.

+ +
+
+ +

◆ receiveBuffer

+ +
+
+ + + + + +
+ + + + +
byte [] monitor.Client.receiveBuffer
+
+staticprivate
+
+ +

buffer containing received message from TCP server Used to concatenate internal buffers into one

+ +

Definition at line 67 of file Client.cs.

+ +
+
+ +

◆ stream

+ +
+
+ + + + + +
+ + + + +
NetworkStream monitor.Client.stream = null
+
+staticprivate
+
+ +

Stream object used for communication

+ +

Definition at line 51 of file Client.cs.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/software/monitor/monitor/docs/html/classmonitor_1_1_client.js b/software/monitor/monitor/docs/html/classmonitor_1_1_client.js new file mode 100644 index 0000000..1b33c54 --- /dev/null +++ b/software/monitor/monitor/docs/html/classmonitor_1_1_client.js @@ -0,0 +1,21 @@ +var classmonitor_1_1_client = +[ + [ "Close", "classmonitor_1_1_client.html#ae6c0cbe19d622b008fd1f6d01d9cb315", null ], + [ "Open", "classmonitor_1_1_client.html#af802cd428aa08b9604e2246f11e1fe61", null ], + [ "Open", "classmonitor_1_1_client.html#aee6f8f594a9496600b78c37d6da457d4", null ], + [ "ReadCallback", "classmonitor_1_1_client.html#a8dd2eb26c164d0f566dd6c679ba340e0", null ], + [ "ReadEvent", "classmonitor_1_1_client.html#ae85f4aa567a41488d5c65e470ae15378", null ], + [ "Write", "classmonitor_1_1_client.html#a081413295e7a96662b39b2ddec854b02", null ], + [ "buffer", "classmonitor_1_1_client.html#abd5c33a23e0fab7b369b59ac296c7762", null ], + [ "BufferMaxSize", "classmonitor_1_1_client.html#acbc4cae14536eccb5297aacdadb84f29", null ], + [ "client", "classmonitor_1_1_client.html#a4867b48ebfa930a80662c552f2911430", null ], + [ "defaultIP", "classmonitor_1_1_client.html#a326a20fe68a86757e16a6e45b8012640", null ], + [ "defaultPort", "classmonitor_1_1_client.html#ad0a9bfc361ccef7443625f399e67f84a", null ], + [ "initialReceiveBufferIndex", "classmonitor_1_1_client.html#afbbf4cf14d1a11747f6103e726dee77e", null ], + [ "message", "classmonitor_1_1_client.html#a2ddb7073c4bf8a42c231939d5c21d68e", null ], + [ "newLength", "classmonitor_1_1_client.html#a7083940b8fea9df2b080e3844549e805", null ], + [ "packetCounter", "classmonitor_1_1_client.html#a7eb13840c83beb2ab191cae3ba3210c9", null ], + [ "readEvent", "classmonitor_1_1_client.html#a01cb2a551d81fd82d2f7015e177f0f18", null ], + [ "receiveBuffer", "classmonitor_1_1_client.html#aade32a6043e0dc629509f0e1c0112a24", null ], + [ "stream", "classmonitor_1_1_client.html#a8de2a9e4fe2c2e896849ddd33d80d759", null ] +]; \ No newline at end of file diff --git a/software/monitor/monitor/docs/html/classmonitor_1_1_command_manager-members.html b/software/monitor/monitor/docs/html/classmonitor_1_1_command_manager-members.html new file mode 100644 index 0000000..e8d6e9a --- /dev/null +++ b/software/monitor/monitor/docs/html/classmonitor_1_1_command_manager-members.html @@ -0,0 +1,117 @@ + + + + + + + +Monitor: Member List + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitor +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
monitor.CommandManager Member List
+
+
+ +

This is the complete list of members for monitor.CommandManager, including all inherited members.

+ + + + + + + + + + + + + + + + + +
Close()monitor.CommandManager
CommandManager(CommandReceivedEvent callback)monitor.CommandManager
CommandManagerStatus enum namemonitor.CommandManager
commandReceivedEventmonitor.CommandManager
CommandReceivedEvent(string msg, byte[] buffer)monitor.CommandManager
isBusymonitor.CommandManagerprivate
messageReceivedmonitor.CommandManagerprivate
OnMessageReception(string message, byte[] buffer)monitor.CommandManagerprivate
OnMessageTimeout(object sender, System.Timers.ElapsedEventArgs e)monitor.CommandManagerprivate
Open(string hostname)monitor.CommandManager
Open(string hostname, int port)monitor.CommandManager
SendCommand(string cmd, out string answer, double timeout)monitor.CommandManager
waitEventmonitor.CommandManagerprivate
waitForAcknowledgemonitor.CommandManagerprivate
waitTimermonitor.CommandManagerprivate
~CommandManager()monitor.CommandManagerprivate
+
+ + + + diff --git a/software/monitor/monitor/docs/html/classmonitor_1_1_command_manager.html b/software/monitor/monitor/docs/html/classmonitor_1_1_command_manager.html new file mode 100644 index 0000000..20df466 --- /dev/null +++ b/software/monitor/monitor/docs/html/classmonitor_1_1_command_manager.html @@ -0,0 +1,683 @@ + + + + + + + +Monitor: monitor.CommandManager Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitor +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ + +
+ +

Command Manager. Use for timeout managment during reception of data Used as intermediate layer between TCP client class (Client) and application level managment of command and answers + More...

+
+Collaboration diagram for monitor.CommandManager:
+
+
Collaboration graph
+
[legend]
+ + + + + +

+Public Types

enum  CommandManagerStatus { CommandManagerStatus.AnswerReceived, +CommandManagerStatus.Timeout, +CommandManagerStatus.Busy + }
 Available status when sending command More...
 
+ + + + + + + + + + + + + + + + + + + +

+Public Member Functions

delegate void CommandReceivedEvent (string msg, byte[] buffer)
 Callback for sending received data to upper level More...
 
 CommandManager (CommandReceivedEvent callback)
 Initializes a new instance of the T:monitor.CommandManager class. More...
 
bool Open (string hostname)
 Open the specified hostname server, using default port number. More...
 
bool Open (string hostname, int port)
 Open connection to server "host", with port number "port" More...
 
void Close ()
 Close connection to server More...
 
CommandManagerStatus SendCommand (string cmd, out string answer, double timeout)
 Sends a command to TCP server More...
 
+ + + +

+Public Attributes

CommandReceivedEvent commandReceivedEvent = null
 
+ + + + + + + + + + +

+Private Member Functions

 ~CommandManager ()
 Releases unmanaged resources and performs other cleanup operations before the T:monitor.CommandManager is reclaimed by garbage collection. More...
 
void OnMessageReception (string message, byte[] buffer)
 Callback called by Client class after reception of new message More...
 
void OnMessageTimeout (object sender, System.Timers.ElapsedEventArgs e)
 Callback called by stopwatch on timeout More...
 
+ + + + + + + + + + + + + + + +

+Private Attributes

System.Timers.Timer waitTimer = new System.Timers.Timer()
 Timer for managing timeout More...
 
ManualResetEvent waitEvent = new ManualResetEvent(false)
 
bool waitForAcknowledge = false
 Flag to tell rogram to wait for an acknowledge from server More...
 
string messageReceived = null
 received message More...
 
bool isBusy = false
 flag indicating command manager is currently busy waiting an acknowledge More...
 
+

Detailed Description

+

Command Manager. Use for timeout managment during reception of data Used as intermediate layer between TCP client class (Client) and application level managment of command and answers

+ +

Definition at line 31 of file CommandManager.cs.

+

Member Enumeration Documentation

+ +

◆ CommandManagerStatus

+ +
+
+ + + + + +
+ + + + +
enum monitor.CommandManager.CommandManagerStatus
+
+strong
+
+ +

Available status when sending command

+ + + + +
Enumerator
AnswerReceived 
Timeout 
Busy 
+ +

Definition at line 63 of file CommandManager.cs.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ CommandManager()

+ +
+
+ + + + + + + + +
monitor.CommandManager.CommandManager (CommandReceivedEvent callback)
+
+ +

Initializes a new instance of the T:monitor.CommandManager class.

+
Parameters
+ + +
callbackCallback used when new message are received
+
+
+ +

Definition at line 74 of file CommandManager.cs.

+ +
+
+ +

◆ ~CommandManager()

+ +
+
+ + + + + +
+ + + + + + + +
monitor.CommandManager.~CommandManager ()
+
+private
+
+ +

Releases unmanaged resources and performs other cleanup operations before the T:monitor.CommandManager is reclaimed by garbage collection.

+ +

Definition at line 86 of file CommandManager.cs.

+ +
+
+

Member Function Documentation

+ +

◆ Close()

+ +
+
+ + + + + + + +
void monitor.CommandManager.Close ()
+
+ +

Close connection to server

+ +

Definition at line 115 of file CommandManager.cs.

+ +
+
+ +

◆ CommandReceivedEvent()

+ +
+
+ + + + + + + + + + + + + + + + + + +
delegate void monitor.CommandManager.CommandReceivedEvent (string msg,
byte [] buffer 
)
+
+ +

Callback for sending received data to upper level

+ +
+
+ +

◆ OnMessageReception()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void monitor.CommandManager.OnMessageReception (string message,
byte [] buffer 
)
+
+private
+
+ +

Callback called by Client class after reception of new message

+
Parameters
+ + + +
messageMessage received from server
bufferRaw buffer reived from server
+
+
+ +

Definition at line 125 of file CommandManager.cs.

+ +
+
+ +

◆ OnMessageTimeout()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void monitor.CommandManager.OnMessageTimeout (object sender,
System.Timers.ElapsedEventArgs e 
)
+
+private
+
+ +

Callback called by stopwatch on timeout

+
Parameters
+ + + +
senderSender object
eInformation on elapsed condition
+
+
+ +

Definition at line 156 of file CommandManager.cs.

+ +
+
+ +

◆ Open() [1/2]

+ +
+
+ + + + + + + + +
bool monitor.CommandManager.Open (string hostname)
+
+ +

Open the specified hostname server, using default port number.

+
Returns
true if connection succeded, false otherwise
+
Parameters
+ + +
hostnameHostname to connect to
+
+
+ +

Definition at line 96 of file CommandManager.cs.

+ +
+
+ +

◆ Open() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
bool monitor.CommandManager.Open (string hostname,
int port 
)
+
+ +

Open connection to server "host", with port number "port"

+
Returns
true if connection succeded, false otherwise
+
Parameters
+ + + +
hostnameHostname to connect to
portPort number for connection
+
+
+ +

Definition at line 107 of file CommandManager.cs.

+ +
+
+ +

◆ SendCommand()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
CommandManagerStatus monitor.CommandManager.SendCommand (string cmd,
out string answer,
double timeout 
)
+
+ +

Sends a command to TCP server

+
Returns
status that is part of CommandManagerStatus enumerate
+
Parameters
+ + + + +
cmdCommand message to send to server
answerAnswer from server, in case of acknowledge
timeoutTimeout (ms) waiting an acknowledge, 0 if no acknowledge needed
+
+
+ +

Definition at line 171 of file CommandManager.cs.

+ +
+
+

Member Data Documentation

+ +

◆ commandReceivedEvent

+ +
+
+ + + + +
CommandReceivedEvent monitor.CommandManager.commandReceivedEvent = null
+
+ +

Definition at line 37 of file CommandManager.cs.

+ +
+
+ +

◆ isBusy

+ +
+
+ + + + + +
+ + + + +
bool monitor.CommandManager.isBusy = false
+
+private
+
+ +

flag indicating command manager is currently busy waiting an acknowledge

+ +

Definition at line 58 of file CommandManager.cs.

+ +
+
+ +

◆ messageReceived

+ +
+
+ + + + + +
+ + + + +
string monitor.CommandManager.messageReceived = null
+
+private
+
+ +

received message

+ +

Definition at line 53 of file CommandManager.cs.

+ +
+
+ +

◆ waitEvent

+ +
+
+ + + + + +
+ + + + +
ManualResetEvent monitor.CommandManager.waitEvent = new ManualResetEvent(false)
+
+private
+
+ +

Definition at line 43 of file CommandManager.cs.

+ +
+
+ +

◆ waitForAcknowledge

+ +
+
+ + + + + +
+ + + + +
bool monitor.CommandManager.waitForAcknowledge = false
+
+private
+
+ +

Flag to tell rogram to wait for an acknowledge from server

+ +

Definition at line 48 of file CommandManager.cs.

+ +
+
+ +

◆ waitTimer

+ +
+
+ + + + + +
+ + + + +
System.Timers.Timer monitor.CommandManager.waitTimer = new System.Timers.Timer()
+
+private
+
+ +

Timer for managing timeout

+ +

Definition at line 42 of file CommandManager.cs.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/software/monitor/monitor/docs/html/classmonitor_1_1_command_manager.js b/software/monitor/monitor/docs/html/classmonitor_1_1_command_manager.js new file mode 100644 index 0000000..56dd8dd --- /dev/null +++ b/software/monitor/monitor/docs/html/classmonitor_1_1_command_manager.js @@ -0,0 +1,23 @@ +var classmonitor_1_1_command_manager = +[ + [ "CommandManagerStatus", "classmonitor_1_1_command_manager.html#ac8ca53031468acc8be05c37586671a9b", [ + [ "AnswerReceived", "classmonitor_1_1_command_manager.html#ac8ca53031468acc8be05c37586671a9bae3e095863e3b99e11e8c18efb3901da3", null ], + [ "Timeout", "classmonitor_1_1_command_manager.html#ac8ca53031468acc8be05c37586671a9bac85a251cc457840f1e032f1b733e9398", null ], + [ "Busy", "classmonitor_1_1_command_manager.html#ac8ca53031468acc8be05c37586671a9bad8a942ef2b04672adfafef0ad817a407", null ] + ] ], + [ "CommandManager", "classmonitor_1_1_command_manager.html#ac2248c90d3a59bc2bf376cd876cece72", null ], + [ "~CommandManager", "classmonitor_1_1_command_manager.html#ad2a8eb1139a5a25a6993887c55b3da4e", null ], + [ "Close", "classmonitor_1_1_command_manager.html#ab28b0e5a2641391e655aaaaa05a1fdf6", null ], + [ "CommandReceivedEvent", "classmonitor_1_1_command_manager.html#a5afd16036cc3d0e69554f69dacad0bcc", null ], + [ "OnMessageReception", "classmonitor_1_1_command_manager.html#a92e5d42afb61f29d9a4746b4446c2a65", null ], + [ "OnMessageTimeout", "classmonitor_1_1_command_manager.html#a2f91bb775ba25855be007886b994a5df", null ], + [ "Open", "classmonitor_1_1_command_manager.html#a7329cbf8008bcb8a0280aa7ffa6aa43c", null ], + [ "Open", "classmonitor_1_1_command_manager.html#a0a0054ee87d293577fa39af1fcd5ffee", null ], + [ "SendCommand", "classmonitor_1_1_command_manager.html#a3cd1f2303e47e5148fd3e927a7957363", null ], + [ "commandReceivedEvent", "classmonitor_1_1_command_manager.html#ab90d68a3d3a9b3935fa9f1a57e8dabfa", null ], + [ "isBusy", "classmonitor_1_1_command_manager.html#aea039cd0f99f5193c307b805077669db", null ], + [ "messageReceived", "classmonitor_1_1_command_manager.html#aa610e72e8f23f0d26388f204c848ed57", null ], + [ "waitEvent", "classmonitor_1_1_command_manager.html#a0d27eb1a38efb01559f14a707ff86447", null ], + [ "waitForAcknowledge", "classmonitor_1_1_command_manager.html#a39c2c03f93b309e65a45ac91c6eb39bd", null ], + [ "waitTimer", "classmonitor_1_1_command_manager.html#a07639cd39445a379667a2450e78001b0", null ] +]; \ No newline at end of file diff --git a/software/monitor/monitor/docs/html/classmonitor_1_1_command_manager__coll__graph.map b/software/monitor/monitor/docs/html/classmonitor_1_1_command_manager__coll__graph.map new file mode 100644 index 0000000..221e262 --- /dev/null +++ b/software/monitor/monitor/docs/html/classmonitor_1_1_command_manager__coll__graph.map @@ -0,0 +1,2 @@ + + diff --git a/software/monitor/monitor/docs/html/classmonitor_1_1_command_manager__coll__graph.md5 b/software/monitor/monitor/docs/html/classmonitor_1_1_command_manager__coll__graph.md5 new file mode 100644 index 0000000..8dfb1c4 --- /dev/null +++ b/software/monitor/monitor/docs/html/classmonitor_1_1_command_manager__coll__graph.md5 @@ -0,0 +1 @@ +ec8f855a949726bb444efe1a5eea1e95 \ No newline at end of file diff --git a/software/monitor/monitor/docs/html/classmonitor_1_1_command_manager__coll__graph.png b/software/monitor/monitor/docs/html/classmonitor_1_1_command_manager__coll__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..2218007379cf5caa305e16d9c3cba50a77a4c0e0 GIT binary patch literal 4708 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 C{2{LZ literal 0 HcmV?d00001 diff --git a/software/monitor/monitor/docs/html/classmonitor_1_1_destijl_command_list-members.html b/software/monitor/monitor/docs/html/classmonitor_1_1_destijl_command_list-members.html new file mode 100644 index 0000000..179d0ed --- /dev/null +++ b/software/monitor/monitor/docs/html/classmonitor_1_1_destijl_command_list-members.html @@ -0,0 +1,121 @@ + + + + + + + +Monitor: Member List + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitor +
+
+
+ + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/software/monitor/monitor/docs/html/classmonitor_1_1_destijl_command_list.html b/software/monitor/monitor/docs/html/classmonitor_1_1_destijl_command_list.html new file mode 100644 index 0000000..559a9a8 --- /dev/null +++ b/software/monitor/monitor/docs/html/classmonitor_1_1_destijl_command_list.html @@ -0,0 +1,477 @@ + + + + + + + +Monitor: monitor.DestijlCommandList Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitor +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
monitor.DestijlCommandList Class Reference
+
+
+ +

Commands and options parameters used in Destijl project when communicating with server + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Attributes

const string HeaderMtsComDmb = "COM"
 
const string HeaderMtsDmbOrder = "DMB"
 
const string HeaderMtsCamera = "CAM"
 
const string HeaderMtsMessage = "MSG"
 
const string DataComOpen = "o"
 
const string DataComClose = "C"
 
const string DataCamOpen = "A"
 
const string DataCamClose = "I"
 
const string DataCamAskArena = "y"
 
const string DataCamArenaConfirm = "x"
 
const string DataCamInfirm = "z"
 
const string DataCamComputePosition = "p"
 
const string DataCamStopComputePosition = "s"
 
const string HeaderStmAck = "ACK"
 
const string HeaderStmNoAck = "NAK"
 
const string HeaderStmLostDmb = "LCD"
 
const string HeaderStmImage = "IMG"
 
const string HeaderStmPos = "POS"
 
const string HeaderStmMes = "MSG"
 
const string HeaderStmBat = "BAT"
 
+

Detailed Description

+

Commands and options parameters used in Destijl project when communicating with server

+ +

Definition at line 29 of file DestijlCommandManager.cs.

+

Member Data Documentation

+ +

◆ DataCamArenaConfirm

+ +
+
+ + + + +
const string monitor.DestijlCommandList.DataCamArenaConfirm = "x"
+
+ +

Definition at line 42 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ DataCamAskArena

+ +
+
+ + + + +
const string monitor.DestijlCommandList.DataCamAskArena = "y"
+
+ +

Definition at line 41 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ DataCamClose

+ +
+
+ + + + +
const string monitor.DestijlCommandList.DataCamClose = "I"
+
+ +

Definition at line 40 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ DataCamComputePosition

+ +
+
+ + + + +
const string monitor.DestijlCommandList.DataCamComputePosition = "p"
+
+ +

Definition at line 44 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ DataCamInfirm

+ +
+
+ + + + +
const string monitor.DestijlCommandList.DataCamInfirm = "z"
+
+ +

Definition at line 43 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ DataCamOpen

+ +
+
+ + + + +
const string monitor.DestijlCommandList.DataCamOpen = "A"
+
+ +

Definition at line 39 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ DataCamStopComputePosition

+ +
+
+ + + + +
const string monitor.DestijlCommandList.DataCamStopComputePosition = "s"
+
+ +

Definition at line 45 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ DataComClose

+ +
+
+ + + + +
const string monitor.DestijlCommandList.DataComClose = "C"
+
+ +

Definition at line 37 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ DataComOpen

+ +
+
+ + + + +
const string monitor.DestijlCommandList.DataComOpen = "o"
+
+ +

Definition at line 36 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ HeaderMtsCamera

+ +
+
+ + + + +
const string monitor.DestijlCommandList.HeaderMtsCamera = "CAM"
+
+ +

Definition at line 33 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ HeaderMtsComDmb

+ +
+
+ + + + +
const string monitor.DestijlCommandList.HeaderMtsComDmb = "COM"
+
+ +

Definition at line 31 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ HeaderMtsDmbOrder

+ +
+
+ + + + +
const string monitor.DestijlCommandList.HeaderMtsDmbOrder = "DMB"
+
+ +

Definition at line 32 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ HeaderMtsMessage

+ +
+
+ + + + +
const string monitor.DestijlCommandList.HeaderMtsMessage = "MSG"
+
+ +

Definition at line 34 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ HeaderStmAck

+ +
+
+ + + + +
const string monitor.DestijlCommandList.HeaderStmAck = "ACK"
+
+ +

Definition at line 47 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ HeaderStmBat

+ +
+
+ + + + +
const string monitor.DestijlCommandList.HeaderStmBat = "BAT"
+
+ +

Definition at line 53 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ HeaderStmImage

+ +
+
+ + + + +
const string monitor.DestijlCommandList.HeaderStmImage = "IMG"
+
+ +

Definition at line 50 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ HeaderStmLostDmb

+ +
+
+ + + + +
const string monitor.DestijlCommandList.HeaderStmLostDmb = "LCD"
+
+ +

Definition at line 49 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ HeaderStmMes

+ +
+
+ + + + +
const string monitor.DestijlCommandList.HeaderStmMes = "MSG"
+
+ +

Definition at line 52 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ HeaderStmNoAck

+ +
+
+ + + + +
const string monitor.DestijlCommandList.HeaderStmNoAck = "NAK"
+
+ +

Definition at line 48 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ HeaderStmPos

+ +
+
+ + + + +
const string monitor.DestijlCommandList.HeaderStmPos = "POS"
+
+ +

Definition at line 51 of file DestijlCommandManager.cs.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/software/monitor/monitor/docs/html/classmonitor_1_1_destijl_command_list.js b/software/monitor/monitor/docs/html/classmonitor_1_1_destijl_command_list.js new file mode 100644 index 0000000..27f0e97 --- /dev/null +++ b/software/monitor/monitor/docs/html/classmonitor_1_1_destijl_command_list.js @@ -0,0 +1,23 @@ +var classmonitor_1_1_destijl_command_list = +[ + [ "DataCamArenaConfirm", "classmonitor_1_1_destijl_command_list.html#ad31b6758839a4c3b1b6ec4c71635e631", null ], + [ "DataCamAskArena", "classmonitor_1_1_destijl_command_list.html#aaaf85677671db1ef84fe67b2eb954f29", null ], + [ "DataCamClose", "classmonitor_1_1_destijl_command_list.html#a6f578f9d52dd2b50370177a5c03a2af7", null ], + [ "DataCamComputePosition", "classmonitor_1_1_destijl_command_list.html#ab114adce60b63976d8304f2ad11b317a", null ], + [ "DataCamInfirm", "classmonitor_1_1_destijl_command_list.html#ad3985694a06148f2014cb346e8891cba", null ], + [ "DataCamOpen", "classmonitor_1_1_destijl_command_list.html#a6380d1518931373bd0dfb84f888942e0", null ], + [ "DataCamStopComputePosition", "classmonitor_1_1_destijl_command_list.html#ad09dd921c6c8cf8c7d90a2c0a05d4056", null ], + [ "DataComClose", "classmonitor_1_1_destijl_command_list.html#ad97cbe948c71a4dc3fa95afbf9ca26d8", null ], + [ "DataComOpen", "classmonitor_1_1_destijl_command_list.html#a1bcde55da429bcf2c04ed6d0621e496f", null ], + [ "HeaderMtsCamera", "classmonitor_1_1_destijl_command_list.html#af570b0e8d14920402ce979778225ed68", null ], + [ "HeaderMtsComDmb", "classmonitor_1_1_destijl_command_list.html#aa9fe4e71b7faec183ab64f4cf6ecd395", null ], + [ "HeaderMtsDmbOrder", "classmonitor_1_1_destijl_command_list.html#adbcf7adab9f5e8ead971affbbc64178b", null ], + [ "HeaderMtsMessage", "classmonitor_1_1_destijl_command_list.html#acb283f1da96d8d522e3b28ca35187acd", null ], + [ "HeaderStmAck", "classmonitor_1_1_destijl_command_list.html#af494d7e1bddee8184873dc380a3066ba", null ], + [ "HeaderStmBat", "classmonitor_1_1_destijl_command_list.html#a88de91fa6abdc122245ceb26fc21fd33", null ], + [ "HeaderStmImage", "classmonitor_1_1_destijl_command_list.html#ae3ee8e0ecbb79faec9d24095d72cfbde", null ], + [ "HeaderStmLostDmb", "classmonitor_1_1_destijl_command_list.html#a54e9ebd5e8f34ac596b84b56bb2403f7", null ], + [ "HeaderStmMes", "classmonitor_1_1_destijl_command_list.html#ad1fa4557b2d44dd888d8640f374c9f04", null ], + [ "HeaderStmNoAck", "classmonitor_1_1_destijl_command_list.html#ae3dc86c7e90bba409317e63cf1c85a39", null ], + [ "HeaderStmPos", "classmonitor_1_1_destijl_command_list.html#abf99a718161a5a9017d7011cea429ec0", null ] +]; \ No newline at end of file diff --git a/software/monitor/monitor/docs/html/classmonitor_1_1_destijl_command_manager-members.html b/software/monitor/monitor/docs/html/classmonitor_1_1_destijl_command_manager-members.html new file mode 100644 index 0000000..3057abe --- /dev/null +++ b/software/monitor/monitor/docs/html/classmonitor_1_1_destijl_command_manager-members.html @@ -0,0 +1,134 @@ + + + + + + + +Monitor: Member List + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitor +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
monitor.DestijlCommandManager Member List
+
+
+ +

This is the complete list of members for monitor.DestijlCommandManager, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CameraArenaConfirm()monitor.DestijlCommandManager
CameraArenaInfirm()monitor.DestijlCommandManager
CameraAskArena()monitor.DestijlCommandManager
CameraClose()monitor.DestijlCommandManager
CameraComputePosition()monitor.DestijlCommandManager
CameraOpen()monitor.DestijlCommandManager
CameraStopComputePosition()monitor.DestijlCommandManager
Close()monitor.DestijlCommandManager
commandManagermonitor.DestijlCommandManagerprivate
commandReceivedEventmonitor.DestijlCommandManager
CommandReceivedEvent(string header, string data, byte[] buffer)monitor.DestijlCommandManager
CommandStatus enum namemonitor.DestijlCommandManager
CreateCommand(string header, string data)monitor.DestijlCommandManagerprivate
DecodeStatus(CommandManager.CommandManagerStatus localStatus, string answer)monitor.DestijlCommandManagerprivate
DestijlCommandManager(CommandReceivedEvent callback)monitor.DestijlCommandManager
OnCommandReceived(string msg, byte[] buffer)monitor.DestijlCommandManagerprivate
Open(string hostname)monitor.DestijlCommandManager
Open(string hostname, int port)monitor.DestijlCommandManager
receivedDatamonitor.DestijlCommandManagerprivate
receivedHeadermonitor.DestijlCommandManagerprivate
RobotCloseCom()monitor.DestijlCommandManager
RobotGetBattery()monitor.DestijlCommandManager
RobotGetVersion(out string version)monitor.DestijlCommandManager
RobotMove(int distance)monitor.DestijlCommandManager
RobotOpenCom()monitor.DestijlCommandManager
RobotPing()monitor.DestijlCommandManager
RobotPowerOff()monitor.DestijlCommandManager
RobotReset()monitor.DestijlCommandManager
RobotStartWithoutWatchdog()monitor.DestijlCommandManager
RobotStartWithWatchdog()monitor.DestijlCommandManager
RobotTurn(int angle)monitor.DestijlCommandManager
timeoutmonitor.DestijlCommandManager
~DestijlCommandManager()monitor.DestijlCommandManagerprivate
+
+ + + + diff --git a/software/monitor/monitor/docs/html/classmonitor_1_1_destijl_command_manager.html b/software/monitor/monitor/docs/html/classmonitor_1_1_destijl_command_manager.html new file mode 100644 index 0000000..ff15f4f --- /dev/null +++ b/software/monitor/monitor/docs/html/classmonitor_1_1_destijl_command_manager.html @@ -0,0 +1,1140 @@ + + + + + + + +Monitor: monitor.DestijlCommandManager Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitor +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ + +
+ +

Specialization class for command manager, which implemnent destijl protocol between monitor and server + More...

+
+Collaboration diagram for monitor.DestijlCommandManager:
+
+
Collaboration graph
+ + + +
[legend]
+ + + + + +

+Public Types

enum  CommandStatus {
+  CommandStatus.Success, +CommandStatus.Rejected, +CommandStatus.InvalidAnswer, +CommandStatus.Busy, +
+  CommandStatus.CommunicationLostWithRobot, +CommandStatus.CommunicationLostWithServer +
+ }
 List of available return status More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

delegate void CommandReceivedEvent (string header, string data, byte[] buffer)
 Callback for sending received data to application level More...
 
 DestijlCommandManager (CommandReceivedEvent callback)
 Initializes a new instance of the monitor.DestijlCommandManager class. More...
 
bool Open (string hostname)
 Open the specified hostname server, using default port number. More...
 
bool Open (string hostname, int port)
 Open connection to server "host", with port number "port" More...
 
void Close ()
 Close connection to server More...
 
CommandStatus RobotOpenCom ()
 Open communication with robot and wait acknowledge More...
 
CommandStatus RobotCloseCom ()
 Close communication with robot and wait acknowledge More...
 
CommandStatus RobotPing ()
 Ping the robot. More...
 
CommandStatus RobotReset ()
 Reset robot and let it in idle mode More...
 
CommandStatus RobotStartWithWatchdog ()
 Start robot, enabling watchdog More...
 
CommandStatus RobotStartWithoutWatchdog ()
 Start robot, without enabling watchdog More...
 
CommandStatus RobotMove (int distance)
 Move robot forward or backward, for a distance expressed in millimeter More...
 
CommandStatus RobotTurn (int angle)
 Make robot turn left or right, for a given angle More...
 
CommandStatus RobotGetBattery ()
 Request robot battery level More...
 
CommandStatus RobotGetVersion (out string version)
 Request robot firmware version More...
 
CommandStatus RobotPowerOff ()
 Power off robot More...
 
CommandStatus CameraOpen ()
 Open camera on remote device More...
 
CommandStatus CameraClose ()
 Close camera on remote device More...
 
CommandStatus CameraAskArena ()
 Request still image of detected arena More...
 
CommandStatus CameraArenaConfirm ()
 Confirm arena detection (after requesting image of detected arena, using CameraAskArena More...
 
CommandStatus CameraArenaInfirm ()
 Reject arena detected (after requesting image of detected arena, using CameraAskArena More...
 
CommandStatus CameraComputePosition ()
 Request robot position computing More...
 
CommandStatus CameraStopComputePosition ()
 Stop robot position computing More...
 
+ + + + + + +

+Public Attributes

CommandReceivedEvent commandReceivedEvent = null
 
double timeout = 100
 Timeout used for command with acknowledge More...
 
+ + + + + + + + + + + + + +

+Private Member Functions

 ~DestijlCommandManager ()
 Releases unmanaged resources and performs other cleanup operations before the monitor.DestijlCommandManager is reclaimed by garbage collection. More...
 
void OnCommandReceived (string msg, byte[] buffer)
 Callback used for receiving data from lower layer (CommandManager class) More...
 
string CreateCommand (string header, string data)
 Creates the command to send to server, based on header and data provided More...
 
CommandStatus DecodeStatus (CommandManager.CommandManagerStatus localStatus, string answer)
 Provide DestijlCommandManager.CommandStatus based on status received by CommandManager.SendCommand and answer string More...
 
+ + + + + + + + + + +

+Private Attributes

CommandManager commandManager = null
 Command Manager object More...
 
string receivedHeader = null
 Part of received message corresponding to command header More...
 
string receivedData = null
 Part of received message corresponding to command data More...
 
+

Detailed Description

+

Specialization class for command manager, which implemnent destijl protocol between monitor and server

+ +

Definition at line 76 of file DestijlCommandManager.cs.

+

Member Enumeration Documentation

+ +

◆ CommandStatus

+ +
+
+ + + + + +
+ + + + +
enum monitor.DestijlCommandManager.CommandStatus
+
+strong
+
+ +

List of available return status

+ + + + + + + +
Enumerator
Success 
Rejected 
InvalidAnswer 
Busy 
CommunicationLostWithRobot 
CommunicationLostWithServer 
+ +

Definition at line 107 of file DestijlCommandManager.cs.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ DestijlCommandManager()

+ +
+
+ + + + + + + + +
monitor.DestijlCommandManager.DestijlCommandManager (CommandReceivedEvent callback)
+
+ +

Initializes a new instance of the monitor.DestijlCommandManager class.

+
Parameters
+ + +
callbackCallback reference for reception of data
+
+
+ +

Definition at line 121 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ ~DestijlCommandManager()

+ +
+
+ + + + + +
+ + + + + + + +
monitor.DestijlCommandManager.~DestijlCommandManager ()
+
+private
+
+ +

Releases unmanaged resources and performs other cleanup operations before the monitor.DestijlCommandManager is reclaimed by garbage collection.

+ +

Definition at line 131 of file DestijlCommandManager.cs.

+ +
+
+

Member Function Documentation

+ +

◆ CameraArenaConfirm()

+ +
+
+ + + + + + + +
CommandStatus monitor.DestijlCommandManager.CameraArenaConfirm ()
+
+ +

Confirm arena detection (after requesting image of detected arena, using CameraAskArena

+
Returns
Command status (see DecodeStatus)
+ +

Definition at line 492 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ CameraArenaInfirm()

+ +
+
+ + + + + + + +
CommandStatus monitor.DestijlCommandManager.CameraArenaInfirm ()
+
+ +

Reject arena detected (after requesting image of detected arena, using CameraAskArena

+
Returns
Command status (see DecodeStatus)
+ +

Definition at line 509 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ CameraAskArena()

+ +
+
+ + + + + + + +
CommandStatus monitor.DestijlCommandManager.CameraAskArena ()
+
+ +

Request still image of detected arena

+
Returns
Command status (see DecodeStatus)
+ +

Definition at line 475 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ CameraClose()

+ +
+
+ + + + + + + +
CommandStatus monitor.DestijlCommandManager.CameraClose ()
+
+ +

Close camera on remote device

+
Returns
Command status (see DecodeStatus)
+ +

Definition at line 458 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ CameraComputePosition()

+ +
+
+ + + + + + + +
CommandStatus monitor.DestijlCommandManager.CameraComputePosition ()
+
+ +

Request robot position computing

+
Returns
Command status (see DecodeStatus)
+ +

Definition at line 526 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ CameraOpen()

+ +
+
+ + + + + + + +
CommandStatus monitor.DestijlCommandManager.CameraOpen ()
+
+ +

Open camera on remote device

+
Returns
Command status (see DecodeStatus)
+ +

Definition at line 441 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ CameraStopComputePosition()

+ +
+
+ + + + + + + +
CommandStatus monitor.DestijlCommandManager.CameraStopComputePosition ()
+
+ +

Stop robot position computing

+
Returns
Command status (see DecodeStatus)
+ +

Definition at line 543 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ Close()

+ +
+
+ + + + + + + +
void monitor.DestijlCommandManager.Close ()
+
+ +

Close connection to server

+ +

Definition at line 183 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ CommandReceivedEvent()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
delegate void monitor.DestijlCommandManager.CommandReceivedEvent (string header,
string data,
byte [] buffer 
)
+
+ +

Callback for sending received data to application level

+ +
+
+ +

◆ CreateCommand()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
string monitor.DestijlCommandManager.CreateCommand (string header,
string data 
)
+
+private
+
+ +

Creates the command to send to server, based on header and data provided

+
Returns
The command string
+
Parameters
+ + + +
headerHeader part of the command
dataData part of the command
+
+
+ +

Definition at line 194 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ DecodeStatus()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
CommandStatus monitor.DestijlCommandManager.DecodeStatus (CommandManager.CommandManagerStatus localStatus,
string answer 
)
+
+private
+
+ +

Provide DestijlCommandManager.CommandStatus based on status received by CommandManager.SendCommand and answer string

+
Returns
Status compatible with DestijlCommandManager.CommandStatus type
+
Parameters
+ + + +
localStatusStatus provided by CommandManager.SendCommand
answerAnswer provided by CommandManager.SendCommand
+
+
+ +

Definition at line 205 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ OnCommandReceived()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void monitor.DestijlCommandManager.OnCommandReceived (string msg,
byte [] buffer 
)
+
+private
+
+ +

Callback used for receiving data from lower layer (CommandManager class)

+
Parameters
+ + + +
msgString containing received message
bufferRaw buffer to be used when data are not in ascii format (image for example)
+
+
+ +

Definition at line 141 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ Open() [1/2]

+ +
+
+ + + + + + + + +
bool monitor.DestijlCommandManager.Open (string hostname)
+
+ +

Open the specified hostname server, using default port number.

+
Returns
true if connection succeded, false otherwise
+
Parameters
+ + +
hostnameHostname to connect to
+
+
+ +

Definition at line 163 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ Open() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
bool monitor.DestijlCommandManager.Open (string hostname,
int port 
)
+
+ +

Open connection to server "host", with port number "port"

+
Returns
true if connection succeded, false otherwise
+
Parameters
+ + + +
hostnameHostname to connect to
portPort number for connection
+
+
+ +

Definition at line 174 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ RobotCloseCom()

+ +
+
+ + + + + + + +
CommandStatus monitor.DestijlCommandManager.RobotCloseCom ()
+
+ +

Close communication with robot and wait acknowledge

+
Returns
Command status (see DecodeStatus)
+ +

Definition at line 251 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ RobotGetBattery()

+ +
+
+ + + + + + + +
CommandStatus monitor.DestijlCommandManager.RobotGetBattery ()
+
+ +

Request robot battery level

+
Returns
Command status (see DecodeStatus)
+ +

Definition at line 372 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ RobotGetVersion()

+ +
+
+ + + + + + + + +
CommandStatus monitor.DestijlCommandManager.RobotGetVersion (out string version)
+
+ +

Request robot firmware version

+
Returns
Command status (see DecodeStatus)
+
Parameters
+ + +
versiontodo
+
+
+ +

Definition at line 390 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ RobotMove()

+ +
+
+ + + + + + + + +
CommandStatus monitor.DestijlCommandManager.RobotMove (int distance)
+
+ +

Move robot forward or backward, for a distance expressed in millimeter

+
Returns
Command status (see DecodeStatus)
+
Parameters
+ + +
distanceDistance of mouvment, in millimeter
+
+
+ +

Definition at line 337 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ RobotOpenCom()

+ +
+
+ + + + + + + +
CommandStatus monitor.DestijlCommandManager.RobotOpenCom ()
+
+ +

Open communication with robot and wait acknowledge

+
Returns
Command status (see DecodeStatus)
+ +

Definition at line 234 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ RobotPing()

+ +
+
+ + + + + + + +
CommandStatus monitor.DestijlCommandManager.RobotPing ()
+
+ +

Ping the robot.

+
Returns
Command status (see DecodeStatus)
+ +

Definition at line 268 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ RobotPowerOff()

+ +
+
+ + + + + + + +
CommandStatus monitor.DestijlCommandManager.RobotPowerOff ()
+
+ +

Power off robot

+
Returns
Command status (see DecodeStatus)
+ +

Definition at line 424 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ RobotReset()

+ +
+
+ + + + + + + +
CommandStatus monitor.DestijlCommandManager.RobotReset ()
+
+ +

Reset robot and let it in idle mode

+
Returns
Command status (see DecodeStatus)
+ +

Definition at line 285 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ RobotStartWithoutWatchdog()

+ +
+
+ + + + + + + +
CommandStatus monitor.DestijlCommandManager.RobotStartWithoutWatchdog ()
+
+ +

Start robot, without enabling watchdog

+
Returns
Command status (see DecodeStatus)
+ +

Definition at line 319 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ RobotStartWithWatchdog()

+ +
+
+ + + + + + + +
CommandStatus monitor.DestijlCommandManager.RobotStartWithWatchdog ()
+
+ +

Start robot, enabling watchdog

+
Returns
Command status (see DecodeStatus)
+ +

Definition at line 302 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ RobotTurn()

+ +
+
+ + + + + + + + +
CommandStatus monitor.DestijlCommandManager.RobotTurn (int angle)
+
+ +

Make robot turn left or right, for a given angle

+
Returns
Command status (see DecodeStatus)
+
Parameters
+ + +
angleAngle of turn, in degree (negative for left, positive for right)
+
+
+ +

Definition at line 355 of file DestijlCommandManager.cs.

+ +
+
+

Member Data Documentation

+ +

◆ commandManager

+ +
+
+ + + + + +
+ + + + +
CommandManager monitor.DestijlCommandManager.commandManager = null
+
+private
+
+ +

Command Manager object

+ +

Definition at line 81 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ commandReceivedEvent

+ +
+
+ + + + +
CommandReceivedEvent monitor.DestijlCommandManager.commandReceivedEvent = null
+
+ +

Definition at line 97 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ receivedData

+ +
+
+ + + + + +
+ + + + +
string monitor.DestijlCommandManager.receivedData = null
+
+private
+
+ +

Part of received message corresponding to command data

+ +

Definition at line 91 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ receivedHeader

+ +
+
+ + + + + +
+ + + + +
string monitor.DestijlCommandManager.receivedHeader = null
+
+private
+
+ +

Part of received message corresponding to command header

+ +

Definition at line 86 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ timeout

+ +
+
+ + + + +
double monitor.DestijlCommandManager.timeout = 100
+
+ +

Timeout used for command with acknowledge

+ +

Definition at line 102 of file DestijlCommandManager.cs.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/software/monitor/monitor/docs/html/classmonitor_1_1_destijl_command_manager.js b/software/monitor/monitor/docs/html/classmonitor_1_1_destijl_command_manager.js new file mode 100644 index 0000000..5f0025b --- /dev/null +++ b/software/monitor/monitor/docs/html/classmonitor_1_1_destijl_command_manager.js @@ -0,0 +1,43 @@ +var classmonitor_1_1_destijl_command_manager = +[ + [ "CommandStatus", "classmonitor_1_1_destijl_command_manager.html#a9cb23e7493a32872ac808f3b63200fb0", [ + [ "Success", "classmonitor_1_1_destijl_command_manager.html#a9cb23e7493a32872ac808f3b63200fb0a505a83f220c02df2f85c3810cd9ceb38", null ], + [ "Rejected", "classmonitor_1_1_destijl_command_manager.html#a9cb23e7493a32872ac808f3b63200fb0ad37b1f6c0512e2118cee17fea015b699", null ], + [ "InvalidAnswer", "classmonitor_1_1_destijl_command_manager.html#a9cb23e7493a32872ac808f3b63200fb0ad410f0b6f9dc2f2b271f9cf2fc78eb34", null ], + [ "Busy", "classmonitor_1_1_destijl_command_manager.html#a9cb23e7493a32872ac808f3b63200fb0ad8a942ef2b04672adfafef0ad817a407", null ], + [ "CommunicationLostWithRobot", "classmonitor_1_1_destijl_command_manager.html#a9cb23e7493a32872ac808f3b63200fb0a37039bce065223d632b6974daa612656", null ], + [ "CommunicationLostWithServer", "classmonitor_1_1_destijl_command_manager.html#a9cb23e7493a32872ac808f3b63200fb0ae7009a5c717d5d4d361433a9915e697e", null ] + ] ], + [ "DestijlCommandManager", "classmonitor_1_1_destijl_command_manager.html#a78bf0be922afbd9c5f8f4115fa83ad47", null ], + [ "~DestijlCommandManager", "classmonitor_1_1_destijl_command_manager.html#abc51dc980d7ba7e59a571e579cb626b9", null ], + [ "CameraArenaConfirm", "classmonitor_1_1_destijl_command_manager.html#ac58ed9c19d8c9ed547c35fb96a983668", null ], + [ "CameraArenaInfirm", "classmonitor_1_1_destijl_command_manager.html#a614be7a565a3a10308f20b073b40383f", null ], + [ "CameraAskArena", "classmonitor_1_1_destijl_command_manager.html#a8d178480fc09d474760eae995c9aa096", null ], + [ "CameraClose", "classmonitor_1_1_destijl_command_manager.html#a94b085d9de512cd7e80bcefd516d460c", null ], + [ "CameraComputePosition", "classmonitor_1_1_destijl_command_manager.html#ad04df7759d2698334a410fe32b78e21e", null ], + [ "CameraOpen", "classmonitor_1_1_destijl_command_manager.html#a292d7e2961ff31a80d9abf79b7b41126", null ], + [ "CameraStopComputePosition", "classmonitor_1_1_destijl_command_manager.html#a928f987f8f5f12135614678585ab2726", null ], + [ "Close", "classmonitor_1_1_destijl_command_manager.html#af1f57d8e3e980322e37da2cd3b61d1d7", null ], + [ "CommandReceivedEvent", "classmonitor_1_1_destijl_command_manager.html#acc08ece6a89e842188364226299b3d43", null ], + [ "CreateCommand", "classmonitor_1_1_destijl_command_manager.html#a47eb72ec1ae43505966bc5cf09c79e58", null ], + [ "DecodeStatus", "classmonitor_1_1_destijl_command_manager.html#a00c3fb9f163c4d9025b356a5a7e74012", null ], + [ "OnCommandReceived", "classmonitor_1_1_destijl_command_manager.html#ab83dbda4196240c242a5ac101901bb19", null ], + [ "Open", "classmonitor_1_1_destijl_command_manager.html#a5dd6b75386a554c2f026eee787477bb0", null ], + [ "Open", "classmonitor_1_1_destijl_command_manager.html#a842300511efb20783c271764ee0e3336", null ], + [ "RobotCloseCom", "classmonitor_1_1_destijl_command_manager.html#a0139bec493c965670226381f2ba63a23", null ], + [ "RobotGetBattery", "classmonitor_1_1_destijl_command_manager.html#a2ec8021340de939318ace65b8462b930", null ], + [ "RobotGetVersion", "classmonitor_1_1_destijl_command_manager.html#a7ddd552ed82382a09b4af075c34fb989", null ], + [ "RobotMove", "classmonitor_1_1_destijl_command_manager.html#a5976fe792e270c63bd9f0f4c792df129", null ], + [ "RobotOpenCom", "classmonitor_1_1_destijl_command_manager.html#aa1440a571e6aaf11203b4e4a4ed116d5", null ], + [ "RobotPing", "classmonitor_1_1_destijl_command_manager.html#ae1af16558213c3830ea3006e8e8c5e28", null ], + [ "RobotPowerOff", "classmonitor_1_1_destijl_command_manager.html#acb242a71fa40d4001dc1bc31d5bdc53f", null ], + [ "RobotReset", "classmonitor_1_1_destijl_command_manager.html#abe223aa12456e3f1c2519e9c379d891a", null ], + [ "RobotStartWithoutWatchdog", "classmonitor_1_1_destijl_command_manager.html#a0c964baa3ecd4ff9d19857061413938b", null ], + [ "RobotStartWithWatchdog", "classmonitor_1_1_destijl_command_manager.html#ade46aceeb79556e31fe632e9602e1636", null ], + [ "RobotTurn", "classmonitor_1_1_destijl_command_manager.html#a3f7ee6f1803cfb8b2eb4290f9e9acced", null ], + [ "commandManager", "classmonitor_1_1_destijl_command_manager.html#a9efdcd3d35f46329e7aa167ad60062a9", null ], + [ "commandReceivedEvent", "classmonitor_1_1_destijl_command_manager.html#a5c10e8aaae48b83be0267aefa23eb62d", null ], + [ "receivedData", "classmonitor_1_1_destijl_command_manager.html#a88f907fc9c5fd8cd8d5976f45c323903", null ], + [ "receivedHeader", "classmonitor_1_1_destijl_command_manager.html#a1b99d771e7af8ffc8ced10d35e5e77ce", null ], + [ "timeout", "classmonitor_1_1_destijl_command_manager.html#a86a1fb03dc480dab8d6758aa0d675cd3", null ] +]; \ No newline at end of file diff --git a/software/monitor/monitor/docs/html/classmonitor_1_1_destijl_command_manager__coll__graph.map b/software/monitor/monitor/docs/html/classmonitor_1_1_destijl_command_manager__coll__graph.map new file mode 100644 index 0000000..28c4fa0 --- /dev/null +++ b/software/monitor/monitor/docs/html/classmonitor_1_1_destijl_command_manager__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/software/monitor/monitor/docs/html/classmonitor_1_1_destijl_command_manager__coll__graph.md5 b/software/monitor/monitor/docs/html/classmonitor_1_1_destijl_command_manager__coll__graph.md5 new file mode 100644 index 0000000..07908c8 --- /dev/null +++ b/software/monitor/monitor/docs/html/classmonitor_1_1_destijl_command_manager__coll__graph.md5 @@ -0,0 +1 @@ +561e4283ebd4d9d2dabfa14931addf60 \ No newline at end of file diff --git a/software/monitor/monitor/docs/html/classmonitor_1_1_destijl_command_manager__coll__graph.png b/software/monitor/monitor/docs/html/classmonitor_1_1_destijl_command_manager__coll__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..1cbebab016f11f27659c0177e6205ffc575e44be GIT binary patch literal 9284 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 literal 0 HcmV?d00001 diff --git a/software/monitor/monitor/docs/html/classmonitor_1_1_main_class-members.html b/software/monitor/monitor/docs/html/classmonitor_1_1_main_class-members.html new file mode 100644 index 0000000..b8ebd56 --- /dev/null +++ b/software/monitor/monitor/docs/html/classmonitor_1_1_main_class-members.html @@ -0,0 +1,102 @@ + + + + + + + +Monitor: Member List + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitor +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
monitor.MainClass Member List
+
+
+ +

This is the complete list of members for monitor.MainClass, including all inherited members.

+ + +
Main(string[] args)monitor.MainClassstatic
+
+ + + + diff --git a/software/monitor/monitor/docs/html/classmonitor_1_1_main_class.html b/software/monitor/monitor/docs/html/classmonitor_1_1_main_class.html new file mode 100644 index 0000000..436e77f --- /dev/null +++ b/software/monitor/monitor/docs/html/classmonitor_1_1_main_class.html @@ -0,0 +1,143 @@ + + + + + + + +Monitor: monitor.MainClass Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitor +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
monitor.MainClass Class Reference
+
+
+ + + + +

+Static Public Member Functions

static void Main (string[] args)
 
+

Detailed Description

+
+

Definition at line 27 of file Program.cs.

+

Member Function Documentation

+ +

◆ Main()

+ +
+
+ + + + + +
+ + + + + + + + +
static void monitor.MainClass.Main (string [] args)
+
+static
+
+ +

Definition at line 29 of file Program.cs.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/software/monitor/monitor/docs/html/classmonitor_1_1_main_class.js b/software/monitor/monitor/docs/html/classmonitor_1_1_main_class.js new file mode 100644 index 0000000..ee6a63b --- /dev/null +++ b/software/monitor/monitor/docs/html/classmonitor_1_1_main_class.js @@ -0,0 +1,4 @@ +var classmonitor_1_1_main_class = +[ + [ "Main", "classmonitor_1_1_main_class.html#a991579f985cc4071757b30a8b035e7c1", null ] +]; \ No newline at end of file diff --git a/software/monitor/monitor/docs/html/classmonitor_1_1_robot_command_list-members.html b/software/monitor/monitor/docs/html/classmonitor_1_1_robot_command_list-members.html new file mode 100644 index 0000000..29eecc2 --- /dev/null +++ b/software/monitor/monitor/docs/html/classmonitor_1_1_robot_command_list-members.html @@ -0,0 +1,111 @@ + + + + + + + +Monitor: Member List + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitor +
+
+
+ + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/software/monitor/monitor/docs/html/classmonitor_1_1_robot_command_list.html b/software/monitor/monitor/docs/html/classmonitor_1_1_robot_command_list.html new file mode 100644 index 0000000..d59f9a9 --- /dev/null +++ b/software/monitor/monitor/docs/html/classmonitor_1_1_robot_command_list.html @@ -0,0 +1,297 @@ + + + + + + + +Monitor: monitor.RobotCommandList Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitor +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
monitor.RobotCommandList Class Reference
+
+
+ +

Commands used for robot messages + More...

+ + + + + + + + + + + + + + + + + + + + + + +

+Public Attributes

const string RobotPing = "p"
 
const string RobotReset = "r"
 
const string RobotStartWithoutWatchdog = "u"
 
const string RobotStartWithWatchdog = "W"
 
const string RobotGetBattery = "v"
 
const string RobotGetBusyState = "b"
 
const string RobotMove = "M"
 
const string RobotTurn = "T"
 
const string RobotGetVersion = "V"
 
const string RobotPowerOff = "z"
 
+

Detailed Description

+

Commands used for robot messages

+ +

Definition at line 59 of file DestijlCommandManager.cs.

+

Member Data Documentation

+ +

◆ RobotGetBattery

+ +
+
+ + + + +
const string monitor.RobotCommandList.RobotGetBattery = "v"
+
+ +

Definition at line 65 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ RobotGetBusyState

+ +
+
+ + + + +
const string monitor.RobotCommandList.RobotGetBusyState = "b"
+
+ +

Definition at line 66 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ RobotGetVersion

+ +
+
+ + + + +
const string monitor.RobotCommandList.RobotGetVersion = "V"
+
+ +

Definition at line 69 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ RobotMove

+ +
+
+ + + + +
const string monitor.RobotCommandList.RobotMove = "M"
+
+ +

Definition at line 67 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ RobotPing

+ +
+
+ + + + +
const string monitor.RobotCommandList.RobotPing = "p"
+
+ +

Definition at line 61 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ RobotPowerOff

+ +
+
+ + + + +
const string monitor.RobotCommandList.RobotPowerOff = "z"
+
+ +

Definition at line 70 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ RobotReset

+ +
+
+ + + + +
const string monitor.RobotCommandList.RobotReset = "r"
+
+ +

Definition at line 62 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ RobotStartWithoutWatchdog

+ +
+
+ + + + +
const string monitor.RobotCommandList.RobotStartWithoutWatchdog = "u"
+
+ +

Definition at line 63 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ RobotStartWithWatchdog

+ +
+
+ + + + +
const string monitor.RobotCommandList.RobotStartWithWatchdog = "W"
+
+ +

Definition at line 64 of file DestijlCommandManager.cs.

+ +
+
+ +

◆ RobotTurn

+ +
+
+ + + + +
const string monitor.RobotCommandList.RobotTurn = "T"
+
+ +

Definition at line 68 of file DestijlCommandManager.cs.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/software/monitor/monitor/docs/html/classmonitor_1_1_robot_command_list.js b/software/monitor/monitor/docs/html/classmonitor_1_1_robot_command_list.js new file mode 100644 index 0000000..a1e8923 --- /dev/null +++ b/software/monitor/monitor/docs/html/classmonitor_1_1_robot_command_list.js @@ -0,0 +1,13 @@ +var classmonitor_1_1_robot_command_list = +[ + [ "RobotGetBattery", "classmonitor_1_1_robot_command_list.html#a374eb526d14b8499e47b065230afeed0", null ], + [ "RobotGetBusyState", "classmonitor_1_1_robot_command_list.html#a52a901f4e013dc33ff491c5fcda76860", null ], + [ "RobotGetVersion", "classmonitor_1_1_robot_command_list.html#a9a845beb5c040e4813f03cee7cd1cb71", null ], + [ "RobotMove", "classmonitor_1_1_robot_command_list.html#af7017bac04f1976fe1c37e8ec77bcbce", null ], + [ "RobotPing", "classmonitor_1_1_robot_command_list.html#a93de788c0d7ed40caaa2e3912a429831", null ], + [ "RobotPowerOff", "classmonitor_1_1_robot_command_list.html#a2e9616c1b75719c208902e595b79cc48", null ], + [ "RobotReset", "classmonitor_1_1_robot_command_list.html#a9ef80510dfe9ca241af290b003766526", null ], + [ "RobotStartWithoutWatchdog", "classmonitor_1_1_robot_command_list.html#a92acfe998bb9d265dd1f34f68f718386", null ], + [ "RobotStartWithWatchdog", "classmonitor_1_1_robot_command_list.html#aafa5d0e5fec3afe6586cca8b88d45c85", null ], + [ "RobotTurn", "classmonitor_1_1_robot_command_list.html#a2b88fc42fba8229f163e03e7252a77e6", null ] +]; \ No newline at end of file diff --git a/software/monitor/monitor/docs/html/closed.png b/software/monitor/monitor/docs/html/closed.png new file mode 100644 index 0000000000000000000000000000000000000000..98cc2c909da37a6df914fbf67780eebd99c597f5 GIT binary patch literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{V-kvUwAr*{o@8{^CZMh(5KoB^r_<4^zF@3)Cp&&t3hdujKf f*?bjBoY!V+E))@{xMcbjXe@)LtDnm{r-UW|*e5JT literal 0 HcmV?d00001 diff --git a/software/monitor/monitor/docs/html/doc.png b/software/monitor/monitor/docs/html/doc.png new file mode 100644 index 0000000000000000000000000000000000000000..17edabff95f7b8da13c9516a04efe05493c29501 GIT binary patch literal 746 zcmV7=@pnbNXRFEm&G8P!&WHG=d)>K?YZ1bzou)2{$)) zumDct!>4SyxL;zgaG>wy`^Hv*+}0kUfCrz~BCOViSb$_*&;{TGGn2^x9K*!Sf0=lV zpP=7O;GA0*Jm*tTYj$IoXvimpnV4S1Z5f$p*f$Db2iq2zrVGQUz~yq`ahn7ck(|CE z7Gz;%OP~J6)tEZWDzjhL9h2hdfoU2)Nd%T<5Kt;Y0XLt&<@6pQx!nw*5`@bq#?l*?3z{Hlzoc=Pr>oB5(9i6~_&-}A(4{Q$>c>%rV&E|a(r&;?i5cQB=} zYSDU5nXG)NS4HEs0it2AHe2>shCyr7`6@4*6{r@8fXRbTA?=IFVWAQJL&H5H{)DpM#{W(GL+Idzf^)uRV@oB8u$ z8v{MfJbTiiRg4bza<41NAzrl{=3fl_D+$t+^!xlQ8S}{UtY`e z;;&9UhyZqQRN%2pot{*Ei0*4~hSF_3AH2@fKU!$NSflS>{@tZpDT4`M2WRTTVH+D? z)GFlEGGHe?koB}i|1w45!BF}N_q&^HJ&-tyR{(afC6H7|aml|tBBbv}55C5DNP8p3 z)~jLEO4Z&2hZmP^i-e%(@d!(E|KRafiU8Q5u(wU((j8un3OR*Hvj+t literal 0 HcmV?d00001 diff --git a/software/monitor/monitor/docs/html/doxygen.css b/software/monitor/monitor/docs/html/doxygen.css new file mode 100644 index 0000000..4f1ab91 --- /dev/null +++ b/software/monitor/monitor/docs/html/doxygen.css @@ -0,0 +1,1596 @@ +/* The standard CSS for doxygen 1.8.13 */ + +body, table, div, p, dl { + font: 400 14px/22px Roboto,sans-serif; +} + +p.reference, p.definition { + font: 400 14px/22px Roboto,sans-serif; +} + +/* @group Heading Levels */ + +h1.groupheader { + font-size: 150%; +} + +.title { + font: 400 14px/28px Roboto,sans-serif; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2.groupheader { + border-bottom: 1px solid #879ECB; + color: #354C7B; + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + +dt { + font-weight: bold; +} + +div.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.qindex, div.navtab{ + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; +} + +div.qindex, div.navpath { + width: 100%; + line-height: 140%; +} + +div.navtab { + margin-right: 15px; +} + +/* @group Link Styling */ + +a { + color: #3D578C; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #4665A2; +} + +a:hover { + text-decoration: underline; +} + +a.qindex { + font-weight: bold; +} + +a.qindexHL { + font-weight: bold; + background-color: #9CAFD4; + color: #ffffff; + border: 1px double #869DCA; +} + +.contents a.qindexHL:visited { + color: #ffffff; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: #4665A2; +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; +} + +div.fragment { + padding: 0px; + margin: 4px 8px 4px 2px; + background-color: #FBFCFD; + border: 1px solid #C4CFE5; +} + +div.line { + font-family: monospace, fixed; + font-size: 13px; + min-height: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line:after { + content:"\000A"; + white-space: pre; +} + +div.line.glow { + background-color: cyan; + box-shadow: 0 0 10px cyan; +} + + +span.lineno { + padding-right: 4px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; +} + +.lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.ah, span.ah { + background-color: black; + font-weight: bold; + color: #ffffff; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background-color: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +td.indexkey { + background-color: #EBEFF6; + font-weight: bold; + border: 1px solid #C4CFE5; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #EBEFF6; + border: 1px solid #C4CFE5; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #EEF1F7; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #F7F8FB; + border-left: 2px solid #9CAFD4; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A3B4D7; +} + +th.dirtab { + background: #EBEFF6; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #4A6AAA; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F9FAFC; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memSeparator { + border-bottom: 1px solid #DEE4F0; + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight { + width: 100%; +} + +.memTemplParams { + color: #4665A2; + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtitle { + padding: 8px; + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-image: url('nav_f.png'); + background-repeat: repeat-x; + background-color: #E2E8F2; + line-height: 1.25; + font-weight: 300; + float:left; +} + +.permalink +{ + font-size: 65%; + display: inline-block; + vertical-align: middle; +} + +.memtemplate { + font-size: 80%; + color: #4665A2; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; +} + +.memname { + font-weight: 400; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 0px 6px 0px; + color: #253555; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-color: #DFE5F1; + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 4px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 4px; + +} + +.overload { + font-family: "courier new",courier,monospace; + font-size: 65%; +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 10px 2px 10px; + background-color: #FBFCFD; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: #FFFFFF; + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: #728DC1; + border-top:1px solid #5373B4; + border-left:1px solid #5373B4; + border-right:1px solid #C4CFE5; + border-bottom:1px solid #C4CFE5; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid #9CAFD4; + border-bottom: 1px solid #9CAFD4; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.even { + padding-left: 6px; + background-color: #F7F8FB; +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #3D578C; +} + +.arrow { + color: #9CAFD4; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: Arial, Helvetica; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: #728DC1; + color: white; + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderopen.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderclosed.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('doc.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +table.directory { + font: 400 14px Roboto,sans-serif; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: #2A3D61; +} + +table.doxtable caption { + caption-side: top; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + /*width: 100%;*/ + margin-bottom: 10px; + border: 1px solid #A8B8D9; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #A8B8D9; + border-bottom: 1px solid #A8B8D9; + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #A8B8D9; + /*width: 100%;*/ +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + font-size: 90%; + color: #253555; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + font-weight: 400; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #A8B8D9; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:#8AA0CC; + border:solid 1px #C2CDE4; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#364D7C; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: #283A5D; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color:#6884BD; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#364D7C; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + margin: 0px; + border-bottom: 1px solid #C4CFE5; +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +dl +{ + padding: 0 0 0 10px; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */ +dl.section +{ + margin-left: 0px; + padding-left: 0px; +} + +dl.note +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00D000; +} + +dl.deprecated +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #505050; +} + +dl.todo +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00C0E0; +} + +dl.test +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #3030E0; +} + +dl.bug +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; +} + +#projectname +{ + font: 300% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 120% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #5373B4; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.plantumlgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #90A5CE; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#334975; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; +} + +dl.citelist dd { + margin:2px 0; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #F4F6FA; + border: 1px solid #D8DFEE; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + color: #4665A2; + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + white-space: nowrap; + background-color: white; + border: 1px solid gray; + border-radius: 4px 4px 4px 4px; + box-shadow: 1px 1px 7px gray; + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: grey; + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: #006318; +} + +#powerTip div { + margin: 0px; + padding: 0px; + font: 12px/16px Roboto,sans-serif; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: #ffffff; + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before { + border-top-color: #808080; + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: #ffffff; + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: #808080; + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: #ffffff; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: #ffffff; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + +/* @group Markdown */ + +/* +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.markdownTableHead tr { +} + +table.markdownTableBodyLeft td, table.markdownTable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +th.markdownTableHeadLeft th.markdownTableHeadRight th.markdownTableHeadCenter th.markdownTableHeadNone { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft { + text-align: left +} + +th.markdownTableHeadRight { + text-align: right +} + +th.markdownTableHeadCenter { + text-align: center +} +*/ + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft, td.markdownTableBodyLeft { + text-align: left +} + +th.markdownTableHeadRight, td.markdownTableBodyRight { + text-align: right +} + +th.markdownTableHeadCenter, td.markdownTableBodyCenter { + text-align: center +} + + +/* @end */ diff --git a/software/monitor/monitor/docs/html/doxygen.png b/software/monitor/monitor/docs/html/doxygen.png new file mode 100644 index 0000000000000000000000000000000000000000..3ff17d807fd8aa003bed8bb2a69e8f0909592fd1 GIT binary patch literal 3779 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 literal 0 HcmV?d00001 diff --git a/software/monitor/monitor/docs/html/dynsections.js b/software/monitor/monitor/docs/html/dynsections.js new file mode 100644 index 0000000..1e6bf07 --- /dev/null +++ b/software/monitor/monitor/docs/html/dynsections.js @@ -0,0 +1,104 @@ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); +} + +function toggleLevel(level) +{ + $('table.directory tr').each(function() { + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l + + + + + + +Monitor: File List + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitor +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
File List
+
+
+
Here is a list of all files with brief descriptions:
+
+
+ + + + diff --git a/software/monitor/monitor/docs/html/files.js b/software/monitor/monitor/docs/html/files.js new file mode 100644 index 0000000..f7af809 --- /dev/null +++ b/software/monitor/monitor/docs/html/files.js @@ -0,0 +1,20 @@ +var files = +[ + [ "Client.cs", "_client_8cs.html", [ + [ "Client", "classmonitor_1_1_client.html", "classmonitor_1_1_client" ] + ] ], + [ "CommandManager.cs", "_command_manager_8cs.html", [ + [ "CommandManager", "classmonitor_1_1_command_manager.html", "classmonitor_1_1_command_manager" ] + ] ], + [ "DestijlCommandManager.cs", "_destijl_command_manager_8cs.html", [ + [ "DestijlCommandList", "classmonitor_1_1_destijl_command_list.html", "classmonitor_1_1_destijl_command_list" ], + [ "RobotCommandList", "classmonitor_1_1_robot_command_list.html", "classmonitor_1_1_robot_command_list" ], + [ "DestijlCommandManager", "classmonitor_1_1_destijl_command_manager.html", "classmonitor_1_1_destijl_command_manager" ] + ] ], + [ "MonitorUI.cs", "_monitor_u_i_8cs.html", [ + [ "MainWindow", "class_main_window.html", "class_main_window" ] + ] ], + [ "Program.cs", "_program_8cs.html", [ + [ "MainClass", "classmonitor_1_1_main_class.html", "classmonitor_1_1_main_class" ] + ] ] +]; \ No newline at end of file diff --git a/software/monitor/monitor/docs/html/folderclosed.png b/software/monitor/monitor/docs/html/folderclosed.png new file mode 100644 index 0000000000000000000000000000000000000000..bb8ab35edce8e97554e360005ee9fc5bffb36e66 GIT binary patch literal 616 zcmV-u0+;=XP)a9#ETzayK)T~Jw&MMH>OIr#&;dC}is*2Mqdf&akCc=O@`qC+4i z5Iu3w#1M@KqXCz8TIZd1wli&kkl2HVcAiZ8PUn5z_kG@-y;?yK06=cA0U%H0PH+kU zl6dp}OR(|r8-RG+YLu`zbI}5TlOU6ToR41{9=uz^?dGTNL;wIMf|V3`d1Wj3y!#6` zBLZ?xpKR~^2x}?~zA(_NUu3IaDB$tKma*XUdOZN~c=dLt_h_k!dbxm_*ibDM zlFX`g{k$X}yIe%$N)cn1LNu=q9_CS)*>A zsX_mM4L@`(cSNQKMFc$RtYbx{79#j-J7hk*>*+ZZhM4Hw?I?rsXCi#mRWJ=-0LGV5a-WR0Qgt<|Nqf)C-@80`5gIz45^_20000IqP)X=#(TiCT&PiIIVc55T}TU}EUh*{q$|`3@{d>{Tc9Bo>e= zfmF3!f>fbI9#GoEHh0f`i5)wkLpva0ztf%HpZneK?w-7AK@b4Itw{y|Zd3k!fH?q2 zlhckHd_V2M_X7+)U&_Xcfvtw60l;--DgZmLSw-Y?S>)zIqMyJ1#FwLU*%bl38ok+! zh78H87n`ZTS;uhzAR$M`zZ`bVhq=+%u9^$5jDplgxd44}9;IRqUH1YHH|@6oFe%z( zo4)_>E$F&^P-f(#)>(TrnbE>Pefs9~@iN=|)Rz|V`sGfHNrJ)0gJb8xx+SBmRf@1l zvuzt=vGfI)<-F9!o&3l?>9~0QbUDT(wFdnQPv%xdD)m*g%!20>Bc9iYmGAp<9YAa( z0QgYgTWqf1qN++Gqp z8@AYPTB3E|6s=WLG?xw0tm|U!o=&zd+H0oRYE;Dbx+Na9s^STqX|Gnq%H8s(nGDGJ j8vwW|`Ts`)fSK|Kx=IK@RG@g200000NkvXXu0mjfauFEA literal 0 HcmV?d00001 diff --git a/software/monitor/monitor/docs/html/functions.html b/software/monitor/monitor/docs/html/functions.html new file mode 100644 index 0000000..e2d5eeb --- /dev/null +++ b/software/monitor/monitor/docs/html/functions.html @@ -0,0 +1,477 @@ + + + + + + + +Monitor: Class Members + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitor +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all class members with links to the classes they belong to:
+ +

- a -

+ + +

- b -

+ + +

- c -

+ + +

- d -

+ + +

- h -

+ + +

- i -

+ + +

- m -

+ + +

- n -

+ + +

- o -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+ + +

- w -

+ + +

- ~ -

+
+
+ + + + diff --git a/software/monitor/monitor/docs/html/functions_enum.html b/software/monitor/monitor/docs/html/functions_enum.html new file mode 100644 index 0000000..480d3f1 --- /dev/null +++ b/software/monitor/monitor/docs/html/functions_enum.html @@ -0,0 +1,105 @@ + + + + + + + +Monitor: Class Members - Enumerations + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitor +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
+ + + + diff --git a/software/monitor/monitor/docs/html/functions_func.html b/software/monitor/monitor/docs/html/functions_func.html new file mode 100644 index 0000000..be8132a --- /dev/null +++ b/software/monitor/monitor/docs/html/functions_func.html @@ -0,0 +1,291 @@ + + + + + + + +Monitor: Class Members - Functions + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitor +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+  + +

- a -

+ + +

- c -

+ + +

- d -

+ + +

- m -

+ + +

- o -

+ + +

- r -

+ + +

- s -

+ + +

- w -

+ + +

- ~ -

+
+
+ + + + diff --git a/software/monitor/monitor/docs/html/functions_vars.html b/software/monitor/monitor/docs/html/functions_vars.html new file mode 100644 index 0000000..aac52e8 --- /dev/null +++ b/software/monitor/monitor/docs/html/functions_vars.html @@ -0,0 +1,311 @@ + + + + + + + +Monitor: Class Members - Variables + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitor +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+  + +

- b -

+ + +

- c -

+ + +

- d -

+ + +

- h -

+ + +

- i -

+ + +

- m -

+ + +

- n -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+ + +

- w -

+
+
+ + + + diff --git a/software/monitor/monitor/docs/html/graph_legend.html b/software/monitor/monitor/docs/html/graph_legend.html new file mode 100644 index 0000000..1c84f4e --- /dev/null +++ b/software/monitor/monitor/docs/html/graph_legend.html @@ -0,0 +1,127 @@ + + + + + + + +Monitor: Graph Legend + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitor +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Graph Legend
+
+
+

This page explains how to interpret the graphs that are generated by doxygen.

+

Consider the following example:

/*! Invisible class because of truncation */
class Invisible { };
/*! Truncated class, inheritance relation is hidden */
class Truncated : public Invisible { };
/* Class not documented with doxygen comments */
class Undocumented { };
/*! Class that is inherited using public inheritance */
class PublicBase : public Truncated { };
/*! A template class */
template<class T> class Templ { };
/*! Class that is inherited using protected inheritance */
class ProtectedBase { };
/*! Class that is inherited using private inheritance */
class PrivateBase { };
/*! Class that is used by the Inherited class */
class Used { };
/*! Super class that inherits a number of other classes */
class Inherited : public PublicBase,
protected ProtectedBase,
private PrivateBase,
public Undocumented,
public Templ<int>
{
private:
Used *m_usedClass;
};

This will result in the following graph:

+
+ +
+

The boxes in the above graph have the following meaning:

+
    +
  • +A filled gray box represents the struct or class for which the graph is generated.
  • +
  • +A box with a black border denotes a documented struct or class.
  • +
  • +A box with a gray border denotes an undocumented struct or class.
  • +
  • +A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries.
  • +
+

The arrows have the following meaning:

+
    +
  • +A dark blue arrow is used to visualize a public inheritance relation between two classes.
  • +
  • +A dark green arrow is used for protected inheritance.
  • +
  • +A dark red arrow is used for private inheritance.
  • +
  • +A purple dashed arrow is used if a class is contained or used by another class. The arrow is labelled with the variable(s) through which the pointed class or struct is accessible.
  • +
  • +A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labelled with the template parameters of the instance.
  • +
+
+
+ + + + diff --git a/software/monitor/monitor/docs/html/graph_legend.md5 b/software/monitor/monitor/docs/html/graph_legend.md5 new file mode 100644 index 0000000..a06ed05 --- /dev/null +++ b/software/monitor/monitor/docs/html/graph_legend.md5 @@ -0,0 +1 @@ +387ff8eb65306fa251338d3c9bd7bfff \ No newline at end of file diff --git a/software/monitor/monitor/docs/html/graph_legend.png b/software/monitor/monitor/docs/html/graph_legend.png new file mode 100644 index 0000000000000000000000000000000000000000..81788d8b778e11ebf43d6a041820fcaf7ec9a65e GIT binary patch literal 19465 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%0Av4SqcN@e|5`jp~UDrU|Bek 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 + + + + + + +Monitor: Class Hierarchy + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitor +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Class Hierarchy
+
+
+
+

Go to the graphical class hierarchy

+This inheritance list is sorted roughly, but not completely, alphabetically:
+
[detail level 12]
+ + + + + + + + +
 Cmonitor.ClientStatic class for TCP client
 Cmonitor.CommandManagerCommand Manager. Use for timeout managment during reception of data Used as intermediate layer between TCP client class (Client) and application level managment of command and answers
 Cmonitor.DestijlCommandListCommands and options parameters used in Destijl project when communicating with server
 Cmonitor.DestijlCommandManagerSpecialization class for command manager, which implemnent destijl protocol between monitor and server
 Cmonitor.MainClass
 Cmonitor.RobotCommandListCommands used for robot messages
 CWindow
 CMainWindowMain part of the program, behavior of main window
+
+
+
+ + + + diff --git a/software/monitor/monitor/docs/html/hierarchy.js b/software/monitor/monitor/docs/html/hierarchy.js new file mode 100644 index 0000000..379b41e --- /dev/null +++ b/software/monitor/monitor/docs/html/hierarchy.js @@ -0,0 +1,12 @@ +var hierarchy = +[ + [ "monitor.Client", "classmonitor_1_1_client.html", null ], + [ "monitor.CommandManager", "classmonitor_1_1_command_manager.html", null ], + [ "monitor.DestijlCommandList", "classmonitor_1_1_destijl_command_list.html", null ], + [ "monitor.DestijlCommandManager", "classmonitor_1_1_destijl_command_manager.html", null ], + [ "monitor.MainClass", "classmonitor_1_1_main_class.html", null ], + [ "monitor.RobotCommandList", "classmonitor_1_1_robot_command_list.html", null ], + [ "Window", null, [ + [ "MainWindow", "class_main_window.html", null ] + ] ] +]; \ No newline at end of file diff --git a/software/monitor/monitor/docs/html/index.html b/software/monitor/monitor/docs/html/index.html new file mode 100644 index 0000000..d6e7c4b --- /dev/null +++ b/software/monitor/monitor/docs/html/index.html @@ -0,0 +1,98 @@ + + + + + + + +Monitor: Main Page + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitor +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Monitor Documentation
+
+
+
+
+ + + + diff --git a/software/monitor/monitor/docs/html/inherit_graph_0.map b/software/monitor/monitor/docs/html/inherit_graph_0.map new file mode 100644 index 0000000..a433e9f --- /dev/null +++ b/software/monitor/monitor/docs/html/inherit_graph_0.map @@ -0,0 +1,3 @@ + + + diff --git a/software/monitor/monitor/docs/html/inherit_graph_0.md5 b/software/monitor/monitor/docs/html/inherit_graph_0.md5 new file mode 100644 index 0000000..95a8278 --- /dev/null +++ b/software/monitor/monitor/docs/html/inherit_graph_0.md5 @@ -0,0 +1 @@ +e829b3887c8b0c5c42140f50d2b41b39 \ No newline at end of file diff --git a/software/monitor/monitor/docs/html/inherit_graph_0.png b/software/monitor/monitor/docs/html/inherit_graph_0.png new file mode 100644 index 0000000000000000000000000000000000000000..5bbcbd83303064475aea51807141eea5991b4c7a GIT binary patch literal 2485 zcmV;m2}<^fP)dXX8ZZ8=iGC@zjMDm_uSvPJ;e}0VB^!EOm_$V4A@L00Go*ffKPV^OrX)| zdVA$^`N-hlm{K{W(;)_f?%+Uoc4lz7v#8Y1?u-9iOjIgW<>f6Rk*uYqyS=?vrP7#e zW@m@k+zSs0#!gQMW`|o`x zPu?vrZ&|t0D=sc5GSZL9oH@mFhla+=%9?-tv0fs1wsx&gMn;U6*KAUIYYsF`+_>?N zdGii_^;J%Fb^E92h(uC>Aji}5U_pV1sJ?wH(_>Vsu`T)S>v_L3!>ix-nf3bA9y-`m=HfBEHa_VzTALKtJ!#I>M6 z+|~8w$dSL07vj{ZzxMXZZ{3oR7s42;n)uUC;<&hAcXt*5=yd4i%OS!;u-Q(VHwWbB z*AlL52J4yF-96CK(!=2}v$IQMWAhd*I+U4NLPnt2*xF zXtg?$Mj`;P*&RFg-!T(V5Waf&rlH*!s+P_Q3H zq2Z}chn6pQCrRHJD<#`8F##)Adedlc!{IntNg@DLR<*3){xVRatYNEY8Ehi^Ir$ZzqiFfZdH8pjm zqRh-bn1~ z>MANKBD)9k=MOL#<76na*~37oKzVV6@_7#OeQmVicBUmo{tSACnrzL z7_zgoF%0YI=+GCtySp(AtFEp#FY-|liN(T^*xA|H)YN1s%H{H!ni@0hnM~%PLx(V5*8L_roFSX zb5>T?hmNjUvqr5}OC%Bi7#ka_tE)>&N-~%z7K=kdLhSAB&5KMU7Md6r7kA^v4MVZ0 zs3ll)r>E!n^XK9Hn+wCRTeofn1Ozad%*@P80GK^{wy&?RNF)M) z`uchRT!litXFCySlo% zySt~Rrm9pbKA(T~>{$R97#N^XD5phg(8tCC@9Fm!NdmlNg~gmKVPw8h2f~5pC179_4R2q8ZWQ6o4UQd zy}P@+{r&wJ3`RpkLrqQ1#*G{O{rzidYO1QLqNAfNv%+!{SFc{JR4VK0>V!h!=FOW8 z^=h>`CMIUzzI`H*=)#2yrlV3O$7QqGK0ZDtPMlc2d^wB70)U8!2(egPUS9s8N7f_} z9*;LMVQ6V-(aYjEZpfBoGMSs38-`(#k&(A=-+uDsNkBlrx^?R+Dk^GgYonr~KH3F+ zPb@nP04Nm7mMvR$?b;O*65{ImZY?}KJUlu&isSg`=;-m|#{pnyXiB@k!o$Pw+_@tV z2=qlyPfs3?S5{VL{<&`;IXO8sHMOLqq_3~<{{8#MjvWI49LEz9687%h+u7OK+S+>b z=+VT)L;#42iptB&3k?m$aeV#y^;fQ3@$m5Q^z{5#6W(I+oQM#ruC4}vyu7?g^;ub2 zOeT}Z<6XLRY3tUlY&Lt+bf#}M>GSpL*8!ls{M~-xzH+S*k z#SRV*!NI}x_4WG30|Nuwwrz89ap7<{2M-=psZ*i0k + + diff --git a/software/monitor/monitor/docs/html/inherit_graph_1.md5 b/software/monitor/monitor/docs/html/inherit_graph_1.md5 new file mode 100644 index 0000000..b630693 --- /dev/null +++ b/software/monitor/monitor/docs/html/inherit_graph_1.md5 @@ -0,0 +1 @@ +7ed482185f3c7f6876ea12ca6eb8fccf \ No newline at end of file diff --git a/software/monitor/monitor/docs/html/inherit_graph_1.png b/software/monitor/monitor/docs/html/inherit_graph_1.png new file mode 100644 index 0000000000000000000000000000000000000000..973bc81074ad8cf429db79416c60e2eb869b6145 GIT binary patch literal 1087 zcmV-F1i<@=P)00006VoOIv0RI60 z0RN!9r;`8x1N2EmK~!jg?U_AD^IR0iZyo}IShWzb#(+>ia8RV8Liaj|pditfQmeb5 zB2`4XSWzb(I*J{H4z^l!a}Y#SND;TtPW@2R!4BGJi&Rp`JLI9{O=HcYmx^+K)4iwX zocqte;a-wpq9_6cRQ`OofL{pm6h6pP_#jW=gUcrj!)$MFf0vY>i`i^mSXd}d|978q z9CvtlSaC@|n{YVHFpNBcmnIz?98^lrZ(w|UToFP0DSVKp@Iju!2YCvg@ANbtk7F42 z^*-rz+Uax}jYgeL*Voq<3WXH?VJ)PQ@AS03zJ7Um832$>CL0vp@P1fJ)or>6;mpeV}aa^>@RsVWo- znM|g-x;l@?BiBt31OUKbFuYeTWuBd#wY0QcU0un=kR-`4j69OdTSQtk35I0E~`~X0zFyogDzcNA2zHQq}qSxjgf| z`>3>BN?=)5q2%f52>`(JysA#s{v9114-XI0`1JI&r>Cd9wht-w^pj^4Ns<5n9LE)7 z06;pOE))u_t*z3ut*tGUN|jc+7p(e~#k} z1_Op+7={fF4&L3}Y1gI^_~(9OVfF8;a-oa5$`8n?~S!isQJ|YMq^(y}iASL?Ujt+u?9%Da_?^ z8q0k?-^0@vl}LXEGV5(@78nNs=y?t9Z65GK+gwp-?cJ%{4VO(yyiEirr1#N)$zo z<7_q?MNvAPuD`$k`1n|gtL~@ye13j@-e553_4=u)De1&3)uxbChSL2M6J_5`gTbKH zY8BC!)PF&G*C&5Lik|o3gFJ-~@)SPEQ}`fH;e$Md5AqZ~Do=aCV6gH!elDq0ilQia zM8#99)mkY%zXY15njH9-gMr|?0Z!UuT@ALJ=~{sRj~$vz$HeHZ`$002ovPDHLk FV1fp{6R-dP literal 0 HcmV?d00001 diff --git a/software/monitor/monitor/docs/html/inherit_graph_2.map b/software/monitor/monitor/docs/html/inherit_graph_2.map new file mode 100644 index 0000000..604e392 --- /dev/null +++ b/software/monitor/monitor/docs/html/inherit_graph_2.map @@ -0,0 +1,3 @@ + + + diff --git a/software/monitor/monitor/docs/html/inherit_graph_2.md5 b/software/monitor/monitor/docs/html/inherit_graph_2.md5 new file mode 100644 index 0000000..656a952 --- /dev/null +++ b/software/monitor/monitor/docs/html/inherit_graph_2.md5 @@ -0,0 +1 @@ +706d8657342e1f394c6be50940f14c9b \ No newline at end of file diff --git a/software/monitor/monitor/docs/html/inherit_graph_2.png b/software/monitor/monitor/docs/html/inherit_graph_2.png new file mode 100644 index 0000000000000000000000000000000000000000..db1943bc2bbd7e7c9bded2da4611888f7f63e3ff GIT binary patch literal 1843 zcmV-32h8}1P)HL`m@SrZHO4MK(jv+3Ch;2U{h;Gj&z%Dw%msI_u~Ax+~(a} zSIdg?d3DaY-{(2sb9lTvcX!CZaU38JKS|s|8$kS(pt?cO0o4tH4ybMrbil|Rv)No% zSGQ1B5PvdavG~M^6GZoi`;EilXlZHr?UoRKIz2r-X0w?*g3T1^_4?oC2l00xlgYwH z(D?>I2UIr*I-t5i&;ivAf({E=H+H+7!C=fikJIT?DwV5OuVylt8#Zis@ZiDRbN&j5 z^)eWY%*@QNtJ}71V=x$YyL}<7{WJ?%H!K$GE0@a^3dN&GkLK0s{4+E()YsQXbUhwVcX#&!`uSNXp2L3|%aFMdw z(NTIys;jFD3k$Day$ZWRp>Skmq^_>6sHkY(jQ#>75{X`~&&$h$-PYFD!otG#_V$H! z6+3k9Hw*^j=FOYAxw&jMySBDgr_-gUrza&PojG#`3dYCB4;(naX0uaMQ!6SerlzJ~ z)We4l^YimrELKfT4ItgOH*MMk0N`@Dk;0*}v$Inm5IleWoNPv~*B?KAoIFxhRdwy! zwdhWw`=3={Fc?H4Q9?q(s#U8lUc5*|g)I=r@%sAu?CfkNlPMO9U%Yrhn3Tz6_wU~) zx-Bg&QmK^a#+W~nvazu-Cnsm=(xqFrY-ww2gPR-*g(@p6Q&UryEnB8isRDsOlwF-2 zoJ4bTbJz$a0DzK`60g_W)YJq3*tv73*XwO)XaE3=jg8?ru23i>63M{8fW>0T&CNY~ z_AHFry?eLE<7sScgi4#u2B#w$keT67P*haZ+}!N*`3U9s_&5N-?RH198p%m?|Iq~# z6BF_A@dpnc{QUW|PNxF^xLhvE1!}cg4u@kf7`}Y@(%#)o3(Qsnp?cSS*(O{QUCr z@<_Wn6RA`xl}dl80eW@Q-QA7jcrX|YYujwLU@(YbnAK{9VuQhuk&ywTy1Kf^O3J#S z42J@X#S-Sk<#GW4JRT3F&nQl!_@7k}2n620e?K`niQ_oDg%D9;3(U&Ox^d$M;pf(^ zTSVR1Y&Mljb?Ve99LIG!-PWyJiSgL;Qz}Iw(VaVYh)M6>y$dJJ%*-4a8G(Z)lPNDR zFVe2gWM9D(I&6?ri;h9m9h!UQal@%sVPEO`> zx&8h9VzHPQeEIU_kt0XCy1LwMcPvgQT}2VZ$H#yC_)(=&`Fy^$Yu84K0swsa^l9C? zb;MPXNJJLPWU@nt4xK-LKI}s(_WYDeyWO6XlS71LXJ^BP!{JCtNg>8rELNmljfMGt zp5kyg7={fD48X44ZeO`_<^Pk#%|2a}aLR()v17-D3m3>Ew{PDL27?I+2~kqbg+L&% zYuB!_vNE&TeCg69@};l^rlqBkADZ62eM`Q&dGltU&-d)vGn2_wTwF{eKc!M25Lm5N zLi6t3JJ{gyc<{c3FMc#MQ4-O9Y_xEq#zFn);&S@9OA6l`WZ-~mJY`fiVrBbXqN`@9piatgKWjmGeH!LVjP2_!X$t z>Tln^6&DwO{rXiP5bWK%m;C$A`2y9=zs90Pi)w0Wh%c0X5$JOYK?hVf2s)s;LC^u! z4T267=VJ2veFOpkFg!dAU*;1~)JF@G`_-i1)c?AG4aPIOjv hR5u7Zpt?cO;Xkbx!?=X6s+<4-002ovPDHLkV1hK+mW==a literal 0 HcmV?d00001 diff --git a/software/monitor/monitor/docs/html/inherit_graph_3.map b/software/monitor/monitor/docs/html/inherit_graph_3.map new file mode 100644 index 0000000..6f42d2b --- /dev/null +++ b/software/monitor/monitor/docs/html/inherit_graph_3.map @@ -0,0 +1,3 @@ + + + diff --git a/software/monitor/monitor/docs/html/inherit_graph_3.md5 b/software/monitor/monitor/docs/html/inherit_graph_3.md5 new file mode 100644 index 0000000..fce7275 --- /dev/null +++ b/software/monitor/monitor/docs/html/inherit_graph_3.md5 @@ -0,0 +1 @@ +e506e4a72be67e389be1a4fb1dc96811 \ No newline at end of file diff --git a/software/monitor/monitor/docs/html/inherit_graph_3.png b/software/monitor/monitor/docs/html/inherit_graph_3.png new file mode 100644 index 0000000000000000000000000000000000000000..73eb143b7409a9bc9d6758d9946cb169db354fa9 GIT binary patch literal 1823 zcmV+)2jKXLP)gwtyCnvd5g&>IA?WXC( zFs!z=cJt=Vd_I5Ao;?pAK3q}&{~4rgA_~SS&dFpw2?T-*7cKw*JRXloBwF-3Hk-}o z^No*>-??)q7z`?v%0M8npcSYBNL2uU_V#v~Fu&iwd-v|VyuADO?+*

2x~1UjO|0 z^F@o#2-FypS<;^ar_j^WLmOEhTrSt5uL}Thxm?td{rmSDjYbXyP-hz&8ft24sIvxx zL9JFV=yJ;gDLXkuX*#AvqtR$I8tTYm_9p~Ey1Tm-3WZ1{YHn_}SS)h6eC^t`moHx? z3<80`$&)8VB9T-oH5d%Dv$KTPqeqXFN~J&`xOVLtpzON)_U!`z6c!fF=T2C@di844 zrcLkOyM2V5r5F=Kcf#ICA7jC=}}K>;wQ*RaJ#Tp^lCY0Kl(bzi=Ga z>-B22dSqn8;czGviYr&H5MIZQ9rOGBw{PDjEXn(Tc0(k)69$J49qQ@n35UZpF|?b{ zZnq1CLZaQ$(xTC5yk4)v;ZQ1-O-)VVa5y(Nx4pgH=ks-Sb@6z-NF+iPKy4F?lOx1q zbb5MvzRb)QID5L-4T8ZSkHeTr7xW!@t08C9yG3L``GKs}vtJV7B$B$>vo)r}p zfqC{PGNP2(U?+KhT4X&93=H5n9*@UqZI{axkH=9I9UdMgjICDd)~#C!uh*|%Q!N?m ziP4=fa5x-{Vra?w@ZkelPusR_^Z9&4`{m1*J9q931Oh8otY~d*jYJ|ij)%kHxw*MC z>uG9g3IO2u`x(>15;#k`QX0f!u`ge~5Ne4nhxDT5v!tZt?%lhjo_qK1rL3ov*7)+Y?e@KU_x}FWJBFj>qHq`S~o$mqIKStFEqYY;3gIY&UP-q)yTDDU-=Qe*8#w zKY#w5a`7c*BN^`N2}Mz@R(tmB*{@%}4i67sx^zje*Qetc4u{ip@9gXh27_ex=g*%Q zhJFA3ePCdqy1Lrq@sM9o=ybaC=g)gQ9;ee;Sy^c^nE(J46%}T)8N;y2$;q6YoZQ@8 zssMJHo15Rfd2{^uahuKNa5%1By=pR7Sp-o1U>fJw07pTf2V!dWl5R)YLRP zJIiQEKBp6jgi57ay?Qk3|Uay~+m>?}@W@Z{28w&~wghF9mT^(_j zw^%GPnJh0aZ^w=uj~_p#31B%t5qQ1cnwpxTq9Q(@UtV6`-``J8r5QM_ozkGCr9~hR z$YipPjt-qpCl-qtE$8Ou+S=N-Z{NOZ)vEIHa^gjpmLdXbMC{pMC;9w@P_Nh9+pE=T z85R7QAP7P|jX`J-->XnRaDxB8o0m_YJ^=uDJYJ@SWD~HSm~lFtYPI_G>C;lFG}BtL ziL~CB{y<7gOD85KGOZ%}fcq1KOJF@gxCGV{giByOLAZqBJl@;eyZkyJ*~r+~81WSY z2}3<;wc6#<1Ic@Vz literal 0 HcmV?d00001 diff --git a/software/monitor/monitor/docs/html/inherit_graph_4.map b/software/monitor/monitor/docs/html/inherit_graph_4.map new file mode 100644 index 0000000..b52b6cb --- /dev/null +++ b/software/monitor/monitor/docs/html/inherit_graph_4.map @@ -0,0 +1,3 @@ + + + diff --git a/software/monitor/monitor/docs/html/inherit_graph_4.md5 b/software/monitor/monitor/docs/html/inherit_graph_4.md5 new file mode 100644 index 0000000..926ca38 --- /dev/null +++ b/software/monitor/monitor/docs/html/inherit_graph_4.md5 @@ -0,0 +1 @@ +6a403a420dfa48b80ccea32e886e0f34 \ No newline at end of file diff --git a/software/monitor/monitor/docs/html/inherit_graph_4.png b/software/monitor/monitor/docs/html/inherit_graph_4.png new file mode 100644 index 0000000000000000000000000000000000000000..1cf0040f3e2b56848eab189d2f96800af9d84e0b GIT binary patch literal 2404 zcmZWrdpOf=AO9t-HKWuV=1`flhh_BU7#@a6nZwF3$BC?*hI00_oGN<4gA(Rpo{`O= zq=$)?9G0A|c(O`zCX-r3yuaQ*-s`=t_qwn9{{Hv9zxVw)e81P7o$MuH3NQcwBpq;A zS1?Y2TOA4k&w5LrX)r(n9PP2d&d*i$gqa5b`;ZRUUkS0r%Owf8ydAmjcMtChT5SW0 z3VLCW8gp|~kJ6C&x7CXRdT(TY?{Gz_Kd3*rQ1`uqg&nPG{OsyURDl%aOB`y^W&5oS zKPZkHk8X0EPuzjh>A!P~XNSKouF<#_!L!8!8;Si2O+O~e?;pAh@S4$@)g_n-VJwiq1* z3@T2u{NQ!;fbcLX2gmGpC2l5VHi@#?SJ|mjnDQPd4_a>1dzRbA*R&H*GCMG6W3%)w}H-U0nYAE)MBT&gr<jbS7K0(~;^Ja{SAFgGpu)VoYv+3lxIEsz#n*NA zad9Svn&h}60}bc@zz}L(0O!C!wXY(PYgib1S6OBzbYXe9a%t(3m{mzh2^OoCgTv{{ zx{=AMyg&mO9L{iKIz=Wog}-y6JSw76sm7eimGbod6J3c?^I`uqUI*cFsNpMQ2?jY~ z-rma1EiKfkhrt7`1Oh@k|5Pq75TT@W+WwZ33j3TRn5vS+(xqIySkc;Q{^0RrW?P%Z z6QcdCjG4pe*B6e9|JK6c*bBZ5iH0YN@6@~*8L<(GM2%Ngd?=xzl{A`|n3cD;x5ipw zPR_5NK7As1dY#I}tpM}D**LA*8oB9`D=`JiSeH8JAH_nWE zH&fGETU)Ej%W0;jrgK9T_KmTt0q7ItIHTDygVbun3jU3TmX@N-Ob7%5zco!Yk%Yr< zJ8Ln%e~<5PYHa*N_L$GhjkvA#hSHMifaB9qICqV_yIBHfOk3hcu6veaf$pD8O(()g z9v%+8g~v3r?QBN=I#VGbhj#Y$Jt8d~^2qc1*Tq8H&M`jU7QnI3DQ3qt#_ZoXp{Yq8 zT3%UU?muD?vB;{f9$F)7r6eaOM}J*7>$3&EWLBnvgl49uikn_ul9!g2K_CXxB^6`q zyiD7*Ib~%>TOy|*$C^N`QX7!H9Fy(>mF@NOIzViEycm#b{U;YAfB_+)~kBJ{KF)?Ww8G98J6u$V>)YRDEaL~4tov)|0_duICXeQW=1sY^E3#G+4cX_C~Ih@709oERG!IYez%!iuA4 zp6srha>s;I-TUXFO@B%qv^UO`l`in3y7<=x56(;UmzXg%2L=YZpFRbGUf%J4)xtgl zO0y~SO*(_2hO2ZXwZ^*OyPdbOs2m^W7Xjx=eEh}NwQ1*SIzcu&dw5)Ddp-6%pX_$o z!os4eu5Na|J!PjfAxwA0hDg1HBwOEf(L$g!G$0vL%GOa)h6{^}kz4DLIJI2N<}l@v z?8eK!K3hC~KVG!_#;A&*leqDD51-E;YYJ5?Dk_Rt7y3JCqR~>?+S(T=6l)us-OoBY za&mHZ0Z<7Eo8)8*f{qNxTfgAojA}RLLMH_s++WNcVd5L2W}U$5djbuLEs_+FNF>Sa zSy4g=Iw>h>a6b9~EDbzyj*h#5FCtM2KbDb%8h` zjvT>9&Ae2>U# + + diff --git a/software/monitor/monitor/docs/html/inherit_graph_5.md5 b/software/monitor/monitor/docs/html/inherit_graph_5.md5 new file mode 100644 index 0000000..6ec8c63 --- /dev/null +++ b/software/monitor/monitor/docs/html/inherit_graph_5.md5 @@ -0,0 +1 @@ +769b0a77b061172f8835f76091d4a3b5 \ No newline at end of file diff --git a/software/monitor/monitor/docs/html/inherit_graph_5.png b/software/monitor/monitor/docs/html/inherit_graph_5.png new file mode 100644 index 0000000000000000000000000000000000000000..e46e4e3d139f2299bb2278c4b3c98d7e25e0f648 GIT binary patch literal 1466 zcmV;r1x5OaP)66px#4zk1JHasQ$&)8Mv9PcZ!!W1Q8S=O;m#ea}G9@J?IyyQlD{FXo z_!espf&27HCX+QaH37h{U%%vXdC2{2Zf>rwuCh(H+dVTg6U?|*;dZ;9J$n`&9{&CN z_obz!^73+{(KtRn9&&}Z0L{T_wepm^fgp&G#|40bf`WJN-mywwUteKiApj5r5n7-1 z_4NjWfvYq&HsAM@43srDgYQ99IUUe=MK@< z*4EqG%Ny6fX8;%-9aXE<5fKq8mC9^32M})t*R&w-CjcldE%kUjJv}`DP*hap@p!ts zy8+BuPd^MI9U*002P{$H&J~skEl1W_NejVzB_g;o%{7IRC0h zk_3RGqa(p{XLAL6rYI^bEbQyouX}rYy}i9ssr2OJL{Plx{S=~4Gcz+ZP5XR4-Z4QC zKA#WAafidf1doi2q@|@XSyNL}+(<#61k;%SyWK8W3_%dJwYAO7%`{D0ESCKId{#d{ zKVM&8XRgb_!UAtx!Kw}q4*|gKb_jTI82Ad`&b$Wz z2?+@Rfa5st7yw)@*Tuz!N~L0&si~%*i-ZbG_a2(g`^>uZ1o12>shohyX#b`7JlSolikm)@=J;%q#Tty<0 zl$Mshe*HQpCx^SmKRG$^dc8P~d%fPawl)Cpcs$ou(%#-aJ3CuZQDL*$>~{Ny4<9~% z{><(&0{8sl#S639>~gvG_xB|dNmy9eRpQOyPJ+R&PwbXg@c8KHsIs#1;lqas2?=lC zzCAlT6O3f%`iqMTjYbm{6~+AOpU&H82o5?uJq-X~zI@^79UUDqnJhUuxx2f&yu3U< zKAyKe37*UL_O`)bNK8zOj*iaG&K?~dWpr+?f6p{cTP&93Oouy_h~W!VCd + + diff --git a/software/monitor/monitor/docs/html/inherit_graph_6.md5 b/software/monitor/monitor/docs/html/inherit_graph_6.md5 new file mode 100644 index 0000000..d1190a4 --- /dev/null +++ b/software/monitor/monitor/docs/html/inherit_graph_6.md5 @@ -0,0 +1 @@ +584ca43931ee38db8f1852cd21f60041 \ No newline at end of file diff --git a/software/monitor/monitor/docs/html/inherit_graph_6.png b/software/monitor/monitor/docs/html/inherit_graph_6.png new file mode 100644 index 0000000000000000000000000000000000000000..603db1c8d4e205b6dccc1bb6aebd9a5a0f26a43e GIT binary patch literal 1721 zcmV;q21fabP)o|6m)8A{GO+>C%>4wz%pdYju;W3vmpc z)m2+%E8VKuTDIz{F0i)dvQ338P@}r2b<d}S!U0Si=XY^_zq8Zf zcpyFM>i2%G&ikJ4^Ssad@RjodN+^l~1VRjQ*1G`2-vcreLNt(>5Tb$1gb)pkJ-~7N z_U+s2RSM#ddwWuDyx-=BVn`&}d~3JMDL?%g{wGO|jG5(LrQ+^pB@ zi;9YN?bRnws3)+=mYzx?C=k$z(R0pFe*t%35m%({o-{_(A~1!fv;7 zX4VFu&$sM#0l??;F~e`)z5&3@%*@Ky;wW2NTN@i2*@E`=_PV;d-!FO9VJhb|C;Px` z006t){>uz|kfoUbptrZTs;Ww%P+Y%$-D6%1>g(&H(P(#fHvs(j@q?l$v)No%S2sRB?)7@BtE;bGy-G(lG&F?6;rsXR z(@JJzoIi;4a9VKa&>_3sPLd?27>~z8k|arzU%!4mefspVW5+V4+P81t*w~oM<=VDw z+r^6)1(bB2xw$z22!%pR^<=3n3pYww5Q#*jQt62kC#I&RY&IJJ%+Aj8cG6<8s8lMa z(>Xmo{p{H@jYgBvOe9IlWU_nr?gfLv2M-=drP5d|wm$DnuV25WC@Psua;|+oUox4* zFl=;mlomUk&hqkdI_lM{S8OG(nRvr#f!FKhEryL;E}xp3%089D;n3^#0!n&jc6Js3 z!r?G)Lj<-g(5Q@pg@uI=A3nrlF^Zzzy?e)w;&ig2qN2CAm#L?}zdxgy=H}+|^76X6 zy6F5QNv2Y%6`E<82XM7o4FDL1ajpS?Ac)1q#nRGJdRSIg_T|f$^r)o}2(PH9;0gGy>FH?!CC$c-8#iy>{QmuW_N3eG-o1NwJRZ+-%e>nc5J;uc z&!0cn*Vh{i2KudwHwpkICntCA+{xVCv112squ3M|7Y`2)yId}CaUavP}s#A2~TB7tF8B9XXqzH+TE??N6RONq-?S+JJLrlCYO_ zI2=Z!k+%p0f`ddNvD@v;2^G+9a|jVZW + + + + + + +Monitor: Class Hierarchy + + + + + + + + + + + + + + +

+
+ + + + + + + +
+
Monitor +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Class Hierarchy
+
+
+ + + + + + + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+
+
+ + + + diff --git a/software/monitor/monitor/docs/html/jquery.js b/software/monitor/monitor/docs/html/jquery.js new file mode 100644 index 0000000..f5343ed --- /dev/null +++ b/software/monitor/monitor/docs/html/jquery.js @@ -0,0 +1,87 @@ +/*! + * jQuery JavaScript Library v1.7.1 + * http://jquery.com/ + * + * Copyright 2011, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Mon Nov 21 21:11:03 2011 -0500 + */ +(function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b40){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b40&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b21?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv
a";bI=bv.getElementsByTagName("*");bF=bv.getElementsByTagName("a")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement("select");bx=bG.appendChild(av.createElement("option"));bE=bv.getElementsByTagName("input")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bF.getAttribute("style")),hrefNormalized:(bF.getAttribute("href")==="/a"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type","radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked","checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,"return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="
";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="
t
";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="
";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType;if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/\bhover(\.\S+)?\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bCbA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}}); +/*! + * Sizzle CSS Selector Engine + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +(function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1},lt:function(bS,bR,e){return bRe[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="

";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="
";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT0){for(bB=bA;bB=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ag=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},ac=a(av);ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div
","
"]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["",""])[1].toLowerCase()]){bx=bx.replace(R,"<$1>");try{for(var bw=0,bv=this.length;bw1&&bw0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,"<$1>");var bK=(d.exec(bz)||["",""])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]===""&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],"tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:"inline-block"},function(){if(bv){e=Z(bw,"margin-right","marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,"-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight,bz=bw==="width"?an:a1,bx=0,e=bz.length;if(bA>0){if(bv!=="border"){for(;bx)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("
").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"":"")+"");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b})}})(window);/*! + * jQuery UI 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI + */ +(function(a,d){a.ui=a.ui||{};if(a.ui.version){return}a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(e,f){return typeof e==="number"?this.each(function(){var g=this;setTimeout(function(){a(g).focus();if(f){f.call(g)}},e)}):this._focus.apply(this,arguments)},scrollParent:function(){var e;if((a.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){e=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(a.curCSS(this,"position",1))&&(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}else{e=this.parents().filter(function(){return(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!e.length?a(document):e},zIndex:function(h){if(h!==d){return this.css("zIndex",h)}if(this.length){var f=a(this[0]),e,g;while(f.length&&f[0]!==document){e=f.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){g=parseInt(f.css("zIndex"),10);if(!isNaN(g)&&g!==0){return g}}f=f.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});a.each(["Width","Height"],function(g,e){var f=e==="Width"?["Left","Right"]:["Top","Bottom"],h=e.toLowerCase(),k={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};function j(m,l,i,n){a.each(f,function(){l-=parseFloat(a.curCSS(m,"padding"+this,true))||0;if(i){l-=parseFloat(a.curCSS(m,"border"+this+"Width",true))||0}if(n){l-=parseFloat(a.curCSS(m,"margin"+this,true))||0}});return l}a.fn["inner"+e]=function(i){if(i===d){return k["inner"+e].call(this)}return this.each(function(){a(this).css(h,j(this,i)+"px")})};a.fn["outer"+e]=function(i,l){if(typeof i!=="number"){return k["outer"+e].call(this,i)}return this.each(function(){a(this).css(h,j(this,i,true,l)+"px")})}});function c(g,e){var j=g.nodeName.toLowerCase();if("area"===j){var i=g.parentNode,h=i.name,f;if(!g.href||!h||i.nodeName.toLowerCase()!=="map"){return false}f=a("img[usemap=#"+h+"]")[0];return !!f&&b(f)}return(/input|select|textarea|button|object/.test(j)?!g.disabled:"a"==j?g.href||e:e)&&b(g)}function b(e){return !a(e).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.extend(a.expr[":"],{data:function(g,f,e){return !!a.data(g,e[3])},focusable:function(e){return c(e,!isNaN(a.attr(e,"tabindex")))},tabbable:function(g){var e=a.attr(g,"tabindex"),f=isNaN(e);return(f||e>=0)&&c(g,!f)}});a(function(){var e=document.body,f=e.appendChild(f=document.createElement("div"));f.offsetHeight;a.extend(f.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});a.support.minHeight=f.offsetHeight===100;a.support.selectstart="onselectstart" in f;e.removeChild(f).style.display="none"});a.extend(a.ui,{plugin:{add:function(f,g,j){var h=a.ui[f].prototype;for(var e in j){h.plugins[e]=h.plugins[e]||[];h.plugins[e].push([g,j[e]])}},call:function(e,g,f){var j=e.plugins[g];if(!j||!e.element[0].parentNode){return}for(var h=0;h0){return true}h[e]=1;g=(h[e]>0);h[e]=0;return g},isOverAxis:function(f,e,g){return(f>e)&&(f<(e+g))},isOver:function(j,f,i,h,e,g){return a.ui.isOverAxis(j,i,e)&&a.ui.isOverAxis(f,h,g)}})})(jQuery);/*! + * jQuery UI Widget 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Widget + */ +(function(b,d){if(b.cleanData){var c=b.cleanData;b.cleanData=function(f){for(var g=0,h;(h=f[g])!=null;g++){try{b(h).triggerHandler("remove")}catch(j){}}c(f)}}else{var a=b.fn.remove;b.fn.remove=function(e,f){return this.each(function(){if(!f){if(!e||b.filter(e,[this]).length){b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(g){}})}}return a.call(b(this),e,f)})}}b.widget=function(f,h,e){var g=f.split(".")[0],j;f=f.split(".")[1];j=g+"-"+f;if(!e){e=h;h=b.Widget}b.expr[":"][j]=function(k){return !!b.data(k,f)};b[g]=b[g]||{};b[g][f]=function(k,l){if(arguments.length){this._createWidget(k,l)}};var i=new h();i.options=b.extend(true,{},i.options);b[g][f].prototype=b.extend(true,i,{namespace:g,widgetName:f,widgetEventPrefix:b[g][f].prototype.widgetEventPrefix||f,widgetBaseClass:j},e);b.widget.bridge(f,b[g][f])};b.widget.bridge=function(f,e){b.fn[f]=function(i){var g=typeof i==="string",h=Array.prototype.slice.call(arguments,1),j=this;i=!g&&h.length?b.extend.apply(null,[true,i].concat(h)):i;if(g&&i.charAt(0)==="_"){return j}if(g){this.each(function(){var k=b.data(this,f),l=k&&b.isFunction(k[i])?k[i].apply(k,h):k;if(l!==k&&l!==d){j=l;return false}})}else{this.each(function(){var k=b.data(this,f);if(k){k.option(i||{})._init()}else{b.data(this,f,new e(i,this))}})}return j}};b.Widget=function(e,f){if(arguments.length){this._createWidget(e,f)}};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(f,g){b.data(g,this.widgetName,this);this.element=b(g);this.options=b.extend(true,{},this.options,this._getCreateOptions(),f);var e=this;this.element.bind("remove."+this.widgetName,function(){e.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(f,g){var e=f;if(arguments.length===0){return b.extend({},this.options)}if(typeof f==="string"){if(g===d){return this.options[f]}e={};e[f]=g}this._setOptions(e);return this},_setOptions:function(f){var e=this;b.each(f,function(g,h){e._setOption(g,h)});return this},_setOption:function(e,f){this.options[e]=f;if(e==="disabled"){this.widget()[f?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",f)}return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(e,f,g){var j,i,h=this.options[e];g=g||{};f=b.Event(f);f.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase();f.target=this.element[0];i=f.originalEvent;if(i){for(j in i){if(!(j in f)){f[j]=i[j]}}}this.element.trigger(f,g);return !(b.isFunction(h)&&h.call(this.element[0],f,g)===false||f.isDefaultPrevented())}}})(jQuery);/*! + * jQuery UI Mouse 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Mouse + * + * Depends: + * jquery.ui.widget.js + */ +(function(b,c){var a=false;b(document).mouseup(function(d){a=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var d=this;this.element.bind("mousedown."+this.widgetName,function(e){return d._mouseDown(e)}).bind("click."+this.widgetName,function(e){if(true===b.data(e.target,d.widgetName+".preventClickEvent")){b.removeData(e.target,d.widgetName+".preventClickEvent");e.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(f){if(a){return}(this._mouseStarted&&this._mouseUp(f));this._mouseDownEvent=f;var e=this,g=(f.which==1),d=(typeof this.options.cancel=="string"&&f.target.nodeName?b(f.target).closest(this.options.cancel).length:false);if(!g||d||!this._mouseCapture(f)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(f)&&this._mouseDelayMet(f)){this._mouseStarted=(this._mouseStart(f)!==false);if(!this._mouseStarted){f.preventDefault();return true}}if(true===b.data(f.target,this.widgetName+".preventClickEvent")){b.removeData(f.target,this.widgetName+".preventClickEvent")}this._mouseMoveDelegate=function(h){return e._mouseMove(h)};this._mouseUpDelegate=function(h){return e._mouseUp(h)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);f.preventDefault();a=true;return true},_mouseMove:function(d){if(b.browser.msie&&!(document.documentMode>=9)&&!d.button){return this._mouseUp(d)}if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,d)!==false);(this._mouseStarted?this._mouseDrag(d):this._mouseUp(d))}return !this._mouseStarted},_mouseUp:function(d){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(d.target==this._mouseDownEvent.target){b.data(d.target,this.widgetName+".preventClickEvent",true)}this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return(Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance)},_mouseDelayMet:function(d){return this.mouseDelayMet},_mouseStart:function(d){},_mouseDrag:function(d){},_mouseStop:function(d){},_mouseCapture:function(d){return true}})})(jQuery);(function(c,d){c.widget("ui.resizable",c.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000},_create:function(){var f=this,k=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(k.aspectRatio),aspectRatio:k.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:k.helper||k.ghost||k.animate?k.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){this.element.wrap(c('
').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=k.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var l=this.handles.split(",");this.handles={};for(var g=0;g
');if(/sw|se|ne|nw/.test(j)){h.css({zIndex:++k.zIndex})}if("se"==j){h.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[j]=".ui-resizable-"+j;this.element.append(h)}}this._renderAxis=function(q){q=q||this.element;for(var n in this.handles){if(this.handles[n].constructor==String){this.handles[n]=c(this.handles[n],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var o=c(this.handles[n],this.element),p=0;p=/sw|ne|nw|se|n|s/.test(n)?o.outerHeight():o.outerWidth();var m=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");q.css(m,p);this._proportionallyResize()}if(!c(this.handles[n]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!f.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}f.axis=i&&i[1]?i[1]:"se"}});if(k.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){if(k.disabled){return}c(this).removeClass("ui-resizable-autohide");f._handles.show()},function(){if(k.disabled){return}if(!f.resizing){c(this).addClass("ui-resizable-autohide");f._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var e=function(g){c(g).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){e(this.element);var f=this.element;f.after(this.originalElement.css({position:f.css("position"),width:f.outerWidth(),height:f.outerHeight(),top:f.css("top"),left:f.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);e(this.originalElement);return this},_mouseCapture:function(f){var g=false;for(var e in this.handles){if(c(this.handles[e])[0]==f.target){g=true}}return !this.options.disabled&&g},_mouseStart:function(g){var j=this.options,f=this.element.position(),e=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(e.is(".ui-draggable")||(/absolute/).test(e.css("position"))){e.css({position:"absolute",top:f.top,left:f.left})}this._renderProxy();var k=b(this.helper.css("left")),h=b(this.helper.css("top"));if(j.containment){k+=c(j.containment).scrollLeft()||0;h+=c(j.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:k,top:h};this.size=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalPosition={left:k,top:h};this.sizeDiff={width:e.outerWidth()-e.width(),height:e.outerHeight()-e.height()};this.originalMousePosition={left:g.pageX,top:g.pageY};this.aspectRatio=(typeof j.aspectRatio=="number")?j.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var i=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",i=="auto"?this.axis+"-resize":i);e.addClass("ui-resizable-resizing");this._propagate("start",g);return true},_mouseDrag:function(e){var h=this.helper,g=this.options,m={},q=this,j=this.originalMousePosition,n=this.axis;var r=(e.pageX-j.left)||0,p=(e.pageY-j.top)||0;var i=this._change[n];if(!i){return false}var l=i.apply(this,[e,r,p]),k=c.browser.msie&&c.browser.version<7,f=this.sizeDiff;this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey){l=this._updateRatio(l,e)}l=this._respectSize(l,e);this._propagate("resize",e);h.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(l);this._trigger("resize",e,this.ui());return false},_mouseStop:function(h){this.resizing=false;var i=this.options,m=this;if(this._helper){var g=this._proportionallyResizeElements,e=g.length&&(/textarea/i).test(g[0].nodeName),f=e&&c.ui.hasScroll(g[0],"left")?0:m.sizeDiff.height,k=e?0:m.sizeDiff.width;var n={width:(m.helper.width()-k),height:(m.helper.height()-f)},j=(parseInt(m.element.css("left"),10)+(m.position.left-m.originalPosition.left))||null,l=(parseInt(m.element.css("top"),10)+(m.position.top-m.originalPosition.top))||null;if(!i.animate){this.element.css(c.extend(n,{top:l,left:j}))}m.helper.height(m.size.height);m.helper.width(m.size.width);if(this._helper&&!i.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",h);if(this._helper){this.helper.remove()}return false},_updateVirtualBoundaries:function(g){var j=this.options,i,h,f,k,e;e={minWidth:a(j.minWidth)?j.minWidth:0,maxWidth:a(j.maxWidth)?j.maxWidth:Infinity,minHeight:a(j.minHeight)?j.minHeight:0,maxHeight:a(j.maxHeight)?j.maxHeight:Infinity};if(this._aspectRatio||g){i=e.minHeight*this.aspectRatio;f=e.minWidth/this.aspectRatio;h=e.maxHeight*this.aspectRatio;k=e.maxWidth/this.aspectRatio;if(i>e.minWidth){e.minWidth=i}if(f>e.minHeight){e.minHeight=f}if(hl.width),s=a(l.height)&&i.minHeight&&(i.minHeight>l.height);if(h){l.width=i.minWidth}if(s){l.height=i.minHeight}if(t){l.width=i.maxWidth}if(m){l.height=i.maxHeight}var f=this.originalPosition.left+this.originalSize.width,p=this.position.top+this.size.height;var k=/sw|nw|w/.test(q),e=/nw|ne|n/.test(q);if(h&&k){l.left=f-i.minWidth}if(t&&k){l.left=f-i.maxWidth}if(s&&e){l.top=p-i.minHeight}if(m&&e){l.top=p-i.maxHeight}var n=!l.width&&!l.height;if(n&&!l.left&&l.top){l.top=null}else{if(n&&!l.top&&l.left){l.left=null}}return l},_proportionallyResize:function(){var k=this.options;if(!this._proportionallyResizeElements.length){return}var g=this.helper||this.element;for(var f=0;f');var e=c.browser.msie&&c.browser.version<7,g=(e?1:0),h=(e?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+h,height:this.element.outerHeight()+h,position:"absolute",left:this.elementOffset.left-g+"px",top:this.elementOffset.top-g+"px",zIndex:++i.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(g,f,e){return{width:this.originalSize.width+f}},w:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{left:i.left+f,width:g.width-f}},n:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{top:i.top+e,height:g.height-e}},s:function(g,f,e){return{height:this.originalSize.height+e}},se:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},sw:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[g,f,e]))},ne:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},nw:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[g,f,e]))}},_propagate:function(f,e){c.ui.plugin.call(this,f,[e,this.ui()]);(f!="resize"&&this._trigger(f,e,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});c.extend(c.ui.resizable,{version:"1.8.18"});c.ui.plugin.add("resizable","alsoResize",{start:function(f,g){var e=c(this).data("resizable"),i=e.options;var h=function(j){c(j).each(function(){var k=c(this);k.data("resizable-alsoresize",{width:parseInt(k.width(),10),height:parseInt(k.height(),10),left:parseInt(k.css("left"),10),top:parseInt(k.css("top"),10)})})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.parentNode){if(i.alsoResize.length){i.alsoResize=i.alsoResize[0];h(i.alsoResize)}else{c.each(i.alsoResize,function(j){h(j)})}}else{h(i.alsoResize)}},resize:function(g,i){var f=c(this).data("resizable"),j=f.options,h=f.originalSize,l=f.originalPosition;var k={height:(f.size.height-h.height)||0,width:(f.size.width-h.width)||0,top:(f.position.top-l.top)||0,left:(f.position.left-l.left)||0},e=function(m,n){c(m).each(function(){var q=c(this),r=c(this).data("resizable-alsoresize"),p={},o=n&&n.length?n:q.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];c.each(o,function(s,u){var t=(r[u]||0)+(k[u]||0);if(t&&t>=0){p[u]=t||null}});q.css(p)})};if(typeof(j.alsoResize)=="object"&&!j.alsoResize.nodeType){c.each(j.alsoResize,function(m,n){e(m,n)})}else{e(j.alsoResize)}},stop:function(e,f){c(this).removeData("resizable-alsoresize")}});c.ui.plugin.add("resizable","animate",{stop:function(i,n){var p=c(this).data("resizable"),j=p.options;var h=p._proportionallyResizeElements,e=h.length&&(/textarea/i).test(h[0].nodeName),f=e&&c.ui.hasScroll(h[0],"left")?0:p.sizeDiff.height,l=e?0:p.sizeDiff.width;var g={width:(p.size.width-l),height:(p.size.height-f)},k=(parseInt(p.element.css("left"),10)+(p.position.left-p.originalPosition.left))||null,m=(parseInt(p.element.css("top"),10)+(p.position.top-p.originalPosition.top))||null;p.element.animate(c.extend(g,m&&k?{top:m,left:k}:{}),{duration:j.animateDuration,easing:j.animateEasing,step:function(){var o={width:parseInt(p.element.css("width"),10),height:parseInt(p.element.css("height"),10),top:parseInt(p.element.css("top"),10),left:parseInt(p.element.css("left"),10)};if(h&&h.length){c(h[0]).css({width:o.width,height:o.height})}p._updateCache(o);p._propagate("resize",i)}})}});c.ui.plugin.add("resizable","containment",{start:function(f,r){var t=c(this).data("resizable"),j=t.options,l=t.element;var g=j.containment,k=(g instanceof c)?g.get(0):(/parent/.test(g))?l.parent().get(0):g;if(!k){return}t.containerElement=c(k);if(/document/.test(g)||g==document){t.containerOffset={left:0,top:0};t.containerPosition={left:0,top:0};t.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var n=c(k),i=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){i[p]=b(n.css("padding"+o))});t.containerOffset=n.offset();t.containerPosition=n.position();t.containerSize={height:(n.innerHeight()-i[3]),width:(n.innerWidth()-i[1])};var q=t.containerOffset,e=t.containerSize.height,m=t.containerSize.width,h=(c.ui.hasScroll(k,"left")?k.scrollWidth:m),s=(c.ui.hasScroll(k)?k.scrollHeight:e);t.parentData={element:k,left:q.left,top:q.top,width:h,height:s}}},resize:function(g,q){var t=c(this).data("resizable"),i=t.options,f=t.containerSize,p=t.containerOffset,m=t.size,n=t.position,r=t._aspectRatio||g.shiftKey,e={top:0,left:0},h=t.containerElement;if(h[0]!=document&&(/static/).test(h.css("position"))){e=p}if(n.left<(t._helper?p.left:0)){t.size.width=t.size.width+(t._helper?(t.position.left-p.left):(t.position.left-e.left));if(r){t.size.height=t.size.width/i.aspectRatio}t.position.left=i.helper?p.left:0}if(n.top<(t._helper?p.top:0)){t.size.height=t.size.height+(t._helper?(t.position.top-p.top):t.position.top);if(r){t.size.width=t.size.height*i.aspectRatio}t.position.top=t._helper?p.top:0}t.offset.left=t.parentData.left+t.position.left;t.offset.top=t.parentData.top+t.position.top;var l=Math.abs((t._helper?t.offset.left-e.left:(t.offset.left-e.left))+t.sizeDiff.width),s=Math.abs((t._helper?t.offset.top-e.top:(t.offset.top-p.top))+t.sizeDiff.height);var k=t.containerElement.get(0)==t.element.parent().get(0),j=/relative|absolute/.test(t.containerElement.css("position"));if(k&&j){l-=t.parentData.left}if(l+t.size.width>=t.parentData.width){t.size.width=t.parentData.width-l;if(r){t.size.height=t.size.width/t.aspectRatio}}if(s+t.size.height>=t.parentData.height){t.size.height=t.parentData.height-s;if(r){t.size.width=t.size.height*t.aspectRatio}}},stop:function(f,n){var q=c(this).data("resizable"),g=q.options,l=q.position,m=q.containerOffset,e=q.containerPosition,i=q.containerElement;var j=c(q.helper),r=j.offset(),p=j.outerWidth()-q.sizeDiff.width,k=j.outerHeight()-q.sizeDiff.height;if(q._helper&&!g.animate&&(/relative/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}if(q._helper&&!g.animate&&(/static/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}}});c.ui.plugin.add("resizable","ghost",{start:function(g,h){var e=c(this).data("resizable"),i=e.options,f=e.size;e.ghost=e.originalElement.clone();e.ghost.css({opacity:0.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:"");e.ghost.appendTo(e.helper)},resize:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost){e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})}},stop:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost&&e.helper){e.helper.get(0).removeChild(e.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(e,m){var p=c(this).data("resizable"),h=p.options,k=p.size,i=p.originalSize,j=p.originalPosition,n=p.axis,l=h._aspectRatio||e.shiftKey;h.grid=typeof h.grid=="number"?[h.grid,h.grid]:h.grid;var g=Math.round((k.width-i.width)/(h.grid[0]||1))*(h.grid[0]||1),f=Math.round((k.height-i.height)/(h.grid[1]||1))*(h.grid[1]||1);if(/^(se|s|e)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f}else{if(/^(ne)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f}else{if(/^(sw)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.left=j.left-g}else{p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f;p.position.left=j.left-g}}}}});var b=function(e){return parseInt(e,10)||0};var a=function(e){return !isNaN(parseInt(e,10))}})(jQuery);/*! + * jQuery hashchange event - v1.3 - 7/21/2010 + * http://benalman.com/projects/jquery-hashchange-plugin/ + * + * Copyright (c) 2010 "Cowboy" Ben Alman + * Dual licensed under the MIT and GPL licenses. + * http://benalman.com/about/license/ + */ +(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$(' + + +
+ +
+
monitor Namespace Reference
+
+
+
+ + + + + + + + + + + + + + + + + + +

+Classes

class  Client
 Static class for TCP client More...
 
class  CommandManager
 Command Manager. Use for timeout managment during reception of data Used as intermediate layer between TCP client class (Client) and application level managment of command and answers More...
 
class  DestijlCommandList
 Commands and options parameters used in Destijl project when communicating with server More...
 
class  DestijlCommandManager
 Specialization class for command manager, which implemnent destijl protocol between monitor and server More...
 
class  MainClass
 
class  RobotCommandList
 Commands used for robot messages More...
 
+ + + + + + diff --git a/software/monitor/monitor/docs/html/namespacemonitor.js b/software/monitor/monitor/docs/html/namespacemonitor.js new file mode 100644 index 0000000..850e9da --- /dev/null +++ b/software/monitor/monitor/docs/html/namespacemonitor.js @@ -0,0 +1,9 @@ +var namespacemonitor = +[ + [ "Client", "classmonitor_1_1_client.html", "classmonitor_1_1_client" ], + [ "CommandManager", "classmonitor_1_1_command_manager.html", "classmonitor_1_1_command_manager" ], + [ "DestijlCommandList", "classmonitor_1_1_destijl_command_list.html", "classmonitor_1_1_destijl_command_list" ], + [ "DestijlCommandManager", "classmonitor_1_1_destijl_command_manager.html", "classmonitor_1_1_destijl_command_manager" ], + [ "MainClass", "classmonitor_1_1_main_class.html", "classmonitor_1_1_main_class" ], + [ "RobotCommandList", "classmonitor_1_1_robot_command_list.html", "classmonitor_1_1_robot_command_list" ] +]; \ No newline at end of file diff --git a/software/monitor/monitor/docs/html/namespaces.html b/software/monitor/monitor/docs/html/namespaces.html new file mode 100644 index 0000000..e51243a --- /dev/null +++ b/software/monitor/monitor/docs/html/namespaces.html @@ -0,0 +1,103 @@ + + + + + + + +Monitor: Packages + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitor +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Packages
+
+
+
Here are the packages with brief descriptions (if available):
+ + +
 Nmonitor
+
+
+
+ + + + diff --git a/software/monitor/monitor/docs/html/namespaces.js b/software/monitor/monitor/docs/html/namespaces.js new file mode 100644 index 0000000..1a7475d --- /dev/null +++ b/software/monitor/monitor/docs/html/namespaces.js @@ -0,0 +1,4 @@ +var namespaces = +[ + [ "monitor", "namespacemonitor.html", null ] +]; \ No newline at end of file diff --git a/software/monitor/monitor/docs/html/nav_f.png b/software/monitor/monitor/docs/html/nav_f.png new file mode 100644 index 0000000000000000000000000000000000000000..72a58a529ed3a9ed6aa0c51a79cf207e026deee2 GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQVE_ejv*C{Z|{2ZH7M}7UYxc) zn!W8uqtnIQ>_z8U literal 0 HcmV?d00001 diff --git a/software/monitor/monitor/docs/html/nav_g.png b/software/monitor/monitor/docs/html/nav_g.png new file mode 100644 index 0000000000000000000000000000000000000000..2093a237a94f6c83e19ec6e5fd42f7ddabdafa81 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrB!3HFm1ilyoDK$?Q$B+ufw|5PB85lU25BhtE tr?otc=hd~V+ws&_A@j8Fiv!KF$B+ufw|5=67#uj90@pIL wZ=Q8~_Ju`#59=RjDrmm`tMD@M=!-l18IR?&vFVdQ&MBb@0HFXL=0 ? varName.substring(i+1) : varName; + return eval(n.replace(/\-/g,'_')); +} + +function stripPath(uri) +{ + return uri.substring(uri.lastIndexOf('/')+1); +} + +function stripPath2(uri) +{ + var i = uri.lastIndexOf('/'); + var s = uri.substring(i+1); + var m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/); + return m ? uri.substring(i-6) : s; +} + +function hashValue() +{ + return $(location).attr('hash').substring(1).replace(/[^\w\-]/g,''); +} + +function hashUrl() +{ + return '#'+hashValue(); +} + +function pathName() +{ + return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;\(\)]/g, ''); +} + +function localStorageSupported() +{ + try { + return 'localStorage' in window && window['localStorage'] !== null && window.localStorage.getItem; + } + catch(e) { + return false; + } +} + + +function storeLink(link) +{ + if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) { + window.localStorage.setItem('navpath',link); + } +} + +function deleteLink() +{ + if (localStorageSupported()) { + window.localStorage.setItem('navpath',''); + } +} + +function cachedLink() +{ + if (localStorageSupported()) { + return window.localStorage.getItem('navpath'); + } else { + return ''; + } +} + +function getScript(scriptName,func,show) +{ + var head = document.getElementsByTagName("head")[0]; + var script = document.createElement('script'); + script.id = scriptName; + script.type = 'text/javascript'; + script.onload = func; + script.src = scriptName+'.js'; + if ($.browser.msie && $.browser.version<=8) { + // script.onload does not work with older versions of IE + script.onreadystatechange = function() { + if (script.readyState=='complete' || script.readyState=='loaded') { + func(); if (show) showRoot(); + } + } + } + head.appendChild(script); +} + +function createIndent(o,domNode,node,level) +{ + var level=-1; + var n = node; + while (n.parentNode) { level++; n=n.parentNode; } + if (node.childrenData) { + var imgNode = document.createElement("span"); + imgNode.className = 'arrow'; + imgNode.style.paddingLeft=(16*level).toString()+'px'; + imgNode.innerHTML=arrowRight; + node.plus_img = imgNode; + node.expandToggle = document.createElement("a"); + node.expandToggle.href = "javascript:void(0)"; + node.expandToggle.onclick = function() { + if (node.expanded) { + $(node.getChildrenUL()).slideUp("fast"); + node.plus_img.innerHTML=arrowRight; + node.expanded = false; + } else { + expandNode(o, node, false, false); + } + } + node.expandToggle.appendChild(imgNode); + domNode.appendChild(node.expandToggle); + } else { + var span = document.createElement("span"); + span.className = 'arrow'; + span.style.width = 16*(level+1)+'px'; + span.innerHTML = ' '; + domNode.appendChild(span); + } +} + +var animationInProgress = false; + +function gotoAnchor(anchor,aname,updateLocation) +{ + var pos, docContent = $('#doc-content'); + var ancParent = $(anchor.parent()); + if (ancParent.hasClass('memItemLeft') || + ancParent.hasClass('fieldname') || + ancParent.hasClass('fieldtype') || + ancParent.is(':header')) + { + pos = ancParent.position().top; + } else if (anchor.position()) { + pos = anchor.position().top; + } + if (pos) { + var dist = Math.abs(Math.min( + pos-docContent.offset().top, + docContent[0].scrollHeight- + docContent.height()-docContent.scrollTop())); + animationInProgress=true; + docContent.animate({ + scrollTop: pos + docContent.scrollTop() - docContent.offset().top + },Math.max(50,Math.min(500,dist)),function(){ + if (updateLocation) window.location.href=aname; + animationInProgress=false; + }); + } +} + +function newNode(o, po, text, link, childrenData, lastNode) +{ + var node = new Object(); + node.children = Array(); + node.childrenData = childrenData; + node.depth = po.depth + 1; + node.relpath = po.relpath; + node.isLast = lastNode; + + node.li = document.createElement("li"); + po.getChildrenUL().appendChild(node.li); + node.parentNode = po; + + node.itemDiv = document.createElement("div"); + node.itemDiv.className = "item"; + + node.labelSpan = document.createElement("span"); + node.labelSpan.className = "label"; + + createIndent(o,node.itemDiv,node,0); + node.itemDiv.appendChild(node.labelSpan); + node.li.appendChild(node.itemDiv); + + var a = document.createElement("a"); + node.labelSpan.appendChild(a); + node.label = document.createTextNode(text); + node.expanded = false; + a.appendChild(node.label); + if (link) { + var url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + link = url; + } else { + url = node.relpath+link; + } + a.className = stripPath(link.replace('#',':')); + if (link.indexOf('#')!=-1) { + var aname = '#'+link.split('#')[1]; + var srcPage = stripPath(pathName()); + var targetPage = stripPath(link.split('#')[0]); + a.href = srcPage!=targetPage ? url : "javascript:void(0)"; + a.onclick = function(){ + storeLink(link); + if (!$(a).parent().parent().hasClass('selected')) + { + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + $(a).parent().parent().addClass('selected'); + $(a).parent().parent().attr('id','selected'); + } + var anchor = $(aname); + gotoAnchor(anchor,aname,true); + }; + } else { + a.href = url; + a.onclick = function() { storeLink(link); } + } + } else { + if (childrenData != null) + { + a.className = "nolink"; + a.href = "javascript:void(0)"; + a.onclick = node.expandToggle.onclick; + } + } + + node.childrenUL = null; + node.getChildrenUL = function() { + if (!node.childrenUL) { + node.childrenUL = document.createElement("ul"); + node.childrenUL.className = "children_ul"; + node.childrenUL.style.display = "none"; + node.li.appendChild(node.childrenUL); + } + return node.childrenUL; + }; + + return node; +} + +function showRoot() +{ + var headerHeight = $("#top").height(); + var footerHeight = $("#nav-path").height(); + var windowHeight = $(window).height() - headerHeight - footerHeight; + (function (){ // retry until we can scroll to the selected item + try { + var navtree=$('#nav-tree'); + navtree.scrollTo('#selected',0,{offset:-windowHeight/2}); + } catch (err) { + setTimeout(arguments.callee, 0); + } + })(); +} + +function expandNode(o, node, imm, showRoot) +{ + if (node.childrenData && !node.expanded) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + expandNode(o, node, imm, showRoot); + }, showRoot); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } if (imm || ($.browser.msie && $.browser.version>8)) { + // somehow slideDown jumps to the start of tree for IE9 :-( + $(node.getChildrenUL()).show(); + } else { + $(node.getChildrenUL()).slideDown("fast"); + } + node.plus_img.innerHTML = arrowDown; + node.expanded = true; + } + } +} + +function glowEffect(n,duration) +{ + n.addClass('glow').delay(duration).queue(function(next){ + $(this).removeClass('glow');next(); + }); +} + +function highlightAnchor() +{ + var aname = hashUrl(); + var anchor = $(aname); + if (anchor.parent().attr('class')=='memItemLeft'){ + var rows = $('.memberdecls tr[class$="'+hashValue()+'"]'); + glowEffect(rows.children(),300); // member without details + } else if (anchor.parent().attr('class')=='fieldname'){ + glowEffect(anchor.parent().parent(),1000); // enum value + } else if (anchor.parent().attr('class')=='fieldtype'){ + glowEffect(anchor.parent().parent(),1000); // struct field + } else if (anchor.parent().is(":header")) { + glowEffect(anchor.parent(),1000); // section header + } else { + glowEffect(anchor.next(),1000); // normal member + } + gotoAnchor(anchor,aname,false); +} + +function selectAndHighlight(hash,n) +{ + var a; + if (hash) { + var link=stripPath(pathName())+':'+hash.substring(1); + a=$('.item a[class$="'+link+'"]'); + } + if (a && a.length) { + a.parent().parent().addClass('selected'); + a.parent().parent().attr('id','selected'); + highlightAnchor(); + } else if (n) { + $(n.itemDiv).addClass('selected'); + $(n.itemDiv).attr('id','selected'); + } + if ($('#nav-tree-contents .item:first').hasClass('selected')) { + $('#nav-sync').css('top','30px'); + } else { + $('#nav-sync').css('top','5px'); + } + showRoot(); +} + +function showNode(o, node, index, hash) +{ + if (node && node.childrenData) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + showNode(o,node,index,hash); + },true); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).css({'display':'block'}); + node.plus_img.innerHTML = arrowDown; + node.expanded = true; + var n = node.children[o.breadcrumbs[index]]; + if (index+11) hash = '#'+parts[1].replace(/[^\w\-]/g,''); + else hash=''; + } + if (hash.match(/^#l\d+$/)) { + var anchor=$('a[name='+hash.substring(1)+']'); + glowEffect(anchor.parent(),1000); // line number + hash=''; // strip line number anchors + } + var url=root+hash; + var i=-1; + while (NAVTREEINDEX[i+1]<=url) i++; + if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath) + } else { + getScript(relpath+'navtreeindex'+i,function(){ + navTreeSubIndices[i] = eval('NAVTREEINDEX'+i); + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath); + } + },true); + } +} + +function showSyncOff(n,relpath) +{ + n.html(''); +} + +function showSyncOn(n,relpath) +{ + n.html(''); +} + +function toggleSyncButton(relpath) +{ + var navSync = $('#nav-sync'); + if (navSync.hasClass('sync')) { + navSync.removeClass('sync'); + showSyncOff(navSync,relpath); + storeLink(stripPath2(pathName())+hashUrl()); + } else { + navSync.addClass('sync'); + showSyncOn(navSync,relpath); + deleteLink(); + } +} + +function initNavTree(toroot,relpath) +{ + var o = new Object(); + o.toroot = toroot; + o.node = new Object(); + o.node.li = document.getElementById("nav-tree-contents"); + o.node.childrenData = NAVTREE; + o.node.children = new Array(); + o.node.childrenUL = document.createElement("ul"); + o.node.getChildrenUL = function() { return o.node.childrenUL; }; + o.node.li.appendChild(o.node.childrenUL); + o.node.depth = 0; + o.node.relpath = relpath; + o.node.expanded = false; + o.node.isLast = true; + o.node.plus_img = document.createElement("span"); + o.node.plus_img.className = 'arrow'; + o.node.plus_img.innerHTML = arrowRight; + + if (localStorageSupported()) { + var navSync = $('#nav-sync'); + if (cachedLink()) { + showSyncOff(navSync,relpath); + navSync.removeClass('sync'); + } else { + showSyncOn(navSync,relpath); + } + navSync.click(function(){ toggleSyncButton(relpath); }); + } + + $(window).load(function(){ + navTo(o,toroot,hashUrl(),relpath); + showRoot(); + }); + + $(window).bind('hashchange', function(){ + if (window.location.hash && window.location.hash.length>1){ + var a; + if ($(location).attr('hash')){ + var clslink=stripPath(pathName())+':'+hashValue(); + a=$('.item a[class$="'+clslink.replace(/1|%O$WD@{VPM$7~Ar*{o?;hlAFyLXmaDC0y znK1_#cQqJWPES%4Uujug^TE?jMft$}Eq^WaR~)%f)vSNs&gek&x%A9X9sM=desktop_vp) { + if (!collapsed) { + collapseExpand(); + } + } else if (width>desktop_vp && collapsedWidth0) { + restoreWidth(0); + collapsed=true; + } + else { + var width = readCookie('width'); + if (width>200 && width<$(window).width()) { restoreWidth(width); } else { restoreWidth(200); } + collapsed=false; + } + } + + header = $("#top"); + sidenav = $("#side-nav"); + content = $("#doc-content"); + navtree = $("#nav-tree"); + footer = $("#nav-path"); + $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } }); + $(sidenav).resizable({ minWidth: 0 }); + $(window).resize(function() { resizeHeight(); }); + var device = navigator.userAgent.toLowerCase(); + var touch_device = device.match(/(iphone|ipod|ipad|android)/); + if (touch_device) { /* wider split bar for touch only devices */ + $(sidenav).css({ paddingRight:'20px' }); + $('.ui-resizable-e').css({ width:'20px' }); + $('#nav-sync').css({ right:'34px' }); + barWidth=20; + } + var width = readCookie('width'); + if (width) { restoreWidth(width); } else { resizeWidth(); } + resizeHeight(); + var url = location.href; + var i=url.indexOf("#"); + if (i>=0) window.location.hash=url.substr(i); + var _preventDefault = function(evt) { evt.preventDefault(); }; + $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); + $(".ui-resizable-handle").dblclick(collapseExpand); + $(window).load(resizeHeight); +} + + diff --git a/software/monitor/monitor/docs/html/robot-icon.png b/software/monitor/monitor/docs/html/robot-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..91d6a8f57e08f6dcba7834812eab61d06a9d1100 GIT binary patch literal 12144 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 V^x5xhq=1STJYD@<);T3K0RU%2e#-y= literal 0 HcmV?d00001 diff --git a/software/monitor/monitor/docs/html/search/all_0.html b/software/monitor/monitor/docs/html/search/all_0.html new file mode 100644 index 0000000..f25360b --- /dev/null +++ b/software/monitor/monitor/docs/html/search/all_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/all_0.js b/software/monitor/monitor/docs/html/search/all_0.js new file mode 100644 index 0000000..a728143 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/all_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['adjustcontrols',['AdjustControls',['../class_main_window.html#a9a0f3d4cd871609f12d328af2f588664',1,'MainWindow']]], + ['answerreceived',['AnswerReceived',['../classmonitor_1_1_command_manager.html#ac8ca53031468acc8be05c37586671a9bae3e095863e3b99e11e8c18efb3901da3',1,'monitor::CommandManager']]] +]; diff --git a/software/monitor/monitor/docs/html/search/all_1.html b/software/monitor/monitor/docs/html/search/all_1.html new file mode 100644 index 0000000..b13f0f7 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/all_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/all_1.js b/software/monitor/monitor/docs/html/search/all_1.js new file mode 100644 index 0000000..ba69be9 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/all_1.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['batterytimer',['batteryTimer',['../class_main_window.html#a57f0325d8b8a63be586001b9a469d9ae',1,'MainWindow']]], + ['buffer',['buffer',['../classmonitor_1_1_client.html#abd5c33a23e0fab7b369b59ac296c7762',1,'monitor::Client']]], + ['buffermaxsize',['BufferMaxSize',['../classmonitor_1_1_client.html#acbc4cae14536eccb5297aacdadb84f29',1,'monitor::Client']]], + ['busy',['Busy',['../classmonitor_1_1_command_manager.html#ac8ca53031468acc8be05c37586671a9bad8a942ef2b04672adfafef0ad817a407',1,'monitor.CommandManager.Busy()'],['../classmonitor_1_1_destijl_command_manager.html#a9cb23e7493a32872ac808f3b63200fb0ad8a942ef2b04672adfafef0ad817a407',1,'monitor.DestijlCommandManager.Busy()']]] +]; diff --git a/software/monitor/monitor/docs/html/search/all_2.html b/software/monitor/monitor/docs/html/search/all_2.html new file mode 100644 index 0000000..9543c57 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/all_2.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/all_2.js b/software/monitor/monitor/docs/html/search/all_2.js new file mode 100644 index 0000000..e3e5775 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/all_2.js @@ -0,0 +1,23 @@ +var searchData= +[ + ['cameraarenaconfirm',['CameraArenaConfirm',['../classmonitor_1_1_destijl_command_manager.html#ac58ed9c19d8c9ed547c35fb96a983668',1,'monitor::DestijlCommandManager']]], + ['cameraarenainfirm',['CameraArenaInfirm',['../classmonitor_1_1_destijl_command_manager.html#a614be7a565a3a10308f20b073b40383f',1,'monitor::DestijlCommandManager']]], + ['cameraaskarena',['CameraAskArena',['../classmonitor_1_1_destijl_command_manager.html#a8d178480fc09d474760eae995c9aa096',1,'monitor::DestijlCommandManager']]], + ['cameraclose',['CameraClose',['../classmonitor_1_1_destijl_command_manager.html#a94b085d9de512cd7e80bcefd516d460c',1,'monitor::DestijlCommandManager']]], + ['cameracomputeposition',['CameraComputePosition',['../classmonitor_1_1_destijl_command_manager.html#ad04df7759d2698334a410fe32b78e21e',1,'monitor::DestijlCommandManager']]], + ['cameraopen',['CameraOpen',['../classmonitor_1_1_destijl_command_manager.html#a292d7e2961ff31a80d9abf79b7b41126',1,'monitor::DestijlCommandManager']]], + ['camerastopcomputeposition',['CameraStopComputePosition',['../classmonitor_1_1_destijl_command_manager.html#a928f987f8f5f12135614678585ab2726',1,'monitor::DestijlCommandManager']]], + ['changestate',['ChangeState',['../class_main_window.html#aedc27cabbe1604313a452fcbf3ffe9f4',1,'MainWindow']]], + ['client',['Client',['../classmonitor_1_1_client.html',1,'monitor.Client'],['../classmonitor_1_1_client.html#a4867b48ebfa930a80662c552f2911430',1,'monitor.Client.client()']]], + ['client_2ecs',['Client.cs',['../_client_8cs.html',1,'']]], + ['close',['Close',['../classmonitor_1_1_client.html#ae6c0cbe19d622b008fd1f6d01d9cb315',1,'monitor.Client.Close()'],['../classmonitor_1_1_command_manager.html#ab28b0e5a2641391e655aaaaa05a1fdf6',1,'monitor.CommandManager.Close()'],['../classmonitor_1_1_destijl_command_manager.html#af1f57d8e3e980322e37da2cd3b61d1d7',1,'monitor.DestijlCommandManager.Close()']]], + ['cmdmanager',['cmdManager',['../class_main_window.html#a0b60450970b8a6fb6e016d5c0728e474',1,'MainWindow']]], + ['commandmanager',['CommandManager',['../classmonitor_1_1_command_manager.html',1,'monitor.CommandManager'],['../classmonitor_1_1_command_manager.html#ac2248c90d3a59bc2bf376cd876cece72',1,'monitor.CommandManager.CommandManager()'],['../classmonitor_1_1_destijl_command_manager.html#a9efdcd3d35f46329e7aa167ad60062a9',1,'monitor.DestijlCommandManager.commandManager()']]], + ['commandmanager_2ecs',['CommandManager.cs',['../_command_manager_8cs.html',1,'']]], + ['commandmanagerstatus',['CommandManagerStatus',['../classmonitor_1_1_command_manager.html#ac8ca53031468acc8be05c37586671a9b',1,'monitor::CommandManager']]], + ['commandreceivedevent',['commandReceivedEvent',['../classmonitor_1_1_command_manager.html#ab90d68a3d3a9b3935fa9f1a57e8dabfa',1,'monitor.CommandManager.commandReceivedEvent()'],['../classmonitor_1_1_destijl_command_manager.html#a5c10e8aaae48b83be0267aefa23eb62d',1,'monitor.DestijlCommandManager.commandReceivedEvent()'],['../classmonitor_1_1_command_manager.html#a5afd16036cc3d0e69554f69dacad0bcc',1,'monitor.CommandManager.CommandReceivedEvent()'],['../classmonitor_1_1_destijl_command_manager.html#acc08ece6a89e842188364226299b3d43',1,'monitor.DestijlCommandManager.CommandReceivedEvent()']]], + ['commandstatus',['CommandStatus',['../classmonitor_1_1_destijl_command_manager.html#a9cb23e7493a32872ac808f3b63200fb0',1,'monitor::DestijlCommandManager']]], + ['communicationlostwithrobot',['CommunicationLostWithRobot',['../classmonitor_1_1_destijl_command_manager.html#a9cb23e7493a32872ac808f3b63200fb0a37039bce065223d632b6974daa612656',1,'monitor::DestijlCommandManager']]], + ['communicationlostwithserver',['CommunicationLostWithServer',['../classmonitor_1_1_destijl_command_manager.html#a9cb23e7493a32872ac808f3b63200fb0ae7009a5c717d5d4d361433a9915e697e',1,'monitor::DestijlCommandManager']]], + ['createcommand',['CreateCommand',['../classmonitor_1_1_destijl_command_manager.html#a47eb72ec1ae43505966bc5cf09c79e58',1,'monitor::DestijlCommandManager']]] +]; diff --git a/software/monitor/monitor/docs/html/search/all_3.html b/software/monitor/monitor/docs/html/search/all_3.html new file mode 100644 index 0000000..03405c0 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/all_3.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/all_3.js b/software/monitor/monitor/docs/html/search/all_3.js new file mode 100644 index 0000000..538a653 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/all_3.js @@ -0,0 +1,20 @@ +var searchData= +[ + ['datacamarenaconfirm',['DataCamArenaConfirm',['../classmonitor_1_1_destijl_command_list.html#ad31b6758839a4c3b1b6ec4c71635e631',1,'monitor::DestijlCommandList']]], + ['datacamaskarena',['DataCamAskArena',['../classmonitor_1_1_destijl_command_list.html#aaaf85677671db1ef84fe67b2eb954f29',1,'monitor::DestijlCommandList']]], + ['datacamclose',['DataCamClose',['../classmonitor_1_1_destijl_command_list.html#a6f578f9d52dd2b50370177a5c03a2af7',1,'monitor::DestijlCommandList']]], + ['datacamcomputeposition',['DataCamComputePosition',['../classmonitor_1_1_destijl_command_list.html#ab114adce60b63976d8304f2ad11b317a',1,'monitor::DestijlCommandList']]], + ['datacaminfirm',['DataCamInfirm',['../classmonitor_1_1_destijl_command_list.html#ad3985694a06148f2014cb346e8891cba',1,'monitor::DestijlCommandList']]], + ['datacamopen',['DataCamOpen',['../classmonitor_1_1_destijl_command_list.html#a6380d1518931373bd0dfb84f888942e0',1,'monitor::DestijlCommandList']]], + ['datacamstopcomputeposition',['DataCamStopComputePosition',['../classmonitor_1_1_destijl_command_list.html#ad09dd921c6c8cf8c7d90a2c0a05d4056',1,'monitor::DestijlCommandList']]], + ['datacomclose',['DataComClose',['../classmonitor_1_1_destijl_command_list.html#ad97cbe948c71a4dc3fa95afbf9ca26d8',1,'monitor::DestijlCommandList']]], + ['datacomopen',['DataComOpen',['../classmonitor_1_1_destijl_command_list.html#a1bcde55da429bcf2c04ed6d0621e496f',1,'monitor::DestijlCommandList']]], + ['decodestatus',['DecodeStatus',['../classmonitor_1_1_destijl_command_manager.html#a00c3fb9f163c4d9025b356a5a7e74012',1,'monitor::DestijlCommandManager']]], + ['defaultip',['defaultIP',['../classmonitor_1_1_client.html#a326a20fe68a86757e16a6e45b8012640',1,'monitor::Client']]], + ['defaultport',['defaultPort',['../classmonitor_1_1_client.html#ad0a9bfc361ccef7443625f399e67f84a',1,'monitor::Client']]], + ['destijlcommandlist',['DestijlCommandList',['../classmonitor_1_1_destijl_command_list.html',1,'monitor']]], + ['destijlcommandmanager',['DestijlCommandManager',['../classmonitor_1_1_destijl_command_manager.html',1,'monitor.DestijlCommandManager'],['../classmonitor_1_1_destijl_command_manager.html#a78bf0be922afbd9c5f8f4115fa83ad47',1,'monitor.DestijlCommandManager.DestijlCommandManager()']]], + ['destijlcommandmanager_2ecs',['DestijlCommandManager.cs',['../_destijl_command_manager_8cs.html',1,'']]], + ['detectarena',['DetectArena',['../class_main_window.html#a89c79ce9ca4114ca9c50f32dc080e9cd',1,'MainWindow']]], + ['drawingareacamerapixbuf',['drawingareaCameraPixbuf',['../class_main_window.html#a41581e449b18e87acbdff5baa12c2050',1,'MainWindow']]] +]; diff --git a/software/monitor/monitor/docs/html/search/all_4.html b/software/monitor/monitor/docs/html/search/all_4.html new file mode 100644 index 0000000..8e1f4b9 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/all_4.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/all_4.js b/software/monitor/monitor/docs/html/search/all_4.js new file mode 100644 index 0000000..6f17b8a --- /dev/null +++ b/software/monitor/monitor/docs/html/search/all_4.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['headermtscamera',['HeaderMtsCamera',['../classmonitor_1_1_destijl_command_list.html#af570b0e8d14920402ce979778225ed68',1,'monitor::DestijlCommandList']]], + ['headermtscomdmb',['HeaderMtsComDmb',['../classmonitor_1_1_destijl_command_list.html#aa9fe4e71b7faec183ab64f4cf6ecd395',1,'monitor::DestijlCommandList']]], + ['headermtsdmborder',['HeaderMtsDmbOrder',['../classmonitor_1_1_destijl_command_list.html#adbcf7adab9f5e8ead971affbbc64178b',1,'monitor::DestijlCommandList']]], + ['headermtsmessage',['HeaderMtsMessage',['../classmonitor_1_1_destijl_command_list.html#acb283f1da96d8d522e3b28ca35187acd',1,'monitor::DestijlCommandList']]], + ['headerstmack',['HeaderStmAck',['../classmonitor_1_1_destijl_command_list.html#af494d7e1bddee8184873dc380a3066ba',1,'monitor::DestijlCommandList']]], + ['headerstmbat',['HeaderStmBat',['../classmonitor_1_1_destijl_command_list.html#a88de91fa6abdc122245ceb26fc21fd33',1,'monitor::DestijlCommandList']]], + ['headerstmimage',['HeaderStmImage',['../classmonitor_1_1_destijl_command_list.html#ae3ee8e0ecbb79faec9d24095d72cfbde',1,'monitor::DestijlCommandList']]], + ['headerstmlostdmb',['HeaderStmLostDmb',['../classmonitor_1_1_destijl_command_list.html#a54e9ebd5e8f34ac596b84b56bb2403f7',1,'monitor::DestijlCommandList']]], + ['headerstmmes',['HeaderStmMes',['../classmonitor_1_1_destijl_command_list.html#ad1fa4557b2d44dd888d8640f374c9f04',1,'monitor::DestijlCommandList']]], + ['headerstmnoack',['HeaderStmNoAck',['../classmonitor_1_1_destijl_command_list.html#ae3dc86c7e90bba409317e63cf1c85a39',1,'monitor::DestijlCommandList']]], + ['headerstmpos',['HeaderStmPos',['../classmonitor_1_1_destijl_command_list.html#abf99a718161a5a9017d7011cea429ec0',1,'monitor::DestijlCommandList']]] +]; diff --git a/software/monitor/monitor/docs/html/search/all_5.html b/software/monitor/monitor/docs/html/search/all_5.html new file mode 100644 index 0000000..89a879e --- /dev/null +++ b/software/monitor/monitor/docs/html/search/all_5.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/all_5.js b/software/monitor/monitor/docs/html/search/all_5.js new file mode 100644 index 0000000..db6101e --- /dev/null +++ b/software/monitor/monitor/docs/html/search/all_5.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['initialreceivebufferindex',['initialReceiveBufferIndex',['../classmonitor_1_1_client.html#afbbf4cf14d1a11747f6103e726dee77e',1,'monitor::Client']]], + ['invalidanswer',['InvalidAnswer',['../classmonitor_1_1_destijl_command_manager.html#a9cb23e7493a32872ac808f3b63200fb0ad410f0b6f9dc2f2b271f9cf2fc78eb34',1,'monitor::DestijlCommandManager']]], + ['isbusy',['isBusy',['../classmonitor_1_1_command_manager.html#aea039cd0f99f5193c307b805077669db',1,'monitor::CommandManager']]] +]; diff --git a/software/monitor/monitor/docs/html/search/all_6.html b/software/monitor/monitor/docs/html/search/all_6.html new file mode 100644 index 0000000..6afac06 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/all_6.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/all_6.js b/software/monitor/monitor/docs/html/search/all_6.js new file mode 100644 index 0000000..00a3aa9 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/all_6.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['main',['Main',['../classmonitor_1_1_main_class.html#a991579f985cc4071757b30a8b035e7c1',1,'monitor::MainClass']]], + ['mainclass',['MainClass',['../classmonitor_1_1_main_class.html',1,'monitor']]], + ['mainwindow',['MainWindow',['../class_main_window.html',1,'MainWindow'],['../class_main_window.html#af607d50e4d1b04d3c494661489283f45',1,'MainWindow.MainWindow()']]], + ['message',['message',['../classmonitor_1_1_client.html#a2ddb7073c4bf8a42c231939d5c21d68e',1,'monitor::Client']]], + ['messagepopup',['MessagePopup',['../class_main_window.html#afc4f923aaa481a93dddaff6303efb9e0',1,'MainWindow']]], + ['messagereceived',['messageReceived',['../classmonitor_1_1_command_manager.html#aa610e72e8f23f0d26388f204c848ed57',1,'monitor::CommandManager']]], + ['monitor',['monitor',['../namespacemonitor.html',1,'']]], + ['monitorui_2ecs',['MonitorUI.cs',['../_monitor_u_i_8cs.html',1,'']]] +]; diff --git a/software/monitor/monitor/docs/html/search/all_7.html b/software/monitor/monitor/docs/html/search/all_7.html new file mode 100644 index 0000000..de19107 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/all_7.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/all_7.js b/software/monitor/monitor/docs/html/search/all_7.js new file mode 100644 index 0000000..e5d8b8d --- /dev/null +++ b/software/monitor/monitor/docs/html/search/all_7.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['newlength',['newLength',['../classmonitor_1_1_client.html#a7083940b8fea9df2b080e3844549e805',1,'monitor::Client']]], + ['notconnected',['NotConnected',['../class_main_window.html#a7b18ca1f8f71faf272c9856aaf7b8e3da4075072d219e061ca0f3124f8fbef463',1,'MainWindow']]] +]; diff --git a/software/monitor/monitor/docs/html/search/all_8.html b/software/monitor/monitor/docs/html/search/all_8.html new file mode 100644 index 0000000..11e27cd --- /dev/null +++ b/software/monitor/monitor/docs/html/search/all_8.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/all_8.js b/software/monitor/monitor/docs/html/search/all_8.js new file mode 100644 index 0000000..5863f4b --- /dev/null +++ b/software/monitor/monitor/docs/html/search/all_8.js @@ -0,0 +1,19 @@ +var searchData= +[ + ['onbatterytimerelapsed',['OnBatteryTimerElapsed',['../class_main_window.html#af303b70c08cda04a76f6418f727c4891',1,'MainWindow']]], + ['onbuttonaskarenaclicked',['OnButtonAskArenaClicked',['../class_main_window.html#a31e299085d6286d680bd488c73fdff82',1,'MainWindow']]], + ['onbuttonmouvclicked',['OnButtonMouvClicked',['../class_main_window.html#a7f8d06747f887216ab8c941ad10cb48b',1,'MainWindow']]], + ['onbuttonrobotactivationclicked',['OnButtonRobotActivationClicked',['../class_main_window.html#a2b5e11a49a10b24c59bebb377cdfeae8',1,'MainWindow']]], + ['onbuttonserverconnectionclicked',['OnButtonServerConnectionClicked',['../class_main_window.html#ac0acc6c3a63f405f14ec8e4d132a2661',1,'MainWindow']]], + ['oncheckbuttoncameraonclicked',['OnCheckButtonCameraOnClicked',['../class_main_window.html#af4b587cdd614d5bdb8d9158a1f59e4fa',1,'MainWindow']]], + ['oncheckbuttonrobotpositionclicked',['OnCheckButtonRobotPositionClicked',['../class_main_window.html#a20d07605619027d82a30552f294b128f',1,'MainWindow']]], + ['oncommandreceived',['OnCommandReceived',['../classmonitor_1_1_destijl_command_manager.html#ab83dbda4196240c242a5ac101901bb19',1,'monitor::DestijlCommandManager']]], + ['oncommandreceivedevent',['OnCommandReceivedEvent',['../class_main_window.html#a4b651f10b9079c128b9e36d15ad10211',1,'MainWindow']]], + ['ondeleteevent',['OnDeleteEvent',['../class_main_window.html#a64bdcb29cebb58957790da1ee2733fe1',1,'MainWindow']]], + ['ondrawingareacameraexposeevent',['OnDrawingAreaCameraExposeEvent',['../class_main_window.html#afe4b0001f191554aed5d9b65208a06f5',1,'MainWindow']]], + ['onmessagereception',['OnMessageReception',['../classmonitor_1_1_command_manager.html#a92e5d42afb61f29d9a4746b4446c2a65',1,'monitor::CommandManager']]], + ['onmessagetimeout',['OnMessageTimeout',['../classmonitor_1_1_command_manager.html#a2f91bb775ba25855be007886b994a5df',1,'monitor::CommandManager']]], + ['onquitactionactivated',['OnQuitActionActivated',['../class_main_window.html#ab54b643c364b46a150f6f993267bb709',1,'MainWindow']]], + ['onshowlogwindowactionactivated',['OnShowLogWindowActionActivated',['../class_main_window.html#a87132738a6ca496303940d56e091bdc7',1,'MainWindow']]], + ['open',['Open',['../classmonitor_1_1_client.html#af802cd428aa08b9604e2246f11e1fe61',1,'monitor.Client.Open(string host)'],['../classmonitor_1_1_client.html#aee6f8f594a9496600b78c37d6da457d4',1,'monitor.Client.Open(string host, int port)'],['../classmonitor_1_1_command_manager.html#a7329cbf8008bcb8a0280aa7ffa6aa43c',1,'monitor.CommandManager.Open(string hostname)'],['../classmonitor_1_1_command_manager.html#a0a0054ee87d293577fa39af1fcd5ffee',1,'monitor.CommandManager.Open(string hostname, int port)'],['../classmonitor_1_1_destijl_command_manager.html#a5dd6b75386a554c2f026eee787477bb0',1,'monitor.DestijlCommandManager.Open(string hostname)'],['../classmonitor_1_1_destijl_command_manager.html#a842300511efb20783c271764ee0e3336',1,'monitor.DestijlCommandManager.Open(string hostname, int port)']]] +]; diff --git a/software/monitor/monitor/docs/html/search/all_9.html b/software/monitor/monitor/docs/html/search/all_9.html new file mode 100644 index 0000000..f8abbbe --- /dev/null +++ b/software/monitor/monitor/docs/html/search/all_9.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/all_9.js b/software/monitor/monitor/docs/html/search/all_9.js new file mode 100644 index 0000000..7c5b1ae --- /dev/null +++ b/software/monitor/monitor/docs/html/search/all_9.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['packetcounter',['packetCounter',['../classmonitor_1_1_client.html#a7eb13840c83beb2ab191cae3ba3210c9',1,'monitor::Client']]], + ['program_2ecs',['Program.cs',['../_program_8cs.html',1,'']]] +]; diff --git a/software/monitor/monitor/docs/html/search/all_a.html b/software/monitor/monitor/docs/html/search/all_a.html new file mode 100644 index 0000000..9601fce --- /dev/null +++ b/software/monitor/monitor/docs/html/search/all_a.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/all_a.js b/software/monitor/monitor/docs/html/search/all_a.js new file mode 100644 index 0000000..e6b196f --- /dev/null +++ b/software/monitor/monitor/docs/html/search/all_a.js @@ -0,0 +1,23 @@ +var searchData= +[ + ['readcallback',['ReadCallback',['../classmonitor_1_1_client.html#a8dd2eb26c164d0f566dd6c679ba340e0',1,'monitor::Client']]], + ['readevent',['readEvent',['../classmonitor_1_1_client.html#a01cb2a551d81fd82d2f7015e177f0f18',1,'monitor.Client.readEvent()'],['../classmonitor_1_1_client.html#ae85f4aa567a41488d5c65e470ae15378',1,'monitor.Client.ReadEvent(string msg, byte[] buffer)']]], + ['receivebuffer',['receiveBuffer',['../classmonitor_1_1_client.html#aade32a6043e0dc629509f0e1c0112a24',1,'monitor::Client']]], + ['receiveddata',['receivedData',['../classmonitor_1_1_destijl_command_manager.html#a88f907fc9c5fd8cd8d5976f45c323903',1,'monitor::DestijlCommandManager']]], + ['receivedheader',['receivedHeader',['../classmonitor_1_1_destijl_command_manager.html#a1b99d771e7af8ffc8ced10d35e5e77ce',1,'monitor::DestijlCommandManager']]], + ['rejected',['Rejected',['../classmonitor_1_1_destijl_command_manager.html#a9cb23e7493a32872ac808f3b63200fb0ad37b1f6c0512e2118cee17fea015b699',1,'monitor::DestijlCommandManager']]], + ['robotclosecom',['RobotCloseCom',['../classmonitor_1_1_destijl_command_manager.html#a0139bec493c965670226381f2ba63a23',1,'monitor::DestijlCommandManager']]], + ['robotcommandlist',['RobotCommandList',['../classmonitor_1_1_robot_command_list.html',1,'monitor']]], + ['robotconnected',['RobotConnected',['../class_main_window.html#a7b18ca1f8f71faf272c9856aaf7b8e3da9761e78f9ae0d6f598d953b4d9e839e1',1,'MainWindow']]], + ['robotgetbattery',['RobotGetBattery',['../classmonitor_1_1_robot_command_list.html#a374eb526d14b8499e47b065230afeed0',1,'monitor.RobotCommandList.RobotGetBattery()'],['../classmonitor_1_1_destijl_command_manager.html#a2ec8021340de939318ace65b8462b930',1,'monitor.DestijlCommandManager.RobotGetBattery()']]], + ['robotgetbusystate',['RobotGetBusyState',['../classmonitor_1_1_robot_command_list.html#a52a901f4e013dc33ff491c5fcda76860',1,'monitor::RobotCommandList']]], + ['robotgetversion',['RobotGetVersion',['../classmonitor_1_1_robot_command_list.html#a9a845beb5c040e4813f03cee7cd1cb71',1,'monitor.RobotCommandList.RobotGetVersion()'],['../classmonitor_1_1_destijl_command_manager.html#a7ddd552ed82382a09b4af075c34fb989',1,'monitor.DestijlCommandManager.RobotGetVersion()']]], + ['robotmove',['RobotMove',['../classmonitor_1_1_robot_command_list.html#af7017bac04f1976fe1c37e8ec77bcbce',1,'monitor.RobotCommandList.RobotMove()'],['../classmonitor_1_1_destijl_command_manager.html#a5976fe792e270c63bd9f0f4c792df129',1,'monitor.DestijlCommandManager.RobotMove()']]], + ['robotopencom',['RobotOpenCom',['../classmonitor_1_1_destijl_command_manager.html#aa1440a571e6aaf11203b4e4a4ed116d5',1,'monitor::DestijlCommandManager']]], + ['robotping',['RobotPing',['../classmonitor_1_1_robot_command_list.html#a93de788c0d7ed40caaa2e3912a429831',1,'monitor.RobotCommandList.RobotPing()'],['../classmonitor_1_1_destijl_command_manager.html#ae1af16558213c3830ea3006e8e8c5e28',1,'monitor.DestijlCommandManager.RobotPing()']]], + ['robotpoweroff',['RobotPowerOff',['../classmonitor_1_1_robot_command_list.html#a2e9616c1b75719c208902e595b79cc48',1,'monitor.RobotCommandList.RobotPowerOff()'],['../classmonitor_1_1_destijl_command_manager.html#acb242a71fa40d4001dc1bc31d5bdc53f',1,'monitor.DestijlCommandManager.RobotPowerOff()']]], + ['robotreset',['RobotReset',['../classmonitor_1_1_robot_command_list.html#a9ef80510dfe9ca241af290b003766526',1,'monitor.RobotCommandList.RobotReset()'],['../classmonitor_1_1_destijl_command_manager.html#abe223aa12456e3f1c2519e9c379d891a',1,'monitor.DestijlCommandManager.RobotReset()']]], + ['robotstartwithoutwatchdog',['RobotStartWithoutWatchdog',['../classmonitor_1_1_robot_command_list.html#a92acfe998bb9d265dd1f34f68f718386',1,'monitor.RobotCommandList.RobotStartWithoutWatchdog()'],['../classmonitor_1_1_destijl_command_manager.html#a0c964baa3ecd4ff9d19857061413938b',1,'monitor.DestijlCommandManager.RobotStartWithoutWatchdog()']]], + ['robotstartwithwatchdog',['RobotStartWithWatchdog',['../classmonitor_1_1_robot_command_list.html#aafa5d0e5fec3afe6586cca8b88d45c85',1,'monitor.RobotCommandList.RobotStartWithWatchdog()'],['../classmonitor_1_1_destijl_command_manager.html#ade46aceeb79556e31fe632e9602e1636',1,'monitor.DestijlCommandManager.RobotStartWithWatchdog()']]], + ['robotturn',['RobotTurn',['../classmonitor_1_1_robot_command_list.html#a2b88fc42fba8229f163e03e7252a77e6',1,'monitor.RobotCommandList.RobotTurn()'],['../classmonitor_1_1_destijl_command_manager.html#a3f7ee6f1803cfb8b2eb4290f9e9acced',1,'monitor.DestijlCommandManager.RobotTurn()']]] +]; diff --git a/software/monitor/monitor/docs/html/search/all_b.html b/software/monitor/monitor/docs/html/search/all_b.html new file mode 100644 index 0000000..0814e4e --- /dev/null +++ b/software/monitor/monitor/docs/html/search/all_b.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/all_b.js b/software/monitor/monitor/docs/html/search/all_b.js new file mode 100644 index 0000000..2fca35c --- /dev/null +++ b/software/monitor/monitor/docs/html/search/all_b.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['sendcommand',['SendCommand',['../classmonitor_1_1_command_manager.html#a3cd1f2303e47e5148fd3e927a7957363',1,'monitor::CommandManager']]], + ['serverconnected',['ServerConnected',['../class_main_window.html#a7b18ca1f8f71faf272c9856aaf7b8e3da911ba363fd1483b5b36fda7b0149cf76',1,'MainWindow']]], + ['stream',['stream',['../classmonitor_1_1_client.html#a8de2a9e4fe2c2e896849ddd33d80d759',1,'monitor::Client']]], + ['success',['Success',['../classmonitor_1_1_destijl_command_manager.html#a9cb23e7493a32872ac808f3b63200fb0a505a83f220c02df2f85c3810cd9ceb38',1,'monitor::DestijlCommandManager']]], + ['systemstate',['SystemState',['../class_main_window.html#a7b18ca1f8f71faf272c9856aaf7b8e3d',1,'MainWindow.SystemState()'],['../class_main_window.html#a105025ee1bdfac188f1ce640d593550d',1,'MainWindow.systemState()']]] +]; diff --git a/software/monitor/monitor/docs/html/search/all_c.html b/software/monitor/monitor/docs/html/search/all_c.html new file mode 100644 index 0000000..da08c38 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/all_c.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/all_c.js b/software/monitor/monitor/docs/html/search/all_c.js new file mode 100644 index 0000000..3f94077 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/all_c.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['timeout',['Timeout',['../classmonitor_1_1_command_manager.html#ac8ca53031468acc8be05c37586671a9bac85a251cc457840f1e032f1b733e9398',1,'monitor.CommandManager.Timeout()'],['../classmonitor_1_1_destijl_command_manager.html#a86a1fb03dc480dab8d6758aa0d675cd3',1,'monitor.DestijlCommandManager.timeout()']]] +]; diff --git a/software/monitor/monitor/docs/html/search/all_d.html b/software/monitor/monitor/docs/html/search/all_d.html new file mode 100644 index 0000000..9986c9c --- /dev/null +++ b/software/monitor/monitor/docs/html/search/all_d.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/all_d.js b/software/monitor/monitor/docs/html/search/all_d.js new file mode 100644 index 0000000..1b0062c --- /dev/null +++ b/software/monitor/monitor/docs/html/search/all_d.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['waitevent',['waitEvent',['../classmonitor_1_1_command_manager.html#a0d27eb1a38efb01559f14a707ff86447',1,'monitor::CommandManager']]], + ['waitforacknowledge',['waitForAcknowledge',['../classmonitor_1_1_command_manager.html#a39c2c03f93b309e65a45ac91c6eb39bd',1,'monitor::CommandManager']]], + ['waittimer',['waitTimer',['../classmonitor_1_1_command_manager.html#a07639cd39445a379667a2450e78001b0',1,'monitor::CommandManager']]], + ['write',['Write',['../classmonitor_1_1_client.html#a081413295e7a96662b39b2ddec854b02',1,'monitor::Client']]] +]; diff --git a/software/monitor/monitor/docs/html/search/all_e.html b/software/monitor/monitor/docs/html/search/all_e.html new file mode 100644 index 0000000..9fa42bb --- /dev/null +++ b/software/monitor/monitor/docs/html/search/all_e.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/all_e.js b/software/monitor/monitor/docs/html/search/all_e.js new file mode 100644 index 0000000..8411c20 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/all_e.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['_7ecommandmanager',['~CommandManager',['../classmonitor_1_1_command_manager.html#ad2a8eb1139a5a25a6993887c55b3da4e',1,'monitor::CommandManager']]], + ['_7edestijlcommandmanager',['~DestijlCommandManager',['../classmonitor_1_1_destijl_command_manager.html#abc51dc980d7ba7e59a571e579cb626b9',1,'monitor::DestijlCommandManager']]] +]; diff --git a/software/monitor/monitor/docs/html/search/classes_0.html b/software/monitor/monitor/docs/html/search/classes_0.html new file mode 100644 index 0000000..1c3e406 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/classes_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/classes_0.js b/software/monitor/monitor/docs/html/search/classes_0.js new file mode 100644 index 0000000..7292c75 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/classes_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['client',['Client',['../classmonitor_1_1_client.html',1,'monitor']]], + ['commandmanager',['CommandManager',['../classmonitor_1_1_command_manager.html',1,'monitor']]] +]; diff --git a/software/monitor/monitor/docs/html/search/classes_1.html b/software/monitor/monitor/docs/html/search/classes_1.html new file mode 100644 index 0000000..a8e7069 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/classes_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/classes_1.js b/software/monitor/monitor/docs/html/search/classes_1.js new file mode 100644 index 0000000..96759e3 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/classes_1.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['destijlcommandlist',['DestijlCommandList',['../classmonitor_1_1_destijl_command_list.html',1,'monitor']]], + ['destijlcommandmanager',['DestijlCommandManager',['../classmonitor_1_1_destijl_command_manager.html',1,'monitor']]] +]; diff --git a/software/monitor/monitor/docs/html/search/classes_2.html b/software/monitor/monitor/docs/html/search/classes_2.html new file mode 100644 index 0000000..5c09c96 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/classes_2.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/classes_2.js b/software/monitor/monitor/docs/html/search/classes_2.js new file mode 100644 index 0000000..2741278 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/classes_2.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['mainclass',['MainClass',['../classmonitor_1_1_main_class.html',1,'monitor']]], + ['mainwindow',['MainWindow',['../class_main_window.html',1,'']]] +]; diff --git a/software/monitor/monitor/docs/html/search/classes_3.html b/software/monitor/monitor/docs/html/search/classes_3.html new file mode 100644 index 0000000..5faaeba --- /dev/null +++ b/software/monitor/monitor/docs/html/search/classes_3.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/classes_3.js b/software/monitor/monitor/docs/html/search/classes_3.js new file mode 100644 index 0000000..0e55c0e --- /dev/null +++ b/software/monitor/monitor/docs/html/search/classes_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['robotcommandlist',['RobotCommandList',['../classmonitor_1_1_robot_command_list.html',1,'monitor']]] +]; diff --git a/software/monitor/monitor/docs/html/search/close.png b/software/monitor/monitor/docs/html/search/close.png new file mode 100644 index 0000000000000000000000000000000000000000..9342d3dfeea7b7c4ee610987e717804b5a42ceb9 GIT binary patch literal 273 zcmV+s0q*{ZP)4(RlMby96)VwnbG{ zbe&}^BDn7x>$<{ck4zAK-=nT;=hHG)kmplIF${xqm8db3oX6wT3bvp`TE@m0cg;b) zBuSL}5?N7O(iZLdAlz@)b)Rd~DnSsSX&P5qC`XwuFwcAYLC+d2>+1(8on;wpt8QIC X2MT$R4iQDd00000NkvXXu0mjfia~GN literal 0 HcmV?d00001 diff --git a/software/monitor/monitor/docs/html/search/enums_0.html b/software/monitor/monitor/docs/html/search/enums_0.html new file mode 100644 index 0000000..ee343ac --- /dev/null +++ b/software/monitor/monitor/docs/html/search/enums_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/enums_0.js b/software/monitor/monitor/docs/html/search/enums_0.js new file mode 100644 index 0000000..a53dda6 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/enums_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['commandmanagerstatus',['CommandManagerStatus',['../classmonitor_1_1_command_manager.html#ac8ca53031468acc8be05c37586671a9b',1,'monitor::CommandManager']]], + ['commandstatus',['CommandStatus',['../classmonitor_1_1_destijl_command_manager.html#a9cb23e7493a32872ac808f3b63200fb0',1,'monitor::DestijlCommandManager']]] +]; diff --git a/software/monitor/monitor/docs/html/search/enums_1.html b/software/monitor/monitor/docs/html/search/enums_1.html new file mode 100644 index 0000000..3fd210a --- /dev/null +++ b/software/monitor/monitor/docs/html/search/enums_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/enums_1.js b/software/monitor/monitor/docs/html/search/enums_1.js new file mode 100644 index 0000000..4c75f75 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/enums_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['systemstate',['SystemState',['../class_main_window.html#a7b18ca1f8f71faf272c9856aaf7b8e3d',1,'MainWindow']]] +]; diff --git a/software/monitor/monitor/docs/html/search/enumvalues_0.html b/software/monitor/monitor/docs/html/search/enumvalues_0.html new file mode 100644 index 0000000..9387b6a --- /dev/null +++ b/software/monitor/monitor/docs/html/search/enumvalues_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/enumvalues_0.js b/software/monitor/monitor/docs/html/search/enumvalues_0.js new file mode 100644 index 0000000..2824753 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/enumvalues_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['answerreceived',['AnswerReceived',['../classmonitor_1_1_command_manager.html#ac8ca53031468acc8be05c37586671a9bae3e095863e3b99e11e8c18efb3901da3',1,'monitor::CommandManager']]] +]; diff --git a/software/monitor/monitor/docs/html/search/enumvalues_1.html b/software/monitor/monitor/docs/html/search/enumvalues_1.html new file mode 100644 index 0000000..f622aba --- /dev/null +++ b/software/monitor/monitor/docs/html/search/enumvalues_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/enumvalues_1.js b/software/monitor/monitor/docs/html/search/enumvalues_1.js new file mode 100644 index 0000000..6a36231 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/enumvalues_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['busy',['Busy',['../classmonitor_1_1_command_manager.html#ac8ca53031468acc8be05c37586671a9bad8a942ef2b04672adfafef0ad817a407',1,'monitor.CommandManager.Busy()'],['../classmonitor_1_1_destijl_command_manager.html#a9cb23e7493a32872ac808f3b63200fb0ad8a942ef2b04672adfafef0ad817a407',1,'monitor.DestijlCommandManager.Busy()']]] +]; diff --git a/software/monitor/monitor/docs/html/search/enumvalues_2.html b/software/monitor/monitor/docs/html/search/enumvalues_2.html new file mode 100644 index 0000000..d499078 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/enumvalues_2.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/enumvalues_2.js b/software/monitor/monitor/docs/html/search/enumvalues_2.js new file mode 100644 index 0000000..2c136dc --- /dev/null +++ b/software/monitor/monitor/docs/html/search/enumvalues_2.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['communicationlostwithrobot',['CommunicationLostWithRobot',['../classmonitor_1_1_destijl_command_manager.html#a9cb23e7493a32872ac808f3b63200fb0a37039bce065223d632b6974daa612656',1,'monitor::DestijlCommandManager']]], + ['communicationlostwithserver',['CommunicationLostWithServer',['../classmonitor_1_1_destijl_command_manager.html#a9cb23e7493a32872ac808f3b63200fb0ae7009a5c717d5d4d361433a9915e697e',1,'monitor::DestijlCommandManager']]] +]; diff --git a/software/monitor/monitor/docs/html/search/enumvalues_3.html b/software/monitor/monitor/docs/html/search/enumvalues_3.html new file mode 100644 index 0000000..b4fc3ee --- /dev/null +++ b/software/monitor/monitor/docs/html/search/enumvalues_3.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/enumvalues_3.js b/software/monitor/monitor/docs/html/search/enumvalues_3.js new file mode 100644 index 0000000..576d8ec --- /dev/null +++ b/software/monitor/monitor/docs/html/search/enumvalues_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['invalidanswer',['InvalidAnswer',['../classmonitor_1_1_destijl_command_manager.html#a9cb23e7493a32872ac808f3b63200fb0ad410f0b6f9dc2f2b271f9cf2fc78eb34',1,'monitor::DestijlCommandManager']]] +]; diff --git a/software/monitor/monitor/docs/html/search/enumvalues_4.html b/software/monitor/monitor/docs/html/search/enumvalues_4.html new file mode 100644 index 0000000..d6f69ac --- /dev/null +++ b/software/monitor/monitor/docs/html/search/enumvalues_4.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/enumvalues_4.js b/software/monitor/monitor/docs/html/search/enumvalues_4.js new file mode 100644 index 0000000..c5d44b4 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/enumvalues_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['notconnected',['NotConnected',['../class_main_window.html#a7b18ca1f8f71faf272c9856aaf7b8e3da4075072d219e061ca0f3124f8fbef463',1,'MainWindow']]] +]; diff --git a/software/monitor/monitor/docs/html/search/enumvalues_5.html b/software/monitor/monitor/docs/html/search/enumvalues_5.html new file mode 100644 index 0000000..43a28d1 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/enumvalues_5.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/enumvalues_5.js b/software/monitor/monitor/docs/html/search/enumvalues_5.js new file mode 100644 index 0000000..a1bec87 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/enumvalues_5.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['rejected',['Rejected',['../classmonitor_1_1_destijl_command_manager.html#a9cb23e7493a32872ac808f3b63200fb0ad37b1f6c0512e2118cee17fea015b699',1,'monitor::DestijlCommandManager']]], + ['robotconnected',['RobotConnected',['../class_main_window.html#a7b18ca1f8f71faf272c9856aaf7b8e3da9761e78f9ae0d6f598d953b4d9e839e1',1,'MainWindow']]] +]; diff --git a/software/monitor/monitor/docs/html/search/enumvalues_6.html b/software/monitor/monitor/docs/html/search/enumvalues_6.html new file mode 100644 index 0000000..7439ee1 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/enumvalues_6.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/enumvalues_6.js b/software/monitor/monitor/docs/html/search/enumvalues_6.js new file mode 100644 index 0000000..21b284b --- /dev/null +++ b/software/monitor/monitor/docs/html/search/enumvalues_6.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['serverconnected',['ServerConnected',['../class_main_window.html#a7b18ca1f8f71faf272c9856aaf7b8e3da911ba363fd1483b5b36fda7b0149cf76',1,'MainWindow']]], + ['success',['Success',['../classmonitor_1_1_destijl_command_manager.html#a9cb23e7493a32872ac808f3b63200fb0a505a83f220c02df2f85c3810cd9ceb38',1,'monitor::DestijlCommandManager']]] +]; diff --git a/software/monitor/monitor/docs/html/search/enumvalues_7.html b/software/monitor/monitor/docs/html/search/enumvalues_7.html new file mode 100644 index 0000000..ab72ef1 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/enumvalues_7.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/enumvalues_7.js b/software/monitor/monitor/docs/html/search/enumvalues_7.js new file mode 100644 index 0000000..e42c46c --- /dev/null +++ b/software/monitor/monitor/docs/html/search/enumvalues_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['timeout',['Timeout',['../classmonitor_1_1_command_manager.html#ac8ca53031468acc8be05c37586671a9bac85a251cc457840f1e032f1b733e9398',1,'monitor::CommandManager']]] +]; diff --git a/software/monitor/monitor/docs/html/search/files_0.html b/software/monitor/monitor/docs/html/search/files_0.html new file mode 100644 index 0000000..4f272b8 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/files_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/files_0.js b/software/monitor/monitor/docs/html/search/files_0.js new file mode 100644 index 0000000..9c6ff95 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/files_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['client_2ecs',['Client.cs',['../_client_8cs.html',1,'']]], + ['commandmanager_2ecs',['CommandManager.cs',['../_command_manager_8cs.html',1,'']]] +]; diff --git a/software/monitor/monitor/docs/html/search/files_1.html b/software/monitor/monitor/docs/html/search/files_1.html new file mode 100644 index 0000000..dcce422 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/files_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/files_1.js b/software/monitor/monitor/docs/html/search/files_1.js new file mode 100644 index 0000000..764f18a --- /dev/null +++ b/software/monitor/monitor/docs/html/search/files_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['destijlcommandmanager_2ecs',['DestijlCommandManager.cs',['../_destijl_command_manager_8cs.html',1,'']]] +]; diff --git a/software/monitor/monitor/docs/html/search/files_2.html b/software/monitor/monitor/docs/html/search/files_2.html new file mode 100644 index 0000000..d5c6c3b --- /dev/null +++ b/software/monitor/monitor/docs/html/search/files_2.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/files_2.js b/software/monitor/monitor/docs/html/search/files_2.js new file mode 100644 index 0000000..3875ddf --- /dev/null +++ b/software/monitor/monitor/docs/html/search/files_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['monitorui_2ecs',['MonitorUI.cs',['../_monitor_u_i_8cs.html',1,'']]] +]; diff --git a/software/monitor/monitor/docs/html/search/files_3.html b/software/monitor/monitor/docs/html/search/files_3.html new file mode 100644 index 0000000..d5a9528 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/files_3.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/files_3.js b/software/monitor/monitor/docs/html/search/files_3.js new file mode 100644 index 0000000..1faf3e2 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/files_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['program_2ecs',['Program.cs',['../_program_8cs.html',1,'']]] +]; diff --git a/software/monitor/monitor/docs/html/search/functions_0.html b/software/monitor/monitor/docs/html/search/functions_0.html new file mode 100644 index 0000000..4e6d87d --- /dev/null +++ b/software/monitor/monitor/docs/html/search/functions_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/functions_0.js b/software/monitor/monitor/docs/html/search/functions_0.js new file mode 100644 index 0000000..44be363 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/functions_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['adjustcontrols',['AdjustControls',['../class_main_window.html#a9a0f3d4cd871609f12d328af2f588664',1,'MainWindow']]] +]; diff --git a/software/monitor/monitor/docs/html/search/functions_1.html b/software/monitor/monitor/docs/html/search/functions_1.html new file mode 100644 index 0000000..b343e2d --- /dev/null +++ b/software/monitor/monitor/docs/html/search/functions_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/functions_1.js b/software/monitor/monitor/docs/html/search/functions_1.js new file mode 100644 index 0000000..682d65d --- /dev/null +++ b/software/monitor/monitor/docs/html/search/functions_1.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['cameraarenaconfirm',['CameraArenaConfirm',['../classmonitor_1_1_destijl_command_manager.html#ac58ed9c19d8c9ed547c35fb96a983668',1,'monitor::DestijlCommandManager']]], + ['cameraarenainfirm',['CameraArenaInfirm',['../classmonitor_1_1_destijl_command_manager.html#a614be7a565a3a10308f20b073b40383f',1,'monitor::DestijlCommandManager']]], + ['cameraaskarena',['CameraAskArena',['../classmonitor_1_1_destijl_command_manager.html#a8d178480fc09d474760eae995c9aa096',1,'monitor::DestijlCommandManager']]], + ['cameraclose',['CameraClose',['../classmonitor_1_1_destijl_command_manager.html#a94b085d9de512cd7e80bcefd516d460c',1,'monitor::DestijlCommandManager']]], + ['cameracomputeposition',['CameraComputePosition',['../classmonitor_1_1_destijl_command_manager.html#ad04df7759d2698334a410fe32b78e21e',1,'monitor::DestijlCommandManager']]], + ['cameraopen',['CameraOpen',['../classmonitor_1_1_destijl_command_manager.html#a292d7e2961ff31a80d9abf79b7b41126',1,'monitor::DestijlCommandManager']]], + ['camerastopcomputeposition',['CameraStopComputePosition',['../classmonitor_1_1_destijl_command_manager.html#a928f987f8f5f12135614678585ab2726',1,'monitor::DestijlCommandManager']]], + ['changestate',['ChangeState',['../class_main_window.html#aedc27cabbe1604313a452fcbf3ffe9f4',1,'MainWindow']]], + ['close',['Close',['../classmonitor_1_1_client.html#ae6c0cbe19d622b008fd1f6d01d9cb315',1,'monitor.Client.Close()'],['../classmonitor_1_1_command_manager.html#ab28b0e5a2641391e655aaaaa05a1fdf6',1,'monitor.CommandManager.Close()'],['../classmonitor_1_1_destijl_command_manager.html#af1f57d8e3e980322e37da2cd3b61d1d7',1,'monitor.DestijlCommandManager.Close()']]], + ['commandmanager',['CommandManager',['../classmonitor_1_1_command_manager.html#ac2248c90d3a59bc2bf376cd876cece72',1,'monitor::CommandManager']]], + ['commandreceivedevent',['CommandReceivedEvent',['../classmonitor_1_1_command_manager.html#a5afd16036cc3d0e69554f69dacad0bcc',1,'monitor.CommandManager.CommandReceivedEvent()'],['../classmonitor_1_1_destijl_command_manager.html#acc08ece6a89e842188364226299b3d43',1,'monitor.DestijlCommandManager.CommandReceivedEvent()']]], + ['createcommand',['CreateCommand',['../classmonitor_1_1_destijl_command_manager.html#a47eb72ec1ae43505966bc5cf09c79e58',1,'monitor::DestijlCommandManager']]] +]; diff --git a/software/monitor/monitor/docs/html/search/functions_2.html b/software/monitor/monitor/docs/html/search/functions_2.html new file mode 100644 index 0000000..ecce2f3 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/functions_2.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/functions_2.js b/software/monitor/monitor/docs/html/search/functions_2.js new file mode 100644 index 0000000..ef36b0f --- /dev/null +++ b/software/monitor/monitor/docs/html/search/functions_2.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['decodestatus',['DecodeStatus',['../classmonitor_1_1_destijl_command_manager.html#a00c3fb9f163c4d9025b356a5a7e74012',1,'monitor::DestijlCommandManager']]], + ['destijlcommandmanager',['DestijlCommandManager',['../classmonitor_1_1_destijl_command_manager.html#a78bf0be922afbd9c5f8f4115fa83ad47',1,'monitor::DestijlCommandManager']]], + ['detectarena',['DetectArena',['../class_main_window.html#a89c79ce9ca4114ca9c50f32dc080e9cd',1,'MainWindow']]] +]; diff --git a/software/monitor/monitor/docs/html/search/functions_3.html b/software/monitor/monitor/docs/html/search/functions_3.html new file mode 100644 index 0000000..15f06ab --- /dev/null +++ b/software/monitor/monitor/docs/html/search/functions_3.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/functions_3.js b/software/monitor/monitor/docs/html/search/functions_3.js new file mode 100644 index 0000000..f0ea237 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/functions_3.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['main',['Main',['../classmonitor_1_1_main_class.html#a991579f985cc4071757b30a8b035e7c1',1,'monitor::MainClass']]], + ['mainwindow',['MainWindow',['../class_main_window.html#af607d50e4d1b04d3c494661489283f45',1,'MainWindow']]], + ['messagepopup',['MessagePopup',['../class_main_window.html#afc4f923aaa481a93dddaff6303efb9e0',1,'MainWindow']]] +]; diff --git a/software/monitor/monitor/docs/html/search/functions_4.html b/software/monitor/monitor/docs/html/search/functions_4.html new file mode 100644 index 0000000..8985ff2 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/functions_4.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/functions_4.js b/software/monitor/monitor/docs/html/search/functions_4.js new file mode 100644 index 0000000..5863f4b --- /dev/null +++ b/software/monitor/monitor/docs/html/search/functions_4.js @@ -0,0 +1,19 @@ +var searchData= +[ + ['onbatterytimerelapsed',['OnBatteryTimerElapsed',['../class_main_window.html#af303b70c08cda04a76f6418f727c4891',1,'MainWindow']]], + ['onbuttonaskarenaclicked',['OnButtonAskArenaClicked',['../class_main_window.html#a31e299085d6286d680bd488c73fdff82',1,'MainWindow']]], + ['onbuttonmouvclicked',['OnButtonMouvClicked',['../class_main_window.html#a7f8d06747f887216ab8c941ad10cb48b',1,'MainWindow']]], + ['onbuttonrobotactivationclicked',['OnButtonRobotActivationClicked',['../class_main_window.html#a2b5e11a49a10b24c59bebb377cdfeae8',1,'MainWindow']]], + ['onbuttonserverconnectionclicked',['OnButtonServerConnectionClicked',['../class_main_window.html#ac0acc6c3a63f405f14ec8e4d132a2661',1,'MainWindow']]], + ['oncheckbuttoncameraonclicked',['OnCheckButtonCameraOnClicked',['../class_main_window.html#af4b587cdd614d5bdb8d9158a1f59e4fa',1,'MainWindow']]], + ['oncheckbuttonrobotpositionclicked',['OnCheckButtonRobotPositionClicked',['../class_main_window.html#a20d07605619027d82a30552f294b128f',1,'MainWindow']]], + ['oncommandreceived',['OnCommandReceived',['../classmonitor_1_1_destijl_command_manager.html#ab83dbda4196240c242a5ac101901bb19',1,'monitor::DestijlCommandManager']]], + ['oncommandreceivedevent',['OnCommandReceivedEvent',['../class_main_window.html#a4b651f10b9079c128b9e36d15ad10211',1,'MainWindow']]], + ['ondeleteevent',['OnDeleteEvent',['../class_main_window.html#a64bdcb29cebb58957790da1ee2733fe1',1,'MainWindow']]], + ['ondrawingareacameraexposeevent',['OnDrawingAreaCameraExposeEvent',['../class_main_window.html#afe4b0001f191554aed5d9b65208a06f5',1,'MainWindow']]], + ['onmessagereception',['OnMessageReception',['../classmonitor_1_1_command_manager.html#a92e5d42afb61f29d9a4746b4446c2a65',1,'monitor::CommandManager']]], + ['onmessagetimeout',['OnMessageTimeout',['../classmonitor_1_1_command_manager.html#a2f91bb775ba25855be007886b994a5df',1,'monitor::CommandManager']]], + ['onquitactionactivated',['OnQuitActionActivated',['../class_main_window.html#ab54b643c364b46a150f6f993267bb709',1,'MainWindow']]], + ['onshowlogwindowactionactivated',['OnShowLogWindowActionActivated',['../class_main_window.html#a87132738a6ca496303940d56e091bdc7',1,'MainWindow']]], + ['open',['Open',['../classmonitor_1_1_client.html#af802cd428aa08b9604e2246f11e1fe61',1,'monitor.Client.Open(string host)'],['../classmonitor_1_1_client.html#aee6f8f594a9496600b78c37d6da457d4',1,'monitor.Client.Open(string host, int port)'],['../classmonitor_1_1_command_manager.html#a7329cbf8008bcb8a0280aa7ffa6aa43c',1,'monitor.CommandManager.Open(string hostname)'],['../classmonitor_1_1_command_manager.html#a0a0054ee87d293577fa39af1fcd5ffee',1,'monitor.CommandManager.Open(string hostname, int port)'],['../classmonitor_1_1_destijl_command_manager.html#a5dd6b75386a554c2f026eee787477bb0',1,'monitor.DestijlCommandManager.Open(string hostname)'],['../classmonitor_1_1_destijl_command_manager.html#a842300511efb20783c271764ee0e3336',1,'monitor.DestijlCommandManager.Open(string hostname, int port)']]] +]; diff --git a/software/monitor/monitor/docs/html/search/functions_5.html b/software/monitor/monitor/docs/html/search/functions_5.html new file mode 100644 index 0000000..0314918 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/functions_5.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/functions_5.js b/software/monitor/monitor/docs/html/search/functions_5.js new file mode 100644 index 0000000..e803c56 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/functions_5.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['readcallback',['ReadCallback',['../classmonitor_1_1_client.html#a8dd2eb26c164d0f566dd6c679ba340e0',1,'monitor::Client']]], + ['readevent',['ReadEvent',['../classmonitor_1_1_client.html#ae85f4aa567a41488d5c65e470ae15378',1,'monitor::Client']]], + ['robotclosecom',['RobotCloseCom',['../classmonitor_1_1_destijl_command_manager.html#a0139bec493c965670226381f2ba63a23',1,'monitor::DestijlCommandManager']]], + ['robotgetbattery',['RobotGetBattery',['../classmonitor_1_1_destijl_command_manager.html#a2ec8021340de939318ace65b8462b930',1,'monitor::DestijlCommandManager']]], + ['robotgetversion',['RobotGetVersion',['../classmonitor_1_1_destijl_command_manager.html#a7ddd552ed82382a09b4af075c34fb989',1,'monitor::DestijlCommandManager']]], + ['robotmove',['RobotMove',['../classmonitor_1_1_destijl_command_manager.html#a5976fe792e270c63bd9f0f4c792df129',1,'monitor::DestijlCommandManager']]], + ['robotopencom',['RobotOpenCom',['../classmonitor_1_1_destijl_command_manager.html#aa1440a571e6aaf11203b4e4a4ed116d5',1,'monitor::DestijlCommandManager']]], + ['robotping',['RobotPing',['../classmonitor_1_1_destijl_command_manager.html#ae1af16558213c3830ea3006e8e8c5e28',1,'monitor::DestijlCommandManager']]], + ['robotpoweroff',['RobotPowerOff',['../classmonitor_1_1_destijl_command_manager.html#acb242a71fa40d4001dc1bc31d5bdc53f',1,'monitor::DestijlCommandManager']]], + ['robotreset',['RobotReset',['../classmonitor_1_1_destijl_command_manager.html#abe223aa12456e3f1c2519e9c379d891a',1,'monitor::DestijlCommandManager']]], + ['robotstartwithoutwatchdog',['RobotStartWithoutWatchdog',['../classmonitor_1_1_destijl_command_manager.html#a0c964baa3ecd4ff9d19857061413938b',1,'monitor::DestijlCommandManager']]], + ['robotstartwithwatchdog',['RobotStartWithWatchdog',['../classmonitor_1_1_destijl_command_manager.html#ade46aceeb79556e31fe632e9602e1636',1,'monitor::DestijlCommandManager']]], + ['robotturn',['RobotTurn',['../classmonitor_1_1_destijl_command_manager.html#a3f7ee6f1803cfb8b2eb4290f9e9acced',1,'monitor::DestijlCommandManager']]] +]; diff --git a/software/monitor/monitor/docs/html/search/functions_6.html b/software/monitor/monitor/docs/html/search/functions_6.html new file mode 100644 index 0000000..c506123 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/functions_6.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/functions_6.js b/software/monitor/monitor/docs/html/search/functions_6.js new file mode 100644 index 0000000..4f75e90 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/functions_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['sendcommand',['SendCommand',['../classmonitor_1_1_command_manager.html#a3cd1f2303e47e5148fd3e927a7957363',1,'monitor::CommandManager']]] +]; diff --git a/software/monitor/monitor/docs/html/search/functions_7.html b/software/monitor/monitor/docs/html/search/functions_7.html new file mode 100644 index 0000000..83a7b84 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/functions_7.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/functions_7.js b/software/monitor/monitor/docs/html/search/functions_7.js new file mode 100644 index 0000000..c8809fa --- /dev/null +++ b/software/monitor/monitor/docs/html/search/functions_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['write',['Write',['../classmonitor_1_1_client.html#a081413295e7a96662b39b2ddec854b02',1,'monitor::Client']]] +]; diff --git a/software/monitor/monitor/docs/html/search/functions_8.html b/software/monitor/monitor/docs/html/search/functions_8.html new file mode 100644 index 0000000..b55f0e6 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/functions_8.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/functions_8.js b/software/monitor/monitor/docs/html/search/functions_8.js new file mode 100644 index 0000000..8411c20 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/functions_8.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['_7ecommandmanager',['~CommandManager',['../classmonitor_1_1_command_manager.html#ad2a8eb1139a5a25a6993887c55b3da4e',1,'monitor::CommandManager']]], + ['_7edestijlcommandmanager',['~DestijlCommandManager',['../classmonitor_1_1_destijl_command_manager.html#abc51dc980d7ba7e59a571e579cb626b9',1,'monitor::DestijlCommandManager']]] +]; diff --git a/software/monitor/monitor/docs/html/search/mag_sel.png b/software/monitor/monitor/docs/html/search/mag_sel.png new file mode 100644 index 0000000000000000000000000000000000000000..81f6040a2092402b4d98f9ffa8855d12a0d4ca17 GIT binary patch literal 563 zcmV-30?hr1P)zxx&tqG15pu7)IiiXFflOc2k;dXd>%13GZAy? zRz!q0=|E6a6vV)&ZBS~G9oe0kbqyw1*gvY`{Pop2oKq#FlzgXt@Xh-7fxh>}`Fxg> z$%N%{$!4=5nM{(;=c!aG1Ofr^Do{u%Ih{^&Fc@H2)+a-?TBXrw5DW&z%Nb6mQ!L9O zl}b@6mB?f=tX3;#vl)}ggh(Vpyh(IK z(Mb0D{l{U$FsRjP;!{($+bsaaVi8T#1c0V#qEIOCYa9@UVLV`f__E81L;?WEaRA;Y zUH;rZ;vb;mk7JX|$=i3O~&If0O@oZfLg8gfIjW=dcBsz;gI=!{-r4# z4%6v$&~;q^j7Fo67yJ(NJWuX+I~I!tj^nW3?}^9bq|<3^+vapS5sgM^x7!cs(+mMT z&y%j};&~po+YO)3hoUH4E*E;e9>?R6SS&`X)p`njycAVcg{rEb41T{~Hk(bl-7eSb zmFxA2uIqo#@R?lKm50ND`~6Nfn|-b1|L6O98vt3Tx@gKz#isxO002ovPDHLkV1kyW B_l^Jn literal 0 HcmV?d00001 diff --git a/software/monitor/monitor/docs/html/search/namespaces_0.html b/software/monitor/monitor/docs/html/search/namespaces_0.html new file mode 100644 index 0000000..605ac45 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/namespaces_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/namespaces_0.js b/software/monitor/monitor/docs/html/search/namespaces_0.js new file mode 100644 index 0000000..0757527 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/namespaces_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['monitor',['monitor',['../namespacemonitor.html',1,'']]] +]; diff --git a/software/monitor/monitor/docs/html/search/nomatches.html b/software/monitor/monitor/docs/html/search/nomatches.html new file mode 100644 index 0000000..b1ded27 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/nomatches.html @@ -0,0 +1,12 @@ + + + + + + + +
+
No Matches
+
+ + diff --git a/software/monitor/monitor/docs/html/search/search.css b/software/monitor/monitor/docs/html/search/search.css new file mode 100644 index 0000000..3cf9df9 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/search.css @@ -0,0 +1,271 @@ +/*---------------- Search Box */ + +#FSearchBox { + float: left; +} + +#MSearchBox { + white-space : nowrap; + float: none; + margin-top: 8px; + right: 0px; + width: 170px; + height: 24px; + z-index: 102; +} + +#MSearchBox .left +{ + display:block; + position:absolute; + left:10px; + width:20px; + height:19px; + background:url('search_l.png') no-repeat; + background-position:right; +} + +#MSearchSelect { + display:block; + position:absolute; + width:20px; + height:19px; +} + +.left #MSearchSelect { + left:4px; +} + +.right #MSearchSelect { + right:5px; +} + +#MSearchField { + display:block; + position:absolute; + height:19px; + background:url('search_m.png') repeat-x; + border:none; + width:115px; + margin-left:20px; + padding-left:4px; + color: #909090; + outline: none; + font: 9pt Arial, Verdana, sans-serif; + -webkit-border-radius: 0px; +} + +#FSearchBox #MSearchField { + margin-left:15px; +} + +#MSearchBox .right { + display:block; + position:absolute; + right:10px; + top:8px; + width:20px; + height:19px; + background:url('search_r.png') no-repeat; + background-position:left; +} + +#MSearchClose { + display: none; + position: absolute; + top: 4px; + background : none; + border: none; + margin: 0px 4px 0px 0px; + padding: 0px 0px; + outline: none; +} + +.left #MSearchClose { + left: 6px; +} + +.right #MSearchClose { + right: 2px; +} + +.MSearchBoxActive #MSearchField { + color: #000000; +} + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #90A5CE; + background-color: #F9FAFC; + z-index: 10001; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt Arial, Verdana, sans-serif; + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: monospace; + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: #000000; + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: #000000; + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: #FFFFFF; + background-color: #3D578C; + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + width: 60ex; + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #000; + background-color: #EEF1F7; + z-index:10000; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; + padding-bottom: 15px; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +body.SRPage { + margin: 5px 2px; +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; +} + +.SRResult { + display: none; +} + +DIV.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.searchresult { + background-color: #F0F3F8; +} + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: url("../tab_a.png"); + background-repeat: repeat-x; + text-shadow: 0 1px 1px #000000; +} + +.pages { + line-height: 17px; + margin-left: 4px; + text-decoration: none; +} + +.hl { + font-weight: bold; +} + +#searchresults { + margin-bottom: 20px; +} + +.searchpages { + margin-top: 10px; +} + diff --git a/software/monitor/monitor/docs/html/search/search.js b/software/monitor/monitor/docs/html/search/search.js new file mode 100644 index 0000000..dedce3b --- /dev/null +++ b/software/monitor/monitor/docs/html/search/search.js @@ -0,0 +1,791 @@ +function convertToId(search) +{ + var result = ''; + for (i=0;i do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair + { + idxChar = searchValue.substr(0, 2); + } + + var resultsPage; + var resultsPageWithSearch; + var hasResultsPage; + + var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) + { + var hexCode=idx.toString(16); + resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html'; + resultsPageWithSearch = resultsPage+'?'+escape(searchValue); + hasResultsPage = true; + } + else // nothing available for this search term + { + resultsPage = this.resultsPath + '/nomatches.html'; + resultsPageWithSearch = resultsPage; + hasResultsPage = false; + } + + window.frames.MSearchResults.location = resultsPageWithSearch; + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + + if (domPopupSearchResultsWindow.style.display!='block') + { + var domSearchBox = this.DOMSearchBox(); + this.DOMSearchClose().style.display = 'inline'; + if (this.insideFrame) + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + domPopupSearchResultsWindow.style.position = 'relative'; + domPopupSearchResultsWindow.style.display = 'block'; + var width = document.body.clientWidth - 8; // the -8 is for IE :-( + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResults.style.width = width + 'px'; + } + else + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth; + var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + } + } + + this.lastSearchValue = searchValue; + this.lastResultsPage = resultsPage; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + + var searchField = this.DOMSearchField(); + + if (searchField.value == this.searchLabel) // clear "Search" term upon entry + { + searchField.value = ''; + this.searchActive = true; + } + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.DOMSearchField().value = this.searchLabel; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of . + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName == 'DIV' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName == 'DIV' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + parent.document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} + +function setKeyActions(elem,action) +{ + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); +} + +function setClassAttr(elem,attr) +{ + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); +} + +function createResults() +{ + var results = document.getElementById("SRResults"); + for (var e=0; ek7RCwB~R6VQOP#AvB$vH7i{6H{96zot$7cZT<7246EF5Np6N}+$IbiG6W zg#87A+NFaX+=_^xM1#gCtshC=E{%9^uQX_%?YwXvo{#q&MnpJ8uh(O?ZRc&~_1%^SsPxG@rfElJg-?U zm!Cz-IOn(qJP3kDp-^~qt+FGbl=5jNli^Wj_xIBG{Rc0en{!oFvyoNC7{V~T8}b>| z=jL2WIReZzX(YN(_9fV;BBD$VXQIxNasAL8ATvEu822WQ%mvv4FO#qs` BFGc_W literal 0 HcmV?d00001 diff --git a/software/monitor/monitor/docs/html/search/search_r.png b/software/monitor/monitor/docs/html/search/search_r.png new file mode 100644 index 0000000000000000000000000000000000000000..97ee8b439687084201b79c6f776a41f495c6392a GIT binary patch literal 612 zcmV-q0-ODbP)PbXFRCwB?)W514K@j&X?z2*SxFI6-@HT2E2K=9X9%Pb zEK*!TBw&g(DMC;|A)uGlRkOS9vd-?zNs%bR4d$w+ox_iFnE8fvIvv7^5<(>Te12Li z7C)9srCzmK{ZcNM{YIl9j{DePFgOWiS%xG@5CnnnJa4nvY<^glbz7^|-ZY!dUkAwd z{gaTC@_>b5h~;ug#R0wRL0>o5!hxm*s0VW?8dr}O#zXTRTnrQm_Z7z1Mrnx>&p zD4qifUjzLvbVVWi?l?rUzwt^sdb~d!f_LEhsRVIXZtQ=qSxuxqm zEX#tf>$?M_Y1-LSDT)HqG?`%-%ZpY!#{N!rcNIiL;G7F0`l?)mNGTD9;f9F5Up3Kg zw}a<-JylhG&;=!>B+fZaCX+?C+kHYrP%c?X2!Zu_olK|GcS4A70HEy;vn)I0>0kLH z`jc(WIaaHc7!HS@f*^R^Znx8W=_jIl2oWJoQ*h1^$FX!>*PqR1J8k|fw}w_y}TpE>7m8DqDO<3z`OzXt$ccSejbEZCg@0000 + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/variables_0.js b/software/monitor/monitor/docs/html/search/variables_0.js new file mode 100644 index 0000000..87fd1cf --- /dev/null +++ b/software/monitor/monitor/docs/html/search/variables_0.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['batterytimer',['batteryTimer',['../class_main_window.html#a57f0325d8b8a63be586001b9a469d9ae',1,'MainWindow']]], + ['buffer',['buffer',['../classmonitor_1_1_client.html#abd5c33a23e0fab7b369b59ac296c7762',1,'monitor::Client']]], + ['buffermaxsize',['BufferMaxSize',['../classmonitor_1_1_client.html#acbc4cae14536eccb5297aacdadb84f29',1,'monitor::Client']]] +]; diff --git a/software/monitor/monitor/docs/html/search/variables_1.html b/software/monitor/monitor/docs/html/search/variables_1.html new file mode 100644 index 0000000..84237b6 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/variables_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/variables_1.js b/software/monitor/monitor/docs/html/search/variables_1.js new file mode 100644 index 0000000..9d07b0f --- /dev/null +++ b/software/monitor/monitor/docs/html/search/variables_1.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['client',['client',['../classmonitor_1_1_client.html#a4867b48ebfa930a80662c552f2911430',1,'monitor::Client']]], + ['cmdmanager',['cmdManager',['../class_main_window.html#a0b60450970b8a6fb6e016d5c0728e474',1,'MainWindow']]], + ['commandmanager',['commandManager',['../classmonitor_1_1_destijl_command_manager.html#a9efdcd3d35f46329e7aa167ad60062a9',1,'monitor::DestijlCommandManager']]], + ['commandreceivedevent',['commandReceivedEvent',['../classmonitor_1_1_command_manager.html#ab90d68a3d3a9b3935fa9f1a57e8dabfa',1,'monitor.CommandManager.commandReceivedEvent()'],['../classmonitor_1_1_destijl_command_manager.html#a5c10e8aaae48b83be0267aefa23eb62d',1,'monitor.DestijlCommandManager.commandReceivedEvent()']]] +]; diff --git a/software/monitor/monitor/docs/html/search/variables_2.html b/software/monitor/monitor/docs/html/search/variables_2.html new file mode 100644 index 0000000..5c9de1a --- /dev/null +++ b/software/monitor/monitor/docs/html/search/variables_2.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/variables_2.js b/software/monitor/monitor/docs/html/search/variables_2.js new file mode 100644 index 0000000..cfaa3b0 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/variables_2.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['datacamarenaconfirm',['DataCamArenaConfirm',['../classmonitor_1_1_destijl_command_list.html#ad31b6758839a4c3b1b6ec4c71635e631',1,'monitor::DestijlCommandList']]], + ['datacamaskarena',['DataCamAskArena',['../classmonitor_1_1_destijl_command_list.html#aaaf85677671db1ef84fe67b2eb954f29',1,'monitor::DestijlCommandList']]], + ['datacamclose',['DataCamClose',['../classmonitor_1_1_destijl_command_list.html#a6f578f9d52dd2b50370177a5c03a2af7',1,'monitor::DestijlCommandList']]], + ['datacamcomputeposition',['DataCamComputePosition',['../classmonitor_1_1_destijl_command_list.html#ab114adce60b63976d8304f2ad11b317a',1,'monitor::DestijlCommandList']]], + ['datacaminfirm',['DataCamInfirm',['../classmonitor_1_1_destijl_command_list.html#ad3985694a06148f2014cb346e8891cba',1,'monitor::DestijlCommandList']]], + ['datacamopen',['DataCamOpen',['../classmonitor_1_1_destijl_command_list.html#a6380d1518931373bd0dfb84f888942e0',1,'monitor::DestijlCommandList']]], + ['datacamstopcomputeposition',['DataCamStopComputePosition',['../classmonitor_1_1_destijl_command_list.html#ad09dd921c6c8cf8c7d90a2c0a05d4056',1,'monitor::DestijlCommandList']]], + ['datacomclose',['DataComClose',['../classmonitor_1_1_destijl_command_list.html#ad97cbe948c71a4dc3fa95afbf9ca26d8',1,'monitor::DestijlCommandList']]], + ['datacomopen',['DataComOpen',['../classmonitor_1_1_destijl_command_list.html#a1bcde55da429bcf2c04ed6d0621e496f',1,'monitor::DestijlCommandList']]], + ['defaultip',['defaultIP',['../classmonitor_1_1_client.html#a326a20fe68a86757e16a6e45b8012640',1,'monitor::Client']]], + ['defaultport',['defaultPort',['../classmonitor_1_1_client.html#ad0a9bfc361ccef7443625f399e67f84a',1,'monitor::Client']]], + ['drawingareacamerapixbuf',['drawingareaCameraPixbuf',['../class_main_window.html#a41581e449b18e87acbdff5baa12c2050',1,'MainWindow']]] +]; diff --git a/software/monitor/monitor/docs/html/search/variables_3.html b/software/monitor/monitor/docs/html/search/variables_3.html new file mode 100644 index 0000000..f95e34c --- /dev/null +++ b/software/monitor/monitor/docs/html/search/variables_3.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/variables_3.js b/software/monitor/monitor/docs/html/search/variables_3.js new file mode 100644 index 0000000..6f17b8a --- /dev/null +++ b/software/monitor/monitor/docs/html/search/variables_3.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['headermtscamera',['HeaderMtsCamera',['../classmonitor_1_1_destijl_command_list.html#af570b0e8d14920402ce979778225ed68',1,'monitor::DestijlCommandList']]], + ['headermtscomdmb',['HeaderMtsComDmb',['../classmonitor_1_1_destijl_command_list.html#aa9fe4e71b7faec183ab64f4cf6ecd395',1,'monitor::DestijlCommandList']]], + ['headermtsdmborder',['HeaderMtsDmbOrder',['../classmonitor_1_1_destijl_command_list.html#adbcf7adab9f5e8ead971affbbc64178b',1,'monitor::DestijlCommandList']]], + ['headermtsmessage',['HeaderMtsMessage',['../classmonitor_1_1_destijl_command_list.html#acb283f1da96d8d522e3b28ca35187acd',1,'monitor::DestijlCommandList']]], + ['headerstmack',['HeaderStmAck',['../classmonitor_1_1_destijl_command_list.html#af494d7e1bddee8184873dc380a3066ba',1,'monitor::DestijlCommandList']]], + ['headerstmbat',['HeaderStmBat',['../classmonitor_1_1_destijl_command_list.html#a88de91fa6abdc122245ceb26fc21fd33',1,'monitor::DestijlCommandList']]], + ['headerstmimage',['HeaderStmImage',['../classmonitor_1_1_destijl_command_list.html#ae3ee8e0ecbb79faec9d24095d72cfbde',1,'monitor::DestijlCommandList']]], + ['headerstmlostdmb',['HeaderStmLostDmb',['../classmonitor_1_1_destijl_command_list.html#a54e9ebd5e8f34ac596b84b56bb2403f7',1,'monitor::DestijlCommandList']]], + ['headerstmmes',['HeaderStmMes',['../classmonitor_1_1_destijl_command_list.html#ad1fa4557b2d44dd888d8640f374c9f04',1,'monitor::DestijlCommandList']]], + ['headerstmnoack',['HeaderStmNoAck',['../classmonitor_1_1_destijl_command_list.html#ae3dc86c7e90bba409317e63cf1c85a39',1,'monitor::DestijlCommandList']]], + ['headerstmpos',['HeaderStmPos',['../classmonitor_1_1_destijl_command_list.html#abf99a718161a5a9017d7011cea429ec0',1,'monitor::DestijlCommandList']]] +]; diff --git a/software/monitor/monitor/docs/html/search/variables_4.html b/software/monitor/monitor/docs/html/search/variables_4.html new file mode 100644 index 0000000..d7db285 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/variables_4.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/variables_4.js b/software/monitor/monitor/docs/html/search/variables_4.js new file mode 100644 index 0000000..e780e3d --- /dev/null +++ b/software/monitor/monitor/docs/html/search/variables_4.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['initialreceivebufferindex',['initialReceiveBufferIndex',['../classmonitor_1_1_client.html#afbbf4cf14d1a11747f6103e726dee77e',1,'monitor::Client']]], + ['isbusy',['isBusy',['../classmonitor_1_1_command_manager.html#aea039cd0f99f5193c307b805077669db',1,'monitor::CommandManager']]] +]; diff --git a/software/monitor/monitor/docs/html/search/variables_5.html b/software/monitor/monitor/docs/html/search/variables_5.html new file mode 100644 index 0000000..7bbceeb --- /dev/null +++ b/software/monitor/monitor/docs/html/search/variables_5.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/variables_5.js b/software/monitor/monitor/docs/html/search/variables_5.js new file mode 100644 index 0000000..a138913 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/variables_5.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['message',['message',['../classmonitor_1_1_client.html#a2ddb7073c4bf8a42c231939d5c21d68e',1,'monitor::Client']]], + ['messagereceived',['messageReceived',['../classmonitor_1_1_command_manager.html#aa610e72e8f23f0d26388f204c848ed57',1,'monitor::CommandManager']]] +]; diff --git a/software/monitor/monitor/docs/html/search/variables_6.html b/software/monitor/monitor/docs/html/search/variables_6.html new file mode 100644 index 0000000..4eb162d --- /dev/null +++ b/software/monitor/monitor/docs/html/search/variables_6.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/variables_6.js b/software/monitor/monitor/docs/html/search/variables_6.js new file mode 100644 index 0000000..2542a98 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/variables_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['newlength',['newLength',['../classmonitor_1_1_client.html#a7083940b8fea9df2b080e3844549e805',1,'monitor::Client']]] +]; diff --git a/software/monitor/monitor/docs/html/search/variables_7.html b/software/monitor/monitor/docs/html/search/variables_7.html new file mode 100644 index 0000000..0408829 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/variables_7.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/variables_7.js b/software/monitor/monitor/docs/html/search/variables_7.js new file mode 100644 index 0000000..935781b --- /dev/null +++ b/software/monitor/monitor/docs/html/search/variables_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['packetcounter',['packetCounter',['../classmonitor_1_1_client.html#a7eb13840c83beb2ab191cae3ba3210c9',1,'monitor::Client']]] +]; diff --git a/software/monitor/monitor/docs/html/search/variables_8.html b/software/monitor/monitor/docs/html/search/variables_8.html new file mode 100644 index 0000000..d54d096 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/variables_8.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/variables_8.js b/software/monitor/monitor/docs/html/search/variables_8.js new file mode 100644 index 0000000..5402002 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/variables_8.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['readevent',['readEvent',['../classmonitor_1_1_client.html#a01cb2a551d81fd82d2f7015e177f0f18',1,'monitor::Client']]], + ['receivebuffer',['receiveBuffer',['../classmonitor_1_1_client.html#aade32a6043e0dc629509f0e1c0112a24',1,'monitor::Client']]], + ['receiveddata',['receivedData',['../classmonitor_1_1_destijl_command_manager.html#a88f907fc9c5fd8cd8d5976f45c323903',1,'monitor::DestijlCommandManager']]], + ['receivedheader',['receivedHeader',['../classmonitor_1_1_destijl_command_manager.html#a1b99d771e7af8ffc8ced10d35e5e77ce',1,'monitor::DestijlCommandManager']]], + ['robotgetbattery',['RobotGetBattery',['../classmonitor_1_1_robot_command_list.html#a374eb526d14b8499e47b065230afeed0',1,'monitor::RobotCommandList']]], + ['robotgetbusystate',['RobotGetBusyState',['../classmonitor_1_1_robot_command_list.html#a52a901f4e013dc33ff491c5fcda76860',1,'monitor::RobotCommandList']]], + ['robotgetversion',['RobotGetVersion',['../classmonitor_1_1_robot_command_list.html#a9a845beb5c040e4813f03cee7cd1cb71',1,'monitor::RobotCommandList']]], + ['robotmove',['RobotMove',['../classmonitor_1_1_robot_command_list.html#af7017bac04f1976fe1c37e8ec77bcbce',1,'monitor::RobotCommandList']]], + ['robotping',['RobotPing',['../classmonitor_1_1_robot_command_list.html#a93de788c0d7ed40caaa2e3912a429831',1,'monitor::RobotCommandList']]], + ['robotpoweroff',['RobotPowerOff',['../classmonitor_1_1_robot_command_list.html#a2e9616c1b75719c208902e595b79cc48',1,'monitor::RobotCommandList']]], + ['robotreset',['RobotReset',['../classmonitor_1_1_robot_command_list.html#a9ef80510dfe9ca241af290b003766526',1,'monitor::RobotCommandList']]], + ['robotstartwithoutwatchdog',['RobotStartWithoutWatchdog',['../classmonitor_1_1_robot_command_list.html#a92acfe998bb9d265dd1f34f68f718386',1,'monitor::RobotCommandList']]], + ['robotstartwithwatchdog',['RobotStartWithWatchdog',['../classmonitor_1_1_robot_command_list.html#aafa5d0e5fec3afe6586cca8b88d45c85',1,'monitor::RobotCommandList']]], + ['robotturn',['RobotTurn',['../classmonitor_1_1_robot_command_list.html#a2b88fc42fba8229f163e03e7252a77e6',1,'monitor::RobotCommandList']]] +]; diff --git a/software/monitor/monitor/docs/html/search/variables_9.html b/software/monitor/monitor/docs/html/search/variables_9.html new file mode 100644 index 0000000..234dc60 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/variables_9.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/variables_9.js b/software/monitor/monitor/docs/html/search/variables_9.js new file mode 100644 index 0000000..6174c12 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/variables_9.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['stream',['stream',['../classmonitor_1_1_client.html#a8de2a9e4fe2c2e896849ddd33d80d759',1,'monitor::Client']]], + ['systemstate',['systemState',['../class_main_window.html#a105025ee1bdfac188f1ce640d593550d',1,'MainWindow']]] +]; diff --git a/software/monitor/monitor/docs/html/search/variables_a.html b/software/monitor/monitor/docs/html/search/variables_a.html new file mode 100644 index 0000000..0892488 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/variables_a.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/variables_a.js b/software/monitor/monitor/docs/html/search/variables_a.js new file mode 100644 index 0000000..4b7f160 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/variables_a.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['timeout',['timeout',['../classmonitor_1_1_destijl_command_manager.html#a86a1fb03dc480dab8d6758aa0d675cd3',1,'monitor::DestijlCommandManager']]] +]; diff --git a/software/monitor/monitor/docs/html/search/variables_b.html b/software/monitor/monitor/docs/html/search/variables_b.html new file mode 100644 index 0000000..ea46965 --- /dev/null +++ b/software/monitor/monitor/docs/html/search/variables_b.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/software/monitor/monitor/docs/html/search/variables_b.js b/software/monitor/monitor/docs/html/search/variables_b.js new file mode 100644 index 0000000..91f44ba --- /dev/null +++ b/software/monitor/monitor/docs/html/search/variables_b.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['waitevent',['waitEvent',['../classmonitor_1_1_command_manager.html#a0d27eb1a38efb01559f14a707ff86447',1,'monitor::CommandManager']]], + ['waitforacknowledge',['waitForAcknowledge',['../classmonitor_1_1_command_manager.html#a39c2c03f93b309e65a45ac91c6eb39bd',1,'monitor::CommandManager']]], + ['waittimer',['waitTimer',['../classmonitor_1_1_command_manager.html#a07639cd39445a379667a2450e78001b0',1,'monitor::CommandManager']]] +]; diff --git a/software/monitor/monitor/docs/html/splitbar.png b/software/monitor/monitor/docs/html/splitbar.png new file mode 100644 index 0000000000000000000000000000000000000000..fe895f2c58179b471a22d8320b39a4bd7312ec8e GIT binary patch literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^Yzz!63>-{AmhX=Jf(#6djGiuzAr*{o?=JLmPLyc> z_*`QK&+BH@jWrYJ7>r6%keRM@)Qyv8R=enp0jiI>aWlGyB58O zFVR20d+y`K7vDw(hJF3;>dD*3-?v=<8M)@x|EEGLnJsniYK!2U1 Y!`|5biEc?d1`HDhPgg&ebxsLQ02F6;9RL6T literal 0 HcmV?d00001 diff --git a/software/monitor/monitor/docs/html/sync_off.png b/software/monitor/monitor/docs/html/sync_off.png new file mode 100644 index 0000000000000000000000000000000000000000..3b443fc62892114406e3d399421b2a881b897acc GIT binary patch literal 853 zcmV-b1FHOqP)oT|#XixUYy%lpuf3i8{fX!o zUyDD0jOrAiT^tq>fLSOOABs-#u{dV^F$b{L9&!2=9&RmV;;8s^x&UqB$PCj4FdKbh zoB1WTskPUPu05XzFbA}=KZ-GP1fPpAfSs>6AHb12UlR%-i&uOlTpFNS7{jm@mkU1V zh`nrXr~+^lsV-s1dkZOaI|kYyVj3WBpPCY{n~yd%u%e+d=f%`N0FItMPtdgBb@py; zq@v6NVArhyTC7)ULw-Jy8y42S1~4n(3LkrW8mW(F-4oXUP3E`e#g**YyqI7h-J2zK zK{m9##m4ri!7N>CqQqCcnI3hqo1I;Yh&QLNY4T`*ptiQGozK>FF$!$+84Z`xwmeMh zJ0WT+OH$WYFALEaGj2_l+#DC3t7_S`vHpSivNeFbP6+r50cO8iu)`7i%Z4BTPh@_m3Tk!nAm^)5Bqnr%Ov|Baunj#&RPtRuK& z4RGz|D5HNrW83-#ydk}tVKJrNmyYt-sTxLGlJY5nc&Re zU4SgHNPx8~Yxwr$bsju?4q&%T1874xxzq+_%?h8_ofw~(bld=o3iC)LUNR*BY%c0y zWd_jX{Y8`l%z+ol1$@Qa?Cy!(0CVIEeYpKZ`(9{z>3$CIe;pJDQk$m3p}$>xBm4lb zKo{4S)`wdU9Ba9jJbVJ0C=SOefZe%d$8=2r={nu<_^a3~>c#t_U6dye5)JrR(_a^E f@}b6j1K9lwFJq@>o)+Ry00000NkvXXu0mjfWa5j* literal 0 HcmV?d00001 diff --git a/software/monitor/monitor/docs/html/sync_on.png b/software/monitor/monitor/docs/html/sync_on.png new file mode 100644 index 0000000000000000000000000000000000000000..e08320fb64e6fa33b573005ed6d8fe294e19db76 GIT binary patch literal 845 zcmV-T1G4;yP)Y;xxyHF2B5Wzm| zOOGupOTn@c(JmBOl)e;XMNnZuiTJP>rM8<|Q`7I_))aP?*T)ow&n59{}X4$3Goat zgjs?*aasfbrokzG5cT4K=uG`E14xZl@z)F={P0Y^?$4t z>v!teRnNZym<6h{7sLyF1V0HsfEl+l6TrZpsfr1}luH~F7L}ktXu|*uVX^RG$L0`K zWs3j|0tIvVe(N%_?2{(iCPFGf#B6Hjy6o&}D$A%W%jfO8_W%ZO#-mh}EM$LMn7joJ z05dHr!5Y92g+31l<%i1(=L1a1pXX+OYnalY>31V4K}BjyRe3)9n#;-cCVRD_IG1fT zOKGeNY8q;TL@K{dj@D^scf&VCs*-Jb>8b>|`b*osv52-!A?BpbYtTQBns5EAU**$m zSnVSm(teh>tQi*S*A>#ySc=n;`BHz`DuG4&g4Kf8lLhca+zvZ7t7RflD6-i-mcK=M z!=^P$*u2)bkY5asG4gsss!Hn%u~>}kIW`vMs%lJLH+u*9<4PaV_c6U`KqWXQH%+Nu zTv41O(^ZVi@qhjQdG!fbZw&y+2o!iYymO^?ud3{P*HdoX83YV*Uu_HB=?U&W9%AU# z80}k1SS-CXTU7dcQlsm<^oYLxVSseqY6NO}dc`Nj?8vrhNuCdm@^{a3AQ_>6myOj+ z`1RsLUXF|dm|3k7s2jD(B{rzE>WI2scH8i1;=O5Cc9xB3^aJk%fQjqsu+kH#0=_5a z0nCE8@dbQa-|YIuUVvG0L_IwHMEhOj$Mj4Uq05 X8=0q~qBNan00000NkvXXu0mjfptF>5 literal 0 HcmV?d00001 diff --git a/software/monitor/monitor/docs/html/tab_a.png b/software/monitor/monitor/docs/html/tab_a.png new file mode 100644 index 0000000000000000000000000000000000000000..3b725c41c5a527a3a3e40097077d0e206a681247 GIT binary patch literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QlXwMjv*C{Z|8b*H5dputLHD# z=<0|*y7z(Vor?d;H&?EG&cXR}?!j-Lm&u1OOI7AIF5&c)RFE;&p0MYK>*Kl@eiymD r@|NpwKX@^z+;{u_Z~trSBfrMKa%3`zocFjEXaR$#tDnm{r-UW|TZ1%4 literal 0 HcmV?d00001 diff --git a/software/monitor/monitor/docs/html/tab_b.png b/software/monitor/monitor/docs/html/tab_b.png new file mode 100644 index 0000000000000000000000000000000000000000..e2b4a8638cb3496a016eaed9e16ffc12846dea18 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QU#tajv*C{Z}0l@H7kg?K0Lnr z!j&C6_(~HV9oQ0Pa6x{-v0AGV_E?vLn=ZI-;YrdjIl`U`uzuDWSP?o#Dmo{%SgM#oan kX~E1%D-|#H#QbHoIja2U-MgvsK&LQxy85}Sb4q9e0Efg%P5=M^ literal 0 HcmV?d00001 diff --git a/software/monitor/monitor/docs/html/tabs.css b/software/monitor/monitor/docs/html/tabs.css new file mode 100644 index 0000000..bbde11e --- /dev/null +++ b/software/monitor/monitor/docs/html/tabs.css @@ -0,0 +1 @@ +.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:transparent}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0px/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0px 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0px 1px 1px rgba(255,255,255,0.9);color:#283A5D;outline:none}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox a.current{color:#D23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media (min-width: 768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283A5D transparent transparent transparent;background:transparent;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0px 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;border-radius:0 !important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox a:hover span.sub-arrow{border-color:#fff transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;border-radius:5px !important;box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0 !important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent #fff}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #D23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#D23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} diff --git a/software/monitor/monitor/docs/latex/Makefile b/software/monitor/monitor/docs/latex/Makefile new file mode 100644 index 0000000..8cc3866 --- /dev/null +++ b/software/monitor/monitor/docs/latex/Makefile @@ -0,0 +1,21 @@ +all: refman.pdf + +pdf: refman.pdf + +refman.pdf: clean refman.tex + pdflatex refman + makeindex refman.idx + pdflatex refman + latex_count=8 ; \ + while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\ + do \ + echo "Rerunning latex...." ;\ + pdflatex refman ;\ + latex_count=`expr $$latex_count - 1` ;\ + done + makeindex refman.idx + pdflatex refman + + +clean: + rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl refman.pdf diff --git a/software/monitor/monitor/docs/latex/_client_8cs.tex b/software/monitor/monitor/docs/latex/_client_8cs.tex new file mode 100644 index 0000000..863ce6f --- /dev/null +++ b/software/monitor/monitor/docs/latex/_client_8cs.tex @@ -0,0 +1,12 @@ +\section{Client.\+cs File Reference} +\label{_client_8cs}\index{Client.\+cs@{Client.\+cs}} +\subsection*{Classes} +\begin{DoxyCompactItemize} +\item +class \textbf{ monitor.\+Client} +\begin{DoxyCompactList}\small\item\em Static class for T\+CP client \end{DoxyCompactList}\end{DoxyCompactItemize} +\subsection*{Namespaces} +\begin{DoxyCompactItemize} +\item +namespace \textbf{ monitor} +\end{DoxyCompactItemize} diff --git a/software/monitor/monitor/docs/latex/_command_manager_8cs.tex b/software/monitor/monitor/docs/latex/_command_manager_8cs.tex new file mode 100644 index 0000000..d03ce72 --- /dev/null +++ b/software/monitor/monitor/docs/latex/_command_manager_8cs.tex @@ -0,0 +1,12 @@ +\section{Command\+Manager.\+cs File Reference} +\label{_command_manager_8cs}\index{Command\+Manager.\+cs@{Command\+Manager.\+cs}} +\subsection*{Classes} +\begin{DoxyCompactItemize} +\item +class \textbf{ monitor.\+Command\+Manager} +\begin{DoxyCompactList}\small\item\em Command Manager. Use for timeout managment during reception of data Used as intermediate layer between T\+CP client class (\doxyref{Client}{p.}{classmonitor_1_1_client}) and application level managment of command and answers \end{DoxyCompactList}\end{DoxyCompactItemize} +\subsection*{Namespaces} +\begin{DoxyCompactItemize} +\item +namespace \textbf{ monitor} +\end{DoxyCompactItemize} diff --git a/software/monitor/monitor/docs/latex/_destijl_command_manager_8cs.tex b/software/monitor/monitor/docs/latex/_destijl_command_manager_8cs.tex new file mode 100644 index 0000000..b5fae85 --- /dev/null +++ b/software/monitor/monitor/docs/latex/_destijl_command_manager_8cs.tex @@ -0,0 +1,16 @@ +\section{Destijl\+Command\+Manager.\+cs File Reference} +\label{_destijl_command_manager_8cs}\index{Destijl\+Command\+Manager.\+cs@{Destijl\+Command\+Manager.\+cs}} +\subsection*{Classes} +\begin{DoxyCompactItemize} +\item +class \textbf{ monitor.\+Destijl\+Command\+List} +\begin{DoxyCompactList}\small\item\em Commands and options parameters used in Destijl project when communicating with server \end{DoxyCompactList}\item +class \textbf{ monitor.\+Robot\+Command\+List} +\begin{DoxyCompactList}\small\item\em Commands used for robot messages \end{DoxyCompactList}\item +class \textbf{ monitor.\+Destijl\+Command\+Manager} +\begin{DoxyCompactList}\small\item\em Specialization class for command manager, which implemnent destijl protocol between monitor and server \end{DoxyCompactList}\end{DoxyCompactItemize} +\subsection*{Namespaces} +\begin{DoxyCompactItemize} +\item +namespace \textbf{ monitor} +\end{DoxyCompactItemize} diff --git a/software/monitor/monitor/docs/latex/_monitor_u_i_8cs.tex b/software/monitor/monitor/docs/latex/_monitor_u_i_8cs.tex new file mode 100644 index 0000000..8779008 --- /dev/null +++ b/software/monitor/monitor/docs/latex/_monitor_u_i_8cs.tex @@ -0,0 +1,7 @@ +\section{Monitor\+U\+I.\+cs File Reference} +\label{_monitor_u_i_8cs}\index{Monitor\+U\+I.\+cs@{Monitor\+U\+I.\+cs}} +\subsection*{Classes} +\begin{DoxyCompactItemize} +\item +class \textbf{ Main\+Window} +\begin{DoxyCompactList}\small\item\em Main part of the program, behavior of main window \end{DoxyCompactList}\end{DoxyCompactItemize} diff --git a/software/monitor/monitor/docs/latex/_program_8cs.tex b/software/monitor/monitor/docs/latex/_program_8cs.tex new file mode 100644 index 0000000..69237a1 --- /dev/null +++ b/software/monitor/monitor/docs/latex/_program_8cs.tex @@ -0,0 +1,12 @@ +\section{Program.\+cs File Reference} +\label{_program_8cs}\index{Program.\+cs@{Program.\+cs}} +\subsection*{Classes} +\begin{DoxyCompactItemize} +\item +class \textbf{ monitor.\+Main\+Class} +\end{DoxyCompactItemize} +\subsection*{Namespaces} +\begin{DoxyCompactItemize} +\item +namespace \textbf{ monitor} +\end{DoxyCompactItemize} diff --git a/software/monitor/monitor/docs/latex/annotated.tex b/software/monitor/monitor/docs/latex/annotated.tex new file mode 100644 index 0000000..cb5c2f1 --- /dev/null +++ b/software/monitor/monitor/docs/latex/annotated.tex @@ -0,0 +1,10 @@ +\section{Class List} +Here are the classes, structs, unions and interfaces with brief descriptions\+:\begin{DoxyCompactList} +\item\contentsline{section}{\textbf{ monitor.\+Client} \\*Static class for T\+CP client }{\pageref{classmonitor_1_1_client}}{} +\item\contentsline{section}{\textbf{ monitor.\+Command\+Manager} \\*Command Manager. Use for timeout managment during reception of data Used as intermediate layer between T\+CP client class (\doxyref{Client}{p.}{classmonitor_1_1_client}) and application level managment of command and answers }{\pageref{classmonitor_1_1_command_manager}}{} +\item\contentsline{section}{\textbf{ monitor.\+Destijl\+Command\+List} \\*Commands and options parameters used in Destijl project when communicating with server }{\pageref{classmonitor_1_1_destijl_command_list}}{} +\item\contentsline{section}{\textbf{ monitor.\+Destijl\+Command\+Manager} \\*Specialization class for command manager, which implemnent destijl protocol between monitor and server }{\pageref{classmonitor_1_1_destijl_command_manager}}{} +\item\contentsline{section}{\textbf{ monitor.\+Main\+Class} }{\pageref{classmonitor_1_1_main_class}}{} +\item\contentsline{section}{\textbf{ Main\+Window} \\*Main part of the program, behavior of main window }{\pageref{class_main_window}}{} +\item\contentsline{section}{\textbf{ monitor.\+Robot\+Command\+List} \\*Commands used for robot messages }{\pageref{classmonitor_1_1_robot_command_list}}{} +\end{DoxyCompactList} diff --git a/software/monitor/monitor/docs/latex/class_main_window.tex b/software/monitor/monitor/docs/latex/class_main_window.tex new file mode 100644 index 0000000..c45752b --- /dev/null +++ b/software/monitor/monitor/docs/latex/class_main_window.tex @@ -0,0 +1,537 @@ +\section{Main\+Window Class Reference} +\label{class_main_window}\index{Main\+Window@{Main\+Window}} + + +Main part of the program, behavior of main window + + + + +Inheritance diagram for Main\+Window\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=154pt]{class_main_window__inherit__graph} +\end{center} +\end{figure} + + +Collaboration diagram for Main\+Window\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=350pt]{class_main_window__coll__graph} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{DoxyCompactItemize} +\item +\textbf{ Main\+Window} () +\begin{DoxyCompactList}\small\item\em Initializes a new instance of the \doxyref{Main\+Window}{p.}{class_main_window} class. \end{DoxyCompactList}\item +void \textbf{ Adjust\+Controls} () +\begin{DoxyCompactList}\small\item\em Make some adjustement to controls, like disabling some controls \end{DoxyCompactList}\item +void \textbf{ On\+Command\+Received\+Event} (string header, string data, byte[$\,$] buffer) +\begin{DoxyCompactList}\small\item\em Callback called when new message is received from server \end{DoxyCompactList}\end{DoxyCompactItemize} +\subsection*{Protected Member Functions} +\begin{DoxyCompactItemize} +\item +void \textbf{ On\+Delete\+Event} (object sender, Delete\+Event\+Args a) +\begin{DoxyCompactList}\small\item\em Callback called when delete event is sent by window \end{DoxyCompactList}\item +void \textbf{ On\+Quit\+Action\+Activated} (object sender, Event\+Args e) +\begin{DoxyCompactList}\small\item\em Callback called by \char`\"{}quit\char`\"{} menu \end{DoxyCompactList}\item +void \textbf{ On\+Show\+Log\+Window\+Action\+Activated} (object sender, Event\+Args e) +\begin{DoxyCompactList}\small\item\em Callback called by \char`\"{}show log\char`\"{} menu \end{DoxyCompactList}\item +void \textbf{ On\+Button\+Server\+Connection\+Clicked} (object sender, Event\+Args e) +\begin{DoxyCompactList}\small\item\em Callback called by \char`\"{}button\+Server\+Connection\char`\"{} button \end{DoxyCompactList}\item +void \textbf{ On\+Button\+Robot\+Activation\+Clicked} (object sender, Event\+Args e) +\begin{DoxyCompactList}\small\item\em Callback called when \char`\"{}button\+Robotactivation\char`\"{} is clicked \end{DoxyCompactList}\item +void \textbf{ On\+Button\+Mouv\+Clicked} (object sender, Event\+Args e) +\begin{DoxyCompactList}\small\item\em Callback called when user click on direction button \end{DoxyCompactList}\item +void \textbf{ On\+Check\+Button\+Camera\+On\+Clicked} (object sender, Event\+Args e) +\begin{DoxyCompactList}\small\item\em Callback called when checkbutton for camera is clicked \end{DoxyCompactList}\item +void \textbf{ On\+Check\+Button\+Robot\+Position\+Clicked} (object sender, Event\+Args e) +\begin{DoxyCompactList}\small\item\em Callback called when checkbutton robot position is clicked \end{DoxyCompactList}\item +void \textbf{ On\+Drawing\+Area\+Camera\+Expose\+Event} (object o, Expose\+Event\+Args args) +\begin{DoxyCompactList}\small\item\em Callback called when drawingarea need refresh \end{DoxyCompactList}\item +void \textbf{ Detect\+Arena} () +\begin{DoxyCompactList}\small\item\em Show a popup asking user to tell if arena is correct or not \end{DoxyCompactList}\item +void \textbf{ On\+Button\+Ask\+Arena\+Clicked} (object sender, Event\+Args e) +\begin{DoxyCompactList}\small\item\em Callback called when \char`\"{}detect Arena \char`\"{} button is clicked \end{DoxyCompactList}\end{DoxyCompactItemize} +\subsection*{Private Types} +\begin{DoxyCompactItemize} +\item +enum \textbf{ System\+State} \{ \textbf{ System\+State.\+Not\+Connected}, +\textbf{ System\+State.\+Server\+Connected}, +\textbf{ System\+State.\+Robot\+Connected} + \}\begin{DoxyCompactList}\small\item\em List of availble state for the application \end{DoxyCompactList} +\end{DoxyCompactItemize} +\subsection*{Private Member Functions} +\begin{DoxyCompactItemize} +\item +void \textbf{ Change\+State} (\textbf{ System\+State} new\+State) +\begin{DoxyCompactList}\small\item\em Method used to change controls visibility (greyed or not) depending on current state \end{DoxyCompactList}\item +void \textbf{ Message\+Popup} (Message\+Type type, Buttons\+Type buttons, string title, string message) +\begin{DoxyCompactList}\small\item\em Display a popup message window \end{DoxyCompactList}\item +void \textbf{ On\+Battery\+Timer\+Elapsed} (object sender, System.\+Timers.\+Elapsed\+Event\+Args e) +\begin{DoxyCompactList}\small\item\em Callback called when battery timer expired \end{DoxyCompactList}\end{DoxyCompactItemize} +\subsection*{Private Attributes} +\begin{DoxyCompactItemize} +\item +\textbf{ Destijl\+Command\+Manager} \textbf{ cmd\+Manager} +\begin{DoxyCompactList}\small\item\em Destijl command manager reference \end{DoxyCompactList}\item +Pixbuf \textbf{ drawingarea\+Camera\+Pixbuf} +\begin{DoxyCompactList}\small\item\em Pixbuffer used for displaying image \end{DoxyCompactList}\item +\textbf{ System\+State} \textbf{ system\+State} = \textbf{ System\+State.\+Not\+Connected} +\begin{DoxyCompactList}\small\item\em The state of the system. Can take a value from System\+State \end{DoxyCompactList}\item +System.\+Timers.\+Timer \textbf{ battery\+Timer} +\begin{DoxyCompactList}\small\item\em Timer for battery request \end{DoxyCompactList}\end{DoxyCompactItemize} + + +\subsection{Detailed Description} +Main part of the program, behavior of main window + + + +Definition at line 32 of file Monitor\+U\+I.\+cs. + + + +\subsection{Member Enumeration Documentation} +\mbox{\label{class_main_window_a7b18ca1f8f71faf272c9856aaf7b8e3d}} +\index{Main\+Window@{Main\+Window}!System\+State@{System\+State}} +\index{System\+State@{System\+State}!Main\+Window@{Main\+Window}} +\subsubsection{System\+State} +{\footnotesize\ttfamily enum \textbf{ Main\+Window.\+System\+State}\hspace{0.3cm}{\ttfamily [strong]}, {\ttfamily [private]}} + + + +List of availble state for the application + +\begin{DoxyEnumFields}{Enumerator} +\raisebox{\heightof{T}}[0pt][0pt]{\index{Not\+Connected@{Not\+Connected}!Main\+Window@{Main\+Window}}\index{Main\+Window@{Main\+Window}!Not\+Connected@{Not\+Connected}}}\mbox{\label{class_main_window_a7b18ca1f8f71faf272c9856aaf7b8e3da4075072d219e061ca0f3124f8fbef463}} +Not\+Connected&\\ +\hline + +\raisebox{\heightof{T}}[0pt][0pt]{\index{Server\+Connected@{Server\+Connected}!Main\+Window@{Main\+Window}}\index{Main\+Window@{Main\+Window}!Server\+Connected@{Server\+Connected}}}\mbox{\label{class_main_window_a7b18ca1f8f71faf272c9856aaf7b8e3da911ba363fd1483b5b36fda7b0149cf76}} +Server\+Connected&\\ +\hline + +\raisebox{\heightof{T}}[0pt][0pt]{\index{Robot\+Connected@{Robot\+Connected}!Main\+Window@{Main\+Window}}\index{Main\+Window@{Main\+Window}!Robot\+Connected@{Robot\+Connected}}}\mbox{\label{class_main_window_a7b18ca1f8f71faf272c9856aaf7b8e3da9761e78f9ae0d6f598d953b4d9e839e1}} +Robot\+Connected&\\ +\hline + +\end{DoxyEnumFields} + + +Definition at line 47 of file Monitor\+U\+I.\+cs. + + + +\subsection{Constructor \& Destructor Documentation} +\mbox{\label{class_main_window_af607d50e4d1b04d3c494661489283f45}} +\index{Main\+Window@{Main\+Window}!Main\+Window@{Main\+Window}} +\index{Main\+Window@{Main\+Window}!Main\+Window@{Main\+Window}} +\subsubsection{Main\+Window()} +{\footnotesize\ttfamily Main\+Window.\+Main\+Window (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} + + + +Initializes a new instance of the \doxyref{Main\+Window}{p.}{class_main_window} class. + + + +Definition at line 67 of file Monitor\+U\+I.\+cs. + + + +\subsection{Member Function Documentation} +\mbox{\label{class_main_window_a9a0f3d4cd871609f12d328af2f588664}} +\index{Main\+Window@{Main\+Window}!Adjust\+Controls@{Adjust\+Controls}} +\index{Adjust\+Controls@{Adjust\+Controls}!Main\+Window@{Main\+Window}} +\subsubsection{Adjust\+Controls()} +{\footnotesize\ttfamily void Main\+Window.\+Adjust\+Controls (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} + + + +Make some adjustement to controls, like disabling some controls + + + +Definition at line 84 of file Monitor\+U\+I.\+cs. + +\mbox{\label{class_main_window_aedc27cabbe1604313a452fcbf3ffe9f4}} +\index{Main\+Window@{Main\+Window}!Change\+State@{Change\+State}} +\index{Change\+State@{Change\+State}!Main\+Window@{Main\+Window}} +\subsubsection{Change\+State()} +{\footnotesize\ttfamily void Main\+Window.\+Change\+State (\begin{DoxyParamCaption}\item[{\textbf{ System\+State}}]{new\+State }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}} + + + +Method used to change controls visibility (greyed or not) depending on current state + + +\begin{DoxyParams}{Parameters} +{\em new\+State} & New state\\ +\hline +\end{DoxyParams} + + +Definition at line 103 of file Monitor\+U\+I.\+cs. + +\mbox{\label{class_main_window_a89c79ce9ca4114ca9c50f32dc080e9cd}} +\index{Main\+Window@{Main\+Window}!Detect\+Arena@{Detect\+Arena}} +\index{Detect\+Arena@{Detect\+Arena}!Main\+Window@{Main\+Window}} +\subsubsection{Detect\+Arena()} +{\footnotesize\ttfamily void Main\+Window.\+Detect\+Arena (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}} + + + +Show a popup asking user to tell if arena is correct or not + + + +Definition at line 610 of file Monitor\+U\+I.\+cs. + +\mbox{\label{class_main_window_afc4f923aaa481a93dddaff6303efb9e0}} +\index{Main\+Window@{Main\+Window}!Message\+Popup@{Message\+Popup}} +\index{Message\+Popup@{Message\+Popup}!Main\+Window@{Main\+Window}} +\subsubsection{Message\+Popup()} +{\footnotesize\ttfamily void Main\+Window.\+Message\+Popup (\begin{DoxyParamCaption}\item[{Message\+Type}]{type, }\item[{Buttons\+Type}]{buttons, }\item[{string}]{title, }\item[{string}]{message }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}} + + + +Display a popup message window + + +\begin{DoxyParams}{Parameters} +{\em type} & Type of popup window (question, error, information,...)\\ +\hline +{\em buttons} & Buttons available on popup window\\ +\hline +{\em title} & Title of window\\ +\hline +{\em message} & Message\\ +\hline +\end{DoxyParams} + + +Definition at line 176 of file Monitor\+U\+I.\+cs. + +\mbox{\label{class_main_window_af303b70c08cda04a76f6418f727c4891}} +\index{Main\+Window@{Main\+Window}!On\+Battery\+Timer\+Elapsed@{On\+Battery\+Timer\+Elapsed}} +\index{On\+Battery\+Timer\+Elapsed@{On\+Battery\+Timer\+Elapsed}!Main\+Window@{Main\+Window}} +\subsubsection{On\+Battery\+Timer\+Elapsed()} +{\footnotesize\ttfamily void Main\+Window.\+On\+Battery\+Timer\+Elapsed (\begin{DoxyParamCaption}\item[{object}]{sender, }\item[{System.\+Timers.\+Elapsed\+Event\+Args}]{e }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}} + + + +Callback called when battery timer expired + + +\begin{DoxyParams}{Parameters} +{\em sender} & Sender object\\ +\hline +{\em e} & Event\\ +\hline +\end{DoxyParams} + + +Definition at line 457 of file Monitor\+U\+I.\+cs. + +\mbox{\label{class_main_window_a31e299085d6286d680bd488c73fdff82}} +\index{Main\+Window@{Main\+Window}!On\+Button\+Ask\+Arena\+Clicked@{On\+Button\+Ask\+Arena\+Clicked}} +\index{On\+Button\+Ask\+Arena\+Clicked@{On\+Button\+Ask\+Arena\+Clicked}!Main\+Window@{Main\+Window}} +\subsubsection{On\+Button\+Ask\+Arena\+Clicked()} +{\footnotesize\ttfamily void Main\+Window.\+On\+Button\+Ask\+Arena\+Clicked (\begin{DoxyParamCaption}\item[{object}]{sender, }\item[{Event\+Args}]{e }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}} + + + +Callback called when \char`\"{}detect Arena \char`\"{} button is clicked + + +\begin{DoxyParams}{Parameters} +{\em sender} & Sender object\\ +\hline +{\em e} & Event\\ +\hline +\end{DoxyParams} + + +Definition at line 644 of file Monitor\+U\+I.\+cs. + +\mbox{\label{class_main_window_a7f8d06747f887216ab8c941ad10cb48b}} +\index{Main\+Window@{Main\+Window}!On\+Button\+Mouv\+Clicked@{On\+Button\+Mouv\+Clicked}} +\index{On\+Button\+Mouv\+Clicked@{On\+Button\+Mouv\+Clicked}!Main\+Window@{Main\+Window}} +\subsubsection{On\+Button\+Mouv\+Clicked()} +{\footnotesize\ttfamily void Main\+Window.\+On\+Button\+Mouv\+Clicked (\begin{DoxyParamCaption}\item[{object}]{sender, }\item[{Event\+Args}]{e }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}} + + + +Callback called when user click on direction button + + +\begin{DoxyParams}{Parameters} +{\em sender} & Sender button\\ +\hline +{\em e} & Event\\ +\hline +\end{DoxyParams} + + +Definition at line 427 of file Monitor\+U\+I.\+cs. + +\mbox{\label{class_main_window_a2b5e11a49a10b24c59bebb377cdfeae8}} +\index{Main\+Window@{Main\+Window}!On\+Button\+Robot\+Activation\+Clicked@{On\+Button\+Robot\+Activation\+Clicked}} +\index{On\+Button\+Robot\+Activation\+Clicked@{On\+Button\+Robot\+Activation\+Clicked}!Main\+Window@{Main\+Window}} +\subsubsection{On\+Button\+Robot\+Activation\+Clicked()} +{\footnotesize\ttfamily void Main\+Window.\+On\+Button\+Robot\+Activation\+Clicked (\begin{DoxyParamCaption}\item[{object}]{sender, }\item[{Event\+Args}]{e }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}} + + + +Callback called when \char`\"{}button\+Robotactivation\char`\"{} is clicked + + +\begin{DoxyParams}{Parameters} +{\em sender} & Sender object\\ +\hline +{\em e} & Event\\ +\hline +\end{DoxyParams} + + +Definition at line 363 of file Monitor\+U\+I.\+cs. + +\mbox{\label{class_main_window_ac0acc6c3a63f405f14ec8e4d132a2661}} +\index{Main\+Window@{Main\+Window}!On\+Button\+Server\+Connection\+Clicked@{On\+Button\+Server\+Connection\+Clicked}} +\index{On\+Button\+Server\+Connection\+Clicked@{On\+Button\+Server\+Connection\+Clicked}!Main\+Window@{Main\+Window}} +\subsubsection{On\+Button\+Server\+Connection\+Clicked()} +{\footnotesize\ttfamily void Main\+Window.\+On\+Button\+Server\+Connection\+Clicked (\begin{DoxyParamCaption}\item[{object}]{sender, }\item[{Event\+Args}]{e }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}} + + + +Callback called by \char`\"{}button\+Server\+Connection\char`\"{} button + + +\begin{DoxyParams}{Parameters} +{\em sender} & Sender object\\ +\hline +{\em e} & Event\\ +\hline +\end{DoxyParams} + + +Definition at line 282 of file Monitor\+U\+I.\+cs. + +\mbox{\label{class_main_window_af4b587cdd614d5bdb8d9158a1f59e4fa}} +\index{Main\+Window@{Main\+Window}!On\+Check\+Button\+Camera\+On\+Clicked@{On\+Check\+Button\+Camera\+On\+Clicked}} +\index{On\+Check\+Button\+Camera\+On\+Clicked@{On\+Check\+Button\+Camera\+On\+Clicked}!Main\+Window@{Main\+Window}} +\subsubsection{On\+Check\+Button\+Camera\+On\+Clicked()} +{\footnotesize\ttfamily void Main\+Window.\+On\+Check\+Button\+Camera\+On\+Clicked (\begin{DoxyParamCaption}\item[{object}]{sender, }\item[{Event\+Args}]{e }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}} + + + +Callback called when checkbutton for camera is clicked + + +\begin{DoxyParams}{Parameters} +{\em sender} & Sender object\\ +\hline +{\em e} & Event\\ +\hline +\end{DoxyParams} + + +Definition at line 501 of file Monitor\+U\+I.\+cs. + +\mbox{\label{class_main_window_a20d07605619027d82a30552f294b128f}} +\index{Main\+Window@{Main\+Window}!On\+Check\+Button\+Robot\+Position\+Clicked@{On\+Check\+Button\+Robot\+Position\+Clicked}} +\index{On\+Check\+Button\+Robot\+Position\+Clicked@{On\+Check\+Button\+Robot\+Position\+Clicked}!Main\+Window@{Main\+Window}} +\subsubsection{On\+Check\+Button\+Robot\+Position\+Clicked()} +{\footnotesize\ttfamily void Main\+Window.\+On\+Check\+Button\+Robot\+Position\+Clicked (\begin{DoxyParamCaption}\item[{object}]{sender, }\item[{Event\+Args}]{e }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}} + + + +Callback called when checkbutton robot position is clicked + + +\begin{DoxyParams}{Parameters} +{\em sender} & Sender object\\ +\hline +{\em e} & Event\\ +\hline +\end{DoxyParams} + + +Definition at line 530 of file Monitor\+U\+I.\+cs. + +\mbox{\label{class_main_window_a4b651f10b9079c128b9e36d15ad10211}} +\index{Main\+Window@{Main\+Window}!On\+Command\+Received\+Event@{On\+Command\+Received\+Event}} +\index{On\+Command\+Received\+Event@{On\+Command\+Received\+Event}!Main\+Window@{Main\+Window}} +\subsubsection{On\+Command\+Received\+Event()} +{\footnotesize\ttfamily void Main\+Window.\+On\+Command\+Received\+Event (\begin{DoxyParamCaption}\item[{string}]{header, }\item[{string}]{data, }\item[{byte [$\,$]}]{buffer }\end{DoxyParamCaption})} + + + +Callback called when new message is received from server + + +\begin{DoxyParams}{Parameters} +{\em header} & Header of message\\ +\hline +{\em data} & Data of message\\ +\hline +{\em buffer} & Raw buffer corresponding of received message\\ +\hline +\end{DoxyParams} + + +Definition at line 207 of file Monitor\+U\+I.\+cs. + +\mbox{\label{class_main_window_a64bdcb29cebb58957790da1ee2733fe1}} +\index{Main\+Window@{Main\+Window}!On\+Delete\+Event@{On\+Delete\+Event}} +\index{On\+Delete\+Event@{On\+Delete\+Event}!Main\+Window@{Main\+Window}} +\subsubsection{On\+Delete\+Event()} +{\footnotesize\ttfamily void Main\+Window.\+On\+Delete\+Event (\begin{DoxyParamCaption}\item[{object}]{sender, }\item[{Delete\+Event\+Args}]{a }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}} + + + +Callback called when delete event is sent by window + + +\begin{DoxyParams}{Parameters} +{\em sender} & Sender object\\ +\hline +{\em a} & Not really sure of what it is...\\ +\hline +\end{DoxyParams} + + +Definition at line 192 of file Monitor\+U\+I.\+cs. + +\mbox{\label{class_main_window_afe4b0001f191554aed5d9b65208a06f5}} +\index{Main\+Window@{Main\+Window}!On\+Drawing\+Area\+Camera\+Expose\+Event@{On\+Drawing\+Area\+Camera\+Expose\+Event}} +\index{On\+Drawing\+Area\+Camera\+Expose\+Event@{On\+Drawing\+Area\+Camera\+Expose\+Event}!Main\+Window@{Main\+Window}} +\subsubsection{On\+Drawing\+Area\+Camera\+Expose\+Event()} +{\footnotesize\ttfamily void Main\+Window.\+On\+Drawing\+Area\+Camera\+Expose\+Event (\begin{DoxyParamCaption}\item[{object}]{o, }\item[{Expose\+Event\+Args}]{args }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}} + + + +Callback called when drawingarea need refresh + + +\begin{DoxyParams}{Parameters} +{\em o} & Sender object\\ +\hline +{\em args} & Expose arguments\\ +\hline +\end{DoxyParams} + + +Definition at line 560 of file Monitor\+U\+I.\+cs. + +\mbox{\label{class_main_window_ab54b643c364b46a150f6f993267bb709}} +\index{Main\+Window@{Main\+Window}!On\+Quit\+Action\+Activated@{On\+Quit\+Action\+Activated}} +\index{On\+Quit\+Action\+Activated@{On\+Quit\+Action\+Activated}!Main\+Window@{Main\+Window}} +\subsubsection{On\+Quit\+Action\+Activated()} +{\footnotesize\ttfamily void Main\+Window.\+On\+Quit\+Action\+Activated (\begin{DoxyParamCaption}\item[{object}]{sender, }\item[{Event\+Args}]{e }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}} + + + +Callback called by \char`\"{}quit\char`\"{} menu + + +\begin{DoxyParams}{Parameters} +{\em sender} & Sender object\\ +\hline +{\em e} & Event\\ +\hline +\end{DoxyParams} + + +Definition at line 257 of file Monitor\+U\+I.\+cs. + +\mbox{\label{class_main_window_a87132738a6ca496303940d56e091bdc7}} +\index{Main\+Window@{Main\+Window}!On\+Show\+Log\+Window\+Action\+Activated@{On\+Show\+Log\+Window\+Action\+Activated}} +\index{On\+Show\+Log\+Window\+Action\+Activated@{On\+Show\+Log\+Window\+Action\+Activated}!Main\+Window@{Main\+Window}} +\subsubsection{On\+Show\+Log\+Window\+Action\+Activated()} +{\footnotesize\ttfamily void Main\+Window.\+On\+Show\+Log\+Window\+Action\+Activated (\begin{DoxyParamCaption}\item[{object}]{sender, }\item[{Event\+Args}]{e }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}} + + + +Callback called by \char`\"{}show log\char`\"{} menu + + +\begin{DoxyParams}{Parameters} +{\em sender} & Sender object\\ +\hline +{\em e} & Event\\ +\hline +\end{DoxyParams} + + +Definition at line 270 of file Monitor\+U\+I.\+cs. + + + +\subsection{Member Data Documentation} +\mbox{\label{class_main_window_a57f0325d8b8a63be586001b9a469d9ae}} +\index{Main\+Window@{Main\+Window}!battery\+Timer@{battery\+Timer}} +\index{battery\+Timer@{battery\+Timer}!Main\+Window@{Main\+Window}} +\subsubsection{battery\+Timer} +{\footnotesize\ttfamily System.\+Timers.\+Timer Main\+Window.\+battery\+Timer\hspace{0.3cm}{\ttfamily [private]}} + + + +Timer for battery request + + + +Definition at line 62 of file Monitor\+U\+I.\+cs. + +\mbox{\label{class_main_window_a0b60450970b8a6fb6e016d5c0728e474}} +\index{Main\+Window@{Main\+Window}!cmd\+Manager@{cmd\+Manager}} +\index{cmd\+Manager@{cmd\+Manager}!Main\+Window@{Main\+Window}} +\subsubsection{cmd\+Manager} +{\footnotesize\ttfamily \textbf{ Destijl\+Command\+Manager} Main\+Window.\+cmd\+Manager\hspace{0.3cm}{\ttfamily [private]}} + + + +Destijl command manager reference + + + +Definition at line 37 of file Monitor\+U\+I.\+cs. + +\mbox{\label{class_main_window_a41581e449b18e87acbdff5baa12c2050}} +\index{Main\+Window@{Main\+Window}!drawingarea\+Camera\+Pixbuf@{drawingarea\+Camera\+Pixbuf}} +\index{drawingarea\+Camera\+Pixbuf@{drawingarea\+Camera\+Pixbuf}!Main\+Window@{Main\+Window}} +\subsubsection{drawingarea\+Camera\+Pixbuf} +{\footnotesize\ttfamily Pixbuf Main\+Window.\+drawingarea\+Camera\+Pixbuf\hspace{0.3cm}{\ttfamily [private]}} + + + +Pixbuffer used for displaying image + + + +Definition at line 42 of file Monitor\+U\+I.\+cs. + +\mbox{\label{class_main_window_a105025ee1bdfac188f1ce640d593550d}} +\index{Main\+Window@{Main\+Window}!system\+State@{system\+State}} +\index{system\+State@{system\+State}!Main\+Window@{Main\+Window}} +\subsubsection{system\+State} +{\footnotesize\ttfamily \textbf{ System\+State} Main\+Window.\+system\+State = \textbf{ System\+State.\+Not\+Connected}\hspace{0.3cm}{\ttfamily [private]}} + + + +The state of the system. Can take a value from System\+State + + + +Definition at line 57 of file Monitor\+U\+I.\+cs. + + + +The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize} +\item +\textbf{ Monitor\+U\+I.\+cs}\end{DoxyCompactItemize} diff --git a/software/monitor/monitor/docs/latex/class_main_window__coll__graph.md5 b/software/monitor/monitor/docs/latex/class_main_window__coll__graph.md5 new file mode 100644 index 0000000..b7864cd --- /dev/null +++ b/software/monitor/monitor/docs/latex/class_main_window__coll__graph.md5 @@ -0,0 +1 @@ +218bd38564ff52f8085404902688498b \ No newline at end of file diff --git a/software/monitor/monitor/docs/latex/class_main_window__coll__graph.pdf b/software/monitor/monitor/docs/latex/class_main_window__coll__graph.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b156dba11408200a73221f9ddbf7b90b153b378e GIT binary patch literal 14842 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 BV4MH| literal 0 HcmV?d00001 diff --git a/software/monitor/monitor/docs/latex/class_main_window__inherit__graph.md5 b/software/monitor/monitor/docs/latex/class_main_window__inherit__graph.md5 new file mode 100644 index 0000000..410cf01 --- /dev/null +++ b/software/monitor/monitor/docs/latex/class_main_window__inherit__graph.md5 @@ -0,0 +1 @@ +f31b8b65fa596320f0453c8a55ed1b02 \ No newline at end of file diff --git a/software/monitor/monitor/docs/latex/class_main_window__inherit__graph.pdf b/software/monitor/monitor/docs/latex/class_main_window__inherit__graph.pdf new file mode 100644 index 0000000000000000000000000000000000000000..6c5da11504cbf57fd9811ae92f490edb5f468ab6 GIT binary patch literal 11623 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 literal 0 HcmV?d00001 diff --git a/software/monitor/monitor/docs/latex/classmonitor_1_1_client.tex b/software/monitor/monitor/docs/latex/classmonitor_1_1_client.tex new file mode 100644 index 0000000..c93ed85 --- /dev/null +++ b/software/monitor/monitor/docs/latex/classmonitor_1_1_client.tex @@ -0,0 +1,347 @@ +\section{monitor.\+Client Class Reference} +\label{classmonitor_1_1_client}\index{monitor.\+Client@{monitor.\+Client}} + + +Static class for T\+CP client + + +\subsection*{Public Member Functions} +\begin{DoxyCompactItemize} +\item +delegate void \textbf{ Read\+Event} (string msg, byte[$\,$] \textbf{ buffer}) +\begin{DoxyCompactList}\small\item\em Callback to send received message to upper level \end{DoxyCompactList}\end{DoxyCompactItemize} +\subsection*{Static Public Member Functions} +\begin{DoxyCompactItemize} +\item +static bool \textbf{ Open} (string host) +\begin{DoxyCompactList}\small\item\em Open connection to server \char`\"{}host\char`\"{}, on default port number. \end{DoxyCompactList}\item +static bool \textbf{ Open} (string host, int port) +\begin{DoxyCompactList}\small\item\em Open connection to server \char`\"{}host\char`\"{}, with port number \char`\"{}port\char`\"{} \end{DoxyCompactList}\item +static void \textbf{ Close} () +\begin{DoxyCompactList}\small\item\em Close connection to server \end{DoxyCompactList}\item +static void \textbf{ Write} (string mes) +\begin{DoxyCompactList}\small\item\em Write a string to server \end{DoxyCompactList}\end{DoxyCompactItemize} +\subsection*{Public Attributes} +\begin{DoxyCompactItemize} +\item +const string \textbf{ default\+IP} = \char`\"{}localhost\char`\"{} +\begin{DoxyCompactList}\small\item\em Default server name \end{DoxyCompactList}\item +const int \textbf{ default\+Port} = 4500 +\begin{DoxyCompactList}\small\item\em Default server port number \end{DoxyCompactList}\end{DoxyCompactItemize} +\subsection*{Static Public Attributes} +\begin{DoxyCompactItemize} +\item +static \textbf{ Read\+Event} \textbf{ read\+Event} = null +\end{DoxyCompactItemize} +\subsection*{Static Private Member Functions} +\begin{DoxyCompactItemize} +\item +static void \textbf{ Read\+Callback} (I\+Async\+Result ar) +\begin{DoxyCompactList}\small\item\em Callback call by stream.\+Begin\+Read after reception of new\+Length data \end{DoxyCompactList}\end{DoxyCompactItemize} +\subsection*{Private Attributes} +\begin{DoxyCompactItemize} +\item +const int \textbf{ Buffer\+Max\+Size} = 512 +\begin{DoxyCompactList}\small\item\em Size of internal buffer used when reading data from server \end{DoxyCompactList}\end{DoxyCompactItemize} +\subsection*{Static Private Attributes} +\begin{DoxyCompactItemize} +\item +static Tcp\+Client \textbf{ client} = null +\begin{DoxyCompactList}\small\item\em Tcp client object \end{DoxyCompactList}\item +static Network\+Stream \textbf{ stream} = null +\begin{DoxyCompactList}\small\item\em Stream object used for communication \end{DoxyCompactList}\item +static byte [$\,$] \textbf{ buffer} = new byte[\textbf{ Buffer\+Max\+Size}] +\begin{DoxyCompactList}\small\item\em Internal buffer used when reading data from server \end{DoxyCompactList}\item +static byte [$\,$] \textbf{ receive\+Buffer} +\begin{DoxyCompactList}\small\item\em buffer containing received message from T\+CP server Used to concatenate internal buffers into one \end{DoxyCompactList}\item +static int \textbf{ initial\+Receive\+Buffer\+Index} = 0 +\item +static String\+Builder \textbf{ message} = new String\+Builder() +\begin{DoxyCompactList}\small\item\em String containing received message from tcp server \end{DoxyCompactList}\item +static int \textbf{ new\+Length} = 1 +\item +static int \textbf{ packet\+Counter} = 0 +\end{DoxyCompactItemize} + + +\subsection{Detailed Description} +Static class for T\+CP client + + + +Definition at line 31 of file Client.\+cs. + + + +\subsection{Member Function Documentation} +\mbox{\label{classmonitor_1_1_client_ae6c0cbe19d622b008fd1f6d01d9cb315}} +\index{monitor\+::\+Client@{monitor\+::\+Client}!Close@{Close}} +\index{Close@{Close}!monitor\+::\+Client@{monitor\+::\+Client}} +\subsubsection{Close()} +{\footnotesize\ttfamily static void monitor.\+Client.\+Close (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} + + + +Close connection to server + + + +Definition at line 141 of file Client.\+cs. + +\mbox{\label{classmonitor_1_1_client_af802cd428aa08b9604e2246f11e1fe61}} +\index{monitor\+::\+Client@{monitor\+::\+Client}!Open@{Open}} +\index{Open@{Open}!monitor\+::\+Client@{monitor\+::\+Client}} +\subsubsection{Open()\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}} +{\footnotesize\ttfamily static bool monitor.\+Client.\+Open (\begin{DoxyParamCaption}\item[{string}]{host }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} + + + +Open connection to server \char`\"{}host\char`\"{}, on default port number. + +\begin{DoxyReturn}{Returns} +true if connection succeded, false otherwise +\end{DoxyReturn} + +\begin{DoxyParams}{Parameters} +{\em host} & Hostname to connect to\\ +\hline +\end{DoxyParams} + + +Definition at line 89 of file Client.\+cs. + +\mbox{\label{classmonitor_1_1_client_aee6f8f594a9496600b78c37d6da457d4}} +\index{monitor\+::\+Client@{monitor\+::\+Client}!Open@{Open}} +\index{Open@{Open}!monitor\+::\+Client@{monitor\+::\+Client}} +\subsubsection{Open()\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}} +{\footnotesize\ttfamily static bool monitor.\+Client.\+Open (\begin{DoxyParamCaption}\item[{string}]{host, }\item[{int}]{port }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} + + + +Open connection to server \char`\"{}host\char`\"{}, with port number \char`\"{}port\char`\"{} + +\begin{DoxyReturn}{Returns} +true if connection succeded, false otherwise +\end{DoxyReturn} + +\begin{DoxyParams}{Parameters} +{\em host} & Hostname to connect to\\ +\hline +{\em port} & Port number for connection\\ +\hline +\end{DoxyParams} + + +Definition at line 100 of file Client.\+cs. + +\mbox{\label{classmonitor_1_1_client_a8dd2eb26c164d0f566dd6c679ba340e0}} +\index{monitor\+::\+Client@{monitor\+::\+Client}!Read\+Callback@{Read\+Callback}} +\index{Read\+Callback@{Read\+Callback}!monitor\+::\+Client@{monitor\+::\+Client}} +\subsubsection{Read\+Callback()} +{\footnotesize\ttfamily static void monitor.\+Client.\+Read\+Callback (\begin{DoxyParamCaption}\item[{I\+Async\+Result}]{ar }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}, {\ttfamily [private]}} + + + +Callback call by stream.\+Begin\+Read after reception of new\+Length data + + +\begin{DoxyParams}{Parameters} +{\em ar} & Not sure of what is it, but needed for terminate reading\\ +\hline +\end{DoxyParams} + + +Definition at line 151 of file Client.\+cs. + +\mbox{\label{classmonitor_1_1_client_ae85f4aa567a41488d5c65e470ae15378}} +\index{monitor\+::\+Client@{monitor\+::\+Client}!Read\+Event@{Read\+Event}} +\index{Read\+Event@{Read\+Event}!monitor\+::\+Client@{monitor\+::\+Client}} +\subsubsection{Read\+Event()} +{\footnotesize\ttfamily delegate void monitor.\+Client.\+Read\+Event (\begin{DoxyParamCaption}\item[{string}]{msg, }\item[{byte [$\,$]}]{buffer }\end{DoxyParamCaption})} + + + +Callback to send received message to upper level + +\mbox{\label{classmonitor_1_1_client_a081413295e7a96662b39b2ddec854b02}} +\index{monitor\+::\+Client@{monitor\+::\+Client}!Write@{Write}} +\index{Write@{Write}!monitor\+::\+Client@{monitor\+::\+Client}} +\subsubsection{Write()} +{\footnotesize\ttfamily static void monitor.\+Client.\+Write (\begin{DoxyParamCaption}\item[{string}]{mes }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} + + + +Write a string to server + +\begin{DoxyReturn}{Returns} +Nothing +\end{DoxyReturn} + +\begin{DoxyParams}{Parameters} +{\em mes} & Message to send to server\\ +\hline +\end{DoxyParams} + + +Definition at line 219 of file Client.\+cs. + + + +\subsection{Member Data Documentation} +\mbox{\label{classmonitor_1_1_client_abd5c33a23e0fab7b369b59ac296c7762}} +\index{monitor\+::\+Client@{monitor\+::\+Client}!buffer@{buffer}} +\index{buffer@{buffer}!monitor\+::\+Client@{monitor\+::\+Client}} +\subsubsection{buffer} +{\footnotesize\ttfamily byte [$\,$] monitor.\+Client.\+buffer = new byte[\textbf{ Buffer\+Max\+Size}]\hspace{0.3cm}{\ttfamily [static]}, {\ttfamily [private]}} + + + +Internal buffer used when reading data from server + + + +Definition at line 61 of file Client.\+cs. + +\mbox{\label{classmonitor_1_1_client_acbc4cae14536eccb5297aacdadb84f29}} +\index{monitor\+::\+Client@{monitor\+::\+Client}!Buffer\+Max\+Size@{Buffer\+Max\+Size}} +\index{Buffer\+Max\+Size@{Buffer\+Max\+Size}!monitor\+::\+Client@{monitor\+::\+Client}} +\subsubsection{Buffer\+Max\+Size} +{\footnotesize\ttfamily const int monitor.\+Client.\+Buffer\+Max\+Size = 512\hspace{0.3cm}{\ttfamily [private]}} + + + +Size of internal buffer used when reading data from server + + + +Definition at line 56 of file Client.\+cs. + +\mbox{\label{classmonitor_1_1_client_a4867b48ebfa930a80662c552f2911430}} +\index{monitor\+::\+Client@{monitor\+::\+Client}!client@{client}} +\index{client@{client}!monitor\+::\+Client@{monitor\+::\+Client}} +\subsubsection{client} +{\footnotesize\ttfamily Tcp\+Client monitor.\+Client.\+client = null\hspace{0.3cm}{\ttfamily [static]}, {\ttfamily [private]}} + + + +Tcp client object + + + +Definition at line 46 of file Client.\+cs. + +\mbox{\label{classmonitor_1_1_client_a326a20fe68a86757e16a6e45b8012640}} +\index{monitor\+::\+Client@{monitor\+::\+Client}!default\+IP@{default\+IP}} +\index{default\+IP@{default\+IP}!monitor\+::\+Client@{monitor\+::\+Client}} +\subsubsection{default\+IP} +{\footnotesize\ttfamily const string monitor.\+Client.\+default\+IP = \char`\"{}localhost\char`\"{}} + + + +Default server name + + + +Definition at line 36 of file Client.\+cs. + +\mbox{\label{classmonitor_1_1_client_ad0a9bfc361ccef7443625f399e67f84a}} +\index{monitor\+::\+Client@{monitor\+::\+Client}!default\+Port@{default\+Port}} +\index{default\+Port@{default\+Port}!monitor\+::\+Client@{monitor\+::\+Client}} +\subsubsection{default\+Port} +{\footnotesize\ttfamily const int monitor.\+Client.\+default\+Port = 4500} + + + +Default server port number + + + +Definition at line 41 of file Client.\+cs. + +\mbox{\label{classmonitor_1_1_client_afbbf4cf14d1a11747f6103e726dee77e}} +\index{monitor\+::\+Client@{monitor\+::\+Client}!initial\+Receive\+Buffer\+Index@{initial\+Receive\+Buffer\+Index}} +\index{initial\+Receive\+Buffer\+Index@{initial\+Receive\+Buffer\+Index}!monitor\+::\+Client@{monitor\+::\+Client}} +\subsubsection{initial\+Receive\+Buffer\+Index} +{\footnotesize\ttfamily int monitor.\+Client.\+initial\+Receive\+Buffer\+Index = 0\hspace{0.3cm}{\ttfamily [static]}, {\ttfamily [private]}} + + + +Definition at line 69 of file Client.\+cs. + +\mbox{\label{classmonitor_1_1_client_a2ddb7073c4bf8a42c231939d5c21d68e}} +\index{monitor\+::\+Client@{monitor\+::\+Client}!message@{message}} +\index{message@{message}!monitor\+::\+Client@{monitor\+::\+Client}} +\subsubsection{message} +{\footnotesize\ttfamily String\+Builder monitor.\+Client.\+message = new String\+Builder()\hspace{0.3cm}{\ttfamily [static]}, {\ttfamily [private]}} + + + +String containing received message from tcp server + + + +Definition at line 74 of file Client.\+cs. + +\mbox{\label{classmonitor_1_1_client_a7083940b8fea9df2b080e3844549e805}} +\index{monitor\+::\+Client@{monitor\+::\+Client}!new\+Length@{new\+Length}} +\index{new\+Length@{new\+Length}!monitor\+::\+Client@{monitor\+::\+Client}} +\subsubsection{new\+Length} +{\footnotesize\ttfamily int monitor.\+Client.\+new\+Length = 1\hspace{0.3cm}{\ttfamily [static]}, {\ttfamily [private]}} + + + +Definition at line 75 of file Client.\+cs. + +\mbox{\label{classmonitor_1_1_client_a7eb13840c83beb2ab191cae3ba3210c9}} +\index{monitor\+::\+Client@{monitor\+::\+Client}!packet\+Counter@{packet\+Counter}} +\index{packet\+Counter@{packet\+Counter}!monitor\+::\+Client@{monitor\+::\+Client}} +\subsubsection{packet\+Counter} +{\footnotesize\ttfamily int monitor.\+Client.\+packet\+Counter = 0\hspace{0.3cm}{\ttfamily [static]}, {\ttfamily [private]}} + + + +Definition at line 76 of file Client.\+cs. + +\mbox{\label{classmonitor_1_1_client_a01cb2a551d81fd82d2f7015e177f0f18}} +\index{monitor\+::\+Client@{monitor\+::\+Client}!read\+Event@{read\+Event}} +\index{read\+Event@{read\+Event}!monitor\+::\+Client@{monitor\+::\+Client}} +\subsubsection{read\+Event} +{\footnotesize\ttfamily \textbf{ Read\+Event} monitor.\+Client.\+read\+Event = null\hspace{0.3cm}{\ttfamily [static]}} + + + +Definition at line 82 of file Client.\+cs. + +\mbox{\label{classmonitor_1_1_client_aade32a6043e0dc629509f0e1c0112a24}} +\index{monitor\+::\+Client@{monitor\+::\+Client}!receive\+Buffer@{receive\+Buffer}} +\index{receive\+Buffer@{receive\+Buffer}!monitor\+::\+Client@{monitor\+::\+Client}} +\subsubsection{receive\+Buffer} +{\footnotesize\ttfamily byte [$\,$] monitor.\+Client.\+receive\+Buffer\hspace{0.3cm}{\ttfamily [static]}, {\ttfamily [private]}} + + + +buffer containing received message from T\+CP server Used to concatenate internal buffers into one + + + +Definition at line 67 of file Client.\+cs. + +\mbox{\label{classmonitor_1_1_client_a8de2a9e4fe2c2e896849ddd33d80d759}} +\index{monitor\+::\+Client@{monitor\+::\+Client}!stream@{stream}} +\index{stream@{stream}!monitor\+::\+Client@{monitor\+::\+Client}} +\subsubsection{stream} +{\footnotesize\ttfamily Network\+Stream monitor.\+Client.\+stream = null\hspace{0.3cm}{\ttfamily [static]}, {\ttfamily [private]}} + + + +Stream object used for communication + + + +Definition at line 51 of file Client.\+cs. + + + +The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize} +\item +\textbf{ Client.\+cs}\end{DoxyCompactItemize} diff --git a/software/monitor/monitor/docs/latex/classmonitor_1_1_command_manager.tex b/software/monitor/monitor/docs/latex/classmonitor_1_1_command_manager.tex new file mode 100644 index 0000000..d60a498 --- /dev/null +++ b/software/monitor/monitor/docs/latex/classmonitor_1_1_command_manager.tex @@ -0,0 +1,367 @@ +\section{monitor.\+Command\+Manager Class Reference} +\label{classmonitor_1_1_command_manager}\index{monitor.\+Command\+Manager@{monitor.\+Command\+Manager}} + + +Command Manager. Use for timeout managment during reception of data Used as intermediate layer between T\+CP client class (\doxyref{Client}{p.}{classmonitor_1_1_client}) and application level managment of command and answers + + + + +Collaboration diagram for monitor.\+Command\+Manager\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=214pt]{classmonitor_1_1_command_manager__coll__graph} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{DoxyCompactItemize} +\item +enum \textbf{ Command\+Manager\+Status} \{ \textbf{ Command\+Manager\+Status.\+Answer\+Received}, +\textbf{ Command\+Manager\+Status.\+Timeout}, +\textbf{ Command\+Manager\+Status.\+Busy} + \}\begin{DoxyCompactList}\small\item\em Available status when sending command \end{DoxyCompactList} +\end{DoxyCompactItemize} +\subsection*{Public Member Functions} +\begin{DoxyCompactItemize} +\item +delegate void \textbf{ Command\+Received\+Event} (string msg, byte[$\,$] buffer) +\begin{DoxyCompactList}\small\item\em Callback for sending received data to upper level \end{DoxyCompactList}\item +\textbf{ Command\+Manager} (\textbf{ Command\+Received\+Event} callback) +\begin{DoxyCompactList}\small\item\em Initializes a new instance of the T\+:monitor.\+Command\+Manager class. \end{DoxyCompactList}\item +bool \textbf{ Open} (string hostname) +\begin{DoxyCompactList}\small\item\em Open the specified hostname server, using default port number. \end{DoxyCompactList}\item +bool \textbf{ Open} (string hostname, int port) +\begin{DoxyCompactList}\small\item\em Open connection to server \char`\"{}host\char`\"{}, with port number \char`\"{}port\char`\"{} \end{DoxyCompactList}\item +void \textbf{ Close} () +\begin{DoxyCompactList}\small\item\em Close connection to server \end{DoxyCompactList}\item +\textbf{ Command\+Manager\+Status} \textbf{ Send\+Command} (string cmd, out string answer, double timeout) +\begin{DoxyCompactList}\small\item\em Sends a command to T\+CP server \end{DoxyCompactList}\end{DoxyCompactItemize} +\subsection*{Public Attributes} +\begin{DoxyCompactItemize} +\item +\textbf{ Command\+Received\+Event} \textbf{ command\+Received\+Event} = null +\end{DoxyCompactItemize} +\subsection*{Private Member Functions} +\begin{DoxyCompactItemize} +\item +\textbf{ $\sim$\+Command\+Manager} () +\begin{DoxyCompactList}\small\item\em Releases unmanaged resources and performs other cleanup operations before the T\+:monitor.\+Command\+Manager is reclaimed by garbage collection. \end{DoxyCompactList}\item +void \textbf{ On\+Message\+Reception} (string message, byte[$\,$] buffer) +\begin{DoxyCompactList}\small\item\em Callback called by \doxyref{Client}{p.}{classmonitor_1_1_client} class after reception of new message \end{DoxyCompactList}\item +void \textbf{ On\+Message\+Timeout} (object sender, System.\+Timers.\+Elapsed\+Event\+Args e) +\begin{DoxyCompactList}\small\item\em Callback called by stopwatch on timeout \end{DoxyCompactList}\end{DoxyCompactItemize} +\subsection*{Private Attributes} +\begin{DoxyCompactItemize} +\item +System.\+Timers.\+Timer \textbf{ wait\+Timer} = new System.\+Timers.\+Timer() +\begin{DoxyCompactList}\small\item\em Timer for managing timeout \end{DoxyCompactList}\item +Manual\+Reset\+Event \textbf{ wait\+Event} = new Manual\+Reset\+Event(false) +\item +bool \textbf{ wait\+For\+Acknowledge} = false +\begin{DoxyCompactList}\small\item\em Flag to tell rogram to wait for an acknowledge from server \end{DoxyCompactList}\item +string \textbf{ message\+Received} = null +\begin{DoxyCompactList}\small\item\em received message \end{DoxyCompactList}\item +bool \textbf{ is\+Busy} = false +\begin{DoxyCompactList}\small\item\em flag indicating command manager is currently busy waiting an acknowledge \end{DoxyCompactList}\end{DoxyCompactItemize} + + +\subsection{Detailed Description} +Command Manager. Use for timeout managment during reception of data Used as intermediate layer between T\+CP client class (\doxyref{Client}{p.}{classmonitor_1_1_client}) and application level managment of command and answers + + + +Definition at line 31 of file Command\+Manager.\+cs. + + + +\subsection{Member Enumeration Documentation} +\mbox{\label{classmonitor_1_1_command_manager_ac8ca53031468acc8be05c37586671a9b}} +\index{monitor\+::\+Command\+Manager@{monitor\+::\+Command\+Manager}!Command\+Manager\+Status@{Command\+Manager\+Status}} +\index{Command\+Manager\+Status@{Command\+Manager\+Status}!monitor\+::\+Command\+Manager@{monitor\+::\+Command\+Manager}} +\subsubsection{Command\+Manager\+Status} +{\footnotesize\ttfamily enum \textbf{ monitor.\+Command\+Manager.\+Command\+Manager\+Status}\hspace{0.3cm}{\ttfamily [strong]}} + + + +Available status when sending command + +\begin{DoxyEnumFields}{Enumerator} +\raisebox{\heightof{T}}[0pt][0pt]{\index{Answer\+Received@{Answer\+Received}!monitor\+::\+Command\+Manager@{monitor\+::\+Command\+Manager}}\index{monitor\+::\+Command\+Manager@{monitor\+::\+Command\+Manager}!Answer\+Received@{Answer\+Received}}}\mbox{\label{classmonitor_1_1_command_manager_ac8ca53031468acc8be05c37586671a9bae3e095863e3b99e11e8c18efb3901da3}} +Answer\+Received&\\ +\hline + +\raisebox{\heightof{T}}[0pt][0pt]{\index{Timeout@{Timeout}!monitor\+::\+Command\+Manager@{monitor\+::\+Command\+Manager}}\index{monitor\+::\+Command\+Manager@{monitor\+::\+Command\+Manager}!Timeout@{Timeout}}}\mbox{\label{classmonitor_1_1_command_manager_ac8ca53031468acc8be05c37586671a9bac85a251cc457840f1e032f1b733e9398}} +Timeout&\\ +\hline + +\raisebox{\heightof{T}}[0pt][0pt]{\index{Busy@{Busy}!monitor\+::\+Command\+Manager@{monitor\+::\+Command\+Manager}}\index{monitor\+::\+Command\+Manager@{monitor\+::\+Command\+Manager}!Busy@{Busy}}}\mbox{\label{classmonitor_1_1_command_manager_ac8ca53031468acc8be05c37586671a9bad8a942ef2b04672adfafef0ad817a407}} +Busy&\\ +\hline + +\end{DoxyEnumFields} + + +Definition at line 63 of file Command\+Manager.\+cs. + + + +\subsection{Constructor \& Destructor Documentation} +\mbox{\label{classmonitor_1_1_command_manager_ac2248c90d3a59bc2bf376cd876cece72}} +\index{monitor\+::\+Command\+Manager@{monitor\+::\+Command\+Manager}!Command\+Manager@{Command\+Manager}} +\index{Command\+Manager@{Command\+Manager}!monitor\+::\+Command\+Manager@{monitor\+::\+Command\+Manager}} +\subsubsection{Command\+Manager()} +{\footnotesize\ttfamily monitor.\+Command\+Manager.\+Command\+Manager (\begin{DoxyParamCaption}\item[{\textbf{ Command\+Received\+Event}}]{callback }\end{DoxyParamCaption})} + + + +Initializes a new instance of the T\+:monitor.\+Command\+Manager class. + + +\begin{DoxyParams}{Parameters} +{\em callback} & Callback used when new message are received\\ +\hline +\end{DoxyParams} + + +Definition at line 74 of file Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_command_manager_ad2a8eb1139a5a25a6993887c55b3da4e}} +\index{monitor\+::\+Command\+Manager@{monitor\+::\+Command\+Manager}!````~Command\+Manager@{$\sim$\+Command\+Manager}} +\index{````~Command\+Manager@{$\sim$\+Command\+Manager}!monitor\+::\+Command\+Manager@{monitor\+::\+Command\+Manager}} +\subsubsection{$\sim$\+Command\+Manager()} +{\footnotesize\ttfamily monitor.\+Command\+Manager.$\sim$\+Command\+Manager (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}} + + + +Releases unmanaged resources and performs other cleanup operations before the T\+:monitor.\+Command\+Manager is reclaimed by garbage collection. + + + +Definition at line 86 of file Command\+Manager.\+cs. + + + +\subsection{Member Function Documentation} +\mbox{\label{classmonitor_1_1_command_manager_ab28b0e5a2641391e655aaaaa05a1fdf6}} +\index{monitor\+::\+Command\+Manager@{monitor\+::\+Command\+Manager}!Close@{Close}} +\index{Close@{Close}!monitor\+::\+Command\+Manager@{monitor\+::\+Command\+Manager}} +\subsubsection{Close()} +{\footnotesize\ttfamily void monitor.\+Command\+Manager.\+Close (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} + + + +Close connection to server + + + +Definition at line 115 of file Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_command_manager_a5afd16036cc3d0e69554f69dacad0bcc}} +\index{monitor\+::\+Command\+Manager@{monitor\+::\+Command\+Manager}!Command\+Received\+Event@{Command\+Received\+Event}} +\index{Command\+Received\+Event@{Command\+Received\+Event}!monitor\+::\+Command\+Manager@{monitor\+::\+Command\+Manager}} +\subsubsection{Command\+Received\+Event()} +{\footnotesize\ttfamily delegate void monitor.\+Command\+Manager.\+Command\+Received\+Event (\begin{DoxyParamCaption}\item[{string}]{msg, }\item[{byte [$\,$]}]{buffer }\end{DoxyParamCaption})} + + + +Callback for sending received data to upper level + +\mbox{\label{classmonitor_1_1_command_manager_a92e5d42afb61f29d9a4746b4446c2a65}} +\index{monitor\+::\+Command\+Manager@{monitor\+::\+Command\+Manager}!On\+Message\+Reception@{On\+Message\+Reception}} +\index{On\+Message\+Reception@{On\+Message\+Reception}!monitor\+::\+Command\+Manager@{monitor\+::\+Command\+Manager}} +\subsubsection{On\+Message\+Reception()} +{\footnotesize\ttfamily void monitor.\+Command\+Manager.\+On\+Message\+Reception (\begin{DoxyParamCaption}\item[{string}]{message, }\item[{byte [$\,$]}]{buffer }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}} + + + +Callback called by \doxyref{Client}{p.}{classmonitor_1_1_client} class after reception of new message + + +\begin{DoxyParams}{Parameters} +{\em message} & Message received from server\\ +\hline +{\em buffer} & Raw buffer reived from server\\ +\hline +\end{DoxyParams} + + +Definition at line 125 of file Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_command_manager_a2f91bb775ba25855be007886b994a5df}} +\index{monitor\+::\+Command\+Manager@{monitor\+::\+Command\+Manager}!On\+Message\+Timeout@{On\+Message\+Timeout}} +\index{On\+Message\+Timeout@{On\+Message\+Timeout}!monitor\+::\+Command\+Manager@{monitor\+::\+Command\+Manager}} +\subsubsection{On\+Message\+Timeout()} +{\footnotesize\ttfamily void monitor.\+Command\+Manager.\+On\+Message\+Timeout (\begin{DoxyParamCaption}\item[{object}]{sender, }\item[{System.\+Timers.\+Elapsed\+Event\+Args}]{e }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}} + + + +Callback called by stopwatch on timeout + + +\begin{DoxyParams}{Parameters} +{\em sender} & Sender object\\ +\hline +{\em e} & Information on elapsed condition\\ +\hline +\end{DoxyParams} + + +Definition at line 156 of file Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_command_manager_a7329cbf8008bcb8a0280aa7ffa6aa43c}} +\index{monitor\+::\+Command\+Manager@{monitor\+::\+Command\+Manager}!Open@{Open}} +\index{Open@{Open}!monitor\+::\+Command\+Manager@{monitor\+::\+Command\+Manager}} +\subsubsection{Open()\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}} +{\footnotesize\ttfamily bool monitor.\+Command\+Manager.\+Open (\begin{DoxyParamCaption}\item[{string}]{hostname }\end{DoxyParamCaption})} + + + +Open the specified hostname server, using default port number. + +\begin{DoxyReturn}{Returns} +true if connection succeded, false otherwise +\end{DoxyReturn} + +\begin{DoxyParams}{Parameters} +{\em hostname} & Hostname to connect to\\ +\hline +\end{DoxyParams} + + +Definition at line 96 of file Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_command_manager_a0a0054ee87d293577fa39af1fcd5ffee}} +\index{monitor\+::\+Command\+Manager@{monitor\+::\+Command\+Manager}!Open@{Open}} +\index{Open@{Open}!monitor\+::\+Command\+Manager@{monitor\+::\+Command\+Manager}} +\subsubsection{Open()\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}} +{\footnotesize\ttfamily bool monitor.\+Command\+Manager.\+Open (\begin{DoxyParamCaption}\item[{string}]{hostname, }\item[{int}]{port }\end{DoxyParamCaption})} + + + +Open connection to server \char`\"{}host\char`\"{}, with port number \char`\"{}port\char`\"{} + +\begin{DoxyReturn}{Returns} +true if connection succeded, false otherwise +\end{DoxyReturn} + +\begin{DoxyParams}{Parameters} +{\em hostname} & Hostname to connect to\\ +\hline +{\em port} & Port number for connection\\ +\hline +\end{DoxyParams} + + +Definition at line 107 of file Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_command_manager_a3cd1f2303e47e5148fd3e927a7957363}} +\index{monitor\+::\+Command\+Manager@{monitor\+::\+Command\+Manager}!Send\+Command@{Send\+Command}} +\index{Send\+Command@{Send\+Command}!monitor\+::\+Command\+Manager@{monitor\+::\+Command\+Manager}} +\subsubsection{Send\+Command()} +{\footnotesize\ttfamily \textbf{ Command\+Manager\+Status} monitor.\+Command\+Manager.\+Send\+Command (\begin{DoxyParamCaption}\item[{string}]{cmd, }\item[{out string}]{answer, }\item[{double}]{timeout }\end{DoxyParamCaption})} + + + +Sends a command to T\+CP server + +\begin{DoxyReturn}{Returns} +status that is part of Command\+Manager\+Status enumerate +\end{DoxyReturn} + +\begin{DoxyParams}{Parameters} +{\em cmd} & Command message to send to server\\ +\hline +{\em answer} & Answer from server, in case of acknowledge\\ +\hline +{\em timeout} & Timeout (ms) waiting an acknowledge, 0 if no acknowledge needed\\ +\hline +\end{DoxyParams} + + +Definition at line 171 of file Command\+Manager.\+cs. + + + +\subsection{Member Data Documentation} +\mbox{\label{classmonitor_1_1_command_manager_ab90d68a3d3a9b3935fa9f1a57e8dabfa}} +\index{monitor\+::\+Command\+Manager@{monitor\+::\+Command\+Manager}!command\+Received\+Event@{command\+Received\+Event}} +\index{command\+Received\+Event@{command\+Received\+Event}!monitor\+::\+Command\+Manager@{monitor\+::\+Command\+Manager}} +\subsubsection{command\+Received\+Event} +{\footnotesize\ttfamily \textbf{ Command\+Received\+Event} monitor.\+Command\+Manager.\+command\+Received\+Event = null} + + + +Definition at line 37 of file Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_command_manager_aea039cd0f99f5193c307b805077669db}} +\index{monitor\+::\+Command\+Manager@{monitor\+::\+Command\+Manager}!is\+Busy@{is\+Busy}} +\index{is\+Busy@{is\+Busy}!monitor\+::\+Command\+Manager@{monitor\+::\+Command\+Manager}} +\subsubsection{is\+Busy} +{\footnotesize\ttfamily bool monitor.\+Command\+Manager.\+is\+Busy = false\hspace{0.3cm}{\ttfamily [private]}} + + + +flag indicating command manager is currently busy waiting an acknowledge + + + +Definition at line 58 of file Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_command_manager_aa610e72e8f23f0d26388f204c848ed57}} +\index{monitor\+::\+Command\+Manager@{monitor\+::\+Command\+Manager}!message\+Received@{message\+Received}} +\index{message\+Received@{message\+Received}!monitor\+::\+Command\+Manager@{monitor\+::\+Command\+Manager}} +\subsubsection{message\+Received} +{\footnotesize\ttfamily string monitor.\+Command\+Manager.\+message\+Received = null\hspace{0.3cm}{\ttfamily [private]}} + + + +received message + + + +Definition at line 53 of file Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_command_manager_a0d27eb1a38efb01559f14a707ff86447}} +\index{monitor\+::\+Command\+Manager@{monitor\+::\+Command\+Manager}!wait\+Event@{wait\+Event}} +\index{wait\+Event@{wait\+Event}!monitor\+::\+Command\+Manager@{monitor\+::\+Command\+Manager}} +\subsubsection{wait\+Event} +{\footnotesize\ttfamily Manual\+Reset\+Event monitor.\+Command\+Manager.\+wait\+Event = new Manual\+Reset\+Event(false)\hspace{0.3cm}{\ttfamily [private]}} + + + +Definition at line 43 of file Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_command_manager_a39c2c03f93b309e65a45ac91c6eb39bd}} +\index{monitor\+::\+Command\+Manager@{monitor\+::\+Command\+Manager}!wait\+For\+Acknowledge@{wait\+For\+Acknowledge}} +\index{wait\+For\+Acknowledge@{wait\+For\+Acknowledge}!monitor\+::\+Command\+Manager@{monitor\+::\+Command\+Manager}} +\subsubsection{wait\+For\+Acknowledge} +{\footnotesize\ttfamily bool monitor.\+Command\+Manager.\+wait\+For\+Acknowledge = false\hspace{0.3cm}{\ttfamily [private]}} + + + +Flag to tell rogram to wait for an acknowledge from server + + + +Definition at line 48 of file Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_command_manager_a07639cd39445a379667a2450e78001b0}} +\index{monitor\+::\+Command\+Manager@{monitor\+::\+Command\+Manager}!wait\+Timer@{wait\+Timer}} +\index{wait\+Timer@{wait\+Timer}!monitor\+::\+Command\+Manager@{monitor\+::\+Command\+Manager}} +\subsubsection{wait\+Timer} +{\footnotesize\ttfamily System.\+Timers.\+Timer monitor.\+Command\+Manager.\+wait\+Timer = new System.\+Timers.\+Timer()\hspace{0.3cm}{\ttfamily [private]}} + + + +Timer for managing timeout + + + +Definition at line 42 of file Command\+Manager.\+cs. + + + +The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize} +\item +\textbf{ Command\+Manager.\+cs}\end{DoxyCompactItemize} diff --git a/software/monitor/monitor/docs/latex/classmonitor_1_1_command_manager__coll__graph.md5 b/software/monitor/monitor/docs/latex/classmonitor_1_1_command_manager__coll__graph.md5 new file mode 100644 index 0000000..d9c6022 --- /dev/null +++ b/software/monitor/monitor/docs/latex/classmonitor_1_1_command_manager__coll__graph.md5 @@ -0,0 +1 @@ +ebcba2452189df0d75d8e63f66acf3c6 \ No newline at end of file diff --git a/software/monitor/monitor/docs/latex/classmonitor_1_1_command_manager__coll__graph.pdf b/software/monitor/monitor/docs/latex/classmonitor_1_1_command_manager__coll__graph.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b79f7cca1d57585588b3975242a2433beca8c616 GIT binary patch literal 13111 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 Ur{CEHv2d`lAyHC_DTpKeKN~L00ssI2 literal 0 HcmV?d00001 diff --git a/software/monitor/monitor/docs/latex/classmonitor_1_1_destijl_command_list.tex b/software/monitor/monitor/docs/latex/classmonitor_1_1_destijl_command_list.tex new file mode 100644 index 0000000..020eb22 --- /dev/null +++ b/software/monitor/monitor/docs/latex/classmonitor_1_1_destijl_command_list.tex @@ -0,0 +1,267 @@ +\section{monitor.\+Destijl\+Command\+List Class Reference} +\label{classmonitor_1_1_destijl_command_list}\index{monitor.\+Destijl\+Command\+List@{monitor.\+Destijl\+Command\+List}} + + +Commands and options parameters used in Destijl project when communicating with server + + +\subsection*{Public Attributes} +\begin{DoxyCompactItemize} +\item +const string \textbf{ Header\+Mts\+Com\+Dmb} = \char`\"{}C\+OM\char`\"{} +\item +const string \textbf{ Header\+Mts\+Dmb\+Order} = \char`\"{}D\+MB\char`\"{} +\item +const string \textbf{ Header\+Mts\+Camera} = \char`\"{}C\+AM\char`\"{} +\item +const string \textbf{ Header\+Mts\+Message} = \char`\"{}M\+SG\char`\"{} +\item +const string \textbf{ Data\+Com\+Open} = \char`\"{}o\char`\"{} +\item +const string \textbf{ Data\+Com\+Close} = \char`\"{}C\char`\"{} +\item +const string \textbf{ Data\+Cam\+Open} = \char`\"{}A\char`\"{} +\item +const string \textbf{ Data\+Cam\+Close} = \char`\"{}I\char`\"{} +\item +const string \textbf{ Data\+Cam\+Ask\+Arena} = \char`\"{}y\char`\"{} +\item +const string \textbf{ Data\+Cam\+Arena\+Confirm} = \char`\"{}x\char`\"{} +\item +const string \textbf{ Data\+Cam\+Infirm} = \char`\"{}z\char`\"{} +\item +const string \textbf{ Data\+Cam\+Compute\+Position} = \char`\"{}p\char`\"{} +\item +const string \textbf{ Data\+Cam\+Stop\+Compute\+Position} = \char`\"{}s\char`\"{} +\item +const string \textbf{ Header\+Stm\+Ack} = \char`\"{}A\+CK\char`\"{} +\item +const string \textbf{ Header\+Stm\+No\+Ack} = \char`\"{}N\+AK\char`\"{} +\item +const string \textbf{ Header\+Stm\+Lost\+Dmb} = \char`\"{}L\+CD\char`\"{} +\item +const string \textbf{ Header\+Stm\+Image} = \char`\"{}I\+MG\char`\"{} +\item +const string \textbf{ Header\+Stm\+Pos} = \char`\"{}P\+OS\char`\"{} +\item +const string \textbf{ Header\+Stm\+Mes} = \char`\"{}M\+SG\char`\"{} +\item +const string \textbf{ Header\+Stm\+Bat} = \char`\"{}B\+AT\char`\"{} +\end{DoxyCompactItemize} + + +\subsection{Detailed Description} +Commands and options parameters used in Destijl project when communicating with server + + + +Definition at line 29 of file Destijl\+Command\+Manager.\+cs. + + + +\subsection{Member Data Documentation} +\mbox{\label{classmonitor_1_1_destijl_command_list_ad31b6758839a4c3b1b6ec4c71635e631}} +\index{monitor\+::\+Destijl\+Command\+List@{monitor\+::\+Destijl\+Command\+List}!Data\+Cam\+Arena\+Confirm@{Data\+Cam\+Arena\+Confirm}} +\index{Data\+Cam\+Arena\+Confirm@{Data\+Cam\+Arena\+Confirm}!monitor\+::\+Destijl\+Command\+List@{monitor\+::\+Destijl\+Command\+List}} +\subsubsection{Data\+Cam\+Arena\+Confirm} +{\footnotesize\ttfamily const string monitor.\+Destijl\+Command\+List.\+Data\+Cam\+Arena\+Confirm = \char`\"{}x\char`\"{}} + + + +Definition at line 42 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_list_aaaf85677671db1ef84fe67b2eb954f29}} +\index{monitor\+::\+Destijl\+Command\+List@{monitor\+::\+Destijl\+Command\+List}!Data\+Cam\+Ask\+Arena@{Data\+Cam\+Ask\+Arena}} +\index{Data\+Cam\+Ask\+Arena@{Data\+Cam\+Ask\+Arena}!monitor\+::\+Destijl\+Command\+List@{monitor\+::\+Destijl\+Command\+List}} +\subsubsection{Data\+Cam\+Ask\+Arena} +{\footnotesize\ttfamily const string monitor.\+Destijl\+Command\+List.\+Data\+Cam\+Ask\+Arena = \char`\"{}y\char`\"{}} + + + +Definition at line 41 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_list_a6f578f9d52dd2b50370177a5c03a2af7}} +\index{monitor\+::\+Destijl\+Command\+List@{monitor\+::\+Destijl\+Command\+List}!Data\+Cam\+Close@{Data\+Cam\+Close}} +\index{Data\+Cam\+Close@{Data\+Cam\+Close}!monitor\+::\+Destijl\+Command\+List@{monitor\+::\+Destijl\+Command\+List}} +\subsubsection{Data\+Cam\+Close} +{\footnotesize\ttfamily const string monitor.\+Destijl\+Command\+List.\+Data\+Cam\+Close = \char`\"{}I\char`\"{}} + + + +Definition at line 40 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_list_ab114adce60b63976d8304f2ad11b317a}} +\index{monitor\+::\+Destijl\+Command\+List@{monitor\+::\+Destijl\+Command\+List}!Data\+Cam\+Compute\+Position@{Data\+Cam\+Compute\+Position}} +\index{Data\+Cam\+Compute\+Position@{Data\+Cam\+Compute\+Position}!monitor\+::\+Destijl\+Command\+List@{monitor\+::\+Destijl\+Command\+List}} +\subsubsection{Data\+Cam\+Compute\+Position} +{\footnotesize\ttfamily const string monitor.\+Destijl\+Command\+List.\+Data\+Cam\+Compute\+Position = \char`\"{}p\char`\"{}} + + + +Definition at line 44 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_list_ad3985694a06148f2014cb346e8891cba}} +\index{monitor\+::\+Destijl\+Command\+List@{monitor\+::\+Destijl\+Command\+List}!Data\+Cam\+Infirm@{Data\+Cam\+Infirm}} +\index{Data\+Cam\+Infirm@{Data\+Cam\+Infirm}!monitor\+::\+Destijl\+Command\+List@{monitor\+::\+Destijl\+Command\+List}} +\subsubsection{Data\+Cam\+Infirm} +{\footnotesize\ttfamily const string monitor.\+Destijl\+Command\+List.\+Data\+Cam\+Infirm = \char`\"{}z\char`\"{}} + + + +Definition at line 43 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_list_a6380d1518931373bd0dfb84f888942e0}} +\index{monitor\+::\+Destijl\+Command\+List@{monitor\+::\+Destijl\+Command\+List}!Data\+Cam\+Open@{Data\+Cam\+Open}} +\index{Data\+Cam\+Open@{Data\+Cam\+Open}!monitor\+::\+Destijl\+Command\+List@{monitor\+::\+Destijl\+Command\+List}} +\subsubsection{Data\+Cam\+Open} +{\footnotesize\ttfamily const string monitor.\+Destijl\+Command\+List.\+Data\+Cam\+Open = \char`\"{}A\char`\"{}} + + + +Definition at line 39 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_list_ad09dd921c6c8cf8c7d90a2c0a05d4056}} +\index{monitor\+::\+Destijl\+Command\+List@{monitor\+::\+Destijl\+Command\+List}!Data\+Cam\+Stop\+Compute\+Position@{Data\+Cam\+Stop\+Compute\+Position}} +\index{Data\+Cam\+Stop\+Compute\+Position@{Data\+Cam\+Stop\+Compute\+Position}!monitor\+::\+Destijl\+Command\+List@{monitor\+::\+Destijl\+Command\+List}} +\subsubsection{Data\+Cam\+Stop\+Compute\+Position} +{\footnotesize\ttfamily const string monitor.\+Destijl\+Command\+List.\+Data\+Cam\+Stop\+Compute\+Position = \char`\"{}s\char`\"{}} + + + +Definition at line 45 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_list_ad97cbe948c71a4dc3fa95afbf9ca26d8}} +\index{monitor\+::\+Destijl\+Command\+List@{monitor\+::\+Destijl\+Command\+List}!Data\+Com\+Close@{Data\+Com\+Close}} +\index{Data\+Com\+Close@{Data\+Com\+Close}!monitor\+::\+Destijl\+Command\+List@{monitor\+::\+Destijl\+Command\+List}} +\subsubsection{Data\+Com\+Close} +{\footnotesize\ttfamily const string monitor.\+Destijl\+Command\+List.\+Data\+Com\+Close = \char`\"{}C\char`\"{}} + + + +Definition at line 37 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_list_a1bcde55da429bcf2c04ed6d0621e496f}} +\index{monitor\+::\+Destijl\+Command\+List@{monitor\+::\+Destijl\+Command\+List}!Data\+Com\+Open@{Data\+Com\+Open}} +\index{Data\+Com\+Open@{Data\+Com\+Open}!monitor\+::\+Destijl\+Command\+List@{monitor\+::\+Destijl\+Command\+List}} +\subsubsection{Data\+Com\+Open} +{\footnotesize\ttfamily const string monitor.\+Destijl\+Command\+List.\+Data\+Com\+Open = \char`\"{}o\char`\"{}} + + + +Definition at line 36 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_list_af570b0e8d14920402ce979778225ed68}} +\index{monitor\+::\+Destijl\+Command\+List@{monitor\+::\+Destijl\+Command\+List}!Header\+Mts\+Camera@{Header\+Mts\+Camera}} +\index{Header\+Mts\+Camera@{Header\+Mts\+Camera}!monitor\+::\+Destijl\+Command\+List@{monitor\+::\+Destijl\+Command\+List}} +\subsubsection{Header\+Mts\+Camera} +{\footnotesize\ttfamily const string monitor.\+Destijl\+Command\+List.\+Header\+Mts\+Camera = \char`\"{}C\+AM\char`\"{}} + + + +Definition at line 33 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_list_aa9fe4e71b7faec183ab64f4cf6ecd395}} +\index{monitor\+::\+Destijl\+Command\+List@{monitor\+::\+Destijl\+Command\+List}!Header\+Mts\+Com\+Dmb@{Header\+Mts\+Com\+Dmb}} +\index{Header\+Mts\+Com\+Dmb@{Header\+Mts\+Com\+Dmb}!monitor\+::\+Destijl\+Command\+List@{monitor\+::\+Destijl\+Command\+List}} +\subsubsection{Header\+Mts\+Com\+Dmb} +{\footnotesize\ttfamily const string monitor.\+Destijl\+Command\+List.\+Header\+Mts\+Com\+Dmb = \char`\"{}C\+OM\char`\"{}} + + + +Definition at line 31 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_list_adbcf7adab9f5e8ead971affbbc64178b}} +\index{monitor\+::\+Destijl\+Command\+List@{monitor\+::\+Destijl\+Command\+List}!Header\+Mts\+Dmb\+Order@{Header\+Mts\+Dmb\+Order}} +\index{Header\+Mts\+Dmb\+Order@{Header\+Mts\+Dmb\+Order}!monitor\+::\+Destijl\+Command\+List@{monitor\+::\+Destijl\+Command\+List}} +\subsubsection{Header\+Mts\+Dmb\+Order} +{\footnotesize\ttfamily const string monitor.\+Destijl\+Command\+List.\+Header\+Mts\+Dmb\+Order = \char`\"{}D\+MB\char`\"{}} + + + +Definition at line 32 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_list_acb283f1da96d8d522e3b28ca35187acd}} +\index{monitor\+::\+Destijl\+Command\+List@{monitor\+::\+Destijl\+Command\+List}!Header\+Mts\+Message@{Header\+Mts\+Message}} +\index{Header\+Mts\+Message@{Header\+Mts\+Message}!monitor\+::\+Destijl\+Command\+List@{monitor\+::\+Destijl\+Command\+List}} +\subsubsection{Header\+Mts\+Message} +{\footnotesize\ttfamily const string monitor.\+Destijl\+Command\+List.\+Header\+Mts\+Message = \char`\"{}M\+SG\char`\"{}} + + + +Definition at line 34 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_list_af494d7e1bddee8184873dc380a3066ba}} +\index{monitor\+::\+Destijl\+Command\+List@{monitor\+::\+Destijl\+Command\+List}!Header\+Stm\+Ack@{Header\+Stm\+Ack}} +\index{Header\+Stm\+Ack@{Header\+Stm\+Ack}!monitor\+::\+Destijl\+Command\+List@{monitor\+::\+Destijl\+Command\+List}} +\subsubsection{Header\+Stm\+Ack} +{\footnotesize\ttfamily const string monitor.\+Destijl\+Command\+List.\+Header\+Stm\+Ack = \char`\"{}A\+CK\char`\"{}} + + + +Definition at line 47 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_list_a88de91fa6abdc122245ceb26fc21fd33}} +\index{monitor\+::\+Destijl\+Command\+List@{monitor\+::\+Destijl\+Command\+List}!Header\+Stm\+Bat@{Header\+Stm\+Bat}} +\index{Header\+Stm\+Bat@{Header\+Stm\+Bat}!monitor\+::\+Destijl\+Command\+List@{monitor\+::\+Destijl\+Command\+List}} +\subsubsection{Header\+Stm\+Bat} +{\footnotesize\ttfamily const string monitor.\+Destijl\+Command\+List.\+Header\+Stm\+Bat = \char`\"{}B\+AT\char`\"{}} + + + +Definition at line 53 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_list_ae3ee8e0ecbb79faec9d24095d72cfbde}} +\index{monitor\+::\+Destijl\+Command\+List@{monitor\+::\+Destijl\+Command\+List}!Header\+Stm\+Image@{Header\+Stm\+Image}} +\index{Header\+Stm\+Image@{Header\+Stm\+Image}!monitor\+::\+Destijl\+Command\+List@{monitor\+::\+Destijl\+Command\+List}} +\subsubsection{Header\+Stm\+Image} +{\footnotesize\ttfamily const string monitor.\+Destijl\+Command\+List.\+Header\+Stm\+Image = \char`\"{}I\+MG\char`\"{}} + + + +Definition at line 50 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_list_a54e9ebd5e8f34ac596b84b56bb2403f7}} +\index{monitor\+::\+Destijl\+Command\+List@{monitor\+::\+Destijl\+Command\+List}!Header\+Stm\+Lost\+Dmb@{Header\+Stm\+Lost\+Dmb}} +\index{Header\+Stm\+Lost\+Dmb@{Header\+Stm\+Lost\+Dmb}!monitor\+::\+Destijl\+Command\+List@{monitor\+::\+Destijl\+Command\+List}} +\subsubsection{Header\+Stm\+Lost\+Dmb} +{\footnotesize\ttfamily const string monitor.\+Destijl\+Command\+List.\+Header\+Stm\+Lost\+Dmb = \char`\"{}L\+CD\char`\"{}} + + + +Definition at line 49 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_list_ad1fa4557b2d44dd888d8640f374c9f04}} +\index{monitor\+::\+Destijl\+Command\+List@{monitor\+::\+Destijl\+Command\+List}!Header\+Stm\+Mes@{Header\+Stm\+Mes}} +\index{Header\+Stm\+Mes@{Header\+Stm\+Mes}!monitor\+::\+Destijl\+Command\+List@{monitor\+::\+Destijl\+Command\+List}} +\subsubsection{Header\+Stm\+Mes} +{\footnotesize\ttfamily const string monitor.\+Destijl\+Command\+List.\+Header\+Stm\+Mes = \char`\"{}M\+SG\char`\"{}} + + + +Definition at line 52 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_list_ae3dc86c7e90bba409317e63cf1c85a39}} +\index{monitor\+::\+Destijl\+Command\+List@{monitor\+::\+Destijl\+Command\+List}!Header\+Stm\+No\+Ack@{Header\+Stm\+No\+Ack}} +\index{Header\+Stm\+No\+Ack@{Header\+Stm\+No\+Ack}!monitor\+::\+Destijl\+Command\+List@{monitor\+::\+Destijl\+Command\+List}} +\subsubsection{Header\+Stm\+No\+Ack} +{\footnotesize\ttfamily const string monitor.\+Destijl\+Command\+List.\+Header\+Stm\+No\+Ack = \char`\"{}N\+AK\char`\"{}} + + + +Definition at line 48 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_list_abf99a718161a5a9017d7011cea429ec0}} +\index{monitor\+::\+Destijl\+Command\+List@{monitor\+::\+Destijl\+Command\+List}!Header\+Stm\+Pos@{Header\+Stm\+Pos}} +\index{Header\+Stm\+Pos@{Header\+Stm\+Pos}!monitor\+::\+Destijl\+Command\+List@{monitor\+::\+Destijl\+Command\+List}} +\subsubsection{Header\+Stm\+Pos} +{\footnotesize\ttfamily const string monitor.\+Destijl\+Command\+List.\+Header\+Stm\+Pos = \char`\"{}P\+OS\char`\"{}} + + + +Definition at line 51 of file Destijl\+Command\+Manager.\+cs. + + + +The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize} +\item +\textbf{ Destijl\+Command\+Manager.\+cs}\end{DoxyCompactItemize} diff --git a/software/monitor/monitor/docs/latex/classmonitor_1_1_destijl_command_manager.tex b/software/monitor/monitor/docs/latex/classmonitor_1_1_destijl_command_manager.tex new file mode 100644 index 0000000..eb41346 --- /dev/null +++ b/software/monitor/monitor/docs/latex/classmonitor_1_1_destijl_command_manager.tex @@ -0,0 +1,730 @@ +\section{monitor.\+Destijl\+Command\+Manager Class Reference} +\label{classmonitor_1_1_destijl_command_manager}\index{monitor.\+Destijl\+Command\+Manager@{monitor.\+Destijl\+Command\+Manager}} + + +Specialization class for command manager, which implemnent destijl protocol between monitor and server + + + + +Collaboration diagram for monitor.\+Destijl\+Command\+Manager\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=245pt]{classmonitor_1_1_destijl_command_manager__coll__graph} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{DoxyCompactItemize} +\item +enum \textbf{ Command\+Status} \{ \newline +\textbf{ Command\+Status.\+Success}, +\textbf{ Command\+Status.\+Rejected}, +\textbf{ Command\+Status.\+Invalid\+Answer}, +\textbf{ Command\+Status.\+Busy}, +\newline +\textbf{ Command\+Status.\+Communication\+Lost\+With\+Robot}, +\textbf{ Command\+Status.\+Communication\+Lost\+With\+Server} + \}\begin{DoxyCompactList}\small\item\em List of available return status \end{DoxyCompactList} +\end{DoxyCompactItemize} +\subsection*{Public Member Functions} +\begin{DoxyCompactItemize} +\item +delegate void \textbf{ Command\+Received\+Event} (string header, string data, byte[$\,$] buffer) +\begin{DoxyCompactList}\small\item\em Callback for sending received data to application level \end{DoxyCompactList}\item +\textbf{ Destijl\+Command\+Manager} (\textbf{ Command\+Received\+Event} callback) +\begin{DoxyCompactList}\small\item\em Initializes a new instance of the \doxyref{monitor.\+Destijl\+Command\+Manager}{p.}{classmonitor_1_1_destijl_command_manager} class. \end{DoxyCompactList}\item +bool \textbf{ Open} (string hostname) +\begin{DoxyCompactList}\small\item\em Open the specified hostname server, using default port number. \end{DoxyCompactList}\item +bool \textbf{ Open} (string hostname, int port) +\begin{DoxyCompactList}\small\item\em Open connection to server \char`\"{}host\char`\"{}, with port number \char`\"{}port\char`\"{} \end{DoxyCompactList}\item +void \textbf{ Close} () +\begin{DoxyCompactList}\small\item\em Close connection to server \end{DoxyCompactList}\item +\textbf{ Command\+Status} \textbf{ Robot\+Open\+Com} () +\begin{DoxyCompactList}\small\item\em Open communication with robot and wait acknowledge \end{DoxyCompactList}\item +\textbf{ Command\+Status} \textbf{ Robot\+Close\+Com} () +\begin{DoxyCompactList}\small\item\em Close communication with robot and wait acknowledge \end{DoxyCompactList}\item +\textbf{ Command\+Status} \textbf{ Robot\+Ping} () +\begin{DoxyCompactList}\small\item\em Ping the robot. \end{DoxyCompactList}\item +\textbf{ Command\+Status} \textbf{ Robot\+Reset} () +\begin{DoxyCompactList}\small\item\em Reset robot and let it in idle mode \end{DoxyCompactList}\item +\textbf{ Command\+Status} \textbf{ Robot\+Start\+With\+Watchdog} () +\begin{DoxyCompactList}\small\item\em Start robot, enabling watchdog \end{DoxyCompactList}\item +\textbf{ Command\+Status} \textbf{ Robot\+Start\+Without\+Watchdog} () +\begin{DoxyCompactList}\small\item\em Start robot, without enabling watchdog \end{DoxyCompactList}\item +\textbf{ Command\+Status} \textbf{ Robot\+Move} (int distance) +\begin{DoxyCompactList}\small\item\em Move robot forward or backward, for a distance expressed in millimeter \end{DoxyCompactList}\item +\textbf{ Command\+Status} \textbf{ Robot\+Turn} (int angle) +\begin{DoxyCompactList}\small\item\em Make robot turn left or right, for a given angle \end{DoxyCompactList}\item +\textbf{ Command\+Status} \textbf{ Robot\+Get\+Battery} () +\begin{DoxyCompactList}\small\item\em Request robot battery level \end{DoxyCompactList}\item +\textbf{ Command\+Status} \textbf{ Robot\+Get\+Version} (out string version) +\begin{DoxyCompactList}\small\item\em Request robot firmware version \end{DoxyCompactList}\item +\textbf{ Command\+Status} \textbf{ Robot\+Power\+Off} () +\begin{DoxyCompactList}\small\item\em Power off robot \end{DoxyCompactList}\item +\textbf{ Command\+Status} \textbf{ Camera\+Open} () +\begin{DoxyCompactList}\small\item\em Open camera on remote device \end{DoxyCompactList}\item +\textbf{ Command\+Status} \textbf{ Camera\+Close} () +\begin{DoxyCompactList}\small\item\em Close camera on remote device \end{DoxyCompactList}\item +\textbf{ Command\+Status} \textbf{ Camera\+Ask\+Arena} () +\begin{DoxyCompactList}\small\item\em Request still image of detected arena \end{DoxyCompactList}\item +\textbf{ Command\+Status} \textbf{ Camera\+Arena\+Confirm} () +\begin{DoxyCompactList}\small\item\em Confirm arena detection (after requesting image of detected arena, using Camera\+Ask\+Arena \end{DoxyCompactList}\item +\textbf{ Command\+Status} \textbf{ Camera\+Arena\+Infirm} () +\begin{DoxyCompactList}\small\item\em Reject arena detected (after requesting image of detected arena, using Camera\+Ask\+Arena \end{DoxyCompactList}\item +\textbf{ Command\+Status} \textbf{ Camera\+Compute\+Position} () +\begin{DoxyCompactList}\small\item\em Request robot position computing \end{DoxyCompactList}\item +\textbf{ Command\+Status} \textbf{ Camera\+Stop\+Compute\+Position} () +\begin{DoxyCompactList}\small\item\em Stop robot position computing \end{DoxyCompactList}\end{DoxyCompactItemize} +\subsection*{Public Attributes} +\begin{DoxyCompactItemize} +\item +\textbf{ Command\+Received\+Event} \textbf{ command\+Received\+Event} = null +\item +double \textbf{ timeout} = 100 +\begin{DoxyCompactList}\small\item\em Timeout used for command with acknowledge \end{DoxyCompactList}\end{DoxyCompactItemize} +\subsection*{Private Member Functions} +\begin{DoxyCompactItemize} +\item +\textbf{ $\sim$\+Destijl\+Command\+Manager} () +\begin{DoxyCompactList}\small\item\em Releases unmanaged resources and performs other cleanup operations before the \doxyref{monitor.\+Destijl\+Command\+Manager}{p.}{classmonitor_1_1_destijl_command_manager} is reclaimed by garbage collection. \end{DoxyCompactList}\item +void \textbf{ On\+Command\+Received} (string msg, byte[$\,$] buffer) +\begin{DoxyCompactList}\small\item\em Callback used for receiving data from lower layer (\doxyref{Command\+Manager}{p.}{classmonitor_1_1_command_manager} class) \end{DoxyCompactList}\item +string \textbf{ Create\+Command} (string header, string data) +\begin{DoxyCompactList}\small\item\em Creates the command to send to server, based on header and data provided \end{DoxyCompactList}\item +\textbf{ Command\+Status} \textbf{ Decode\+Status} (\textbf{ Command\+Manager.\+Command\+Manager\+Status} local\+Status, string answer) +\begin{DoxyCompactList}\small\item\em Provide \doxyref{Destijl\+Command\+Manager.\+Command\+Status}{p.}{classmonitor_1_1_destijl_command_manager_a9cb23e7493a32872ac808f3b63200fb0} based on status received by \doxyref{Command\+Manager.\+Send\+Command}{p.}{classmonitor_1_1_command_manager_a3cd1f2303e47e5148fd3e927a7957363} and answer string \end{DoxyCompactList}\end{DoxyCompactItemize} +\subsection*{Private Attributes} +\begin{DoxyCompactItemize} +\item +\textbf{ Command\+Manager} \textbf{ command\+Manager} = null +\begin{DoxyCompactList}\small\item\em Command Manager object \end{DoxyCompactList}\item +string \textbf{ received\+Header} = null +\begin{DoxyCompactList}\small\item\em Part of received message corresponding to command header \end{DoxyCompactList}\item +string \textbf{ received\+Data} = null +\begin{DoxyCompactList}\small\item\em Part of received message corresponding to command data \end{DoxyCompactList}\end{DoxyCompactItemize} + + +\subsection{Detailed Description} +Specialization class for command manager, which implemnent destijl protocol between monitor and server + + + +Definition at line 76 of file Destijl\+Command\+Manager.\+cs. + + + +\subsection{Member Enumeration Documentation} +\mbox{\label{classmonitor_1_1_destijl_command_manager_a9cb23e7493a32872ac808f3b63200fb0}} +\index{monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}!Command\+Status@{Command\+Status}} +\index{Command\+Status@{Command\+Status}!monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}} +\subsubsection{Command\+Status} +{\footnotesize\ttfamily enum \textbf{ monitor.\+Destijl\+Command\+Manager.\+Command\+Status}\hspace{0.3cm}{\ttfamily [strong]}} + + + +List of available return status + +\begin{DoxyEnumFields}{Enumerator} +\raisebox{\heightof{T}}[0pt][0pt]{\index{Success@{Success}!monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}}\index{monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}!Success@{Success}}}\mbox{\label{classmonitor_1_1_destijl_command_manager_a9cb23e7493a32872ac808f3b63200fb0a505a83f220c02df2f85c3810cd9ceb38}} +Success&\\ +\hline + +\raisebox{\heightof{T}}[0pt][0pt]{\index{Rejected@{Rejected}!monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}}\index{monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}!Rejected@{Rejected}}}\mbox{\label{classmonitor_1_1_destijl_command_manager_a9cb23e7493a32872ac808f3b63200fb0ad37b1f6c0512e2118cee17fea015b699}} +Rejected&\\ +\hline + +\raisebox{\heightof{T}}[0pt][0pt]{\index{Invalid\+Answer@{Invalid\+Answer}!monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}}\index{monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}!Invalid\+Answer@{Invalid\+Answer}}}\mbox{\label{classmonitor_1_1_destijl_command_manager_a9cb23e7493a32872ac808f3b63200fb0ad410f0b6f9dc2f2b271f9cf2fc78eb34}} +Invalid\+Answer&\\ +\hline + +\raisebox{\heightof{T}}[0pt][0pt]{\index{Busy@{Busy}!monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}}\index{monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}!Busy@{Busy}}}\mbox{\label{classmonitor_1_1_destijl_command_manager_a9cb23e7493a32872ac808f3b63200fb0ad8a942ef2b04672adfafef0ad817a407}} +Busy&\\ +\hline + +\raisebox{\heightof{T}}[0pt][0pt]{\index{Communication\+Lost\+With\+Robot@{Communication\+Lost\+With\+Robot}!monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}}\index{monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}!Communication\+Lost\+With\+Robot@{Communication\+Lost\+With\+Robot}}}\mbox{\label{classmonitor_1_1_destijl_command_manager_a9cb23e7493a32872ac808f3b63200fb0a37039bce065223d632b6974daa612656}} +Communication\+Lost\+With\+Robot&\\ +\hline + +\raisebox{\heightof{T}}[0pt][0pt]{\index{Communication\+Lost\+With\+Server@{Communication\+Lost\+With\+Server}!monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}}\index{monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}!Communication\+Lost\+With\+Server@{Communication\+Lost\+With\+Server}}}\mbox{\label{classmonitor_1_1_destijl_command_manager_a9cb23e7493a32872ac808f3b63200fb0ae7009a5c717d5d4d361433a9915e697e}} +Communication\+Lost\+With\+Server&\\ +\hline + +\end{DoxyEnumFields} + + +Definition at line 107 of file Destijl\+Command\+Manager.\+cs. + + + +\subsection{Constructor \& Destructor Documentation} +\mbox{\label{classmonitor_1_1_destijl_command_manager_a78bf0be922afbd9c5f8f4115fa83ad47}} +\index{monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}!Destijl\+Command\+Manager@{Destijl\+Command\+Manager}} +\index{Destijl\+Command\+Manager@{Destijl\+Command\+Manager}!monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}} +\subsubsection{Destijl\+Command\+Manager()} +{\footnotesize\ttfamily monitor.\+Destijl\+Command\+Manager.\+Destijl\+Command\+Manager (\begin{DoxyParamCaption}\item[{\textbf{ Command\+Received\+Event}}]{callback }\end{DoxyParamCaption})} + + + +Initializes a new instance of the \doxyref{monitor.\+Destijl\+Command\+Manager}{p.}{classmonitor_1_1_destijl_command_manager} class. + + +\begin{DoxyParams}{Parameters} +{\em callback} & Callback reference for reception of data\\ +\hline +\end{DoxyParams} + + +Definition at line 121 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_manager_abc51dc980d7ba7e59a571e579cb626b9}} +\index{monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}!````~Destijl\+Command\+Manager@{$\sim$\+Destijl\+Command\+Manager}} +\index{````~Destijl\+Command\+Manager@{$\sim$\+Destijl\+Command\+Manager}!monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}} +\subsubsection{$\sim$\+Destijl\+Command\+Manager()} +{\footnotesize\ttfamily monitor.\+Destijl\+Command\+Manager.$\sim$\+Destijl\+Command\+Manager (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}} + + + +Releases unmanaged resources and performs other cleanup operations before the \doxyref{monitor.\+Destijl\+Command\+Manager}{p.}{classmonitor_1_1_destijl_command_manager} is reclaimed by garbage collection. + + + +Definition at line 131 of file Destijl\+Command\+Manager.\+cs. + + + +\subsection{Member Function Documentation} +\mbox{\label{classmonitor_1_1_destijl_command_manager_ac58ed9c19d8c9ed547c35fb96a983668}} +\index{monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}!Camera\+Arena\+Confirm@{Camera\+Arena\+Confirm}} +\index{Camera\+Arena\+Confirm@{Camera\+Arena\+Confirm}!monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}} +\subsubsection{Camera\+Arena\+Confirm()} +{\footnotesize\ttfamily \textbf{ Command\+Status} monitor.\+Destijl\+Command\+Manager.\+Camera\+Arena\+Confirm (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} + + + +Confirm arena detection (after requesting image of detected arena, using Camera\+Ask\+Arena + +\begin{DoxyReturn}{Returns} +Command status (see Decode\+Status) +\end{DoxyReturn} + + +Definition at line 492 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_manager_a614be7a565a3a10308f20b073b40383f}} +\index{monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}!Camera\+Arena\+Infirm@{Camera\+Arena\+Infirm}} +\index{Camera\+Arena\+Infirm@{Camera\+Arena\+Infirm}!monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}} +\subsubsection{Camera\+Arena\+Infirm()} +{\footnotesize\ttfamily \textbf{ Command\+Status} monitor.\+Destijl\+Command\+Manager.\+Camera\+Arena\+Infirm (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} + + + +Reject arena detected (after requesting image of detected arena, using Camera\+Ask\+Arena + +\begin{DoxyReturn}{Returns} +Command status (see Decode\+Status) +\end{DoxyReturn} + + +Definition at line 509 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_manager_a8d178480fc09d474760eae995c9aa096}} +\index{monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}!Camera\+Ask\+Arena@{Camera\+Ask\+Arena}} +\index{Camera\+Ask\+Arena@{Camera\+Ask\+Arena}!monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}} +\subsubsection{Camera\+Ask\+Arena()} +{\footnotesize\ttfamily \textbf{ Command\+Status} monitor.\+Destijl\+Command\+Manager.\+Camera\+Ask\+Arena (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} + + + +Request still image of detected arena + +\begin{DoxyReturn}{Returns} +Command status (see Decode\+Status) +\end{DoxyReturn} + + +Definition at line 475 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_manager_a94b085d9de512cd7e80bcefd516d460c}} +\index{monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}!Camera\+Close@{Camera\+Close}} +\index{Camera\+Close@{Camera\+Close}!monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}} +\subsubsection{Camera\+Close()} +{\footnotesize\ttfamily \textbf{ Command\+Status} monitor.\+Destijl\+Command\+Manager.\+Camera\+Close (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} + + + +Close camera on remote device + +\begin{DoxyReturn}{Returns} +Command status (see Decode\+Status) +\end{DoxyReturn} + + +Definition at line 458 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_manager_ad04df7759d2698334a410fe32b78e21e}} +\index{monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}!Camera\+Compute\+Position@{Camera\+Compute\+Position}} +\index{Camera\+Compute\+Position@{Camera\+Compute\+Position}!monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}} +\subsubsection{Camera\+Compute\+Position()} +{\footnotesize\ttfamily \textbf{ Command\+Status} monitor.\+Destijl\+Command\+Manager.\+Camera\+Compute\+Position (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} + + + +Request robot position computing + +\begin{DoxyReturn}{Returns} +Command status (see Decode\+Status) +\end{DoxyReturn} + + +Definition at line 526 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_manager_a292d7e2961ff31a80d9abf79b7b41126}} +\index{monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}!Camera\+Open@{Camera\+Open}} +\index{Camera\+Open@{Camera\+Open}!monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}} +\subsubsection{Camera\+Open()} +{\footnotesize\ttfamily \textbf{ Command\+Status} monitor.\+Destijl\+Command\+Manager.\+Camera\+Open (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} + + + +Open camera on remote device + +\begin{DoxyReturn}{Returns} +Command status (see Decode\+Status) +\end{DoxyReturn} + + +Definition at line 441 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_manager_a928f987f8f5f12135614678585ab2726}} +\index{monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}!Camera\+Stop\+Compute\+Position@{Camera\+Stop\+Compute\+Position}} +\index{Camera\+Stop\+Compute\+Position@{Camera\+Stop\+Compute\+Position}!monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}} +\subsubsection{Camera\+Stop\+Compute\+Position()} +{\footnotesize\ttfamily \textbf{ Command\+Status} monitor.\+Destijl\+Command\+Manager.\+Camera\+Stop\+Compute\+Position (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} + + + +Stop robot position computing + +\begin{DoxyReturn}{Returns} +Command status (see Decode\+Status) +\end{DoxyReturn} + + +Definition at line 543 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_manager_af1f57d8e3e980322e37da2cd3b61d1d7}} +\index{monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}!Close@{Close}} +\index{Close@{Close}!monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}} +\subsubsection{Close()} +{\footnotesize\ttfamily void monitor.\+Destijl\+Command\+Manager.\+Close (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} + + + +Close connection to server + + + +Definition at line 183 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_manager_acc08ece6a89e842188364226299b3d43}} +\index{monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}!Command\+Received\+Event@{Command\+Received\+Event}} +\index{Command\+Received\+Event@{Command\+Received\+Event}!monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}} +\subsubsection{Command\+Received\+Event()} +{\footnotesize\ttfamily delegate void monitor.\+Destijl\+Command\+Manager.\+Command\+Received\+Event (\begin{DoxyParamCaption}\item[{string}]{header, }\item[{string}]{data, }\item[{byte [$\,$]}]{buffer }\end{DoxyParamCaption})} + + + +Callback for sending received data to application level + +\mbox{\label{classmonitor_1_1_destijl_command_manager_a47eb72ec1ae43505966bc5cf09c79e58}} +\index{monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}!Create\+Command@{Create\+Command}} +\index{Create\+Command@{Create\+Command}!monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}} +\subsubsection{Create\+Command()} +{\footnotesize\ttfamily string monitor.\+Destijl\+Command\+Manager.\+Create\+Command (\begin{DoxyParamCaption}\item[{string}]{header, }\item[{string}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}} + + + +Creates the command to send to server, based on header and data provided + +\begin{DoxyReturn}{Returns} +The command string +\end{DoxyReturn} + +\begin{DoxyParams}{Parameters} +{\em header} & Header part of the command\\ +\hline +{\em data} & Data part of the command\\ +\hline +\end{DoxyParams} + + +Definition at line 194 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_manager_a00c3fb9f163c4d9025b356a5a7e74012}} +\index{monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}!Decode\+Status@{Decode\+Status}} +\index{Decode\+Status@{Decode\+Status}!monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}} +\subsubsection{Decode\+Status()} +{\footnotesize\ttfamily \textbf{ Command\+Status} monitor.\+Destijl\+Command\+Manager.\+Decode\+Status (\begin{DoxyParamCaption}\item[{\textbf{ Command\+Manager.\+Command\+Manager\+Status}}]{local\+Status, }\item[{string}]{answer }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}} + + + +Provide \doxyref{Destijl\+Command\+Manager.\+Command\+Status}{p.}{classmonitor_1_1_destijl_command_manager_a9cb23e7493a32872ac808f3b63200fb0} based on status received by \doxyref{Command\+Manager.\+Send\+Command}{p.}{classmonitor_1_1_command_manager_a3cd1f2303e47e5148fd3e927a7957363} and answer string + +\begin{DoxyReturn}{Returns} +Status compatible with \doxyref{Destijl\+Command\+Manager.\+Command\+Status}{p.}{classmonitor_1_1_destijl_command_manager_a9cb23e7493a32872ac808f3b63200fb0} type +\end{DoxyReturn} + +\begin{DoxyParams}{Parameters} +{\em local\+Status} & Status provided by \doxyref{Command\+Manager.\+Send\+Command}{p.}{classmonitor_1_1_command_manager_a3cd1f2303e47e5148fd3e927a7957363}\\ +\hline +{\em answer} & Answer provided by \doxyref{Command\+Manager.\+Send\+Command}{p.}{classmonitor_1_1_command_manager_a3cd1f2303e47e5148fd3e927a7957363}\\ +\hline +\end{DoxyParams} + + +Definition at line 205 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_manager_ab83dbda4196240c242a5ac101901bb19}} +\index{monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}!On\+Command\+Received@{On\+Command\+Received}} +\index{On\+Command\+Received@{On\+Command\+Received}!monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}} +\subsubsection{On\+Command\+Received()} +{\footnotesize\ttfamily void monitor.\+Destijl\+Command\+Manager.\+On\+Command\+Received (\begin{DoxyParamCaption}\item[{string}]{msg, }\item[{byte [$\,$]}]{buffer }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}} + + + +Callback used for receiving data from lower layer (\doxyref{Command\+Manager}{p.}{classmonitor_1_1_command_manager} class) + + +\begin{DoxyParams}{Parameters} +{\em msg} & String containing received message\\ +\hline +{\em buffer} & Raw buffer to be used when data are not in ascii format (image for example)\\ +\hline +\end{DoxyParams} + + +Definition at line 141 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_manager_a5dd6b75386a554c2f026eee787477bb0}} +\index{monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}!Open@{Open}} +\index{Open@{Open}!monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}} +\subsubsection{Open()\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}} +{\footnotesize\ttfamily bool monitor.\+Destijl\+Command\+Manager.\+Open (\begin{DoxyParamCaption}\item[{string}]{hostname }\end{DoxyParamCaption})} + + + +Open the specified hostname server, using default port number. + +\begin{DoxyReturn}{Returns} +true if connection succeded, false otherwise +\end{DoxyReturn} + +\begin{DoxyParams}{Parameters} +{\em hostname} & Hostname to connect to\\ +\hline +\end{DoxyParams} + + +Definition at line 163 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_manager_a842300511efb20783c271764ee0e3336}} +\index{monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}!Open@{Open}} +\index{Open@{Open}!monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}} +\subsubsection{Open()\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}} +{\footnotesize\ttfamily bool monitor.\+Destijl\+Command\+Manager.\+Open (\begin{DoxyParamCaption}\item[{string}]{hostname, }\item[{int}]{port }\end{DoxyParamCaption})} + + + +Open connection to server \char`\"{}host\char`\"{}, with port number \char`\"{}port\char`\"{} + +\begin{DoxyReturn}{Returns} +true if connection succeded, false otherwise +\end{DoxyReturn} + +\begin{DoxyParams}{Parameters} +{\em hostname} & Hostname to connect to\\ +\hline +{\em port} & Port number for connection\\ +\hline +\end{DoxyParams} + + +Definition at line 174 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_manager_a0139bec493c965670226381f2ba63a23}} +\index{monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}!Robot\+Close\+Com@{Robot\+Close\+Com}} +\index{Robot\+Close\+Com@{Robot\+Close\+Com}!monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}} +\subsubsection{Robot\+Close\+Com()} +{\footnotesize\ttfamily \textbf{ Command\+Status} monitor.\+Destijl\+Command\+Manager.\+Robot\+Close\+Com (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} + + + +Close communication with robot and wait acknowledge + +\begin{DoxyReturn}{Returns} +Command status (see Decode\+Status) +\end{DoxyReturn} + + +Definition at line 251 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_manager_a2ec8021340de939318ace65b8462b930}} +\index{monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}!Robot\+Get\+Battery@{Robot\+Get\+Battery}} +\index{Robot\+Get\+Battery@{Robot\+Get\+Battery}!monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}} +\subsubsection{Robot\+Get\+Battery()} +{\footnotesize\ttfamily \textbf{ Command\+Status} monitor.\+Destijl\+Command\+Manager.\+Robot\+Get\+Battery (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} + + + +Request robot battery level + +\begin{DoxyReturn}{Returns} +Command status (see Decode\+Status) +\end{DoxyReturn} + + +Definition at line 372 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_manager_a7ddd552ed82382a09b4af075c34fb989}} +\index{monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}!Robot\+Get\+Version@{Robot\+Get\+Version}} +\index{Robot\+Get\+Version@{Robot\+Get\+Version}!monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}} +\subsubsection{Robot\+Get\+Version()} +{\footnotesize\ttfamily \textbf{ Command\+Status} monitor.\+Destijl\+Command\+Manager.\+Robot\+Get\+Version (\begin{DoxyParamCaption}\item[{out string}]{version }\end{DoxyParamCaption})} + + + +Request robot firmware version + +\begin{DoxyReturn}{Returns} +Command status (see Decode\+Status) +\end{DoxyReturn} + +\begin{DoxyParams}{Parameters} +{\em version} & todo\\ +\hline +\end{DoxyParams} + + +Definition at line 390 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_manager_a5976fe792e270c63bd9f0f4c792df129}} +\index{monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}!Robot\+Move@{Robot\+Move}} +\index{Robot\+Move@{Robot\+Move}!monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}} +\subsubsection{Robot\+Move()} +{\footnotesize\ttfamily \textbf{ Command\+Status} monitor.\+Destijl\+Command\+Manager.\+Robot\+Move (\begin{DoxyParamCaption}\item[{int}]{distance }\end{DoxyParamCaption})} + + + +Move robot forward or backward, for a distance expressed in millimeter + +\begin{DoxyReturn}{Returns} +Command status (see Decode\+Status) +\end{DoxyReturn} + +\begin{DoxyParams}{Parameters} +{\em distance} & Distance of mouvment, in millimeter\\ +\hline +\end{DoxyParams} + + +Definition at line 337 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_manager_aa1440a571e6aaf11203b4e4a4ed116d5}} +\index{monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}!Robot\+Open\+Com@{Robot\+Open\+Com}} +\index{Robot\+Open\+Com@{Robot\+Open\+Com}!monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}} +\subsubsection{Robot\+Open\+Com()} +{\footnotesize\ttfamily \textbf{ Command\+Status} monitor.\+Destijl\+Command\+Manager.\+Robot\+Open\+Com (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} + + + +Open communication with robot and wait acknowledge + +\begin{DoxyReturn}{Returns} +Command status (see Decode\+Status) +\end{DoxyReturn} + + +Definition at line 234 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_manager_ae1af16558213c3830ea3006e8e8c5e28}} +\index{monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}!Robot\+Ping@{Robot\+Ping}} +\index{Robot\+Ping@{Robot\+Ping}!monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}} +\subsubsection{Robot\+Ping()} +{\footnotesize\ttfamily \textbf{ Command\+Status} monitor.\+Destijl\+Command\+Manager.\+Robot\+Ping (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} + + + +Ping the robot. + +\begin{DoxyReturn}{Returns} +Command status (see Decode\+Status) +\end{DoxyReturn} + + +Definition at line 268 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_manager_acb242a71fa40d4001dc1bc31d5bdc53f}} +\index{monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}!Robot\+Power\+Off@{Robot\+Power\+Off}} +\index{Robot\+Power\+Off@{Robot\+Power\+Off}!monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}} +\subsubsection{Robot\+Power\+Off()} +{\footnotesize\ttfamily \textbf{ Command\+Status} monitor.\+Destijl\+Command\+Manager.\+Robot\+Power\+Off (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} + + + +Power off robot + +\begin{DoxyReturn}{Returns} +Command status (see Decode\+Status) +\end{DoxyReturn} + + +Definition at line 424 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_manager_abe223aa12456e3f1c2519e9c379d891a}} +\index{monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}!Robot\+Reset@{Robot\+Reset}} +\index{Robot\+Reset@{Robot\+Reset}!monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}} +\subsubsection{Robot\+Reset()} +{\footnotesize\ttfamily \textbf{ Command\+Status} monitor.\+Destijl\+Command\+Manager.\+Robot\+Reset (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} + + + +Reset robot and let it in idle mode + +\begin{DoxyReturn}{Returns} +Command status (see Decode\+Status) +\end{DoxyReturn} + + +Definition at line 285 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_manager_a0c964baa3ecd4ff9d19857061413938b}} +\index{monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}!Robot\+Start\+Without\+Watchdog@{Robot\+Start\+Without\+Watchdog}} +\index{Robot\+Start\+Without\+Watchdog@{Robot\+Start\+Without\+Watchdog}!monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}} +\subsubsection{Robot\+Start\+Without\+Watchdog()} +{\footnotesize\ttfamily \textbf{ Command\+Status} monitor.\+Destijl\+Command\+Manager.\+Robot\+Start\+Without\+Watchdog (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} + + + +Start robot, without enabling watchdog + +\begin{DoxyReturn}{Returns} +Command status (see Decode\+Status) +\end{DoxyReturn} + + +Definition at line 319 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_manager_ade46aceeb79556e31fe632e9602e1636}} +\index{monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}!Robot\+Start\+With\+Watchdog@{Robot\+Start\+With\+Watchdog}} +\index{Robot\+Start\+With\+Watchdog@{Robot\+Start\+With\+Watchdog}!monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}} +\subsubsection{Robot\+Start\+With\+Watchdog()} +{\footnotesize\ttfamily \textbf{ Command\+Status} monitor.\+Destijl\+Command\+Manager.\+Robot\+Start\+With\+Watchdog (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} + + + +Start robot, enabling watchdog + +\begin{DoxyReturn}{Returns} +Command status (see Decode\+Status) +\end{DoxyReturn} + + +Definition at line 302 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_manager_a3f7ee6f1803cfb8b2eb4290f9e9acced}} +\index{monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}!Robot\+Turn@{Robot\+Turn}} +\index{Robot\+Turn@{Robot\+Turn}!monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}} +\subsubsection{Robot\+Turn()} +{\footnotesize\ttfamily \textbf{ Command\+Status} monitor.\+Destijl\+Command\+Manager.\+Robot\+Turn (\begin{DoxyParamCaption}\item[{int}]{angle }\end{DoxyParamCaption})} + + + +Make robot turn left or right, for a given angle + +\begin{DoxyReturn}{Returns} +Command status (see Decode\+Status) +\end{DoxyReturn} + +\begin{DoxyParams}{Parameters} +{\em angle} & Angle of turn, in degree (negative for left, positive for right)\\ +\hline +\end{DoxyParams} + + +Definition at line 355 of file Destijl\+Command\+Manager.\+cs. + + + +\subsection{Member Data Documentation} +\mbox{\label{classmonitor_1_1_destijl_command_manager_a9efdcd3d35f46329e7aa167ad60062a9}} +\index{monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}!command\+Manager@{command\+Manager}} +\index{command\+Manager@{command\+Manager}!monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}} +\subsubsection{command\+Manager} +{\footnotesize\ttfamily \textbf{ Command\+Manager} monitor.\+Destijl\+Command\+Manager.\+command\+Manager = null\hspace{0.3cm}{\ttfamily [private]}} + + + +Command Manager object + + + +Definition at line 81 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_manager_a5c10e8aaae48b83be0267aefa23eb62d}} +\index{monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}!command\+Received\+Event@{command\+Received\+Event}} +\index{command\+Received\+Event@{command\+Received\+Event}!monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}} +\subsubsection{command\+Received\+Event} +{\footnotesize\ttfamily \textbf{ Command\+Received\+Event} monitor.\+Destijl\+Command\+Manager.\+command\+Received\+Event = null} + + + +Definition at line 97 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_manager_a88f907fc9c5fd8cd8d5976f45c323903}} +\index{monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}!received\+Data@{received\+Data}} +\index{received\+Data@{received\+Data}!monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}} +\subsubsection{received\+Data} +{\footnotesize\ttfamily string monitor.\+Destijl\+Command\+Manager.\+received\+Data = null\hspace{0.3cm}{\ttfamily [private]}} + + + +Part of received message corresponding to command data + + + +Definition at line 91 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_manager_a1b99d771e7af8ffc8ced10d35e5e77ce}} +\index{monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}!received\+Header@{received\+Header}} +\index{received\+Header@{received\+Header}!monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}} +\subsubsection{received\+Header} +{\footnotesize\ttfamily string monitor.\+Destijl\+Command\+Manager.\+received\+Header = null\hspace{0.3cm}{\ttfamily [private]}} + + + +Part of received message corresponding to command header + + + +Definition at line 86 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_destijl_command_manager_a86a1fb03dc480dab8d6758aa0d675cd3}} +\index{monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}!timeout@{timeout}} +\index{timeout@{timeout}!monitor\+::\+Destijl\+Command\+Manager@{monitor\+::\+Destijl\+Command\+Manager}} +\subsubsection{timeout} +{\footnotesize\ttfamily double monitor.\+Destijl\+Command\+Manager.\+timeout = 100} + + + +Timeout used for command with acknowledge + + + +Definition at line 102 of file Destijl\+Command\+Manager.\+cs. + + + +The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize} +\item +\textbf{ Destijl\+Command\+Manager.\+cs}\end{DoxyCompactItemize} diff --git a/software/monitor/monitor/docs/latex/classmonitor_1_1_destijl_command_manager__coll__graph.md5 b/software/monitor/monitor/docs/latex/classmonitor_1_1_destijl_command_manager__coll__graph.md5 new file mode 100644 index 0000000..52e485f --- /dev/null +++ b/software/monitor/monitor/docs/latex/classmonitor_1_1_destijl_command_manager__coll__graph.md5 @@ -0,0 +1 @@ +419dc5fa32f16b41254569b271c1fd31 \ No newline at end of file diff --git a/software/monitor/monitor/docs/latex/classmonitor_1_1_destijl_command_manager__coll__graph.pdf b/software/monitor/monitor/docs/latex/classmonitor_1_1_destijl_command_manager__coll__graph.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9b59863d5e32e7810c88d557eb669de654433d66 GIT binary patch literal 13712 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 CW9Ik( literal 0 HcmV?d00001 diff --git a/software/monitor/monitor/docs/latex/classmonitor_1_1_main_class.tex b/software/monitor/monitor/docs/latex/classmonitor_1_1_main_class.tex new file mode 100644 index 0000000..c6d6554 --- /dev/null +++ b/software/monitor/monitor/docs/latex/classmonitor_1_1_main_class.tex @@ -0,0 +1,32 @@ +\section{monitor.\+Main\+Class Class Reference} +\label{classmonitor_1_1_main_class}\index{monitor.\+Main\+Class@{monitor.\+Main\+Class}} +\subsection*{Static Public Member Functions} +\begin{DoxyCompactItemize} +\item +static void \textbf{ Main} (string[$\,$] args) +\end{DoxyCompactItemize} + + +\subsection{Detailed Description} + + +Definition at line 27 of file Program.\+cs. + + + +\subsection{Member Function Documentation} +\mbox{\label{classmonitor_1_1_main_class_a991579f985cc4071757b30a8b035e7c1}} +\index{monitor\+::\+Main\+Class@{monitor\+::\+Main\+Class}!Main@{Main}} +\index{Main@{Main}!monitor\+::\+Main\+Class@{monitor\+::\+Main\+Class}} +\subsubsection{Main()} +{\footnotesize\ttfamily static void monitor.\+Main\+Class.\+Main (\begin{DoxyParamCaption}\item[{string [$\,$]}]{args }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} + + + +Definition at line 29 of file Program.\+cs. + + + +The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize} +\item +\textbf{ Program.\+cs}\end{DoxyCompactItemize} diff --git a/software/monitor/monitor/docs/latex/classmonitor_1_1_robot_command_list.tex b/software/monitor/monitor/docs/latex/classmonitor_1_1_robot_command_list.tex new file mode 100644 index 0000000..523d5b6 --- /dev/null +++ b/software/monitor/monitor/docs/latex/classmonitor_1_1_robot_command_list.tex @@ -0,0 +1,147 @@ +\section{monitor.\+Robot\+Command\+List Class Reference} +\label{classmonitor_1_1_robot_command_list}\index{monitor.\+Robot\+Command\+List@{monitor.\+Robot\+Command\+List}} + + +Commands used for robot messages + + +\subsection*{Public Attributes} +\begin{DoxyCompactItemize} +\item +const string \textbf{ Robot\+Ping} = \char`\"{}p\char`\"{} +\item +const string \textbf{ Robot\+Reset} = \char`\"{}r\char`\"{} +\item +const string \textbf{ Robot\+Start\+Without\+Watchdog} = \char`\"{}u\char`\"{} +\item +const string \textbf{ Robot\+Start\+With\+Watchdog} = \char`\"{}W\char`\"{} +\item +const string \textbf{ Robot\+Get\+Battery} = \char`\"{}v\char`\"{} +\item +const string \textbf{ Robot\+Get\+Busy\+State} = \char`\"{}b\char`\"{} +\item +const string \textbf{ Robot\+Move} = \char`\"{}M\char`\"{} +\item +const string \textbf{ Robot\+Turn} = \char`\"{}T\char`\"{} +\item +const string \textbf{ Robot\+Get\+Version} = \char`\"{}V\char`\"{} +\item +const string \textbf{ Robot\+Power\+Off} = \char`\"{}z\char`\"{} +\end{DoxyCompactItemize} + + +\subsection{Detailed Description} +Commands used for robot messages + + + +Definition at line 59 of file Destijl\+Command\+Manager.\+cs. + + + +\subsection{Member Data Documentation} +\mbox{\label{classmonitor_1_1_robot_command_list_a374eb526d14b8499e47b065230afeed0}} +\index{monitor\+::\+Robot\+Command\+List@{monitor\+::\+Robot\+Command\+List}!Robot\+Get\+Battery@{Robot\+Get\+Battery}} +\index{Robot\+Get\+Battery@{Robot\+Get\+Battery}!monitor\+::\+Robot\+Command\+List@{monitor\+::\+Robot\+Command\+List}} +\subsubsection{Robot\+Get\+Battery} +{\footnotesize\ttfamily const string monitor.\+Robot\+Command\+List.\+Robot\+Get\+Battery = \char`\"{}v\char`\"{}} + + + +Definition at line 65 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_robot_command_list_a52a901f4e013dc33ff491c5fcda76860}} +\index{monitor\+::\+Robot\+Command\+List@{monitor\+::\+Robot\+Command\+List}!Robot\+Get\+Busy\+State@{Robot\+Get\+Busy\+State}} +\index{Robot\+Get\+Busy\+State@{Robot\+Get\+Busy\+State}!monitor\+::\+Robot\+Command\+List@{monitor\+::\+Robot\+Command\+List}} +\subsubsection{Robot\+Get\+Busy\+State} +{\footnotesize\ttfamily const string monitor.\+Robot\+Command\+List.\+Robot\+Get\+Busy\+State = \char`\"{}b\char`\"{}} + + + +Definition at line 66 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_robot_command_list_a9a845beb5c040e4813f03cee7cd1cb71}} +\index{monitor\+::\+Robot\+Command\+List@{monitor\+::\+Robot\+Command\+List}!Robot\+Get\+Version@{Robot\+Get\+Version}} +\index{Robot\+Get\+Version@{Robot\+Get\+Version}!monitor\+::\+Robot\+Command\+List@{monitor\+::\+Robot\+Command\+List}} +\subsubsection{Robot\+Get\+Version} +{\footnotesize\ttfamily const string monitor.\+Robot\+Command\+List.\+Robot\+Get\+Version = \char`\"{}V\char`\"{}} + + + +Definition at line 69 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_robot_command_list_af7017bac04f1976fe1c37e8ec77bcbce}} +\index{monitor\+::\+Robot\+Command\+List@{monitor\+::\+Robot\+Command\+List}!Robot\+Move@{Robot\+Move}} +\index{Robot\+Move@{Robot\+Move}!monitor\+::\+Robot\+Command\+List@{monitor\+::\+Robot\+Command\+List}} +\subsubsection{Robot\+Move} +{\footnotesize\ttfamily const string monitor.\+Robot\+Command\+List.\+Robot\+Move = \char`\"{}M\char`\"{}} + + + +Definition at line 67 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_robot_command_list_a93de788c0d7ed40caaa2e3912a429831}} +\index{monitor\+::\+Robot\+Command\+List@{monitor\+::\+Robot\+Command\+List}!Robot\+Ping@{Robot\+Ping}} +\index{Robot\+Ping@{Robot\+Ping}!monitor\+::\+Robot\+Command\+List@{monitor\+::\+Robot\+Command\+List}} +\subsubsection{Robot\+Ping} +{\footnotesize\ttfamily const string monitor.\+Robot\+Command\+List.\+Robot\+Ping = \char`\"{}p\char`\"{}} + + + +Definition at line 61 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_robot_command_list_a2e9616c1b75719c208902e595b79cc48}} +\index{monitor\+::\+Robot\+Command\+List@{monitor\+::\+Robot\+Command\+List}!Robot\+Power\+Off@{Robot\+Power\+Off}} +\index{Robot\+Power\+Off@{Robot\+Power\+Off}!monitor\+::\+Robot\+Command\+List@{monitor\+::\+Robot\+Command\+List}} +\subsubsection{Robot\+Power\+Off} +{\footnotesize\ttfamily const string monitor.\+Robot\+Command\+List.\+Robot\+Power\+Off = \char`\"{}z\char`\"{}} + + + +Definition at line 70 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_robot_command_list_a9ef80510dfe9ca241af290b003766526}} +\index{monitor\+::\+Robot\+Command\+List@{monitor\+::\+Robot\+Command\+List}!Robot\+Reset@{Robot\+Reset}} +\index{Robot\+Reset@{Robot\+Reset}!monitor\+::\+Robot\+Command\+List@{monitor\+::\+Robot\+Command\+List}} +\subsubsection{Robot\+Reset} +{\footnotesize\ttfamily const string monitor.\+Robot\+Command\+List.\+Robot\+Reset = \char`\"{}r\char`\"{}} + + + +Definition at line 62 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_robot_command_list_a92acfe998bb9d265dd1f34f68f718386}} +\index{monitor\+::\+Robot\+Command\+List@{monitor\+::\+Robot\+Command\+List}!Robot\+Start\+Without\+Watchdog@{Robot\+Start\+Without\+Watchdog}} +\index{Robot\+Start\+Without\+Watchdog@{Robot\+Start\+Without\+Watchdog}!monitor\+::\+Robot\+Command\+List@{monitor\+::\+Robot\+Command\+List}} +\subsubsection{Robot\+Start\+Without\+Watchdog} +{\footnotesize\ttfamily const string monitor.\+Robot\+Command\+List.\+Robot\+Start\+Without\+Watchdog = \char`\"{}u\char`\"{}} + + + +Definition at line 63 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_robot_command_list_aafa5d0e5fec3afe6586cca8b88d45c85}} +\index{monitor\+::\+Robot\+Command\+List@{monitor\+::\+Robot\+Command\+List}!Robot\+Start\+With\+Watchdog@{Robot\+Start\+With\+Watchdog}} +\index{Robot\+Start\+With\+Watchdog@{Robot\+Start\+With\+Watchdog}!monitor\+::\+Robot\+Command\+List@{monitor\+::\+Robot\+Command\+List}} +\subsubsection{Robot\+Start\+With\+Watchdog} +{\footnotesize\ttfamily const string monitor.\+Robot\+Command\+List.\+Robot\+Start\+With\+Watchdog = \char`\"{}W\char`\"{}} + + + +Definition at line 64 of file Destijl\+Command\+Manager.\+cs. + +\mbox{\label{classmonitor_1_1_robot_command_list_a2b88fc42fba8229f163e03e7252a77e6}} +\index{monitor\+::\+Robot\+Command\+List@{monitor\+::\+Robot\+Command\+List}!Robot\+Turn@{Robot\+Turn}} +\index{Robot\+Turn@{Robot\+Turn}!monitor\+::\+Robot\+Command\+List@{monitor\+::\+Robot\+Command\+List}} +\subsubsection{Robot\+Turn} +{\footnotesize\ttfamily const string monitor.\+Robot\+Command\+List.\+Robot\+Turn = \char`\"{}T\char`\"{}} + + + +Definition at line 68 of file Destijl\+Command\+Manager.\+cs. + + + +The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize} +\item +\textbf{ Destijl\+Command\+Manager.\+cs}\end{DoxyCompactItemize} diff --git a/software/monitor/monitor/docs/latex/doxygen.sty b/software/monitor/monitor/docs/latex/doxygen.sty new file mode 100644 index 0000000..e457acc --- /dev/null +++ b/software/monitor/monitor/docs/latex/doxygen.sty @@ -0,0 +1,503 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{doxygen} + +% Packages used by this style file +\RequirePackage{alltt} +\RequirePackage{array} +\RequirePackage{calc} +\RequirePackage{float} +\RequirePackage{ifthen} +\RequirePackage{verbatim} +\RequirePackage[table]{xcolor} +\RequirePackage{longtable} +\RequirePackage{tabu} +\RequirePackage{tabularx} +\RequirePackage{multirow} + +%---------- Internal commands used in this style file ---------------- + +\newcommand{\ensurespace}[1]{% + \begingroup% + \setlength{\dimen@}{#1}% + \vskip\z@\@plus\dimen@% + \penalty -100\vskip\z@\@plus -\dimen@% + \vskip\dimen@% + \penalty 9999% + \vskip -\dimen@% + \vskip\z@skip% hide the previous |\vskip| from |\addvspace| + \endgroup% +} + +\newcommand{\DoxyLabelFont}{} +\newcommand{\entrylabel}[1]{% + {% + \parbox[b]{\labelwidth-4pt}{% + \makebox[0pt][l]{\DoxyLabelFont#1}% + \vspace{1.5\baselineskip}% + }% + }% +} + +\newenvironment{DoxyDesc}[1]{% + \ensurespace{4\baselineskip}% + \begin{list}{}{% + \settowidth{\labelwidth}{20pt}% + \setlength{\parsep}{0pt}% + \setlength{\itemsep}{0pt}% + \setlength{\leftmargin}{\labelwidth+\labelsep}% + \renewcommand{\makelabel}{\entrylabel}% + }% + \item[#1]% +}{% + \end{list}% +} + +\newsavebox{\xrefbox} +\newlength{\xreflength} +\newcommand{\xreflabel}[1]{% + \sbox{\xrefbox}{#1}% + \setlength{\xreflength}{\wd\xrefbox}% + \ifthenelse{\xreflength>\labelwidth}{% + \begin{minipage}{\textwidth}% + \setlength{\parindent}{0pt}% + \hangindent=15pt\bfseries #1\vspace{1.2\itemsep}% + \end{minipage}% + }{% + \parbox[b]{\labelwidth}{\makebox[0pt][l]{\textbf{#1}}}% + }% +} + +%---------- Commands used by doxygen LaTeX output generator ---------- + +% Used by
 ... 
+\newenvironment{DoxyPre}{% + \small% + \begin{alltt}% +}{% + \end{alltt}% + \normalsize% +} + +% Used by @code ... @endcode +\newenvironment{DoxyCode}{% + \par% + \scriptsize% + \begin{alltt}% +}{% + \end{alltt}% + \normalsize% +} + +% Used by @example, @include, @includelineno and @dontinclude +\newenvironment{DoxyCodeInclude}{% + \DoxyCode% +}{% + \endDoxyCode% +} + +% Used by @verbatim ... @endverbatim +\newenvironment{DoxyVerb}{% + \footnotesize% + \verbatim% +}{% + \endverbatim% + \normalsize% +} + +% Used by @verbinclude +\newenvironment{DoxyVerbInclude}{% + \DoxyVerb% +}{% + \endDoxyVerb% +} + +% Used by numbered lists (using '-#' or
    ...
) +\newenvironment{DoxyEnumerate}{% + \enumerate% +}{% + \endenumerate% +} + +% Used by bullet lists (using '-', @li, @arg, or
    ...
) +\newenvironment{DoxyItemize}{% + \itemize% +}{% + \enditemize% +} + +% Used by description lists (using
...
) +\newenvironment{DoxyDescription}{% + \description% +}{% + \enddescription% +} + +% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc +% (only if caption is specified) +\newenvironment{DoxyImage}{% + \begin{figure}[H]% + \begin{center}% +}{% + \end{center}% + \end{figure}% +} + +% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc +% (only if no caption is specified) +\newenvironment{DoxyImageNoCaption}{% + \begin{center}% +}{% + \end{center}% +} + +% Used by @attention +\newenvironment{DoxyAttention}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @author and @authors +\newenvironment{DoxyAuthor}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @date +\newenvironment{DoxyDate}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @invariant +\newenvironment{DoxyInvariant}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @note +\newenvironment{DoxyNote}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @post +\newenvironment{DoxyPostcond}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @pre +\newenvironment{DoxyPrecond}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @copyright +\newenvironment{DoxyCopyright}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @remark +\newenvironment{DoxyRemark}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @return and @returns +\newenvironment{DoxyReturn}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @since +\newenvironment{DoxySince}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @see +\newenvironment{DoxySeeAlso}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @version +\newenvironment{DoxyVersion}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @warning +\newenvironment{DoxyWarning}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @internal +\newenvironment{DoxyInternal}[1]{% + \paragraph*{#1}% +}{% +} + +% Used by @par and @paragraph +\newenvironment{DoxyParagraph}[1]{% + \begin{list}{}{% + \settowidth{\labelwidth}{40pt}% + \setlength{\leftmargin}{\labelwidth}% + \setlength{\parsep}{0pt}% + \setlength{\itemsep}{-4pt}% + \renewcommand{\makelabel}{\entrylabel}% + }% + \item[#1]% +}{% + \end{list}% +} + +% Used by parameter lists +\newenvironment{DoxyParams}[2][]{% + \tabulinesep=1mm% + \par% + \ifthenelse{\equal{#1}{}}% + {\begin{longtabu} spread 0pt [l]{|X[-1,l]|X[-1,l]|}}% name + description + {\ifthenelse{\equal{#1}{1}}% + {\begin{longtabu} spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + name + desc + {\begin{longtabu} spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + type + name + desc + } + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]% + \hline% + \endfirsthead% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]% + \hline% + \endhead% +}{% + \end{longtabu}% + \vspace{6pt}% +} + +% Used for fields of simple structs +\newenvironment{DoxyFields}[1]{% + \tabulinesep=1mm% + \par% + \begin{longtabu} spread 0pt [l]{|X[-1,r]|X[-1,l]|X[-1,l]|}% + \multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endfirsthead% + \multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endhead% +}{% + \end{longtabu}% + \vspace{6pt}% +} + +% Used for fields simple class style enums +\newenvironment{DoxyEnumFields}[1]{% + \tabulinesep=1mm% + \par% + \begin{longtabu} spread 0pt [l]{|X[-1,r]|X[-1,l]|}% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endfirsthead% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endhead% +}{% + \end{longtabu}% + \vspace{6pt}% +} + +% Used for parameters within a detailed function description +\newenvironment{DoxyParamCaption}{% + \renewcommand{\item}[2][]{\\ \hspace*{2.0cm} ##1 {\em ##2}}% +}{% +} + +% Used by return value lists +\newenvironment{DoxyRetVals}[1]{% + \tabulinesep=1mm% + \par% + \begin{longtabu} spread 0pt [l]{|X[-1,r]|X[-1,l]|}% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endfirsthead% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endhead% +}{% + \end{longtabu}% + \vspace{6pt}% +} + +% Used by exception lists +\newenvironment{DoxyExceptions}[1]{% + \tabulinesep=1mm% + \par% + \begin{longtabu} spread 0pt [l]{|X[-1,r]|X[-1,l]|}% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endfirsthead% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endhead% +}{% + \end{longtabu}% + \vspace{6pt}% +} + +% Used by template parameter lists +\newenvironment{DoxyTemplParams}[1]{% + \tabulinesep=1mm% + \par% + \begin{longtabu} spread 0pt [l]{|X[-1,r]|X[-1,l]|}% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endfirsthead% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endhead% +}{% + \end{longtabu}% + \vspace{6pt}% +} + +% Used for member lists +\newenvironment{DoxyCompactItemize}{% + \begin{itemize}% + \setlength{\itemsep}{-3pt}% + \setlength{\parsep}{0pt}% + \setlength{\topsep}{0pt}% + \setlength{\partopsep}{0pt}% +}{% + \end{itemize}% +} + +% Used for member descriptions +\newenvironment{DoxyCompactList}{% + \begin{list}{}{% + \setlength{\leftmargin}{0.5cm}% + \setlength{\itemsep}{0pt}% + \setlength{\parsep}{0pt}% + \setlength{\topsep}{0pt}% + \renewcommand{\makelabel}{\hfill}% + }% +}{% + \end{list}% +} + +% Used for reference lists (@bug, @deprecated, @todo, etc.) +\newenvironment{DoxyRefList}{% + \begin{list}{}{% + \setlength{\labelwidth}{10pt}% + \setlength{\leftmargin}{\labelwidth}% + \addtolength{\leftmargin}{\labelsep}% + \renewcommand{\makelabel}{\xreflabel}% + }% +}{% + \end{list}% +} + +% Used by @bug, @deprecated, @todo, etc. +\newenvironment{DoxyRefDesc}[1]{% + \begin{list}{}{% + \renewcommand\makelabel[1]{\textbf{##1}}% + \settowidth\labelwidth{\makelabel{#1}}% + \setlength\leftmargin{\labelwidth+\labelsep}% + }% +}{% + \end{list}% +} + +% Used by parameter lists and simple sections +\newenvironment{Desc} +{\begin{list}{}{% + \settowidth{\labelwidth}{20pt}% + \setlength{\parsep}{0pt}% + \setlength{\itemsep}{0pt}% + \setlength{\leftmargin}{\labelwidth+\labelsep}% + \renewcommand{\makelabel}{\entrylabel}% + } +}{% + \end{list}% +} + +% Used by tables +\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp}% +\newenvironment{TabularC}[1]% +{\tabulinesep=1mm +\begin{longtabu} spread 0pt [c]{*#1{|X[-1]}|}}% +{\end{longtabu}\par}% + +\newenvironment{TabularNC}[1]% +{\begin{tabu} spread 0pt [l]{*#1{|X[-1]}|}}% +{\end{tabu}\par}% + +% Used for member group headers +\newenvironment{Indent}{% + \begin{list}{}{% + \setlength{\leftmargin}{0.5cm}% + }% + \item[]\ignorespaces% +}{% + \unskip% + \end{list}% +} + +% Used when hyperlinks are turned off +\newcommand{\doxyref}[3]{% + \textbf{#1} (\textnormal{#2}\,\pageref{#3})% +} + +% Used to link to a table when hyperlinks are turned on +\newcommand{\doxytablelink}[2]{% + \ref{#1}% +} + +% Used to link to a table when hyperlinks are turned off +\newcommand{\doxytableref}[3]{% + \ref{#3}% +} + +% Used by @addindex +\newcommand{\lcurly}{\{} +\newcommand{\rcurly}{\}} + +% Colors used for syntax highlighting +\definecolor{comment}{rgb}{0.5,0.0,0.0} +\definecolor{keyword}{rgb}{0.0,0.5,0.0} +\definecolor{keywordtype}{rgb}{0.38,0.25,0.125} +\definecolor{keywordflow}{rgb}{0.88,0.5,0.0} +\definecolor{preprocessor}{rgb}{0.5,0.38,0.125} +\definecolor{stringliteral}{rgb}{0.0,0.125,0.25} +\definecolor{charliteral}{rgb}{0.0,0.5,0.5} +\definecolor{vhdldigit}{rgb}{1.0,0.0,1.0} +\definecolor{vhdlkeyword}{rgb}{0.43,0.0,0.43} +\definecolor{vhdllogic}{rgb}{1.0,0.0,0.0} +\definecolor{vhdlchar}{rgb}{0.0,0.0,0.0} + +% Color used for table heading +\newcommand{\tableheadbgcolor}{lightgray}% + +% Version of hypertarget with correct landing location +\newcommand{\Hypertarget}[1]{\Hy@raisedlink{\hypertarget{#1}{}}} + +% Define caption that is also suitable in a table +\makeatletter +\def\doxyfigcaption{% +\refstepcounter{figure}% +\@dblarg{\@caption{figure}}} +\makeatother diff --git a/software/monitor/monitor/docs/latex/files.tex b/software/monitor/monitor/docs/latex/files.tex new file mode 100644 index 0000000..c43f4cd --- /dev/null +++ b/software/monitor/monitor/docs/latex/files.tex @@ -0,0 +1,8 @@ +\section{File List} +Here is a list of all files with brief descriptions\+:\begin{DoxyCompactList} +\item\contentsline{section}{\textbf{ Client.\+cs} }{\pageref{_client_8cs}}{} +\item\contentsline{section}{\textbf{ Command\+Manager.\+cs} }{\pageref{_command_manager_8cs}}{} +\item\contentsline{section}{\textbf{ Destijl\+Command\+Manager.\+cs} }{\pageref{_destijl_command_manager_8cs}}{} +\item\contentsline{section}{\textbf{ Monitor\+U\+I.\+cs} }{\pageref{_monitor_u_i_8cs}}{} +\item\contentsline{section}{\textbf{ Program.\+cs} }{\pageref{_program_8cs}}{} +\end{DoxyCompactList} diff --git a/software/monitor/monitor/docs/latex/hierarchy.tex b/software/monitor/monitor/docs/latex/hierarchy.tex new file mode 100644 index 0000000..ee99725 --- /dev/null +++ b/software/monitor/monitor/docs/latex/hierarchy.tex @@ -0,0 +1,12 @@ +\section{Class Hierarchy} +This inheritance list is sorted roughly, but not completely, alphabetically\+:\begin{DoxyCompactList} +\item \contentsline{section}{monitor.\+Client}{\pageref{classmonitor_1_1_client}}{} +\item \contentsline{section}{monitor.\+Command\+Manager}{\pageref{classmonitor_1_1_command_manager}}{} +\item \contentsline{section}{monitor.\+Destijl\+Command\+List}{\pageref{classmonitor_1_1_destijl_command_list}}{} +\item \contentsline{section}{monitor.\+Destijl\+Command\+Manager}{\pageref{classmonitor_1_1_destijl_command_manager}}{} +\item \contentsline{section}{monitor.\+Main\+Class}{\pageref{classmonitor_1_1_main_class}}{} +\item \contentsline{section}{monitor.\+Robot\+Command\+List}{\pageref{classmonitor_1_1_robot_command_list}}{} +\item Window\begin{DoxyCompactList} +\item \contentsline{section}{Main\+Window}{\pageref{class_main_window}}{} +\end{DoxyCompactList} +\end{DoxyCompactList} diff --git a/software/monitor/monitor/docs/latex/namespacemonitor.tex b/software/monitor/monitor/docs/latex/namespacemonitor.tex new file mode 100644 index 0000000..6c1e0ef --- /dev/null +++ b/software/monitor/monitor/docs/latex/namespacemonitor.tex @@ -0,0 +1,17 @@ +\section{monitor Namespace Reference} +\label{namespacemonitor}\index{monitor@{monitor}} +\subsection*{Classes} +\begin{DoxyCompactItemize} +\item +class \textbf{ Client} +\begin{DoxyCompactList}\small\item\em Static class for T\+CP client \end{DoxyCompactList}\item +class \textbf{ Command\+Manager} +\begin{DoxyCompactList}\small\item\em Command Manager. Use for timeout managment during reception of data Used as intermediate layer between T\+CP client class (\doxyref{Client}{p.}{classmonitor_1_1_client}) and application level managment of command and answers \end{DoxyCompactList}\item +class \textbf{ Destijl\+Command\+List} +\begin{DoxyCompactList}\small\item\em Commands and options parameters used in Destijl project when communicating with server \end{DoxyCompactList}\item +class \textbf{ Destijl\+Command\+Manager} +\begin{DoxyCompactList}\small\item\em Specialization class for command manager, which implemnent destijl protocol between monitor and server \end{DoxyCompactList}\item +class \textbf{ Main\+Class} +\item +class \textbf{ Robot\+Command\+List} +\begin{DoxyCompactList}\small\item\em Commands used for robot messages \end{DoxyCompactList}\end{DoxyCompactItemize} diff --git a/software/monitor/monitor/docs/latex/namespaces.tex b/software/monitor/monitor/docs/latex/namespaces.tex new file mode 100644 index 0000000..7decfdf --- /dev/null +++ b/software/monitor/monitor/docs/latex/namespaces.tex @@ -0,0 +1,4 @@ +\section{Packages} +Here are the packages with brief descriptions (if available)\+:\begin{DoxyCompactList} +\item\contentsline{section}{\textbf{ monitor} }{\pageref{namespacemonitor}}{} +\end{DoxyCompactList} diff --git a/software/monitor/monitor/docs/latex/refman.tex b/software/monitor/monitor/docs/latex/refman.tex new file mode 100644 index 0000000..444b98d --- /dev/null +++ b/software/monitor/monitor/docs/latex/refman.tex @@ -0,0 +1,156 @@ +\documentclass[twoside]{book} + +% Packages required by doxygen +\usepackage{fixltx2e} +\usepackage{calc} +\usepackage{doxygen} +\usepackage[export]{adjustbox} % also loads graphicx +\usepackage{graphicx} +\usepackage[utf8]{inputenc} +\usepackage{makeidx} +\usepackage{multicol} +\usepackage{multirow} +\PassOptionsToPackage{warn}{textcomp} +\usepackage{textcomp} +\usepackage[nointegrals]{wasysym} +\usepackage[table]{xcolor} + +% Font selection +\usepackage[T1]{fontenc} +\usepackage[scaled=.90]{helvet} +\usepackage{courier} +\usepackage{amssymb} +\usepackage{sectsty} +\renewcommand{\familydefault}{\sfdefault} +\allsectionsfont{% + \fontseries{bc}\selectfont% + \color{darkgray}% +} +\renewcommand{\DoxyLabelFont}{% + \fontseries{bc}\selectfont% + \color{darkgray}% +} +\newcommand{\+}{\discretionary{\mbox{\scriptsize$\hookleftarrow$}}{}{}} + +% Page & text layout +\usepackage{geometry} +\geometry{% + a4paper,% + top=2.5cm,% + bottom=2.5cm,% + left=2.5cm,% + right=2.5cm% +} +\tolerance=750 +\hfuzz=15pt +\hbadness=750 +\setlength{\emergencystretch}{15pt} +\setlength{\parindent}{0cm} +\setlength{\parskip}{3ex plus 2ex minus 2ex} +\makeatletter +\renewcommand{\paragraph}{% + \@startsection{paragraph}{4}{0ex}{-1.0ex}{1.0ex}{% + \normalfont\normalsize\bfseries\SS@parafont% + }% +} +\renewcommand{\subparagraph}{% + \@startsection{subparagraph}{5}{0ex}{-1.0ex}{1.0ex}{% + \normalfont\normalsize\bfseries\SS@subparafont% + }% +} +\makeatother + +% Headers & footers +\usepackage{fancyhdr} +\pagestyle{fancyplain} +\fancyhead[LE]{\fancyplain{}{\bfseries\thepage}} +\fancyhead[CE]{\fancyplain{}{}} +\fancyhead[RE]{\fancyplain{}{\bfseries\leftmark}} +\fancyhead[LO]{\fancyplain{}{\bfseries\rightmark}} +\fancyhead[CO]{\fancyplain{}{}} +\fancyhead[RO]{\fancyplain{}{\bfseries\thepage}} +\fancyfoot[LE]{\fancyplain{}{}} +\fancyfoot[CE]{\fancyplain{}{}} +\fancyfoot[RE]{\fancyplain{}{\bfseries\scriptsize Generated by Doxygen }} +\fancyfoot[LO]{\fancyplain{}{\bfseries\scriptsize Generated by Doxygen }} +\fancyfoot[CO]{\fancyplain{}{}} +\fancyfoot[RO]{\fancyplain{}{}} +\renewcommand{\footrulewidth}{0.4pt} +\renewcommand{\chaptermark}[1]{% + \markboth{#1}{}% +} +\renewcommand{\sectionmark}[1]{% + \markright{\thesection\ #1}% +} + +% Indices & bibliography +\usepackage{natbib} +\usepackage[titles]{tocloft} +\setcounter{tocdepth}{3} +\setcounter{secnumdepth}{5} +\makeindex + +% Custom commands +\newcommand{\clearemptydoublepage}{% + \newpage{\pagestyle{empty}\cleardoublepage}% +} + +\usepackage{caption} +\captionsetup{labelsep=space,justification=centering,font={bf},singlelinecheck=off,skip=4pt,position=top} + +%===== C O N T E N T S ===== + +\begin{document} + +% Titlepage & ToC +\pagenumbering{alph} +\begin{titlepage} +\vspace*{7cm} +\begin{center}% +{\Large Monitor }\\ +\vspace*{1cm} +{\large Generated by Doxygen 1.8.13}\\ +\end{center} +\end{titlepage} +\clearemptydoublepage +\pagenumbering{roman} +\tableofcontents +\clearemptydoublepage +\pagenumbering{arabic} + +%--- Begin generated contents --- +\chapter{Namespace Index} +\input{namespaces} +\chapter{Hierarchical Index} +\input{hierarchy} +\chapter{Class Index} +\input{annotated} +\chapter{File Index} +\input{files} +\chapter{Namespace Documentation} +\input{namespacemonitor} +\chapter{Class Documentation} +\input{classmonitor_1_1_client} +\input{classmonitor_1_1_command_manager} +\input{classmonitor_1_1_destijl_command_list} +\input{classmonitor_1_1_destijl_command_manager} +\input{classmonitor_1_1_main_class} +\input{class_main_window} +\input{classmonitor_1_1_robot_command_list} +\chapter{File Documentation} +\input{_client_8cs} +\input{_command_manager_8cs} +\input{_destijl_command_manager_8cs} +\input{_monitor_u_i_8cs} +\input{_program_8cs} +%--- End generated contents --- + +% Index +\backmatter +\newpage +\phantomsection +\clearemptydoublepage +\addcontentsline{toc}{chapter}{Index} +\printindex + +\end{document} diff --git a/software/monitor/monitor/docs/latex/robot-icon.png b/software/monitor/monitor/docs/latex/robot-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..91d6a8f57e08f6dcba7834812eab61d06a9d1100 GIT binary patch literal 12144 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 V^x5xhq=1STJYD@<);T3K0RU%2e#-y= literal 0 HcmV?d00001 diff --git a/software/monitor/monitor/gtk-gui/MainWindow.cs b/software/monitor/monitor/gtk-gui/MainWindow.cs index 466b549..30def1b 100644 --- a/software/monitor/monitor/gtk-gui/MainWindow.cs +++ b/software/monitor/monitor/gtk-gui/MainWindow.cs @@ -125,8 +125,6 @@ public partial class MainWindow private global::Gtk.Label labelBatteryLevel; - private global::Gtk.CheckButton checkButtonGetBattery; - protected virtual void Build() { global::Stetic.Gui.Initialize(this); @@ -530,92 +528,91 @@ public partial class MainWindow this.table4.ColumnSpacing = ((uint)(6)); // Container child table4.Gtk.Table+TableChild this.buttonDown = new global::Gtk.Button(); - global::Gtk.Tooltips w40 = new Gtk.Tooltips(); - w40.SetTip(this.buttonDown, "Move robot backward", "Move robot backward"); + this.buttonDown.TooltipMarkup = "Move robot backward"; this.buttonDown.CanFocus = true; this.buttonDown.Name = "buttonDown"; this.buttonDown.UseUnderline = true; - global::Gtk.Image w41 = new global::Gtk.Image(); - w41.Pixbuf = global::Gdk.Pixbuf.LoadFromResource("monitor.ressources.pan-down-symbolic.symbolic.png"); - this.buttonDown.Image = w41; + global::Gtk.Image w40 = new global::Gtk.Image(); + w40.Pixbuf = global::Gdk.Pixbuf.LoadFromResource("monitor.ressources.pan-down-symbolic.symbolic.png"); + this.buttonDown.Image = w40; this.table4.Add(this.buttonDown); - global::Gtk.Table.TableChild w42 = ((global::Gtk.Table.TableChild)(this.table4[this.buttonDown])); - w42.TopAttach = ((uint)(2)); - w42.BottomAttach = ((uint)(3)); - w42.LeftAttach = ((uint)(1)); - w42.RightAttach = ((uint)(2)); - w42.XOptions = ((global::Gtk.AttachOptions)(4)); - w42.YOptions = ((global::Gtk.AttachOptions)(4)); + global::Gtk.Table.TableChild w41 = ((global::Gtk.Table.TableChild)(this.table4[this.buttonDown])); + w41.TopAttach = ((uint)(2)); + w41.BottomAttach = ((uint)(3)); + w41.LeftAttach = ((uint)(1)); + w41.RightAttach = ((uint)(2)); + w41.XOptions = ((global::Gtk.AttachOptions)(4)); + w41.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table4.Gtk.Table+TableChild this.buttonForward = new global::Gtk.Button(); - w40.SetTip(this.buttonForward, "Move robot forward", "Move robot forward"); + this.buttonForward.TooltipMarkup = "Move robot forward"; this.buttonForward.CanFocus = true; this.buttonForward.Name = "buttonForward"; this.buttonForward.UseUnderline = true; - global::Gtk.Image w43 = new global::Gtk.Image(); - w43.Pixbuf = global::Gdk.Pixbuf.LoadFromResource("monitor.ressources.pan-up-symbolic.symbolic.png"); - this.buttonForward.Image = w43; + global::Gtk.Image w42 = new global::Gtk.Image(); + w42.Pixbuf = global::Gdk.Pixbuf.LoadFromResource("monitor.ressources.pan-up-symbolic.symbolic.png"); + this.buttonForward.Image = w42; this.table4.Add(this.buttonForward); - global::Gtk.Table.TableChild w44 = ((global::Gtk.Table.TableChild)(this.table4[this.buttonForward])); - w44.LeftAttach = ((uint)(1)); - w44.RightAttach = ((uint)(2)); - w44.XOptions = ((global::Gtk.AttachOptions)(4)); - w44.YOptions = ((global::Gtk.AttachOptions)(4)); + global::Gtk.Table.TableChild w43 = ((global::Gtk.Table.TableChild)(this.table4[this.buttonForward])); + w43.LeftAttach = ((uint)(1)); + w43.RightAttach = ((uint)(2)); + w43.XOptions = ((global::Gtk.AttachOptions)(4)); + w43.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table4.Gtk.Table+TableChild this.buttonLeft = new global::Gtk.Button(); - w40.SetTip(this.buttonLeft, "Turn robot to the left", "Turn robot to the left"); + this.buttonLeft.TooltipMarkup = "Turn robot to the left"; this.buttonLeft.CanFocus = true; this.buttonLeft.Name = "buttonLeft"; this.buttonLeft.UseUnderline = true; - global::Gtk.Image w45 = new global::Gtk.Image(); - w45.Pixbuf = global::Gdk.Pixbuf.LoadFromResource("monitor.ressources.pan-start-symbolic.symbolic.png"); - this.buttonLeft.Image = w45; + global::Gtk.Image w44 = new global::Gtk.Image(); + w44.Pixbuf = global::Gdk.Pixbuf.LoadFromResource("monitor.ressources.pan-start-symbolic.symbolic.png"); + this.buttonLeft.Image = w44; this.table4.Add(this.buttonLeft); - global::Gtk.Table.TableChild w46 = ((global::Gtk.Table.TableChild)(this.table4[this.buttonLeft])); - w46.TopAttach = ((uint)(1)); - w46.BottomAttach = ((uint)(2)); - w46.XOptions = ((global::Gtk.AttachOptions)(4)); - w46.YOptions = ((global::Gtk.AttachOptions)(4)); + global::Gtk.Table.TableChild w45 = ((global::Gtk.Table.TableChild)(this.table4[this.buttonLeft])); + w45.TopAttach = ((uint)(1)); + w45.BottomAttach = ((uint)(2)); + w45.XOptions = ((global::Gtk.AttachOptions)(4)); + w45.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table4.Gtk.Table+TableChild this.buttonRight = new global::Gtk.Button(); - w40.SetTip(this.buttonRight, "Turn robot to the right", "Turn robot to the right"); + this.buttonRight.TooltipMarkup = "Turn robot to the right"; this.buttonRight.CanFocus = true; this.buttonRight.Name = "buttonRight"; this.buttonRight.UseUnderline = true; - global::Gtk.Image w47 = new global::Gtk.Image(); - w47.Pixbuf = global::Gdk.Pixbuf.LoadFromResource("monitor.ressources.pan-end-symbolic.symbolic.png"); - this.buttonRight.Image = w47; + global::Gtk.Image w46 = new global::Gtk.Image(); + w46.Pixbuf = global::Gdk.Pixbuf.LoadFromResource("monitor.ressources.pan-end-symbolic.symbolic.png"); + this.buttonRight.Image = w46; this.table4.Add(this.buttonRight); - global::Gtk.Table.TableChild w48 = ((global::Gtk.Table.TableChild)(this.table4[this.buttonRight])); - w48.TopAttach = ((uint)(1)); - w48.BottomAttach = ((uint)(2)); - w48.LeftAttach = ((uint)(2)); - w48.RightAttach = ((uint)(3)); - w48.XOptions = ((global::Gtk.AttachOptions)(4)); - w48.YOptions = ((global::Gtk.AttachOptions)(4)); + global::Gtk.Table.TableChild w47 = ((global::Gtk.Table.TableChild)(this.table4[this.buttonRight])); + w47.TopAttach = ((uint)(1)); + w47.BottomAttach = ((uint)(2)); + w47.LeftAttach = ((uint)(2)); + w47.RightAttach = ((uint)(3)); + w47.XOptions = ((global::Gtk.AttachOptions)(4)); + w47.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table4.Gtk.Table+TableChild this.buttonStop = new global::Gtk.Button(); - w40.SetTip(this.buttonStop, "Stop robot movements", "Stop robot movements"); + this.buttonStop.TooltipMarkup = "Stop robot movements"; this.buttonStop.CanFocus = true; this.buttonStop.Name = "buttonStop"; this.buttonStop.UseUnderline = true; - global::Gtk.Image w49 = new global::Gtk.Image(); - w49.Pixbuf = global::Gdk.Pixbuf.LoadFromResource("monitor.ressources.hand-filled-32.png"); - this.buttonStop.Image = w49; + global::Gtk.Image w48 = new global::Gtk.Image(); + w48.Pixbuf = global::Gdk.Pixbuf.LoadFromResource("monitor.ressources.hand-filled-32.png"); + this.buttonStop.Image = w48; this.table4.Add(this.buttonStop); - global::Gtk.Table.TableChild w50 = ((global::Gtk.Table.TableChild)(this.table4[this.buttonStop])); - w50.TopAttach = ((uint)(1)); - w50.BottomAttach = ((uint)(2)); - w50.LeftAttach = ((uint)(1)); - w50.RightAttach = ((uint)(2)); - w50.XOptions = ((global::Gtk.AttachOptions)(4)); - w50.YOptions = ((global::Gtk.AttachOptions)(4)); + global::Gtk.Table.TableChild w49 = ((global::Gtk.Table.TableChild)(this.table4[this.buttonStop])); + w49.TopAttach = ((uint)(1)); + w49.BottomAttach = ((uint)(2)); + w49.LeftAttach = ((uint)(1)); + w49.RightAttach = ((uint)(2)); + w49.XOptions = ((global::Gtk.AttachOptions)(4)); + w49.YOptions = ((global::Gtk.AttachOptions)(4)); this.alignment8.Add(this.table4); this.vbox9.Add(this.alignment8); - global::Gtk.Box.BoxChild w52 = ((global::Gtk.Box.BoxChild)(this.vbox9[this.alignment8])); - w52.Position = 0; - w52.Expand = false; - w52.Fill = false; + global::Gtk.Box.BoxChild w51 = ((global::Gtk.Box.BoxChild)(this.vbox9[this.alignment8])); + w51.Position = 0; + w51.Expand = false; + w51.Fill = false; // Container child vbox9.Gtk.Box+BoxChild this.table3 = new global::Gtk.Table(((uint)(1)), ((uint)(2)), false); this.table3.Name = "table3"; @@ -628,10 +625,10 @@ public partial class MainWindow this.label3.LabelProp = global::Mono.Unix.Catalog.GetString("Battery level:"); this.label3.Justify = ((global::Gtk.Justification)(1)); this.table3.Add(this.label3); - global::Gtk.Table.TableChild w53 = ((global::Gtk.Table.TableChild)(this.table3[this.label3])); - w53.YPadding = ((uint)(10)); - w53.XOptions = ((global::Gtk.AttachOptions)(4)); - w53.YOptions = ((global::Gtk.AttachOptions)(4)); + global::Gtk.Table.TableChild w52 = ((global::Gtk.Table.TableChild)(this.table3[this.label3])); + w52.YPadding = ((uint)(10)); + w52.XOptions = ((global::Gtk.AttachOptions)(4)); + w52.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table3.Gtk.Table+TableChild this.labelBatteryLevel = new global::Gtk.Label(); this.labelBatteryLevel.Name = "labelBatteryLevel"; @@ -639,49 +636,36 @@ public partial class MainWindow this.labelBatteryLevel.Xalign = 0F; this.labelBatteryLevel.LabelProp = global::Mono.Unix.Catalog.GetString("Unknown"); this.table3.Add(this.labelBatteryLevel); - global::Gtk.Table.TableChild w54 = ((global::Gtk.Table.TableChild)(this.table3[this.labelBatteryLevel])); - w54.LeftAttach = ((uint)(1)); - w54.RightAttach = ((uint)(2)); - w54.YOptions = ((global::Gtk.AttachOptions)(4)); + global::Gtk.Table.TableChild w53 = ((global::Gtk.Table.TableChild)(this.table3[this.labelBatteryLevel])); + w53.LeftAttach = ((uint)(1)); + w53.RightAttach = ((uint)(2)); + w53.YOptions = ((global::Gtk.AttachOptions)(4)); this.vbox9.Add(this.table3); - global::Gtk.Box.BoxChild w55 = ((global::Gtk.Box.BoxChild)(this.vbox9[this.table3])); - w55.Position = 2; - w55.Expand = false; - w55.Fill = false; - // Container child vbox9.Gtk.Box+BoxChild - this.checkButtonGetBattery = new global::Gtk.CheckButton(); - this.checkButtonGetBattery.CanFocus = true; - this.checkButtonGetBattery.Name = "checkButtonGetBattery"; - this.checkButtonGetBattery.Label = global::Mono.Unix.Catalog.GetString("Get battery level"); - this.checkButtonGetBattery.Active = true; - this.checkButtonGetBattery.DrawIndicator = true; - this.checkButtonGetBattery.UseUnderline = true; - this.vbox9.Add(this.checkButtonGetBattery); - global::Gtk.Box.BoxChild w56 = ((global::Gtk.Box.BoxChild)(this.vbox9[this.checkButtonGetBattery])); - w56.Position = 3; - w56.Expand = false; - w56.Fill = false; + global::Gtk.Box.BoxChild w54 = ((global::Gtk.Box.BoxChild)(this.vbox9[this.table3])); + w54.Position = 2; + w54.Expand = false; + w54.Fill = false; this.gtkAlignmentRobotControl.Add(this.vbox9); this.vbox12.Add(this.gtkAlignmentRobotControl); - global::Gtk.Box.BoxChild w58 = ((global::Gtk.Box.BoxChild)(this.vbox12[this.gtkAlignmentRobotControl])); - w58.Position = 1; + global::Gtk.Box.BoxChild w56 = ((global::Gtk.Box.BoxChild)(this.vbox12[this.gtkAlignmentRobotControl])); + w56.Position = 1; this.vbox5.Add(this.vbox12); - global::Gtk.Box.BoxChild w59 = ((global::Gtk.Box.BoxChild)(this.vbox5[this.vbox12])); - w59.Position = 4; + global::Gtk.Box.BoxChild w57 = ((global::Gtk.Box.BoxChild)(this.vbox5[this.vbox12])); + w57.Position = 4; this.alignment3.Add(this.vbox5); this.hbox3.Add(this.alignment3); - global::Gtk.Box.BoxChild w61 = ((global::Gtk.Box.BoxChild)(this.hbox3[this.alignment3])); - w61.Position = 1; - w61.Expand = false; - w61.Fill = false; + global::Gtk.Box.BoxChild w59 = ((global::Gtk.Box.BoxChild)(this.hbox3[this.alignment3])); + w59.Position = 1; + w59.Expand = false; + w59.Fill = false; this.hbox1.Add(this.hbox3); - global::Gtk.Box.BoxChild w62 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.hbox3])); - w62.Position = 1; - w62.Expand = false; - w62.Fill = false; + global::Gtk.Box.BoxChild w60 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.hbox3])); + w60.Position = 1; + w60.Expand = false; + w60.Fill = false; this.vbox1.Add(this.hbox1); - global::Gtk.Box.BoxChild w63 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.hbox1])); - w63.Position = 1; + global::Gtk.Box.BoxChild w61 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.hbox1])); + w61.Position = 1; this.Add(this.vbox1); if ((this.Child != null)) { diff --git a/software/monitor/monitor/gtk-gui/gui.stetic b/software/monitor/monitor/gtk-gui/gui.stetic index c5412f8..26af0d7 100644 --- a/software/monitor/monitor/gtk-gui/gui.stetic +++ b/software/monitor/monitor/gtk-gui/gui.stetic @@ -809,20 +809,7 @@ - - - True - Get battery level - True - True - True - - - 3 - True - False - False - + diff --git a/software/monitor/monitor/monitor b/software/monitor/monitor/monitor index f916d3ae3fc85d69d1cf992a3f13a9814d298b2e..91a9f4d836646883dad1f4959056950b51297112 100755 GIT binary patch delta 31419 zcmc(I3w&I~b@$BO-Mg!mw9;KkyOJ!~>$kA{e#IuXu`J29jAdC58yg(VT3XqQC0+UM z$`6FO5|~$jfN@|6uL21P224pvumRIRL(`BCl8};y@DUfXYSoy z8B^%j{(j%$J$KGy&YU@O=FHrCXT`{ff8-Gcng!6e*XtGew72?}ch=3xV z`sv|^$47NnB&G?0fArDBC5QiJV(7-7O3_C6n^L^sJ3O(xP!mN!yIzr^CewaG&OEYJ zP7nU-ThJK;{o6;rD949h@TnStG(UOdNjY7fJaS4-n*JQr(Pu5bn(&G8ZXsUl6v6|% zTnPQ`CxzHmElKe?cG+ByxC9LPXsI1wAB1sUEpiazbU`b0K_j@-g@gz~&@><@H0`tw zx}Lh2z*MS>mc5!b9K|KoLIf`n>Y!2=Gs@;_Vl&!-kRhN9E!fa9OfnXTgXTJt(}pJ! z0UjANOQ=0SE@G!o$m5z3SVE~t+| zpf+*w+F1;p%dyBK5wlr&gOP)mgQSt^-tyC)LjTMng_!7vE|&CipV*?W<{9v*7TN5F zsM{rSLl&XVW|2?w$&!D8TeV?s=&8JxNj_VdeCQxco@IIEeM8v)U%ijig?)(4(ek^xUQPm-sp|3&~A=%^oVhDeWDkkjsQorm!FoXSL4hr%%sygLQ_xG zK)kM&>W~bgXXzr;5gv0q+7DKr)`|i%Ckg9kFatD@Zd{F4EDY^n-2|%3wm}|U3zo`M z7nBwkXa}!D4?JaF!)v`qq7%WL)d=k0v)CeFKI!t>ft9$}xyNCG4N6s(l0pi8Nejl_bWex=W9!M5g+aY@JT3CV^GYJ-y>4rXG?pB`n=(s=_bH1&gUSP#t zSweOLvAJe_b%BMpm74nE0?W=KqTsZ?X>9vTJ|vCWFnsQfZs7!3c~d(aR^}7ly2)gM zPn;S*jbtcoLWVBZT~O+H@)T*Hyk~n2pLss@Mx5GzW{p}7rKu6?7pVEb)TmO&WAnh& zO6xtQRw+XqYPIzNQ^zUU2|X7o_C*fA#`+K9*G++yWQ&cEI3?<5sU+;JYlJE08nUOp z%JON52dfp(TQ}9I5ES)-B3P1Z#fU7rQI3b#F%pl+@UwD1x-TgOF8~+)LvVMZzB80= z`pN~jt@4+qW`+v#8JiKnQEMmaS$n85^r&ezZf-z)h^F8zOt)c5cjh!0W_{HSI3&iB zZ1{^MKY=g=Cz2qfgB&a>PT@`1ZJ$Z6mr+cHYN1s{t#6P8Ph>3+OGZhZ^&TksI!io+ zLz&W*=c-7tGoiI%_{Cw@!H$CmfQnO#rrC}F*!0=Dk~vCT<$}vewC)^KQfnTDi@F3$ zupDGNmft=`CupLAUMx<9rwOYJ_Nf8*<)5Q&LFBZgIXklxowQXitKCS8LzW{gtC=E= zdicOpL|U$s)QE~H6-zuuqP|;LcTsZ)5;vKdvtbI>?b8vgo0^Fw#>po-46)06hHqw( zaObqBpO|y~Uy&wOoWItQpRxh?pqTK2ScKq&KRy)oQ)QUSWyp$tQ2Z)RXmL_;GMbB% zrB{<8TN}n^&1=qrRT%eD$Ft^qvRTxJTpZyHoGdObAag5K3KI1zg+9*l=Y*W)w|lde z^EL+oTVIi5|0v5w{uT8-ZY%Ss6>8*TUU8a1YMc4lo4MZSTEQ+OuN*@O+fu9*+VFYk zxXmj@nQH)6ZGD9;sELARd`hvJ1kHPJcTuj#& zxV5lBqWc7-?A~nWupLsKQ=3|)_l{cZ{|dQxb!}8ZOCeVT4`SMSt$om!ngcYbS=XX$ z-9rsvvIfh`Q?Mv_5OItYNH9wCmGTWCIYAS%7L!(y%T2^5WUOzHvS%G-c2*nW3fc%} zwGm>y>^7U##^j%a>}vdgG!_TXFb~59g#>fFtPUcRMZEvDDp1#2ex?F=1_}t~cv%HZ z{sO8vMhuhF^oWUhhE8gXnwYM^I?QS6HdgwA4vmPPJQW8IxMXKvQ z&)0Evm>#H-!n_I|EMkiYTK_>!D|N#}s4)>05afof!a{Hna=~eiDOPzgC8moXj zSj?J=(SNTsjaYfAv|-}Xj3IrhO{QR)1=HuCdZ9mJHWC}xCg*5*7xBDjKB9EBioo?99@FSUm3L6=dP zptU2fG6*(mJ09j{uw92FL2G}WBoW+ZQfo;iroJR+PHVA zs?Iu9$5z<+3RA5U$@P97CF}j7fa85lnL=4nrLU|hM6#aCGldDiJJXbM8viKW_0vd` zOq4dmgs6szG}aWRWKAh9h^jzvOrbQR4HL|oLWmU#7Ho&I-dzt@9K-}gmk4INM2NK_uS<&S zn9JO4PXDsqQ|%M)jP{w7YacrdrxymY2~RF6sM*C6Ma=?N3(XXVl2hV0+zCnrr33|M zinda>qFgUZ^UvCw*A=CYxMN#jO0I=~5pYMI=ee50ZWT5ENmZU_3ygxSXL+twf{*VoABw}-p!2La{ z614s-uMHwpyD5T`Fz)>!NYHvUPml;%t68vy1qoVj<_QuZE7*qa*#~P`lHi0X=0=b( z0SU9-$*ac%y~NEX?K!ci*`W~CA_=+<$)n^PQfL&q4nd&_xjiU|q&(6Pbv!bjts-cx zMzih`L4*lKW+ykP()a|HBxv>JNfN>BX;o!}9$N$t##ol1wLedm2sP#=)el=?n^hAR zP_>C%jbL^f5@KDGr$ceKC>?~vemqqObE_h#hKcMtCy&C;nL)QMMMhE7HZP<)Mp31C zkt$T1+gMAAjhO@`>Sio!43Vs_=NUtUsOcC($XSdb@>pY-vI?^@m}YB=jpC^J1-7BM z(!5v|qKDD#TPnn(A#>J~O@9+9l?=b1-@ta*gwn`aLz*ARWIeN0)EH7{g@DjoAe zRgQTf*F3P4d7-R%6z&J7K&v)P(0Vh^A|jysBj=ghssES)EbVRf__EDIZ9H=Ur+#9l_Bnf;dHMRYoABAAUxLaYn(x}>2meb;^0tnN-B&B*Ka5&zo7snxL43p-7x!L9aki1 zU6^5D%Pvx?MIyPj=TVgHSOR5P)QGz7K|#3(1!eps;cWA1uRo%I+UwUt zu{KQ5(hPS(AIUCiGnq}$s?4(0`=>J&wOK4l&{~!!Nd(t1pKQf!u1wHc>s01JT}?ip z!%TwK#d(^E;A*xm1%rK<>Y*x_1n3pP>;xjjx+br_;;w@@a;HL^Eh!;a*a>h_y#VG; zC8O*hraKaO6g3hw5S2!yGZ32f)ck*!3~H zh&k3SrsV9ZGODtBP~~qj->ssCkLV7?9?m1>v{W0_ZkVBlPH0TljUYQspX9(~jnqOHs3$=!)Vb6*V{Wa%qiG zB(vy_Z?TR_2Sfph6%Zh)Zm<-7)nfO)O_uX5?lvI$Tz{XQ)E^%V-(5?#olE*qnS)m!d{l%!pY}LVzE=nY(jJjF{P{Fl8UrbX}ZBVHaa5 zlVuZ)iSC|iqPwTEC%Ri<@Gc^C#zc3Ug~B#&K=lXl1BVi{s>^fzAwsr4%w0)b3=vIb z#m(!^Bx91b4FXPgoEcAI#-y?RA==pfFeTTY$;M>Y_{pyElU?Ic$Txlkl&QBB*2z5M zDdKb1laTdKdDaubNoZ;?rWjK!QIWM?^^v5EDPxT%+F0Y6k~4m)F_m`M^l;ah>Ta>8 zy4ItRZ~b}Dre4Nay=dJHB_d~CPl$CpaUItyZl3F>8PlxC&M@BQS3JhFvDQ=7vDPys zXZ>_zx_f^x-8CMC3ps$MS2>Y1-R%wv`Q2H`-63e%rIB2Jh?4COv(F{2(;vmn>rb6g zXKjSQn3+LRM%~!%5N&LCm_psL)jjMv#yM_(&T;z#is}z2YG$0{_6G&kpJA0bXu7!# zsJuh;vryQBSSe)L3}XhZ={)`@seFfmO4d>LQA7juXu|}pyYqZOgly_jh?9ES(5ZuH z2DJ!U59ie)!X$P3sv>t4t@zdn@*#FOLDR|KB$vHoR2C4)?N1&BWalYBy-`0QX!es{ zqu%us3eLE*S;+1%i=g$_j#;$hWJ=T=P&N@8M&hB!_8fsvNR6>k89~Bh&03enF($tjs@%yrtejk#`zP;fdF zVlAZ0)sjcaX_;rtb9Y7aTqP(tN{UzsRdki)QL;+xviZh**9YoNP92<&sHih>!AYdD z1;zqAidVQfNIap%q*sW#JuDb|OhegHl~R1cp(Y<*7N*j`>V}xaukAqh6TJo`b1%`c z<0~XXPwRoP4E5p!bXe_F*rybgEBWFx=@p7znx*eo@)1QZ$aN0BPvdc22K z@2s)0z)M`5#=%*b4PaV5SqYrwlmfv?=Tr?*cYwS>r?+r?!Q^48yNn+r%$TIr4HJ_O ze;TNO2JkkU4|CQEcgth3gFwMT~e-m!skc?pVE75HJrCijAW83I;7G zMWW@W^(tsdT><75>qyK-X_`3IQ7CNdYcSYfHv)<}1`r8~Q|A^5>s8PL>L|+S7-lWb z0K5-o!P%HXFZ0$5!#hJrJm{cPf2*2Bk$?Co6tb_tR51kG zji|?q^Fl70SE6yjy;Fxe3sq0ABJvFK$iF}xf{Q#-;V=(@Srl0M*Wd`HQZugx4X1rp zlzD{}s}zHVm+ZHLb)#T7XMetq3OJai_`Wmy_seU+rbci)NTVZkGiM0)XWcbWaRocO zz`Pb^^E!ZOOevrPTZmbI1&*xXrO(V})fw}8h(u1?S{dHc%$%J^4C*lv69P@(buE_xX7E;FW&@N% zy*iCoWV4a}=oX_WQsCbj-CB18s^oRcrRVhv>Rk)*?0cp{=uD1AZQyzHObx-Q{I0yB ze_{yQOUg0$zkG(MtqwU~e#LzHin)1Qzv zijMM+Wew5kz{=-Q3yBJcYb%10!bo8~j`#QvPY9ltIOC$#7Ylf#(C<0zEiRb#_qek6 z=s=j}59(z;M7VDTrlVJEgd$8?1TN1%3Ot1FN>O(sN}72SV4?DaKcexuQS(dWU~y_3 zj-6dxX(OLtayk)ia#YjtwHXrT2~i`W3&c3G`dj5Z&C7Xq=SFaZqAqnaG>oi6seFVY zfjmQp)-ja)(aI052U$zq0=a{&RE(q!Q+We20Ucd$qf7Zg^oFo@x~QBaIJA&0Cs793 z3{ZC~DyETwG;Rxr7f829kuirg)z&aKb6THF^^Ty5`DFkM+BjszGRH8?zd9_lx;Pck z>Yy?x-az6&&ovBRK~ViVfO--}1(g*&DlNuP%Snqgo~Wz%9&avVP7+Ev+(9y1T^WsS zGjF5zY#db1@AWWw0wWlulThrH;SHdew?i0bujt&cL#AHyl=FLNd#q#3E)=d0wP8|P zM@~~|{Q)$NP8cE*^p>}4!{lNd!1CLb!6g`U^f=0H_tas<(1j0fQy)Hf+)8X^4Y}24 zX2^D@A9tuSoB0(oQ&T42smf#s4n5WRA|Fg$q5x2<%9bv{xCk{Fh0}J zAdfLRMlGsU0B86KF(;B+^1~z>CpEQhocILh9|afA?nQ6H<4QR-G9h@6c^5o^{B&oQ zcCMlo`oCl+qo=({TbTBRnm=+UcM>jAz4d=7S;=g85A5ij+<9iR7q~wh1YvEM-7`#d z+PU+%pCxe50V^B09$`;`#h5j8RyWt_QiXWDW(?wm^%HuXP#LJU(};TBjL-#AUleR}g!Y9OY~_NFWU*6)I{yQ9kDA9T%+sf~S%l z=B*0WxAQo`J!{Zy7#p+>L6LbkN_=L{8x7XiJDm6Msz`C@K&!VpSZ{c3&WW^c(0Zzk zLxAdKe&ko`tyj!~0g;?{H0w)b=1d5Mr8azkd<_TcK~4A9K~^uS7XgG5d*EYr?>I|c z`?FSl;4GCtq3+x>jeay&H#@H#yX}0#&)VZBbCv(gJ$~*}>)Kg&eaz|~<|?0Q^_fP0 ztnRCywXW?IAFF)ovsOM!-QWBd>mvWSQ%|#g_t`5iK68veLS0YYJ&1cc*p2Y~&wQo= zlsZm_3v&iwpYBHYe^#C1Fxy7s4x)LC7<{=d=i=CO4VfB2jwiP5i?UgG^M;ve>-)GKkS3bNc?(47j3k*iSURG^;ZSEzC;CrW@aW+nVUF;O4*DG(cA)CPjQSlN#+0yC#~|)ba^=k{Q(vVx7$F*41;wqTICl>LO?d12A(aIJbgesGvXwPEy^er!e;wjDpNo$)1lkn(kE^%I16FIObqgTFD7*j%QOwegb* z^BbrXF&_df^XleNT*F$}V?K-md`jBPM~LZjkVgs84c~4<-+fV;KVbN5b<<4G074=_ zziHWR_%BM9>A1rTIFA5)#1MvF02~J;XZl0|_)4YWqr<4jptn#NV0itJNWjnSZmqni zz;9BcC@GRcqc~ym7|22!KTNKq2Lnsjc`!;!N!_24p+({1BlDVS?8ku^Mb@o|WSmv` zCe<^FjAHX!s^p}exhu^lh@cHqV9uVry-rHtQ#2%%zO`N#?kyf%x7S& zd6EJI2wxHPl#9x6=xphq!CzzMQAIeCn@1I6=TU_bapqCQ8S}`hsm739PHCHe&aVb4 zYE&3e)r(5Qtuke$Q+LYBa3%L(ixU@xL5gj3nglN&gou#PeMZ<(Uf^{A6h@HE$l=QPh zB~Z@PUbJ)_>hr5GZTMOg)!zef8#N(MANR2ol0QX{`v5`+-cD#|*$ZW96vy}+q$#O! z#&Ns`8l|2yX(XrarI9Y^LB1g-6yFq6>5HP6(^oczDPQ4Pulf-v&9NIhA^O17YHJx& z$Jxq~VQS0a)mU4YSL?8-NryGw>S5M|0%cczwFyC|-h@JjnOAW_k&_T{V~nRB{NP|! z=ekugGukaD*i)j&#|WxhaQ!V-v&o%lD><+;MXni{C&YCaw#l11MPNNYAr+I?Y-(u& zuM+rk7`4f(`smmue~{bd1+@=&3OqnRlnW>{u;Pj#e9Q1fRu|p)_TWpiVm{r>m!JS= zvLF;tC?zM4w(I8~0m*Dry3I04p z@OeMMSGmG7On-qT?+Xz9?-~BA_}-8%ei+$S5){u?Q27R9TS-W)HXifp;(Ha_N_25Q zC_(Wk%m0XtxF0&dDqg{k%ibxD;}R5y(3mcE6_5|UTC%MqERIGmiiE|&l8Yj`SX4Hr zN*6;=6c%?GL>Z2f>Mwwzi+1B8k1i$`PFnyDO;d3)jGZ-wSLj ziHNqsJJEq-FgIe0ugg0_)nap1EL<(VT262v5(@{#zeUKPe?x_!cn`Mg;-sMRBkY5# zQ5jEe(fc5JPuxnD{IG;2(SeXSTtPng^D;84u!!K%Ai>8g3I4l(TgiA~|6TDlRYCC> zyCuY`{}v;+UH&E$OB`A(^u&m?}dI~UtAi5Lqw|;`J2MFF!M(}OG zYH@Rv{B#M!PJb+{i=Ux46vjt5nk6D#;$_2LOtwW_ris-O30I7YCOmx`#q;h*qlDQ_ zm>wkBUqMxydejBgVkIHMWoaUo%D{1EBO!Ql!_@4!mbkS!UIDZ z3WWF$ur6Sw0ykh{R9p*81Mdaof?tU1ZT#gKLSI*?z~gLSk6}`OM_ey1&g0$WVAnG5 zCb2^Vp|r1(Ze+d;OoK5Ku?CEa+kr`OQQ1BC3l}qt`vF@E9t8YN z$AQc%{WjoghRYbXGdw0vfc|dyB;Ys1bAY#ciSj!x-;F;CB*kJ$^oL4*0Qg=h!4n>W z3GYjQBi^3?8Z2{*cok(`Qmti@^g!0erMLVwK&zY>t<2af-avU<;7!02l?1D+2p$w9 z`8N!wNGk6urDhI^UjeqUxi?i3eLpvIMoaVzzT^+S_L294L|Rw&0pKnEKl&o#M^O!b#pvCru1oP+SrBkX zWeMON{&K)8^|#T$>s96Y=8=~)Qu-Xjd%1y9FHw$4f^(TZmFY{kJelFo8QLH5rIgtR zxNLHHCBu0Po0tHLb)aDNfQh>JXNJ$pW6&H95JeU&2K-X#Vtr!_sX$y)>8sH3E?%5e zsCWZQj})W@i=2I$k$mOMGs@hiUsS%bnz3#t1PT&M@qKUUpS)%ZM{z1(MAb|SL0-e#62}RKU9DA(WiJA`}5};t=z07f*%X($|TvWwC$K&vztk zHPzOSskmMoXVI&~pQ8!fgy7@heAO#>_5l07d>UqRXfyU5|9d(|FJq7RKhilwvh{f2 zv-Nl!2(u+sWM5}1vX`RGp$CO?# z$%rojN|9fFxq>KO>}VC#1YY=|Tm(aG z#L}XPBjx0f>D+*-{LjU1<*_RAeM4m_9)L5I28q>1*xoHJNvSaJ^e+7Q^JUU zO{kvbJ2}7K^s-!y8U8{TtIp@X!VQb>q@^bbN`-hu zG*v-`M)6yv{V+H~92GBwO2zX`U#fi@-!Ce7HlJDU@t%h zeFgBZ;E3~+)JitfA5vz1MQd|f#myGfRdsuBmp->CE{rmQ6fDy1x1y%pt43gApXfWSvx9z z=bfxA)t*B+uI)ki#1U5Q7+rGU9>C?=9=WQdQF{vIUQyur-`*CDLg@mAU(gCXv?6MFvA_9G7EzlHDDsyyGV`Ucn+OA^{y@jWQo zQSc%}sp01tz6dx&O!QnEcttzML(M-gU-JD@dtNr-8NfWxYmpP691Fbz%EOfiK+jO% z1n9-l6A0wp(T`x_KUb7{4kLIcdVT?Ico+2x`AT^y;M)ubD;9wLfq$uontVrV=Vq!j zZ{=#wKZ4TgsnV7OuJmm6+%2y|c~{k8&mPaOf*EiZVN(60Y>X0&1^xu|^9vvLT<@tV z_^zh_!}kM^)SCQ12E4QUb-=fS@7Nkmq_;fez<&T~Ao8}y&=!S$57-#}Jt(J*e*)RILcHi&+!ICxm*btlg-|cSS!~7u9uyF8|5~@E|~z_ zA_oAs$$fyA$Pup{5jiGcPvu@aZbq6M&CYzADw@be5C8J;h;f!@jG zi$vOgmFyOWd@D7AmoR*;fXX$v5t)O(Z+s#0!!bOrdjT(;|60t@=4jp8F74aev)Zq; z-)kO^-&5t8=4tSBdOWtb0Aq&5Ui{osf>msyQRdh1XvqUwGoU6`3m?jB0DWQ^p5prP zkZPRpj?kKh$H(KQs_l{pW7WqBoBf2mPcW+fX0swky%&e6l%rw&k9u2}IJUBSoR$+L zxvr1N#k}LrLc0Zf2=yTozX!$dzoE>%s|Y6lQk9b^<1B(g{uhw@obnQs*Zz&7w_!DZ z4q1y7od$hNSe5DI>Io!eqK82*)HretccFMgo0FP=&%YDc2iN~CtJAhCrI zV;%D{v#yaNU&O8E zkry*zu_M<8BR?m0CeqtCb*)~KtGtAz@(4?ruv9D?oVx;G9zd(vGt`$@Ay&n^cki^! zp@E(?jhXgQS)p6z4l~`7x&KO8o4M;s8LI7QUfg+3ZwpY-`=lc*eL&PR;yiR94zb zX=~eNS7>9~122D>B<|mH}_8IkY!p+#+MGRIAI}xw9{!G&J|c z2U94w4XhqabtTbXmqL;a-Rb1sc$)d`L&-GZ=0KL3skvFkiaQdQ!Vi$4;mf>Y%WBUC zGo5+MmQ}Ws*r+GU38FudN@4V~c*8(yU&6|w$$?}#i41a?qpxvSvad&UQ9e_}Mspw? zPYxt3g|32|S!C4^33m7Qh|a`752w?C9$PeG9McI0<)CWbKNuf?3kL@w2XoT9%pTD} zsbGysIbvVj>T!m8wP`Wta9y-B(T5JNh9Rrt-3ie-WcAW@y&3OWZJGTYiIh2HfnX)< zlvAXUYoVwY6yK`Ev%vL-*cVSirPa{Ad%)a>(Saxepk-jMxjUgkz$vpYRGQcuPa?(l zB}5A?6K0Cb+*GQ$Cy7PC29F|~8C_BM@BAKL5RL04*HQ!24(peKRZ079#ZkgfxR2?1XY!mb1(ooNgump0SvFJ}#z7Yd6^m3wU}r_L(Voi5&2{yq=imIIA1gXjciG8ZTy+jW)hrcMRCN?E@4DH-WW6+SsyLP0JglI^m68$^+ z4zPDK$BxJqne&gx>6yhxWJLt78N|raTMT56yD%U`oyCNosE%zH;*2EHCXc)oBOrHO3+%Z$Wu8}vF1BJlZ7P|ZD

_X@%~Hr`IR;LIRm7(YGp|#*{puD3tmd`c&Q3$-cf! zl`Utk-H=G{Gp*eimqfhZ85b(06oGovf-Q(M=~OuJoW)E~SQ|1q=34cwvfAe57^$o` zY4sz44)y2nG1P=_8xX5ZWV-l(lL4qccW4W5UB#;8fM~@Uqx#;B-{r3xN~M#%NC-3~ zY3abatIBFmzzYP;wA*dzpY4S18l01%$)W_&;e=W~u~6)EO0=eCZn#{ID|6~#xM^*n zR(530!}`5I^dzx?U<$cnqe)X3Y@Ts0(v(2>CtO};)~#~hk>|Ens*zOL&t-}fMj?v~ zx*FOBoH(VGc#vCI)4bm;wzTESZ98bWck*RVmYzB91{u|{g7wGKne{hdDAYDXC1Rw{ z>`qT~U_zS?ojunzWDOwy#I5dKjd9CLVx2_z5wT+kj^J%qlerJ0V(v|JnPS6G|Bi&E z+G-i-HN}Mq%LH@4oZT2tqDaoMIUYA!_{F@^(3wV&+vCzsY`tcscEznhv9o8lTS~hn zQh{ZuHE!)58f1lC2%2n^3Dio3i};gkfV{?#io|l_y8Pj(VodEW^Nvq(aLVR6&-MCqGRWdCSfn`FLum8`v#(~H__h@I)(4eq_HL&9bWbFWA3 zF0sR*O(rdIoxC-}%3~_O(n8fT&_mN1l(n7iowC@REoL6SQ7)Q2yPE`Nck{(rKLrxw z#x(S*nVnj6C07`c2{D5 zx_N&Zn=I8rV|-w>**!$`dsm=ly);sC}-sO%$5PC_)Gf;ZDx z`7rs^jiv1%aCNTK1(!g8r$088D5{>)CPGoym|Rxmj^xf=S-L_{ef!!3(=uE?^^i}^|16BXk6I`>s+}U$*{K$mO#{jOszi(Dez6vJo?c;C9qD;Q;r;G7rEZ zg9n`8!n9XgA#6%;k0g?*RYR!*!W`V*yk`iRDt#bRbi4dNjSV=F*CJZ+zwl_lxpO=y zLa9Tn!eiFWC^a%~4VO0Jut=v6pKlbV=*NFU_@8hjaoRSXdHyc!RB!l-3}%8ExjfUJ zk(bU~vk7d3AKpF3aZTVzZVZ)hV}SqSVkb&5(F;D5Wg704(Smb95I(@;-^<8fd5+J! zTfXR(^7y~sC(AWlOTQ|8ekn7NhvogaoOoCs)#RMaQxD52nQI@Bhd?WORNjEg9goV3 zGpmouuF8rI=-+{F8p``{P0=rm&uh%|enrkH&XHnbV&;xx^0lxBuWVrhApEfb2NTXe z{@cf7uk;qQh^EZO$L0LYWsk{A?C~$2jD8q`epcFNlcgFMaJkvW5_rVs;xoo0Aw|fb^?7_TP1fMejx=O=bh$1(p_-Z+9}d)qLYce2iQAw8ziu=^Tq7mLA%H+A==VD` z4J~MXzmElceh;pNexK14K4^@5Mbk#^_Ad;N+!G#o@YDVs4Ue4hPgSu$wI&3Papg~f z5KyYmR7E`sh5RuuU+f3mzOzkYJIj)UPgkG`*6jm4t>z4{&P=7Aw-Ix-6%04HUz};gP=x zkGvQjxlN-n3$cMC&lbmg;gOeXeStuDlZMRxiz8m*B(8l&H2^gA^ErGe5wFy>)Z#^|%Vu=??c>g2`Xaq2Oh1W{}!zDa=xCY<#9^IIUYfRGv zxGcqYIlc|}HsjlZZ!5m-_-?{?E52XAH;!)t-z2{M_#zrZUOhbW6oF?wdaci^+ZcVY z7UH{v$Zrw&drimac|a@2ccrEm6ZKzFM)Srpe4FrHOT%HzEWpI#Jj8RVCOmRA2d;}9 z_6ZCpB@_)_LSP0k$>5Hcb)f}neKrCd=n~Wci$(<+{xJ}v;3y5je_*Zz6Oj(4(FC$L zCX6O9jHUo|hu0H9MU4ZuI%+=PmM~Evh3qtH@btbX#AE(4qV1P8dW;$vdATs=1q?CG zQztZU9aIJ+j$USt9+y*4^3xcJ%(=&9y==+!9+!)w;n^FSyJD*?Je;HF0cyI)^$dzGv|^7voOz;!yVbw}R3X2y}{9%?)?vaS4fpImbMw=ulqJzg|T z4ld_7;Q#fkY~4taP=odcU%}a(CvZxsv#E2(@ymXCadBD8Rcmkf&iAkCXeM*!>@xck zb9(4mc=wPsrwLnEdP$a=(`Ci!iR+x5$@H8az6G6=GJDf_M4Xu8+!182*r3kYzocyO z9KHu|$+HK0cF_M)_UoZ<|CD=9y%#_FY3B5CS?zcJpR~uvosgY!Ivt@GB8FF#I9Ww! z+eUE7`>5BAOER;bmeHz_JccSN_AX{eUcdynZe;g?QY1YvzNe<>W;J@SqfPv;Qr`Qa%@w)u2l3R@6Qu!5fW~qiIs6 z{TX=?o^Bp{Mou61Imj=>cQ$?rw7~g~1eb`S%)8IX`pgec%Aj1AsXZyrmoqZSlXAD5 zl=<07IT@!AOEUj{5;s-zP@6P-lCITw-72wDpp6Zlbi&3yobica|AZ&p-h(@~fyDAj2NJ1C=dCCX76+H% zRV_c;jqUI68%Qmmga;Ytrtqq(Kc1S^pX|0wikey2vY#7I_0QfrZ&D2R+sR&Rem5tq z6dvv@pEPgw+(}Rti)EFy^dJVYO^jiSZD)mM&xK%&p0F>U)OsNA!PM;d;NYY=N=4ej z%^y7{`HTk5S52ewR01;qjk2B?KFciHuwzS}=-Fr`_u`q>&P3`ns$Jl!%_$;1&HK>^ zJ#gZOgt5K^9v&{A6i=zw9oD4SP?Dahq~OTjcwZ`kUacq3u$DP&&scLDW0%btWBsx@ iSvNpn*&KI}R?vKGEcl7~o%@^fj~jm`-<5~w`u{JZCDT>_ delta 31020 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 L`>l3lUf}-#b)u6%