From d3506c443ff0c075b9d2f55c51aa4edfa707f016 Mon Sep 17 00:00:00 2001 From: klaxalk Date: Sat, 9 Dec 2023 08:22:28 +0000 Subject: [PATCH] deploy: 3b816814c540ad4dd2834d6baf8656f654cdcc02 --- .nojekyll | 0 annotated.html | 111 ++ annotated_dup.js | 10 + api_8h_source.html | 195 ++ bc_s.png | Bin 0 -> 676 bytes bdwn.png | Bin 0 -> 147 bytes classes.html | 124 ++ ...mrs__uav__hw__api_1_1DummyApi-members.html | 120 ++ classmrs__uav__hw__api_1_1DummyApi.html | 729 +++++++ classmrs__uav__hw__api_1_1DummyApi.js | 18 + ..._uav__hw__api_1_1DummyApi__coll__graph.map | 4 + ..._uav__hw__api_1_1DummyApi__coll__graph.md5 | 1 + ..._uav__hw__api_1_1DummyApi__coll__graph.png | Bin 0 -> 4494 bytes ...v__hw__api_1_1DummyApi__inherit__graph.map | 4 + ...v__hw__api_1_1DummyApi__inherit__graph.md5 | 1 + ...v__hw__api_1_1DummyApi__inherit__graph.png | Bin 0 -> 4494 bytes ..._uav__hw__api_1_1HwApiManager-members.html | 105 + classmrs__uav__hw__api_1_1HwApiManager.html | 137 ++ classmrs__uav__hw__api_1_1HwApiManager.js | 4 + ...__hw__api_1_1HwApiManager__coll__graph.map | 4 + ...__hw__api_1_1HwApiManager__coll__graph.md5 | 1 + ...__hw__api_1_1HwApiManager__coll__graph.png | Bin 0 -> 3845 bytes ...w__api_1_1HwApiManager__inherit__graph.map | 4 + ...w__api_1_1HwApiManager__inherit__graph.md5 | 1 + ...w__api_1_1HwApiManager__inherit__graph.png | Bin 0 -> 3845 bytes ...__uav__hw__api_1_1MrsUavHwApi-members.html | 120 ++ classmrs__uav__hw__api_1_1MrsUavHwApi.html | 724 +++++++ classmrs__uav__hw__api_1_1MrsUavHwApi.js | 19 + ...hw__api_1_1MrsUavHwApi__inherit__graph.map | 4 + ...hw__api_1_1MrsUavHwApi__inherit__graph.md5 | 1 + ...hw__api_1_1MrsUavHwApi__inherit__graph.png | Bin 0 -> 4517 bytes closed.png | Bin 0 -> 132 bytes common__handlers_8h_source.html | 140 ++ dir_61f64665b750523b32e515e683b7cce6.html | 102 + dir_61f64665b750523b32e515e683b7cce6.js | 6 + dir_68267d1309a1af8e8297ef4c3efbcdba.html | 102 + dir_d44c64559bbebec7f509842c48db8b23.html | 106 + dir_d44c64559bbebec7f509842c48db8b23.js | 4 + doc.png | Bin 0 -> 746 bytes doxygen.css | 1771 +++++++++++++++++ doxygen.png | Bin 0 -> 3779 bytes dynsections.js | 120 ++ files.html | 110 + files_dup.js | 4 + folderclosed.png | Bin 0 -> 616 bytes folderopen.png | Bin 0 -> 597 bytes functions.html | 250 +++ functions_func.html | 176 ++ functions_vars.html | 165 ++ graph_legend.html | 161 ++ graph_legend.md5 | 1 + graph_legend.png | Bin 0 -> 20615 bytes hierarchy.html | 113 ++ hierarchy.js | 11 + index.html | 139 ++ inherit_graph_0.map | 3 + inherit_graph_0.md5 | 1 + inherit_graph_0.png | Bin 0 -> 2615 bytes inherit_graph_1.map | 4 + inherit_graph_1.md5 | 1 + inherit_graph_1.png | Bin 0 -> 3645 bytes inherit_graph_2.map | 4 + inherit_graph_2.md5 | 1 + inherit_graph_2.png | Bin 0 -> 3053 bytes inherit_graph_3.map | 3 + inherit_graph_3.md5 | 1 + inherit_graph_3.png | Bin 0 -> 1954 bytes inherits.html | 127 ++ jquery.js | 35 + menu.js | 50 + menudata.js | 44 + nav_f.png | Bin 0 -> 153 bytes nav_g.png | Bin 0 -> 95 bytes nav_h.png | Bin 0 -> 98 bytes navtree.css | 146 ++ navtree.js | 544 +++++ navtreedata.js | 56 + navtreeindex0.js | 83 + open.png | Bin 0 -> 123 bytes publishers_8h_source.html | 207 ++ resize.js | 137 ++ search/all_0.html | 30 + search/all_0.js | 16 + search/all_1.html | 30 + search/all_1.js | 4 + search/all_2.html | 30 + search/all_2.js | 8 + search/all_3.html | 30 + search/all_3.js | 4 + search/all_4.html | 30 + search/all_4.js | 4 + search/all_5.html | 30 + search/all_5.js | 5 + search/all_6.html | 30 + search/all_6.js | 22 + search/all_7.html | 30 + search/all_7.js | 4 + search/all_8.html | 30 + search/all_8.js | 4 + search/classes_0.html | 30 + search/classes_0.js | 4 + search/classes_1.html | 30 + search/classes_1.js | 4 + search/classes_2.html | 30 + search/classes_2.js | 4 + search/classes_3.html | 30 + search/classes_3.js | 4 + search/classes_4.html | 30 + search/classes_4.js | 4 + search/close.png | Bin 0 -> 273 bytes search/functions_0.html | 30 + search/functions_0.js | 15 + search/functions_1.html | 30 + search/functions_1.js | 5 + search/functions_2.html | 30 + search/functions_2.js | 4 + search/functions_3.html | 30 + search/functions_3.js | 4 + search/mag_sel.png | Bin 0 -> 465 bytes search/nomatches.html | 12 + search/pages_0.html | 30 + search/pages_0.js | 4 + search/search.css | 271 +++ search/search.js | 814 ++++++++ search/search_l.png | Bin 0 -> 567 bytes search/search_m.png | Bin 0 -> 158 bytes search/search_r.png | Bin 0 -> 553 bytes search/searchdata.js | 27 + search/variables_0.html | 30 + search/variables_0.js | 6 + search/variables_1.html | 30 + search/variables_1.js | 21 + search/variables_2.html | 30 + search/variables_2.js | 4 + splitbar.png | Bin 0 -> 314 bytes ..._hw__api_1_1CommonHandlers__t-members.html | 109 + ...rs__uav__hw__api_1_1CommonHandlers__t.html | 150 ++ ...tmrs__uav__hw__api_1_1CommonHandlers__t.js | 8 + ..._api_1_1CommonHandlers__t__coll__graph.map | 4 + ..._api_1_1CommonHandlers__t__coll__graph.md5 | 1 + ..._api_1_1CommonHandlers__t__coll__graph.png | Bin 0 -> 6313 bytes ...uav__hw__api_1_1Publishers__t-members.html | 121 ++ structmrs__uav__hw__api_1_1Publishers__t.html | 187 ++ structmrs__uav__hw__api_1_1Publishers__t.js | 20 + sync_off.png | Bin 0 -> 853 bytes sync_on.png | Bin 0 -> 845 bytes tab_a.png | Bin 0 -> 142 bytes tab_b.png | Bin 0 -> 169 bytes tab_h.png | Bin 0 -> 177 bytes tab_s.png | Bin 0 -> 184 bytes tabs.css | 1 + 151 files changed, 9908 insertions(+) create mode 100644 .nojekyll create mode 100644 annotated.html create mode 100644 annotated_dup.js create mode 100644 api_8h_source.html create mode 100644 bc_s.png create mode 100644 bdwn.png create mode 100644 classes.html create mode 100644 classmrs__uav__hw__api_1_1DummyApi-members.html create mode 100644 classmrs__uav__hw__api_1_1DummyApi.html create mode 100644 classmrs__uav__hw__api_1_1DummyApi.js create mode 100644 classmrs__uav__hw__api_1_1DummyApi__coll__graph.map create mode 100644 classmrs__uav__hw__api_1_1DummyApi__coll__graph.md5 create mode 100644 classmrs__uav__hw__api_1_1DummyApi__coll__graph.png create mode 100644 classmrs__uav__hw__api_1_1DummyApi__inherit__graph.map create mode 100644 classmrs__uav__hw__api_1_1DummyApi__inherit__graph.md5 create mode 100644 classmrs__uav__hw__api_1_1DummyApi__inherit__graph.png create mode 100644 classmrs__uav__hw__api_1_1HwApiManager-members.html create mode 100644 classmrs__uav__hw__api_1_1HwApiManager.html create mode 100644 classmrs__uav__hw__api_1_1HwApiManager.js create mode 100644 classmrs__uav__hw__api_1_1HwApiManager__coll__graph.map create mode 100644 classmrs__uav__hw__api_1_1HwApiManager__coll__graph.md5 create mode 100644 classmrs__uav__hw__api_1_1HwApiManager__coll__graph.png create mode 100644 classmrs__uav__hw__api_1_1HwApiManager__inherit__graph.map create mode 100644 classmrs__uav__hw__api_1_1HwApiManager__inherit__graph.md5 create mode 100644 classmrs__uav__hw__api_1_1HwApiManager__inherit__graph.png create mode 100644 classmrs__uav__hw__api_1_1MrsUavHwApi-members.html create mode 100644 classmrs__uav__hw__api_1_1MrsUavHwApi.html create mode 100644 classmrs__uav__hw__api_1_1MrsUavHwApi.js create mode 100644 classmrs__uav__hw__api_1_1MrsUavHwApi__inherit__graph.map create mode 100644 classmrs__uav__hw__api_1_1MrsUavHwApi__inherit__graph.md5 create mode 100644 classmrs__uav__hw__api_1_1MrsUavHwApi__inherit__graph.png create mode 100644 closed.png create mode 100644 common__handlers_8h_source.html create mode 100644 dir_61f64665b750523b32e515e683b7cce6.html create mode 100644 dir_61f64665b750523b32e515e683b7cce6.js create mode 100644 dir_68267d1309a1af8e8297ef4c3efbcdba.html create mode 100644 dir_d44c64559bbebec7f509842c48db8b23.html create mode 100644 dir_d44c64559bbebec7f509842c48db8b23.js create mode 100644 doc.png create mode 100644 doxygen.css create mode 100644 doxygen.png create mode 100644 dynsections.js create mode 100644 files.html create mode 100644 files_dup.js create mode 100644 folderclosed.png create mode 100644 folderopen.png create mode 100644 functions.html create mode 100644 functions_func.html create mode 100644 functions_vars.html create mode 100644 graph_legend.html create mode 100644 graph_legend.md5 create mode 100644 graph_legend.png create mode 100644 hierarchy.html create mode 100644 hierarchy.js create mode 100644 index.html create mode 100644 inherit_graph_0.map create mode 100644 inherit_graph_0.md5 create mode 100644 inherit_graph_0.png create mode 100644 inherit_graph_1.map create mode 100644 inherit_graph_1.md5 create mode 100644 inherit_graph_1.png create mode 100644 inherit_graph_2.map create mode 100644 inherit_graph_2.md5 create mode 100644 inherit_graph_2.png create mode 100644 inherit_graph_3.map create mode 100644 inherit_graph_3.md5 create mode 100644 inherit_graph_3.png create mode 100644 inherits.html create mode 100644 jquery.js create mode 100644 menu.js create mode 100644 menudata.js create mode 100644 nav_f.png create mode 100644 nav_g.png create mode 100644 nav_h.png create mode 100644 navtree.css create mode 100644 navtree.js create mode 100644 navtreedata.js create mode 100644 navtreeindex0.js create mode 100644 open.png create mode 100644 publishers_8h_source.html create mode 100644 resize.js create mode 100644 search/all_0.html create mode 100644 search/all_0.js create mode 100644 search/all_1.html create mode 100644 search/all_1.js create mode 100644 search/all_2.html create mode 100644 search/all_2.js create mode 100644 search/all_3.html create mode 100644 search/all_3.js create mode 100644 search/all_4.html create mode 100644 search/all_4.js create mode 100644 search/all_5.html create mode 100644 search/all_5.js create mode 100644 search/all_6.html create mode 100644 search/all_6.js create mode 100644 search/all_7.html create mode 100644 search/all_7.js create mode 100644 search/all_8.html create mode 100644 search/all_8.js create mode 100644 search/classes_0.html create mode 100644 search/classes_0.js create mode 100644 search/classes_1.html create mode 100644 search/classes_1.js create mode 100644 search/classes_2.html create mode 100644 search/classes_2.js create mode 100644 search/classes_3.html create mode 100644 search/classes_3.js create mode 100644 search/classes_4.html create mode 100644 search/classes_4.js create mode 100644 search/close.png create mode 100644 search/functions_0.html create mode 100644 search/functions_0.js create mode 100644 search/functions_1.html create mode 100644 search/functions_1.js create mode 100644 search/functions_2.html create mode 100644 search/functions_2.js create mode 100644 search/functions_3.html create mode 100644 search/functions_3.js create mode 100644 search/mag_sel.png create mode 100644 search/nomatches.html create mode 100644 search/pages_0.html create mode 100644 search/pages_0.js create mode 100644 search/search.css create mode 100644 search/search.js create mode 100644 search/search_l.png create mode 100644 search/search_m.png create mode 100644 search/search_r.png create mode 100644 search/searchdata.js create mode 100644 search/variables_0.html create mode 100644 search/variables_0.js create mode 100644 search/variables_1.html create mode 100644 search/variables_1.js create mode 100644 search/variables_2.html create mode 100644 search/variables_2.js create mode 100644 splitbar.png create mode 100644 structmrs__uav__hw__api_1_1CommonHandlers__t-members.html create mode 100644 structmrs__uav__hw__api_1_1CommonHandlers__t.html create mode 100644 structmrs__uav__hw__api_1_1CommonHandlers__t.js create mode 100644 structmrs__uav__hw__api_1_1CommonHandlers__t__coll__graph.map create mode 100644 structmrs__uav__hw__api_1_1CommonHandlers__t__coll__graph.md5 create mode 100644 structmrs__uav__hw__api_1_1CommonHandlers__t__coll__graph.png create mode 100644 structmrs__uav__hw__api_1_1Publishers__t-members.html create mode 100644 structmrs__uav__hw__api_1_1Publishers__t.html create mode 100644 structmrs__uav__hw__api_1_1Publishers__t.js create mode 100644 sync_off.png create mode 100644 sync_on.png create mode 100644 tab_a.png create mode 100644 tab_b.png create mode 100644 tab_h.png create mode 100644 tab_s.png create mode 100644 tabs.css diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/annotated.html b/annotated.html new file mode 100644 index 0000000..d12c043 --- /dev/null +++ b/annotated.html @@ -0,0 +1,111 @@ + + + + + + + +mrs_uav_hw_api: Class List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
mrs_uav_hw_api +
+
An abstraction layer between the MRS UAV System and a low-level Flight Controller
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Class List
+
+
+
Here are the classes, structs, unions and interfaces with brief descriptions:
+
[detail level 12]
+ + + + + + +
 Nmrs_uav_hw_api
 CCommonHandlers_tA structure with methods and variables provided to the HW API Plugin
 CDummyApi
 CHwApiManager
 CMrsUavHwApiInterface for the HW API Plugin
 CPublishers_tA structure with publisher methods provided to the HW API Plugin. The plugin can call these methods at will to provided data to the MRS UAV System. In case the HW API Plugin intents to publish data, the respective varible "produces_***" in the HW API Capabilities of the plugin is supposed to be fill in
