From d330dbc9a315d4a8c8f3e8e8af453eb8439b1fb2 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 1 Feb 2024 23:25:29 +0000 Subject: [PATCH] Deploy to GitHub pages --- ...mController_2LogComponent_8hpp_source.html | 97 + EcroPwmController_8hpp_source.html | 141 ++ ...lController_2LogComponent_8hpp_source.html | 97 + EcroWheelController_8hpp_source.html | 140 ++ ...rController_2LogComponent_8hpp_source.html | 97 + FakeMotorController_8hpp_source.html | 128 ++ IRobotManager_8hpp_source.html | 133 ++ ...hController_2LogComponent_8hpp_source.html | 97 + LaserTowerOfDeathController_8hpp_source.html | 144 ++ ...rController_2LogComponent_8hpp_source.html | 97 + RaspiOnePwmMotorController_8hpp_source.html | 144 ++ ...rController_2LogComponent_8hpp_source.html | 97 + RaspiTwoPwmMotorController_8hpp_source.html | 145 ++ RobotClient_2LogComponent_8hpp_source.html | 97 + RobotClient_8hpp_source.html | 134 ++ RobotServer_2LogComponent_8hpp_source.html | 97 + RobotServer_8hpp_source.html | 125 ++ annotated.html | 99 + bc_s.png | Bin 0 -> 676 bytes bdwn.png | Bin 0 -> 147 bytes classRobotPy_1_1Robot-members.html | 91 + classRobotPy_1_1Robot.html | 108 + classasrob_1_1EcroPwmController-members.html | 102 + classasrob_1_1EcroPwmController.html | 164 ++ classasrob_1_1EcroPwmController.png | Bin 0 -> 1184 bytes ...sasrob_1_1EcroWheelController-members.html | 100 + classasrob_1_1EcroWheelController.html | 158 ++ classasrob_1_1EcroWheelController.png | Bin 0 -> 1203 bytes ...sasrob_1_1FakeMotorController-members.html | 97 + classasrob_1_1FakeMotorController.html | 141 ++ classasrob_1_1FakeMotorController.png | Bin 0 -> 1098 bytes classasrob_1_1IRobotManager-members.html | 95 + classasrob_1_1IRobotManager.html | 134 ++ classasrob_1_1IRobotManager.png | Bin 0 -> 2358 bytes ..._1LaserTowerOfDeathController-members.html | 103 + ...sasrob_1_1LaserTowerOfDeathController.html | 167 ++ classasrob_1_1LaserTowerOfDeathController.png | Bin 0 -> 1200 bytes ...1_1RaspiOnePwmMotorController-members.html | 99 + classasrob_1_1RaspiOnePwmMotorController.html | 188 ++ classasrob_1_1RaspiOnePwmMotorController.png | Bin 0 -> 1210 bytes ...1_1RaspiTwoPwmMotorController-members.html | 103 + classasrob_1_1RaspiTwoPwmMotorController.html | 204 ++ classasrob_1_1RaspiTwoPwmMotorController.png | Bin 0 -> 1197 bytes classasrob_1_1RobotClient-members.html | 100 + classasrob_1_1RobotClient.html | 158 ++ classasrob_1_1RobotClient.png | Bin 0 -> 1003 bytes classasrob_1_1RobotServer-members.html | 94 + classasrob_1_1RobotServer.html | 130 ++ classasrob_1_1RobotServer.png | Bin 0 -> 965 bytes classes.html | 105 + closed.png | Bin 0 -> 132 bytes dir_3bb89c900400717501ccff31d9189399.html | 85 + dir_42950ad3e062fd69313a6bd36855dcce.html | 85 + dir_519a1276aa89a8145950b617d844d189.html | 85 + dir_70a30ac1a90abd159b6a503e4b49cd79.html | 85 + dir_7812be98e96dd641e444e9355f0ac13a.html | 85 + dir_7e6f7f084ac2fdbb681245a4671ec54f.html | 85 + dir_8976e5d03119516083eaca3ddca61311.html | 89 + dir_a1a0d9f4b7bb423803a133c5c7f74fe7.html | 85 + dir_a52c22a8b79e169194d9c4bbc7c46367.html | 85 + dir_aef3a60a7dfcacfdd3584588a1e47516.html | 85 + dir_b699cc7574ccf41bf6ae62fe86f6f714.html | 85 + dir_bc0718b08fb2015b8e59c47b2805f60c.html | 89 + dir_ca7ec62bdf2659023456a44edaa57035.html | 85 + dir_d050070cc3e4bbd91d897ff8856046e0.html | 89 + dir_d28a4824dc47e487b107a5db32ef43c4.html | 91 + dir_e08f7038a11a903b326f4d6bfb17a7cc.html | 85 + dir_e68e8157741866f444e17edd764ebbae.html | 85 + dir_f98f57c538677273d6e3d52c55355c28.html | 89 + doc.png | Bin 0 -> 746 bytes doxygen.css | 1793 +++++++++++++++++ doxygen.svg | 26 + dynsections.js | 121 ++ files.html | 114 ++ folderclosed.png | Bin 0 -> 616 bytes folderopen.png | Bin 0 -> 597 bytes functions.html | 161 ++ functions_func.html | 161 ++ group__YarpPlugins.html | 116 ++ group__yarp__devices__applications.html | 84 + group__yarp__devices__examples.html | 95 + group__yarp__devices__examples__cpp.html | 81 + group__yarp__devices__examples__py.html | 81 + group__yarp__devices__firmware.html | 84 + group__yarp__devices__libraries.html | 94 + group__yarp__devices__programs.html | 84 + group__yarp__devices__tests.html | 84 + hierarchy.html | 108 + index.html | 114 ++ jquery.js | 35 + mailbox_8h_source.html | 132 ++ md_doc_yarp_devices_install.html | 124 ++ md_examples_python_simple_README.html | 83 + menu.js | 51 + menudata.js | 49 + modules.html | 94 + namespaceasrob.html | 116 ++ namespaces.html | 99 + nav_f.png | Bin 0 -> 153 bytes nav_g.png | Bin 0 -> 95 bytes nav_h.png | Bin 0 -> 98 bytes open.png | Bin 0 -> 123 bytes pages.html | 87 + pwm_8h_source.html | 143 ++ search/all_0.html | 37 + search/all_0.js | 12 + search/all_1.html | 37 + search/all_1.js | 4 + search/all_2.html | 37 + search/all_2.js | 4 + search/all_3.html | 37 + search/all_3.js | 5 + search/all_4.html | 37 + search/all_4.js | 4 + search/all_5.html | 37 + search/all_5.js | 6 + search/all_6.html | 37 + search/all_6.js | 4 + search/all_7.html | 37 + search/all_7.js | 4 + search/all_8.html | 37 + search/all_8.js | 4 + search/all_9.html | 37 + search/all_9.js | 9 + search/all_a.html | 37 + search/all_a.js | 5 + search/all_b.html | 37 + search/all_b.js | 5 + search/all_c.html | 37 + search/all_c.js | 4 + search/classes_0.html | 37 + search/classes_0.js | 4 + search/classes_1.html | 37 + search/classes_1.js | 4 + search/classes_2.html | 37 + search/classes_2.js | 5 + search/classes_3.html | 37 + search/classes_3.js | 4 + search/classes_4.html | 37 + search/classes_4.js | 4 + search/classes_5.html | 37 + search/classes_5.js | 4 + search/classes_6.html | 37 + search/classes_6.js | 8 + search/close.svg | 31 + search/functions_0.html | 37 + search/functions_0.js | 4 + search/functions_1.html | 37 + search/functions_1.js | 4 + search/functions_2.html | 37 + search/functions_2.js | 4 + search/functions_3.html | 37 + search/functions_3.js | 5 + search/functions_4.html | 37 + search/functions_4.js | 5 + search/groups_0.html | 37 + search/groups_0.js | 11 + search/groups_1.html | 37 + search/groups_1.js | 4 + search/mag_sel.svg | 74 + search/namespaces_0.html | 37 + search/namespaces_0.js | 4 + search/nomatches.html | 13 + search/pages_0.html | 37 + search/pages_0.js | 4 + search/pages_1.html | 37 + search/pages_1.js | 4 + search/search.css | 257 +++ search/search.js | 816 ++++++++ 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 | 30 + splitbar.png | Bin 0 -> 314 bytes structchannel-members.html | 95 + structchannel.html | 124 ++ structdma__cb__t-members.html | 91 + structdma__cb__t.html | 112 + 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 + 185 files changed, 13622 insertions(+) create mode 100644 EcroPwmController_2LogComponent_8hpp_source.html create mode 100644 EcroPwmController_8hpp_source.html create mode 100644 EcroWheelController_2LogComponent_8hpp_source.html create mode 100644 EcroWheelController_8hpp_source.html create mode 100644 FakeMotorController_2LogComponent_8hpp_source.html create mode 100644 FakeMotorController_8hpp_source.html create mode 100644 IRobotManager_8hpp_source.html create mode 100644 LaserTowerOfDeathController_2LogComponent_8hpp_source.html create mode 100644 LaserTowerOfDeathController_8hpp_source.html create mode 100644 RaspiOnePwmMotorController_2LogComponent_8hpp_source.html create mode 100644 RaspiOnePwmMotorController_8hpp_source.html create mode 100644 RaspiTwoPwmMotorController_2LogComponent_8hpp_source.html create mode 100644 RaspiTwoPwmMotorController_8hpp_source.html create mode 100644 RobotClient_2LogComponent_8hpp_source.html create mode 100644 RobotClient_8hpp_source.html create mode 100644 RobotServer_2LogComponent_8hpp_source.html create mode 100644 RobotServer_8hpp_source.html create mode 100644 annotated.html create mode 100644 bc_s.png create mode 100644 bdwn.png create mode 100644 classRobotPy_1_1Robot-members.html create mode 100644 classRobotPy_1_1Robot.html create mode 100644 classasrob_1_1EcroPwmController-members.html create mode 100644 classasrob_1_1EcroPwmController.html create mode 100644 classasrob_1_1EcroPwmController.png create mode 100644 classasrob_1_1EcroWheelController-members.html create mode 100644 classasrob_1_1EcroWheelController.html create mode 100644 classasrob_1_1EcroWheelController.png create mode 100644 classasrob_1_1FakeMotorController-members.html create mode 100644 classasrob_1_1FakeMotorController.html create mode 100644 classasrob_1_1FakeMotorController.png create mode 100644 classasrob_1_1IRobotManager-members.html create mode 100644 classasrob_1_1IRobotManager.html create mode 100644 classasrob_1_1IRobotManager.png create mode 100644 classasrob_1_1LaserTowerOfDeathController-members.html create mode 100644 classasrob_1_1LaserTowerOfDeathController.html create mode 100644 classasrob_1_1LaserTowerOfDeathController.png create mode 100644 classasrob_1_1RaspiOnePwmMotorController-members.html create mode 100644 classasrob_1_1RaspiOnePwmMotorController.html create mode 100644 classasrob_1_1RaspiOnePwmMotorController.png create mode 100644 classasrob_1_1RaspiTwoPwmMotorController-members.html create mode 100644 classasrob_1_1RaspiTwoPwmMotorController.html create mode 100644 classasrob_1_1RaspiTwoPwmMotorController.png create mode 100644 classasrob_1_1RobotClient-members.html create mode 100644 classasrob_1_1RobotClient.html create mode 100644 classasrob_1_1RobotClient.png create mode 100644 classasrob_1_1RobotServer-members.html create mode 100644 classasrob_1_1RobotServer.html create mode 100644 classasrob_1_1RobotServer.png create mode 100644 classes.html create mode 100644 closed.png create mode 100644 dir_3bb89c900400717501ccff31d9189399.html create mode 100644 dir_42950ad3e062fd69313a6bd36855dcce.html create mode 100644 dir_519a1276aa89a8145950b617d844d189.html create mode 100644 dir_70a30ac1a90abd159b6a503e4b49cd79.html create mode 100644 dir_7812be98e96dd641e444e9355f0ac13a.html create mode 100644 dir_7e6f7f084ac2fdbb681245a4671ec54f.html create mode 100644 dir_8976e5d03119516083eaca3ddca61311.html create mode 100644 dir_a1a0d9f4b7bb423803a133c5c7f74fe7.html create mode 100644 dir_a52c22a8b79e169194d9c4bbc7c46367.html create mode 100644 dir_aef3a60a7dfcacfdd3584588a1e47516.html create mode 100644 dir_b699cc7574ccf41bf6ae62fe86f6f714.html create mode 100644 dir_bc0718b08fb2015b8e59c47b2805f60c.html create mode 100644 dir_ca7ec62bdf2659023456a44edaa57035.html create mode 100644 dir_d050070cc3e4bbd91d897ff8856046e0.html create mode 100644 dir_d28a4824dc47e487b107a5db32ef43c4.html create mode 100644 dir_e08f7038a11a903b326f4d6bfb17a7cc.html create mode 100644 dir_e68e8157741866f444e17edd764ebbae.html create mode 100644 dir_f98f57c538677273d6e3d52c55355c28.html create mode 100644 doc.png create mode 100644 doxygen.css create mode 100644 doxygen.svg create mode 100644 dynsections.js create mode 100644 files.html create mode 100644 folderclosed.png create mode 100644 folderopen.png create mode 100644 functions.html create mode 100644 functions_func.html create mode 100644 group__YarpPlugins.html create mode 100644 group__yarp__devices__applications.html create mode 100644 group__yarp__devices__examples.html create mode 100644 group__yarp__devices__examples__cpp.html create mode 100644 group__yarp__devices__examples__py.html create mode 100644 group__yarp__devices__firmware.html create mode 100644 group__yarp__devices__libraries.html create mode 100644 group__yarp__devices__programs.html create mode 100644 group__yarp__devices__tests.html create mode 100644 hierarchy.html create mode 100644 index.html create mode 100644 jquery.js create mode 100644 mailbox_8h_source.html create mode 100644 md_doc_yarp_devices_install.html create mode 100644 md_examples_python_simple_README.html create mode 100644 menu.js create mode 100644 menudata.js create mode 100644 modules.html create mode 100644 namespaceasrob.html create mode 100644 namespaces.html create mode 100644 nav_f.png create mode 100644 nav_g.png create mode 100644 nav_h.png create mode 100644 open.png create mode 100644 pages.html create mode 100644 pwm_8h_source.html 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/all_9.html create mode 100644 search/all_9.js create mode 100644 search/all_a.html create mode 100644 search/all_a.js create mode 100644 search/all_b.html create mode 100644 search/all_b.js create mode 100644 search/all_c.html create mode 100644 search/all_c.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/classes_5.html create mode 100644 search/classes_5.js create mode 100644 search/classes_6.html create mode 100644 search/classes_6.js create mode 100644 search/close.svg 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/functions_4.html create mode 100644 search/functions_4.js create mode 100644 search/groups_0.html create mode 100644 search/groups_0.js create mode 100644 search/groups_1.html create mode 100644 search/groups_1.js create mode 100644 search/mag_sel.svg create mode 100644 search/namespaces_0.html create mode 100644 search/namespaces_0.js create mode 100644 search/nomatches.html create mode 100644 search/pages_0.html create mode 100644 search/pages_0.js create mode 100644 search/pages_1.html create mode 100644 search/pages_1.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 splitbar.png create mode 100644 structchannel-members.html create mode 100644 structchannel.html create mode 100644 structdma__cb__t-members.html create mode 100644 structdma__cb__t.html 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/EcroPwmController_2LogComponent_8hpp_source.html b/EcroPwmController_2LogComponent_8hpp_source.html new file mode 100644 index 0000000..caa8396 --- /dev/null +++ b/EcroPwmController_2LogComponent_8hpp_source.html @@ -0,0 +1,97 @@ + + + + + + + +yarp-devices: libraries/YarpPlugins/EcroPwmController/LogComponent.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
LogComponent.hpp
+
+
+
1 // Authors: see AUTHORS.md at project root.
+
2 // CopyPolicy: released under the terms of the LGPLv2.1, see LICENSE at project root.
+
3 // URL: https://github.com/asrob-uc3m/yarp-devices
+
4 
+
5 #ifndef __ECRO_PWM_CONTROLLER_LOG_COMPONENT__
+
6 #define __ECRO_PWM_CONTROLLER_LOG_COMPONENT__
+
7 
+
8 #include <yarp/os/LogComponent.h>
+
9 
+
10 YARP_DECLARE_LOG_COMPONENT(EPC)
+
11 
+
12 #endif // __ECRO_PWM_CONTROLLER_LOG_COMPONENT__
+
+ + + + diff --git a/EcroPwmController_8hpp_source.html b/EcroPwmController_8hpp_source.html new file mode 100644 index 0000000..7b6a31b --- /dev/null +++ b/EcroPwmController_8hpp_source.html @@ -0,0 +1,141 @@ + + + + + + + +yarp-devices: libraries/YarpPlugins/EcroPwmController/EcroPwmController.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
EcroPwmController.hpp
+
+
+
1 // -*- mode:C++; tab-width:4; c-basic-offset:4; indent-tabs-mode:nil -*-
+
2 
+
3 #ifndef __ECRO_PWM_CONTROLLER__
+
4 #define __ECRO_PWM_CONTROLLER__
+
5 
+
6 #include <yarp/dev/DeviceDriver.h>
+
7 #include <yarp/dev/ISerialDevice.h>
+
8 #include <yarp/dev/PolyDriver.h>
+
9 
+
10 #include "IRobotManager.hpp"
+
11 
+
12 namespace asrob
+
13 {
+
14 
+
19 class EcroPwmController : public yarp::dev::DeprecatedDeviceDriver,
+
20  public IRobotManager
+
21 {
+
22 public:
+
23  // -------- RobotManager declarations. Implementation in EcroPwmController.cpp --------
+
24 
+
25  //-- Robot movement related functions
+
26  bool moveForward(double value) override;
+
27  bool turnLeft(double value) override;
+
28  bool stopMovement() override;
+
29 
+
30  //-- Robot camera related functions
+
31  bool tiltDown(double value) override;
+
32  bool panLeft(double value) override;
+
33  bool stopCameraMovement() override;
+
34 
+
35  // -------- DeviceDriver declarations. Implementation in DeviceDriverImpl.cpp --------
+
36  bool open(yarp::os::Searchable& config) override;
+
37  bool close() override;
+
38 
+
39 private:
+
40  bool sendCurrentJointValues();
+
41 
+
42  yarp::dev::PolyDriver serialDevice;
+
43  yarp::dev::ISerialDevice * serial;
+
44 
+
45  int leftMotorVelocity {0};
+
46  int rightMotorVelocity {0};
+
47 };
+
48 
+
49 } // namespace asrob
+
50 
+
51 #endif // __ECRO_PWM_CONTROLLER__
+
EcroPwmController.
Definition: EcroPwmController.hpp:21
+
bool tiltDown(double value) override
Robot camera: Tilt down (use negative value for tilt up). position mode [deg]. Velocity mode [deg/s].
Definition: EcroPwmController.cpp:59
+
bool moveForward(double value) override
Robot: Move forward (use negative value for move backward). position mode [m]. Velocity mode [m/s].
Definition: EcroPwmController.cpp:20
+
bool stopMovement() override
Robot: Stop movement.
Definition: EcroPwmController.cpp:48
+
bool panLeft(double value) override
Robot camera: Pan left (use negative value for pan right). position mode [deg]. Velocity mode [deg/s]...
Definition: EcroPwmController.cpp:65
+
bool stopCameraMovement() override
Robot camera: Stop movement.
Definition: EcroPwmController.cpp:71
+
bool turnLeft(double value) override
Robot: Turn left (use negative value for turn left). position mode [deg]. Velocity mode [deg/s].
Definition: EcroPwmController.cpp:34
+
Definition: IRobotManager.hpp:28
+
The main, catch-all namespace for ASROB UC3M.
Definition: groups.dox:5
+
+ + + + diff --git a/EcroWheelController_2LogComponent_8hpp_source.html b/EcroWheelController_2LogComponent_8hpp_source.html new file mode 100644 index 0000000..7522b04 --- /dev/null +++ b/EcroWheelController_2LogComponent_8hpp_source.html @@ -0,0 +1,97 @@ + + + + + + + +yarp-devices: libraries/YarpPlugins/EcroWheelController/LogComponent.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
LogComponent.hpp
+
+
+
1 // Authors: see AUTHORS.md at project root.
+
2 // CopyPolicy: released under the terms of the LGPLv2.1, see LICENSE at project root.
+
3 // URL: https://github.com/asrob-uc3m/yarp-devices
+
4 
+
5 #ifndef __ECRO_WHEEL_CONTROLLER_LOG_COMPONENT__
+
6 #define __ECRO_WHEEL_CONTROLLER_LOG_COMPONENT__
+
7 
+
8 #include <yarp/os/LogComponent.h>
+
9 
+
10 YARP_DECLARE_LOG_COMPONENT(EWC)
+
11 
+
12 #endif // __ECRO_WHEEL_CONTROLLER_LOG_COMPONENT__
+
+ + + + diff --git a/EcroWheelController_8hpp_source.html b/EcroWheelController_8hpp_source.html new file mode 100644 index 0000000..8ca52ab --- /dev/null +++ b/EcroWheelController_8hpp_source.html @@ -0,0 +1,140 @@ + + + + + + + +yarp-devices: libraries/YarpPlugins/EcroWheelController/EcroWheelController.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
EcroWheelController.hpp
+
+
+
1 // Authors: see AUTHORS.md at project root.
+
2 // CopyPolicy: released under the terms of the LGPLv2.1, see LICENSE at project root.
+
3 // URL: https://github.com/asrob-uc3m/yarp-devices
+
4 
+
5 #ifndef __ECRO_WHEEL_CONTROLLER__
+
6 #define __ECRO_WHEEL_CONTROLLER__
+
7 
+
8 #include <yarp/dev/DeviceDriver.h>
+
9 #include <yarp/dev/ISerialDevice.h>
+
10 #include <yarp/dev/PolyDriver.h>
+
11 
+
12 #include "IRobotManager.hpp"
+
13 
+
14 namespace asrob
+
15 {
+
16 
+
21 class EcroWheelController : public yarp::dev::DeprecatedDeviceDriver,
+
22  public IRobotManager
+
23 {
+
24 public:
+
25  // -------- RobotManager declarations. Implementation in EcroWheelController.cpp --------
+
26 
+
27  //-- Robot movement related functions
+
28  bool moveForward(double value) override;
+
29  bool turnLeft(double value) override;
+
30  bool stopMovement() override;
+
31 
+
32  //-- Robot camera related functions
+
33  bool tiltDown(double value) override;
+
34  bool panLeft(double value) override;
+
35  bool stopCameraMovement() override;
+
36 
+
37  // -------- DeviceDriver declarations. Implementation in DeviceDriverImpl.cpp --------
+
38  bool open(yarp::os::Searchable& config) override;
+
39  bool close() override;
+
40 
+
41 private:
+
42  bool sendCurrentJointValues(int16_t positions1);
+
43 
+
44  yarp::dev::PolyDriver serialDevice;
+
45  yarp::dev::ISerialDevice * serial;
+
46 };
+
47 
+
48 } // namespace asrob
+
49 
+
50 #endif // __ECRO_WHEEL_CONTROLLER__
+
EcroWheelController.
Definition: EcroWheelController.hpp:23
+
bool panLeft(double value) override
Robot camera: Pan left (use negative value for pan right). position mode [deg]. Velocity mode [deg/s]...
Definition: EcroWheelController.cpp:128
+
bool tiltDown(double value) override
Robot camera: Tilt down (use negative value for tilt up). position mode [deg]. Velocity mode [deg/s].
Definition: EcroWheelController.cpp:122
+
bool stopCameraMovement() override
Robot camera: Stop movement.
Definition: EcroWheelController.cpp:134
+
bool moveForward(double value) override
Robot: Move forward (use negative value for move backward). position mode [m]. Velocity mode [m/s].
Definition: EcroWheelController.cpp:24
+
bool turnLeft(double value) override
Robot: Turn left (use negative value for turn left). position mode [deg]. Velocity mode [deg/s].
Definition: EcroWheelController.cpp:55
+
bool stopMovement() override
Robot: Stop movement.
Definition: EcroWheelController.cpp:103
+
Definition: IRobotManager.hpp:28
+
The main, catch-all namespace for ASROB UC3M.
Definition: groups.dox:5
+
+ + + + diff --git a/FakeMotorController_2LogComponent_8hpp_source.html b/FakeMotorController_2LogComponent_8hpp_source.html new file mode 100644 index 0000000..251d32f --- /dev/null +++ b/FakeMotorController_2LogComponent_8hpp_source.html @@ -0,0 +1,97 @@ + + + + + + + +yarp-devices: libraries/YarpPlugins/FakeMotorController/LogComponent.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
LogComponent.hpp
+
+
+
1 // Authors: see AUTHORS.md at project root.
+
2 // CopyPolicy: released under the terms of the LGPLv2.1, see LICENSE at project root.
+
3 // URL: https://github.com/asrob-uc3m/yarp-devices
+
4 
+
5 #ifndef __FAKE_MOTOR_CONTROLLER_LOG_COMPONENT__
+
6 #define __FAKE_MOTOR_CONTROLLER_LOG_COMPONENT__
+
7 
+
8 #include <yarp/os/LogComponent.h>
+
9 
+
10 YARP_DECLARE_LOG_COMPONENT(FMC)
+
11 
+
12 #endif // __FAKE_MOTOR_CONTROLLER_LOG_COMPONENT__
+
+ + + + diff --git a/FakeMotorController_8hpp_source.html b/FakeMotorController_8hpp_source.html new file mode 100644 index 0000000..709e06e --- /dev/null +++ b/FakeMotorController_8hpp_source.html @@ -0,0 +1,128 @@ + + + + + + + +yarp-devices: libraries/YarpPlugins/FakeMotorController/FakeMotorController.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
FakeMotorController.hpp
+
+
+
1 // Authors: see AUTHORS.md at project root.
+
2 // CopyPolicy: released under the terms of the LGPLv2.1, see LICENSE at project root.
+
3 // URL: https://github.com/asrob-uc3m/yarp-devices
+
4 
+
5 #ifndef __FAKE_MOTOR_CONTROLLER__
+
6 #define __FAKE_MOTOR_CONTROLLER__
+
7 
+
8 #include <yarp/dev/DeviceDriver.h>
+
9 
+
10 #include "IRobotManager.hpp"
+
11 
+
12 namespace asrob
+
13 {
+
14 
+
19 class FakeMotorController : public yarp::dev::DeviceDriver,
+
20  public IRobotManager
+
21 {
+
22 public:
+
23  // -------- RobotManager declarations. Implementation in FakeMotorController.cpp --------
+
24  bool moveForward(double value) override;
+
25  bool turnLeft(double value) override;
+
26  bool stopMovement() override;
+
27  bool tiltDown(double value) override;
+
28  bool panLeft(double value) override;
+
29  bool stopCameraMovement() override;
+
30 
+
31  // -------- DeviceDriver declarations. Implementation in DeviceDriverImpl.cpp --------
+
32  bool open(yarp::os::Searchable& config) override;
+
33  bool close() override;
+
34 };
+
35 
+
36 } // namespace asrob
+
37 
+
38 #endif // __FAKE_MOTOR_CONTROLLER__
+
FakeMotorController.
Definition: FakeMotorController.hpp:21
+
bool tiltDown(double value) override
Robot camera: Tilt down (use negative value for tilt up). position mode [deg]. Velocity mode [deg/s].
Definition: FakeMotorController.cpp:31
+
bool moveForward(double value) override
Robot: Move forward (use negative value for move backward). position mode [m]. Velocity mode [m/s].
Definition: FakeMotorController.cpp:13
+
bool panLeft(double value) override
Robot camera: Pan left (use negative value for pan right). position mode [deg]. Velocity mode [deg/s]...
Definition: FakeMotorController.cpp:37
+
bool stopCameraMovement() override
Robot camera: Stop movement.
Definition: FakeMotorController.cpp:43
+
bool stopMovement() override
Robot: Stop movement.
Definition: FakeMotorController.cpp:25
+
bool turnLeft(double value) override
Robot: Turn left (use negative value for turn left). position mode [deg]. Velocity mode [deg/s].
Definition: FakeMotorController.cpp:19
+
Definition: IRobotManager.hpp:28
+
The main, catch-all namespace for ASROB UC3M.
Definition: groups.dox:5
+
+ + + + diff --git a/IRobotManager_8hpp_source.html b/IRobotManager_8hpp_source.html new file mode 100644 index 0000000..e4a9d73 --- /dev/null +++ b/IRobotManager_8hpp_source.html @@ -0,0 +1,133 @@ + + + + + + + +yarp-devices: libraries/YarpPlugins/IRobotManager.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
IRobotManager.hpp
+
+
+
1 // Authors: see AUTHORS.md at project root.
+
2 // CopyPolicy: released under the terms of the LGPLv2.1, see LICENSE at project root.
+
3 // URL: https://github.com/asrob-uc3m/yarp-devices
+
4 
+
5 #ifndef __I_ROBOT_MANAGER_HPP__
+
6 #define __I_ROBOT_MANAGER_HPP__
+
7 
+
8 #include <yarp/os/Vocab.h>
+
9 
+
10 constexpr int VOCAB_MOVE_FORWARD = yarp::os::createVocab32('m','o','v','f');
+
11 constexpr int VOCAB_TURN_LEFT = yarp::os::createVocab32('t','r','n','l');
+
12 constexpr int VOCAB_STOP_MOVEMENT = yarp::os::createVocab32('s','t','p','m');
+
13 constexpr int VOCAB_TILT_DOWN = yarp::os::createVocab32('t','l','t','d');
+
14 constexpr int VOCAB_PAN_LEFT = yarp::os::createVocab32('p','a','n','l');
+
15 constexpr int VOCAB_STOP_CAMERA_MOVEMENT = yarp::os::createVocab32('s','t','p','c');
+
16 
+
17 namespace asrob
+
18 {
+
19 
+ +
28 {
+
29 public:
+
31  virtual bool moveForward(double value) = 0;
+
32 
+
34  virtual bool turnLeft(double value) = 0;
+
35 
+
37  virtual bool stopMovement() = 0;
+
38 
+
40  virtual bool tiltDown(double value) = 0;
+
41 
+
43  virtual bool panLeft(double value) = 0;
+
44 
+
46  virtual bool stopCameraMovement() = 0;
+
47 
+
48  virtual ~IRobotManager() = default;
+
49 };
+
50 
+
51 }
+
52 
+
53 #endif // __I_ROBOT_MANAGER_HPP__
+
Definition: IRobotManager.hpp:28
+
virtual bool panLeft(double value)=0
Robot camera: Pan left (use negative value for pan right). position mode [deg]. Velocity mode [deg/s]...
+
virtual bool stopCameraMovement()=0
Robot camera: Stop movement.
+
virtual bool stopMovement()=0
Robot: Stop movement.
+
virtual bool tiltDown(double value)=0
Robot camera: Tilt down (use negative value for tilt up). position mode [deg]. Velocity mode [deg/s].
+
virtual bool turnLeft(double value)=0
Robot: Turn left (use negative value for turn left). position mode [deg]. Velocity mode [deg/s].
+
virtual bool moveForward(double value)=0
Robot: Move forward (use negative value for move backward). position mode [m]. Velocity mode [m/s].
+
The main, catch-all namespace for ASROB UC3M.
Definition: groups.dox:5
+
+ + + + diff --git a/LaserTowerOfDeathController_2LogComponent_8hpp_source.html b/LaserTowerOfDeathController_2LogComponent_8hpp_source.html new file mode 100644 index 0000000..ef22bdc --- /dev/null +++ b/LaserTowerOfDeathController_2LogComponent_8hpp_source.html @@ -0,0 +1,97 @@ + + + + + + + +yarp-devices: libraries/YarpPlugins/LaserTowerOfDeathController/LogComponent.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
LogComponent.hpp
+
+
+
1 // Authors: see AUTHORS.md at project root.
+
2 // CopyPolicy: released under the terms of the LGPLv2.1, see LICENSE at project root.
+
3 // URL: https://github.com/asrob-uc3m/yarp-devices
+
4 
+
5 #ifndef __LASER_TOWER_OF_DEATH_CONTROLLER_LOG_COMPONENT__
+
6 #define __LASER_TOWER_OF_DEATH_CONTROLLER_LOG_COMPONENT__
+
7 
+
8 #include <yarp/os/LogComponent.h>
+
9 
+
10 YARP_DECLARE_LOG_COMPONENT(LTODC)
+
11 
+
12 #endif // __LASER_TOWER_OF_DEATH_CONTROLLER_LOG_COMPONENT__
+
+ + + + diff --git a/LaserTowerOfDeathController_8hpp_source.html b/LaserTowerOfDeathController_8hpp_source.html new file mode 100644 index 0000000..c8eb088 --- /dev/null +++ b/LaserTowerOfDeathController_8hpp_source.html @@ -0,0 +1,144 @@ + + + + + + + +yarp-devices: libraries/YarpPlugins/LaserTowerOfDeathController/LaserTowerOfDeathController.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
LaserTowerOfDeathController.hpp
+
+
+
1 // Authors: see AUTHORS.md at project root.
+
2 // CopyPolicy: released under the terms of the LGPLv2.1, see LICENSE at project root.
+
3 // URL: https://github.com/asrob-uc3m/yarp-devices
+
4 
+
5 #ifndef __LASER_TOWER_OF_DEATH_CONTROLLER__
+
6 #define __LASER_TOWER_OF_DEATH_CONTROLLER__
+
7 
+
8 #include <yarp/dev/DeviceDriver.h>
+
9 #include <yarp/dev/ISerialDevice.h>
+
10 #include <yarp/dev/PolyDriver.h>
+
11 
+
12 #include "IRobotManager.hpp"
+
13 
+
14 namespace asrob
+
15 {
+
16 
+
21 class LaserTowerOfDeathController : public yarp::dev::DeviceDriver,
+
22  public IRobotManager
+
23 {
+
24 public:
+
25  // -------- RobotManager declarations. Implementation in LaserTowerOfDeathController.cpp --------
+
26 
+
27  //-- Robot movement related functions
+
28  bool moveForward(double value) override;
+
29  bool turnLeft(double value) override;
+
30  bool stopMovement() override;
+
31 
+
32  //-- Robot camera related functions
+
33  bool tiltDown(double value) override;
+
34  bool panLeft(double value) override;
+
35  bool stopCameraMovement() override;
+
36 
+
37  // -------- DeviceDriver declarations. Implementation in DeviceDriverImpl.cpp --------
+
38  bool open(yarp::os::Searchable& config) override;
+
39  bool close() override;
+
40 
+
41 private:
+
42  bool sendCurrentJointValues();
+
43  bool checkConnection();
+
44 
+
45  yarp::dev::PolyDriver serialDevice;
+
46  yarp::dev::ISerialDevice * serial;
+
47 
+
48  int panJointValue {90};
+
49  int tiltJointValue {90};
+
50 };
+
51 
+
52 } // namespace asrob
+
53 
+
54 #endif // __LASER_TOWER_OF_DEATH_CONTROLLER__
+
Definition: IRobotManager.hpp:28
+
LaserTowerOfDeathController.
Definition: LaserTowerOfDeathController.hpp:23
+
bool turnLeft(double value) override
Robot: Turn left (use negative value for turn left). position mode [deg]. Velocity mode [deg/s].
Definition: LaserTowerOfDeathController.cpp:27
+
bool moveForward(double value) override
Robot: Move forward (use negative value for move backward). position mode [m]. Velocity mode [m/s].
Definition: LaserTowerOfDeathController.cpp:21
+
bool stopMovement() override
Robot: Stop movement.
Definition: LaserTowerOfDeathController.cpp:33
+
bool stopCameraMovement() override
Robot camera: Stop movement.
Definition: LaserTowerOfDeathController.cpp:53
+
bool tiltDown(double value) override
Robot camera: Tilt down (use negative value for tilt up). position mode [deg]. Velocity mode [deg/s].
Definition: LaserTowerOfDeathController.cpp:39
+
bool panLeft(double value) override
Robot camera: Pan left (use negative value for pan right). position mode [deg]. Velocity mode [deg/s]...
Definition: LaserTowerOfDeathController.cpp:46
+
The main, catch-all namespace for ASROB UC3M.
Definition: groups.dox:5
+
+ + + + diff --git a/RaspiOnePwmMotorController_2LogComponent_8hpp_source.html b/RaspiOnePwmMotorController_2LogComponent_8hpp_source.html new file mode 100644 index 0000000..15e1d88 --- /dev/null +++ b/RaspiOnePwmMotorController_2LogComponent_8hpp_source.html @@ -0,0 +1,97 @@ + + + + + + + +yarp-devices: libraries/YarpPlugins/RaspiOnePwmMotorController/LogComponent.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
LogComponent.hpp
+
+
+
1 // Authors: see AUTHORS.md at project root.
+
2 // CopyPolicy: released under the terms of the LGPLv2.1, see LICENSE at project root.
+
3 // URL: https://github.com/asrob-uc3m/yarp-devices
+
4 
+
5 #ifndef __RASPI_ONE_PWM_MOTOR_CONTROLLER_LOG_COMPONENT__
+
6 #define __RASPI_ONE_PWM_MOTOR_CONTROLLER_LOG_COMPONENT__
+
7 
+
8 #include <yarp/os/LogComponent.h>
+
9 
+
10 YARP_DECLARE_LOG_COMPONENT(ROPMC)
+
11 
+
12 #endif // __RASPI_ONE_PWM_MOTOR_CONTROLLER_LOG_COMPONENT__
+
+ + + + diff --git a/RaspiOnePwmMotorController_8hpp_source.html b/RaspiOnePwmMotorController_8hpp_source.html new file mode 100644 index 0000000..bd9bccc --- /dev/null +++ b/RaspiOnePwmMotorController_8hpp_source.html @@ -0,0 +1,144 @@ + + + + + + + +yarp-devices: libraries/YarpPlugins/RaspiOnePwmMotorController/RaspiOnePwmMotorController.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
RaspiOnePwmMotorController.hpp
+
+
+
1 // Authors: see AUTHORS.md at project root.
+
2 // CopyPolicy: released under the terms of the LGPLv2.1, see LICENSE at project root.
+
3 // URL: https://github.com/asrob-uc3m/yarp-devices
+
4 
+
5 #ifndef __RASPI_ONE_PWM_MOTOR_CONTROLLER__
+
6 #define __RASPI_ONE_PWM_MOTOR_CONTROLLER__
+
7 
+
8 #include <vector>
+
9 
+
10 #include <yarp/dev/DeviceDriver.h>
+
11 
+
12 #include "IRobotManager.hpp"
+
13 
+
14 extern "C" {
+
15 #include "pwm.h"
+
16 }
+
17 
+
18 namespace asrob
+
19 {
+
20 
+
25 class RaspiOnePwmMotorController : public yarp::dev::DeviceDriver,
+
26  public IRobotManager
+
27 {
+
28 public:
+
29  // -------- RobotManager declarations. Implementation in RaspiOnePwmMotorController.cpp --------
+
30 
+
31  //-- Robot movement related functions
+
32  bool moveForward(double value) override;
+
33  bool turnLeft(double value) override;
+
34  bool stopMovement() override;
+
35 
+
36  //-- Robot camera related functions
+
37  bool tiltDown(double value) override;
+
38  bool panLeft(double value) override;
+
39  bool stopCameraMovement() override;
+
40 
+
41  // -------- DeviceDriver declarations. Implementation in DeviceDriverImpl.cpp --------
+
42  bool open(yarp::os::Searchable& config) override;
+
43  bool close() override;
+
44 
+
45 private:
+
50  bool indexWithinRange(const int& idx);
+
51 
+
52  std::vector<int> gpios;
+
53 };
+
54 
+
55 } // namespace asrob
+
56 
+
57 #endif // __RASPI_ONE_PWM_MOTOR_CONTROLLER__
+
Definition: IRobotManager.hpp:28
+
RaspiOnePwmMotorController.
Definition: RaspiOnePwmMotorController.hpp:27
+
bool turnLeft(double value) override
Robot: Turn left (use negative value for turn left). position mode [deg]. Velocity mode [deg/s].
Definition: RaspiOnePwmMotorController.cpp:37
+
bool indexWithinRange(const int &idx)
Definition: RaspiOnePwmMotorController.cpp:13
+
bool moveForward(double value) override
Robot: Move forward (use negative value for move backward). position mode [m]. Velocity mode [m/s].
Definition: RaspiOnePwmMotorController.cpp:24
+
bool tiltDown(double value) override
Robot camera: Tilt down (use negative value for tilt up). position mode [deg]. Velocity mode [deg/s].
Definition: RaspiOnePwmMotorController.cpp:64
+
bool stopMovement() override
Robot: Stop movement.
Definition: RaspiOnePwmMotorController.cpp:50
+
bool stopCameraMovement() override
Robot camera: Stop movement.
Definition: RaspiOnePwmMotorController.cpp:76
+
bool panLeft(double value) override
Robot camera: Pan left (use negative value for pan right). position mode [deg]. Velocity mode [deg/s]...
Definition: RaspiOnePwmMotorController.cpp:70
+
The main, catch-all namespace for ASROB UC3M.
Definition: groups.dox:5
+
+ + + + diff --git a/RaspiTwoPwmMotorController_2LogComponent_8hpp_source.html b/RaspiTwoPwmMotorController_2LogComponent_8hpp_source.html new file mode 100644 index 0000000..4945837 --- /dev/null +++ b/RaspiTwoPwmMotorController_2LogComponent_8hpp_source.html @@ -0,0 +1,97 @@ + + + + + + + +yarp-devices: libraries/YarpPlugins/RaspiTwoPwmMotorController/LogComponent.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
LogComponent.hpp
+
+
+
1 // Authors: see AUTHORS.md at project root.
+
2 // CopyPolicy: released under the terms of the LGPLv2.1, see LICENSE at project root.
+
3 // URL: https://github.com/asrob-uc3m/yarp-devices
+
4 
+
5 #ifndef __RASPI_TWO_PWM_MOTOR_CONTROLLER_LOG_COMPONENT__
+
6 #define __RASPI_TWO_PWM_MOTOR_CONTROLLER_LOG_COMPONENT__
+
7 
+
8 #include <yarp/os/LogComponent.h>
+
9 
+
10 YARP_DECLARE_LOG_COMPONENT(RTPMC)
+
11 
+
12 #endif // __RASPI_TWO_PWM_MOTOR_CONTROLLER_LOG_COMPONENT__
+
+ + + + diff --git a/RaspiTwoPwmMotorController_8hpp_source.html b/RaspiTwoPwmMotorController_8hpp_source.html new file mode 100644 index 0000000..72527e0 --- /dev/null +++ b/RaspiTwoPwmMotorController_8hpp_source.html @@ -0,0 +1,145 @@ + + + + + + + +yarp-devices: libraries/YarpPlugins/RaspiTwoPwmMotorController/RaspiTwoPwmMotorController.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
RaspiTwoPwmMotorController.hpp
+
+
+
1 // Authors: see AUTHORS.md at project root.
+
2 // CopyPolicy: released under the terms of the LGPLv2.1, see LICENSE at project root.
+
3 // URL: https://github.com/asrob-uc3m/yarp-devices
+
4 
+
5 #ifndef __RASPI_TWO_PWM_MOTOR_CONTROLLER__
+
6 #define __RASPI_TWO_PWM_MOTOR_CONTROLLER__
+
7 
+
8 #include <vector>
+
9 #include <yarp/dev/DeviceDriver.h>
+
10 #include <wiringPi.h>
+
11 
+
12 #include "IRobotManager.hpp"
+
13 
+
14 namespace asrob
+
15 {
+
16 
+
21 class RaspiTwoPwmMotorController : public yarp::dev::DeviceDriver,
+
22  public IRobotManager
+
23 {
+
24 public:
+
25  // -------- RobotManager declarations. Implementation in RaspiTwoPwmMotorController.cpp --------
+
26 
+
27  //-- Robot movement related functions
+
28  bool moveForward(double value) override;
+
29  bool turnLeft(double value) override;
+
30  bool stopMovement() override;
+
31 
+
32  //-- Robot camera related functions
+
33  bool tiltDown(double value) override;
+
34  bool panLeft(double value) override;
+
35  bool stopCameraMovement() override;
+
36 
+
37  // -------- DeviceDriver declarations. Implementation in DeviceDriverImpl.cpp --------
+
38  bool open(yarp::os::Searchable& config) override;
+
39  bool close() override;
+
40 
+
41 private:
+
46  bool indexWithinRange(const int& idx);
+
47 
+
48  std::vector<int> gpios;
+
49 
+
50  static const int LEFT_MOTOR_IN1;
+
51  static const int LEFT_MOTOR_IN2;
+
52  static const int RIGHT_MOTOR_IN1;
+
53  static const int RIGHT_MOTOR_IN2;
+
54 };
+
55 
+
56 } // namespace asrob
+
57 
+
58 #endif // __RASPI_TWO_PWM_MOTOR_CONTROLLER__
+
Definition: IRobotManager.hpp:28
+
RaspiTwoPwmMotorController.
Definition: RaspiTwoPwmMotorController.hpp:23
+
bool stopCameraMovement() override
Robot camera: Stop movement.
Definition: RaspiTwoPwmMotorController.cpp:79
+
bool moveForward(double value) override
Robot: Move forward (use negative value for move backward). position mode [m]. Velocity mode [m/s].
Definition: RaspiTwoPwmMotorController.cpp:30
+
bool panLeft(double value) override
Robot camera: Pan left (use negative value for pan right). position mode [deg]. Velocity mode [deg/s]...
Definition: RaspiTwoPwmMotorController.cpp:73
+
bool stopMovement() override
Robot: Stop movement.
Definition: RaspiTwoPwmMotorController.cpp:54
+
bool tiltDown(double value) override
Robot camera: Tilt down (use negative value for tilt up). position mode [deg]. Velocity mode [deg/s].
Definition: RaspiTwoPwmMotorController.cpp:67
+
bool indexWithinRange(const int &idx)
Definition: RaspiTwoPwmMotorController.cpp:19
+
bool turnLeft(double value) override
Robot: Turn left (use negative value for turn left). position mode [deg]. Velocity mode [deg/s].
Definition: RaspiTwoPwmMotorController.cpp:42
+
The main, catch-all namespace for ASROB UC3M.
Definition: groups.dox:5
+
+ + + + diff --git a/RobotClient_2LogComponent_8hpp_source.html b/RobotClient_2LogComponent_8hpp_source.html new file mode 100644 index 0000000..8bd2694 --- /dev/null +++ b/RobotClient_2LogComponent_8hpp_source.html @@ -0,0 +1,97 @@ + + + + + + + +yarp-devices: libraries/YarpPlugins/RobotClient/LogComponent.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
LogComponent.hpp
+
+
+
1 // Authors: see AUTHORS.md at project root.
+
2 // CopyPolicy: released under the terms of the LGPLv2.1, see LICENSE at project root.
+
3 // URL: https://github.com/asrob-uc3m/yarp-devices
+
4 
+
5 #ifndef __ROBOT_CLIENT_LOG_COMPONENT__
+
6 #define __ROBOT_CLIENT_LOG_COMPONENT__
+
7 
+
8 #include <yarp/os/LogComponent.h>
+
9 
+
10 YARP_DECLARE_LOG_COMPONENT(RC)
+
11 
+
12 #endif // __ROBOT_CLIENT_LOG_COMPONENT__
+
+ + + + diff --git a/RobotClient_8hpp_source.html b/RobotClient_8hpp_source.html new file mode 100644 index 0000000..f0d0f88 --- /dev/null +++ b/RobotClient_8hpp_source.html @@ -0,0 +1,134 @@ + + + + + + + +yarp-devices: libraries/YarpPlugins/RobotClient/RobotClient.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
RobotClient.hpp
+
+
+
1 // Authors: see AUTHORS.md at project root.
+
2 // CopyPolicy: released under the terms of the LGPLv2.1, see LICENSE at project root.
+
3 // URL: https://github.com/asrob-uc3m/yarp-devices
+
4 
+
5 #ifndef __ROBOT_CLIENT__
+
6 #define __ROBOT_CLIENT__
+
7 
+
8 #include <yarp/os/RpcClient.h>
+
9 #include <yarp/dev/DeviceDriver.h>
+
10 
+
11 #include "IRobotManager.hpp"
+
12 
+
13 namespace asrob
+
14 {
+
15 
+
20 class RobotClient : public yarp::dev::DeviceDriver,
+
21  public IRobotManager
+
22 {
+
23 public:
+
24  // -------- DeviceDriver declarations. Implementation in DeviceDriverImpl.cpp --------
+
25  bool open(yarp::os::Searchable& config) override;
+
26  bool close() override;
+
27 
+
28  // -------- Implementation in RobotClient.cpp --------
+
29  bool moveForward(double value) override;
+
30  bool turnLeft(double value) override;
+
31  bool stopMovement() override;
+
32  bool tiltDown(double value) override;
+
33  bool panLeft(double value) override;
+
34  bool stopCameraMovement() override;
+
35 
+
36 private:
+
37  yarp::os::RpcClient rpcClient;
+
38  bool send1vocab1double(int vocab, double value);
+
39  bool send1vocab(int vocab);
+
40 };
+
41 
+
42 } // namespace asrob
+
43 
+
44 #endif // __ROBOT_CLIENT__
+
Definition: IRobotManager.hpp:28
+
RobotClient.
Definition: RobotClient.hpp:22
+
bool tiltDown(double value) override
Robot camera: Tilt down (use negative value for tilt up). position mode [deg]. Velocity mode [deg/s].
Definition: RobotClient.cpp:32
+
bool panLeft(double value) override
Robot camera: Pan left (use negative value for pan right). position mode [deg]. Velocity mode [deg/s]...
Definition: RobotClient.cpp:38
+
bool stopMovement() override
Robot: Stop movement.
Definition: RobotClient.cpp:26
+
bool stopCameraMovement() override
Robot camera: Stop movement.
Definition: RobotClient.cpp:44
+
bool moveForward(double value) override
Robot: Move forward (use negative value for move backward). position mode [m]. Velocity mode [m/s].
Definition: RobotClient.cpp:14
+
bool turnLeft(double value) override
Robot: Turn left (use negative value for turn left). position mode [deg]. Velocity mode [deg/s].
Definition: RobotClient.cpp:20
+
The main, catch-all namespace for ASROB UC3M.
Definition: groups.dox:5
+
+ + + + diff --git a/RobotServer_2LogComponent_8hpp_source.html b/RobotServer_2LogComponent_8hpp_source.html new file mode 100644 index 0000000..6170ce5 --- /dev/null +++ b/RobotServer_2LogComponent_8hpp_source.html @@ -0,0 +1,97 @@ + + + + + + + +yarp-devices: libraries/YarpPlugins/RobotServer/LogComponent.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
LogComponent.hpp
+
+
+
1 // Authors: see AUTHORS.md at project root.
+
2 // CopyPolicy: released under the terms of the LGPLv2.1, see LICENSE at project root.
+
3 // URL: https://github.com/asrob-uc3m/yarp-devices
+
4 
+
5 #ifndef __ROBOT_SERVER_LOG_COMPONENT__
+
6 #define __ROBOT_SERVER_LOG_COMPONENT__
+
7 
+
8 #include <yarp/os/LogComponent.h>
+
9 
+
10 YARP_DECLARE_LOG_COMPONENT(RS)
+
11 
+
12 #endif // __ROBOT_SERVER_LOG_COMPONENT__
+
+ + + + diff --git a/RobotServer_8hpp_source.html b/RobotServer_8hpp_source.html new file mode 100644 index 0000000..698853f --- /dev/null +++ b/RobotServer_8hpp_source.html @@ -0,0 +1,125 @@ + + + + + + + +yarp-devices: libraries/YarpPlugins/RobotServer/RobotServer.hpp Source File + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
RobotServer.hpp
+
+
+
1 // Authors: see AUTHORS.md at project root.
+
2 // CopyPolicy: released under the terms of the LGPLv2.1, see LICENSE at project root.
+
3 // URL: https://github.com/asrob-uc3m/yarp-devices
+
4 
+
5 #ifndef __ROBOT_SERVER__
+
6 #define __ROBOT_SERVER__
+
7 
+
8 #include <yarp/os/RpcServer.h>
+
9 
+
10 #include <yarp/dev/DeviceDriver.h>
+
11 #include <yarp/dev/PolyDriver.h>
+
12 
+
13 #include "IRobotManager.hpp"
+
14 
+
15 namespace asrob
+
16 {
+
17 
+
22 class RobotServer : public yarp::dev::DeviceDriver,
+
23  public yarp::os::PortReader
+
24 {
+
25 public:
+
26  // -------- DeviceDriver declarations. Implementation in DeviceDriverImpl.cpp --------
+
27  bool open(yarp::os::Searchable& config) override;
+
28  bool close() override;
+
29 
+
30  // -------- PortReader declarations. Implementation in RobotServer.cpp --------
+
31  bool read(yarp::os::ConnectionReader& connection) override;
+
32 
+
33 private:
+
34  yarp::os::RpcServer rpcServer;
+
35  yarp::dev::PolyDriver robotDevice;
+
36  IRobotManager* iRobotManager;
+
37 };
+
38 
+
39 } // namespace asrob
+
40 
+
41 #endif // __ROBOT_SERVER__
+
Definition: IRobotManager.hpp:28
+
RobotServer.
Definition: RobotServer.hpp:24
+
The main, catch-all namespace for ASROB UC3M.
Definition: groups.dox:5
+
+ + + + diff --git a/annotated.html b/annotated.html new file mode 100644 index 0000000..a9ccf6b --- /dev/null +++ b/annotated.html @@ -0,0 +1,99 @@ + + + + + + + +yarp-devices: Class List + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
Class List
+
+
+
Here are the classes, structs, unions and interfaces with brief descriptions:
+
[detail level 12]
+ + + + + + + + + + + + + + +
 NasrobThe main, catch-all namespace for ASROB UC3M
 CEcroPwmControllerEcroPwmController
 CEcroWheelControllerEcroWheelController
 CFakeMotorControllerFakeMotorController
 CIRobotManager
 CLaserTowerOfDeathControllerLaserTowerOfDeathController
 CRaspiOnePwmMotorControllerRaspiOnePwmMotorController
 CRaspiTwoPwmMotorControllerRaspiTwoPwmMotorController
 CRobotClientRobotClient
 CRobotServerRobotServer
 NRobotPy
 CRobot
 Cchannel
 Cdma_cb_t