+
+
+
+ + + + diff --git a/annotated_dup.js b/annotated_dup.js new file mode 100644 index 0000000..96a86c3 --- /dev/null +++ b/annotated_dup.js @@ -0,0 +1,10 @@ +var annotated_dup = +[ + [ "mrs_uav_hw_api", null, [ + [ "CommonHandlers_t", "structmrs__uav__hw__api_1_1CommonHandlers__t.html", "structmrs__uav__hw__api_1_1CommonHandlers__t" ], + [ "DummyApi", "classmrs__uav__hw__api_1_1DummyApi.html", "classmrs__uav__hw__api_1_1DummyApi" ], + [ "HwApiManager", "classmrs__uav__hw__api_1_1HwApiManager.html", "classmrs__uav__hw__api_1_1HwApiManager" ], + [ "MrsUavHwApi", "classmrs__uav__hw__api_1_1MrsUavHwApi.html", "classmrs__uav__hw__api_1_1MrsUavHwApi" ], + [ "Publishers_t", "structmrs__uav__hw__api_1_1Publishers__t.html", "structmrs__uav__hw__api_1_1Publishers__t" ] + ] ] +]; \ No newline at end of file diff --git a/api_8h_source.html b/api_8h_source.html new file mode 100644 index 0000000..2785c07 --- /dev/null +++ b/api_8h_source.html @@ -0,0 +1,195 @@ + + + + + + + +mrs_uav_hw_api: include/mrs_uav_hw_api/api.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
mrs_uav_hw_api +
+
An abstraction layer between the MRS UAV System and a low-level Flight Controller
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
api.h
+
+
+
1 #ifndef MRS_UAV_HW_API_H
+
2 #define MRS_UAV_HW_API_H
+
3 
+
4 /* includes //{ */
+
5 
+
6 #include <ros/ros.h>
+
7 
+
8 #include <mrs_lib/subscribe_handler.h>
+
9 
+
10 #include <mrs_uav_hw_api/common_handlers.h>
+
11 
+
12 #include <mrs_msgs/HwApiActuatorCmd.h>
+
13 #include <mrs_msgs/HwApiControlGroupCmd.h>
+
14 #include <mrs_msgs/HwApiAttitudeCmd.h>
+
15 #include <mrs_msgs/HwApiAttitudeRateCmd.h>
+
16 #include <mrs_msgs/HwApiAccelerationHdgRateCmd.h>
+
17 #include <mrs_msgs/HwApiAccelerationHdgCmd.h>
+
18 #include <mrs_msgs/HwApiVelocityHdgRateCmd.h>
+
19 #include <mrs_msgs/HwApiVelocityHdgCmd.h>
+
20 #include <mrs_msgs/HwApiPositionCmd.h>
+
21 #include <mrs_msgs/HwApiStatus.h>
+
22 #include <mrs_msgs/HwApiCapabilities.h>
+
23 #include <mrs_msgs/TrackerCommand.h>
+
24 
+
25 //}
+
26 
+
27 namespace mrs_uav_hw_api
+
28 {
+
29 
+
33 class MrsUavHwApi {
+
34 
+
35 public:
+
42  virtual void initialize(const ros::NodeHandle& parent_nh, std::shared_ptr<mrs_uav_hw_api::CommonHandlers_t> common_handlers) = 0;
+
43 
+
50  virtual mrs_msgs::HwApiStatus getStatus() = 0;
+
51 
+
57  virtual mrs_msgs::HwApiCapabilities getCapabilities() = 0;
+
58 
+
59  // --------------------------------------------------------------
+
60  // | topic callbacks |
+
61  // --------------------------------------------------------------
+
62 
+
70  virtual bool callbackActuatorCmd(const mrs_msgs::HwApiActuatorCmd::ConstPtr msg) = 0;
+
71 
+
79  virtual bool callbackControlGroupCmd(const mrs_msgs::HwApiControlGroupCmd::ConstPtr msg) = 0;
+
80 
+
88  virtual bool callbackAttitudeRateCmd(const mrs_msgs::HwApiAttitudeRateCmd::ConstPtr msg) = 0;
+
89 
+
97  virtual bool callbackAttitudeCmd(const mrs_msgs::HwApiAttitudeCmd::ConstPtr msg) = 0;
+
98 
+
106  virtual bool callbackAccelerationHdgRateCmd(const mrs_msgs::HwApiAccelerationHdgRateCmd::ConstPtr msg) = 0;
+
107 
+
115  virtual bool callbackAccelerationHdgCmd(const mrs_msgs::HwApiAccelerationHdgCmd::ConstPtr msg) = 0;
+
116 
+
124  virtual bool callbackVelocityHdgRateCmd(const mrs_msgs::HwApiVelocityHdgRateCmd::ConstPtr msg) = 0;
+
125 
+
133  virtual bool callbackVelocityHdgCmd(const mrs_msgs::HwApiVelocityHdgCmd::ConstPtr msg) = 0;
+
134 
+
142  virtual bool callbackPositionCmd(const mrs_msgs::HwApiPositionCmd::ConstPtr msg) = 0;
+
143 
+
150  virtual void callbackTrackerCmd(const mrs_msgs::TrackerCommand::ConstPtr msg) = 0;
+
151 
+
152  // --------------------------------------------------------------
+
153  // | service callbacks |
+
154  // --------------------------------------------------------------
+
155 
+
163  virtual std::tuple<bool, std::string> callbackArming(const bool& request) = 0;
+
164 
+
171  virtual std::tuple<bool, std::string> callbackOffboard(void) = 0;
+
172 
+
176  virtual ~MrsUavHwApi() = default;
+
177 };
+
178 
+
179 } // namespace mrs_uav_hw_api
+
180 
+
181 #endif
+
+
+
virtual bool callbackAccelerationHdgRateCmd(const mrs_msgs::HwApiAccelerationHdgRateCmd::ConstPtr msg)=0
Callback for the incoming Acceleration+HdgRateCmd control reference.
+
virtual mrs_msgs::HwApiCapabilities getCapabilities()=0
Method for obtaining the capabilities of the HW API Plugin. This method will be called repeatedly (af...
+
virtual bool callbackActuatorCmd(const mrs_msgs::HwApiActuatorCmd::ConstPtr msg)=0
Callback for the incoming ActuatorCmd control reference.
+
virtual bool callbackVelocityHdgRateCmd(const mrs_msgs::HwApiVelocityHdgRateCmd::ConstPtr msg)=0
Callback for the incoming Velocity+HdgRateCmd control reference.
+
virtual bool callbackAttitudeCmd(const mrs_msgs::HwApiAttitudeCmd::ConstPtr msg)=0
Callback for the incoming Attitude+ThrottleCmd control reference.
+
virtual ~MrsUavHwApi()=default
Destructor.
+
virtual void initialize(const ros::NodeHandle &parent_nh, std::shared_ptr< mrs_uav_hw_api::CommonHandlers_t > common_handlers)=0
The initialization method. This will be called only once at the beginning of the lifetime of the plug...
+
virtual bool callbackPositionCmd(const mrs_msgs::HwApiPositionCmd::ConstPtr msg)=0
Callback for the incoming Velocity+PositionCmd control reference.
+
virtual std::tuple< bool, std::string > callbackArming(const bool &request)=0
Callback for a service call for arming/disarming the flight controller.
+
virtual bool callbackAccelerationHdgCmd(const mrs_msgs::HwApiAccelerationHdgCmd::ConstPtr msg)=0
Callback for the incoming Acceleration+HdgCmd control reference.
+
Interface for the HW API Plugin.
Definition: api.h:33
+
virtual std::tuple< bool, std::string > callbackOffboard(void)=0
Callback for a service call for switching the flight controller to the "offboard" mode....
+
virtual bool callbackControlGroupCmd(const mrs_msgs::HwApiControlGroupCmd::ConstPtr msg)=0
Callback for the incoming ControlGroupCmd control reference.
+
virtual bool callbackAttitudeRateCmd(const mrs_msgs::HwApiAttitudeRateCmd::ConstPtr msg)=0
Callback for the incoming AttitudeRate+ThrottleCmd control reference.
+
virtual mrs_msgs::HwApiStatus getStatus()=0
Method for acquiring the HW API plugin's status. This method will be called repeatedly to obtain the ...
+
virtual bool callbackVelocityHdgCmd(const mrs_msgs::HwApiVelocityHdgCmd::ConstPtr msg)=0
Callback for the incoming Velocity+HdgCmd control reference.
+
virtual void callbackTrackerCmd(const mrs_msgs::TrackerCommand::ConstPtr msg)=0
Callback for the incoming TrackerCommand. The tracker command is provided by the reference generator ...
+ + + + diff --git a/bc_s.png b/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/bdwn.png b/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 + + + + + + +mrs_uav_hw_api: Class Index + + + + + + + + + + + + + +
+
+ + + + + + + +
+
mrs_uav_hw_api +
+
An abstraction layer between the MRS UAV System and a low-level Flight Controller
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Class Index
+
+
+
c | d | h | m | p
+ + + + + + + + + + + + + + + +
  c  
+
  d  
+
  h  
+
  m  
+
  p  
+
CommonHandlers_t (mrs_uav_hw_api)   DummyApi (mrs_uav_hw_api)   HwApiManager (mrs_uav_hw_api)   MrsUavHwApi (mrs_uav_hw_api)   Publishers_t (mrs_uav_hw_api)   
+
c | d | h | m | p
+
+
+ + + + diff --git a/classmrs__uav__hw__api_1_1DummyApi-members.html b/classmrs__uav__hw__api_1_1DummyApi-members.html new file mode 100644 index 0000000..f4a8d57 --- /dev/null +++ b/classmrs__uav__hw__api_1_1DummyApi-members.html @@ -0,0 +1,120 @@ + + + + + + + +mrs_uav_hw_api: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
mrs_uav_hw_api +
+
An abstraction layer between the MRS UAV System and a low-level Flight Controller
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
mrs_uav_hw_api::DummyApi Member List
+
+
+ +

This is the complete list of members for mrs_uav_hw_api::DummyApi, including all inherited members.

+ + + + + + + + + + + + + + + + + +
callbackAccelerationHdgCmd(const mrs_msgs::HwApiAccelerationHdgCmd::ConstPtr msg)mrs_uav_hw_api::DummyApivirtual
callbackAccelerationHdgRateCmd(const mrs_msgs::HwApiAccelerationHdgRateCmd::ConstPtr msg)mrs_uav_hw_api::DummyApivirtual
callbackActuatorCmd(const mrs_msgs::HwApiActuatorCmd::ConstPtr msg)mrs_uav_hw_api::DummyApivirtual
callbackArming(const bool &request)mrs_uav_hw_api::DummyApivirtual
callbackAttitudeCmd(const mrs_msgs::HwApiAttitudeCmd::ConstPtr msg)mrs_uav_hw_api::DummyApivirtual
callbackAttitudeRateCmd(const mrs_msgs::HwApiAttitudeRateCmd::ConstPtr msg)mrs_uav_hw_api::DummyApivirtual
callbackControlGroupCmd(const mrs_msgs::HwApiControlGroupCmd::ConstPtr msg)mrs_uav_hw_api::DummyApivirtual
callbackOffboard(void)mrs_uav_hw_api::DummyApivirtual
callbackPositionCmd(const mrs_msgs::HwApiPositionCmd::ConstPtr msg)mrs_uav_hw_api::DummyApivirtual
callbackTrackerCmd(const mrs_msgs::TrackerCommand::ConstPtr msg)mrs_uav_hw_api::DummyApivirtual
callbackVelocityHdgCmd(const mrs_msgs::HwApiVelocityHdgCmd::ConstPtr msg)mrs_uav_hw_api::DummyApivirtual
callbackVelocityHdgRateCmd(const mrs_msgs::HwApiVelocityHdgRateCmd::ConstPtr msg)mrs_uav_hw_api::DummyApivirtual
getCapabilities()mrs_uav_hw_api::DummyApivirtual
getStatus()mrs_uav_hw_api::DummyApivirtual
initialize(const ros::NodeHandle &parent_nh, std::shared_ptr< mrs_uav_hw_api::CommonHandlers_t > common_handlers)mrs_uav_hw_api::DummyApivirtual
~MrsUavHwApi()=defaultmrs_uav_hw_api::MrsUavHwApivirtual
+
+ + + + diff --git a/classmrs__uav__hw__api_1_1DummyApi.html b/classmrs__uav__hw__api_1_1DummyApi.html new file mode 100644 index 0000000..c52536a --- /dev/null +++ b/classmrs__uav__hw__api_1_1DummyApi.html @@ -0,0 +1,729 @@ + + + + + + + +mrs_uav_hw_api: mrs_uav_hw_api::DummyApi Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
mrs_uav_hw_api +
+
An abstraction layer between the MRS UAV System and a low-level Flight Controller
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
mrs_uav_hw_api::DummyApi Class Reference
+
+
+
+ + Inheritance diagram for mrs_uav_hw_api::DummyApi:
+
+
+ +
+ + Collaboration diagram for mrs_uav_hw_api::DummyApi:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

void initialize (const ros::NodeHandle &parent_nh, std::shared_ptr< mrs_uav_hw_api::CommonHandlers_t > common_handlers)
 The initialization method. This will be called only once at the beginning of the lifetime of the plugin (after initialize()). More...
 
mrs_msgs::HwApiStatus getStatus ()
 Method for acquiring the HW API plugin's status. This method will be called repeatedly to obtain the status, which will be publisher by the plugin manager. More...
 
mrs_msgs::HwApiCapabilities getCapabilities ()
 Method for obtaining the capabilities of the HW API Plugin. This method will be called repeatedly (after initialize()). More...
 
bool callbackActuatorCmd (const mrs_msgs::HwApiActuatorCmd::ConstPtr msg)
 Callback for the incoming ActuatorCmd control reference. More...
 
bool callbackControlGroupCmd (const mrs_msgs::HwApiControlGroupCmd::ConstPtr msg)
 Callback for the incoming ControlGroupCmd control reference. More...
 
bool callbackAttitudeRateCmd (const mrs_msgs::HwApiAttitudeRateCmd::ConstPtr msg)
 Callback for the incoming AttitudeRate+ThrottleCmd control reference. More...
 
bool callbackAttitudeCmd (const mrs_msgs::HwApiAttitudeCmd::ConstPtr msg)
 Callback for the incoming Attitude+ThrottleCmd control reference. More...
 
bool callbackAccelerationHdgRateCmd (const mrs_msgs::HwApiAccelerationHdgRateCmd::ConstPtr msg)
 Callback for the incoming Acceleration+HdgRateCmd control reference. More...
 
bool callbackAccelerationHdgCmd (const mrs_msgs::HwApiAccelerationHdgCmd::ConstPtr msg)
 Callback for the incoming Acceleration+HdgCmd control reference. More...
 
bool callbackVelocityHdgRateCmd (const mrs_msgs::HwApiVelocityHdgRateCmd::ConstPtr msg)
 Callback for the incoming Velocity+HdgRateCmd control reference. More...
 
bool callbackVelocityHdgCmd (const mrs_msgs::HwApiVelocityHdgCmd::ConstPtr msg)
 Callback for the incoming Velocity+HdgCmd control reference. More...
 
bool callbackPositionCmd (const mrs_msgs::HwApiPositionCmd::ConstPtr msg)
 Callback for the incoming Velocity+PositionCmd control reference. More...
 
void callbackTrackerCmd (const mrs_msgs::TrackerCommand::ConstPtr msg)
 Callback for the incoming TrackerCommand. The tracker command is provided by the reference generator of the MRS UAV System and it can be used as a source for feed forward control action. More...
 
std::tuple< bool, std::string > callbackArming (const bool &request)
 Callback for a service call for arming/disarming the flight controller. More...
 
std::tuple< bool, std::string > callbackOffboard (void)
 Callback for a service call for switching the flight controller to the "offboard" mode. When in offboard mode, the flight controller is using the provided reference commands for control. More...
 
- Public Member Functions inherited from mrs_uav_hw_api::MrsUavHwApi
+virtual ~MrsUavHwApi ()=default
 Destructor.
 
+

Member Function Documentation

+ +

◆ callbackAccelerationHdgCmd()

+ +
+
+ + + + + +
+ + + + + + + + +
bool mrs_uav_hw_api::DummyApi::callbackAccelerationHdgCmd (const mrs_msgs::HwApiAccelerationHdgCmd::ConstPtr msg)
+
+virtual
+
+ +

Callback for the incoming Acceleration+HdgCmd control reference.

+
Parameters
+ + +
msgincoming ROS message
+
+
+
Returns
success (true if processed).
+ +

Implements mrs_uav_hw_api::MrsUavHwApi.

+ +
+
+ +

◆ callbackAccelerationHdgRateCmd()

+ +
+
+ + + + + +
+ + + + + + + + +
bool mrs_uav_hw_api::DummyApi::callbackAccelerationHdgRateCmd (const mrs_msgs::HwApiAccelerationHdgRateCmd::ConstPtr msg)
+
+virtual
+
+ +

Callback for the incoming Acceleration+HdgRateCmd control reference.

+
Parameters
+ + +
msgincoming ROS message
+
+
+
Returns
success (true if processed).
+ +

Implements mrs_uav_hw_api::MrsUavHwApi.

+ +
+
+ +

◆ callbackActuatorCmd()

+ +
+
+ + + + + +
+ + + + + + + + +
bool mrs_uav_hw_api::DummyApi::callbackActuatorCmd (const mrs_msgs::HwApiActuatorCmd::ConstPtr msg)
+
+virtual
+
+ +

Callback for the incoming ActuatorCmd control reference.

+
Parameters
+ + +
msgincoming ROS message
+
+
+
Returns
success (true if processed).
+ +

Implements mrs_uav_hw_api::MrsUavHwApi.

+ +
+
+ +

◆ callbackArming()

+ +
+
+ + + + + +
+ + + + + + + + +
std::tuple< bool, std::string > mrs_uav_hw_api::DummyApi::callbackArming (const bool & request)
+
+virtual
+
+ +

Callback for a service call for arming/disarming the flight controller.

+
Parameters
+ + +
requestArm/Disarm.
+
+
+
Returns
tuple(succes, message)
+ +

Implements mrs_uav_hw_api::MrsUavHwApi.

+ +
+
+ +

◆ callbackAttitudeCmd()

+ +
+
+ + + + + +
+ + + + + + + + +
bool mrs_uav_hw_api::DummyApi::callbackAttitudeCmd (const mrs_msgs::HwApiAttitudeCmd::ConstPtr msg)
+
+virtual
+
+ +

Callback for the incoming Attitude+ThrottleCmd control reference.

+
Parameters
+ + +
msgincoming ROS message
+
+
+
Returns
success (true if processed).
+ +

Implements mrs_uav_hw_api::MrsUavHwApi.

+ +
+
+ +

◆ callbackAttitudeRateCmd()

+ +
+
+ + + + + +
+ + + + + + + + +
bool mrs_uav_hw_api::DummyApi::callbackAttitudeRateCmd (const mrs_msgs::HwApiAttitudeRateCmd::ConstPtr msg)
+
+virtual
+
+ +

Callback for the incoming AttitudeRate+ThrottleCmd control reference.

+
Parameters
+ + +
msgincoming ROS message
+
+
+
Returns
success (true if processed).
+ +

Implements mrs_uav_hw_api::MrsUavHwApi.

+ +
+
+ +

◆ callbackControlGroupCmd()

+ +
+
+ + + + + +
+ + + + + + + + +
bool mrs_uav_hw_api::DummyApi::callbackControlGroupCmd (const mrs_msgs::HwApiControlGroupCmd::ConstPtr msg)
+
+virtual
+
+ +

Callback for the incoming ControlGroupCmd control reference.

+
Parameters
+ + +
msgincoming ROS message
+
+
+
Returns
success (true if processed).
+ +

Implements mrs_uav_hw_api::MrsUavHwApi.

+ +
+
+ +

◆ callbackOffboard()

+ +
+
+ + + + + +
+ + + + + + + + +
std::tuple< bool, std::string > mrs_uav_hw_api::DummyApi::callbackOffboard (void )
+
+virtual
+
+ +

Callback for a service call for switching the flight controller to the "offboard" mode. When in offboard mode, the flight controller is using the provided reference commands for control.

+
Returns
tuple(succes, message)
+ +

Implements mrs_uav_hw_api::MrsUavHwApi.

+ +
+
+ +

◆ callbackPositionCmd()

+ +
+
+ + + + + +
+ + + + + + + + +
bool mrs_uav_hw_api::DummyApi::callbackPositionCmd (const mrs_msgs::HwApiPositionCmd::ConstPtr msg)
+
+virtual
+
+ +

Callback for the incoming Velocity+PositionCmd control reference.

+
Parameters
+ + +
msgincoming ROS message
+
+
+
Returns
success (true if processed).
+ +

Implements mrs_uav_hw_api::MrsUavHwApi.

+ +
+
+ +

◆ callbackTrackerCmd()

+ +
+
+ + + + + +
+ + + + + + + + +
void mrs_uav_hw_api::DummyApi::callbackTrackerCmd (const mrs_msgs::TrackerCommand::ConstPtr msg)
+
+virtual
+
+ +

Callback for the incoming TrackerCommand. The tracker command is provided by the reference generator of the MRS UAV System and it can be used as a source for feed forward control action.

+
Parameters
+ + +
msgincoming ROS message
+
+
+ +

Implements mrs_uav_hw_api::MrsUavHwApi.

+ +
+
+ +

◆ callbackVelocityHdgCmd()

+ +
+
+ + + + + +
+ + + + + + + + +
bool mrs_uav_hw_api::DummyApi::callbackVelocityHdgCmd (const mrs_msgs::HwApiVelocityHdgCmd::ConstPtr msg)
+
+virtual
+
+ +

Callback for the incoming Velocity+HdgCmd control reference.

+
Parameters
+ + +
msgincoming ROS message
+
+
+
Returns
success (true if processed).
+ +

Implements mrs_uav_hw_api::MrsUavHwApi.

+ +
+
+ +

◆ callbackVelocityHdgRateCmd()

+ +
+
+ + + + + +
+ + + + + + + + +
bool mrs_uav_hw_api::DummyApi::callbackVelocityHdgRateCmd (const mrs_msgs::HwApiVelocityHdgRateCmd::ConstPtr msg)
+
+virtual
+
+ +

Callback for the incoming Velocity+HdgRateCmd control reference.

+
Parameters
+ + +
msgincoming ROS message
+
+
+
Returns
success (true if processed).
+ +

Implements mrs_uav_hw_api::MrsUavHwApi.

+ +
+
+ +

◆ getCapabilities()

+ +
+
+ + + + + +
+ + + + + + + +
mrs_msgs::HwApiCapabilities mrs_uav_hw_api::DummyApi::getCapabilities ()
+
+virtual
+
+ +

Method for obtaining the capabilities of the HW API Plugin. This method will be called repeatedly (after initialize()).

+
Returns
The capabilities ROS message.
+ +

Implements mrs_uav_hw_api::MrsUavHwApi.

+ +
+
+ +

◆ getStatus()

+ +
+
+ + + + + +
+ + + + + + + +
mrs_msgs::HwApiStatus mrs_uav_hw_api::DummyApi::getStatus ()
+
+virtual
+
+ +

Method for acquiring the HW API plugin's status. This method will be called repeatedly to obtain the status, which will be publisher by the plugin manager.

+
Returns
The status ROS message.
+ +

Implements mrs_uav_hw_api::MrsUavHwApi.

+ +
+
+ +

◆ initialize()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void mrs_uav_hw_api::DummyApi::initialize (const ros::NodeHandle & parent_nh,
std::shared_ptr< mrs_uav_hw_api::CommonHandlers_tcommon_handlers 
)
+
+virtual
+
+ +

The initialization method. This will be called only once at the beginning of the lifetime of the plugin (after initialize()).

+
Parameters
+ + + +
parent_nhNode handle of the HW API plugin manager. Use this to create subscibers, publisher, etc.
common_handlersStructure pre-filled with useful variables, methods and objects that the plugin can use.
+
+
+ +

Implements mrs_uav_hw_api::MrsUavHwApi.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • src/dummy_api.cpp
  • +
+
+
+ + + + diff --git a/classmrs__uav__hw__api_1_1DummyApi.js b/classmrs__uav__hw__api_1_1DummyApi.js new file mode 100644 index 0000000..a728e19 --- /dev/null +++ b/classmrs__uav__hw__api_1_1DummyApi.js @@ -0,0 +1,18 @@ +var classmrs__uav__hw__api_1_1DummyApi = +[ + [ "callbackAccelerationHdgCmd", "classmrs__uav__hw__api_1_1DummyApi.html#ac904bff4c9b37aa2b5ee8aa30d922f79", null ], + [ "callbackAccelerationHdgRateCmd", "classmrs__uav__hw__api_1_1DummyApi.html#af8681be68b7f7e7cdbf12c8ce22fbe31", null ], + [ "callbackActuatorCmd", "classmrs__uav__hw__api_1_1DummyApi.html#ac87d448f75cbd8a1b8d4da0467d163e9", null ], + [ "callbackArming", "classmrs__uav__hw__api_1_1DummyApi.html#a565c955f9541ccb72a904f67bd02f83c", null ], + [ "callbackAttitudeCmd", "classmrs__uav__hw__api_1_1DummyApi.html#afd1ca6edaef8e060de452de555422191", null ], + [ "callbackAttitudeRateCmd", "classmrs__uav__hw__api_1_1DummyApi.html#a4c628110de00a3df84e44cad7190e364", null ], + [ "callbackControlGroupCmd", "classmrs__uav__hw__api_1_1DummyApi.html#a218c3ffb446ca0b45f241e2790a4b684", null ], + [ "callbackOffboard", "classmrs__uav__hw__api_1_1DummyApi.html#a1c8081a81f3f1a684cafecd627e75e22", null ], + [ "callbackPositionCmd", "classmrs__uav__hw__api_1_1DummyApi.html#ad6ef3a2c6514595361959664cf6af850", null ], + [ "callbackTrackerCmd", "classmrs__uav__hw__api_1_1DummyApi.html#aa022a02c75d33e4e93f112537a1fdf86", null ], + [ "callbackVelocityHdgCmd", "classmrs__uav__hw__api_1_1DummyApi.html#a9dbd76d8646e8414c4c4b6405e988f00", null ], + [ "callbackVelocityHdgRateCmd", "classmrs__uav__hw__api_1_1DummyApi.html#a3cbaa93b72033097ece1f833d022968f", null ], + [ "getCapabilities", "classmrs__uav__hw__api_1_1DummyApi.html#a3328034dca690d917ce2689c1eb13b52", null ], + [ "getStatus", "classmrs__uav__hw__api_1_1DummyApi.html#af7bbab47dba560abd5a76a273c07e157", null ], + [ "initialize", "classmrs__uav__hw__api_1_1DummyApi.html#a12c9b64ebdd7787cb78f23f75892d76d", null ] +]; \ No newline at end of file diff --git a/classmrs__uav__hw__api_1_1DummyApi__coll__graph.map b/classmrs__uav__hw__api_1_1DummyApi__coll__graph.map new file mode 100644 index 0000000..905ba0a --- /dev/null +++ b/classmrs__uav__hw__api_1_1DummyApi__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/classmrs__uav__hw__api_1_1DummyApi__coll__graph.md5 b/classmrs__uav__hw__api_1_1DummyApi__coll__graph.md5 new file mode 100644 index 0000000..936291d --- /dev/null +++ b/classmrs__uav__hw__api_1_1DummyApi__coll__graph.md5 @@ -0,0 +1 @@ +5d3f612062590287f59255e19b5f03fa \ No newline at end of file diff --git a/classmrs__uav__hw__api_1_1DummyApi__coll__graph.png b/classmrs__uav__hw__api_1_1DummyApi__coll__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..54e84f0c7e558719bdc15c86ad85e2c41842fcbe GIT binary patch literal 4494 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 + + + diff --git a/classmrs__uav__hw__api_1_1DummyApi__inherit__graph.md5 b/classmrs__uav__hw__api_1_1DummyApi__inherit__graph.md5 new file mode 100644 index 0000000..936291d --- /dev/null +++ b/classmrs__uav__hw__api_1_1DummyApi__inherit__graph.md5 @@ -0,0 +1 @@ +5d3f612062590287f59255e19b5f03fa \ No newline at end of file diff --git a/classmrs__uav__hw__api_1_1DummyApi__inherit__graph.png b/classmrs__uav__hw__api_1_1DummyApi__inherit__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..54e84f0c7e558719bdc15c86ad85e2c41842fcbe GIT binary patch literal 4494 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 + + + + + + +mrs_uav_hw_api: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
mrs_uav_hw_api +
+
An abstraction layer between the MRS UAV System and a low-level Flight Controller
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
mrs_uav_hw_api::HwApiManager Member List
+
+
+ +

This is the complete list of members for mrs_uav_hw_api::HwApiManager, including all inherited members.

+ + +
onInit() (defined in mrs_uav_hw_api::HwApiManager)mrs_uav_hw_api::HwApiManagervirtual
+
+ + + + diff --git a/classmrs__uav__hw__api_1_1HwApiManager.html b/classmrs__uav__hw__api_1_1HwApiManager.html new file mode 100644 index 0000000..3b0b43a --- /dev/null +++ b/classmrs__uav__hw__api_1_1HwApiManager.html @@ -0,0 +1,137 @@ + + + + + + + +mrs_uav_hw_api: mrs_uav_hw_api::HwApiManager Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
mrs_uav_hw_api +
+
An abstraction layer between the MRS UAV System and a low-level Flight Controller
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
mrs_uav_hw_api::HwApiManager Class Reference
+
+
+
+ + Inheritance diagram for mrs_uav_hw_api::HwApiManager:
+
+
+ +
+ + Collaboration diagram for mrs_uav_hw_api::HwApiManager:
+
+
+ + + + + +

+Public Member Functions

+virtual void onInit ()
 
+
The documentation for this class was generated from the following file:
    +
  • src/hw_api_manager.cpp
  • +
+
+
+ + + + diff --git a/classmrs__uav__hw__api_1_1HwApiManager.js b/classmrs__uav__hw__api_1_1HwApiManager.js new file mode 100644 index 0000000..3147d51 --- /dev/null +++ b/classmrs__uav__hw__api_1_1HwApiManager.js @@ -0,0 +1,4 @@ +var classmrs__uav__hw__api_1_1HwApiManager = +[ + [ "onInit", "classmrs__uav__hw__api_1_1HwApiManager.html#ad9caf16a0e5b196a476b2b870af92627", null ] +]; \ No newline at end of file diff --git a/classmrs__uav__hw__api_1_1HwApiManager__coll__graph.map b/classmrs__uav__hw__api_1_1HwApiManager__coll__graph.map new file mode 100644 index 0000000..489681a --- /dev/null +++ b/classmrs__uav__hw__api_1_1HwApiManager__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/classmrs__uav__hw__api_1_1HwApiManager__coll__graph.md5 b/classmrs__uav__hw__api_1_1HwApiManager__coll__graph.md5 new file mode 100644 index 0000000..ffb437c --- /dev/null +++ b/classmrs__uav__hw__api_1_1HwApiManager__coll__graph.md5 @@ -0,0 +1 @@ +2554979daf08ced293db3ecfe016a414 \ No newline at end of file diff --git a/classmrs__uav__hw__api_1_1HwApiManager__coll__graph.png b/classmrs__uav__hw__api_1_1HwApiManager__coll__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..b83dc88b02b607bc32960d3c6da6dc1d72bac6af GIT binary patch literal 3845 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 literal 0 HcmV?d00001 diff --git a/classmrs__uav__hw__api_1_1HwApiManager__inherit__graph.map b/classmrs__uav__hw__api_1_1HwApiManager__inherit__graph.map new file mode 100644 index 0000000..489681a --- /dev/null +++ b/classmrs__uav__hw__api_1_1HwApiManager__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/classmrs__uav__hw__api_1_1HwApiManager__inherit__graph.md5 b/classmrs__uav__hw__api_1_1HwApiManager__inherit__graph.md5 new file mode 100644 index 0000000..ffb437c --- /dev/null +++ b/classmrs__uav__hw__api_1_1HwApiManager__inherit__graph.md5 @@ -0,0 +1 @@ +2554979daf08ced293db3ecfe016a414 \ No newline at end of file diff --git a/classmrs__uav__hw__api_1_1HwApiManager__inherit__graph.png b/classmrs__uav__hw__api_1_1HwApiManager__inherit__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..b83dc88b02b607bc32960d3c6da6dc1d72bac6af GIT binary patch literal 3845 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 literal 0 HcmV?d00001 diff --git a/classmrs__uav__hw__api_1_1MrsUavHwApi-members.html b/classmrs__uav__hw__api_1_1MrsUavHwApi-members.html new file mode 100644 index 0000000..e345c37 --- /dev/null +++ b/classmrs__uav__hw__api_1_1MrsUavHwApi-members.html @@ -0,0 +1,120 @@ + + + + + + + +mrs_uav_hw_api: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
mrs_uav_hw_api +
+
An abstraction layer between the MRS UAV System and a low-level Flight Controller
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
mrs_uav_hw_api::MrsUavHwApi Member List
+
+
+ +

This is the complete list of members for mrs_uav_hw_api::MrsUavHwApi, including all inherited members.

+ + + + + + + + + + + + + + + + + +
callbackAccelerationHdgCmd(const mrs_msgs::HwApiAccelerationHdgCmd::ConstPtr msg)=0mrs_uav_hw_api::MrsUavHwApipure virtual
callbackAccelerationHdgRateCmd(const mrs_msgs::HwApiAccelerationHdgRateCmd::ConstPtr msg)=0mrs_uav_hw_api::MrsUavHwApipure virtual
callbackActuatorCmd(const mrs_msgs::HwApiActuatorCmd::ConstPtr msg)=0mrs_uav_hw_api::MrsUavHwApipure virtual
callbackArming(const bool &request)=0mrs_uav_hw_api::MrsUavHwApipure virtual
callbackAttitudeCmd(const mrs_msgs::HwApiAttitudeCmd::ConstPtr msg)=0mrs_uav_hw_api::MrsUavHwApipure virtual
callbackAttitudeRateCmd(const mrs_msgs::HwApiAttitudeRateCmd::ConstPtr msg)=0mrs_uav_hw_api::MrsUavHwApipure virtual
callbackControlGroupCmd(const mrs_msgs::HwApiControlGroupCmd::ConstPtr msg)=0mrs_uav_hw_api::MrsUavHwApipure virtual
callbackOffboard(void)=0mrs_uav_hw_api::MrsUavHwApipure virtual
callbackPositionCmd(const mrs_msgs::HwApiPositionCmd::ConstPtr msg)=0mrs_uav_hw_api::MrsUavHwApipure virtual
callbackTrackerCmd(const mrs_msgs::TrackerCommand::ConstPtr msg)=0mrs_uav_hw_api::MrsUavHwApipure virtual
callbackVelocityHdgCmd(const mrs_msgs::HwApiVelocityHdgCmd::ConstPtr msg)=0mrs_uav_hw_api::MrsUavHwApipure virtual
callbackVelocityHdgRateCmd(const mrs_msgs::HwApiVelocityHdgRateCmd::ConstPtr msg)=0mrs_uav_hw_api::MrsUavHwApipure virtual
getCapabilities()=0mrs_uav_hw_api::MrsUavHwApipure virtual
getStatus()=0mrs_uav_hw_api::MrsUavHwApipure virtual
initialize(const ros::NodeHandle &parent_nh, std::shared_ptr< mrs_uav_hw_api::CommonHandlers_t > common_handlers)=0mrs_uav_hw_api::MrsUavHwApipure virtual
~MrsUavHwApi()=defaultmrs_uav_hw_api::MrsUavHwApivirtual
+
+ + + + diff --git a/classmrs__uav__hw__api_1_1MrsUavHwApi.html b/classmrs__uav__hw__api_1_1MrsUavHwApi.html new file mode 100644 index 0000000..a69a1f8 --- /dev/null +++ b/classmrs__uav__hw__api_1_1MrsUavHwApi.html @@ -0,0 +1,724 @@ + + + + + + + +mrs_uav_hw_api: mrs_uav_hw_api::MrsUavHwApi Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
mrs_uav_hw_api +
+
An abstraction layer between the MRS UAV System and a low-level Flight Controller
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
mrs_uav_hw_api::MrsUavHwApi Class Referenceabstract
+
+
+ +

Interface for the HW API Plugin. + More...

+ +

#include <api.h>

+
+ + Inheritance diagram for mrs_uav_hw_api::MrsUavHwApi:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual void initialize (const ros::NodeHandle &parent_nh, std::shared_ptr< mrs_uav_hw_api::CommonHandlers_t > common_handlers)=0
 The initialization method. This will be called only once at the beginning of the lifetime of the plugin (after initialize()). More...
 
virtual mrs_msgs::HwApiStatus getStatus ()=0
 Method for acquiring the HW API plugin's status. This method will be called repeatedly to obtain the status, which will be publisher by the plugin manager. More...
 
virtual mrs_msgs::HwApiCapabilities getCapabilities ()=0
 Method for obtaining the capabilities of the HW API Plugin. This method will be called repeatedly (after initialize()). More...
 
virtual bool callbackActuatorCmd (const mrs_msgs::HwApiActuatorCmd::ConstPtr msg)=0
 Callback for the incoming ActuatorCmd control reference. More...
 
virtual bool callbackControlGroupCmd (const mrs_msgs::HwApiControlGroupCmd::ConstPtr msg)=0
 Callback for the incoming ControlGroupCmd control reference. More...
 
virtual bool callbackAttitudeRateCmd (const mrs_msgs::HwApiAttitudeRateCmd::ConstPtr msg)=0
 Callback for the incoming AttitudeRate+ThrottleCmd control reference. More...
 
virtual bool callbackAttitudeCmd (const mrs_msgs::HwApiAttitudeCmd::ConstPtr msg)=0
 Callback for the incoming Attitude+ThrottleCmd control reference. More...
 
virtual bool callbackAccelerationHdgRateCmd (const mrs_msgs::HwApiAccelerationHdgRateCmd::ConstPtr msg)=0
 Callback for the incoming Acceleration+HdgRateCmd control reference. More...
 
virtual bool callbackAccelerationHdgCmd (const mrs_msgs::HwApiAccelerationHdgCmd::ConstPtr msg)=0
 Callback for the incoming Acceleration+HdgCmd control reference. More...
 
virtual bool callbackVelocityHdgRateCmd (const mrs_msgs::HwApiVelocityHdgRateCmd::ConstPtr msg)=0
 Callback for the incoming Velocity+HdgRateCmd control reference. More...
 
virtual bool callbackVelocityHdgCmd (const mrs_msgs::HwApiVelocityHdgCmd::ConstPtr msg)=0
 Callback for the incoming Velocity+HdgCmd control reference. More...
 
virtual bool callbackPositionCmd (const mrs_msgs::HwApiPositionCmd::ConstPtr msg)=0
 Callback for the incoming Velocity+PositionCmd control reference. More...
 
virtual void callbackTrackerCmd (const mrs_msgs::TrackerCommand::ConstPtr msg)=0
 Callback for the incoming TrackerCommand. The tracker command is provided by the reference generator of the MRS UAV System and it can be used as a source for feed forward control action. More...
 
virtual std::tuple< bool, std::string > callbackArming (const bool &request)=0
 Callback for a service call for arming/disarming the flight controller. More...
 
virtual std::tuple< bool, std::string > callbackOffboard (void)=0
 Callback for a service call for switching the flight controller to the "offboard" mode. When in offboard mode, the flight controller is using the provided reference commands for control. More...
 
+virtual ~MrsUavHwApi ()=default
 Destructor.
 
+

Detailed Description

+

Interface for the HW API Plugin.

+

Member Function Documentation

+ +

◆ callbackAccelerationHdgCmd()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual bool mrs_uav_hw_api::MrsUavHwApi::callbackAccelerationHdgCmd (const mrs_msgs::HwApiAccelerationHdgCmd::ConstPtr msg)
+
+pure virtual
+
+ +

Callback for the incoming Acceleration+HdgCmd control reference.

+
Parameters
+ + +
msgincoming ROS message
+
+
+
Returns
success (true if processed).
+ +

Implemented in mrs_uav_hw_api::DummyApi.

+ +
+
+ +

◆ callbackAccelerationHdgRateCmd()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual bool mrs_uav_hw_api::MrsUavHwApi::callbackAccelerationHdgRateCmd (const mrs_msgs::HwApiAccelerationHdgRateCmd::ConstPtr msg)
+
+pure virtual
+
+ +

Callback for the incoming Acceleration+HdgRateCmd control reference.

+
Parameters
+ + +
msgincoming ROS message
+
+
+
Returns
success (true if processed).
+ +

Implemented in mrs_uav_hw_api::DummyApi.

+ +
+
+ +

◆ callbackActuatorCmd()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual bool mrs_uav_hw_api::MrsUavHwApi::callbackActuatorCmd (const mrs_msgs::HwApiActuatorCmd::ConstPtr msg)
+
+pure virtual
+
+ +

Callback for the incoming ActuatorCmd control reference.

+
Parameters
+ + +
msgincoming ROS message
+
+
+
Returns
success (true if processed).
+ +

Implemented in mrs_uav_hw_api::DummyApi.

+ +
+
+ +

◆ callbackArming()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual std::tuple<bool, std::string> mrs_uav_hw_api::MrsUavHwApi::callbackArming (const bool & request)
+
+pure virtual
+
+ +

Callback for a service call for arming/disarming the flight controller.

+
Parameters
+ + +
requestArm/Disarm.
+
+
+
Returns
tuple(succes, message)
+ +

Implemented in mrs_uav_hw_api::DummyApi.

+ +
+
+ +

◆ callbackAttitudeCmd()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual bool mrs_uav_hw_api::MrsUavHwApi::callbackAttitudeCmd (const mrs_msgs::HwApiAttitudeCmd::ConstPtr msg)
+
+pure virtual
+
+ +

Callback for the incoming Attitude+ThrottleCmd control reference.

+
Parameters
+ + +
msgincoming ROS message
+
+
+
Returns
success (true if processed).
+ +

Implemented in mrs_uav_hw_api::DummyApi.

+ +
+
+ +

◆ callbackAttitudeRateCmd()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual bool mrs_uav_hw_api::MrsUavHwApi::callbackAttitudeRateCmd (const mrs_msgs::HwApiAttitudeRateCmd::ConstPtr msg)
+
+pure virtual
+
+ +

Callback for the incoming AttitudeRate+ThrottleCmd control reference.

+
Parameters
+ + +
msgincoming ROS message
+
+
+
Returns
success (true if processed).
+ +

Implemented in mrs_uav_hw_api::DummyApi.

+ +
+
+ +

◆ callbackControlGroupCmd()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual bool mrs_uav_hw_api::MrsUavHwApi::callbackControlGroupCmd (const mrs_msgs::HwApiControlGroupCmd::ConstPtr msg)
+
+pure virtual
+
+ +

Callback for the incoming ControlGroupCmd control reference.

+
Parameters
+ + +
msgincoming ROS message
+
+
+
Returns
success (true if processed).
+ +

Implemented in mrs_uav_hw_api::DummyApi.

+ +
+
+ +

◆ callbackOffboard()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual std::tuple<bool, std::string> mrs_uav_hw_api::MrsUavHwApi::callbackOffboard (void )
+
+pure virtual
+
+ +

Callback for a service call for switching the flight controller to the "offboard" mode. When in offboard mode, the flight controller is using the provided reference commands for control.

+
Returns
tuple(succes, message)
+ +

Implemented in mrs_uav_hw_api::DummyApi.

+ +
+
+ +

◆ callbackPositionCmd()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual bool mrs_uav_hw_api::MrsUavHwApi::callbackPositionCmd (const mrs_msgs::HwApiPositionCmd::ConstPtr msg)
+
+pure virtual
+
+ +

Callback for the incoming Velocity+PositionCmd control reference.

+
Parameters
+ + +
msgincoming ROS message
+
+
+
Returns
success (true if processed).
+ +

Implemented in mrs_uav_hw_api::DummyApi.

+ +
+
+ +

◆ callbackTrackerCmd()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void mrs_uav_hw_api::MrsUavHwApi::callbackTrackerCmd (const mrs_msgs::TrackerCommand::ConstPtr msg)
+
+pure virtual
+
+ +

Callback for the incoming TrackerCommand. The tracker command is provided by the reference generator of the MRS UAV System and it can be used as a source for feed forward control action.

+
Parameters
+ + +
msgincoming ROS message
+
+
+ +

Implemented in mrs_uav_hw_api::DummyApi.

+ +
+
+ +

◆ callbackVelocityHdgCmd()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual bool mrs_uav_hw_api::MrsUavHwApi::callbackVelocityHdgCmd (const mrs_msgs::HwApiVelocityHdgCmd::ConstPtr msg)
+
+pure virtual
+
+ +

Callback for the incoming Velocity+HdgCmd control reference.

+
Parameters
+ + +
msgincoming ROS message
+
+
+
Returns
success (true if processed).
+ +

Implemented in mrs_uav_hw_api::DummyApi.

+ +
+
+ +

◆ callbackVelocityHdgRateCmd()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual bool mrs_uav_hw_api::MrsUavHwApi::callbackVelocityHdgRateCmd (const mrs_msgs::HwApiVelocityHdgRateCmd::ConstPtr msg)
+
+pure virtual
+
+ +

Callback for the incoming Velocity+HdgRateCmd control reference.

+
Parameters
+ + +
msgincoming ROS message
+
+
+
Returns
success (true if processed).
+ +

Implemented in mrs_uav_hw_api::DummyApi.

+ +
+
+ +

◆ getCapabilities()

+ +
+
+ + + + + +
+ + + + + + + +
virtual mrs_msgs::HwApiCapabilities mrs_uav_hw_api::MrsUavHwApi::getCapabilities ()
+
+pure virtual
+
+ +

Method for obtaining the capabilities of the HW API Plugin. This method will be called repeatedly (after initialize()).

+
Returns
The capabilities ROS message.
+ +

Implemented in mrs_uav_hw_api::DummyApi.

+ +
+
+ +

◆ getStatus()

+ +
+
+ + + + + +
+ + + + + + + +
virtual mrs_msgs::HwApiStatus mrs_uav_hw_api::MrsUavHwApi::getStatus ()
+
+pure virtual
+
+ +

Method for acquiring the HW API plugin's status. This method will be called repeatedly to obtain the status, which will be publisher by the plugin manager.

+
Returns
The status ROS message.
+ +

Implemented in mrs_uav_hw_api::DummyApi.

+ +
+
+ +

◆ initialize()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual void mrs_uav_hw_api::MrsUavHwApi::initialize (const ros::NodeHandle & parent_nh,
std::shared_ptr< mrs_uav_hw_api::CommonHandlers_tcommon_handlers 
)
+
+pure virtual
+
+ +

The initialization method. This will be called only once at the beginning of the lifetime of the plugin (after initialize()).

+
Parameters
+ + + +
parent_nhNode handle of the HW API plugin manager. Use this to create subscibers, publisher, etc.
common_handlersStructure pre-filled with useful variables, methods and objects that the plugin can use.
+
+
+ +

Implemented in mrs_uav_hw_api::DummyApi.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • include/mrs_uav_hw_api/api.h
  • +
+
+
+ + + + diff --git a/classmrs__uav__hw__api_1_1MrsUavHwApi.js b/classmrs__uav__hw__api_1_1MrsUavHwApi.js new file mode 100644 index 0000000..c723da5 --- /dev/null +++ b/classmrs__uav__hw__api_1_1MrsUavHwApi.js @@ -0,0 +1,19 @@ +var classmrs__uav__hw__api_1_1MrsUavHwApi = +[ + [ "~MrsUavHwApi", "classmrs__uav__hw__api_1_1MrsUavHwApi.html#ac56c138bfac82f134d2c67558d49e51d", null ], + [ "callbackAccelerationHdgCmd", "classmrs__uav__hw__api_1_1MrsUavHwApi.html#af88b2aa16a8e88662cf6c16747acdf82", null ], + [ "callbackAccelerationHdgRateCmd", "classmrs__uav__hw__api_1_1MrsUavHwApi.html#a5903740fdd654da8e0b1f0fcd34d852b", null ], + [ "callbackActuatorCmd", "classmrs__uav__hw__api_1_1MrsUavHwApi.html#a397145b920c1600b974fa3a5d107411a", null ], + [ "callbackArming", "classmrs__uav__hw__api_1_1MrsUavHwApi.html#ad549fd61bfa9996b1aaa49946d814156", null ], + [ "callbackAttitudeCmd", "classmrs__uav__hw__api_1_1MrsUavHwApi.html#a537f4a53b84aee069bc3a8dd6a6620f7", null ], + [ "callbackAttitudeRateCmd", "classmrs__uav__hw__api_1_1MrsUavHwApi.html#afb549fb51dbf0c05b082b1de9cd6c30b", null ], + [ "callbackControlGroupCmd", "classmrs__uav__hw__api_1_1MrsUavHwApi.html#ada32d79a7512a6cba1b38d48a7926f18", null ], + [ "callbackOffboard", "classmrs__uav__hw__api_1_1MrsUavHwApi.html#aa4e0e43507391daf90f115d941b5aaee", null ], + [ "callbackPositionCmd", "classmrs__uav__hw__api_1_1MrsUavHwApi.html#abfaa7f3e38b567f9005152e8bacb23fb", null ], + [ "callbackTrackerCmd", "classmrs__uav__hw__api_1_1MrsUavHwApi.html#a610c4698eb909da8a5ab05b730347318", null ], + [ "callbackVelocityHdgCmd", "classmrs__uav__hw__api_1_1MrsUavHwApi.html#a624d2ec97c6c02118e214216614572b7", null ], + [ "callbackVelocityHdgRateCmd", "classmrs__uav__hw__api_1_1MrsUavHwApi.html#a47d1818995e6bc815f4e8cad789c4232", null ], + [ "getCapabilities", "classmrs__uav__hw__api_1_1MrsUavHwApi.html#a654f724908c2a601f69b66f44f94092f", null ], + [ "getStatus", "classmrs__uav__hw__api_1_1MrsUavHwApi.html#a7d8267f792fffb3a6118df0db21d1202", null ], + [ "initialize", "classmrs__uav__hw__api_1_1MrsUavHwApi.html#a8889e80844000735944372644daf4a19", null ] +]; \ No newline at end of file diff --git a/classmrs__uav__hw__api_1_1MrsUavHwApi__inherit__graph.map b/classmrs__uav__hw__api_1_1MrsUavHwApi__inherit__graph.map new file mode 100644 index 0000000..a3d2711 --- /dev/null +++ b/classmrs__uav__hw__api_1_1MrsUavHwApi__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/classmrs__uav__hw__api_1_1MrsUavHwApi__inherit__graph.md5 b/classmrs__uav__hw__api_1_1MrsUavHwApi__inherit__graph.md5 new file mode 100644 index 0000000..4109d98 --- /dev/null +++ b/classmrs__uav__hw__api_1_1MrsUavHwApi__inherit__graph.md5 @@ -0,0 +1 @@ +6361212c8ebb26c526480482053a988a \ No newline at end of file diff --git a/classmrs__uav__hw__api_1_1MrsUavHwApi__inherit__graph.png b/classmrs__uav__hw__api_1_1MrsUavHwApi__inherit__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..68f676bc5fb360c71c35c4639712f22b7658d449 GIT binary patch literal 4517 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 literal 0 HcmV?d00001 diff --git a/closed.png b/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/common__handlers_8h_source.html b/common__handlers_8h_source.html new file mode 100644 index 0000000..39dd404 --- /dev/null +++ b/common__handlers_8h_source.html @@ -0,0 +1,140 @@ + + + + + + + +mrs_uav_hw_api: include/mrs_uav_hw_api/common_handlers.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
mrs_uav_hw_api +
+
An abstraction layer between the MRS UAV System and a low-level Flight Controller
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
common_handlers.h
+
+
+
1 #ifndef COMMON_HANDLERS_H
+
2 #define COMMON_HANDLERS_H
+
3 
+
4 #include <mrs_uav_hw_api/publishers.h>
+
5 #include <mrs_lib/transformer.h>
+
6 
+
7 namespace mrs_uav_hw_api
+
8 {
+
9 
+
10 //}
+
11 
+
12 typedef std::function<std::string(void)> getUavName_t;
+
13 typedef std::function<std::string(void)> getBodyFrameName_t;
+
14 typedef std::function<std::string(void)> getWorldFrameName_t;
+
15 
+ +
20 {
+ +
25 
+
29  std::shared_ptr<mrs_lib::Transformer> transformer;
+
30 
+
34  getUavName_t getUavName;
+
35 
+
40  getBodyFrameName_t getBodyFrameName;
+
41 
+
45  getWorldFrameName_t getWorldFrameName;
+
46 };
+
47 
+
48 } // namespace mrs_uav_hw_api
+
49 
+
50 #endif // COMMON_HANDLERS_H
+
+
+
std::shared_ptr< mrs_lib::Transformer > transformer
The mrs_lib's TF2 transformer wrapper.
Definition: common_handlers.h:29
+
A structure with publisher methods provided to the HW API Plugin. The plugin can call these methods a...
Definition: publishers.h:54
+
getUavName_t getUavName
Method for obtaining the current "UAV_NAME" (the one set from the $UAV_NAME env variable).
Definition: common_handlers.h:34
+
A structure with methods and variables provided to the HW API Plugin.
Definition: common_handlers.h:19
+
getBodyFrameName_t getBodyFrameName
Method for obtaining the body-fixed frame_id (as it is called by the MRS UAV System)....
Definition: common_handlers.h:40
+
Publishers_t publishers
A structure with publishers that the plugin should use to provide data to the MRS UAV System.
Definition: common_handlers.h:24
+
getWorldFrameName_t getWorldFrameName
Method for obtaining the world-frame for marking the flight-controller's data, e.g....
Definition: common_handlers.h:45
+ + + + diff --git a/dir_61f64665b750523b32e515e683b7cce6.html b/dir_61f64665b750523b32e515e683b7cce6.html new file mode 100644 index 0000000..b3e6311 --- /dev/null +++ b/dir_61f64665b750523b32e515e683b7cce6.html @@ -0,0 +1,102 @@ + + + + + + + +mrs_uav_hw_api: include/mrs_uav_hw_api Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
mrs_uav_hw_api +
+
An abstraction layer between the MRS UAV System and a low-level Flight Controller
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
mrs_uav_hw_api Directory Reference
+
+
+
+
+ + + + diff --git a/dir_61f64665b750523b32e515e683b7cce6.js b/dir_61f64665b750523b32e515e683b7cce6.js new file mode 100644 index 0000000..de501c2 --- /dev/null +++ b/dir_61f64665b750523b32e515e683b7cce6.js @@ -0,0 +1,6 @@ +var dir_61f64665b750523b32e515e683b7cce6 = +[ + [ "api.h", "api_8h_source.html", null ], + [ "common_handlers.h", "common__handlers_8h_source.html", null ], + [ "publishers.h", "publishers_8h_source.html", null ] +]; \ No newline at end of file diff --git a/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/dir_68267d1309a1af8e8297ef4c3efbcdba.html new file mode 100644 index 0000000..13248b1 --- /dev/null +++ b/dir_68267d1309a1af8e8297ef4c3efbcdba.html @@ -0,0 +1,102 @@ + + + + + + + +mrs_uav_hw_api: src Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
mrs_uav_hw_api +
+
An abstraction layer between the MRS UAV System and a low-level Flight Controller
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
src Directory Reference
+
+
+
+
+ + + + diff --git a/dir_d44c64559bbebec7f509842c48db8b23.html b/dir_d44c64559bbebec7f509842c48db8b23.html new file mode 100644 index 0000000..0d826ea --- /dev/null +++ b/dir_d44c64559bbebec7f509842c48db8b23.html @@ -0,0 +1,106 @@ + + + + + + + +mrs_uav_hw_api: include Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
mrs_uav_hw_api +
+
An abstraction layer between the MRS UAV System and a low-level Flight Controller
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
include Directory Reference
+
+
+ + +

+Directories

+
+
+ + + + diff --git a/dir_d44c64559bbebec7f509842c48db8b23.js b/dir_d44c64559bbebec7f509842c48db8b23.js new file mode 100644 index 0000000..7b5c558 --- /dev/null +++ b/dir_d44c64559bbebec7f509842c48db8b23.js @@ -0,0 +1,4 @@ +var dir_d44c64559bbebec7f509842c48db8b23 = +[ + [ "mrs_uav_hw_api", "dir_61f64665b750523b32e515e683b7cce6.html", "dir_61f64665b750523b32e515e683b7cce6" ] +]; \ No newline at end of file diff --git a/doc.png b/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/doxygen.css b/doxygen.css new file mode 100644 index 0000000..73ecbb2 --- /dev/null +++ b/doxygen.css @@ -0,0 +1,1771 @@ +/* The standard CSS for doxygen 1.8.17 */ + +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; +} + +ul.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +th p.starttd, p.intertd, p.endtd { + font-size: 100%; + font-weight: 700; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +p.interli { +} + +p.interdd { +} + +p.intertd { +} + +/* @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; +} + +ul { + overflow: hidden; /*Fixed: list item bullets overlap floating elements*/ +} + +#side-nav ul { + overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ +} + +#main-nav ul { + overflow: visible; /* reset ul rule for the navigation bar drop down lists */ +} + +.fragment { + text-align: left; + direction: ltr; + overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ + overflow-y: hidden; +} + +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: 0 0 1px 0; /*Fixed: last line underline overlap border*/ + 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, img.inline { + 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; +} + +blockquote.DocNodeRTL { + border-left: 0; + border-right: 2px solid #9CAFD4; + margin: 0 4px 0 24px; + padding: 0 16px 0 12px; +} + +/* @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, .memTemplItemRight { + 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, .tparams .paramname, .exception .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype, .tparams .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir, .tparams .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; +} + +.PageDocRTL-title div.headertitle { + text-align: right; + direction: rtl; +} + +dl { + padding: 0 0 0 0; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ +dl.section { + margin-left: 0px; + padding-left: 0px; +} + +dl.section.DocNodeRTL { + margin-right: 0px; + padding-right: 0px; +} + +dl.note { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #D0C000; +} + +dl.note.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #FF0000; +} + +dl.warning.DocNodeRTL, dl.attention.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 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.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00D000; +} + +dl.deprecated { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #505050; +} + +dl.deprecated.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #505050; +} + +dl.todo { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00C0E0; +} + +dl.todo.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00C0E0; +} + +dl.test { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #3030E0; +} + +dl.test.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #3030E0; +} + +dl.bug { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #C08050; +} + +dl.bug.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 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; +} + +.PageDocRTL-title div.toc { + float: left !important; + text-align: right; +} + +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; +} + +.PageDocRTL-title div.toc li { + background-position-x: right !important; + padding-left: 0 !important; + padding-right: 10px; +} + +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; +} + +.PageDocRTL-title div.toc li.level1 { + margin-left: 0 !important; + margin-right: 0; +} + +.PageDocRTL-title div.toc li.level2 { + margin-left: 0 !important; + margin-right: 15px; +} + +.PageDocRTL-title div.toc li.level3 { + margin-left: 0 !important; + margin-right: 30px; +} + +.PageDocRTL-title div.toc li.level4 { + margin-left: 0 !important; + margin-right: 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 +} + +.DocNodeRTL { + text-align: right; + direction: rtl; +} + +.DocNodeLTR { + text-align: left; + direction: ltr; +} + +table.DocNodeRTL { + width: auto; + margin-right: 0; + margin-left: auto; +} + +table.DocNodeLTR { + width: auto; + margin-right: auto; + margin-left: 0; +} + +tt, code, kbd, samp +{ + display: inline-block; + direction:ltr; +} +/* @end */ + +u { + text-decoration: underline; +} + diff --git a/doxygen.png b/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/dynsections.js b/dynsections.js new file mode 100644 index 0000000..ea0a7b3 --- /dev/null +++ b/dynsections.js @@ -0,0 +1,120 @@ +/* + @licstart The following is the entire license notice for the + JavaScript code in this file. + + Copyright (C) 1997-2017 by Dimitri van Heesch + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + @licend The above is the entire license notice + for the JavaScript code in this file + */ +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 + + + + + + +mrs_uav_hw_api: File List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
mrs_uav_hw_api +
+
An abstraction layer between the MRS UAV System and a low-level Flight Controller
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
File List
+
+
+
Here is a list of all documented files with brief descriptions:
+
[detail level 123]
+ + + + + +
  include
  mrs_uav_hw_api
 api.h
 common_handlers.h
 publishers.h
+
+
+
+ + + + diff --git a/files_dup.js b/files_dup.js new file mode 100644 index 0000000..f1749d9 --- /dev/null +++ b/files_dup.js @@ -0,0 +1,4 @@ +var files_dup = +[ + [ "include", "dir_d44c64559bbebec7f509842c48db8b23.html", "dir_d44c64559bbebec7f509842c48db8b23" ] +]; \ No newline at end of file diff --git a/folderclosed.png b/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/functions.html b/functions.html new file mode 100644 index 0000000..3c8908e --- /dev/null +++ b/functions.html @@ -0,0 +1,250 @@ + + + + + + + +mrs_uav_hw_api: Class Members + + + + + + + + + + + + + +
+
+ + + + + + + +
+
mrs_uav_hw_api +
+
An abstraction layer between the MRS UAV System and a low-level Flight Controller
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- c -

+ + +

- g -

+ + +

- i -

+ + +

- p -

+ + +

- t -

+ + +

- ~ -

+
+
+ + + + diff --git a/functions_func.html b/functions_func.html new file mode 100644 index 0000000..bc8a5f2 --- /dev/null +++ b/functions_func.html @@ -0,0 +1,176 @@ + + + + + + + +mrs_uav_hw_api: Class Members - Functions + + + + + + + + + + + + + +
+
+ + + + + + + +
+
mrs_uav_hw_api +
+
An abstraction layer between the MRS UAV System and a low-level Flight Controller
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+  + +