+
+
+ + + + 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 + + + + + + +yarp-devices: Member List + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
RobotPy.Robot Member List
+
+
+ +

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

+ + + + +
__init__(self) (defined in RobotPy.Robot)RobotPy.Robot
motors (defined in RobotPy.Robot)RobotPy.Robot
robotDevice (defined in RobotPy.Robot)RobotPy.Robot
+ + + + diff --git a/classRobotPy_1_1Robot.html b/classRobotPy_1_1Robot.html new file mode 100644 index 0000000..a1cb73e --- /dev/null +++ b/classRobotPy_1_1Robot.html @@ -0,0 +1,108 @@ + + + + + + + +yarp-devices: RobotPy.Robot Class Reference + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
RobotPy.Robot Class Reference
+
+
+ + + + +

+Public Member Functions

+def __init__ (self)
 
+ + + + + +

+Public Attributes

robotDevice
 
motors
 
+
The documentation for this class was generated from the following file:
    +
  • examples/python/simple/RobotPy.py
  • +
+
+ + + + diff --git a/classasrob_1_1EcroPwmController-members.html b/classasrob_1_1EcroPwmController-members.html new file mode 100644 index 0000000..5770b0c --- /dev/null +++ b/classasrob_1_1EcroPwmController-members.html @@ -0,0 +1,102 @@ + + + + + + + +yarp-devices: Member List + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
asrob::EcroPwmController Member List
+
+
+ +