- c -

+ + +

- g -

+ + +

- i -

+ + +

- ~ -

+
+
+ + + + diff --git a/functions_vars.html b/functions_vars.html new file mode 100644 index 0000000..b7759c8 --- /dev/null +++ b/functions_vars.html @@ -0,0 +1,165 @@ + + + + + + + +mrs_uav_hw_api: Class Members - Variables + + + + + + + + + + + + + +
+
+ + + + + + + +
+
mrs_uav_hw_api +
+
An abstraction layer between the MRS UAV System and a low-level Flight Controller
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
+ + + + diff --git a/graph_legend.html b/graph_legend.html new file mode 100644 index 0000000..756e09d --- /dev/null +++ b/graph_legend.html @@ -0,0 +1,161 @@ + + + + + + + +mrs_uav_hw_api: Graph Legend + + + + + + + + + + + + + +
+
+ + + + + + + +
+
mrs_uav_hw_api +
+
An abstraction layer between the MRS UAV System and a low-level Flight Controller
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
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/graph_legend.md5 b/graph_legend.md5 new file mode 100644 index 0000000..8fcdccd --- /dev/null +++ b/graph_legend.md5 @@ -0,0 +1 @@ +f51bf6e9a10430aafef59831b08dcbfe \ No newline at end of file diff --git a/graph_legend.png b/graph_legend.png new file mode 100644 index 0000000000000000000000000000000000000000..7e2cbcfb2d143e382be6ed65635a3d859e53bc36 GIT binary patch literal 20615 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 literal 0 HcmV?d00001 diff --git a/hierarchy.html b/hierarchy.html new file mode 100644 index 0000000..108e676 --- /dev/null +++ b/hierarchy.html @@ -0,0 +1,113 @@ + + + + + + + +mrs_uav_hw_api: Class Hierarchy + + + + + + + + + + + + + +
+
+ + + + + + + +
+
mrs_uav_hw_api +
+
An abstraction layer between the MRS UAV System and a low-level Flight Controller
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Class Hierarchy
+
+
+
+

Go to the graphical class hierarchy

+This inheritance list is sorted roughly, but not completely, alphabetically:
+
[detail level 12]
+ + + + + + +
 Cmrs_uav_hw_api::CommonHandlers_tA structure with methods and variables provided to the HW API Plugin
 Cmrs_uav_hw_api::MrsUavHwApiInterface for the HW API Plugin
 Cmrs_uav_hw_api::DummyApi
 CNodelet
 Cmrs_uav_hw_api::HwApiManager
 Cmrs_uav_hw_api::Publishers_tA structure with publisher methods provided to the HW API Plugin. The plugin can call these methods at will to provided data to the MRS UAV System. In case the HW API Plugin intents to publish data, the respective varible "produces_***" in the HW API Capabilities of the plugin is supposed to be fill in
+
+
+
+ + + + diff --git a/hierarchy.js b/hierarchy.js new file mode 100644 index 0000000..f3f61f7 --- /dev/null +++ b/hierarchy.js @@ -0,0 +1,11 @@ +var hierarchy = +[ + [ "mrs_uav_hw_api::CommonHandlers_t", "structmrs__uav__hw__api_1_1CommonHandlers__t.html", null ], + [ "mrs_uav_hw_api::MrsUavHwApi", "classmrs__uav__hw__api_1_1MrsUavHwApi.html", [ + [ "mrs_uav_hw_api::DummyApi", "classmrs__uav__hw__api_1_1DummyApi.html", null ] + ] ], + [ "Nodelet", null, [ + [ "mrs_uav_hw_api::HwApiManager", "classmrs__uav__hw__api_1_1HwApiManager.html", null ] + ] ], + [ "mrs_uav_hw_api::Publishers_t", "structmrs__uav__hw__api_1_1Publishers__t.html", null ] +]; \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..60e4064 --- /dev/null +++ b/index.html @@ -0,0 +1,139 @@ + + + + + + + +mrs_uav_hw_api: MRS UAV HW API (<a href="https://ctu-mrs.github.io/mrs_uav_hw_api/">Docs</a>) + + + + + + + + + + + + + +
+
+ + + + + + + +
+
mrs_uav_hw_api +
+
An abstraction layer between the MRS UAV System and a low-level Flight Controller
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
MRS UAV HW API (Docs)
+
+
+

An abstraction layer between the MRS UAV System and a UAV flight controller.

+
+

:warning: Attention please: This README is needs work.

+

The MRS UAV System 1.5 is being released and this page needs updating. Please, keep in mind that the information on this page might not be valid.

+
+

+What does it do?

+

This nodes provides an interface between any UAV flight controller (and any Simulator) and the core of the MRS UAV System. On one side, the HW API provides a unified ROS interfaces for the core as if it was a generic flight controller. On the other side, the communication with a particular hardware (or simulator) can be orchestrated using whatever is required.

+

+

+Documentation

+

https://ctu-mrs.github.io/mrs_uav_hw_api/

+

+Control output from the MRS UAV System

+

The control output can be any of the following:

+
    +
  • 3D Position + Heading
  • +
  • 3D body-frame Velocity + Heading
  • +
  • 3D body-frame Velocity + Heading rate
  • +
  • 3D body-frame Acceleration + Heading
  • +
  • 3D body-frame Acceleration + Heading rate
  • +
  • 3D world-frame Attitude + Throttle
  • +
  • body-frame Attitude rate + Throttle
  • +
  • Control groups
  • +
  • individual Actuators' throttle
  • +
+

+Data provided to the MRS UAV System

+

TODO

+

+Example HW API Plugins