This is the complete list of members for asrob::EcroPwmController, including all inherited members.

+ + + + + + + + + + + + + + + +
close() override (defined in asrob::EcroPwmController)asrob::EcroPwmController
leftMotorVelocity (defined in asrob::EcroPwmController)asrob::EcroPwmControllerprivate
moveForward(double value) overrideasrob::EcroPwmControllervirtual
open(yarp::os::Searchable &config) override (defined in asrob::EcroPwmController)asrob::EcroPwmController
panLeft(double value) overrideasrob::EcroPwmControllervirtual
rightMotorVelocity (defined in asrob::EcroPwmController)asrob::EcroPwmControllerprivate
sendCurrentJointValues() (defined in asrob::EcroPwmController)asrob::EcroPwmControllerprivate
serial (defined in asrob::EcroPwmController)asrob::EcroPwmControllerprivate
serialDevice (defined in asrob::EcroPwmController)asrob::EcroPwmControllerprivate
stopCameraMovement() overrideasrob::EcroPwmControllervirtual
stopMovement() overrideasrob::EcroPwmControllervirtual
tiltDown(double value) overrideasrob::EcroPwmControllervirtual
turnLeft(double value) overrideasrob::EcroPwmControllervirtual
~IRobotManager()=default (defined in asrob::IRobotManager)asrob::IRobotManagervirtual
+ + + + diff --git a/classasrob_1_1EcroPwmController.html b/classasrob_1_1EcroPwmController.html new file mode 100644 index 0000000..be5b586 --- /dev/null +++ b/classasrob_1_1EcroPwmController.html @@ -0,0 +1,164 @@ + + + + + + + +yarp-devices: asrob::EcroPwmController Class Reference + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+ +
+ +

EcroPwmController. +

+ +

#include <EcroPwmController.hpp>

+
+Inheritance diagram for asrob::EcroPwmController:
+
+
+ + +asrob::IRobotManager + +
+ + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+bool moveForward (double value) override
 Robot: Move forward (use negative value for move backward). position mode [m]. Velocity mode [m/s].
 
+bool turnLeft (double value) override
 Robot: Turn left (use negative value for turn left). position mode [deg]. Velocity mode [deg/s].
 
+bool stopMovement () override
 Robot: Stop movement.
 
+bool tiltDown (double value) override
 Robot camera: Tilt down (use negative value for tilt up). position mode [deg]. Velocity mode [deg/s].
 
+bool panLeft (double value) override
 Robot camera: Pan left (use negative value for pan right). position mode [deg]. Velocity mode [deg/s].
 
+bool stopCameraMovement () override
 Robot camera: Stop movement.
 
+bool open (yarp::os::Searchable &config) override
 
+bool close () override
 
+ + + +

+Private Member Functions

+bool sendCurrentJointValues ()
 
+ + + + + + + + + +

+Private Attributes

+yarp::dev::PolyDriver serialDevice
 
+yarp::dev::ISerialDevice * serial
 
+int leftMotorVelocity {0}
 
+int rightMotorVelocity {0}
 
+
The documentation for this class was generated from the following files:
    +
  • libraries/YarpPlugins/EcroPwmController/EcroPwmController.hpp
  • +
  • libraries/YarpPlugins/EcroPwmController/DeviceDriverImpl.cpp
  • +
  • libraries/YarpPlugins/EcroPwmController/EcroPwmController.cpp
  • +
+
+ + + + diff --git a/classasrob_1_1EcroPwmController.png b/classasrob_1_1EcroPwmController.png new file mode 100644 index 0000000000000000000000000000000000000000..5a0cfda59bb44dc86300f28bbfa6845e1a8afd20 GIT binary patch literal 1184 zcmeAS@N?(olHy`uVBq!ia0y~yVB7*^2XHV0NjHyz5FjNH;1lBd|Nnm=^TnI5rTvE{ z09jys;J^Xa&O7ozE=Ng_UoZnu5eQs86=KA|z@qQz;uuoF_;&8=NvjnE*ko zF`N-MsqB);-#<_1d=9;Jtbg-l!Cl_DyFXXg#YS1p(cv!=ihFdpL8Z2Ny+`%DgL8`W zUM`K5d04bNe)_ezH%r%suZi&dCA53X{JV#KX)gbIU*$z%%wyKa2iRUq{H{m~uRpco zFURiF%l2n(@4aXL)&0`8pPT>Y6=&Jzh`haY>qF7E&&f-9XX#9oihi%+dELTmb>xi= z(Y@E_`d04T^}PDRy)T*Wf8%#AzT;T&|HQqi+tRj2MDkpjIay`*)ikp`$IS!%XI0}ih$mdOU+D9c{;u(N03md6IiciymntNwK3I*)3v*AEMQvkyCGuD#cs zQ!MVet7B@|s|&%I)qAQ|XvR1D{;yiuchA(eZv$`slADRQo*S3{jEO1?Jbk}&OX7~1 zD@tdrb=`a|*!u6PYR_FK^wvJpTs}woSN>n0TQ7ays+~E>^Ga^nd;2NZY)&438W@x% z=_!5d)zZ19hQYs9U&@KizP=^-V0Ly`ywdtLnZ3_H8EY)|ee8Js{o2fDT_-Z z06A}`?wM=rrW%DUost!P`01K88CyGdZo0p)?0>|ppRe_v%=yfE@9p&BbN3(SW={GN zz9-|=5}RjpX6r8TytMv=}-U_Ntt&U*1n3^j%O{d05AUFXhZ*jKUV%9(4=YW7ZG zd(gLX_2V@l`8k3FaN+*@?~R!S820$92p*7B+_73F!p3FW$cM`QnzbgIDzd$3%C9b-?q2qCm$C5u~@VB`{GNt zwrM|?&R(-~r);5R-fw+tV}k>hifdEK{bTn|I*_-m^zypN+w!h`DLmp_ul#e%r8biT zd8P+VzrKyp%#KoDzb=#W*V`Y7CUtF>80HCIy0&EYrwXOq4cm?17H5Xq9sp*&!prKP zT{BB9tMiw|{yoKz_Ux(Y+UQ2VRN19pl};6jKNWmnb^TOwVaTODqFTE{-agH~@Gc}u zbMLaHf2H0;-QeLV@bh3UaKnR-{kat6m1)NCZ&JNY_lokP%RGvJ#R-F_tDnm{r-UW| DxspMo literal 0 HcmV?d00001 diff --git a/classasrob_1_1EcroWheelController-members.html b/classasrob_1_1EcroWheelController-members.html new file mode 100644 index 0000000..68f10c6 --- /dev/null +++ b/classasrob_1_1EcroWheelController-members.html @@ -0,0 +1,100 @@ + + + + + + + +yarp-devices: Member List + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
asrob::EcroWheelController Member List
+
+
+ +

This is the complete list of members for asrob::EcroWheelController, including all inherited members.

+ + + + + + + + + + + + + +
close() override (defined in asrob::EcroWheelController)asrob::EcroWheelController
moveForward(double value) overrideasrob::EcroWheelControllervirtual
open(yarp::os::Searchable &config) override (defined in asrob::EcroWheelController)asrob::EcroWheelController
panLeft(double value) overrideasrob::EcroWheelControllervirtual
sendCurrentJointValues(int16_t positions1) (defined in asrob::EcroWheelController)asrob::EcroWheelControllerprivate
serial (defined in asrob::EcroWheelController)asrob::EcroWheelControllerprivate
serialDevice (defined in asrob::EcroWheelController)asrob::EcroWheelControllerprivate
stopCameraMovement() overrideasrob::EcroWheelControllervirtual
stopMovement() overrideasrob::EcroWheelControllervirtual
tiltDown(double value) overrideasrob::EcroWheelControllervirtual
turnLeft(double value) overrideasrob::EcroWheelControllervirtual
~IRobotManager()=default (defined in asrob::IRobotManager)asrob::IRobotManagervirtual
+ + + + diff --git a/classasrob_1_1EcroWheelController.html b/classasrob_1_1EcroWheelController.html new file mode 100644 index 0000000..3a87b08 --- /dev/null +++ b/classasrob_1_1EcroWheelController.html @@ -0,0 +1,158 @@ + + + + + + + +yarp-devices: asrob::EcroWheelController Class Reference + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+ +
+ +

EcroWheelController. +

+ +

#include <EcroWheelController.hpp>

+
+Inheritance diagram for asrob::EcroWheelController:
+
+
+ + +asrob::IRobotManager + +
+ + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+bool moveForward (double value) override
 Robot: Move forward (use negative value for move backward). position mode [m]. Velocity mode [m/s].
 
+bool turnLeft (double value) override
 Robot: Turn left (use negative value for turn left). position mode [deg]. Velocity mode [deg/s].
 
+bool stopMovement () override
 Robot: Stop movement.
 
+bool tiltDown (double value) override
 Robot camera: Tilt down (use negative value for tilt up). position mode [deg]. Velocity mode [deg/s].
 
+bool panLeft (double value) override
 Robot camera: Pan left (use negative value for pan right). position mode [deg]. Velocity mode [deg/s].
 
+bool stopCameraMovement () override
 Robot camera: Stop movement.
 
+bool open (yarp::os::Searchable &config) override
 
+bool close () override
 
+ + + +

+Private Member Functions

+bool sendCurrentJointValues (int16_t positions1)
 
+ + + + + +

+Private Attributes

+yarp::dev::PolyDriver serialDevice
 
+yarp::dev::ISerialDevice * serial
 
+
The documentation for this class was generated from the following files:
    +
  • libraries/YarpPlugins/EcroWheelController/EcroWheelController.hpp
  • +
  • libraries/YarpPlugins/EcroWheelController/DeviceDriverImpl.cpp
  • +
  • libraries/YarpPlugins/EcroWheelController/EcroWheelController.cpp
  • +
+
+ + + + diff --git a/classasrob_1_1EcroWheelController.png b/classasrob_1_1EcroWheelController.png new file mode 100644 index 0000000000000000000000000000000000000000..56d4e7426b22c9b41d394bdc5caad8872eca2451 GIT binary patch literal 1203 zcmeAS@N?(olHy`uVBq!ia0y~yVB7*^2XHV0NjHyz5FjNH;1lBd|Nnm=^TnI5rTvE{ z09jys;J^Xa&O7ozE=Ng_UoZnu5eQs86=KA|z~bcT;uuoF_;&8YNvjoj-1y_uPyOEi z@$D)Pfj7Hy%hM0}zFsNDq;>qr{v}f`m29Zb+kQLO%ER)xjbzv?6<;@x$tvkBCZ0ub z#Ev>(y=sEv^@}+s}6V6#~ z|8hz1T!H1g>r1!x?%lHWXxG#w{2RT0-_l*vUlg@Jtx@jy*8K@GH_lldx0`?S>U^VY z`@`=xN#;M=cJue@I`3Q4>~FuH7W_JKamMs(W%~d3)vej$c;Zs`d__w8s!)E+NZ4diVoi%5y^AqjOV1gSu@_=`)wZR@APW_ z{IrzmnU>E>5)?}3WFA+|X*a$4!R1)Mt-@K!df&o-`&F*VUsCJ&`r*g9*UI>pZmr_q zbT(4urBYbbN@xG2Z~tC(j{UTCvt<12S8rlp6t?A7DWCPb95>(c^zTbu-BJJimhkSL z?Xos=o7mYX|J+}p-zSw!jE#z2KBp+}#r&_vnagM1Qa$6zRw{nEU*0Qw-IKSUG&HyN zEaA=ldg+{#k5_%jthL#1t=~p`xHaqQ^b^|ew;U_}DLLh$T7|)v;`b((lfr)7vVI#K z?fc8~Qt7HKpCs(X3geds6`Qq2t7iGkoE2uZy|8+x?VD@w_9mJ%mnI&cz2n_FN<1bnxu3YYd(xL;pUN|q&pitQ@Aybbn`_zd)m@5OmAe>nQrZtGUdeElViKOPkZ8%NLn{LM+K z!Ft)czRe){0yhHq*x$PS=Xo3$K3Hw+U^vH-Nfwq@TsmbLb3$6$o`VzE9`vB%3m1F5 zPO~p~yt*`5VuJ~vyL{9+HHH^Jn`GCTG#G|2S^KCVjXRS;-DdwmUG{DFQ(sPdd^}Nh zhy2tG>GUO2cb-{Sn7BNy?{??3xt7caX8eziid|QFG|QW5_twnN$GTCRKX zrd`psTB)l<)^6>Rd(8IDD`0K$?TpJQ^4)vCR^P!I)?xN literal 0 HcmV?d00001 diff --git a/classasrob_1_1FakeMotorController-members.html b/classasrob_1_1FakeMotorController-members.html new file mode 100644 index 0000000..44824aa --- /dev/null +++ b/classasrob_1_1FakeMotorController-members.html @@ -0,0 +1,97 @@ + + + + + + + +yarp-devices: Member List + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
asrob::FakeMotorController Member List
+
+
+ +

This is the complete list of members for asrob::FakeMotorController, including all inherited members.

+ + + + + + + + + + +
close() override (defined in asrob::FakeMotorController)asrob::FakeMotorController
moveForward(double value) overrideasrob::FakeMotorControllervirtual
open(yarp::os::Searchable &config) override (defined in asrob::FakeMotorController)asrob::FakeMotorController
panLeft(double value) overrideasrob::FakeMotorControllervirtual
stopCameraMovement() overrideasrob::FakeMotorControllervirtual
stopMovement() overrideasrob::FakeMotorControllervirtual
tiltDown(double value) overrideasrob::FakeMotorControllervirtual
turnLeft(double value) overrideasrob::FakeMotorControllervirtual
~IRobotManager()=default (defined in asrob::IRobotManager)asrob::IRobotManagervirtual
+ + + + diff --git a/classasrob_1_1FakeMotorController.html b/classasrob_1_1FakeMotorController.html new file mode 100644 index 0000000..066f4e0 --- /dev/null +++ b/classasrob_1_1FakeMotorController.html @@ -0,0 +1,141 @@ + + + + + + + +yarp-devices: asrob::FakeMotorController Class Reference + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
asrob::FakeMotorController Class Reference
+
+
+ +

FakeMotorController. +

+ +

#include <FakeMotorController.hpp>

+
+Inheritance diagram for asrob::FakeMotorController:
+
+
+ + +asrob::IRobotManager + +
+ + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+bool moveForward (double value) override
 Robot: Move forward (use negative value for move backward). position mode [m]. Velocity mode [m/s].
 
+bool turnLeft (double value) override
 Robot: Turn left (use negative value for turn left). position mode [deg]. Velocity mode [deg/s].
 
+bool stopMovement () override
 Robot: Stop movement.
 
+bool tiltDown (double value) override
 Robot camera: Tilt down (use negative value for tilt up). position mode [deg]. Velocity mode [deg/s].
 
+bool panLeft (double value) override
 Robot camera: Pan left (use negative value for pan right). position mode [deg]. Velocity mode [deg/s].
 
+bool stopCameraMovement () override
 Robot camera: Stop movement.
 
+bool open (yarp::os::Searchable &config) override
 
+bool close () override
 
+
The documentation for this class was generated from the following files:
    +
  • libraries/YarpPlugins/FakeMotorController/FakeMotorController.hpp
  • +
  • libraries/YarpPlugins/FakeMotorController/DeviceDriverImpl.cpp
  • +
  • libraries/YarpPlugins/FakeMotorController/FakeMotorController.cpp
  • +