+ +
+
+
+ + + + diff --git a/inherit_graph_0.map b/inherit_graph_0.map new file mode 100644 index 0000000..b1dfb6b --- /dev/null +++ b/inherit_graph_0.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_0.md5 b/inherit_graph_0.md5 new file mode 100644 index 0000000..c6bfa9e --- /dev/null +++ b/inherit_graph_0.md5 @@ -0,0 +1 @@ +6b7180ae7d65330a1e5c0f9c387dd2c6 \ No newline at end of file diff --git a/inherit_graph_0.png b/inherit_graph_0.png new file mode 100644 index 0000000000000000000000000000000000000000..187244a79fddb7e90baef74685ba24e89d4f81b7 GIT binary patch literal 2615 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 Qa1sQ}jNpb9`kqh!0nyw0Q2+n{ literal 0 HcmV?d00001 diff --git a/inherit_graph_1.map b/inherit_graph_1.map new file mode 100644 index 0000000..2dde71e --- /dev/null +++ b/inherit_graph_1.map @@ -0,0 +1,4 @@ + + + + diff --git a/inherit_graph_1.md5 b/inherit_graph_1.md5 new file mode 100644 index 0000000..c08ca24 --- /dev/null +++ b/inherit_graph_1.md5 @@ -0,0 +1 @@ +07fc0f972b4b3d69db4693dc149c6dff \ No newline at end of file diff --git a/inherit_graph_1.png b/inherit_graph_1.png new file mode 100644 index 0000000000000000000000000000000000000000..23b18e287ecc0bd1fa42e0bf6a6b24f65e1a7b36 GIT binary patch literal 3645 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 W>6!o?TJZw+K|oK-7*(e6IQ)MH+ZP1@ literal 0 HcmV?d00001 diff --git a/inherit_graph_2.map b/inherit_graph_2.map new file mode 100644 index 0000000..d37ad91 --- /dev/null +++ b/inherit_graph_2.map @@ -0,0 +1,4 @@ + + + + diff --git a/inherit_graph_2.md5 b/inherit_graph_2.md5 new file mode 100644 index 0000000..211820f --- /dev/null +++ b/inherit_graph_2.md5 @@ -0,0 +1 @@ +8323f6188bd0156a959cb8d20812d943 \ No newline at end of file diff --git a/inherit_graph_2.png b/inherit_graph_2.png new file mode 100644 index 0000000000000000000000000000000000000000..3611a1a7af5e106d1b5f02db0dd36051eab4c498 GIT binary patch literal 3053 zcmZ8jXH-+!8jUmoktV$tMXD5$UNi&{=>e49!AJ{5fsv|oFd!fUNE?EH5NSgV3~eA3 zA@l?(AxiI|C@qwCXV&}i*8A>Sx14p>J>NOs{`THUW+wVK>3QfuAka;N#}Ft8bnO@L zeutIPuFs=H@spvG37wuwn?+4c*_|NrH22*tl9c;oDpt#FPHr)$JL0=XS`SGX$adB^4ky z=O7rK5y-6z8NJUB0{Pr}M*;@(oWrk!Ky#4k0&{UTYHDgcJvC@DHZCp+BI2#TpZ)eN zMI6{=N4!hnK?%nt>AbzBhBS{3;$Wf!O-f{az4M?@l8wF;`U02{sMyA_UeAle;cO%Y zKpbA=qa8e>i@uMiNZ)>y8C5)|$G_TLmH|Kug=fWeiOm0$R&K}_=E z$OH^9RF%@dl$Dibqn?~VxlF&_$iT#q8N%Hck^+^?Y6~Hi`H8a8%QH+ysH>}~$uR^4 z2NzB^g-1lBq@=vc4h;>>vF8F8%SlNYhR~(;llOX<)^G-Xe)r;C*xA|p6qUrD>Al`_ z-dw~SDHEmP-dpm930=wWWJMTy`1tuRE-oyf(An8p>05>A(iS)5I%IXbySwk27T$ht zTByOz$LE6y9R{OtU)}#~Xi%)M^vabnG4-yoH}~+c(*9+6v`bhqHrCb%mGjLtrbG=5 z5BCOyySslvqh}^3?@LR6DK74weRP3wZFK&6BEZTj!kTmv-ces4WM($j=skUKcsS#u zl!AF;YC7%J=w83Qy*)56kR|mDKQ+b1&VG7&DxYhlRdhuNA)5aj^{ihBRF$uKijrsG z6%f#)^(C~j_sH=eR@c_D^YRSOJ(d<17t4zxKiW5!mp{iOvn#_FKCL^ILUna@(Jd`h zG&GSHzou!6&(6-ex*jg#bP^a{xbOr5g1I$#hbIN|5eSr2yD$s+@{&wCJPqgM%pMyX zgLj<9TUV1crDSDgg@l}s6v68lPNylDA~BLI1BShP+0fd0R@J;PL8u-?m!{6gx{H+5 zALE`mp<7!ERRWOZ8531U`xSNR8)i=@7_@>l2YyKl%UDW`tZT$TkRW$5)>-Mr2Oh^tETr0#;d#c z@Hjr6CJ8b@B#tiaQ&GHmQtAbV!@a%R{C|KWA~a{V>qoW7CrfDw2?;tnI>$S6&#bIo zt&Q;4S=&1}`2MZO%gY zQc_Y9_&Ot#Ei5dYqAp(X^_L)#e)BEkb8{)o8AB^u_$twbNVL5GH@89g)+sxe?&H{u zjEtTHCKPV7x3^cuu8Dz>k*BjT^P)HD7H#p@uTQj!I)is+xqUfu?1Jvx5_We# z`UKrjC;ipqEO)d$6SO%cK@i}`kaCc;ii*4}T`MH7l^N@s6r4?ujd6itUS3Is^*Su( zu@JfGH;=ZLs_dFACD~uy7bUXAV4+ax>#(rFYqpYE^i&jrf`Wm;b>2T@TT<(vkB(R) zITLy$#Kncm>}+l27l?|5crW-@y!m%G8WXn2< zm66ZRn86{Wg@W<2+FChz`ShHHI=B8gcqd}1Z9 z>o1BpvdJ}4Qc(EYwa#6^1`MW1T}n?+2SC}^t08)uG2w6_jFc{0<<#jYnYE}gvJz-$ zXjnl`LLjgsBLZAp&UMxyyYqC6jDCK89sWNkG6$y!H)7DhYNtOZOUGd@L zpTh_HGiw{U52icu_c~@nB>q%zV_}(o{Kp^{4Mj3Q#ORUI9L)*YW4<(9tX9qMGwR$8GF>8@YDe)sNOu}p)J)U>or>_EMV zwsz;{=H>uI$^8&JDm*L@u7 z8Gu`--&WW+BcIkd8XKvosfolUMwgV7tOTO-^6adwzx^&_cSIs;tEp9*i6>^RpT@^B z9~>V~7d%Db4rgb8KlEcTrRC*m2n43DPwBw}EX-N1IXE~ND0VB#$jC^Ji(zv>A|p39 zS0erKfQ>+!z6tMep^@0u)|O~cv78}dFxp7K1N9^wIW;?!q(IM>N?hb)K5;3j>#SDg3JdxN5 zkc>~sIBa*J-H=by(^Tx$QG>0ojm?ay_5~Xo8>At7Xhl_3by?mwuv&$W)YVno{YXEI zd{<4KytDn($OP(uU`cYNq||)3J+H``lzT-X#m3UzAR+to zDDxy-%dht;RsEUY72 z{Y5h$vgDdUfC3T-1clr$NF=hU>GzY`sl0s5`}FiWfP4UbJ~#+;9Yo^)_ThM~br8qt z7`mLU4``o2#LscJ{!|aT6=zeUKn-x+oVWCb2G6epd==SGTr0NLx0jj`}#U8+3K?nAkU*CBS!}ZYC)?; z78bWo<3_euzwV^+t0$+V1O*1p69{Pgdj%$)q5C2MtS(3H(C4O-S$!DHM$>aSE^~A9 zi%YR=Th(9q&8WG!APp&QnTfIz5bg>gsC1tm!o=hsku2@}hl_(`6zDIG)8wWn*d zU!$>+er8nG?xEx^Zw4{U-97xEr$D~f^Naicz2blE>d$$ns;a8Sa6V9uUe(k38N;m# zu14FNfW}i%uBIIMXx-gWonDUi-a + + diff --git a/inherit_graph_3.md5 b/inherit_graph_3.md5 new file mode 100644 index 0000000..45cec47 --- /dev/null +++ b/inherit_graph_3.md5 @@ -0,0 +1 @@ +28b7164be6c45f8eb41ab56d47fa802b \ No newline at end of file diff --git a/inherit_graph_3.png b/inherit_graph_3.png new file mode 100644 index 0000000000000000000000000000000000000000..285acc04d9064e58815ff744bc5f41f730b79828 GIT binary patch literal 1954 zcmV;T2VMAyP)JW93Dl#8jMAV$02`RNKz);=sdxZhO?J zv*-IgudB~i`IZB|!8_U=l>H1SUcBN?;QIcwZQe z#>U3RwF-qm@FgoNOQX?Hm;blEj*X2ye*8G(ArT1vF_}z8qtUzNAKy-0U0tDyhd`j? z=+UF|TFCyDz$A!X2~2|MmB1wab9xnv#T^|TYaPW(66h6WW@g^Kdv}?W{B8W_^t!ez zNkjhvzbg*WYe+GfOs7trqVIF)&>;vRgpkAG?A^Q9U@(NnZ)lK6B<=0(K@TT-{Tr#M zs6YsfkB?_$WGEDhiHV7|j_7Y87`=+cVvRf0LbNX z2qBBb5{X2$wYB({kT-AMOiN3n#tsh;hlPcWjEvCCKR7rjl}fo>ZgO(+t5>f808gGg zNls42cQ0SQ3?Z~wEC2wr+05hdTrO9jsr-h7Uwc(mRZdP0m&;90Pw(sN!|mSB<+{4M zq@*NYn}W;b*4NihPfz2|%mbwb0Py+qXJ235c>4`h2;Z~-0Gv)|MMXtILPB(Ov|KJ9 z9UY}!U=YPEE-rrm{=HhQh7e|EW(Mj;2lC?4qet^v{F0iQnwXgQ?%liT>1nlE&EarP zpFaKL$B&_*A%Q@k)oQ730)e2fug~Rj4Gs>jTet4@>(_I0b4H`Fva*t9{@B=9olb}C zv9U1#z|WsQsk<(htG~ZLDJiM5vlAg?v)R~e_JyFi9*@Unv$0sL(a}+aP-bT4_U+qm-@c6ys;#Y6C=?4OWL`+vOH53RUaz;??R9l^ zTrPKFVgezwXV0EHckbXmSFT*ywr!iQeemExyuKoYW@cs}gx%fUG-+9kFUk&72)}7T z2q~4y{QP{2#bUSH&z?P-mX_vryU{X=n~{;x*4DOQN->3ng@uKM-Yr4uwXv}g+j_ko zLg;il@#XR3$1h&INOi+Y4noLcu|!5j4h#$|CQ5p}Vw#(qi;9Y{eeBq=^73+okjLXm zNJ!}D=%5e2p`iiWHk%EvRR|%8MAF*YYPZ{YJYH*SD^62xZf;9U%VJ`l7gB0!>ZMDU zs9Py1DfkWGt)W0rdbQi_<>loZ4(HpqZ-`c}3;Lq$K!xy|7VKqwd>psC-EJ&PgPa($dmTpFRcQ zw5zKtJv}`tDhfhaQBh&FT5-Ett?umX{QdiPZ*T9^)YOq9N9gC_^ZD3_h=>3H;DBW^ zSx--oUa!x}$~t`baBpv~)9ExCjWU@mh>!pPTeoiYw!LpHNON;Dgit6Hn$70!?(WT- zH`DiDyf2zU_@-reco+Z>8ykzye_>%^4u^xUul+EyMoa3DN9{MoZ-?d|Qw z#l<+?OGPG=_4fAabh^B}Jb^$U6bf(LxUq5L#*~zlKtpIk0s!D*V=NX+TwL7ZgTd>o z)9EysOj4;7H~LLW5WW^)h=ha$7K=4GIqAK^6%-WUyTKKg#afo+LiG87PN%D?s`~Qf z%b!1g+-~>W+#Gc*^F=Hcx3#rRO-+rCj$XKM0XO0yJRWcT`t>H0si~=n>d#`aPM$p3 z($ezu>C@8E(%>S@&dzo?9QW_v#|x@VCcAd+8vWu*6A}R6)~#CxgJF7l`ug?jR;yL1 zRL&c|;CX8ve$%o@UldC!M0|X_LZMKpR6|2Uv$L~r-@a8UmA`)dTF#tXwrm*~7@#@A z(i0-R?%%&ZIyyQ(KR+fWrm3k(tJOwDMFr|yUtd2tIT;%pE0@cuhkIgT;?=8HOG-+( zT&_l=nfK6FtJMaBK_n9G-n~1x2-$3Qc6N4nc=)bey8r-rd3g?pgI=%nA(fStRaaLF zg~HCx&gajcQ#+`j@tc;V`dU&U008&y-P^HaM}B@jpU*#Y=8Q_EVzb%Hne+Vl^Dkb! zh=_;??(+eNy#61n)oSsHA&7|x-iXEG%F4wW$3Ygp^Aq + + + + + + +mrs_uav_hw_api: Class Hierarchy + + + + + + + + + + + + + +
+
+ + + + + + + +
+
mrs_uav_hw_api +
+
An abstraction layer between the MRS UAV System and a low-level Flight Controller
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Class Hierarchy
+
+
+ + + + + +
+ + + +
+ + + + +
+ + + + +
+ + + +
+
+
+ + + + diff --git a/jquery.js b/jquery.js new file mode 100644 index 0000000..103c32d --- /dev/null +++ b/jquery.js @@ -0,0 +1,35 @@ +/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0a;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),h=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(h=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):h=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),h}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("
"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widthi?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,(i>0||u>a(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var n=!1;t(document).on("mouseup",function(){n=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!n){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),n=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,n=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("
").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("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",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(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{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"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("
"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidtht.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("
"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element +},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,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}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),m&&(p-=l),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable});/** + * Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler + * Licensed under MIT + * @author Ariel Flesler + * @version 2.1.2 + */ +;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + * http://www.smartmenus.org/ + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/menu.js b/menu.js new file mode 100644 index 0000000..433c15b --- /dev/null +++ b/menu.js @@ -0,0 +1,50 @@ +/* + @licstart The following is the entire license notice for the + JavaScript code in this file. + + Copyright (C) 1997-2017 by Dimitri van Heesch + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + @licend The above is the entire license notice + for the JavaScript code in this file + */ +function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { + function makeTree(data,relPath) { + var result=''; + if ('children' in data) { + result+=''; + } + return result; + } + + $('#main-nav').append(makeTree(menudata,relPath)); + $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); + if (searchEnabled) { + if (serverSide) { + $('#main-menu').append('
  • '); + } else { + $('#main-menu').append('
  • '); + } + } + $('#main-menu').smartmenus(); +} +/* @license-end */ diff --git a/menudata.js b/menudata.js new file mode 100644 index 0000000..19556dd --- /dev/null +++ b/menudata.js @@ -0,0 +1,44 @@ +/* +@licstart The following is the entire license notice for the +JavaScript code in this file. + +Copyright (C) 1997-2019 by Dimitri van Heesch + +This program is free software; you can redistribute it and/or modify +it under the terms of version 2 of the GNU General Public License as published by +the Free Software Foundation + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along +with this program; if not, write to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +@licend The above is the entire license notice +for the JavaScript code in this file +*/ +var menudata={children:[ +{text:"Main Page",url:"index.html"}, +{text:"Classes",url:"annotated.html",children:[ +{text:"Class List",url:"annotated.html"}, +{text:"Class Index",url:"classes.html"}, +{text:"Class Hierarchy",url:"inherits.html"}, +{text:"Class Members",url:"functions.html",children:[ +{text:"All",url:"functions.html",children:[ +{text:"c",url:"functions.html#index_c"}, +{text:"g",url:"functions.html#index_g"}, +{text:"i",url:"functions.html#index_i"}, +{text:"p",url:"functions.html#index_p"}, +{text:"t",url:"functions.html#index_t"}, +{text:"~",url:"functions.html#index__7E"}]}, +{text:"Functions",url:"functions_func.html",children:[ +{text:"c",url:"functions_func.html#index_c"}, +{text:"g",url:"functions_func.html#index_g"}, +{text:"i",url:"functions_func.html#index_i"}, +{text:"~",url:"functions_func.html#index__7E"}]}, +{text:"Variables",url:"functions_vars.html"}]}]}, +{text:"Files",url:"files.html",children:[ +{text:"File List",url:"files.html"}]}]} diff --git a/nav_f.png b/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/nav_g.png b/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'; + 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('memtitle') || + 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',100,{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); + } + $(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 + } +} + +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(); + } +} + +var loadTriggered = false; +var readyTriggered = false; +var loadObject,loadToRoot,loadUrl,loadRelPath; + +$(window).on('load',function(){ + if (readyTriggered) { // ready first + navTo(loadObject,loadToRoot,loadUrl,loadRelPath); + showRoot(); + } + loadTriggered=true; +}); + +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); }); + } + + if (loadTriggered) { // load before ready + navTo(o,toroot,hashUrl(),relpath); + showRoot(); + } else { // ready before load + loadObject = o; + loadToRoot = toroot; + loadUrl = hashUrl(); + loadRelPath = relpath; + readyTriggered=true; + } + + $(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(/Docs)", "index.html", [ + [ "What does it do?", "index.html#autotoc_md1", null ], + [ "Documentation", "index.html#autotoc_md2", [ + [ "Control output from the MRS UAV System", "index.html#autotoc_md3", null ], + [ "Data provided to the MRS UAV System", "index.html#autotoc_md4", null ] + ] ], + [ "Example HW API Plugins", "index.html#autotoc_md5", null ] + ] ], + [ "Classes", "annotated.html", [ + [ "Class List", "annotated.html", "annotated_dup" ], + [ "Class Index", "classes.html", null ], + [ "Class Hierarchy", "hierarchy.html", "hierarchy" ], + [ "Class Members", "functions.html", [ + [ "All", "functions.html", null ], + [ "Functions", "functions_func.html", null ], + [ "Variables", "functions_vars.html", null ] + ] ] + ] ], + [ "Files", "files.html", [ + [ "File List", "files.html", "files_dup" ] + ] ] + ] ] +]; + +var NAVTREEINDEX = +[ +".html" +]; + +var SYNCONMSG = 'click to disable panel synchronisation'; +var SYNCOFFMSG = 'click to enable panel synchronisation'; \ No newline at end of file diff --git a/navtreeindex0.js b/navtreeindex0.js new file mode 100644 index 0000000..99e6a35 --- /dev/null +++ b/navtreeindex0.js @@ -0,0 +1,83 @@ +var NAVTREEINDEX0 = +{ +".html":[1,0,0], +"annotated.html":[1,0], +"api_8h_source.html":[2,0,0,0,0], +"classes.html":[1,1], +"classmrs__uav__hw__api_1_1DummyApi.html":[1,0,0,1], +"classmrs__uav__hw__api_1_1DummyApi.html#a12c9b64ebdd7787cb78f23f75892d76d":[1,0,0,1,14], +"classmrs__uav__hw__api_1_1DummyApi.html#a1c8081a81f3f1a684cafecd627e75e22":[1,0,0,1,7], +"classmrs__uav__hw__api_1_1DummyApi.html#a218c3ffb446ca0b45f241e2790a4b684":[1,0,0,1,6], +"classmrs__uav__hw__api_1_1DummyApi.html#a3328034dca690d917ce2689c1eb13b52":[1,0,0,1,12], +"classmrs__uav__hw__api_1_1DummyApi.html#a3cbaa93b72033097ece1f833d022968f":[1,0,0,1,11], +"classmrs__uav__hw__api_1_1DummyApi.html#a4c628110de00a3df84e44cad7190e364":[1,0,0,1,5], +"classmrs__uav__hw__api_1_1DummyApi.html#a565c955f9541ccb72a904f67bd02f83c":[1,0,0,1,3], +"classmrs__uav__hw__api_1_1DummyApi.html#a9dbd76d8646e8414c4c4b6405e988f00":[1,0,0,1,10], +"classmrs__uav__hw__api_1_1DummyApi.html#aa022a02c75d33e4e93f112537a1fdf86":[1,0,0,1,9], +"classmrs__uav__hw__api_1_1DummyApi.html#ac87d448f75cbd8a1b8d4da0467d163e9":[1,0,0,1,2], +"classmrs__uav__hw__api_1_1DummyApi.html#ac904bff4c9b37aa2b5ee8aa30d922f79":[1,0,0,1,0], +"classmrs__uav__hw__api_1_1DummyApi.html#ad6ef3a2c6514595361959664cf6af850":[1,0,0,1,8], +"classmrs__uav__hw__api_1_1DummyApi.html#af7bbab47dba560abd5a76a273c07e157":[1,0,0,1,13], +"classmrs__uav__hw__api_1_1DummyApi.html#af8681be68b7f7e7cdbf12c8ce22fbe31":[1,0,0,1,1], +"classmrs__uav__hw__api_1_1DummyApi.html#afd1ca6edaef8e060de452de555422191":[1,0,0,1,4], +"classmrs__uav__hw__api_1_1HwApiManager.html":[1,0,0,2], +"classmrs__uav__hw__api_1_1HwApiManager.html#ad9caf16a0e5b196a476b2b870af92627":[1,0,0,2,0], +"classmrs__uav__hw__api_1_1MrsUavHwApi.html":[1,0,0,3], +"classmrs__uav__hw__api_1_1MrsUavHwApi.html#a397145b920c1600b974fa3a5d107411a":[1,0,0,3,3], +"classmrs__uav__hw__api_1_1MrsUavHwApi.html#a47d1818995e6bc815f4e8cad789c4232":[1,0,0,3,12], +"classmrs__uav__hw__api_1_1MrsUavHwApi.html#a537f4a53b84aee069bc3a8dd6a6620f7":[1,0,0,3,5], +"classmrs__uav__hw__api_1_1MrsUavHwApi.html#a5903740fdd654da8e0b1f0fcd34d852b":[1,0,0,3,2], +"classmrs__uav__hw__api_1_1MrsUavHwApi.html#a610c4698eb909da8a5ab05b730347318":[1,0,0,3,10], +"classmrs__uav__hw__api_1_1MrsUavHwApi.html#a624d2ec97c6c02118e214216614572b7":[1,0,0,3,11], +"classmrs__uav__hw__api_1_1MrsUavHwApi.html#a654f724908c2a601f69b66f44f94092f":[1,0,0,3,13], +"classmrs__uav__hw__api_1_1MrsUavHwApi.html#a7d8267f792fffb3a6118df0db21d1202":[1,0,0,3,14], +"classmrs__uav__hw__api_1_1MrsUavHwApi.html#a8889e80844000735944372644daf4a19":[1,0,0,3,15], +"classmrs__uav__hw__api_1_1MrsUavHwApi.html#aa4e0e43507391daf90f115d941b5aaee":[1,0,0,3,8], +"classmrs__uav__hw__api_1_1MrsUavHwApi.html#abfaa7f3e38b567f9005152e8bacb23fb":[1,0,0,3,9], +"classmrs__uav__hw__api_1_1MrsUavHwApi.html#ac56c138bfac82f134d2c67558d49e51d":[1,0,0,3,0], +"classmrs__uav__hw__api_1_1MrsUavHwApi.html#ad549fd61bfa9996b1aaa49946d814156":[1,0,0,3,4], +"classmrs__uav__hw__api_1_1MrsUavHwApi.html#ada32d79a7512a6cba1b38d48a7926f18":[1,0,0,3,7], +"classmrs__uav__hw__api_1_1MrsUavHwApi.html#af88b2aa16a8e88662cf6c16747acdf82":[1,0,0,3,1], +"classmrs__uav__hw__api_1_1MrsUavHwApi.html#afb549fb51dbf0c05b082b1de9cd6c30b":[1,0,0,3,6], +"common__handlers_8h_source.html":[2,0,0,0,1], +"dir_61f64665b750523b32e515e683b7cce6.html":[2,0,0,0], +"dir_d44c64559bbebec7f509842c48db8b23.html":[2,0,0], +"files.html":[2,0], +"functions.html":[1,3,0], +"functions_func.html":[1,3,1], +"functions_vars.html":[1,3,2], +"hierarchy.html":[1,2], +"index.html":[], +"index.html":[0], +"index.html#autotoc_md1":[0,0], +"index.html#autotoc_md2":[0,1], +"index.html#autotoc_md3":[0,1,0], +"index.html#autotoc_md4":[0,1,1], +"index.html#autotoc_md5":[0,2], +"pages.html":[], +"publishers_8h_source.html":[2,0,0,0,2], +"structmrs__uav__hw__api_1_1CommonHandlers__t.html":[1,0,0,0], +"structmrs__uav__hw__api_1_1CommonHandlers__t.html#a0d76cabe5191a3e8d618e175b0d89da9":[1,0,0,0,3], +"structmrs__uav__hw__api_1_1CommonHandlers__t.html#a460f462de5f5b703562cc7d4c4bf62e1":[1,0,0,0,2], +"structmrs__uav__hw__api_1_1CommonHandlers__t.html#ab78052233d3b0847dc2ca11797964184":[1,0,0,0,4], +"structmrs__uav__hw__api_1_1CommonHandlers__t.html#abd112a8b4d35872df1bf2d110875cf82":[1,0,0,0,0], +"structmrs__uav__hw__api_1_1CommonHandlers__t.html#add8f6daa450737766d3006bab075cc18":[1,0,0,0,1], +"structmrs__uav__hw__api_1_1Publishers__t.html":[1,0,0,4], +"structmrs__uav__hw__api_1_1Publishers__t.html#a1e38ab12de7f79acfb5845f4d47f1f13":[1,0,0,4,0], +"structmrs__uav__hw__api_1_1Publishers__t.html#a243c02a6762c04c4fd7ebce7a0dcd96d":[1,0,0,4,6], +"structmrs__uav__hw__api_1_1Publishers__t.html#a2d4e6d0d2851ce5e9e3c0ab6b6aa05d4":[1,0,0,4,3], +"structmrs__uav__hw__api_1_1Publishers__t.html#a302b36b1d9b871767d40467cb3ce7534":[1,0,0,4,12], +"structmrs__uav__hw__api_1_1Publishers__t.html#a31bc9f73d8cda684df1db27181d8dcbf":[1,0,0,4,1], +"structmrs__uav__hw__api_1_1Publishers__t.html#a4d586872bc4e08270b1e371ee9d389ef":[1,0,0,4,15], +"structmrs__uav__hw__api_1_1Publishers__t.html#a590b528334c2aa98308f448c933ec17a":[1,0,0,4,7], +"structmrs__uav__hw__api_1_1Publishers__t.html#a60b1b9d9feab8aa0dcbbe09741d19ccc":[1,0,0,4,16], +"structmrs__uav__hw__api_1_1Publishers__t.html#a628c7d8851d011d7e050b73e6ddc10ee":[1,0,0,4,9], +"structmrs__uav__hw__api_1_1Publishers__t.html#a786d40a41a30e1bc2f19bb83d02ddfd0":[1,0,0,4,4], +"structmrs__uav__hw__api_1_1Publishers__t.html#a85011e8a0ca4b1a6964839b14fa311b4":[1,0,0,4,13], +"structmrs__uav__hw__api_1_1Publishers__t.html#a8a712f6d26d186be0f037304f27e8e85":[1,0,0,4,5], +"structmrs__uav__hw__api_1_1Publishers__t.html#a9d4fa0cfb267780d6f41d568ddfcd96e":[1,0,0,4,14], +"structmrs__uav__hw__api_1_1Publishers__t.html#abbbd33e2c97b9fdee4a13e6ac8f3851d":[1,0,0,4,2], +"structmrs__uav__hw__api_1_1Publishers__t.html#ad324064c4040dbcffbb7d8abc50530eb":[1,0,0,4,10], +"structmrs__uav__hw__api_1_1Publishers__t.html#aeec348862e2945e51b222e9a1cf169f6":[1,0,0,4,8], +"structmrs__uav__hw__api_1_1Publishers__t.html#af10b59dba9dd243d5568d694687f5ccb":[1,0,0,4,11] +}; diff --git a/open.png b/open.png new file mode 100644 index 0000000000000000000000000000000000000000..30f75c7efe2dd0c9e956e35b69777a02751f048b GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{VPM$7~Ar*{o?;hlAFyLXmaDC0y znK1_#cQqJWPES%4Uujug^TE?jMft$}Eq^WaR~)%f)vSNs&gek&x%A9X9sM + + + + + + +mrs_uav_hw_api: include/mrs_uav_hw_api/publishers.h Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    mrs_uav_hw_api +
    +
    An abstraction layer between the MRS UAV System and a low-level Flight Controller
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    publishers.h
    +
    +
    +
    1 #ifndef PUBLISHERS_H
    +
    2 #define PUBLISHERS_H
    +
    3 
    +
    4 #include <sensor_msgs/Imu.h>
    +
    5 #include <sensor_msgs/NavSatFix.h>
    +
    6 #include <sensor_msgs/NavSatStatus.h>
    +
    7 #include <sensor_msgs/Range.h>
    +
    8 #include <sensor_msgs/BatteryState.h>
    +
    9 #include <sensor_msgs/MagneticField.h>
    +
    10 
    +
    11 #include <mrs_msgs/Float64Stamped.h>
    +
    12 
    +
    13 #include <mrs_msgs/HwApiStatus.h>
    +
    14 #include <mrs_msgs/HwApiRcChannels.h>
    +
    15 #include <mrs_msgs/RtkGps.h>
    +
    16 #include <mrs_msgs/RtkFixType.h>
    +
    17 
    +
    18 #include <mrs_msgs/HwApiAltitude.h>
    +
    19 
    +
    20 #include <nav_msgs/Odometry.h>
    +
    21 
    +
    22 #include <geometry_msgs/QuaternionStamped.h>
    +
    23 #include <geometry_msgs/Vector3Stamped.h>
    +
    24 #include <geometry_msgs/PointStamped.h>
    +
    25 
    +
    26 namespace mrs_uav_hw_api
    +
    27 {
    +
    28 
    +
    29 //}
    +
    30 
    +
    31 typedef std::function<void(const sensor_msgs::NavSatFix &msg)> publishGNSS_t;
    +
    32 typedef std::function<void(const sensor_msgs::NavSatStatus &msg)> publishGNSSStatus_t;
    +
    33 typedef std::function<void(const mrs_msgs::RtkGps &msg)> publishRTK_t;
    +
    34 typedef std::function<void(const mrs_msgs::HwApiAltitude &msg)> publishAltitude_t;
    +
    35 typedef std::function<void(const mrs_msgs::Float64Stamped &msg)> publishMagnetometerHeading_t;
    +
    36 typedef std::function<void(const sensor_msgs::MagneticField &msg)> publishMagneticField_t;
    +
    37 typedef std::function<void(const mrs_msgs::HwApiStatus &msg)> publishStatus_t;
    +
    38 typedef std::function<void(const mrs_msgs::HwApiRcChannels &msg)> publishRcChannels_t;
    +
    39 typedef std::function<void(const sensor_msgs::BatteryState &msg)> publishBatteryState_t;
    +
    40 typedef std::function<void(const sensor_msgs::Imu &msg)> publishIMU_t;
    +
    41 typedef std::function<void(const sensor_msgs::Range &msg)> publishDistanceSensor_t;
    +
    42 typedef std::function<void(const geometry_msgs::Vector3Stamped &msg)> publishVelocity_t;
    +
    43 typedef std::function<void(const geometry_msgs::PointStamped &msg)> publishPosition_t;
    +
    44 typedef std::function<void(const geometry_msgs::QuaternionStamped &msg)> publishOrientation_t;
    +
    45 typedef std::function<void(const geometry_msgs::Vector3Stamped &msg)> publishAngularVelocity_t;
    +
    46 typedef std::function<void(const nav_msgs::Odometry &msg)> publishOdometry_t;
    +
    47 
    + +
    55 {
    +
    59  publishIMU_t publishIMU;
    +
    60 
    +
    64  publishGNSS_t publishGNSS;
    +
    65 
    +
    69  publishGNSSStatus_t publishGNSSStatus;
    +
    70 
    +
    74  publishRTK_t publishRTK;
    +
    75 
    +
    79  publishDistanceSensor_t publishDistanceSensor;
    +
    80 
    +
    84  publishAltitude_t publishAltitude;
    +
    85 
    +
    89  publishMagnetometerHeading_t publishMagnetometerHeading;
    +
    90 
    +
    94  publishMagneticField_t publishMagneticField;
    +
    95 
    +
    99  publishStatus_t publishStatus;
    +
    100 
    +
    104  publishRcChannels_t publishRcChannels;
    +
    105 
    +
    109  publishBatteryState_t publishBatteryState;
    +
    110 
    +
    115  publishPosition_t publishPosition;
    +
    116 
    +
    120  publishOrientation_t publishOrientation;
    +
    121 
    +
    125  publishVelocity_t publishVelocity;
    +
    126 
    +
    131  publishAngularVelocity_t publishAngularVelocity;
    +
    132 
    +
    137  publishOdometry_t publishOdometry;
    +
    138 
    +
    143  publishOdometry_t publishGroundTruth;
    +
    144 };
    +
    145 
    +
    146 } // namespace mrs_uav_hw_api
    +
    147 
    +
    148 #endif // PUBLISHERS_H
    +
    +
    +
    publishAngularVelocity_t publishAngularVelocity
    Publisher for the intrinsic angular velocity. This can be already pre-filtered. The angular velocity ...
    Definition: publishers.h:131
    +
    publishMagneticField_t publishMagneticField
    Publisher for the RAW magnetometer readings.
    Definition: publishers.h:94
    +
    publishMagnetometerHeading_t publishMagnetometerHeading
    Publisher for the estimated magnetometer heading.
    Definition: publishers.h:89
    +
    publishAltitude_t publishAltitude
    Altitude of the UAV in AMSL (Above Mean Seal Level).
    Definition: publishers.h:84
    +
    A structure with publisher methods provided to the HW API Plugin. The plugin can call these methods a...
    Definition: publishers.h:54
    +
    publishDistanceSensor_t publishDistanceSensor
    Publisher for the distance sensor readings. The distance sensor is expected to be pointing down towar...
    Definition: publishers.h:79
    +
    publishOdometry_t publishGroundTruth
    Publisher for ground truth odometry which can be provided by, e.g., a simulator or a MoCap system....
    Definition: publishers.h:143
    +
    publishPosition_t publishPosition
    Publisher for the UAV position as estimated by the flight controller. The position is supposed to be ...
    Definition: publishers.h:115
    +
    publishIMU_t publishIMU
    Publisher for the raw IMU data.
    Definition: publishers.h:59
    +
    publishRcChannels_t publishRcChannels
    Publisher for the RC Channels received by the flight controller.
    Definition: publishers.h:104
    +
    publishGNSS_t publishGNSS
    Publisher for the main GNSS data.
    Definition: publishers.h:64
    +
    publishRTK_t publishRTK
    Publisher for the RTK GNSS data.
    Definition: publishers.h:74
    +
    publishGNSSStatus_t publishGNSSStatus
    Publisher for the GNSS status message.
    Definition: publishers.h:69
    +
    publishOdometry_t publishOdometry
    Publisher for a general "odometry" message that can be used for vizualizing the state of the UAV,...
    Definition: publishers.h:137
    +
    publishStatus_t publishStatus
    Publisher for the HW API Plugin status.
    Definition: publishers.h:99
    +
    publishVelocity_t publishVelocity
    Publisher for the UAV velocity expressed in the body-fixed frame, provided by the common handlers.
    Definition: publishers.h:125
    +
    publishBatteryState_t publishBatteryState
    Publisher for the UAV battery state.
    Definition: publishers.h:109
    +
    publishOrientation_t publishOrientation
    Publisher for the UAV orientation. The orientation is supposed to be expressed in the "world frame" p...
    Definition: publishers.h:120
    + + + + diff --git a/resize.js b/resize.js new file mode 100644 index 0000000..a0bb5f4 --- /dev/null +++ b/resize.js @@ -0,0 +1,137 @@ +/* + @licstart The following is the entire license notice for the + JavaScript code in this file. + + Copyright (C) 1997-2017 by Dimitri van Heesch + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + @licend The above is the entire license notice + for the JavaScript code in this file + */ +function initResizable() +{ + var cookie_namespace = 'doxygen'; + var sidenav,navtree,content,header,collapsed,collapsedWidth=0,barWidth=6,desktop_vp=768,titleHeight; + + function readCookie(cookie) + { + var myCookie = cookie_namespace+"_"+cookie+"="; + if (document.cookie) { + var index = document.cookie.indexOf(myCookie); + if (index != -1) { + var valStart = index + myCookie.length; + var valEnd = document.cookie.indexOf(";", valStart); + if (valEnd == -1) { + valEnd = document.cookie.length; + } + var val = document.cookie.substring(valStart, valEnd); + return val; + } + } + return 0; + } + + function writeCookie(cookie, val, expiration) + { + if (val==undefined) return; + if (expiration == null) { + var date = new Date(); + date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week + expiration = date.toGMTString(); + } + document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; expires=" + expiration+"; path=/"; + } + + function resizeWidth() + { + var windowWidth = $(window).width() + "px"; + var sidenavWidth = $(sidenav).outerWidth(); + content.css({marginLeft:parseInt(sidenavWidth)+"px"}); + writeCookie('width',sidenavWidth-barWidth, null); + } + + function restoreWidth(navWidth) + { + var windowWidth = $(window).width() + "px"; + content.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); + sidenav.css({width:navWidth + "px"}); + } + + function resizeHeight() + { + var headerHeight = header.outerHeight(); + var footerHeight = footer.outerHeight(); + var windowHeight = $(window).height() - headerHeight - footerHeight; + content.css({height:windowHeight + "px"}); + navtree.css({height:windowHeight + "px"}); + sidenav.css({height:windowHeight + "px"}); + var width=$(window).width(); + if (width!=collapsedWidth) { + if (width=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).on('load',resizeHeight); +} +/* @license-end */ diff --git a/search/all_0.html b/search/all_0.html new file mode 100644 index 0000000..26dd244 --- /dev/null +++ b/search/all_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_0.js b/search/all_0.js new file mode 100644 index 0000000..3ad8a1e --- /dev/null +++ b/search/all_0.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['callbackaccelerationhdgcmd_0',['callbackAccelerationHdgCmd',['../classmrs__uav__hw__api_1_1MrsUavHwApi.html#af88b2aa16a8e88662cf6c16747acdf82',1,'mrs_uav_hw_api::MrsUavHwApi::callbackAccelerationHdgCmd()'],['../classmrs__uav__hw__api_1_1DummyApi.html#ac904bff4c9b37aa2b5ee8aa30d922f79',1,'mrs_uav_hw_api::DummyApi::callbackAccelerationHdgCmd()']]], + ['callbackaccelerationhdgratecmd_1',['callbackAccelerationHdgRateCmd',['../classmrs__uav__hw__api_1_1MrsUavHwApi.html#a5903740fdd654da8e0b1f0fcd34d852b',1,'mrs_uav_hw_api::MrsUavHwApi::callbackAccelerationHdgRateCmd()'],['../classmrs__uav__hw__api_1_1DummyApi.html#af8681be68b7f7e7cdbf12c8ce22fbe31',1,'mrs_uav_hw_api::DummyApi::callbackAccelerationHdgRateCmd()']]], + ['callbackactuatorcmd_2',['callbackActuatorCmd',['../classmrs__uav__hw__api_1_1MrsUavHwApi.html#a397145b920c1600b974fa3a5d107411a',1,'mrs_uav_hw_api::MrsUavHwApi::callbackActuatorCmd()'],['../classmrs__uav__hw__api_1_1DummyApi.html#ac87d448f75cbd8a1b8d4da0467d163e9',1,'mrs_uav_hw_api::DummyApi::callbackActuatorCmd()']]], + ['callbackarming_3',['callbackArming',['../classmrs__uav__hw__api_1_1MrsUavHwApi.html#ad549fd61bfa9996b1aaa49946d814156',1,'mrs_uav_hw_api::MrsUavHwApi::callbackArming()'],['../classmrs__uav__hw__api_1_1DummyApi.html#a565c955f9541ccb72a904f67bd02f83c',1,'mrs_uav_hw_api::DummyApi::callbackArming()']]], + ['callbackattitudecmd_4',['callbackAttitudeCmd',['../classmrs__uav__hw__api_1_1MrsUavHwApi.html#a537f4a53b84aee069bc3a8dd6a6620f7',1,'mrs_uav_hw_api::MrsUavHwApi::callbackAttitudeCmd()'],['../classmrs__uav__hw__api_1_1DummyApi.html#afd1ca6edaef8e060de452de555422191',1,'mrs_uav_hw_api::DummyApi::callbackAttitudeCmd()']]], + ['callbackattituderatecmd_5',['callbackAttitudeRateCmd',['../classmrs__uav__hw__api_1_1MrsUavHwApi.html#afb549fb51dbf0c05b082b1de9cd6c30b',1,'mrs_uav_hw_api::MrsUavHwApi::callbackAttitudeRateCmd()'],['../classmrs__uav__hw__api_1_1DummyApi.html#a4c628110de00a3df84e44cad7190e364',1,'mrs_uav_hw_api::DummyApi::callbackAttitudeRateCmd()']]], + ['callbackcontrolgroupcmd_6',['callbackControlGroupCmd',['../classmrs__uav__hw__api_1_1MrsUavHwApi.html#ada32d79a7512a6cba1b38d48a7926f18',1,'mrs_uav_hw_api::MrsUavHwApi::callbackControlGroupCmd()'],['../classmrs__uav__hw__api_1_1DummyApi.html#a218c3ffb446ca0b45f241e2790a4b684',1,'mrs_uav_hw_api::DummyApi::callbackControlGroupCmd()']]], + ['callbackoffboard_7',['callbackOffboard',['../classmrs__uav__hw__api_1_1MrsUavHwApi.html#aa4e0e43507391daf90f115d941b5aaee',1,'mrs_uav_hw_api::MrsUavHwApi::callbackOffboard()'],['../classmrs__uav__hw__api_1_1DummyApi.html#a1c8081a81f3f1a684cafecd627e75e22',1,'mrs_uav_hw_api::DummyApi::callbackOffboard()']]], + ['callbackpositioncmd_8',['callbackPositionCmd',['../classmrs__uav__hw__api_1_1MrsUavHwApi.html#abfaa7f3e38b567f9005152e8bacb23fb',1,'mrs_uav_hw_api::MrsUavHwApi::callbackPositionCmd()'],['../classmrs__uav__hw__api_1_1DummyApi.html#ad6ef3a2c6514595361959664cf6af850',1,'mrs_uav_hw_api::DummyApi::callbackPositionCmd()']]], + ['callbacktrackercmd_9',['callbackTrackerCmd',['../classmrs__uav__hw__api_1_1MrsUavHwApi.html#a610c4698eb909da8a5ab05b730347318',1,'mrs_uav_hw_api::MrsUavHwApi::callbackTrackerCmd()'],['../classmrs__uav__hw__api_1_1DummyApi.html#aa022a02c75d33e4e93f112537a1fdf86',1,'mrs_uav_hw_api::DummyApi::callbackTrackerCmd()']]], + ['callbackvelocityhdgcmd_10',['callbackVelocityHdgCmd',['../classmrs__uav__hw__api_1_1MrsUavHwApi.html#a624d2ec97c6c02118e214216614572b7',1,'mrs_uav_hw_api::MrsUavHwApi::callbackVelocityHdgCmd()'],['../classmrs__uav__hw__api_1_1DummyApi.html#a9dbd76d8646e8414c4c4b6405e988f00',1,'mrs_uav_hw_api::DummyApi::callbackVelocityHdgCmd()']]], + ['callbackvelocityhdgratecmd_11',['callbackVelocityHdgRateCmd',['../classmrs__uav__hw__api_1_1MrsUavHwApi.html#a47d1818995e6bc815f4e8cad789c4232',1,'mrs_uav_hw_api::MrsUavHwApi::callbackVelocityHdgRateCmd()'],['../classmrs__uav__hw__api_1_1DummyApi.html#a3cbaa93b72033097ece1f833d022968f',1,'mrs_uav_hw_api::DummyApi::callbackVelocityHdgRateCmd()']]], + ['commonhandlers_5ft_12',['CommonHandlers_t',['../structmrs__uav__hw__api_1_1CommonHandlers__t.html',1,'mrs_uav_hw_api']]] +]; diff --git a/search/all_1.html b/search/all_1.html new file mode 100644 index 0000000..8eb215b --- /dev/null +++ b/search/all_1.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_1.js b/search/all_1.js new file mode 100644 index 0000000..13490a5 --- /dev/null +++ b/search/all_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['dummyapi_13',['DummyApi',['../classmrs__uav__hw__api_1_1DummyApi.html',1,'mrs_uav_hw_api']]] +]; diff --git a/search/all_2.html b/search/all_2.html new file mode 100644 index 0000000..b26d916 --- /dev/null +++ b/search/all_2.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_2.js b/search/all_2.js new file mode 100644 index 0000000..e045e90 --- /dev/null +++ b/search/all_2.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['getbodyframename_14',['getBodyFrameName',['../structmrs__uav__hw__api_1_1CommonHandlers__t.html#abd112a8b4d35872df1bf2d110875cf82',1,'mrs_uav_hw_api::CommonHandlers_t']]], + ['getcapabilities_15',['getCapabilities',['../classmrs__uav__hw__api_1_1MrsUavHwApi.html#a654f724908c2a601f69b66f44f94092f',1,'mrs_uav_hw_api::MrsUavHwApi::getCapabilities()'],['../classmrs__uav__hw__api_1_1DummyApi.html#a3328034dca690d917ce2689c1eb13b52',1,'mrs_uav_hw_api::DummyApi::getCapabilities()']]], + ['getstatus_16',['getStatus',['../classmrs__uav__hw__api_1_1MrsUavHwApi.html#a7d8267f792fffb3a6118df0db21d1202',1,'mrs_uav_hw_api::MrsUavHwApi::getStatus()'],['../classmrs__uav__hw__api_1_1DummyApi.html#af7bbab47dba560abd5a76a273c07e157',1,'mrs_uav_hw_api::DummyApi::getStatus()']]], + ['getuavname_17',['getUavName',['../structmrs__uav__hw__api_1_1CommonHandlers__t.html#add8f6daa450737766d3006bab075cc18',1,'mrs_uav_hw_api::CommonHandlers_t']]], + ['getworldframename_18',['getWorldFrameName',['../structmrs__uav__hw__api_1_1CommonHandlers__t.html#a460f462de5f5b703562cc7d4c4bf62e1',1,'mrs_uav_hw_api::CommonHandlers_t']]] +]; diff --git a/search/all_3.html b/search/all_3.html new file mode 100644 index 0000000..b61b96f --- /dev/null +++ b/search/all_3.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_3.js b/search/all_3.js new file mode 100644 index 0000000..4da4398 --- /dev/null +++ b/search/all_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['hwapimanager_19',['HwApiManager',['../classmrs__uav__hw__api_1_1HwApiManager.html',1,'mrs_uav_hw_api']]] +]; diff --git a/search/all_4.html b/search/all_4.html new file mode 100644 index 0000000..06de155 --- /dev/null +++ b/search/all_4.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_4.js b/search/all_4.js new file mode 100644 index 0000000..70ee59e --- /dev/null +++ b/search/all_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['initialize_20',['initialize',['../classmrs__uav__hw__api_1_1MrsUavHwApi.html#a8889e80844000735944372644daf4a19',1,'mrs_uav_hw_api::MrsUavHwApi::initialize()'],['../classmrs__uav__hw__api_1_1DummyApi.html#a12c9b64ebdd7787cb78f23f75892d76d',1,'mrs_uav_hw_api::DummyApi::initialize()']]] +]; diff --git a/search/all_5.html b/search/all_5.html new file mode 100644 index 0000000..2544c4e --- /dev/null +++ b/search/all_5.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_5.js b/search/all_5.js new file mode 100644 index 0000000..0ea2da1 --- /dev/null +++ b/search/all_5.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['mrs_20uav_20hw_20api_20_28_3ca_20href_3d_22https_3a_2f_2fctu_2dmrs_2egithub_2eio_2fmrs_5fuav_5fhw_5fapi_2f_22_3edocs_3c_2fa_3e_29_21',['MRS UAV HW API (<a href="https://ctu-mrs.github.io/mrs_uav_hw_api/">Docs</a>)',['../index.html',1,'']]], + ['mrsuavhwapi_22',['MrsUavHwApi',['../classmrs__uav__hw__api_1_1MrsUavHwApi.html',1,'mrs_uav_hw_api']]] +]; diff --git a/search/all_6.html b/search/all_6.html new file mode 100644 index 0000000..43f14ea --- /dev/null +++ b/search/all_6.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_6.js b/search/all_6.js new file mode 100644 index 0000000..7fa0e6b --- /dev/null +++ b/search/all_6.js @@ -0,0 +1,22 @@ +var searchData= +[ + ['publishaltitude_23',['publishAltitude',['../structmrs__uav__hw__api_1_1Publishers__t.html#a1e38ab12de7f79acfb5845f4d47f1f13',1,'mrs_uav_hw_api::Publishers_t']]], + ['publishangularvelocity_24',['publishAngularVelocity',['../structmrs__uav__hw__api_1_1Publishers__t.html#a31bc9f73d8cda684df1db27181d8dcbf',1,'mrs_uav_hw_api::Publishers_t']]], + ['publishbatterystate_25',['publishBatteryState',['../structmrs__uav__hw__api_1_1Publishers__t.html#abbbd33e2c97b9fdee4a13e6ac8f3851d',1,'mrs_uav_hw_api::Publishers_t']]], + ['publishdistancesensor_26',['publishDistanceSensor',['../structmrs__uav__hw__api_1_1Publishers__t.html#a2d4e6d0d2851ce5e9e3c0ab6b6aa05d4',1,'mrs_uav_hw_api::Publishers_t']]], + ['publishers_27',['publishers',['../structmrs__uav__hw__api_1_1CommonHandlers__t.html#a0d76cabe5191a3e8d618e175b0d89da9',1,'mrs_uav_hw_api::CommonHandlers_t']]], + ['publishers_5ft_28',['Publishers_t',['../structmrs__uav__hw__api_1_1Publishers__t.html',1,'mrs_uav_hw_api']]], + ['publishgnss_29',['publishGNSS',['../structmrs__uav__hw__api_1_1Publishers__t.html#a786d40a41a30e1bc2f19bb83d02ddfd0',1,'mrs_uav_hw_api::Publishers_t']]], + ['publishgnssstatus_30',['publishGNSSStatus',['../structmrs__uav__hw__api_1_1Publishers__t.html#a8a712f6d26d186be0f037304f27e8e85',1,'mrs_uav_hw_api::Publishers_t']]], + ['publishgroundtruth_31',['publishGroundTruth',['../structmrs__uav__hw__api_1_1Publishers__t.html#a243c02a6762c04c4fd7ebce7a0dcd96d',1,'mrs_uav_hw_api::Publishers_t']]], + ['publishimu_32',['publishIMU',['../structmrs__uav__hw__api_1_1Publishers__t.html#a590b528334c2aa98308f448c933ec17a',1,'mrs_uav_hw_api::Publishers_t']]], + ['publishmagneticfield_33',['publishMagneticField',['../structmrs__uav__hw__api_1_1Publishers__t.html#aeec348862e2945e51b222e9a1cf169f6',1,'mrs_uav_hw_api::Publishers_t']]], + ['publishmagnetometerheading_34',['publishMagnetometerHeading',['../structmrs__uav__hw__api_1_1Publishers__t.html#a628c7d8851d011d7e050b73e6ddc10ee',1,'mrs_uav_hw_api::Publishers_t']]], + ['publishodometry_35',['publishOdometry',['../structmrs__uav__hw__api_1_1Publishers__t.html#ad324064c4040dbcffbb7d8abc50530eb',1,'mrs_uav_hw_api::Publishers_t']]], + ['publishorientation_36',['publishOrientation',['../structmrs__uav__hw__api_1_1Publishers__t.html#af10b59dba9dd243d5568d694687f5ccb',1,'mrs_uav_hw_api::Publishers_t']]], + ['publishposition_37',['publishPosition',['../structmrs__uav__hw__api_1_1Publishers__t.html#a302b36b1d9b871767d40467cb3ce7534',1,'mrs_uav_hw_api::Publishers_t']]], + ['publishrcchannels_38',['publishRcChannels',['../structmrs__uav__hw__api_1_1Publishers__t.html#a85011e8a0ca4b1a6964839b14fa311b4',1,'mrs_uav_hw_api::Publishers_t']]], + ['publishrtk_39',['publishRTK',['../structmrs__uav__hw__api_1_1Publishers__t.html#a9d4fa0cfb267780d6f41d568ddfcd96e',1,'mrs_uav_hw_api::Publishers_t']]], + ['publishstatus_40',['publishStatus',['../structmrs__uav__hw__api_1_1Publishers__t.html#a4d586872bc4e08270b1e371ee9d389ef',1,'mrs_uav_hw_api::Publishers_t']]], + ['publishvelocity_41',['publishVelocity',['../structmrs__uav__hw__api_1_1Publishers__t.html#a60b1b9d9feab8aa0dcbbe09741d19ccc',1,'mrs_uav_hw_api::Publishers_t']]] +]; diff --git a/search/all_7.html b/search/all_7.html new file mode 100644 index 0000000..af52f82 --- /dev/null +++ b/search/all_7.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_7.js b/search/all_7.js new file mode 100644 index 0000000..6536f84 --- /dev/null +++ b/search/all_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['transformer_42',['transformer',['../structmrs__uav__hw__api_1_1CommonHandlers__t.html#ab78052233d3b0847dc2ca11797964184',1,'mrs_uav_hw_api::CommonHandlers_t']]] +]; diff --git a/search/all_8.html b/search/all_8.html new file mode 100644 index 0000000..cf2b5df --- /dev/null +++ b/search/all_8.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_8.js b/search/all_8.js new file mode 100644 index 0000000..d8b2f7e --- /dev/null +++ b/search/all_8.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['_7emrsuavhwapi_43',['~MrsUavHwApi',['../classmrs__uav__hw__api_1_1MrsUavHwApi.html#ac56c138bfac82f134d2c67558d49e51d',1,'mrs_uav_hw_api::MrsUavHwApi']]] +]; diff --git a/search/classes_0.html b/search/classes_0.html new file mode 100644 index 0000000..f7e4c14 --- /dev/null +++ b/search/classes_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/classes_0.js b/search/classes_0.js new file mode 100644 index 0000000..c858330 --- /dev/null +++ b/search/classes_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['commonhandlers_5ft_44',['CommonHandlers_t',['../structmrs__uav__hw__api_1_1CommonHandlers__t.html',1,'mrs_uav_hw_api']]] +]; diff --git a/search/classes_1.html b/search/classes_1.html new file mode 100644 index 0000000..c7ff4b3 --- /dev/null +++ b/search/classes_1.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/classes_1.js b/search/classes_1.js new file mode 100644 index 0000000..c7b9de4 --- /dev/null +++ b/search/classes_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['dummyapi_45',['DummyApi',['../classmrs__uav__hw__api_1_1DummyApi.html',1,'mrs_uav_hw_api']]] +]; diff --git a/search/classes_2.html b/search/classes_2.html new file mode 100644 index 0000000..0d1e8a0 --- /dev/null +++ b/search/classes_2.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/classes_2.js b/search/classes_2.js new file mode 100644 index 0000000..c9f4744 --- /dev/null +++ b/search/classes_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['hwapimanager_46',['HwApiManager',['../classmrs__uav__hw__api_1_1HwApiManager.html',1,'mrs_uav_hw_api']]] +]; diff --git a/search/classes_3.html b/search/classes_3.html new file mode 100644 index 0000000..2102545 --- /dev/null +++ b/search/classes_3.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/classes_3.js b/search/classes_3.js new file mode 100644 index 0000000..167fae9 --- /dev/null +++ b/search/classes_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['mrsuavhwapi_47',['MrsUavHwApi',['../classmrs__uav__hw__api_1_1MrsUavHwApi.html',1,'mrs_uav_hw_api']]] +]; diff --git a/search/classes_4.html b/search/classes_4.html new file mode 100644 index 0000000..095ab59 --- /dev/null +++ b/search/classes_4.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/classes_4.js b/search/classes_4.js new file mode 100644 index 0000000..a200bed --- /dev/null +++ b/search/classes_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['publishers_5ft_48',['Publishers_t',['../structmrs__uav__hw__api_1_1Publishers__t.html',1,'mrs_uav_hw_api']]] +]; diff --git a/search/close.png b/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/search/functions_0.html b/search/functions_0.html new file mode 100644 index 0000000..e17c711 --- /dev/null +++ b/search/functions_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_0.js b/search/functions_0.js new file mode 100644 index 0000000..b81ae08 --- /dev/null +++ b/search/functions_0.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['callbackaccelerationhdgcmd_49',['callbackAccelerationHdgCmd',['../classmrs__uav__hw__api_1_1MrsUavHwApi.html#af88b2aa16a8e88662cf6c16747acdf82',1,'mrs_uav_hw_api::MrsUavHwApi::callbackAccelerationHdgCmd()'],['../classmrs__uav__hw__api_1_1DummyApi.html#ac904bff4c9b37aa2b5ee8aa30d922f79',1,'mrs_uav_hw_api::DummyApi::callbackAccelerationHdgCmd()']]], + ['callbackaccelerationhdgratecmd_50',['callbackAccelerationHdgRateCmd',['../classmrs__uav__hw__api_1_1MrsUavHwApi.html#a5903740fdd654da8e0b1f0fcd34d852b',1,'mrs_uav_hw_api::MrsUavHwApi::callbackAccelerationHdgRateCmd()'],['../classmrs__uav__hw__api_1_1DummyApi.html#af8681be68b7f7e7cdbf12c8ce22fbe31',1,'mrs_uav_hw_api::DummyApi::callbackAccelerationHdgRateCmd()']]], + ['callbackactuatorcmd_51',['callbackActuatorCmd',['../classmrs__uav__hw__api_1_1MrsUavHwApi.html#a397145b920c1600b974fa3a5d107411a',1,'mrs_uav_hw_api::MrsUavHwApi::callbackActuatorCmd()'],['../classmrs__uav__hw__api_1_1DummyApi.html#ac87d448f75cbd8a1b8d4da0467d163e9',1,'mrs_uav_hw_api::DummyApi::callbackActuatorCmd()']]], + ['callbackarming_52',['callbackArming',['../classmrs__uav__hw__api_1_1MrsUavHwApi.html#ad549fd61bfa9996b1aaa49946d814156',1,'mrs_uav_hw_api::MrsUavHwApi::callbackArming()'],['../classmrs__uav__hw__api_1_1DummyApi.html#a565c955f9541ccb72a904f67bd02f83c',1,'mrs_uav_hw_api::DummyApi::callbackArming()']]], + ['callbackattitudecmd_53',['callbackAttitudeCmd',['../classmrs__uav__hw__api_1_1MrsUavHwApi.html#a537f4a53b84aee069bc3a8dd6a6620f7',1,'mrs_uav_hw_api::MrsUavHwApi::callbackAttitudeCmd()'],['../classmrs__uav__hw__api_1_1DummyApi.html#afd1ca6edaef8e060de452de555422191',1,'mrs_uav_hw_api::DummyApi::callbackAttitudeCmd()']]], + ['callbackattituderatecmd_54',['callbackAttitudeRateCmd',['../classmrs__uav__hw__api_1_1MrsUavHwApi.html#afb549fb51dbf0c05b082b1de9cd6c30b',1,'mrs_uav_hw_api::MrsUavHwApi::callbackAttitudeRateCmd()'],['../classmrs__uav__hw__api_1_1DummyApi.html#a4c628110de00a3df84e44cad7190e364',1,'mrs_uav_hw_api::DummyApi::callbackAttitudeRateCmd()']]], + ['callbackcontrolgroupcmd_55',['callbackControlGroupCmd',['../classmrs__uav__hw__api_1_1MrsUavHwApi.html#ada32d79a7512a6cba1b38d48a7926f18',1,'mrs_uav_hw_api::MrsUavHwApi::callbackControlGroupCmd()'],['../classmrs__uav__hw__api_1_1DummyApi.html#a218c3ffb446ca0b45f241e2790a4b684',1,'mrs_uav_hw_api::DummyApi::callbackControlGroupCmd()']]], + ['callbackoffboard_56',['callbackOffboard',['../classmrs__uav__hw__api_1_1MrsUavHwApi.html#aa4e0e43507391daf90f115d941b5aaee',1,'mrs_uav_hw_api::MrsUavHwApi::callbackOffboard()'],['../classmrs__uav__hw__api_1_1DummyApi.html#a1c8081a81f3f1a684cafecd627e75e22',1,'mrs_uav_hw_api::DummyApi::callbackOffboard()']]], + ['callbackpositioncmd_57',['callbackPositionCmd',['../classmrs__uav__hw__api_1_1MrsUavHwApi.html#abfaa7f3e38b567f9005152e8bacb23fb',1,'mrs_uav_hw_api::MrsUavHwApi::callbackPositionCmd()'],['../classmrs__uav__hw__api_1_1DummyApi.html#ad6ef3a2c6514595361959664cf6af850',1,'mrs_uav_hw_api::DummyApi::callbackPositionCmd()']]], + ['callbacktrackercmd_58',['callbackTrackerCmd',['../classmrs__uav__hw__api_1_1MrsUavHwApi.html#a610c4698eb909da8a5ab05b730347318',1,'mrs_uav_hw_api::MrsUavHwApi::callbackTrackerCmd()'],['../classmrs__uav__hw__api_1_1DummyApi.html#aa022a02c75d33e4e93f112537a1fdf86',1,'mrs_uav_hw_api::DummyApi::callbackTrackerCmd()']]], + ['callbackvelocityhdgcmd_59',['callbackVelocityHdgCmd',['../classmrs__uav__hw__api_1_1MrsUavHwApi.html#a624d2ec97c6c02118e214216614572b7',1,'mrs_uav_hw_api::MrsUavHwApi::callbackVelocityHdgCmd()'],['../classmrs__uav__hw__api_1_1DummyApi.html#a9dbd76d8646e8414c4c4b6405e988f00',1,'mrs_uav_hw_api::DummyApi::callbackVelocityHdgCmd()']]], + ['callbackvelocityhdgratecmd_60',['callbackVelocityHdgRateCmd',['../classmrs__uav__hw__api_1_1MrsUavHwApi.html#a47d1818995e6bc815f4e8cad789c4232',1,'mrs_uav_hw_api::MrsUavHwApi::callbackVelocityHdgRateCmd()'],['../classmrs__uav__hw__api_1_1DummyApi.html#a3cbaa93b72033097ece1f833d022968f',1,'mrs_uav_hw_api::DummyApi::callbackVelocityHdgRateCmd()']]] +]; diff --git a/search/functions_1.html b/search/functions_1.html new file mode 100644 index 0000000..0ddac0a --- /dev/null +++ b/search/functions_1.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_1.js b/search/functions_1.js new file mode 100644 index 0000000..2101410 --- /dev/null +++ b/search/functions_1.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['getcapabilities_61',['getCapabilities',['../classmrs__uav__hw__api_1_1MrsUavHwApi.html#a654f724908c2a601f69b66f44f94092f',1,'mrs_uav_hw_api::MrsUavHwApi::getCapabilities()'],['../classmrs__uav__hw__api_1_1DummyApi.html#a3328034dca690d917ce2689c1eb13b52',1,'mrs_uav_hw_api::DummyApi::getCapabilities()']]], + ['getstatus_62',['getStatus',['../classmrs__uav__hw__api_1_1MrsUavHwApi.html#a7d8267f792fffb3a6118df0db21d1202',1,'mrs_uav_hw_api::MrsUavHwApi::getStatus()'],['../classmrs__uav__hw__api_1_1DummyApi.html#af7bbab47dba560abd5a76a273c07e157',1,'mrs_uav_hw_api::DummyApi::getStatus()']]] +]; diff --git a/search/functions_2.html b/search/functions_2.html new file mode 100644 index 0000000..2737c5a --- /dev/null +++ b/search/functions_2.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_2.js b/search/functions_2.js new file mode 100644 index 0000000..0941dac --- /dev/null +++ b/search/functions_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['initialize_63',['initialize',['../classmrs__uav__hw__api_1_1MrsUavHwApi.html#a8889e80844000735944372644daf4a19',1,'mrs_uav_hw_api::MrsUavHwApi::initialize()'],['../classmrs__uav__hw__api_1_1DummyApi.html#a12c9b64ebdd7787cb78f23f75892d76d',1,'mrs_uav_hw_api::DummyApi::initialize()']]] +]; diff --git a/search/functions_3.html b/search/functions_3.html new file mode 100644 index 0000000..6da86e7 --- /dev/null +++ b/search/functions_3.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_3.js b/search/functions_3.js new file mode 100644 index 0000000..29b0c40 --- /dev/null +++ b/search/functions_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['_7emrsuavhwapi_64',['~MrsUavHwApi',['../classmrs__uav__hw__api_1_1MrsUavHwApi.html#ac56c138bfac82f134d2c67558d49e51d',1,'mrs_uav_hw_api::MrsUavHwApi']]] +]; diff --git a/search/mag_sel.png b/search/mag_sel.png new file mode 100644 index 0000000000000000000000000000000000000000..39c0ed52a25dd9d080ee0d42ae6c6042bdfa04d7 GIT binary patch literal 465 zcmeAS@N?(olHy`uVBq!ia0vp^B0wz6!2%?$TA$hhDVB6cUq=Rpjs4tz5?O(Kg=CK) zUj~NU84L`?eGCi_EEpJ?t}-xGu`@87+QPtK?83kxQ`TapwHK(CDaqU2h2ejD|C#+j z9%q3^WHAE+w=f7ZGR&GI0Tg5}@$_|Nf5gMiEhFgvHvB$N=!mC_V~EE2vzPXI9ZnEo zd+1zHor@dYLod2Y{ z@R$7$Z!PXTbY$|@#T!bMzm?`b<(R`cbw(gxJHzu zB$lLFB^RXvDF!10LknF)BV7aY5JN*NBMU1-b8Q0yD+2>vd*|CI8glbfGSez?Ylunu RoetE%;OXk;vd$@?2>>CYplSdB literal 0 HcmV?d00001 diff --git a/search/nomatches.html b/search/nomatches.html new file mode 100644 index 0000000..4377320 --- /dev/null +++ b/search/nomatches.html @@ -0,0 +1,12 @@ + + + + + + + +
    +
    No Matches
    +
    + + diff --git a/search/pages_0.html b/search/pages_0.html new file mode 100644 index 0000000..9a6a29a --- /dev/null +++ b/search/pages_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/pages_0.js b/search/pages_0.js new file mode 100644 index 0000000..5156960 --- /dev/null +++ b/search/pages_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['mrs_20uav_20hw_20api_20_28_3ca_20href_3d_22https_3a_2f_2fctu_2dmrs_2egithub_2eio_2fmrs_5fuav_5fhw_5fapi_2f_22_3edocs_3c_2fa_3e_29_87',['MRS UAV HW API (<a href="https://ctu-mrs.github.io/mrs_uav_hw_api/">Docs</a>)',['../index.html',1,'']]] +]; diff --git a/search/search.css b/search/search.css new file mode 100644 index 0000000..3cf9df9 --- /dev/null +++ b/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/search/search.js b/search/search.js new file mode 100644 index 0000000..a554ab9 --- /dev/null +++ b/search/search.js @@ -0,0 +1,814 @@ +/* + @licstart The following is the entire license notice for the + JavaScript code in this file. + + Copyright (C) 1997-2017 by Dimitri van Heesch + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + @licend The above is the entire license notice + for the JavaScript code in this file + */ +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; e(R!W8j_r#qQ#gnr4kAxdU#F0+OBry$Z+ z_0PMi;P|#{d%mw(dnw=jM%@$onTJa%@6Nm3`;2S#nwtVFJI#`U@2Q@@JCCctagvF- z8H=anvo~dTmJ2YA%wA6IHRv%{vxvUm|R)kgZeo zmX%Zb;mpflGZdXCTAgit`||AFzkI#z&(3d4(htA?U2FOL4WF6wY&TB#n3n*I4+hl| z*NBpo#FA92vEu822WQ%mvv4FO#qs` BFGc_W literal 0 HcmV?d00001 diff --git a/search/search_r.png b/search/search_r.png new file mode 100644 index 0000000000000000000000000000000000000000..1af5d21ee13e070d7600f1c4657fde843b953a69 GIT binary patch literal 553 zcmeAS@N?(olHy`uVBq!ia0vp^LO?9c!2%@BXHTsJQY`6?zK#qG8~eHcB(ehe3dtTp zz6=bxGZ+|(`xqD=STHa&U1eaXVrO7DwS|Gf*oA>XrmV$GYcEhOQT(QLuS{~ooZ2P@v=Xc@RKW@Irliv8_;wroU0*)0O?temdsA~70jrdux+`@W7 z-N(<(C)L?hOO?KV{>8(jC{hpKsws)#Fh zvsO>IB+gb@b+rGWaO&!a9Z{!U+fV*s7TS>fdt&j$L%^U@Epd$~Nl7e8wMs5Z1yT$~ z28I^8hDN#u<{^fLRz?<9hUVG^237_Jy7tbuQ8eV{r(~v8;?@w8^gA7>fx*+&&t;uc GLK6VEQpiUD literal 0 HcmV?d00001 diff --git a/search/searchdata.js b/search/searchdata.js new file mode 100644 index 0000000..ee5b126 --- /dev/null +++ b/search/searchdata.js @@ -0,0 +1,27 @@ +var indexSectionsWithContent = +{ + 0: "cdghimpt~", + 1: "cdhmp", + 2: "cgi~", + 3: "gpt", + 4: "m" +}; + +var indexSectionNames = +{ + 0: "all", + 1: "classes", + 2: "functions", + 3: "variables", + 4: "pages" +}; + +var indexSectionLabels = +{ + 0: "All", + 1: "Classes", + 2: "Functions", + 3: "Variables", + 4: "Pages" +}; + diff --git a/search/variables_0.html b/search/variables_0.html new file mode 100644 index 0000000..bf3eba5 --- /dev/null +++ b/search/variables_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/variables_0.js b/search/variables_0.js new file mode 100644 index 0000000..f79af61 --- /dev/null +++ b/search/variables_0.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['getbodyframename_65',['getBodyFrameName',['../structmrs__uav__hw__api_1_1CommonHandlers__t.html#abd112a8b4d35872df1bf2d110875cf82',1,'mrs_uav_hw_api::CommonHandlers_t']]], + ['getuavname_66',['getUavName',['../structmrs__uav__hw__api_1_1CommonHandlers__t.html#add8f6daa450737766d3006bab075cc18',1,'mrs_uav_hw_api::CommonHandlers_t']]], + ['getworldframename_67',['getWorldFrameName',['../structmrs__uav__hw__api_1_1CommonHandlers__t.html#a460f462de5f5b703562cc7d4c4bf62e1',1,'mrs_uav_hw_api::CommonHandlers_t']]] +]; diff --git a/search/variables_1.html b/search/variables_1.html new file mode 100644 index 0000000..49fe59a --- /dev/null +++ b/search/variables_1.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/variables_1.js b/search/variables_1.js new file mode 100644 index 0000000..52eb0de --- /dev/null +++ b/search/variables_1.js @@ -0,0 +1,21 @@ +var searchData= +[ + ['publishaltitude_68',['publishAltitude',['../structmrs__uav__hw__api_1_1Publishers__t.html#a1e38ab12de7f79acfb5845f4d47f1f13',1,'mrs_uav_hw_api::Publishers_t']]], + ['publishangularvelocity_69',['publishAngularVelocity',['../structmrs__uav__hw__api_1_1Publishers__t.html#a31bc9f73d8cda684df1db27181d8dcbf',1,'mrs_uav_hw_api::Publishers_t']]], + ['publishbatterystate_70',['publishBatteryState',['../structmrs__uav__hw__api_1_1Publishers__t.html#abbbd33e2c97b9fdee4a13e6ac8f3851d',1,'mrs_uav_hw_api::Publishers_t']]], + ['publishdistancesensor_71',['publishDistanceSensor',['../structmrs__uav__hw__api_1_1Publishers__t.html#a2d4e6d0d2851ce5e9e3c0ab6b6aa05d4',1,'mrs_uav_hw_api::Publishers_t']]], + ['publishers_72',['publishers',['../structmrs__uav__hw__api_1_1CommonHandlers__t.html#a0d76cabe5191a3e8d618e175b0d89da9',1,'mrs_uav_hw_api::CommonHandlers_t']]], + ['publishgnss_73',['publishGNSS',['../structmrs__uav__hw__api_1_1Publishers__t.html#a786d40a41a30e1bc2f19bb83d02ddfd0',1,'mrs_uav_hw_api::Publishers_t']]], + ['publishgnssstatus_74',['publishGNSSStatus',['../structmrs__uav__hw__api_1_1Publishers__t.html#a8a712f6d26d186be0f037304f27e8e85',1,'mrs_uav_hw_api::Publishers_t']]], + ['publishgroundtruth_75',['publishGroundTruth',['../structmrs__uav__hw__api_1_1Publishers__t.html#a243c02a6762c04c4fd7ebce7a0dcd96d',1,'mrs_uav_hw_api::Publishers_t']]], + ['publishimu_76',['publishIMU',['../structmrs__uav__hw__api_1_1Publishers__t.html#a590b528334c2aa98308f448c933ec17a',1,'mrs_uav_hw_api::Publishers_t']]], + ['publishmagneticfield_77',['publishMagneticField',['../structmrs__uav__hw__api_1_1Publishers__t.html#aeec348862e2945e51b222e9a1cf169f6',1,'mrs_uav_hw_api::Publishers_t']]], + ['publishmagnetometerheading_78',['publishMagnetometerHeading',['../structmrs__uav__hw__api_1_1Publishers__t.html#a628c7d8851d011d7e050b73e6ddc10ee',1,'mrs_uav_hw_api::Publishers_t']]], + ['publishodometry_79',['publishOdometry',['../structmrs__uav__hw__api_1_1Publishers__t.html#ad324064c4040dbcffbb7d8abc50530eb',1,'mrs_uav_hw_api::Publishers_t']]], + ['publishorientation_80',['publishOrientation',['../structmrs__uav__hw__api_1_1Publishers__t.html#af10b59dba9dd243d5568d694687f5ccb',1,'mrs_uav_hw_api::Publishers_t']]], + ['publishposition_81',['publishPosition',['../structmrs__uav__hw__api_1_1Publishers__t.html#a302b36b1d9b871767d40467cb3ce7534',1,'mrs_uav_hw_api::Publishers_t']]], + ['publishrcchannels_82',['publishRcChannels',['../structmrs__uav__hw__api_1_1Publishers__t.html#a85011e8a0ca4b1a6964839b14fa311b4',1,'mrs_uav_hw_api::Publishers_t']]], + ['publishrtk_83',['publishRTK',['../structmrs__uav__hw__api_1_1Publishers__t.html#a9d4fa0cfb267780d6f41d568ddfcd96e',1,'mrs_uav_hw_api::Publishers_t']]], + ['publishstatus_84',['publishStatus',['../structmrs__uav__hw__api_1_1Publishers__t.html#a4d586872bc4e08270b1e371ee9d389ef',1,'mrs_uav_hw_api::Publishers_t']]], + ['publishvelocity_85',['publishVelocity',['../structmrs__uav__hw__api_1_1Publishers__t.html#a60b1b9d9feab8aa0dcbbe09741d19ccc',1,'mrs_uav_hw_api::Publishers_t']]] +]; diff --git a/search/variables_2.html b/search/variables_2.html new file mode 100644 index 0000000..0c8a18c --- /dev/null +++ b/search/variables_2.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/variables_2.js b/search/variables_2.js new file mode 100644 index 0000000..4475fe7 --- /dev/null +++ b/search/variables_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['transformer_86',['transformer',['../structmrs__uav__hw__api_1_1CommonHandlers__t.html#ab78052233d3b0847dc2ca11797964184',1,'mrs_uav_hw_api::CommonHandlers_t']]] +]; diff --git a/splitbar.png b/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/structmrs__uav__hw__api_1_1CommonHandlers__t-members.html b/structmrs__uav__hw__api_1_1CommonHandlers__t-members.html new file mode 100644 index 0000000..a32bfff --- /dev/null +++ b/structmrs__uav__hw__api_1_1CommonHandlers__t-members.html @@ -0,0 +1,109 @@ + + + + + + + +mrs_uav_hw_api: Member List + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    mrs_uav_hw_api +
    +
    An abstraction layer between the MRS UAV System and a low-level Flight Controller
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + + + + + + diff --git a/structmrs__uav__hw__api_1_1CommonHandlers__t.html b/structmrs__uav__hw__api_1_1CommonHandlers__t.html new file mode 100644 index 0000000..041764a --- /dev/null +++ b/structmrs__uav__hw__api_1_1CommonHandlers__t.html @@ -0,0 +1,150 @@ + + + + + + + +mrs_uav_hw_api: mrs_uav_hw_api::CommonHandlers_t Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    mrs_uav_hw_api +
    +
    An abstraction layer between the MRS UAV System and a low-level Flight Controller
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    mrs_uav_hw_api::CommonHandlers_t Struct Reference
    +
    +
    + +

    A structure with methods and variables provided to the HW API Plugin. + More...

    + +

    #include <common_handlers.h>

    +
    + + Collaboration diagram for mrs_uav_hw_api::CommonHandlers_t:
    +
    +
    + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +Publishers_t publishers
     A structure with publishers that the plugin should use to provide data to the MRS UAV System.
     
    +std::shared_ptr< mrs_lib::Transformer > transformer
     The mrs_lib's TF2 transformer wrapper.
     
    +getUavName_t getUavName
     Method for obtaining the current "UAV_NAME" (the one set from the $UAV_NAME env variable).
     
    +getBodyFrameName_t getBodyFrameName
     Method for obtaining the body-fixed frame_id (as it is called by the MRS UAV System). This frame_id should be used when publishing data in the body-fixed frame, e.g., the IMU data.
     
    +getWorldFrameName_t getWorldFrameName
     Method for obtaining the world-frame for marking the flight-controller's data, e.g., the position of the UAV in the flight-controllers frame.
     
    +

    Detailed Description

    +

    A structure with methods and variables provided to the HW API Plugin.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structmrs__uav__hw__api_1_1CommonHandlers__t.js b/structmrs__uav__hw__api_1_1CommonHandlers__t.js new file mode 100644 index 0000000..33699cf --- /dev/null +++ b/structmrs__uav__hw__api_1_1CommonHandlers__t.js @@ -0,0 +1,8 @@ +var structmrs__uav__hw__api_1_1CommonHandlers__t = +[ + [ "getBodyFrameName", "structmrs__uav__hw__api_1_1CommonHandlers__t.html#abd112a8b4d35872df1bf2d110875cf82", null ], + [ "getUavName", "structmrs__uav__hw__api_1_1CommonHandlers__t.html#add8f6daa450737766d3006bab075cc18", null ], + [ "getWorldFrameName", "structmrs__uav__hw__api_1_1CommonHandlers__t.html#a460f462de5f5b703562cc7d4c4bf62e1", null ], + [ "publishers", "structmrs__uav__hw__api_1_1CommonHandlers__t.html#a0d76cabe5191a3e8d618e175b0d89da9", null ], + [ "transformer", "structmrs__uav__hw__api_1_1CommonHandlers__t.html#ab78052233d3b0847dc2ca11797964184", null ] +]; \ No newline at end of file diff --git a/structmrs__uav__hw__api_1_1CommonHandlers__t__coll__graph.map b/structmrs__uav__hw__api_1_1CommonHandlers__t__coll__graph.map new file mode 100644 index 0000000..b69a9e0 --- /dev/null +++ b/structmrs__uav__hw__api_1_1CommonHandlers__t__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/structmrs__uav__hw__api_1_1CommonHandlers__t__coll__graph.md5 b/structmrs__uav__hw__api_1_1CommonHandlers__t__coll__graph.md5 new file mode 100644 index 0000000..ced4186 --- /dev/null +++ b/structmrs__uav__hw__api_1_1CommonHandlers__t__coll__graph.md5 @@ -0,0 +1 @@ +a293bd62e07b4961f4d73a99152f9ee4 \ No newline at end of file diff --git a/structmrs__uav__hw__api_1_1CommonHandlers__t__coll__graph.png b/structmrs__uav__hw__api_1_1CommonHandlers__t__coll__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..55b9a28fc6e0bd75c0a87b4f9526b12e8c469217 GIT binary patch literal 6313 zcmZXZ1yodTyTuRPCEbD|J#-BvB_L7;Aw%dW2$E7N-8CRctF(l)bVvz;gwiE~bj={$ zb>F$)z3cwJ?=IGo*R|%%dF$Exw;v)5^fW0*Sx6xWqR`e-zY9S)j9~0XObGt{h8JoK zei1&_(Nu>nu|Jtj`SB3MWTCCDa{uLrjp5NZgwwzQZf*lRPx zEzJhvh*Rf?oxBgCR6*WHskkuz=$IuQ#CNZFc3n&}n6ECHB=T!`0lw%w3dKS|K%y&J z94#b_>+?t1`_q8dFooN2l~RVQY<>}XrlG&2Vc*0onGJ~wpjMR>9K1PBL#>*wn}8tZ zdZ^MJLY+;8H+0wcJ=|X`zD-SyC@vN04 zy0ki&!v}+nX-~oBUf@8Uo}Sll+*mJsrJ7F0*0omb(6FpZJV<&Q7EE1|x%jW)>zhIh z3jALXX>$^v(vI@gQ%A3L|NPB*^4hzf6B7{M0TH8vI%58H^c zr^tK4-phMBCab8UMG%@ja7gTN(9_&oq4swZe(iOy|c5E5*d*n z#i;ObtFf`MJFw)+!a@OSE34MX$Vet6s=l$YlIGg2a-Y)!u}&uJr!Foo?5c-NIUg=C ziCRHAIyy)xDJdaw@wX%)szydeolHpk`Hl$t%ZqdG%17;?{AuY@&l$)lD3rnl9*GjGNBm@CXP?Yc z3mdWX`d#OO0T+2Gzo@W~3Az!dh24hw`p-_y$DyMmBjp$8rKM=4%9q#)xz+qM zTj1m8pIfP|suImI_%5O!kJPt}kDB?wfa9N-NPjswGD3HLvL6Iq{?$`F^-fkyP!Qhb zB&dl$ewT`4rRHRyT!l<4@W;z6$F=MuA|k+54hRV$0Jr|xGrsFrNR<7y=f8zVMYS(< zy>YoXd!?0o7oU)@u*v)R^XC_psj1A+me2md!7V#GfuW%xQQM*GeW?;eEBzUo=H~3; z5)yM88zpf{P%BWEjCYQfd4e9BGZZlkRyHxY~g;!UCh^UMjeLWWpZG`yDRzgBT zASh0&!!lM{QnI5xjEY{*)$2KC{{c9shMaRJ!Lzfo*bg62g2tt-y}e}j^7S;-)Pj1J zQc_d-ub0*^vin`0dkUG9LuNJhDz>)#i!bD|b8_fQUHd-B(dOml9c_1UZclsunJcNC znJ2Q>f92)1aCW?_rLEnDVwSK%BJt$qj-f@VF7jR*(`%4=&k zJuoGVZs_&(*u+EvPy)UdHfRLxwwtGrEFAu|wH2bLr?*1!pB*0`Z!bwo9gvgnxyp?8 z7c}zo@DQ-dICe}odJc|^1Scgie19Sy64lxh{_QcFtTS}?6P<>J1~C=Y%1SjX$M5n& zR9gC$kr4xS_Uo)nOtT_>$7BbX$slkL$nLj1Ea>qB{(Dtqlj%A~7kc zs)Ypy3k%EEZol%it5>1u=x7$F{;@FzaBu9)6E=0yixzj*i^{$Z4P8-EQo>d(m{weD zEJQ{|mgt_7oo!%fh!dxUZ)s^6a_=3NTIg)NzEWEt0oheL($CgE-cjnmVi2)Fff>ol z$vyfSOu~Xrj))-1yOWB0@7_HWyF3FVitHp;@IErwSj=|hR8>_iw;jGQF*(TvgHdX0 zYm?>|y&IW?Z`vv-GLu2hTeB)C7AaCNm-3pL&Yna;8ag_BT3XuZ+FHkH_y;*xLThX5 z*Y369r9>y|$`9O%dg8tFzC6(?@R|93(Do&b0md>8O-AgXgdqrZ% zE(7xIiV=6&kDEEXZV`666fe$R89n zs&T*ee@kY_ul$Kr^yQA@l^Zs7ekz68gj@-TaMEb1_l7&J!X~|($;&(Og>FnVgNz9X zt$fm-+5ytZXQ^y_O%I7oAH@F++03gUdeK@dV9~kjetxKm z->=I(sFr({$d9$%#>3rWz$@2hCheR

    bbAydEd1%$i`1ylXv%FSu?motqHUzis?U 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 ZpO0CwW<-cu5%}8!q^+T+UaD#p_+Q(j;D-PJ literal 0 HcmV?d00001 diff --git a/structmrs__uav__hw__api_1_1Publishers__t-members.html b/structmrs__uav__hw__api_1_1Publishers__t-members.html new file mode 100644 index 0000000..7f0639f --- /dev/null +++ b/structmrs__uav__hw__api_1_1Publishers__t-members.html @@ -0,0 +1,121 @@ + + + + + + + +mrs_uav_hw_api: Member List + + + + + + + + + + + + + +

    +
    + + + + + + + +
    +
    mrs_uav_hw_api +
    +
    An abstraction layer between the MRS UAV System and a low-level Flight Controller
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + + + + + + diff --git a/structmrs__uav__hw__api_1_1Publishers__t.html b/structmrs__uav__hw__api_1_1Publishers__t.html new file mode 100644 index 0000000..6f77877 --- /dev/null +++ b/structmrs__uav__hw__api_1_1Publishers__t.html @@ -0,0 +1,187 @@ + + + + + + + +mrs_uav_hw_api: mrs_uav_hw_api::Publishers_t Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    mrs_uav_hw_api +
    +
    An abstraction layer between the MRS UAV System and a low-level Flight Controller
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    mrs_uav_hw_api::Publishers_t Struct Reference
    +
    +
    + +

    A structure with publisher methods provided to the HW API Plugin. The plugin can call these methods at will to provided data to the MRS UAV System. In case the HW API Plugin intents to publish data, the respective varible "produces_***" in the HW API Capabilities of the plugin is supposed to be fill in. + More...

    + +

    #include <publishers.h>

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

    +Public Attributes

    +publishIMU_t publishIMU
     Publisher for the raw IMU data.
     
    +publishGNSS_t publishGNSS
     Publisher for the main GNSS data.
     
    +publishGNSSStatus_t publishGNSSStatus
     Publisher for the GNSS status message.
     
    +publishRTK_t publishRTK
     Publisher for the RTK GNSS data.
     
    +publishDistanceSensor_t publishDistanceSensor
     Publisher for the distance sensor readings. The distance sensor is expected to be pointing down towards the ground.
     
    +publishAltitude_t publishAltitude
     Altitude of the UAV in AMSL (Above Mean Seal Level).
     
    +publishMagnetometerHeading_t publishMagnetometerHeading
     Publisher for the estimated magnetometer heading.
     
    +publishMagneticField_t publishMagneticField
     Publisher for the RAW magnetometer readings.
     
    +publishStatus_t publishStatus
     Publisher for the HW API Plugin status.
     
    +publishRcChannels_t publishRcChannels
     Publisher for the RC Channels received by the flight controller.
     
    +publishBatteryState_t publishBatteryState
     Publisher for the UAV battery state.
     
    +publishPosition_t publishPosition
     Publisher for the UAV position as estimated by the flight controller. The position is supposed to be expressed in the "world frame" provided by the common handlers.
     
    +publishOrientation_t publishOrientation
     Publisher for the UAV orientation. The orientation is supposed to be expressed in the "world frame" provided by the common handlers.
     
    +publishVelocity_t publishVelocity
     Publisher for the UAV velocity expressed in the body-fixed frame, provided by the common handlers.
     
    +publishAngularVelocity_t publishAngularVelocity
     Publisher for the intrinsic angular velocity. This can be already pre-filtered. The angular velocity is supposed to be expressed in the "body-fixed" frame provided in the common handlers.
     
    +publishOdometry_t publishOdometry
     Publisher for a general "odometry" message that can be used for vizualizing the state of the UAV, as produced by the flight controller. The MRS UAV System will use this when running the "passthrough_ state estimator.
     
    +publishOdometry_t publishGroundTruth
     Publisher for ground truth odometry which can be provided by, e.g., a simulator or a MoCap system. The MRS UAV System will use this when running the "ground_truth" state estimator.
     
    +

    Detailed Description

    +

    A structure with publisher methods provided to the HW API Plugin. The plugin can call these methods at will to provided data to the MRS UAV System. In case the HW API Plugin intents to publish data, the respective varible "produces_***" in the HW API Capabilities of the plugin is supposed to be fill in.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structmrs__uav__hw__api_1_1Publishers__t.js b/structmrs__uav__hw__api_1_1Publishers__t.js new file mode 100644 index 0000000..8951706 --- /dev/null +++ b/structmrs__uav__hw__api_1_1Publishers__t.js @@ -0,0 +1,20 @@ +var structmrs__uav__hw__api_1_1Publishers__t = +[ + [ "publishAltitude", "structmrs__uav__hw__api_1_1Publishers__t.html#a1e38ab12de7f79acfb5845f4d47f1f13", null ], + [ "publishAngularVelocity", "structmrs__uav__hw__api_1_1Publishers__t.html#a31bc9f73d8cda684df1db27181d8dcbf", null ], + [ "publishBatteryState", "structmrs__uav__hw__api_1_1Publishers__t.html#abbbd33e2c97b9fdee4a13e6ac8f3851d", null ], + [ "publishDistanceSensor", "structmrs__uav__hw__api_1_1Publishers__t.html#a2d4e6d0d2851ce5e9e3c0ab6b6aa05d4", null ], + [ "publishGNSS", "structmrs__uav__hw__api_1_1Publishers__t.html#a786d40a41a30e1bc2f19bb83d02ddfd0", null ], + [ "publishGNSSStatus", "structmrs__uav__hw__api_1_1Publishers__t.html#a8a712f6d26d186be0f037304f27e8e85", null ], + [ "publishGroundTruth", "structmrs__uav__hw__api_1_1Publishers__t.html#a243c02a6762c04c4fd7ebce7a0dcd96d", null ], + [ "publishIMU", "structmrs__uav__hw__api_1_1Publishers__t.html#a590b528334c2aa98308f448c933ec17a", null ], + [ "publishMagneticField", "structmrs__uav__hw__api_1_1Publishers__t.html#aeec348862e2945e51b222e9a1cf169f6", null ], + [ "publishMagnetometerHeading", "structmrs__uav__hw__api_1_1Publishers__t.html#a628c7d8851d011d7e050b73e6ddc10ee", null ], + [ "publishOdometry", "structmrs__uav__hw__api_1_1Publishers__t.html#ad324064c4040dbcffbb7d8abc50530eb", null ], + [ "publishOrientation", "structmrs__uav__hw__api_1_1Publishers__t.html#af10b59dba9dd243d5568d694687f5ccb", null ], + [ "publishPosition", "structmrs__uav__hw__api_1_1Publishers__t.html#a302b36b1d9b871767d40467cb3ce7534", null ], + [ "publishRcChannels", "structmrs__uav__hw__api_1_1Publishers__t.html#a85011e8a0ca4b1a6964839b14fa311b4", null ], + [ "publishRTK", "structmrs__uav__hw__api_1_1Publishers__t.html#a9d4fa0cfb267780d6f41d568ddfcd96e", null ], + [ "publishStatus", "structmrs__uav__hw__api_1_1Publishers__t.html#a4d586872bc4e08270b1e371ee9d389ef", null ], + [ "publishVelocity", "structmrs__uav__hw__api_1_1Publishers__t.html#a60b1b9d9feab8aa0dcbbe09741d19ccc", null ] +]; \ No newline at end of file diff --git a/sync_off.png b/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/sync_on.png b/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/tab_a.png b/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/tab_b.png b/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/tabs.css b/tabs.css new file mode 100644 index 0000000..7d45d36 --- /dev/null +++ b/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:rgba(0,0,0,0)}.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}}