+
+ + + + diff --git a/classasrob_1_1FakeMotorController.png b/classasrob_1_1FakeMotorController.png new file mode 100644 index 0000000000000000000000000000000000000000..0b438915c68e24906d193d11855b543d05f4e9e8 GIT binary patch literal 1098 zcmeAS@N?(olHy`uVBq!ia0y~yV2l8=12~w0WcIYVtAUh6fKQ0)|NsAi%olIImi8Z- z0AzvjfddCvJMYK?xf~@ye!&btMIdnXREQA+1M^K!7srqa#XP&q-fm*^>5KsXbew^?ASaH;ep_qR*?vzihtx&(zA-EaLK+m}=d!lZT(~ zc=D{~R_2EDb=Z$~&-aQk&F)dAYxtHVW z317F~e!1<~w}%UF{L{WsqnIb^dCN#__rI+9U28wSHQT~%wXyiW-y5q7Yctc<&DCPn zZJyUD+qSzU|D~09N0@bu)b{u8leYDktES^mW#i8?-F$6dbaHI}=7M#{_L1E! zqBB-F>)zk#HLuJn_BU6TzxJ<`U-SE~O`!DkdfV3;#+&h0(~5tzWtwuJRReIB!RpW~Zf z7SqLV-%I+xsCwh>pa<*jPuqB#l~M1=j$`k%9yZ?CxZq>T*AM5XHtowPtNyMwaoWYJ zwTxC-kt=ua);9mk`*rr}y}51s6~rDCd*Tk&0@sa8r+oU!(DFe(-nLCS^=IWjV8& + + + + + + +yarp-devices: Member List + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
asrob::IRobotManager Member List
+
+
+ +

This is the complete list of members for asrob::IRobotManager, including all inherited members.

+ + + + + + + + +
moveForward(double value)=0asrob::IRobotManagerpure virtual
panLeft(double value)=0asrob::IRobotManagerpure virtual
stopCameraMovement()=0asrob::IRobotManagerpure virtual
stopMovement()=0asrob::IRobotManagerpure virtual
tiltDown(double value)=0asrob::IRobotManagerpure virtual
turnLeft(double value)=0asrob::IRobotManagerpure virtual
~IRobotManager()=default (defined in asrob::IRobotManager)asrob::IRobotManagervirtual
+ + + + diff --git a/classasrob_1_1IRobotManager.html b/classasrob_1_1IRobotManager.html new file mode 100644 index 0000000..e98c132 --- /dev/null +++ b/classasrob_1_1IRobotManager.html @@ -0,0 +1,134 @@ + + + + + + + +yarp-devices: asrob::IRobotManager Class Reference + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
asrob::IRobotManager Class Referenceabstract
+
+
+
+Inheritance diagram for asrob::IRobotManager:
+
+
+ + +asrob::EcroPwmController +asrob::EcroWheelController +asrob::FakeMotorController +asrob::LaserTowerOfDeathController +asrob::RaspiOnePwmMotorController +asrob::RaspiTwoPwmMotorController +asrob::RobotClient + +
+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual bool moveForward (double value)=0
 Robot: Move forward (use negative value for move backward). position mode [m]. Velocity mode [m/s].
 
+virtual bool turnLeft (double value)=0
 Robot: Turn left (use negative value for turn left). position mode [deg]. Velocity mode [deg/s].
 
+virtual bool stopMovement ()=0
 Robot: Stop movement.
 
+virtual bool tiltDown (double value)=0
 Robot camera: Tilt down (use negative value for tilt up). position mode [deg]. Velocity mode [deg/s].
 
+virtual bool panLeft (double value)=0
 Robot camera: Pan left (use negative value for pan right). position mode [deg]. Velocity mode [deg/s].
 
+virtual bool stopCameraMovement ()=0
 Robot camera: Stop movement.
 
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classasrob_1_1IRobotManager.png b/classasrob_1_1IRobotManager.png new file mode 100644 index 0000000000000000000000000000000000000000..d5ac5ef63e700ecf77e0236f470318a0b0b9d85a GIT binary patch literal 2358 zcmb_ec~p{X8aIj-t*n{SN=rMDTdC!4VxVUExn`86qTXAYxnzb3;yQG_*E*Uwq*kue zqRfrdTbiigl9mgWniggRYCu+MD40kf%=f9yIrp5I`D>nY-uHc;clkZb`<~zTT|4f5 zY=im^bu~4$4S?H`6KZO!(V%{O?Mkr6zXq(pVcT)flddY23RFK$eoG*?<$~H`Yi(_X zUwf|ynrkng@W!Ztn;?0^I%xq;JqM0BolIOY#a+M`2I{WrpZcRfr0Sx3Wv_6Z(Drg9 zG(H|Qy1E`^Co$i$g-PPZ(sj0OfrQ!GN{i80r4C9+IUELu#QzEUACQbb&|15=3Ht^{ zx&jF;gw8U{nVoq4RodbaI-4wKPoyj#4sVAAG!sMg%S10cR)FNk6!QKbE}kM|SLjlk&9B(#&0 z(^DGq4>P@_G5(Dq^{@m96MdM&m;BVCNqC>EjN-Y(F_yApvbeNK>6vEUrYu;%g&Ya2 zp|)q{z>=GJU$R!$!-LJd+m&APJAojlaz-lYfD|0sBqm~Lsha*Wg8%SH1bfL!Z$mLzU-5k<*dGNQJyo|{ z#epB?57a*nN!+QWJ?d3aiF-mkuUL1|;?=Roy(4_RjV%3c5@BWxl zd?DK`U+!`MS5W6up|XKsOUWD6KUm)VKOV$?j|c*p_mwZCh5m=8f*p8pr`>w*`U>Np z*L$tISh*+Tpw-^&JD_E{DKXk>-P!Z*+gvbhK@)4C^+ii#6)zCewyp3l9sPOJ>_g7b z`l1CR(b;(ieye~Wm``#xf$NJ_Eqb)ldI|LZ>f)`H*WgG^Sw-ac=t5j!MdUs&d#}OS zK&Y?HuPCmFOftn#vLg?-A+}>M2Ho2VEr5>cbYOV1LAOpc3$fh=nhewj#O$Pd%ggcGZWQK|3Qx*Gt8hy89XJJXvC=jQ)QoS0t@pZ(IGb39#%F2ksVIUMLenx1C2UMk z5^8RqiUinAVHviDin_-3&Z3|rT%-`k87_)2WOO4%ZVgGzz~c{=U&_3N^*z-pvq_ZZ z>^wZtPWYsA;)8Lp>}|zao`JC3S9!earH0^Lc|d8OV&iFtVYxrMQXK)XQ_s0kEGLST zuV4Trfxe~7z}MD?h@}_-h?r)-qQrl79O>8qcx#HhEPq-5jNw8JTPaaNOWM zDXwk&+i5$a=SI#XR%bU7SroaB)|8K(7-8vAGn zB3zmupm#B>sAmrw=SsK~!Dd^nuE|+%cjdfWD*N4?l0K>YJtf#L&Aa;bnO!s&cM6I@ z$ne>#sNd|veuvuH<#9JQ4_7Buj4_q{ra9sPVilFSyNA`=QypBvDE{P3Dn{jlcaVuG z^^6Js9MEJ4=B@+fo)tdZ2|54Du%hpGjON@B?51mV4arKh7QVDM`sq{0Ri{ZW%rF$i zQ?T?lW9}qf*2lN@oFiN_;m@M>-kNPx!dSZ|cS?c(4 zH3Q5T5g9&)NEKiHsKl|Un%sDSRh=2LnI8_hLi!N>3xoqLZ|ii2rBg(4g9K)OUFJqA zhF)1!$!Iyue&;L;)4;uD>rPZy7mbw_lx`3SwYPS;-26y})zJ_P zZBNC2n|z!GeGLNI$myLIdKS#Ix;i@xl6%ejX1IeZ4Z9Nv*QbXwqJ6$ZR(aix&BZlH zXRHW-*2bG31Yx$f$K6>RLwud&!)5ZCpcir0uf{~eV~5QLW)3;Vuh`{n@4(>mMv{vW z^<%%kzx;wzjwEhOw-C_O1tgF7_ck8i^207Yu0aCgt3etFfY(bqdJCbdf_Q~#CH!lT zGbM%!F^Xv}f*1|a%BO)s1R;`y=q5v5&>}#j20)4h z2@ArkMNw5-jQ60`^)c1o a#i&6Uz%{ + + + + + + +yarp-devices: Member List + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
asrob::LaserTowerOfDeathController Member List
+
+
+ +

This is the complete list of members for asrob::LaserTowerOfDeathController, including all inherited members.

+ + + + + + + + + + + + + + + + +
checkConnection() (defined in asrob::LaserTowerOfDeathController)asrob::LaserTowerOfDeathControllerprivate
close() override (defined in asrob::LaserTowerOfDeathController)asrob::LaserTowerOfDeathController
moveForward(double value) overrideasrob::LaserTowerOfDeathControllervirtual
open(yarp::os::Searchable &config) override (defined in asrob::LaserTowerOfDeathController)asrob::LaserTowerOfDeathController
panJointValue (defined in asrob::LaserTowerOfDeathController)asrob::LaserTowerOfDeathControllerprivate
panLeft(double value) overrideasrob::LaserTowerOfDeathControllervirtual
sendCurrentJointValues() (defined in asrob::LaserTowerOfDeathController)asrob::LaserTowerOfDeathControllerprivate
serial (defined in asrob::LaserTowerOfDeathController)asrob::LaserTowerOfDeathControllerprivate
serialDevice (defined in asrob::LaserTowerOfDeathController)asrob::LaserTowerOfDeathControllerprivate
stopCameraMovement() overrideasrob::LaserTowerOfDeathControllervirtual
stopMovement() overrideasrob::LaserTowerOfDeathControllervirtual
tiltDown(double value) overrideasrob::LaserTowerOfDeathControllervirtual
tiltJointValue (defined in asrob::LaserTowerOfDeathController)asrob::LaserTowerOfDeathControllerprivate
turnLeft(double value) overrideasrob::LaserTowerOfDeathControllervirtual
~IRobotManager()=default (defined in asrob::IRobotManager)asrob::IRobotManagervirtual
+ + + + diff --git a/classasrob_1_1LaserTowerOfDeathController.html b/classasrob_1_1LaserTowerOfDeathController.html new file mode 100644 index 0000000..9b1e29f --- /dev/null +++ b/classasrob_1_1LaserTowerOfDeathController.html @@ -0,0 +1,167 @@ + + + + + + + +yarp-devices: asrob::LaserTowerOfDeathController Class Reference + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+ +
+ +

LaserTowerOfDeathController. +

+ +

#include <LaserTowerOfDeathController.hpp>

+
+Inheritance diagram for asrob::LaserTowerOfDeathController:
+
+
+ + +asrob::IRobotManager + +
+ + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+bool moveForward (double value) override
 Robot: Move forward (use negative value for move backward). position mode [m]. Velocity mode [m/s].
 
+bool turnLeft (double value) override
 Robot: Turn left (use negative value for turn left). position mode [deg]. Velocity mode [deg/s].
 
+bool stopMovement () override
 Robot: Stop movement.
 
+bool tiltDown (double value) override
 Robot camera: Tilt down (use negative value for tilt up). position mode [deg]. Velocity mode [deg/s].
 
+bool panLeft (double value) override
 Robot camera: Pan left (use negative value for pan right). position mode [deg]. Velocity mode [deg/s].
 
+bool stopCameraMovement () override
 Robot camera: Stop movement.
 
+bool open (yarp::os::Searchable &config) override
 
+bool close () override
 
+ + + + + +

+Private Member Functions

+bool sendCurrentJointValues ()
 
+bool checkConnection ()
 
+ + + + + + + + + +

+Private Attributes

+yarp::dev::PolyDriver serialDevice
 
+yarp::dev::ISerialDevice * serial
 
+int panJointValue {90}
 
+int tiltJointValue {90}
 
+
The documentation for this class was generated from the following files:
    +
  • libraries/YarpPlugins/LaserTowerOfDeathController/LaserTowerOfDeathController.hpp
  • +
  • libraries/YarpPlugins/LaserTowerOfDeathController/DeviceDriverImpl.cpp
  • +
  • libraries/YarpPlugins/LaserTowerOfDeathController/LaserTowerOfDeathController.cpp
  • +
+
+ + + + diff --git a/classasrob_1_1LaserTowerOfDeathController.png b/classasrob_1_1LaserTowerOfDeathController.png new file mode 100644 index 0000000000000000000000000000000000000000..5ac1ae9a142c1a4dde22f5923d7fe18be75cda4d GIT binary patch literal 1200 zcmeAS@N?(olHy`uVBq!ia0y~yU_1n52XHV0$-VNe-9Snrz$e7@|Ns9$=8HF9OZyK^ z0J6aNz<~p-opVB6&q^&mS29kBH+xKzRqwB&*LhhUO^c_3sqXx zV2o#vx!(JPuah_4JnwA4{O`}U{?+C>ot3`pk@Z7OJ06cq?LTH6n(OxM+02=LPnL^( zYmRQ+F1S8&lHKuOuJtR0w>xQWw>LkSy8Ed1xi@Mr(xZ=Mm(0p3@H5^VyJu;^y0t&c z*KNO@rk)dcqkZ|_*ZtuZ9y676%d97>ynQCxnj4z_XZz9H`zzB;Un%{yH~;-%PFmXT z3ipS(YgaEm>ArfE($9SF&kt4Yva2Ut`WCn1+VoWy&YbFMd{ijPC;IJpnelqjSu@{0 zz3X=CUdm~v?PtI4-oVc<`fXGAtGkgZnfB+k*4VyZcu4i$vplZd3xX@8?`y2-dx)=vuP#sAe(!Xhyv%;?-A@iKOiQc&@nH9b-W^}> zeb@VQIW~OOq%R`pHP^Tn32t3e^)`R=g`KZU@5TJT!}j{X9gXO?{|Z-hj5qJybKB$f zr!fEG<*RwuYp$x@*!nuIR(P9;`KCDwW&i26_OqQi^G|=z(tt_(j()y(FJnpCwc6l? zDtixS-~Alg+I%HM!!zHoJixQ6Q(b!H%t)C-CPAK6Gl8NDJzFP<%z`tz4+VKyYWO{T zSz;wC(x6|&W?|F5?{o-;n~r09MB#>~fGJAI{qg2ny|?)-HimI)#J z{PWL0%nT|F@`~4m39H6#+JnPWf=&f8{$S**nUA5OK;Xaf&O3Gt{1HKV|KB}{Z<}^8 z@mSW8=gXZI{I*+MP=D;}awCglnv&^D4jrsLcmCHOYu!^@YS&J&pLEx-_?XEPlbus4 zyH+wxFR_0*$8P@hxwm7_)vVclB9G5p_rS%-XxDL;}!8QtWU=Jzq$3KEO)ni+L8@#cV1pEH~V1E?aO~M zl;38*oai*a=I%f5h2A@t7tFkL{pMt@-P%8|x^YdJH}R0~-z^dA3+jIUoWdTu8-IBb^u;lP^ZvU_zlPvomgHVwO;`_5~t<=408RCg!8 z%D>+qu4xxlK5a_ov)f-zZ@l~T3;#8vDE-&%qD(S9z?htc3(pUX@X};weQ^2@bAJ1# VXTFNp9s`RP22WQ%mvv4FO#o&PK-K^N literal 0 HcmV?d00001 diff --git a/classasrob_1_1RaspiOnePwmMotorController-members.html b/classasrob_1_1RaspiOnePwmMotorController-members.html new file mode 100644 index 0000000..35b8a4d --- /dev/null +++ b/classasrob_1_1RaspiOnePwmMotorController-members.html @@ -0,0 +1,99 @@ + + + + + + + +yarp-devices: Member List + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
asrob::RaspiOnePwmMotorController Member List
+
+
+ +

This is the complete list of members for asrob::RaspiOnePwmMotorController, including all inherited members.

+ + + + + + + + + + + + +
close() override (defined in asrob::RaspiOnePwmMotorController)asrob::RaspiOnePwmMotorController
gpios (defined in asrob::RaspiOnePwmMotorController)asrob::RaspiOnePwmMotorControllerprivate
indexWithinRange(const int &idx)asrob::RaspiOnePwmMotorControllerprivate
moveForward(double value) overrideasrob::RaspiOnePwmMotorControllervirtual
open(yarp::os::Searchable &config) override (defined in asrob::RaspiOnePwmMotorController)asrob::RaspiOnePwmMotorController
panLeft(double value) overrideasrob::RaspiOnePwmMotorControllervirtual
stopCameraMovement() overrideasrob::RaspiOnePwmMotorControllervirtual
stopMovement() overrideasrob::RaspiOnePwmMotorControllervirtual
tiltDown(double value) overrideasrob::RaspiOnePwmMotorControllervirtual
turnLeft(double value) overrideasrob::RaspiOnePwmMotorControllervirtual
~IRobotManager()=default (defined in asrob::IRobotManager)asrob::IRobotManagervirtual
+ + + + diff --git a/classasrob_1_1RaspiOnePwmMotorController.html b/classasrob_1_1RaspiOnePwmMotorController.html new file mode 100644 index 0000000..940b58f --- /dev/null +++ b/classasrob_1_1RaspiOnePwmMotorController.html @@ -0,0 +1,188 @@ + + + + + + + +yarp-devices: asrob::RaspiOnePwmMotorController Class Reference + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+ +
+ +

RaspiOnePwmMotorController. +

+ +

#include <RaspiOnePwmMotorController.hpp>

+
+Inheritance diagram for asrob::RaspiOnePwmMotorController:
+
+
+ + +asrob::IRobotManager + +
+ + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+bool moveForward (double value) override
 Robot: Move forward (use negative value for move backward). position mode [m]. Velocity mode [m/s].
 
+bool turnLeft (double value) override
 Robot: Turn left (use negative value for turn left). position mode [deg]. Velocity mode [deg/s].
 
+bool stopMovement () override
 Robot: Stop movement.
 
+bool tiltDown (double value) override
 Robot camera: Tilt down (use negative value for tilt up). position mode [deg]. Velocity mode [deg/s].
 
+bool panLeft (double value) override
 Robot camera: Pan left (use negative value for pan right). position mode [deg]. Velocity mode [deg/s].
 
+bool stopCameraMovement () override
 Robot camera: Stop movement.
 
+bool open (yarp::os::Searchable &config) override
 
+bool close () override
 
+ + + +

+Private Member Functions

bool indexWithinRange (const int &idx)
 
+ + + +

+Private Attributes

+std::vector< int > gpios
 
+

Member Function Documentation

+ +

◆ indexWithinRange()

+ +
+
+ + + + + +
+ + + + + + + + +
bool RaspiOnePwmMotorController::indexWithinRange (const int & idx)
+
+private
+
+

Check if index is within range (referred to driver vector size).

Parameters
+ + +
idxindex to check.
+
+
+
Returns
true/false on success/failure.
+ +
+
+
The documentation for this class was generated from the following files:
    +
  • libraries/YarpPlugins/RaspiOnePwmMotorController/RaspiOnePwmMotorController.hpp
  • +
  • libraries/YarpPlugins/RaspiOnePwmMotorController/DeviceDriverImpl.cpp
  • +
  • libraries/YarpPlugins/RaspiOnePwmMotorController/RaspiOnePwmMotorController.cpp
  • +
+
+ + + + diff --git a/classasrob_1_1RaspiOnePwmMotorController.png b/classasrob_1_1RaspiOnePwmMotorController.png new file mode 100644 index 0000000000000000000000000000000000000000..a4e347526976031846a6a047b1ddd3f111d6b7a4 GIT binary patch literal 1210 zcmeAS@N?(olHy`uVBq!ia0y~yU_1n52XHV0$-VNe-9Snrz$e7@|Ns9$=8HF9OZyK^ z0J6aNz<~p-oplKhtk=AgnUX(m=FRmr?uphr zLM{5Q%u;<>Y_s%(dTCOeM&`e8--6$9k7k~FqZV;~Ti^2+CO03oa`@H7RozHSwF^^Ne)Lx_Lnnukuc=N!&f@o#vb6tHKhui<@!H zt~_(5>_elQmgd$T5x%>*qW8R4PW!z-AR_YRw?oVBy{?p&dEe^$=|Pb3X4{$q{WWf@ zs@~t`t}nf=T zp6@?IeXj|9s9-AMbtzg$He^!Vqmyn~Y0ucrdx31!SO!J+vtr;c)0MskqDE;bDr8S5Ar3s7-NJ9;Nrb; z>(v<)7=CaB`ZHW_aUusd@J|l%a%X+OBJ;!6S+OD82^l|Bm{<3Yfz9Xf;~#%df6D00 z`_y*5OnLj|i@A(`2a37scRup_^Dnh~u2;}}vwdbFeb)}g9D7=N;pZ&CM4bJ-+@p%^e9QApdU$y7V%i8%Wh09y9DD|^P(=QFn*B9G% zZ+x}M>tW55gLUVgY0hGov48Sx*JQIxZcefPf{te;M{T}+>wDkyr9ryWSgwBbNGyJR z@kqJIyzLXG#eaxx%?@9)NnUf#=cw15w-(25)YsP8KSkI)NMUQvs~dcIS^HO(1Yh37 z`;WKv?|PvJEIr>3oqc8;a^rn#c1^$s$L73zv%02(x{D_=eGN3d^k%Wi>B^@ir*qyd zP~DxfhId=Y=9fABtK+JQO+8IhFK@lxzH;8Wz3*zc7~>xAUmK#qa>H4J + + + + + + +yarp-devices: Member List + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
asrob::RaspiTwoPwmMotorController Member List
+
+
+ +

This is the complete list of members for asrob::RaspiTwoPwmMotorController, including all inherited members.

+ + + + + + + + + + + + + + + + +
close() override (defined in asrob::RaspiTwoPwmMotorController)asrob::RaspiTwoPwmMotorController
gpios (defined in asrob::RaspiTwoPwmMotorController)asrob::RaspiTwoPwmMotorControllerprivate
indexWithinRange(const int &idx)asrob::RaspiTwoPwmMotorControllerprivate
LEFT_MOTOR_IN1 (defined in asrob::RaspiTwoPwmMotorController)asrob::RaspiTwoPwmMotorControllerprivatestatic
LEFT_MOTOR_IN2 (defined in asrob::RaspiTwoPwmMotorController)asrob::RaspiTwoPwmMotorControllerprivatestatic
moveForward(double value) overrideasrob::RaspiTwoPwmMotorControllervirtual
open(yarp::os::Searchable &config) override (defined in asrob::RaspiTwoPwmMotorController)asrob::RaspiTwoPwmMotorController
panLeft(double value) overrideasrob::RaspiTwoPwmMotorControllervirtual
RIGHT_MOTOR_IN1 (defined in asrob::RaspiTwoPwmMotorController)asrob::RaspiTwoPwmMotorControllerprivatestatic
RIGHT_MOTOR_IN2 (defined in asrob::RaspiTwoPwmMotorController)asrob::RaspiTwoPwmMotorControllerprivatestatic
stopCameraMovement() overrideasrob::RaspiTwoPwmMotorControllervirtual
stopMovement() overrideasrob::RaspiTwoPwmMotorControllervirtual
tiltDown(double value) overrideasrob::RaspiTwoPwmMotorControllervirtual
turnLeft(double value) overrideasrob::RaspiTwoPwmMotorControllervirtual
~IRobotManager()=default (defined in asrob::IRobotManager)asrob::IRobotManagervirtual
+ + + + diff --git a/classasrob_1_1RaspiTwoPwmMotorController.html b/classasrob_1_1RaspiTwoPwmMotorController.html new file mode 100644 index 0000000..700e1a5 --- /dev/null +++ b/classasrob_1_1RaspiTwoPwmMotorController.html @@ -0,0 +1,204 @@ + + + + + + + +yarp-devices: asrob::RaspiTwoPwmMotorController Class Reference + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+ +
+ +

RaspiTwoPwmMotorController. +

+ +

#include <RaspiTwoPwmMotorController.hpp>

+
+Inheritance diagram for asrob::RaspiTwoPwmMotorController:
+
+
+ + +asrob::IRobotManager + +
+ + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+bool moveForward (double value) override
 Robot: Move forward (use negative value for move backward). position mode [m]. Velocity mode [m/s].
 
+bool turnLeft (double value) override
 Robot: Turn left (use negative value for turn left). position mode [deg]. Velocity mode [deg/s].
 
+bool stopMovement () override
 Robot: Stop movement.
 
+bool tiltDown (double value) override
 Robot camera: Tilt down (use negative value for tilt up). position mode [deg]. Velocity mode [deg/s].
 
+bool panLeft (double value) override
 Robot camera: Pan left (use negative value for pan right). position mode [deg]. Velocity mode [deg/s].
 
+bool stopCameraMovement () override
 Robot camera: Stop movement.
 
+bool open (yarp::os::Searchable &config) override
 
+bool close () override
 
+ + + +

+Private Member Functions

bool indexWithinRange (const int &idx)
 
+ + + +

+Private Attributes

+std::vector< int > gpios
 
+ + + + + + + + + +

+Static Private Attributes

+static const int LEFT_MOTOR_IN1 = 24
 
+static const int LEFT_MOTOR_IN2 = 23
 
+static const int RIGHT_MOTOR_IN1 = 22
 
+static const int RIGHT_MOTOR_IN2 = 21
 
+

Member Function Documentation

+ +

◆ indexWithinRange()

+ +
+
+ + + + + +
+ + + + + + + + +
bool RaspiTwoPwmMotorController::indexWithinRange (const int & idx)
+
+private
+
+

Check if index is within range (referred to driver vector size).

Parameters
+ + +
idxindex to check.
+
+
+
Returns
true/false on success/failure.
+ +
+
+
The documentation for this class was generated from the following files:
    +
  • libraries/YarpPlugins/RaspiTwoPwmMotorController/RaspiTwoPwmMotorController.hpp
  • +
  • libraries/YarpPlugins/RaspiTwoPwmMotorController/DeviceDriverImpl.cpp
  • +
  • libraries/YarpPlugins/RaspiTwoPwmMotorController/RaspiTwoPwmMotorController.cpp
  • +
+
+ + + + diff --git a/classasrob_1_1RaspiTwoPwmMotorController.png b/classasrob_1_1RaspiTwoPwmMotorController.png new file mode 100644 index 0000000000000000000000000000000000000000..44b8253ae55ac3022d63b82d14b4b9f9d2723d2c GIT binary patch literal 1197 zcmeAS@N?(olHy`uVBq!ia0y~yU_1b12XHV0$(^r4w*e`M0G|-o|Ns93nJ?aaE$u%v z0muU50|ySUcHWT(ayd$Z{DK*Pia_A%sSqOu1{NDn7srqa#f3+s72bEWozb&OSYCL?<>U8kj5pu^(Q#m3 zp>{#m$4RO$Yi(3M%&JO`Qc3+)%p6mN>n{>oi%2mj{TRWpPC;Xyq6Sn*pF8yOt*QFmA0+<``gBKN6&uS zXZs<%`0l1DOWG@Z5@Hp^eNWH1e#-3ioY%4GXG72BZZJEey6NfH^^RwajBlUpR^8&4 zx7FnOj;L3&7DNd~@0fR0cEi#g)1Gpz{k@#!-<5>4Z}UHNIe7jO>5r~n*fJ}!e2If+ z)x77go^57gU#S@|DK25%+(}K??1+(j`-80?ENl`V;Mo5cq`-g>e*XDq zO$~!kgZYHboB}gMILN^t;=DAUE?|(E|JW{#i-p4n1>ZS#`YW@+0-uYHf9lrXy0vKb zo{t?3)_TjEKL$T=c#v<~w(~u1!nc<% zN?ms@GrxHE{tr3xzxy_~Y~%dged76#yE!M{ner~%@=a@lWu4HC*vh}p*1Rjc`eUx@ zmc9GRS@rs2zP)F%e#-hQdG7Bm2fod#$>(JCI-e%>``A>q?UlVO+rI5rEcoliBs2e` z+>V>2ZA{0j6-2DexGO@w9y2%Cku)vffb6=KFzK~Eey5ksznwWLrtEYCcTC$2#SPE= zwqEEBJ-@4H@15@5JNMnc&dE~I_rG*ekir2zAhuU#Wny`@qkkq7BQWL>__HpPx8~Cs d3^gJYD@<);T3K0RXwJ9zy^C literal 0 HcmV?d00001 diff --git a/classasrob_1_1RobotClient-members.html b/classasrob_1_1RobotClient-members.html new file mode 100644 index 0000000..b5d41f2 --- /dev/null +++ b/classasrob_1_1RobotClient-members.html @@ -0,0 +1,100 @@ + + + + + + + +yarp-devices: Member List + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
asrob::RobotClient Member List
+
+
+ +

This is the complete list of members for asrob::RobotClient, including all inherited members.

+ + + + + + + + + + + + + +
close() override (defined in asrob::RobotClient)asrob::RobotClient
moveForward(double value) overrideasrob::RobotClientvirtual
open(yarp::os::Searchable &config) override (defined in asrob::RobotClient)asrob::RobotClient
panLeft(double value) overrideasrob::RobotClientvirtual
rpcClient (defined in asrob::RobotClient)asrob::RobotClientprivate
send1vocab(int vocab) (defined in asrob::RobotClient)asrob::RobotClientprivate
send1vocab1double(int vocab, double value) (defined in asrob::RobotClient)asrob::RobotClientprivate
stopCameraMovement() overrideasrob::RobotClientvirtual
stopMovement() overrideasrob::RobotClientvirtual
tiltDown(double value) overrideasrob::RobotClientvirtual
turnLeft(double value) overrideasrob::RobotClientvirtual
~IRobotManager()=default (defined in asrob::IRobotManager)asrob::IRobotManagervirtual
+ + + + diff --git a/classasrob_1_1RobotClient.html b/classasrob_1_1RobotClient.html new file mode 100644 index 0000000..80947e4 --- /dev/null +++ b/classasrob_1_1RobotClient.html @@ -0,0 +1,158 @@ + + + + + + + +yarp-devices: asrob::RobotClient Class Reference + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+ +
+ +

RobotClient. +

+ +

#include <RobotClient.hpp>

+
+Inheritance diagram for asrob::RobotClient:
+
+
+ + +asrob::IRobotManager + +
+ + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+bool open (yarp::os::Searchable &config) override
 
+bool close () override
 
+bool moveForward (double value) override
 Robot: Move forward (use negative value for move backward). position mode [m]. Velocity mode [m/s].
 
+bool turnLeft (double value) override
 Robot: Turn left (use negative value for turn left). position mode [deg]. Velocity mode [deg/s].
 
+bool stopMovement () override
 Robot: Stop movement.
 
+bool tiltDown (double value) override
 Robot camera: Tilt down (use negative value for tilt up). position mode [deg]. Velocity mode [deg/s].
 
+bool panLeft (double value) override
 Robot camera: Pan left (use negative value for pan right). position mode [deg]. Velocity mode [deg/s].
 
+bool stopCameraMovement () override
 Robot camera: Stop movement.
 
+ + + + + +

+Private Member Functions

+bool send1vocab1double (int vocab, double value)
 
+bool send1vocab (int vocab)
 
+ + + +

+Private Attributes

+yarp::os::RpcClient rpcClient
 
+
The documentation for this class was generated from the following files:
    +
  • libraries/YarpPlugins/RobotClient/RobotClient.hpp
  • +
  • libraries/YarpPlugins/RobotClient/DeviceDriverImpl.cpp
  • +
  • libraries/YarpPlugins/RobotClient/RobotClient.cpp
  • +
+
+ + + + diff --git a/classasrob_1_1RobotClient.png b/classasrob_1_1RobotClient.png new file mode 100644 index 0000000000000000000000000000000000000000..87132bfabea2212687f54f22b0075856a40509bc GIT binary patch literal 1003 zcmeAS@N?(olHy`uVBq!ia0y~yU^D=-12~w0xberQ9s0fh zZ@ncl34{>N8-ISQ;jU@-&`|eqz^R5-0{LGWSu-PlUsr&nJPrddT z{&}rymBUu4>^-jd=67zQZqufJv!2%0=6#fX{840!zxA>2FFtKJIH&y3wp};lwns(T zTiLc7$j80g7r$nM<0+xcjit-H6LWc`zh!;=w(V}oVzo#2&s=UVzQ++AzD+tZ?7r4A zk8fF-W;I95JuS#1+zGb4+yC#k{_v(VZSI@sS2Az>PELEi zRet%C)4DtL)3zs_-w}LSUas*sXGYMO6Nb&!s`;%m=U;YMyY(OY9g|wmU;ZDa>1|6{ zdo{K`^hTw8+?+{U!^;2O{9<4X zl5l7cVG~ejWn}S4#L9jC`R5$*hW=-t!#O@QFEMCf(Bx5Y;9};OaEJkzSO{_JT_ZG? z`mi0?bLRV3G`sA4W}JS{XZnB5(>(7Vk4!FJJtMDsrhiWBTh7Iic0M=4tZu*F^kQw8 zkFV^Znw*`#>nx4T)6LFaefD1b+P90lE|>)!h|@iOEN9QtIhPr#>fTSw>AqDS9=+v# zqTRQk8(+=--iK%>MUc%AHSrYU!8x_A=P+-~N*M4?k`n8tmQ>#Sxfvy2#n=0P Q1LjNyPgg&ebxsLQ0F(99YybcN literal 0 HcmV?d00001 diff --git a/classasrob_1_1RobotServer-members.html b/classasrob_1_1RobotServer-members.html new file mode 100644 index 0000000..4d27094 --- /dev/null +++ b/classasrob_1_1RobotServer-members.html @@ -0,0 +1,94 @@ + + + + + + + +yarp-devices: Member List + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
asrob::RobotServer Member List
+
+
+ +

This is the complete list of members for asrob::RobotServer, including all inherited members.

+ + + + + + + +
close() override (defined in asrob::RobotServer)asrob::RobotServer
iRobotManager (defined in asrob::RobotServer)asrob::RobotServerprivate
open(yarp::os::Searchable &config) override (defined in asrob::RobotServer)asrob::RobotServer
read(yarp::os::ConnectionReader &connection) override (defined in asrob::RobotServer)asrob::RobotServer
robotDevice (defined in asrob::RobotServer)asrob::RobotServerprivate
rpcServer (defined in asrob::RobotServer)asrob::RobotServerprivate
+ + + + diff --git a/classasrob_1_1RobotServer.html b/classasrob_1_1RobotServer.html new file mode 100644 index 0000000..7cece64 --- /dev/null +++ b/classasrob_1_1RobotServer.html @@ -0,0 +1,130 @@ + + + + + + + +yarp-devices: asrob::RobotServer Class Reference + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+ +
+ +

RobotServer. +

+ +

#include <RobotServer.hpp>

+
+Inheritance diagram for asrob::RobotServer:
+
+
+ +
+ + + + + + + + +

+Public Member Functions

+bool open (yarp::os::Searchable &config) override
 
+bool close () override
 
+bool read (yarp::os::ConnectionReader &connection) override
 
+ + + + + + + +

+Private Attributes

+yarp::os::RpcServer rpcServer
 
+yarp::dev::PolyDriver robotDevice
 
+IRobotManageriRobotManager
 
+
The documentation for this class was generated from the following files:
    +
  • libraries/YarpPlugins/RobotServer/RobotServer.hpp
  • +
  • libraries/YarpPlugins/RobotServer/DeviceDriverImpl.cpp
  • +
  • libraries/YarpPlugins/RobotServer/RobotServer.cpp
  • +
+
+ + + + diff --git a/classasrob_1_1RobotServer.png b/classasrob_1_1RobotServer.png new file mode 100644 index 0000000000000000000000000000000000000000..f4c18c6dbb31a7887f6062eaa482e8bd483e666b GIT binary patch literal 965 zcmeAS@N?(olHy`uVBq!ia0y~yU^D=-12~w0 zWY!HS)|n>i>5o#byybcjDiRlGXdKPcXK%du=mC{X%{>O5QC&i6o}6AYR8%z*Crw$< z;u+L5WrKR?`}TGf*S0kg?|<&d7c=92|Lc#+tLYQ>df%A8SmpKJ$Qvm)W^Y)2agK1= z?mLwk+mG+huHKvf)H<(W;f3#IPu?&6eoigx|vqn27sRXLH|`6KnaJ|1ImXz4)^o3@X6~^iRHAGXMR5{nnp5 z@9O5=54~;Y{IG_fd#bwc|JDt9XLiWW5&BlcKY59R@V5FH#|<~u{x5j&^YP*S?dR`r z++eL5y?4c5i%EVQzpc-dd3}3!%fR37Wc#`TFE6f40kal0&;PpVEwws6`&Cq1w=CJ< z-~Q6y(^GM+#+%29yHqtjy+2fWdR=1IgatV)4t8)E8%J}ipE;AG%W&^7YeHxk&$<@I zInRqCZ`|lQIMtxxbBuG;bqG^r>q}-8jYI}cFA0YxA+`w%S{Si$^`@Urjb*5tb-&)Z z!93^?gU}R%1{PHw1xHS1j{t()Kk+RyXX>&Y*tJGH4pqZJeNOJFyM=YjN~(WNSHJh3 ztJ|`9!#bGgTe~DWM4feq*lX literal 0 HcmV?d00001 diff --git a/classes.html b/classes.html new file mode 100644 index 0000000..b91b558 --- /dev/null +++ b/classes.html @@ -0,0 +1,105 @@ + + + + + + + +yarp-devices: Class Index + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
Class Index
+
+ + + + + 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/dir_3bb89c900400717501ccff31d9189399.html b/dir_3bb89c900400717501ccff31d9189399.html new file mode 100644 index 0000000..8e0605b --- /dev/null +++ b/dir_3bb89c900400717501ccff31d9189399.html @@ -0,0 +1,85 @@ + + + + + + + +yarp-devices: examples/matlab Directory Reference + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matlab Directory Reference
+
+
+
+ + + + diff --git a/dir_42950ad3e062fd69313a6bd36855dcce.html b/dir_42950ad3e062fd69313a6bd36855dcce.html new file mode 100644 index 0000000..52282be --- /dev/null +++ b/dir_42950ad3e062fd69313a6bd36855dcce.html @@ -0,0 +1,85 @@ + + + + + + + +yarp-devices: libraries/YarpPlugins/EcroPwmController Directory Reference + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
EcroPwmController Directory Reference
+
+
+
+ + + + diff --git a/dir_519a1276aa89a8145950b617d844d189.html b/dir_519a1276aa89a8145950b617d844d189.html new file mode 100644 index 0000000..3295dd8 --- /dev/null +++ b/dir_519a1276aa89a8145950b617d844d189.html @@ -0,0 +1,85 @@ + + + + + + + +yarp-devices: examples/cpp/exampleRobotClient Directory Reference + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
exampleRobotClient Directory Reference
+
+
+
+ + + + diff --git a/dir_70a30ac1a90abd159b6a503e4b49cd79.html b/dir_70a30ac1a90abd159b6a503e4b49cd79.html new file mode 100644 index 0000000..8dca573 --- /dev/null +++ b/dir_70a30ac1a90abd159b6a503e4b49cd79.html @@ -0,0 +1,85 @@ + + + + + + + +yarp-devices: examples/python/simple Directory Reference + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
simple Directory Reference
+
+
+
+ + + + diff --git a/dir_7812be98e96dd641e444e9355f0ac13a.html b/dir_7812be98e96dd641e444e9355f0ac13a.html new file mode 100644 index 0000000..a21c429 --- /dev/null +++ b/dir_7812be98e96dd641e444e9355f0ac13a.html @@ -0,0 +1,85 @@ + + + + + + + +yarp-devices: libraries/YarpPlugins/RobotClient Directory Reference + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
RobotClient Directory Reference
+
+
+
+ + + + diff --git a/dir_7e6f7f084ac2fdbb681245a4671ec54f.html b/dir_7e6f7f084ac2fdbb681245a4671ec54f.html new file mode 100644 index 0000000..9ab5fdc --- /dev/null +++ b/dir_7e6f7f084ac2fdbb681245a4671ec54f.html @@ -0,0 +1,85 @@ + + + + + + + +yarp-devices: libraries/YarpPlugins/RobotServer Directory Reference + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
RobotServer Directory Reference
+
+
+
+ + + + diff --git a/dir_8976e5d03119516083eaca3ddca61311.html b/dir_8976e5d03119516083eaca3ddca61311.html new file mode 100644 index 0000000..5259f46 --- /dev/null +++ b/dir_8976e5d03119516083eaca3ddca61311.html @@ -0,0 +1,89 @@ + + + + + + + +yarp-devices: examples/cpp Directory Reference + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
cpp Directory Reference
+
+
+ + +

+Directories

+
+ + + + diff --git a/dir_a1a0d9f4b7bb423803a133c5c7f74fe7.html b/dir_a1a0d9f4b7bb423803a133c5c7f74fe7.html new file mode 100644 index 0000000..e66c336 --- /dev/null +++ b/dir_a1a0d9f4b7bb423803a133c5c7f74fe7.html @@ -0,0 +1,85 @@ + + + + + + + +yarp-devices: libraries/YarpPlugins/EcroWheelController Directory Reference + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
EcroWheelController Directory Reference
+
+
+
+ + + + diff --git a/dir_a52c22a8b79e169194d9c4bbc7c46367.html b/dir_a52c22a8b79e169194d9c4bbc7c46367.html new file mode 100644 index 0000000..f975531 --- /dev/null +++ b/dir_a52c22a8b79e169194d9c4bbc7c46367.html @@ -0,0 +1,85 @@ + + + + + + + +yarp-devices: doc/build Directory Reference + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
build Directory Reference
+
+
+
+ + + + diff --git a/dir_aef3a60a7dfcacfdd3584588a1e47516.html b/dir_aef3a60a7dfcacfdd3584588a1e47516.html new file mode 100644 index 0000000..e6cbe6d --- /dev/null +++ b/dir_aef3a60a7dfcacfdd3584588a1e47516.html @@ -0,0 +1,85 @@ + + + + + + + +yarp-devices: libraries/YarpPlugins/RaspiTwoPwmMotorController Directory Reference + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
RaspiTwoPwmMotorController Directory Reference
+
+
+
+ + + + diff --git a/dir_b699cc7574ccf41bf6ae62fe86f6f714.html b/dir_b699cc7574ccf41bf6ae62fe86f6f714.html new file mode 100644 index 0000000..79fee3d --- /dev/null +++ b/dir_b699cc7574ccf41bf6ae62fe86f6f714.html @@ -0,0 +1,85 @@ + + + + + + + +yarp-devices: libraries/YarpPlugins/FakeMotorController Directory Reference + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
FakeMotorController Directory Reference
+
+
+
+ + + + diff --git a/dir_bc0718b08fb2015b8e59c47b2805f60c.html b/dir_bc0718b08fb2015b8e59c47b2805f60c.html new file mode 100644 index 0000000..7b60f15 --- /dev/null +++ b/dir_bc0718b08fb2015b8e59c47b2805f60c.html @@ -0,0 +1,89 @@ + + + + + + + +yarp-devices: libraries Directory Reference + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
libraries Directory Reference
+
+
+ + +

+Directories

+
+ + + + diff --git a/dir_ca7ec62bdf2659023456a44edaa57035.html b/dir_ca7ec62bdf2659023456a44edaa57035.html new file mode 100644 index 0000000..bfbd9ce --- /dev/null +++ b/dir_ca7ec62bdf2659023456a44edaa57035.html @@ -0,0 +1,85 @@ + + + + + + + +yarp-devices: libraries/YarpPlugins/RaspiOnePwmMotorController Directory Reference + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
RaspiOnePwmMotorController Directory Reference
+
+
+
+ + + + diff --git a/dir_d050070cc3e4bbd91d897ff8856046e0.html b/dir_d050070cc3e4bbd91d897ff8856046e0.html new file mode 100644 index 0000000..d5a7fd2 --- /dev/null +++ b/dir_d050070cc3e4bbd91d897ff8856046e0.html @@ -0,0 +1,89 @@ + + + + + + + +yarp-devices: examples/python Directory Reference + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
python Directory Reference
+
+
+ + +

+Directories

+
+ + + + diff --git a/dir_d28a4824dc47e487b107a5db32ef43c4.html b/dir_d28a4824dc47e487b107a5db32ef43c4.html new file mode 100644 index 0000000..e452cd6 --- /dev/null +++ b/dir_d28a4824dc47e487b107a5db32ef43c4.html @@ -0,0 +1,91 @@ + + + + + + + +yarp-devices: examples Directory Reference + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
examples Directory Reference
+
+
+ + + + +

+Directories

directory  cpp
 
+
+ + + + diff --git a/dir_e08f7038a11a903b326f4d6bfb17a7cc.html b/dir_e08f7038a11a903b326f4d6bfb17a7cc.html new file mode 100644 index 0000000..6f51c7d --- /dev/null +++ b/dir_e08f7038a11a903b326f4d6bfb17a7cc.html @@ -0,0 +1,85 @@ + + + + + + + +yarp-devices: libraries/YarpPlugins/LaserTowerOfDeathController Directory Reference + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
LaserTowerOfDeathController Directory Reference
+
+
+
+ + + + diff --git a/dir_e68e8157741866f444e17edd764ebbae.html b/dir_e68e8157741866f444e17edd764ebbae.html new file mode 100644 index 0000000..cfb412b --- /dev/null +++ b/dir_e68e8157741866f444e17edd764ebbae.html @@ -0,0 +1,85 @@ + + + + + + + +yarp-devices: doc Directory Reference + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
doc Directory Reference
+
+
+
+ + + + diff --git a/dir_f98f57c538677273d6e3d52c55355c28.html b/dir_f98f57c538677273d6e3d52c55355c28.html new file mode 100644 index 0000000..2f46c65 --- /dev/null +++ b/dir_f98f57c538677273d6e3d52c55355c28.html @@ -0,0 +1,89 @@ + + + + + + + +yarp-devices: libraries/YarpPlugins Directory Reference + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
YarpPlugins Directory Reference
+
+
+ + +

+Directories

+
+ + + + 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..ffbff02 --- /dev/null +++ b/doxygen.css @@ -0,0 +1,1793 @@ +/* The standard CSS for doxygen 1.9.1 */ + +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, th p.intertd, th 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.navtab { + border-right: 1px solid #A3B4D7; + padding-right: 15px; + text-align: right; + line-height: 110%; +} + +div.navtab table { + border-spacing: 0; +} + +td.navtab { + padding-right: 6px; + padding-left: 6px; +} +td.navtabHL { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL a, td.navtabHL a:visited { + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} + +a.navtab { + font-weight: bold; +} + +div.qindex{ + text-align: center; + width: 100%; + line-height: 140%; + font-size: 130%; + color: #A0A0A0; +} + +dt.alphachar{ + font-size: 180%; + font-weight: bold; +} + +.alphachar a{ + color: black; +} + +.alphachar a:hover, .alphachar a:visited{ + text-decoration: none; +} + +.classindex dl { + padding: 25px; + column-count:1 +} + +.classindex dd { + display:inline-block; + margin-left: 50px; + width: 90%; + line-height: 1.15em; +} + +.classindex dl.odd { + background-color: #F8F9FC; +} + +@media(min-width: 1120px) { + .classindex dl { + column-count:2 + } +} + +@media(min-width: 1320px) { + .classindex dl { + column-count:3 + } +} + + +/* @group Link Styling */ + +a { + color: #3D578C; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #4665A2; +} + +a:hover { + text-decoration: underline; +} + +.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; + text-align:right; + width:52px; +} + +dl.citelist dd { + margin:2px 0 2px 72px; + 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; +} + +span.emoji { + /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html + * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort; + */ +} + +.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.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.svg b/doxygen.svg new file mode 100644 index 0000000..d42dad5 --- /dev/null +++ b/doxygen.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dynsections.js b/dynsections.js new file mode 100644 index 0000000..3174bd7 --- /dev/null +++ b/dynsections.js @@ -0,0 +1,121 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @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 + + + + + + +yarp-devices: File List + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
File List
+
+
+
Here is a list of all documented files with brief descriptions:
+
[detail level 1234]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  libraries
  YarpPlugins
  EcroPwmController
 EcroPwmController.hpp
 LogComponent.hpp
  EcroWheelController
 EcroWheelController.hpp
 LogComponent.hpp
  FakeMotorController
 FakeMotorController.hpp
 LogComponent.hpp
  LaserTowerOfDeathController
 LaserTowerOfDeathController.hpp
 LogComponent.hpp
  RaspiOnePwmMotorController
 LogComponent.hpp
 mailbox.h
 pwm.h
 RaspiOnePwmMotorController.hpp
  RaspiTwoPwmMotorController
 LogComponent.hpp
 RaspiTwoPwmMotorController.hpp
  RobotClient
 LogComponent.hpp
 RobotClient.hpp
  RobotServer
 LogComponent.hpp
 RobotServer.hpp
 IRobotManager.hpp
+
+
+ + + + 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..0b90a90 --- /dev/null +++ b/functions.html @@ -0,0 +1,161 @@ + + + + + + + +yarp-devices: Class Members + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- i -

+ + +

- m -

+ + +

- p -

+ + +

- s -

+ + +

- t -

+
+ + + + diff --git a/functions_func.html b/functions_func.html new file mode 100644 index 0000000..1e26b01 --- /dev/null +++ b/functions_func.html @@ -0,0 +1,161 @@ + + + + + + + +yarp-devices: Class Members - Functions + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- i -

+ + +

- m -

+ + +

- p -

+ + +

- s -

+ + +

- t -

+
+ + + + diff --git a/group__YarpPlugins.html b/group__YarpPlugins.html new file mode 100644 index 0000000..cfc04e6 --- /dev/null +++ b/group__YarpPlugins.html @@ -0,0 +1,116 @@ + + + + + + + +yarp-devices: YarpPlugins + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ + +
+ +

Contains libraries that implement YARP device interfaces and therefore can be invoked as YARP plugins. +More...

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

+Classes

class  asrob::EcroPwmController
 EcroPwmController. More...
 
class  asrob::EcroWheelController
 EcroWheelController. More...
 
class  asrob::FakeMotorController
 FakeMotorController. More...
 
class  asrob::LaserTowerOfDeathController
 LaserTowerOfDeathController. More...
 
class  asrob::RaspiOnePwmMotorController
 RaspiOnePwmMotorController. More...
 
class  asrob::RaspiTwoPwmMotorController
 RaspiTwoPwmMotorController. More...
 
class  asrob::RobotClient
 RobotClient. More...
 
class  asrob::RobotServer
 RobotServer. More...
 
+

Detailed Description

+

Base class for Robot Managers. Original copy of this file at https://github.com/asrob-uc3m/yarp-devices/blob/develop/libraries/YarpPlugins/IRobotManager.hpp.

+
+ + + + diff --git a/group__yarp__devices__applications.html b/group__yarp__devices__applications.html new file mode 100644 index 0000000..e56f61f --- /dev/null +++ b/group__yarp__devices__applications.html @@ -0,0 +1,84 @@ + + + + + + + +yarp-devices: asrob-uc3m/yarp-devices Applications (Collections of Programs) + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
asrob-uc3m/yarp-devices Applications (Collections of Programs)
+
+
+ +

yarp-devices applications (collections of programs). +

+
+ + + + diff --git a/group__yarp__devices__examples.html b/group__yarp__devices__examples.html new file mode 100644 index 0000000..6af347d --- /dev/null +++ b/group__yarp__devices__examples.html @@ -0,0 +1,95 @@ + + + + + + + +yarp-devices: asrob-uc3m/yarp-devices Examples + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
asrob-uc3m/yarp-devices Examples
+
+
+ +

yarp-devices examples. +More...

+ + + + + + +

+Modules

 asrob-uc3m/yarp-devices C++ examples
 
 asrob-uc3m/yarp-devices Python examples
 
+

Detailed Description

+
+ + + + diff --git a/group__yarp__devices__examples__cpp.html b/group__yarp__devices__examples__cpp.html new file mode 100644 index 0000000..9d40f03 --- /dev/null +++ b/group__yarp__devices__examples__cpp.html @@ -0,0 +1,81 @@ + + + + + + + +yarp-devices: asrob-uc3m/yarp-devices C++ examples + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
asrob-uc3m/yarp-devices C++ examples
+
+
+
+ + + + diff --git a/group__yarp__devices__examples__py.html b/group__yarp__devices__examples__py.html new file mode 100644 index 0000000..e0ce715 --- /dev/null +++ b/group__yarp__devices__examples__py.html @@ -0,0 +1,81 @@ + + + + + + + +yarp-devices: asrob-uc3m/yarp-devices Python examples + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
asrob-uc3m/yarp-devices Python examples
+
+
+
+ + + + diff --git a/group__yarp__devices__firmware.html b/group__yarp__devices__firmware.html new file mode 100644 index 0000000..0f6aaf9 --- /dev/null +++ b/group__yarp__devices__firmware.html @@ -0,0 +1,84 @@ + + + + + + + +yarp-devices: asrob-uc3m/yarp-devices Firmware + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
asrob-uc3m/yarp-devices Firmware
+
+
+ +

yarp-devices firmware. +

+
+ + + + diff --git a/group__yarp__devices__libraries.html b/group__yarp__devices__libraries.html new file mode 100644 index 0000000..db32d37 --- /dev/null +++ b/group__yarp__devices__libraries.html @@ -0,0 +1,94 @@ + + + + + + + +yarp-devices: asrob-uc3m/yarp-devices Libraries + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
asrob-uc3m/yarp-devices Libraries
+
+
+ +

yarp-devices libraries. +More...

+ + + + + +

+Modules

 YarpPlugins
 Contains libraries that implement YARP device interfaces and therefore can be invoked as YARP plugins.
 
+

Detailed Description

+
+ + + + diff --git a/group__yarp__devices__programs.html b/group__yarp__devices__programs.html new file mode 100644 index 0000000..0f25018 --- /dev/null +++ b/group__yarp__devices__programs.html @@ -0,0 +1,84 @@ + + + + + + + +yarp-devices: asrob-uc3m/yarp-devices Programs + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
asrob-uc3m/yarp-devices Programs
+
+
+ +

yarp-devices programs. +

+
+ + + + diff --git a/group__yarp__devices__tests.html b/group__yarp__devices__tests.html new file mode 100644 index 0000000..87452ef --- /dev/null +++ b/group__yarp__devices__tests.html @@ -0,0 +1,84 @@ + + + + + + + +yarp-devices: asrob-uc3m/yarp-devices Tests + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
asrob-uc3m/yarp-devices Tests
+
+
+ +

yarp-devices tests. +

+
+ + + + diff --git a/hierarchy.html b/hierarchy.html new file mode 100644 index 0000000..a680062 --- /dev/null +++ b/hierarchy.html @@ -0,0 +1,108 @@ + + + + + + + +yarp-devices: Class Hierarchy + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
Class Hierarchy
+
+ + + + + diff --git a/index.html b/index.html new file mode 100644 index 0000000..7b2d0ef --- /dev/null +++ b/index.html @@ -0,0 +1,114 @@ + + + + + + + +yarp-devices: Main Page + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
yarp-devices Documentation
+
+
+

Yarp-devices Homepage Latest Release

+

A place for YARP devices.

+

Link to Doxygen generated documentation: https://asrob.uc3m.es/yarp-devices

+

+Installation

+

Installation instructions for installing from source can be found here.

+

+Usage

+

Usage instructions for the different devices contained in this repository can be found here.

+

+Contributing

+

+Posting Issues

+
    +
  1. Read CONTRIBUTING.md
  2. +
  3. Post an issue / Feature request / Specific documentation request
  4. +
+

+Fork & Pull Request

+
    +
  1. Fork the repository
  2. +
  3. Create your feature branch (git checkout -b my-new-feature) off the master branch, following the Forking Git workflow
  4. +
  5. Commit your changes
  6. +
  7. Push to the branch (git push origin my-new-feature)
  8. +
  9. Create a new Pull Request
  10. +
+

+Status

+

Build Status (Linux)

+

Build Status (Windows)

+

Coverage Status

+

Issues

+
+
+ + + + 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/mailbox_8h_source.html b/mailbox_8h_source.html new file mode 100644 index 0000000..a991ca5 --- /dev/null +++ b/mailbox_8h_source.html @@ -0,0 +1,132 @@ + + + + + + + +yarp-devices: libraries/YarpPlugins/RaspiOnePwmMotorController/mailbox.h Source File + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
mailbox.h
+
+
+
1 /*
+
2 Copyright (c) 2012, Broadcom Europe Ltd.
+
3 All rights reserved.
+
4 
+
5 Redistribution and use in source and binary forms, with or without
+
6 modification, are permitted provided that the following conditions are met:
+
7  * Redistributions of source code must retain the above copyright
+
8  notice, this list of conditions and the following disclaimer.
+
9  * Redistributions in binary form must reproduce the above copyright
+
10  notice, this list of conditions and the following disclaimer in the
+
11  documentation and/or other materials provided with the distribution.
+
12  * Neither the name of the copyright holder nor the
+
13  names of its contributors may be used to endorse or promote products
+
14  derived from this software without specific prior written permission.
+
15 
+
16 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
17 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+
18 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+
19 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
+
20 DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+
21 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+
22 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+
23 ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+
24 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+
25 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
26 */
+
27 
+
28 #include <linux/ioctl.h>
+
29 
+
30 #define MAJOR_NUM 100
+
31 #define IOCTL_MBOX_PROPERTY _IOWR(MAJOR_NUM, 0, char *)
+
32 #define DEVICE_FILE_NAME "/dev/vcio"
+
33 
+
34 int mbox_open(void);
+
35 void mbox_close(int file_desc);
+
36 
+
37 unsigned get_version(int file_desc);
+
38 unsigned mem_alloc(int file_desc, unsigned size, unsigned align, unsigned flags);
+
39 unsigned mem_free(int file_desc, unsigned handle);
+
40 unsigned mem_lock(int file_desc, unsigned handle);
+
41 unsigned mem_unlock(int file_desc, unsigned handle);
+
42 void *mapmem(unsigned base, unsigned size);
+
43 void *unmapmem(void *addr, unsigned size);
+
44 
+
45 unsigned execute_code(int file_desc, unsigned code, unsigned r0, unsigned r1, unsigned r2, unsigned r3, unsigned r4, unsigned r5);
+
46 unsigned execute_qpu(int file_desc, unsigned num_qpus, unsigned control, unsigned noflush, unsigned timeout);
+
47 unsigned qpu_enable(int file_desc, unsigned enable);
+
+ + + + diff --git a/md_doc_yarp_devices_install.html b/md_doc_yarp_devices_install.html new file mode 100644 index 0000000..3ae2e4e --- /dev/null +++ b/md_doc_yarp_devices_install.html @@ -0,0 +1,124 @@ + + + + + + + +yarp-devices: Installation from Source Code + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
Installation from Source Code
+
+
+

This repository stores different YARP devices for different actual devices used in different robots. This huge variability in hardware sometimes makes it complicated to track the dependencies for each device you may want to compile and install.

+

This guide aims to simplify as much as possible the process of finding out which are the dependencies you actually need to install for the devices you want to use.

+

+Common dependencies (Ubuntu)

+

Some dependencies must be installed for all the devices:

+ +

+Installation (Ubuntu)

+

Once the required dependencies have been installed, the code has to be compiled and installed. Note that you will be prompted for your password upon using sudo a couple of times:

+
cd # go home
+
mkdir -p repos && cd repos # make $HOME/repos if it doesn't exist; then, enter it
+
# WiringPi ( http://wiringpi.com/download-and-install/ ) for several RasPi devices
+
git clone https://github.com/asrob-uc3m/wiringPi # Mirror of defunct git://git.drogon.net/wiringPi
+
cd wiringPi
+
./build # May require sudo
+
# Now our repo
+
git clone https://github.com/asrob-uc3m/yarp-devices.git # Download yarp-devices software from the repository
+
mkdir -p yarp-devices/build && cd yarp-devices/build && cmake .. # Configure the yarp-devices software
+
make -j$(nproc) # Compile
+
sudo make install # Install :-)
+
sudo ldconfig
+

Remember to enable the devices you want to compile using ccmake instead of cmake.

+

+Install Bindings

+

+Install Python bindings

+

Swig is needed in order to build the python bindings. It is normally installed with

sudo apt update
+
sudo apt install swig
+
sudo apt install libpython-dev # not installed by default on clean distros
+

Note: If you are on Ubuntu Trusty (14.04), you have to install swig3.0 instead of swig

sudo apt install swig3.0
+

Make sure you have installed previously YARP and yarp-devices.

cd # go home
+
cd repos/yarp-devices/bindings
+
mkdir build && cd build && cmake .. -DCREATE_PYTHON=ON # Configure the yarp-devices software
+
make -j$(nproc) # compile
+
sudo make install; sudo ldconfig; cd # install and go home
+

+Install MATLAB bindings

+

The classical way is via Java bindings, which is similar to Python, then setting the classpath.txt and librarypath.txt files contained within MATLAB. Ref: http://wiki.icub.org/wiki/Calling_yarp_from_Matlab

+
+
+ + + + diff --git a/md_examples_python_simple_README.html b/md_examples_python_simple_README.html new file mode 100644 index 0000000..f0db771 --- /dev/null +++ b/md_examples_python_simple_README.html @@ -0,0 +1,83 @@ + + + + + + + +yarp-devices: README + + + + + + + + + + + +
+
+ + + + + + +
+
yarp-devices +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
README
+
+
+

A simple example that does not expose any YARP intrinsec.

+
+
+ + + + diff --git a/menu.js b/menu.js new file mode 100644 index 0000000..2fe2214 --- /dev/null +++ b/menu.js @@ -0,0 +1,51 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @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..d994f32 --- /dev/null +++ b/menudata.js @@ -0,0 +1,49 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @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:"Related Pages",url:"pages.html"}, +{text:"Modules",url:"modules.html"}, +{text:"Namespaces",url:"namespaces.html",children:[ +{text:"Namespace List",url:"namespaces.html"}]}, +{text:"Classes",url:"annotated.html",children:[ +{text:"Class List",url:"annotated.html"}, +{text:"Class Index",url:"classes.html"}, +{text:"Class Hierarchy",url:"hierarchy.html"}, +{text:"Class Members",url:"functions.html",children:[ +{text:"All",url:"functions.html",children:[ +{text:"i",url:"functions.html#index_i"}, +{text:"m",url:"functions.html#index_m"}, +{text:"p",url:"functions.html#index_p"}, +{text:"s",url:"functions.html#index_s"}, +{text:"t",url:"functions.html#index_t"}]}, +{text:"Functions",url:"functions_func.html",children:[ +{text:"i",url:"functions_func.html#index_i"}, +{text:"m",url:"functions_func.html#index_m"}, +{text:"p",url:"functions_func.html#index_p"}, +{text:"s",url:"functions_func.html#index_s"}, +{text:"t",url:"functions_func.html#index_t"}]}]}]}, +{text:"Files",url:"files.html",children:[ +{text:"File List",url:"files.html"}]}]} diff --git a/modules.html b/modules.html new file mode 100644 index 0000000..e9020e7 --- /dev/null +++ b/modules.html @@ -0,0 +1,94 @@ + + + + + + + +yarp-devices: Modules + + + + + + + + + + + +
    +
    + + + + + + +
    +
    yarp-devices +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    Modules
    +
    +
    +
    Here is a list of all modules:
    +
    [detail level 12]
    + + + + + + + + + +
     asrob-uc3m/yarp-devices LibrariesYarp-devices libraries
     YarpPluginsContains libraries that implement YARP device interfaces and therefore can be invoked as YARP plugins
     asrob-uc3m/yarp-devices FirmwareYarp-devices firmware
     asrob-uc3m/yarp-devices ProgramsYarp-devices programs
     asrob-uc3m/yarp-devices TestsYarp-devices tests
     asrob-uc3m/yarp-devices Applications (Collections of Programs)Yarp-devices applications (collections of programs)
     asrob-uc3m/yarp-devices ExamplesYarp-devices examples
     asrob-uc3m/yarp-devices C++ examples
     asrob-uc3m/yarp-devices Python examples
    +
    +
    + + + + diff --git a/namespaceasrob.html b/namespaceasrob.html new file mode 100644 index 0000000..10284fd --- /dev/null +++ b/namespaceasrob.html @@ -0,0 +1,116 @@ + + + + + + + +yarp-devices: asrob Namespace Reference + + + + + + + + + + + +
    +
    + + + + + + +
    +
    yarp-devices +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    asrob Namespace Reference
    +
    + + + + + diff --git a/namespaces.html b/namespaces.html new file mode 100644 index 0000000..439a55b --- /dev/null +++ b/namespaces.html @@ -0,0 +1,99 @@ + + + + + + + +yarp-devices: Namespace List + + + + + + + + + + + +
    +
    + + + + + + +
    +
    yarp-devices +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    Namespace List
    +
    +
    +
    Here is a list of all documented namespaces with brief descriptions:
    +
    + + + + 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@0HFXL1|%O$WD@{VPM$7~Ar*{o?;hlAFyLXmaDC0y znK1_#cQqJWPES%4Uujug^TE?jMft$}Eq^WaR~)%f)vSNs&gek&x%A9X9sM + + + + + + +yarp-devices: Related Pages + + + + + + + + + + + +
    +
    + + + + + + +
    +
    yarp-devices +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    Related Pages
    +
    +
    +
    Here is a list of all related documentation pages:
    +
    + + + + diff --git a/pwm_8h_source.html b/pwm_8h_source.html new file mode 100644 index 0000000..91cb5b6 --- /dev/null +++ b/pwm_8h_source.html @@ -0,0 +1,143 @@ + + + + + + + +yarp-devices: libraries/YarpPlugins/RaspiOnePwmMotorController/pwm.h Source File + + + + + + + + + + + +
    +
    + + + + + + +
    +
    yarp-devices +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    pwm.h
    +
    +
    +
    1 /*
    +
    2  * This file is part of RPIO.
    +
    3  *
    +
    4  * Copyright
    +
    5  *
    +
    6  * Copyright (C) 2013 Chris Hager <chris@linuxuser.at>
    +
    7  *
    +
    8  * License
    +
    9  *
    +
    10  * This program is free software: you can redistribute it and/or modify
    +
    11  * it under the terms of the GNU Lesser General Public License as published
    +
    12  * by the Free Software Foundation, either version 3 of the License, or
    +
    13  * (at your option) any later version.
    +
    14  *
    +
    15  * This program is distributed in the hope that it will be useful,
    +
    16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
    +
    17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    +
    18  * GNU Lesser General Public License for more details at
    +
    19  * <http://www.gnu.org/licenses/lgpl-3.0-standalone.html>
    +
    20  *
    +
    21  * Documentation
    +
    22  *
    +
    23  * http://pythonhosted.org/RPIO
    +
    24  */
    +
    25 int setup(int pw_incr_us, int hw);
    +
    26 void shutdown(void);
    +
    27 void set_loglevel(int level);
    +
    28 
    +
    29 int init_channel(int channel, int subcycle_time_us);
    +
    30 int clear_channel(int channel);
    +
    31 int clear_channel_gpio(int channel, int gpio);
    +
    32 int print_channel(int channel);
    +
    33 
    +
    34 int add_channel_pulse(int channel, int gpio, int width_start, int width);
    +
    35 char* get_error_message(void);
    +
    36 void set_softfatal(int enabled);
    +
    37 
    +
    38 int is_setup(void);
    +
    39 int is_channel_initialized(int channel);
    +
    40 int get_pulse_incr_us(void);
    +
    41 int get_channel_subcycle_time_us(int channel);
    +
    42 
    +
    43 #define DELAY_VIA_PWM 0
    +
    44 #define DELAY_VIA_PCM 1
    +
    45 
    +
    46 #define LOG_LEVEL_DEBUG 0
    +
    47 #define LOG_LEVEL_ERRORS 1
    +
    48 #define LOG_LEVEL_DEFAULT LOG_LEVEL_DEBUG
    +
    49 
    +
    50 // Default subcycle time
    +
    51 #define SUBCYCLE_TIME_US_DEFAULT 20000
    +
    52 
    +
    53 // Subcycle minimum. We kept seeing no signals and strange behavior of the RPi
    +
    54 #define SUBCYCLE_TIME_US_MIN 3000
    +
    55 
    +
    56 // Default pulse-width-increment-granularity
    +
    57 #define PULSE_WIDTH_INCREMENT_GRANULARITY_US_DEFAULT 10
    +
    Definition: pwm.c:203
    +
    + + + + diff --git a/search/all_0.html b/search/all_0.html new file mode 100644 index 0000000..1ec5b2d --- /dev/null +++ b/search/all_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_0.js b/search/all_0.js new file mode 100644 index 0000000..6da0839 --- /dev/null +++ b/search/all_0.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['asrob_0',['asrob',['../namespaceasrob.html',1,'']]], + ['asrob_2duc3m_2fyarp_2ddevices_20applications_20_28collections_20of_20programs_29_1',['asrob-uc3m/yarp-devices Applications (Collections of Programs)',['../group__yarp__devices__applications.html',1,'']]], + ['asrob_2duc3m_2fyarp_2ddevices_20c_2b_2b_20examples_2',['asrob-uc3m/yarp-devices C++ examples',['../group__yarp__devices__examples__cpp.html',1,'']]], + ['asrob_2duc3m_2fyarp_2ddevices_20examples_3',['asrob-uc3m/yarp-devices Examples',['../group__yarp__devices__examples.html',1,'']]], + ['asrob_2duc3m_2fyarp_2ddevices_20firmware_4',['asrob-uc3m/yarp-devices Firmware',['../group__yarp__devices__firmware.html',1,'']]], + ['asrob_2duc3m_2fyarp_2ddevices_20libraries_5',['asrob-uc3m/yarp-devices Libraries',['../group__yarp__devices__libraries.html',1,'']]], + ['asrob_2duc3m_2fyarp_2ddevices_20programs_6',['asrob-uc3m/yarp-devices Programs',['../group__yarp__devices__programs.html',1,'']]], + ['asrob_2duc3m_2fyarp_2ddevices_20python_20examples_7',['asrob-uc3m/yarp-devices Python examples',['../group__yarp__devices__examples__py.html',1,'']]], + ['asrob_2duc3m_2fyarp_2ddevices_20tests_8',['asrob-uc3m/yarp-devices Tests',['../group__yarp__devices__tests.html',1,'']]] +]; diff --git a/search/all_1.html b/search/all_1.html new file mode 100644 index 0000000..9f80e90 --- /dev/null +++ b/search/all_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_1.js b/search/all_1.js new file mode 100644 index 0000000..fb6398f --- /dev/null +++ b/search/all_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['channel_9',['channel',['../structchannel.html',1,'']]] +]; diff --git a/search/all_2.html b/search/all_2.html new file mode 100644 index 0000000..02cfffc --- /dev/null +++ b/search/all_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_2.js b/search/all_2.js new file mode 100644 index 0000000..2549c6a --- /dev/null +++ b/search/all_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['dma_5fcb_5ft_10',['dma_cb_t',['../structdma__cb__t.html',1,'']]] +]; diff --git a/search/all_3.html b/search/all_3.html new file mode 100644 index 0000000..39767b8 --- /dev/null +++ b/search/all_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_3.js b/search/all_3.js new file mode 100644 index 0000000..8544f06 --- /dev/null +++ b/search/all_3.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['ecropwmcontroller_11',['EcroPwmController',['../classasrob_1_1EcroPwmController.html',1,'asrob']]], + ['ecrowheelcontroller_12',['EcroWheelController',['../classasrob_1_1EcroWheelController.html',1,'asrob']]] +]; diff --git a/search/all_4.html b/search/all_4.html new file mode 100644 index 0000000..fc40463 --- /dev/null +++ b/search/all_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_4.js b/search/all_4.js new file mode 100644 index 0000000..4900aa3 --- /dev/null +++ b/search/all_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['fakemotorcontroller_13',['FakeMotorController',['../classasrob_1_1FakeMotorController.html',1,'asrob']]] +]; diff --git a/search/all_5.html b/search/all_5.html new file mode 100644 index 0000000..9dd9344 --- /dev/null +++ b/search/all_5.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_5.js b/search/all_5.js new file mode 100644 index 0000000..688492d --- /dev/null +++ b/search/all_5.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['indexwithinrange_14',['indexWithinRange',['../classasrob_1_1RaspiOnePwmMotorController.html#a567091291ebce9ef026da757e41ae0b9',1,'asrob::RaspiOnePwmMotorController::indexWithinRange()'],['../classasrob_1_1RaspiTwoPwmMotorController.html#abf60afc89d6600572ce385ef5f910168',1,'asrob::RaspiTwoPwmMotorController::indexWithinRange()']]], + ['installation_20from_20source_20code_15',['Installation from Source Code',['../md_doc_yarp_devices_install.html',1,'']]], + ['irobotmanager_16',['IRobotManager',['../classasrob_1_1IRobotManager.html',1,'asrob']]] +]; diff --git a/search/all_6.html b/search/all_6.html new file mode 100644 index 0000000..f1e516d --- /dev/null +++ b/search/all_6.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_6.js b/search/all_6.js new file mode 100644 index 0000000..b2a46eb --- /dev/null +++ b/search/all_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['lasertowerofdeathcontroller_17',['LaserTowerOfDeathController',['../classasrob_1_1LaserTowerOfDeathController.html',1,'asrob']]] +]; diff --git a/search/all_7.html b/search/all_7.html new file mode 100644 index 0000000..8ddbf6c --- /dev/null +++ b/search/all_7.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_7.js b/search/all_7.js new file mode 100644 index 0000000..a7b73d8 --- /dev/null +++ b/search/all_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['moveforward_18',['moveForward',['../classasrob_1_1EcroPwmController.html#a3d154c241ffce4d5711ef0a22bbc9ff8',1,'asrob::EcroPwmController::moveForward()'],['../classasrob_1_1EcroWheelController.html#ac6c6db4877533937ee5af126cbbda186',1,'asrob::EcroWheelController::moveForward()'],['../classasrob_1_1FakeMotorController.html#a334b54c84ad350dbaafbdd111537af94',1,'asrob::FakeMotorController::moveForward()'],['../classasrob_1_1IRobotManager.html#af3a063d79609fd5f4c860f9df353883a',1,'asrob::IRobotManager::moveForward()'],['../classasrob_1_1LaserTowerOfDeathController.html#a4ef67862e3754dbcd52c226084b63bba',1,'asrob::LaserTowerOfDeathController::moveForward()'],['../classasrob_1_1RaspiOnePwmMotorController.html#a66a41cfae99889d49f7f5fabccd9b509',1,'asrob::RaspiOnePwmMotorController::moveForward()'],['../classasrob_1_1RaspiTwoPwmMotorController.html#a1d7d462da404acc045dc7f097fc6a123',1,'asrob::RaspiTwoPwmMotorController::moveForward()'],['../classasrob_1_1RobotClient.html#aabea7ed1e0f2098d8745b2ce35fbfa4b',1,'asrob::RobotClient::moveForward()']]] +]; diff --git a/search/all_8.html b/search/all_8.html new file mode 100644 index 0000000..83c55ae --- /dev/null +++ b/search/all_8.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_8.js b/search/all_8.js new file mode 100644 index 0000000..09c76b8 --- /dev/null +++ b/search/all_8.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['panleft_19',['panLeft',['../classasrob_1_1EcroPwmController.html#a9e7f18941d63b71bd1efcf67a4762ef6',1,'asrob::EcroPwmController::panLeft()'],['../classasrob_1_1EcroWheelController.html#a1ab30f6826291af5702826c1646ad21e',1,'asrob::EcroWheelController::panLeft()'],['../classasrob_1_1FakeMotorController.html#a46d1c7a13e77e545bdcc4ae097d7d606',1,'asrob::FakeMotorController::panLeft()'],['../classasrob_1_1IRobotManager.html#a432733e1a7a4dc032ef130cede1ff3ee',1,'asrob::IRobotManager::panLeft()'],['../classasrob_1_1LaserTowerOfDeathController.html#ae82a8536502fc245611d532189310e2f',1,'asrob::LaserTowerOfDeathController::panLeft()'],['../classasrob_1_1RaspiOnePwmMotorController.html#afbd54acb351920e25edfc8d01c3e8dde',1,'asrob::RaspiOnePwmMotorController::panLeft()'],['../classasrob_1_1RaspiTwoPwmMotorController.html#a3aac9a1ad649bfe5e839a8ed22ea1a20',1,'asrob::RaspiTwoPwmMotorController::panLeft()'],['../classasrob_1_1RobotClient.html#a4c2d6ce6ef95da209fee0e9c1331175b',1,'asrob::RobotClient::panLeft()']]] +]; diff --git a/search/all_9.html b/search/all_9.html new file mode 100644 index 0000000..1e263c1 --- /dev/null +++ b/search/all_9.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_9.js b/search/all_9.js new file mode 100644 index 0000000..87b9758 --- /dev/null +++ b/search/all_9.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['raspionepwmmotorcontroller_20',['RaspiOnePwmMotorController',['../classasrob_1_1RaspiOnePwmMotorController.html',1,'asrob']]], + ['raspitwopwmmotorcontroller_21',['RaspiTwoPwmMotorController',['../classasrob_1_1RaspiTwoPwmMotorController.html',1,'asrob']]], + ['readme_22',['README',['../md_examples_python_simple_README.html',1,'']]], + ['robot_23',['Robot',['../classRobotPy_1_1Robot.html',1,'RobotPy']]], + ['robotclient_24',['RobotClient',['../classasrob_1_1RobotClient.html',1,'asrob']]], + ['robotserver_25',['RobotServer',['../classasrob_1_1RobotServer.html',1,'asrob']]] +]; diff --git a/search/all_a.html b/search/all_a.html new file mode 100644 index 0000000..3a6cac1 --- /dev/null +++ b/search/all_a.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_a.js b/search/all_a.js new file mode 100644 index 0000000..13c1998 --- /dev/null +++ b/search/all_a.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['stopcameramovement_26',['stopCameraMovement',['../classasrob_1_1EcroPwmController.html#abdac06d089d8a3c29521f8074018a44a',1,'asrob::EcroPwmController::stopCameraMovement()'],['../classasrob_1_1EcroWheelController.html#a7df3ab10b9fefcbbf3b6a3cfa277b329',1,'asrob::EcroWheelController::stopCameraMovement()'],['../classasrob_1_1FakeMotorController.html#a9d68881d1f2aef69a38b0bad3d9f9e27',1,'asrob::FakeMotorController::stopCameraMovement()'],['../classasrob_1_1IRobotManager.html#a6f108d93a14aee8fa81427c0f691f6f1',1,'asrob::IRobotManager::stopCameraMovement()'],['../classasrob_1_1LaserTowerOfDeathController.html#ac257c5dd41807ff6460efb7851781db1',1,'asrob::LaserTowerOfDeathController::stopCameraMovement()'],['../classasrob_1_1RaspiOnePwmMotorController.html#afa6ffcff35570501f3ed9981591532dd',1,'asrob::RaspiOnePwmMotorController::stopCameraMovement()'],['../classasrob_1_1RaspiTwoPwmMotorController.html#a09d54c8446a38cfdc767f91cd03451cd',1,'asrob::RaspiTwoPwmMotorController::stopCameraMovement()'],['../classasrob_1_1RobotClient.html#a5d7d92c010d1761478ae046060ff9bb1',1,'asrob::RobotClient::stopCameraMovement()']]], + ['stopmovement_27',['stopMovement',['../classasrob_1_1EcroPwmController.html#a4ccf4600f12c863625682fcbbeb588ec',1,'asrob::EcroPwmController::stopMovement()'],['../classasrob_1_1EcroWheelController.html#afc27e84a18b9336f02aed402eb439888',1,'asrob::EcroWheelController::stopMovement()'],['../classasrob_1_1FakeMotorController.html#aa6b224aa4812064fe9e0f8b926be3712',1,'asrob::FakeMotorController::stopMovement()'],['../classasrob_1_1IRobotManager.html#ac9de295b70c38311d1bd38e1d32e6dc6',1,'asrob::IRobotManager::stopMovement()'],['../classasrob_1_1LaserTowerOfDeathController.html#a92ab7c69d058ae73c098a7cef23810b0',1,'asrob::LaserTowerOfDeathController::stopMovement()'],['../classasrob_1_1RaspiOnePwmMotorController.html#adad2d7f576e35d21661ad15ace587569',1,'asrob::RaspiOnePwmMotorController::stopMovement()'],['../classasrob_1_1RaspiTwoPwmMotorController.html#a63e2d8c5becec2d8e79c1af26feb4df1',1,'asrob::RaspiTwoPwmMotorController::stopMovement()'],['../classasrob_1_1RobotClient.html#a502dd2ce43f1ce199c74b84b3ccd8242',1,'asrob::RobotClient::stopMovement()']]] +]; diff --git a/search/all_b.html b/search/all_b.html new file mode 100644 index 0000000..130deb4 --- /dev/null +++ b/search/all_b.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_b.js b/search/all_b.js new file mode 100644 index 0000000..8fa9bca --- /dev/null +++ b/search/all_b.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['tiltdown_28',['tiltDown',['../classasrob_1_1EcroPwmController.html#a3415e162098b1fd38099256c7fa33b1e',1,'asrob::EcroPwmController::tiltDown()'],['../classasrob_1_1EcroWheelController.html#a220e1510a445e9e8f72a7cded2414dad',1,'asrob::EcroWheelController::tiltDown()'],['../classasrob_1_1FakeMotorController.html#a090a499d7bf0e80a64b82905c50d27a9',1,'asrob::FakeMotorController::tiltDown()'],['../classasrob_1_1IRobotManager.html#ad9b0bfc65b7d27fb89a8a63e2d8b850b',1,'asrob::IRobotManager::tiltDown()'],['../classasrob_1_1LaserTowerOfDeathController.html#acee68431fca84c804cae20dc0993bded',1,'asrob::LaserTowerOfDeathController::tiltDown()'],['../classasrob_1_1RaspiOnePwmMotorController.html#a8f224e9fa287abf88b309b11d96fa2e3',1,'asrob::RaspiOnePwmMotorController::tiltDown()'],['../classasrob_1_1RaspiTwoPwmMotorController.html#a7c40ca67d1a5c98fdd77a010274291f6',1,'asrob::RaspiTwoPwmMotorController::tiltDown()'],['../classasrob_1_1RobotClient.html#a11f930f5a38c0c96c3f7b18c03a2fcd8',1,'asrob::RobotClient::tiltDown()']]], + ['turnleft_29',['turnLeft',['../classasrob_1_1EcroPwmController.html#ac22eadf6bb1e58369c8019e4a017cb80',1,'asrob::EcroPwmController::turnLeft()'],['../classasrob_1_1EcroWheelController.html#aee5a2f24e3d434c8797bc03566f34def',1,'asrob::EcroWheelController::turnLeft()'],['../classasrob_1_1FakeMotorController.html#abead98307a4552d8c4acb25ca9ae29c0',1,'asrob::FakeMotorController::turnLeft()'],['../classasrob_1_1IRobotManager.html#ae06ed567aa7c6119e6e45fdc2988795e',1,'asrob::IRobotManager::turnLeft()'],['../classasrob_1_1LaserTowerOfDeathController.html#a3c0b156760f289fe40e2120fde371d47',1,'asrob::LaserTowerOfDeathController::turnLeft()'],['../classasrob_1_1RaspiOnePwmMotorController.html#a2e38c2d8d33535290f3dc7412b93458b',1,'asrob::RaspiOnePwmMotorController::turnLeft()'],['../classasrob_1_1RaspiTwoPwmMotorController.html#ae2f2aa6ef18388c9a2db2307e39667e5',1,'asrob::RaspiTwoPwmMotorController::turnLeft()'],['../classasrob_1_1RobotClient.html#ac190f5666d92c54047a9e7989395b28b',1,'asrob::RobotClient::turnLeft()']]] +]; diff --git a/search/all_c.html b/search/all_c.html new file mode 100644 index 0000000..3dd5af0 --- /dev/null +++ b/search/all_c.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_c.js b/search/all_c.js new file mode 100644 index 0000000..3752ea2 --- /dev/null +++ b/search/all_c.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['yarpplugins_30',['YarpPlugins',['../group__YarpPlugins.html',1,'']]] +]; diff --git a/search/classes_0.html b/search/classes_0.html new file mode 100644 index 0000000..af8159e --- /dev/null +++ b/search/classes_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/classes_0.js b/search/classes_0.js new file mode 100644 index 0000000..1be24aa --- /dev/null +++ b/search/classes_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['channel_31',['channel',['../structchannel.html',1,'']]] +]; diff --git a/search/classes_1.html b/search/classes_1.html new file mode 100644 index 0000000..576e916 --- /dev/null +++ b/search/classes_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/classes_1.js b/search/classes_1.js new file mode 100644 index 0000000..0cfe73f --- /dev/null +++ b/search/classes_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['dma_5fcb_5ft_32',['dma_cb_t',['../structdma__cb__t.html',1,'']]] +]; diff --git a/search/classes_2.html b/search/classes_2.html new file mode 100644 index 0000000..956405e --- /dev/null +++ b/search/classes_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/classes_2.js b/search/classes_2.js new file mode 100644 index 0000000..a72adff --- /dev/null +++ b/search/classes_2.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['ecropwmcontroller_33',['EcroPwmController',['../classasrob_1_1EcroPwmController.html',1,'asrob']]], + ['ecrowheelcontroller_34',['EcroWheelController',['../classasrob_1_1EcroWheelController.html',1,'asrob']]] +]; diff --git a/search/classes_3.html b/search/classes_3.html new file mode 100644 index 0000000..d33343b --- /dev/null +++ b/search/classes_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/classes_3.js b/search/classes_3.js new file mode 100644 index 0000000..d414664 --- /dev/null +++ b/search/classes_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['fakemotorcontroller_35',['FakeMotorController',['../classasrob_1_1FakeMotorController.html',1,'asrob']]] +]; diff --git a/search/classes_4.html b/search/classes_4.html new file mode 100644 index 0000000..8430b07 --- /dev/null +++ b/search/classes_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/classes_4.js b/search/classes_4.js new file mode 100644 index 0000000..a434503 --- /dev/null +++ b/search/classes_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['irobotmanager_36',['IRobotManager',['../classasrob_1_1IRobotManager.html',1,'asrob']]] +]; diff --git a/search/classes_5.html b/search/classes_5.html new file mode 100644 index 0000000..c2f1b76 --- /dev/null +++ b/search/classes_5.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/classes_5.js b/search/classes_5.js new file mode 100644 index 0000000..1f469f9 --- /dev/null +++ b/search/classes_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['lasertowerofdeathcontroller_37',['LaserTowerOfDeathController',['../classasrob_1_1LaserTowerOfDeathController.html',1,'asrob']]] +]; diff --git a/search/classes_6.html b/search/classes_6.html new file mode 100644 index 0000000..e39847c --- /dev/null +++ b/search/classes_6.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/classes_6.js b/search/classes_6.js new file mode 100644 index 0000000..32aa5b1 --- /dev/null +++ b/search/classes_6.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['raspionepwmmotorcontroller_38',['RaspiOnePwmMotorController',['../classasrob_1_1RaspiOnePwmMotorController.html',1,'asrob']]], + ['raspitwopwmmotorcontroller_39',['RaspiTwoPwmMotorController',['../classasrob_1_1RaspiTwoPwmMotorController.html',1,'asrob']]], + ['robot_40',['Robot',['../classRobotPy_1_1Robot.html',1,'RobotPy']]], + ['robotclient_41',['RobotClient',['../classasrob_1_1RobotClient.html',1,'asrob']]], + ['robotserver_42',['RobotServer',['../classasrob_1_1RobotServer.html',1,'asrob']]] +]; diff --git a/search/close.svg b/search/close.svg new file mode 100644 index 0000000..a933eea --- /dev/null +++ b/search/close.svg @@ -0,0 +1,31 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/search/functions_0.html b/search/functions_0.html new file mode 100644 index 0000000..eb4c501 --- /dev/null +++ b/search/functions_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_0.js b/search/functions_0.js new file mode 100644 index 0000000..8e5ef62 --- /dev/null +++ b/search/functions_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['indexwithinrange_44',['indexWithinRange',['../classasrob_1_1RaspiOnePwmMotorController.html#a567091291ebce9ef026da757e41ae0b9',1,'asrob::RaspiOnePwmMotorController::indexWithinRange()'],['../classasrob_1_1RaspiTwoPwmMotorController.html#abf60afc89d6600572ce385ef5f910168',1,'asrob::RaspiTwoPwmMotorController::indexWithinRange()']]] +]; diff --git a/search/functions_1.html b/search/functions_1.html new file mode 100644 index 0000000..ef4088b --- /dev/null +++ b/search/functions_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_1.js b/search/functions_1.js new file mode 100644 index 0000000..177ae25 --- /dev/null +++ b/search/functions_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['moveforward_45',['moveForward',['../classasrob_1_1EcroPwmController.html#a3d154c241ffce4d5711ef0a22bbc9ff8',1,'asrob::EcroPwmController::moveForward()'],['../classasrob_1_1EcroWheelController.html#ac6c6db4877533937ee5af126cbbda186',1,'asrob::EcroWheelController::moveForward()'],['../classasrob_1_1FakeMotorController.html#a334b54c84ad350dbaafbdd111537af94',1,'asrob::FakeMotorController::moveForward()'],['../classasrob_1_1IRobotManager.html#af3a063d79609fd5f4c860f9df353883a',1,'asrob::IRobotManager::moveForward()'],['../classasrob_1_1LaserTowerOfDeathController.html#a4ef67862e3754dbcd52c226084b63bba',1,'asrob::LaserTowerOfDeathController::moveForward()'],['../classasrob_1_1RaspiOnePwmMotorController.html#a66a41cfae99889d49f7f5fabccd9b509',1,'asrob::RaspiOnePwmMotorController::moveForward()'],['../classasrob_1_1RaspiTwoPwmMotorController.html#a1d7d462da404acc045dc7f097fc6a123',1,'asrob::RaspiTwoPwmMotorController::moveForward()'],['../classasrob_1_1RobotClient.html#aabea7ed1e0f2098d8745b2ce35fbfa4b',1,'asrob::RobotClient::moveForward()']]] +]; diff --git a/search/functions_2.html b/search/functions_2.html new file mode 100644 index 0000000..ca5aa10 --- /dev/null +++ b/search/functions_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_2.js b/search/functions_2.js new file mode 100644 index 0000000..5dd63ff --- /dev/null +++ b/search/functions_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['panleft_46',['panLeft',['../classasrob_1_1EcroPwmController.html#a9e7f18941d63b71bd1efcf67a4762ef6',1,'asrob::EcroPwmController::panLeft()'],['../classasrob_1_1EcroWheelController.html#a1ab30f6826291af5702826c1646ad21e',1,'asrob::EcroWheelController::panLeft()'],['../classasrob_1_1FakeMotorController.html#a46d1c7a13e77e545bdcc4ae097d7d606',1,'asrob::FakeMotorController::panLeft()'],['../classasrob_1_1IRobotManager.html#a432733e1a7a4dc032ef130cede1ff3ee',1,'asrob::IRobotManager::panLeft()'],['../classasrob_1_1LaserTowerOfDeathController.html#ae82a8536502fc245611d532189310e2f',1,'asrob::LaserTowerOfDeathController::panLeft()'],['../classasrob_1_1RaspiOnePwmMotorController.html#afbd54acb351920e25edfc8d01c3e8dde',1,'asrob::RaspiOnePwmMotorController::panLeft()'],['../classasrob_1_1RaspiTwoPwmMotorController.html#a3aac9a1ad649bfe5e839a8ed22ea1a20',1,'asrob::RaspiTwoPwmMotorController::panLeft()'],['../classasrob_1_1RobotClient.html#a4c2d6ce6ef95da209fee0e9c1331175b',1,'asrob::RobotClient::panLeft()']]] +]; diff --git a/search/functions_3.html b/search/functions_3.html new file mode 100644 index 0000000..d79f55b --- /dev/null +++ b/search/functions_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_3.js b/search/functions_3.js new file mode 100644 index 0000000..84322b3 --- /dev/null +++ b/search/functions_3.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['stopcameramovement_47',['stopCameraMovement',['../classasrob_1_1EcroPwmController.html#abdac06d089d8a3c29521f8074018a44a',1,'asrob::EcroPwmController::stopCameraMovement()'],['../classasrob_1_1EcroWheelController.html#a7df3ab10b9fefcbbf3b6a3cfa277b329',1,'asrob::EcroWheelController::stopCameraMovement()'],['../classasrob_1_1FakeMotorController.html#a9d68881d1f2aef69a38b0bad3d9f9e27',1,'asrob::FakeMotorController::stopCameraMovement()'],['../classasrob_1_1IRobotManager.html#a6f108d93a14aee8fa81427c0f691f6f1',1,'asrob::IRobotManager::stopCameraMovement()'],['../classasrob_1_1LaserTowerOfDeathController.html#ac257c5dd41807ff6460efb7851781db1',1,'asrob::LaserTowerOfDeathController::stopCameraMovement()'],['../classasrob_1_1RaspiOnePwmMotorController.html#afa6ffcff35570501f3ed9981591532dd',1,'asrob::RaspiOnePwmMotorController::stopCameraMovement()'],['../classasrob_1_1RaspiTwoPwmMotorController.html#a09d54c8446a38cfdc767f91cd03451cd',1,'asrob::RaspiTwoPwmMotorController::stopCameraMovement()'],['../classasrob_1_1RobotClient.html#a5d7d92c010d1761478ae046060ff9bb1',1,'asrob::RobotClient::stopCameraMovement()']]], + ['stopmovement_48',['stopMovement',['../classasrob_1_1EcroPwmController.html#a4ccf4600f12c863625682fcbbeb588ec',1,'asrob::EcroPwmController::stopMovement()'],['../classasrob_1_1EcroWheelController.html#afc27e84a18b9336f02aed402eb439888',1,'asrob::EcroWheelController::stopMovement()'],['../classasrob_1_1FakeMotorController.html#aa6b224aa4812064fe9e0f8b926be3712',1,'asrob::FakeMotorController::stopMovement()'],['../classasrob_1_1IRobotManager.html#ac9de295b70c38311d1bd38e1d32e6dc6',1,'asrob::IRobotManager::stopMovement()'],['../classasrob_1_1LaserTowerOfDeathController.html#a92ab7c69d058ae73c098a7cef23810b0',1,'asrob::LaserTowerOfDeathController::stopMovement()'],['../classasrob_1_1RaspiOnePwmMotorController.html#adad2d7f576e35d21661ad15ace587569',1,'asrob::RaspiOnePwmMotorController::stopMovement()'],['../classasrob_1_1RaspiTwoPwmMotorController.html#a63e2d8c5becec2d8e79c1af26feb4df1',1,'asrob::RaspiTwoPwmMotorController::stopMovement()'],['../classasrob_1_1RobotClient.html#a502dd2ce43f1ce199c74b84b3ccd8242',1,'asrob::RobotClient::stopMovement()']]] +]; diff --git a/search/functions_4.html b/search/functions_4.html new file mode 100644 index 0000000..1657cad --- /dev/null +++ b/search/functions_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_4.js b/search/functions_4.js new file mode 100644 index 0000000..3620ea1 --- /dev/null +++ b/search/functions_4.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['tiltdown_49',['tiltDown',['../classasrob_1_1EcroPwmController.html#a3415e162098b1fd38099256c7fa33b1e',1,'asrob::EcroPwmController::tiltDown()'],['../classasrob_1_1EcroWheelController.html#a220e1510a445e9e8f72a7cded2414dad',1,'asrob::EcroWheelController::tiltDown()'],['../classasrob_1_1FakeMotorController.html#a090a499d7bf0e80a64b82905c50d27a9',1,'asrob::FakeMotorController::tiltDown()'],['../classasrob_1_1IRobotManager.html#ad9b0bfc65b7d27fb89a8a63e2d8b850b',1,'asrob::IRobotManager::tiltDown()'],['../classasrob_1_1LaserTowerOfDeathController.html#acee68431fca84c804cae20dc0993bded',1,'asrob::LaserTowerOfDeathController::tiltDown()'],['../classasrob_1_1RaspiOnePwmMotorController.html#a8f224e9fa287abf88b309b11d96fa2e3',1,'asrob::RaspiOnePwmMotorController::tiltDown()'],['../classasrob_1_1RaspiTwoPwmMotorController.html#a7c40ca67d1a5c98fdd77a010274291f6',1,'asrob::RaspiTwoPwmMotorController::tiltDown()'],['../classasrob_1_1RobotClient.html#a11f930f5a38c0c96c3f7b18c03a2fcd8',1,'asrob::RobotClient::tiltDown()']]], + ['turnleft_50',['turnLeft',['../classasrob_1_1EcroPwmController.html#ac22eadf6bb1e58369c8019e4a017cb80',1,'asrob::EcroPwmController::turnLeft()'],['../classasrob_1_1EcroWheelController.html#aee5a2f24e3d434c8797bc03566f34def',1,'asrob::EcroWheelController::turnLeft()'],['../classasrob_1_1FakeMotorController.html#abead98307a4552d8c4acb25ca9ae29c0',1,'asrob::FakeMotorController::turnLeft()'],['../classasrob_1_1IRobotManager.html#ae06ed567aa7c6119e6e45fdc2988795e',1,'asrob::IRobotManager::turnLeft()'],['../classasrob_1_1LaserTowerOfDeathController.html#a3c0b156760f289fe40e2120fde371d47',1,'asrob::LaserTowerOfDeathController::turnLeft()'],['../classasrob_1_1RaspiOnePwmMotorController.html#a2e38c2d8d33535290f3dc7412b93458b',1,'asrob::RaspiOnePwmMotorController::turnLeft()'],['../classasrob_1_1RaspiTwoPwmMotorController.html#ae2f2aa6ef18388c9a2db2307e39667e5',1,'asrob::RaspiTwoPwmMotorController::turnLeft()'],['../classasrob_1_1RobotClient.html#ac190f5666d92c54047a9e7989395b28b',1,'asrob::RobotClient::turnLeft()']]] +]; diff --git a/search/groups_0.html b/search/groups_0.html new file mode 100644 index 0000000..c600b49 --- /dev/null +++ b/search/groups_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/groups_0.js b/search/groups_0.js new file mode 100644 index 0000000..c1d4756 --- /dev/null +++ b/search/groups_0.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['asrob_2duc3m_2fyarp_2ddevices_20applications_20_28collections_20of_20programs_29_51',['asrob-uc3m/yarp-devices Applications (Collections of Programs)',['../group__yarp__devices__applications.html',1,'']]], + ['asrob_2duc3m_2fyarp_2ddevices_20c_2b_2b_20examples_52',['asrob-uc3m/yarp-devices C++ examples',['../group__yarp__devices__examples__cpp.html',1,'']]], + ['asrob_2duc3m_2fyarp_2ddevices_20examples_53',['asrob-uc3m/yarp-devices Examples',['../group__yarp__devices__examples.html',1,'']]], + ['asrob_2duc3m_2fyarp_2ddevices_20firmware_54',['asrob-uc3m/yarp-devices Firmware',['../group__yarp__devices__firmware.html',1,'']]], + ['asrob_2duc3m_2fyarp_2ddevices_20libraries_55',['asrob-uc3m/yarp-devices Libraries',['../group__yarp__devices__libraries.html',1,'']]], + ['asrob_2duc3m_2fyarp_2ddevices_20programs_56',['asrob-uc3m/yarp-devices Programs',['../group__yarp__devices__programs.html',1,'']]], + ['asrob_2duc3m_2fyarp_2ddevices_20python_20examples_57',['asrob-uc3m/yarp-devices Python examples',['../group__yarp__devices__examples__py.html',1,'']]], + ['asrob_2duc3m_2fyarp_2ddevices_20tests_58',['asrob-uc3m/yarp-devices Tests',['../group__yarp__devices__tests.html',1,'']]] +]; diff --git a/search/groups_1.html b/search/groups_1.html new file mode 100644 index 0000000..2eb3550 --- /dev/null +++ b/search/groups_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/groups_1.js b/search/groups_1.js new file mode 100644 index 0000000..cb966ac --- /dev/null +++ b/search/groups_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['yarpplugins_59',['YarpPlugins',['../group__YarpPlugins.html',1,'']]] +]; diff --git a/search/mag_sel.svg b/search/mag_sel.svg new file mode 100644 index 0000000..03626f6 --- /dev/null +++ b/search/mag_sel.svg @@ -0,0 +1,74 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/search/namespaces_0.html b/search/namespaces_0.html new file mode 100644 index 0000000..21db2c3 --- /dev/null +++ b/search/namespaces_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/namespaces_0.js b/search/namespaces_0.js new file mode 100644 index 0000000..18334b1 --- /dev/null +++ b/search/namespaces_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['asrob_43',['asrob',['../namespaceasrob.html',1,'']]] +]; diff --git a/search/nomatches.html b/search/nomatches.html new file mode 100644 index 0000000..2b9360b --- /dev/null +++ b/search/nomatches.html @@ -0,0 +1,13 @@ + + + + + + + + +
    +
    No Matches
    +
    + + diff --git a/search/pages_0.html b/search/pages_0.html new file mode 100644 index 0000000..8517b48 --- /dev/null +++ b/search/pages_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/pages_0.js b/search/pages_0.js new file mode 100644 index 0000000..ace737f --- /dev/null +++ b/search/pages_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['installation_20from_20source_20code_60',['Installation from Source Code',['../md_doc_yarp_devices_install.html',1,'']]] +]; diff --git a/search/pages_1.html b/search/pages_1.html new file mode 100644 index 0000000..a0fb679 --- /dev/null +++ b/search/pages_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/pages_1.js b/search/pages_1.js new file mode 100644 index 0000000..04d0352 --- /dev/null +++ b/search/pages_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['readme_61',['README',['../md_examples_python_simple_README.html',1,'']]] +]; diff --git a/search/search.css b/search/search.css new file mode 100644 index 0000000..9074198 --- /dev/null +++ b/search/search.css @@ -0,0 +1,257 @@ +/*---------------- Search Box */ + +#MSearchBox { + white-space : nowrap; + background: white; + border-radius: 0.65em; + box-shadow: inset 0.5px 0.5px 3px 0px #555; + z-index: 102; +} + +#MSearchBox .left { + display: inline-block; + vertical-align: middle; + height: 1.4em; +} + +#MSearchSelect { + display: inline-block; + vertical-align: middle; + height: 1.4em; + padding: 0 0 0 0.3em; + margin: 0; +} + +#MSearchField { + display: inline-block; + vertical-align: middle; + width: 7.5em; + height: 1.1em; + margin: 0 0.15em; + padding: 0; + line-height: 1em; + border:none; + color: #909090; + outline: none; + font-family: Arial, Verdana, sans-serif; + -webkit-border-radius: 0px; + border-radius: 0px; + background: none; +} + + +#MSearchBox .right { + display: inline-block; + vertical-align: middle; + width: 1.4em; + height: 1.4em; +} + +#MSearchClose { + display: none; + font-size: inherit; + background : none; + border: none; + margin: 0; + padding: 0; + outline: none; + +} + +#MSearchCloseImg { + height: 1.4em; + padding: 0.3em; + margin: 0; +} + +.MSearchBoxActive #MSearchField { + color: #000000; +} + +#main-menu > li:last-child { + /* This
  • object is the parent of the search bar */ + display: flex; + justify-content: center; + align-items: center; + height: 36px; + margin-right: 1em; +} + +/*---------------- 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; + font-family: Arial, Verdana, sans-serif; +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; + font-family: Arial, Verdana, sans-serif; +} + +.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..fb226f7 --- /dev/null +++ b/search/search.js @@ -0,0 +1,816 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @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 + this.extension; + resultsPageWithSearch = resultsPage+'?'+escape(searchValue); + hasResultsPage = true; + } + else // nothing available for this search term + { + resultsPage = this.resultsPath + '/nomatches' + this.extension; + 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-block'; + 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.toLowerCase() == 'div' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName.toLowerCase() == '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..e142988 --- /dev/null +++ b/search/searchdata.js @@ -0,0 +1,30 @@ +var indexSectionsWithContent = +{ + 0: "acdefilmprsty", + 1: "cdefilr", + 2: "a", + 3: "impst", + 4: "ay", + 5: "ir" +}; + +var indexSectionNames = +{ + 0: "all", + 1: "classes", + 2: "namespaces", + 3: "functions", + 4: "groups", + 5: "pages" +}; + +var indexSectionLabels = +{ + 0: "All", + 1: "Classes", + 2: "Namespaces", + 3: "Functions", + 4: "Modules", + 5: "Pages" +}; + 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/structchannel-members.html b/structchannel-members.html new file mode 100644 index 0000000..5ec4fdb --- /dev/null +++ b/structchannel-members.html @@ -0,0 +1,95 @@ + + + + + + + +yarp-devices: Member List + + + + + + + + + + + +
    +
    + + + + + + +
    +
    yarp-devices +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    channel Member List
    +
    +
    + +

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

    + + + + + + + + + + + + +
    bus_addr (defined in channel)channel
    cb (defined in channel)channel
    dma_reg (defined in channel)channel
    mem_ref (defined in channel)channel
    num_cbs (defined in channel)channel
    num_pages (defined in channel)channel
    num_samples (defined in channel)channel
    sample (defined in channel)channel
    subcycle_time_us (defined in channel)channel
    virtbase (defined in channel)channel
    width_max (defined in channel)channel
    + + + + diff --git a/structchannel.html b/structchannel.html new file mode 100644 index 0000000..92005b1 --- /dev/null +++ b/structchannel.html @@ -0,0 +1,124 @@ + + + + + + + +yarp-devices: channel Struct Reference + + + + + + + + + + + +
    +
    + + + + + + +
    +
    yarp-devices +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    channel Struct Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +uint8_t * virtbase
     
    +uint32_t * sample
     
    +dma_cb_tcb
     
    +volatile uint32_t * dma_reg
     
    +unsigned mem_ref
     
    +unsigned bus_addr
     
    +uint32_t subcycle_time_us
     
    +uint32_t num_samples
     
    +uint32_t num_cbs
     
    +uint32_t num_pages
     
    +uint32_t width_max
     
    +
    The documentation for this struct was generated from the following file:
      +
    • libraries/YarpPlugins/RaspiOnePwmMotorController/pwm.c
    • +
    +
    + + + + diff --git a/structdma__cb__t-members.html b/structdma__cb__t-members.html new file mode 100644 index 0000000..04aa415 --- /dev/null +++ b/structdma__cb__t-members.html @@ -0,0 +1,91 @@ + + + + + + + +yarp-devices: Member List + + + + + + + + + + + +
    +
    + + + + + + +
    +
    yarp-devices +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    dma_cb_t Member List
    +
    +
    + +

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

    + + + + + + + + +
    dst (defined in dma_cb_t)dma_cb_t
    info (defined in dma_cb_t)dma_cb_t
    length (defined in dma_cb_t)dma_cb_t
    next (defined in dma_cb_t)dma_cb_t
    pad (defined in dma_cb_t)dma_cb_t
    src (defined in dma_cb_t)dma_cb_t
    stride (defined in dma_cb_t)dma_cb_t
    + + + + diff --git a/structdma__cb__t.html b/structdma__cb__t.html new file mode 100644 index 0000000..3300522 --- /dev/null +++ b/structdma__cb__t.html @@ -0,0 +1,112 @@ + + + + + + + +yarp-devices: dma_cb_t Struct Reference + + + + + + + + + + + +
    +
    + + + + + + +
    +
    yarp-devices +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    dma_cb_t Struct Reference
    +
    +
    + + + + + + + + + + + + + + + + +

    +Public Attributes

    +uint32_t info
     
    +uint32_t src
     
    +uint32_t dst
     
    +uint32_t length
     
    +uint32_t stride
     
    +uint32_t next
     
    +uint32_t pad [2]
     
    +
    The documentation for this struct was generated from the following file:
      +
    • libraries/YarpPlugins/RaspiOnePwmMotorController/pwm.c
    • +
    +
    + + + + 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}}