roby 0.8.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (644) hide show
  1. checksums.yaml +7 -0
  2. data/.deep-cover.rb +3 -0
  3. data/.gitattributes +1 -0
  4. data/.gitignore +24 -0
  5. data/.simplecov +10 -0
  6. data/.travis.yml +17 -0
  7. data/.yardopts +4 -0
  8. data/Gemfile +15 -0
  9. data/README.md +11 -0
  10. data/Rakefile +47 -177
  11. data/benchmark/{alloc_misc.rb → attic/alloc_misc.rb} +2 -2
  12. data/benchmark/{discovery_latency.rb → attic/discovery_latency.rb} +19 -19
  13. data/benchmark/{garbage_collection.rb → attic/garbage_collection.rb} +9 -9
  14. data/benchmark/{genom.rb → attic/genom.rb} +0 -0
  15. data/benchmark/attic/transactions.rb +62 -0
  16. data/benchmark/plan_basic_operations.rb +28 -0
  17. data/benchmark/relations/graph.rb +63 -0
  18. data/benchmark/ruby/identity.rb +18 -0
  19. data/benchmark/ruby/set_intersect_vs_hash_merge.rb +39 -0
  20. data/benchmark/ruby/yield_vs_block.rb +35 -0
  21. data/benchmark/run +5 -0
  22. data/benchmark/synthetic_plan_modifications_with_transactions.rb +79 -0
  23. data/benchmark/transactions.rb +99 -51
  24. data/bin/roby +38 -197
  25. data/bin/roby-display +14 -0
  26. data/bin/roby-log +3 -176
  27. data/doc/guide/{src → attic}/abstraction/achieve_with.page +1 -1
  28. data/doc/guide/{src → attic}/abstraction/forwarding.page +1 -1
  29. data/doc/guide/{src → attic}/abstraction/hierarchy.page +1 -1
  30. data/doc/guide/{src → attic}/abstraction/index.page +1 -1
  31. data/doc/guide/{src → attic}/abstraction/task_models.page +1 -1
  32. data/doc/guide/{overview.rdoc → attic/cycle/api_overview.rdoc} +6 -1
  33. data/doc/guide/{src → attic}/cycle/cycle-overview.png +0 -0
  34. data/doc/guide/{src → attic}/cycle/cycle-overview.svg +0 -0
  35. data/doc/guide/attic/cycle/error_handling.page +98 -0
  36. data/doc/guide/{src → attic}/cycle/error_instantaneous_repair.png +0 -0
  37. data/doc/guide/{src → attic}/cycle/error_instantaneous_repair.svg +0 -0
  38. data/doc/guide/{src/cycle/error_handling.page → attic/cycle/error_sources.page} +46 -89
  39. data/doc/guide/{src → attic}/cycle/garbage_collection.page +1 -1
  40. data/doc/guide/{src → attic}/cycle/index.page +1 -1
  41. data/doc/guide/{src → attic}/cycle/propagation.page +11 -1
  42. data/doc/guide/{src → attic}/cycle/propagation_diamond.png +0 -0
  43. data/doc/guide/{src → attic}/cycle/propagation_diamond.svg +0 -0
  44. data/doc/guide/attic/plans/building_plans.page +89 -0
  45. data/doc/guide/attic/plans/code.page +192 -0
  46. data/doc/guide/{src/basics → attic/plans}/events.page +3 -4
  47. data/doc/guide/attic/plans/index.page +7 -0
  48. data/doc/guide/{plan_modifications.rdoc → attic/plans/plan_modifications.rdoc} +5 -3
  49. data/doc/guide/{src/basics → attic/plans}/plan_objects.page +2 -1
  50. data/doc/guide/attic/plans/querying_plans.page +5 -0
  51. data/doc/guide/{src/basics → attic/plans}/tasks.page +20 -20
  52. data/doc/guide/config.yaml +7 -4
  53. data/doc/guide/ext/extended_menu.rb +29 -0
  54. data/doc/guide/ext/init.rb +6 -0
  55. data/doc/guide/ext/rdoc_links.rb +7 -6
  56. data/doc/guide/src/advanced_concepts/history.page +5 -0
  57. data/doc/guide/src/advanced_concepts/index.page +11 -0
  58. data/doc/guide/src/advanced_concepts/recognizing_patterns.page +83 -0
  59. data/doc/guide/src/advanced_concepts/scheduling.page +87 -0
  60. data/doc/guide/src/advanced_concepts/transactions.page +5 -0
  61. data/doc/guide/src/advanced_concepts/unreachability.page +42 -0
  62. data/doc/guide/src/base.template +96 -0
  63. data/doc/guide/src/basics_shell_header.txt +5 -7
  64. data/doc/guide/src/building/action_coordination.page +96 -0
  65. data/doc/guide/src/building/actions.page +124 -0
  66. data/doc/guide/src/building/file_layout.page +71 -0
  67. data/doc/guide/src/building/index.page +50 -0
  68. data/doc/guide/src/building/patterns.page +86 -0
  69. data/doc/guide/src/building/patterns_forwarding.png +0 -0
  70. data/doc/guide/src/building/patterns_forwarding.svg +277 -0
  71. data/doc/guide/src/building/runtime.page +95 -0
  72. data/doc/guide/src/building/task_models.page +94 -0
  73. data/doc/guide/src/building/tasks.page +284 -0
  74. data/doc/guide/src/concepts/error_handling.page +100 -0
  75. data/doc/guide/src/concepts/exception_propagation.png +0 -0
  76. data/doc/guide/src/concepts/exception_propagation.svg +445 -0
  77. data/doc/guide/src/concepts/execution.page +85 -0
  78. data/doc/guide/src/concepts/execution.png +0 -0
  79. data/doc/guide/src/concepts/execution.svg +573 -0
  80. data/doc/guide/src/concepts/execution_cycle.png +0 -0
  81. data/doc/guide/src/concepts/garbage_collection.page +57 -0
  82. data/doc/guide/src/concepts/index.page +27 -0
  83. data/doc/guide/src/concepts/plans.page +101 -0
  84. data/doc/guide/src/concepts/policy.page +31 -0
  85. data/doc/guide/src/concepts/reactor.page +61 -0
  86. data/doc/guide/src/concepts/simple_plan_example.png +0 -0
  87. data/doc/guide/src/concepts/simple_plan_example.svg +376 -0
  88. data/doc/guide/src/default.template +9 -74
  89. data/doc/guide/src/event_relations/forward.page +71 -0
  90. data/doc/guide/src/event_relations/index.page +12 -0
  91. data/doc/guide/src/event_relations/scheduling_constraints.page +43 -0
  92. data/doc/guide/src/event_relations/signal.page +55 -0
  93. data/doc/guide/src/event_relations/temporal_constraints.page +77 -0
  94. data/doc/guide/src/htmldoc.metainfo +21 -8
  95. data/doc/guide/src/index.page +8 -3
  96. data/doc/guide/src/{introduction/install.page → installation/index.page} +37 -25
  97. data/doc/guide/src/installation/publications.page +14 -0
  98. data/doc/guide/src/{introduction → installation}/videos.page +14 -7
  99. data/doc/guide/src/interacting/index.page +16 -0
  100. data/doc/guide/src/interacting/run.page +33 -0
  101. data/doc/guide/src/interacting/shell.page +95 -0
  102. data/doc/guide/src/plugins/creating_plugins.page +72 -0
  103. data/doc/guide/src/plugins/index.page +27 -5
  104. data/doc/guide/src/plugins/{fault_tolerance.page → standard_plugins/fault_tolerance.page} +2 -2
  105. data/doc/guide/src/plugins/standard_plugins/index.page +11 -0
  106. data/doc/guide/src/plugins/{subsystems.page → standard_plugins/subsystems.page} +2 -2
  107. data/doc/guide/src/style_screen.css +687 -0
  108. data/doc/guide/src/task_relations/dependency.page +107 -0
  109. data/doc/guide/src/task_relations/executed_by.page +77 -0
  110. data/doc/guide/src/task_relations/index.page +12 -0
  111. data/doc/guide/src/task_relations/new_relations.page +119 -0
  112. data/doc/guide/src/task_relations/planned_by.page +46 -0
  113. data/doc/guide/src/tutorial/app.page +117 -0
  114. data/doc/guide/src/{basics → tutorial}/code_examples.page +6 -5
  115. data/doc/guide/src/{basics → tutorial}/dry.page +15 -15
  116. data/doc/guide/src/{basics → tutorial}/errors.page +43 -68
  117. data/doc/guide/src/tutorial/events.page +195 -0
  118. data/doc/guide/src/{basics → tutorial}/hierarchy.page +53 -52
  119. data/doc/guide/src/tutorial/index.page +13 -0
  120. data/doc/guide/src/tutorial/log_replay/goForward_1.png +0 -0
  121. data/doc/guide/src/tutorial/log_replay/goForward_2.png +0 -0
  122. data/doc/guide/src/tutorial/log_replay/goForward_3.png +0 -0
  123. data/doc/guide/src/{basics → tutorial}/log_replay/goForward_4.png +0 -0
  124. data/doc/guide/src/tutorial/log_replay/goForward_5.png +0 -0
  125. data/doc/guide/src/{basics → tutorial}/log_replay/hierarchy_error_1.png +0 -0
  126. data/doc/guide/src/{basics → tutorial}/log_replay/hierarchy_error_2.png +0 -0
  127. data/doc/guide/src/{basics → tutorial}/log_replay/hierarchy_error_3.png +0 -0
  128. data/doc/guide/src/tutorial/log_replay/moveto_code_error.png +0 -0
  129. data/doc/guide/src/{basics → tutorial}/log_replay/plan_repair_1.png +0 -0
  130. data/doc/guide/src/{basics → tutorial}/log_replay/plan_repair_2.png +0 -0
  131. data/doc/guide/src/{basics → tutorial}/log_replay/plan_repair_3.png +0 -0
  132. data/doc/guide/src/tutorial/log_replay/plan_repair_4.png +0 -0
  133. data/doc/guide/src/tutorial/log_replay/roby_log_main_window.png +0 -0
  134. data/doc/guide/src/{basics → tutorial}/log_replay/roby_log_relation_window.png +0 -0
  135. data/doc/guide/src/{basics → tutorial}/log_replay/roby_replay_event_representation.png +0 -0
  136. data/doc/guide/src/tutorial/relations_display.page +153 -0
  137. data/doc/guide/src/{basics → tutorial}/roby_cycle_overview.png +0 -0
  138. data/doc/guide/src/tutorial/shell.page +121 -0
  139. data/doc/guide/src/{basics → tutorial}/summary.page +1 -1
  140. data/doc/guide/src/tutorial/tasks.page +374 -0
  141. data/lib/roby.rb +102 -47
  142. data/lib/roby/actions.rb +17 -0
  143. data/lib/roby/actions/action.rb +80 -0
  144. data/lib/roby/actions/interface.rb +45 -0
  145. data/lib/roby/actions/library.rb +23 -0
  146. data/lib/roby/actions/models/action.rb +224 -0
  147. data/lib/roby/actions/models/coordination_action.rb +58 -0
  148. data/lib/roby/actions/models/interface.rb +22 -0
  149. data/lib/roby/actions/models/interface_base.rb +294 -0
  150. data/lib/roby/actions/models/library.rb +12 -0
  151. data/lib/roby/actions/models/method_action.rb +90 -0
  152. data/lib/roby/actions/task.rb +114 -0
  153. data/lib/roby/and_generator.rb +125 -0
  154. data/lib/roby/app.rb +2795 -829
  155. data/lib/roby/app/autotest_console_reporter.rb +138 -0
  156. data/lib/roby/app/base.rb +21 -0
  157. data/lib/roby/app/cucumber.rb +2 -0
  158. data/lib/roby/app/cucumber/controller.rb +439 -0
  159. data/lib/roby/app/cucumber/helpers.rb +280 -0
  160. data/lib/roby/app/cucumber/world.rb +32 -0
  161. data/lib/roby/app/debug.rb +136 -0
  162. data/lib/roby/app/gen.rb +2 -0
  163. data/lib/roby/app/rake.rb +178 -38
  164. data/lib/roby/app/robot_config.rb +9 -0
  165. data/lib/roby/app/robot_names.rb +115 -0
  166. data/lib/roby/app/run.rb +3 -2
  167. data/lib/roby/app/scripts.rb +72 -0
  168. data/lib/roby/app/scripts/autotest.rb +173 -0
  169. data/lib/roby/app/scripts/display.rb +2 -0
  170. data/lib/roby/app/scripts/restart.rb +52 -0
  171. data/lib/roby/app/scripts/results.rb +17 -8
  172. data/lib/roby/app/scripts/run.rb +155 -24
  173. data/lib/roby/app/scripts/shell.rb +147 -62
  174. data/lib/roby/app/scripts/test.rb +107 -22
  175. data/lib/roby/app/test_reporter.rb +74 -0
  176. data/lib/roby/app/test_server.rb +159 -0
  177. data/lib/roby/app/vagrant.rb +47 -0
  178. data/lib/roby/backports.rb +16 -0
  179. data/lib/roby/cli/display.rb +190 -0
  180. data/lib/roby/cli/exceptions.rb +17 -0
  181. data/lib/roby/cli/gen/actions/class.rb +5 -0
  182. data/lib/roby/cli/gen/actions/test.rb +6 -0
  183. data/lib/roby/cli/gen/app/.yardopts +6 -0
  184. data/lib/roby/cli/gen/app/README.md +28 -0
  185. data/lib/roby/cli/gen/app/Rakefile +15 -0
  186. data/{app → lib/roby/cli/gen/app}/config/app.yml +29 -39
  187. data/lib/roby/cli/gen/app/models/.gitattributes +1 -0
  188. data/{app → lib/roby/cli/gen/app/scripts}/controllers/.gitattributes +0 -0
  189. data/{app/data/.gitattributes → lib/roby/cli/gen/app/test/.gitignore} +0 -0
  190. data/lib/roby/cli/gen/class/class.rb +6 -0
  191. data/lib/roby/cli/gen/class/test.rb +7 -0
  192. data/lib/roby/cli/gen/helpers.rb +203 -0
  193. data/lib/roby/cli/gen/module/module.rb +5 -0
  194. data/lib/roby/cli/gen/module/test.rb +6 -0
  195. data/lib/roby/cli/gen/roby_app/config/init.rb +17 -0
  196. data/lib/roby/cli/gen/roby_app/config/robots/robot.rb +40 -0
  197. data/lib/roby/cli/gen/task/class.rb +44 -0
  198. data/lib/roby/cli/gen/task/test.rb +6 -0
  199. data/lib/roby/cli/gen_main.rb +120 -0
  200. data/lib/roby/cli/log.rb +276 -0
  201. data/lib/roby/cli/log/flamegraph.html +499 -0
  202. data/lib/roby/cli/log/flamegraph_renderer.rb +88 -0
  203. data/lib/roby/cli/main.rb +153 -0
  204. data/lib/roby/coordination.rb +60 -0
  205. data/lib/roby/coordination/action_script.rb +25 -0
  206. data/lib/roby/coordination/action_state_machine.rb +125 -0
  207. data/lib/roby/coordination/actions.rb +106 -0
  208. data/lib/roby/coordination/base.rb +145 -0
  209. data/lib/roby/coordination/calculus.rb +40 -0
  210. data/lib/roby/coordination/child.rb +28 -0
  211. data/lib/roby/coordination/event.rb +29 -0
  212. data/lib/roby/coordination/fault_handler.rb +25 -0
  213. data/lib/roby/coordination/fault_handling_task.rb +13 -0
  214. data/lib/roby/coordination/fault_response_table.rb +110 -0
  215. data/lib/roby/coordination/models/action_script.rb +64 -0
  216. data/lib/roby/coordination/models/action_state_machine.rb +224 -0
  217. data/lib/roby/coordination/models/actions.rb +191 -0
  218. data/lib/roby/coordination/models/arguments.rb +55 -0
  219. data/lib/roby/coordination/models/base.rb +176 -0
  220. data/lib/roby/coordination/models/capture.rb +86 -0
  221. data/lib/roby/coordination/models/child.rb +35 -0
  222. data/lib/roby/coordination/models/event.rb +41 -0
  223. data/lib/roby/coordination/models/exceptions.rb +42 -0
  224. data/lib/roby/coordination/models/fault_handler.rb +219 -0
  225. data/lib/roby/coordination/models/fault_response_table.rb +77 -0
  226. data/lib/roby/coordination/models/root.rb +22 -0
  227. data/lib/roby/coordination/models/script.rb +283 -0
  228. data/lib/roby/coordination/models/task.rb +184 -0
  229. data/lib/roby/coordination/models/task_from_action.rb +50 -0
  230. data/lib/roby/coordination/models/task_from_as_plan.rb +33 -0
  231. data/lib/roby/coordination/models/task_from_instanciation_object.rb +31 -0
  232. data/lib/roby/coordination/models/task_from_variable.rb +27 -0
  233. data/lib/roby/coordination/models/task_with_dependencies.rb +48 -0
  234. data/lib/roby/coordination/models/variable.rb +32 -0
  235. data/lib/roby/coordination/script.rb +200 -0
  236. data/lib/roby/coordination/script_instruction.rb +12 -0
  237. data/lib/roby/coordination/task.rb +45 -0
  238. data/lib/roby/coordination/task_base.rb +69 -0
  239. data/lib/roby/coordination/task_script.rb +293 -0
  240. data/lib/roby/coordination/task_state_machine.rb +308 -0
  241. data/lib/roby/decision_control.rb +33 -21
  242. data/lib/roby/distributed_object.rb +76 -0
  243. data/lib/roby/droby.rb +17 -0
  244. data/lib/roby/droby/droby_id.rb +6 -0
  245. data/lib/roby/droby/enable.rb +153 -0
  246. data/lib/roby/droby/event_logger.rb +189 -0
  247. data/lib/roby/droby/event_logging.rb +57 -0
  248. data/lib/roby/droby/exceptions.rb +14 -0
  249. data/lib/roby/droby/identifiable.rb +22 -0
  250. data/lib/roby/droby/logfile.rb +141 -0
  251. data/lib/roby/droby/logfile/client.rb +176 -0
  252. data/lib/roby/droby/logfile/file_format.md +97 -0
  253. data/lib/roby/droby/logfile/index.rb +117 -0
  254. data/lib/roby/droby/logfile/reader.rb +139 -0
  255. data/lib/roby/droby/logfile/server.rb +199 -0
  256. data/lib/roby/droby/logfile/writer.rb +114 -0
  257. data/lib/roby/droby/marshal.rb +264 -0
  258. data/lib/roby/droby/marshallable.rb +12 -0
  259. data/lib/roby/droby/null_event_logger.rb +25 -0
  260. data/lib/roby/droby/object_manager.rb +205 -0
  261. data/lib/roby/droby/peer_id.rb +6 -0
  262. data/lib/roby/droby/plan_rebuilder.rb +373 -0
  263. data/lib/roby/droby/rebuilt_plan.rb +160 -0
  264. data/lib/roby/droby/remote_droby_id.rb +6 -0
  265. data/lib/roby/droby/timepoints.rb +205 -0
  266. data/lib/roby/droby/timepoints_ctf.metadata.erb +101 -0
  267. data/lib/roby/droby/timepoints_ctf.rb +125 -0
  268. data/lib/roby/droby/v5.rb +14 -0
  269. data/lib/roby/droby/v5/builtin.rb +120 -0
  270. data/lib/roby/droby/v5/droby_class.rb +45 -0
  271. data/lib/roby/droby/v5/droby_constant.rb +81 -0
  272. data/lib/roby/droby/v5/droby_dump.rb +1026 -0
  273. data/lib/roby/droby/v5/droby_id.rb +44 -0
  274. data/lib/roby/droby/v5/droby_model.rb +82 -0
  275. data/lib/roby/droby/v5/peer_id.rb +10 -0
  276. data/lib/roby/droby/v5/remote_droby_id.rb +42 -0
  277. data/lib/roby/event.rb +79 -957
  278. data/lib/roby/event_constraints.rb +835 -0
  279. data/lib/roby/event_generator.rb +1047 -0
  280. data/lib/roby/event_structure/causal_link.rb +6 -0
  281. data/lib/roby/event_structure/forwarding.rb +6 -0
  282. data/lib/roby/event_structure/precedence.rb +7 -0
  283. data/lib/roby/event_structure/signal.rb +8 -0
  284. data/lib/roby/event_structure/temporal_constraints.rb +640 -0
  285. data/lib/roby/exceptions.rb +446 -152
  286. data/lib/roby/executable_plan.rb +549 -0
  287. data/lib/roby/execution_engine.rb +1997 -950
  288. data/lib/roby/filter_generator.rb +26 -0
  289. data/lib/roby/gui/chronicle_view.rb +225 -0
  290. data/lib/roby/gui/chronicle_widget.rb +925 -0
  291. data/lib/roby/gui/dot_id.rb +11 -0
  292. data/lib/roby/gui/exception_view.rb +44 -0
  293. data/lib/roby/gui/log_display.rb +273 -0
  294. data/lib/roby/gui/model_views.rb +2 -0
  295. data/lib/roby/gui/model_views/action_interface.rb +53 -0
  296. data/lib/roby/gui/model_views/task.rb +47 -0
  297. data/lib/roby/gui/model_views/task.rhtml +41 -0
  298. data/lib/roby/gui/object_info_view.rb +89 -0
  299. data/lib/roby/gui/plan_dot_layout.rb +427 -0
  300. data/lib/roby/gui/plan_rebuilder_widget.rb +357 -0
  301. data/lib/roby/gui/qt4_toMSecsSinceEpoch.rb +8 -0
  302. data/lib/roby/gui/relations_view.rb +278 -0
  303. data/lib/roby/gui/relations_view/relations.ui +139 -0
  304. data/lib/roby/gui/relations_view/relations_canvas.rb +1088 -0
  305. data/lib/roby/gui/relations_view/relations_config.rb +292 -0
  306. data/lib/roby/gui/relations_view/relations_view.ui +53 -0
  307. data/lib/roby/gui/scheduler_view.css +24 -0
  308. data/lib/roby/gui/scheduler_view.rb +46 -0
  309. data/lib/roby/gui/scheduler_view.rhtml +53 -0
  310. data/lib/roby/gui/stepping.rb +93 -0
  311. data/lib/roby/gui/stepping.ui +181 -0
  312. data/lib/roby/gui/styles.rb +81 -0
  313. data/lib/roby/gui/task_display_configuration.rb +42 -0
  314. data/lib/roby/gui/task_state_at.rb +38 -0
  315. data/lib/roby/hooks.rb +26 -0
  316. data/lib/roby/interface.rb +136 -469
  317. data/lib/roby/interface/async.rb +20 -0
  318. data/lib/roby/interface/async/action_monitor.rb +188 -0
  319. data/lib/roby/interface/async/interface.rb +498 -0
  320. data/lib/roby/interface/async/job_monitor.rb +213 -0
  321. data/lib/roby/interface/async/log.rb +238 -0
  322. data/lib/roby/interface/async/new_job_listener.rb +79 -0
  323. data/lib/roby/interface/async/ui_connector.rb +183 -0
  324. data/lib/roby/interface/client.rb +553 -0
  325. data/lib/roby/interface/command.rb +24 -0
  326. data/lib/roby/interface/command_argument.rb +16 -0
  327. data/lib/roby/interface/command_library.rb +92 -0
  328. data/lib/roby/interface/droby_channel.rb +174 -0
  329. data/lib/roby/interface/exceptions.rb +22 -0
  330. data/lib/roby/interface/interface.rb +655 -0
  331. data/lib/roby/interface/job.rb +47 -0
  332. data/lib/roby/interface/rest.rb +10 -0
  333. data/lib/roby/interface/rest/api.rb +29 -0
  334. data/lib/roby/interface/rest/helpers.rb +24 -0
  335. data/lib/roby/interface/rest/server.rb +212 -0
  336. data/lib/roby/interface/server.rb +154 -0
  337. data/lib/roby/interface/shell_client.rb +468 -0
  338. data/lib/roby/interface/shell_subcommand.rb +24 -0
  339. data/lib/roby/interface/subcommand_client.rb +35 -0
  340. data/lib/roby/interface/tcp.rb +168 -0
  341. data/lib/roby/models/arguments.rb +112 -0
  342. data/lib/roby/models/plan_object.rb +83 -0
  343. data/lib/roby/models/task.rb +835 -0
  344. data/lib/roby/models/task_event.rb +62 -0
  345. data/lib/roby/models/task_service.rb +78 -0
  346. data/lib/roby/or_generator.rb +88 -0
  347. data/lib/roby/plan.rb +1751 -864
  348. data/lib/roby/plan_object.rb +611 -0
  349. data/lib/roby/plan_service.rb +200 -0
  350. data/lib/roby/promise.rb +332 -0
  351. data/lib/roby/queries.rb +23 -0
  352. data/lib/roby/queries/and_matcher.rb +32 -0
  353. data/lib/roby/queries/any.rb +27 -0
  354. data/lib/roby/queries/code_error_matcher.rb +58 -0
  355. data/lib/roby/queries/event_generator_matcher.rb +9 -0
  356. data/lib/roby/queries/execution_exception_matcher.rb +165 -0
  357. data/lib/roby/queries/index.rb +165 -0
  358. data/lib/roby/queries/localized_error_matcher.rb +149 -0
  359. data/lib/roby/queries/matcher_base.rb +107 -0
  360. data/lib/roby/queries/none.rb +27 -0
  361. data/lib/roby/queries/not_matcher.rb +30 -0
  362. data/lib/roby/queries/op_matcher.rb +8 -0
  363. data/lib/roby/queries/or_matcher.rb +30 -0
  364. data/lib/roby/queries/plan_object_matcher.rb +363 -0
  365. data/lib/roby/queries/query.rb +188 -0
  366. data/lib/roby/queries/task_event_generator_matcher.rb +86 -0
  367. data/lib/roby/queries/task_matcher.rb +344 -0
  368. data/lib/roby/relations.rb +42 -678
  369. data/lib/roby/relations/bidirectional_directed_adjacency_graph.rb +492 -0
  370. data/lib/roby/relations/directed_relation_support.rb +268 -0
  371. data/lib/roby/relations/event_relation_graph.rb +19 -0
  372. data/lib/roby/relations/fork_merge_visitor.rb +154 -0
  373. data/lib/roby/relations/graph.rb +533 -0
  374. data/lib/roby/relations/models/directed_relation_support.rb +11 -0
  375. data/lib/roby/relations/models/graph.rb +75 -0
  376. data/lib/roby/relations/models/task_relation_graph.rb +18 -0
  377. data/lib/roby/relations/space.rb +380 -0
  378. data/lib/roby/relations/task_relation_graph.rb +20 -0
  379. data/lib/roby/robot.rb +85 -38
  380. data/lib/roby/schedulers/basic.rb +155 -25
  381. data/lib/roby/schedulers/null.rb +20 -0
  382. data/lib/roby/schedulers/reporting.rb +31 -0
  383. data/lib/roby/schedulers/state.rb +129 -0
  384. data/lib/roby/schedulers/temporal.rb +91 -0
  385. data/lib/roby/singletons.rb +87 -0
  386. data/lib/roby/standalone.rb +4 -2
  387. data/lib/roby/standard_errors.rb +405 -82
  388. data/lib/roby/state.rb +6 -3
  389. data/lib/roby/state/conf_model.rb +5 -0
  390. data/lib/roby/state/events.rb +181 -95
  391. data/lib/roby/state/goal_model.rb +77 -0
  392. data/lib/roby/state/open_struct.rb +591 -0
  393. data/lib/roby/state/open_struct_model.rb +68 -0
  394. data/lib/roby/state/pos.rb +45 -45
  395. data/lib/roby/state/shapes.rb +11 -11
  396. data/lib/roby/state/state_model.rb +303 -0
  397. data/lib/roby/state/task.rb +43 -0
  398. data/lib/roby/support.rb +88 -148
  399. data/lib/roby/task.rb +1361 -1750
  400. data/lib/roby/task_arguments.rb +428 -0
  401. data/lib/roby/task_event.rb +127 -0
  402. data/lib/roby/task_event_generator.rb +337 -0
  403. data/lib/roby/task_service.rb +6 -0
  404. data/lib/roby/task_structure/conflicts.rb +104 -0
  405. data/lib/roby/task_structure/dependency.rb +932 -0
  406. data/lib/roby/task_structure/error_handling.rb +118 -0
  407. data/lib/roby/task_structure/executed_by.rb +234 -0
  408. data/lib/roby/task_structure/planned_by.rb +90 -0
  409. data/lib/roby/tasks/aggregator.rb +37 -0
  410. data/lib/roby/tasks/external_process.rb +275 -0
  411. data/lib/roby/tasks/group.rb +27 -0
  412. data/lib/roby/tasks/null.rb +19 -0
  413. data/lib/roby/tasks/parallel.rb +43 -0
  414. data/lib/roby/tasks/sequence.rb +88 -0
  415. data/lib/roby/tasks/simple.rb +21 -0
  416. data/lib/roby/{thread_task.rb → tasks/thread.rb} +50 -24
  417. data/lib/roby/tasks/timeout.rb +17 -0
  418. data/lib/roby/tasks/virtual.rb +55 -0
  419. data/lib/roby/template_plan.rb +7 -0
  420. data/lib/roby/test/aruba_minitest.rb +74 -0
  421. data/lib/roby/test/assertion.rb +16 -0
  422. data/lib/roby/test/assertions.rb +490 -0
  423. data/lib/roby/test/common.rb +368 -591
  424. data/lib/roby/test/dsl.rb +149 -0
  425. data/lib/roby/test/error.rb +18 -0
  426. data/lib/roby/test/event_reporter.rb +83 -0
  427. data/lib/roby/test/execution_expectations.rb +1134 -0
  428. data/lib/roby/test/expect_execution.rb +151 -0
  429. data/lib/roby/test/minitest_helpers.rb +166 -0
  430. data/lib/roby/test/roby_app_helpers.rb +200 -0
  431. data/lib/roby/test/run_planners.rb +155 -0
  432. data/lib/roby/test/self.rb +112 -0
  433. data/lib/roby/test/spec.rb +198 -0
  434. data/lib/roby/test/tasks/empty_task.rb +4 -4
  435. data/lib/roby/test/tasks/goto.rb +28 -27
  436. data/lib/roby/test/teardown_plans.rb +100 -0
  437. data/lib/roby/test/testcase.rb +239 -307
  438. data/lib/roby/test/tools.rb +159 -155
  439. data/lib/roby/test/validate_state_machine.rb +75 -0
  440. data/lib/roby/transaction.rb +1125 -0
  441. data/lib/roby/transaction/event_generator_proxy.rb +63 -0
  442. data/lib/roby/transaction/plan_object_proxy.rb +99 -0
  443. data/lib/roby/transaction/plan_service_proxy.rb +43 -0
  444. data/lib/roby/transaction/proxying.rb +120 -0
  445. data/lib/roby/transaction/task_event_generator_proxy.rb +19 -0
  446. data/lib/roby/transaction/task_proxy.rb +135 -0
  447. data/lib/roby/until_generator.rb +30 -0
  448. data/lib/roby/version.rb +5 -0
  449. data/lib/roby/yard.rb +169 -0
  450. data/lib/yard-roby.rb +1 -0
  451. data/manifest.xml +32 -6
  452. data/roby.gemspec +59 -0
  453. metadata +788 -587
  454. data/Manifest.txt +0 -321
  455. data/NOTES +0 -4
  456. data/README.txt +0 -166
  457. data/TODO.txt +0 -146
  458. data/app/README.txt +0 -24
  459. data/app/Rakefile +0 -8
  460. data/app/config/ROBOT.rb +0 -5
  461. data/app/config/init.rb +0 -33
  462. data/app/config/roby.yml +0 -3
  463. data/app/controllers/ROBOT.rb +0 -2
  464. data/app/planners/ROBOT/main.rb +0 -6
  465. data/app/planners/main.rb +0 -5
  466. data/app/scripts/distributed +0 -3
  467. data/app/scripts/generate/bookmarks +0 -3
  468. data/app/scripts/replay +0 -3
  469. data/app/scripts/results +0 -3
  470. data/app/scripts/run +0 -3
  471. data/app/scripts/server +0 -3
  472. data/app/scripts/shell +0 -3
  473. data/app/scripts/test +0 -3
  474. data/app/tasks/.gitattributes +0 -0
  475. data/app/tasks/ROBOT/.gitattributes +0 -0
  476. data/bin/roby-shell +0 -25
  477. data/doc/guide/src/basics/app.page +0 -139
  478. data/doc/guide/src/basics/index.page +0 -11
  479. data/doc/guide/src/basics/log_replay/goForward_1.png +0 -0
  480. data/doc/guide/src/basics/log_replay/goForward_2.png +0 -0
  481. data/doc/guide/src/basics/log_replay/goForward_3.png +0 -0
  482. data/doc/guide/src/basics/log_replay/goForward_5.png +0 -0
  483. data/doc/guide/src/basics/log_replay/plan_repair_4.png +0 -0
  484. data/doc/guide/src/basics/log_replay/roby_log_main_window.png +0 -0
  485. data/doc/guide/src/basics/relations_display.page +0 -203
  486. data/doc/guide/src/basics/shell.page +0 -102
  487. data/doc/guide/src/default.css +0 -319
  488. data/doc/guide/src/introduction/index.page +0 -29
  489. data/doc/guide/src/introduction/publications.page +0 -14
  490. data/doc/guide/src/relations/dependency.page +0 -89
  491. data/doc/guide/src/relations/index.page +0 -12
  492. data/ext/droby/dump.cc +0 -175
  493. data/ext/droby/extconf.rb +0 -3
  494. data/ext/graph/algorithm.cc +0 -746
  495. data/ext/graph/extconf.rb +0 -7
  496. data/ext/graph/graph.cc +0 -575
  497. data/ext/graph/graph.hh +0 -183
  498. data/ext/graph/iterator_sequence.hh +0 -102
  499. data/ext/graph/undirected_dfs.hh +0 -226
  500. data/ext/graph/undirected_graph.hh +0 -421
  501. data/lib/roby/app/scripts/generate/bookmarks.rb +0 -162
  502. data/lib/roby/app/scripts/replay.rb +0 -31
  503. data/lib/roby/app/scripts/server.rb +0 -18
  504. data/lib/roby/basic_object.rb +0 -151
  505. data/lib/roby/config.rb +0 -14
  506. data/lib/roby/distributed.rb +0 -36
  507. data/lib/roby/distributed/base.rb +0 -448
  508. data/lib/roby/distributed/communication.rb +0 -875
  509. data/lib/roby/distributed/connection_space.rb +0 -616
  510. data/lib/roby/distributed/distributed_object.rb +0 -206
  511. data/lib/roby/distributed/drb.rb +0 -62
  512. data/lib/roby/distributed/notifications.rb +0 -531
  513. data/lib/roby/distributed/peer.rb +0 -555
  514. data/lib/roby/distributed/protocol.rb +0 -529
  515. data/lib/roby/distributed/proxy.rb +0 -343
  516. data/lib/roby/distributed/subscription.rb +0 -311
  517. data/lib/roby/distributed/transaction.rb +0 -498
  518. data/lib/roby/external_process_task.rb +0 -225
  519. data/lib/roby/graph.rb +0 -160
  520. data/lib/roby/log.rb +0 -3
  521. data/lib/roby/log/chronicle.rb +0 -303
  522. data/lib/roby/log/console.rb +0 -74
  523. data/lib/roby/log/data_stream.rb +0 -275
  524. data/lib/roby/log/dot.rb +0 -279
  525. data/lib/roby/log/event_stream.rb +0 -161
  526. data/lib/roby/log/file.rb +0 -396
  527. data/lib/roby/log/gui/basic_display.ui +0 -83
  528. data/lib/roby/log/gui/basic_display_ui.rb +0 -89
  529. data/lib/roby/log/gui/chronicle.rb +0 -26
  530. data/lib/roby/log/gui/chronicle_view.rb +0 -40
  531. data/lib/roby/log/gui/chronicle_view.ui +0 -70
  532. data/lib/roby/log/gui/chronicle_view_ui.rb +0 -90
  533. data/lib/roby/log/gui/data_displays.rb +0 -171
  534. data/lib/roby/log/gui/data_displays.ui +0 -155
  535. data/lib/roby/log/gui/data_displays_ui.rb +0 -146
  536. data/lib/roby/log/gui/notifications.rb +0 -26
  537. data/lib/roby/log/gui/relations.rb +0 -269
  538. data/lib/roby/log/gui/relations.ui +0 -123
  539. data/lib/roby/log/gui/relations_ui.rb +0 -120
  540. data/lib/roby/log/gui/relations_view.rb +0 -185
  541. data/lib/roby/log/gui/relations_view.ui +0 -149
  542. data/lib/roby/log/gui/relations_view_ui.rb +0 -144
  543. data/lib/roby/log/gui/replay.rb +0 -366
  544. data/lib/roby/log/gui/replay_controls.rb +0 -206
  545. data/lib/roby/log/gui/replay_controls.ui +0 -282
  546. data/lib/roby/log/gui/replay_controls_ui.rb +0 -249
  547. data/lib/roby/log/gui/runtime.rb +0 -130
  548. data/lib/roby/log/hooks.rb +0 -186
  549. data/lib/roby/log/logger.rb +0 -203
  550. data/lib/roby/log/notifications.rb +0 -244
  551. data/lib/roby/log/plan_rebuilder.rb +0 -468
  552. data/lib/roby/log/relations.rb +0 -1084
  553. data/lib/roby/log/server.rb +0 -547
  554. data/lib/roby/log/sqlite.rb +0 -47
  555. data/lib/roby/log/timings.rb +0 -233
  556. data/lib/roby/plan-object.rb +0 -371
  557. data/lib/roby/planning.rb +0 -13
  558. data/lib/roby/planning/loops.rb +0 -309
  559. data/lib/roby/planning/model.rb +0 -1012
  560. data/lib/roby/planning/task.rb +0 -180
  561. data/lib/roby/query.rb +0 -655
  562. data/lib/roby/relations/conflicts.rb +0 -67
  563. data/lib/roby/relations/dependency.rb +0 -358
  564. data/lib/roby/relations/ensured.rb +0 -19
  565. data/lib/roby/relations/error_handling.rb +0 -22
  566. data/lib/roby/relations/events.rb +0 -7
  567. data/lib/roby/relations/executed_by.rb +0 -208
  568. data/lib/roby/relations/influence.rb +0 -10
  569. data/lib/roby/relations/planned_by.rb +0 -63
  570. data/lib/roby/state/information.rb +0 -55
  571. data/lib/roby/state/state.rb +0 -367
  572. data/lib/roby/task-operations.rb +0 -186
  573. data/lib/roby/task_index.rb +0 -80
  574. data/lib/roby/test/distributed.rb +0 -230
  575. data/lib/roby/test/tasks/simple_task.rb +0 -23
  576. data/lib/roby/transactions.rb +0 -507
  577. data/lib/roby/transactions/proxy.rb +0 -325
  578. data/plugins/fault_injection/History.txt +0 -4
  579. data/plugins/fault_injection/README.txt +0 -34
  580. data/plugins/fault_injection/Rakefile +0 -12
  581. data/plugins/fault_injection/TODO.txt +0 -0
  582. data/plugins/fault_injection/app.rb +0 -52
  583. data/plugins/fault_injection/fault_injection.rb +0 -89
  584. data/plugins/fault_injection/test/test_fault_injection.rb +0 -78
  585. data/plugins/subsystems/README.txt +0 -37
  586. data/plugins/subsystems/Rakefile +0 -13
  587. data/plugins/subsystems/app.rb +0 -182
  588. data/plugins/subsystems/test/app/README +0 -24
  589. data/plugins/subsystems/test/app/Rakefile +0 -8
  590. data/plugins/subsystems/test/app/config/app.yml +0 -71
  591. data/plugins/subsystems/test/app/config/init.rb +0 -12
  592. data/plugins/subsystems/test/app/config/roby.yml +0 -3
  593. data/plugins/subsystems/test/app/planners/main.rb +0 -20
  594. data/plugins/subsystems/test/app/scripts/distributed +0 -3
  595. data/plugins/subsystems/test/app/scripts/replay +0 -3
  596. data/plugins/subsystems/test/app/scripts/results +0 -3
  597. data/plugins/subsystems/test/app/scripts/run +0 -3
  598. data/plugins/subsystems/test/app/scripts/server +0 -3
  599. data/plugins/subsystems/test/app/scripts/shell +0 -3
  600. data/plugins/subsystems/test/app/scripts/test +0 -3
  601. data/plugins/subsystems/test/app/tasks/services.rb +0 -15
  602. data/plugins/subsystems/test/test_subsystems.rb +0 -78
  603. data/test/distributed/test_communication.rb +0 -195
  604. data/test/distributed/test_connection.rb +0 -284
  605. data/test/distributed/test_execution.rb +0 -378
  606. data/test/distributed/test_mixed_plan.rb +0 -341
  607. data/test/distributed/test_plan_notifications.rb +0 -238
  608. data/test/distributed/test_protocol.rb +0 -525
  609. data/test/distributed/test_query.rb +0 -106
  610. data/test/distributed/test_remote_plan.rb +0 -491
  611. data/test/distributed/test_transaction.rb +0 -466
  612. data/test/mockups/external_process +0 -28
  613. data/test/mockups/tasks.rb +0 -27
  614. data/test/planning/test_loops.rb +0 -432
  615. data/test/planning/test_model.rb +0 -427
  616. data/test/planning/test_task.rb +0 -126
  617. data/test/relations/test_conflicts.rb +0 -42
  618. data/test/relations/test_dependency.rb +0 -324
  619. data/test/relations/test_ensured.rb +0 -38
  620. data/test/relations/test_executed_by.rb +0 -224
  621. data/test/relations/test_planned_by.rb +0 -56
  622. data/test/suite_core.rb +0 -29
  623. data/test/suite_distributed.rb +0 -10
  624. data/test/suite_planning.rb +0 -4
  625. data/test/suite_relations.rb +0 -8
  626. data/test/tasks/test_external_process.rb +0 -126
  627. data/test/tasks/test_thread_task.rb +0 -70
  628. data/test/test_bgl.rb +0 -528
  629. data/test/test_event.rb +0 -969
  630. data/test/test_exceptions.rb +0 -591
  631. data/test/test_execution_engine.rb +0 -987
  632. data/test/test_gui.rb +0 -20
  633. data/test/test_interface.rb +0 -43
  634. data/test/test_log.rb +0 -125
  635. data/test/test_log_server.rb +0 -133
  636. data/test/test_plan.rb +0 -418
  637. data/test/test_query.rb +0 -424
  638. data/test/test_relations.rb +0 -260
  639. data/test/test_state.rb +0 -432
  640. data/test/test_support.rb +0 -16
  641. data/test/test_task.rb +0 -1181
  642. data/test/test_testcase.rb +0 -138
  643. data/test/test_transactions.rb +0 -610
  644. data/test/test_transactions_proxy.rb +0 -216
@@ -0,0 +1,14 @@
1
+ ---
2
+ title: Publications
3
+ sort_info: 300
4
+ ---
5
+ These are the papers which present Roby that I published the last years.
6
+
7
+ * A Software Component for Plan Management in Robotics
8
+ ([PhD thesis](http://roby.rubyforge.org/papers/thesis-en.pdf), [slides](http://roby.rubyforge.org/papers/thesis-slides.pdf))
9
+ * A Software Component for Simultaneous Plan Execution and Adaptation -
10
+ IROS2007 ([paper](http://roby.rubyforge.org/papers/roby-2007-iros.pdf))
11
+ * A Plan Manager for Multi-Robot Systems - FSR2007
12
+ ([paper](http://roby.rubyforge.org/papers/roby-2007-fsr.pdf), [slides](http://roby.rubyforge.org/papers/roby-2007-fsr-slides.pdf))
13
+
14
+
@@ -1,14 +1,17 @@
1
1
  ---
2
2
  title: Demonstration Videos
3
3
  sort_info: 400
4
- --- pipeline:tags,rdoc
5
- == Normal operations
4
+ ---
5
+
6
+ Normal operations
7
+ -----------------
6
8
 
7
9
  Those videos don't show what Roby itself does, only results showing
8
10
  robots (real and in simulation) acting as they are controlled by a
9
11
  Roby application.
10
12
 
11
- === Single robot navigation
13
+ Single robot navigation
14
+ -----------------
12
15
 
13
16
  http://roby.rubyforge.org/videos/perception_loops.avi
14
17
 
@@ -17,7 +20,8 @@ building) being handled by Roby. The perception updates are triggered by Roby
17
20
  on the basis of state events: they are triggered by the translation of the
18
21
  robot and the change of heading, to reduce the number of times it is actually done.
19
22
 
20
- === Bi-robot navigation
23
+ Bi-robot navigation
24
+ -----------------
21
25
 
22
26
  http://roby.rubyforge.org/videos/birobot.avi
23
27
 
@@ -34,8 +38,10 @@ regions are then considered by the UAV which decides how it will schedule its
34
38
  own perception. When the UAV does have perceived a zone, it informs the rover
35
39
  and sends it the relevant data. The rover can then update its own map.
36
40
 
37
- == Error handling
38
- === Rflex repaired
41
+ Error handling
42
+ ---------------
43
+ Rflex repaired
44
+ --------------
39
45
 
40
46
  http://roby.rubyforge.org/videos/rflex_repaired.avi
41
47
 
@@ -48,7 +54,8 @@ which wait for a few seconds and tests the <tt>BRAKES_ON</tt> state of the
48
54
  robot. If the brakes are reported as off, then the robot can start moving again.
49
55
  Otherwise, the error was a rightful one and should be handled by other means.
50
56
 
51
- === P3d repaired
57
+ P3d repaired
58
+ ------------
52
59
 
53
60
  http://roby.rubyforge.org/videos/p3d_repaired.avi.
54
61
 
@@ -0,0 +1,16 @@
1
+ ---
2
+ title: Interacting with a Roby app
3
+ sort_info: 0
4
+ ---
5
+
6
+ This section will present you the various ways one can interact with a Roby
7
+ application, or more exactly how to manipulate a Roby application from within
8
+ and from outside through [the action interface](../building/actions.html).
9
+
10
+ What we are going to cover in this section is:
11
+
12
+ - how to use the actions from within your Roby application to handle startup
13
+ sequences as well as a general system behaviour without human intervention
14
+ - the tools that are available to start a Roby application and interact with
15
+ it, including visualization tools
16
+
@@ -0,0 +1,33 @@
1
+ ---
2
+ title: Running a Roby application
3
+ sort_info: 50
4
+ ---
5
+
6
+ A Roby application gets started with
7
+
8
+ ~~~
9
+ roby run -c
10
+ ~~~
11
+
12
+ If a [specific robot configuration](../building/file_layout.html) needs to be
13
+ picked up, the common -rROBOT\[:ROBOT_TYPE] option can be given
14
+
15
+ ~~~
16
+ roby -rrobot -c
17
+ ~~~
18
+
19
+ The -c option tells Roby to load a _controller file_. This file has to be named
20
+ as the robot (therefore -c is meaningless without a robot name) and stored in
21
+ scripts/controllers/ (e.g. scripts/controllers/myrobot.rb). The controller file
22
+ is meant as a way to define a "full application", i.e. a predefined startup and
23
+ reaction system that is "the" overall behaviour of the robot. Running the
24
+ application without -c is usually meant for debugging.
25
+
26
+ Additionally, actions can be specified on the command line (as they would be
27
+ given on Roby shell's command line, see the next page). They get started
28
+ automatically. You probably will have to quote the actions, as the exclamation
29
+ mark is often a reserved character.
30
+
31
+ ~~~
32
+ roby run -rmyrobot 'move!(:target => [10, 0, 0])'
33
+ ~~~
@@ -0,0 +1,95 @@
1
+ ---
2
+ title: Shell
3
+ sort_info: 100
4
+ ---
5
+
6
+ The Roby shell is a command that allows you to command a Roby application from
7
+ __outside__ it (i.e. remotely). The shell is started with
8
+
9
+ ~~~
10
+ roby shell
11
+ ~~~
12
+
13
+ if on another machine, one should add the --host option:
14
+
15
+ ~~~
16
+ roby shell --host=robot[:port]
17
+ ~~~
18
+
19
+ __Note__ while the first connection requires a running controller, the shell
20
+ does not need to be restarted when the Roby application is. It will reconnect
21
+ automatically.
22
+ {: .block}
23
+
24
+ The main command is "help". It displays what other shell commands there is, as
25
+ well as the list of available actions. To get more information about an action,
26
+ do
27
+
28
+ ~~~
29
+ localhost:48902 > describe action_name
30
+ ~~~
31
+
32
+ For instance, in a controller where the actions [from
33
+ before](../building/actions.html) are defined, the beginning of the help message
34
+ would be:
35
+
36
+ ~~~
37
+ Available Actions
38
+ =================
39
+
40
+ Name | Description
41
+ ---------------------------------------------------
42
+ move! | move
43
+ move_to! | move to a given target point
44
+ wait_until_it_works! | waits until my_action passes
45
+ ~~~
46
+
47
+ Then, to get the details about the move_to action in particular, one would do:
48
+
49
+ ~~~
50
+ localhost:48902 > describe move_to
51
+ Action move_to defined on Main
52
+ Returns Main::MoveTo
53
+ Arguments:
54
+ target: the speed it should move at in m/s (required)
55
+ ~~~
56
+
57
+ Managing actions
58
+ ----------------
59
+ Any action can be started from the shell using the action_name! syntax.
60
+ Arguments are passed as a hash.
61
+
62
+ ~~~
63
+ localhost:48902 > move_to! :target => [10, 10, 0]
64
+ [1] move_to! started to plan
65
+ [1] move_to!: Main::MoveTo:0x3c5b4c8{}[] has been replaced by Main::MoveTo:0x3fde0c8{}[]
66
+ [1] move_to!: task Main::MoveTo:0x3fde0c8{}[] started
67
+ ~~~
68
+
69
+ What you get here is a notification that job 1 has been first inserted in an
70
+ abstract way ("started to plan"), then replaced by the actual task ("replaced
71
+ by") and then started.
72
+
73
+ The job can be inspected later on
74
+
75
+ ~~~
76
+ localhost:48902 > jobs
77
+ 1 move_to! Main::MoveTo:0x3c5b4c8{}[]
78
+ ~~~
79
+
80
+ And killed ...
81
+
82
+ ~~~
83
+ localhost:48902 > kill_job 1
84
+ [1] move_to!: task Main::MoveTo:0x3c5b4c8{}[] failed
85
+ = fatal exception 1: mission failed: Main::MoveTo:0x26c67e8{}[]
86
+ | [17:52:56.275 @2] Main::MoveTo:0x3c5b4c8{}[]/failed
87
+ | The following tasks have been killed:
88
+ | Main::MoveTo:0x3c5b4c8
89
+ [1] move_to!: task Main::MoveTo:0x3c5b4c8{}[] has been removed
90
+ ~~~
91
+
92
+ Additionally, the shell allows you to query the running plan using the
93
+ [find_tasks query interface](../advanced_concepts/recognizing_patterns.html)
94
+
95
+ Finally, execution errors happening in the controller are reported in the shell.
@@ -0,0 +1,72 @@
1
+ ---
2
+ title: Creating plugins
3
+ sort_info: 100
4
+ ---
5
+
6
+ Plugins are dynamically-loaded Ruby files that can hook into the Roby main code
7
+ using modules.
8
+
9
+ Defining and declaring plugins
10
+ ------------------------------
11
+
12
+ A plugin defines an application plugin object. This object is used by
13
+ {rdoc_class: Application} to integrate the plugin initialization and teardown code into
14
+ the Roby application dataflow. This object can define the following methods. If
15
+ a plugin application object does *not* provide a method, it is simply ignored.
16
+
17
+ {coderay:: ruby}
18
+ class Plugin
19
+ # Load configuration files (YAML and Roby)
20
+ # Do not load task models. That is done by
21
+ # require_models
22
+ def load(app)
23
+ end
24
+ # Set up things based on the configuration
25
+ # loaded in #load
26
+ def setup(app)
27
+ end
28
+ # Load files that define new task/event models
29
+ # This is done after Roby loaded the standard
30
+ # task/event model tasks
31
+ def require_models(app)
32
+ end
33
+ # Startup the controller. The main execution engine
34
+ # is already started at this point. The method
35
+ # should yield to the given block, and clean up
36
+ # when it returns.
37
+ def run(app, &block)
38
+ end
39
+
40
+ # Start any service needed in distributed context.
41
+ # It is called when scripts/distributed starts
42
+ def start_distributed(app)
43
+ end
44
+ # Stop any service needed in distributed context.
45
+ # It is called when scripts/distributed quits
46
+ def stop_distributed(app)
47
+ end
48
+ # Start any service needed for live log display
49
+ # It is called when scripts/server starts
50
+ def start_server(app)
51
+ end
52
+ # Stop any service needed for live log display
53
+ # It is called when scripts/server quits
54
+ def stop_server(app)
55
+ end
56
+ end
57
+ {coderay}
58
+
59
+ This plugin object is then declared using Roby::Application.register_plugin:
60
+
61
+ {coderay:: ruby}
62
+ Application.register_plugin(plugin_name, plugin_object) do
63
+ [code to be executed when the plugin is loaded]
64
+ end
65
+ {coderay}
66
+
67
+ This declaration has to be added to an app.rb file. Roby will automatically
68
+ require all app.rb files it can find in the ROBY_PLUGIN_PATH environment
69
+ variable. Then, when a plugin gets loaded using Application.using(plugin_name),
70
+ the associated block is called and the plugin object's methods will get called
71
+ when the controller starts.
72
+
@@ -1,11 +1,33 @@
1
1
  ---
2
- title: Standard Plugins
2
+ title: Plugins
3
3
  sort_info: 0
4
- --- name:content pipeline:tags,markdown,blocks
4
+ ---
5
+
6
+ Plugins are extensions to the Roby models and engine.
7
+
8
+ Plugins are searched in the ROBY_PLUGIN_PATH environment variable. Roby will
9
+ search for the plugin's app.rb file in each of the directories listed in this
10
+ environment variable, and load this file to get the plugin declaration.
11
+
12
+ For instance, the Orocos/Roby plugin is stored in the lib/orocos/roby/ directory
13
+ of the orocos.rb software package. This directory contains the plugin's app.rb
14
+ file, so one has to add /path/to/orocos/rb/lib/orocos/roby to ROBY_PLUGIN_PATH
15
+ to make the plugin available to Roby controllers.
16
+
17
+ Now, two things are needed to use a given plugin in a Roby controller:
18
+
19
+ * one must add the plugin-specific files to the controller. This is done with
5
20
 
6
- A few generally useful plugins are shipped with the standard Roby installation.
7
- The following pages describes them and tells you how to enable them in your Roby
8
- controller.
21
+ {coderay:: bash}
22
+ roby init -m fault_injection
23
+ {coderay}
9
24
 
25
+ * one must declare that the plugin should be loaded. This is usually done
26
+ globally in config/init.rb, but can also be done on a per-robot basis. This
27
+ is done by adding the following line to the relevant initialization file:
10
28
 
29
+ {coderay:: ruby}
30
+ Roby.app.using "fault_injection"
31
+ {coderay}
32
+
11
33
 
@@ -1,7 +1,7 @@
1
1
  ---
2
- title: Fault Injection <a href="fault_injection/index.html">[API]</a>
2
+ title: Fault Injection <a href="../fault_injection/index.html">[API]</a>
3
3
  sort_info: 100
4
- --- name:content pipeline:tags,markdown,blocks
4
+ ---
5
5
 
6
6
  This is a fault injection plugin for the Roby robotic control framework. It
7
7
  allows to test the management of rarely occuring events by simulating the
@@ -0,0 +1,11 @@
1
+ ---
2
+ title: Standard Plugins
3
+ sort_info: 0
4
+ ---
5
+
6
+ A few generally useful plugins are shipped with the standard Roby installation.
7
+ The following pages describes them and tells you how to enable them in your Roby
8
+ controller.
9
+
10
+
11
+
@@ -1,8 +1,8 @@
1
1
  ---
2
- title: Subsystems <a href="subsystems/index.html">[API]</a>
2
+ title: Subsystems <a href="../subsystems/index.html">[API]</a>
3
3
  routed_title: Subsystems
4
4
  sort_info: 0
5
- --- name:content pipeline:tags,markdown,blocks
5
+ ---
6
6
 
7
7
  This is a plugin for the Roby robotic control framework. It allows to generate
8
8
  an initial plan in which a set of common subsystems (sensors, localization,
@@ -0,0 +1,687 @@
1
+ /*************************************************************/
2
+ /* Design: MultiFlex-2 (Screen) */
3
+ /* Author: G. Wolfgang (gw@actamail.com) */
4
+ /* Date: June 8, 2006 */
5
+ /*-----------------------------------------------------------*/
6
+ /* Recommended CSS-Editor: TopStyle Lite 3.10 (Freeware) */
7
+ /* http://www.newsgator.com/download/products/ts3lite.exe */
8
+ /*-----------------------------------------------------------*/
9
+ /* You can use this stylesheet any way you want! */
10
+ /* Check out my favorite website: www.sda.org */
11
+ /*************************************************************/
12
+
13
+ /*************************/
14
+ /* SECTION 1 - MAIN BODY */
15
+ /*************************/
16
+
17
+ body {margin: 0px auto; padding: 0px; background: url(img/background_body_grey.gif) top center repeat-y; font-family: arial, sans-serif; font-size: 10pt;}
18
+ .page-container-1 {width: 770px; margin: 0px auto; padding: 0px; background: url(img/background_layout_1.gif) top left repeat-y; border: solid 1px rgb(100,100,100);}
19
+ .page-container-2 {width: 770px; margin: 0px auto; padding: 0px; background: url(img/background_layout_2.gif) top left repeat-y; border: solid 1px rgb(100,100,100);}
20
+ .page-container-3 {width: 770px; margin: 0px auto; padding: 0px; background: url(img/background_layout_3.gif) top left repeat-y; border: solid 1px rgb(100,100,100);}
21
+
22
+ /*************************************/
23
+ /* SECTION 2 - HEADER AND NAVIGATION */
24
+ /*************************************/
25
+
26
+ /*-----------------------------------*/
27
+ /* 2.1 - Sitename, slogan and banner */
28
+ /*-----------------------------------*/
29
+ .site-name {position: absolute; height: 45px; top: 12px; z-index: 4; margin: 0px; padding-left: 75px; color: rgb(69,140,204);}
30
+ .site-name p.title {margin: 0px; padding: 0px; font-family: "trebuchet ms", arial, sans serif; font-weight: bold; font-size: 36px;}
31
+ .site-name p.subtitle {clear: both; width: 700px; margin: -2px 0px 0px -2em; padding: 0px; background-color: transparent; font-family: "trebuchet ms", arial, sans serif; font-size: 22px;}
32
+ .site-name a {margin: 0px; padding: 0px; text-decoration: none; color: rgb(88,144,168);}
33
+ .site-name a:hover {text-decoration: none;}
34
+ .site-slogan-container {width: 755px; height: 130px; top: 112px; position: absolute; z-index: 1; overflow: hidden; margin: 0px; padding-right: 15px; background-color: transparent;}
35
+ .site-slogan {float: right; width: 700px; margin: 0px; padding: 0px; background-color: transparent; font-size: 10px;}
36
+ .site-slogan p.title {float: right; width: 700px; margin: 0px; padding: 0px; color: rgb(234,239,247); font-family: arial, sans serif; text-align: right; font-weight: bold; font-size: 220%;}
37
+ .site-slogan p.subtitle {clear: both; float: right; width: 700px; margin: -5px 0px 0px 0px; padding: 0px; color: rgb(234,239,247); font-family: arial, sans serif; text-align: right; font-weight: bold; font-size: 200%;}
38
+ .site-slogan p.text {clear: both; float: right; width: 700px; margin: 10px 0px 0px 0px; padding: 0px; color: rgb(234,239,247); font-family: arial, sans serif; text-align: right; font-weight: bold; line-height: 1.0em; font-size: 140%;}
39
+ .site-slogan p.readmore {clear: both; float: right; width: 700px; margin: 10px 0px 0px 0px; padding: 0px; color: rgb(234,239,247); font-family: arial, sans serif; text-align: right; font-weight: bold; line-height: 1.0em; font-size: 120%;}
40
+ .site-slogan a {color: rgb(234,239,247); text-decoration: underline;}
41
+ .site-slogan a:hover {text-decoration: none; color: rgb(50,50,50);}
42
+ .img-header {clear: both; float: left; width: 770px; height: 250px; margin: 0px; padding: 0px;}
43
+
44
+ /*--------------------------*/
45
+ /* 2.2 - Navigation - Flags */
46
+ /*--------------------------*/
47
+ .navflag-container {width: 770px; top: 14px; position: absolute; z-index: 2; background-color: transparent;}
48
+ .navflag {margin: 0px; padding: 0px; font-size: 1.0em;}
49
+ .navflag ul {float: right; margin: 0px; padding: 0px 20px 0px 0px;}
50
+ .navflag ul li {display: inline; list-style: none; margin: 0px; padding: 0px;}
51
+ .navflag ul li a {margin: 0px; padding: 0px 0px 0px 1px;}
52
+ .navflag ul li a:hover {color: rgb(0,0,0); text-decoration: none;}
53
+ .img-navflag {display: inline; height: 14px; margin: 0px; padding: 0px; border: none;}
54
+
55
+ /*----------------------------*/
56
+ /* 2.3 - Navigation - Level 1 */
57
+ /*----------------------------*/
58
+ .nav1-container {width: 770px; top: 15px; position: absolute; z-index: 3; background: transparent;}
59
+ .nav1 {margin: 0px; padding: 0px; font-family: verdana, arial, sans serif; font-size: 1.0em;}
60
+ .nav1 ul {float: right; margin: 0px; padding: 0px 20px 0px 0px; border-left: solid 1px rgb(115,162,182); background-color: rgb(255,255,255); font-weight: bold;}
61
+ .nav1 li {display: inline; list-style: none; margin: 0px; padding: 0px;}
62
+ .nav1 li a {display: block; float: left; margin: 0px; padding: 2px 5px 2px 5px; border-right: solid 1px rgb(115,162,182); color: rgb(115,162,182); text-decoration: none; font-size: 10px; text-decoration: none;}
63
+ .nav1 li span {display: block; float: left; margin: 0px; padding: 2px 5px 2px 5px; border-right: solid 1px rgb(115,162,182); color: rgb(115,162,182); text-decoration: none; font-size: 10px; text-decoration: none;}
64
+ .nav1 a:hover, .nav2 a.selected {color: rgb(50,50,50); text-decoration: none;}
65
+ .nav1-container .search { width: 50%; float: right; margin-right: 20px;margin-top: .3em;}
66
+
67
+ /*----------------------------*/
68
+ /* 2.4 - Navigation - Level 2 */
69
+ /*----------------------------*/
70
+ .nav2 {clear: both; margin: 0px; padding: 0px; font-family: arial, sans serif; font-size: 90%;}
71
+ .nav2 ul {float: left; width: 770px; margin: 0px; padding: 0px; border-top: solid 1px rgb(54,83,151); border-bottom: solid 1px rgb(54,83,151); background-color: rgb(127,162,202); font-weight: bold;}
72
+ .nav2 li {display: inline; list-style: none; margin: 0px; padding: 0px;}
73
+ .nav2 li a {display: block; float: left; margin: 0px 0px 0px 0px; padding: 5px 10px 5px 10px; border-right: solid 1px rgb(54,83,151); color: rgb(255,255,255); text-transform: uppercase; text-decoration: none; font-size: 100%; text-decoration: none;}
74
+ .nav2 li span {display: block; float: left; margin: 0px 0px 0px 0px; padding: 5px 10px 5px 10px; border-right: solid 1px rgb(54,83,151); color: rgb(255,255,255); text-transform: uppercase; text-decoration: none; font-size: 100%;}
75
+ .nav2 li span.empty { border: none; }
76
+ .nav2 a:hover, .nav2 a.selected {color: rgb(50,50,50); text-decoration: none;}
77
+ .title_buffer {clear: both; width: 770px; height: 30px; margin: 0px; margin-top: 50px; padding: 0px; background-color: rgb(255,255,255);}
78
+ .buffer {clear: both; width: 770px; height: 30px; margin: 0px; padding: 0px; background-color: rgb(255,255,255);}
79
+
80
+ .nav2 .main {font-size: 130%; }
81
+ .nav2 .main li {width: 500px;}
82
+
83
+ /*-----------------------------*/
84
+ /* Container for nav3 and nav4 */
85
+ /*-----------------------------*/
86
+ .leftnav {overflow: hidden; clear: both; float: left; width: 220px;}
87
+
88
+ /*----------------------------*/
89
+ /* 2.5 - Navigation - Level 3 */
90
+ /*----------------------------*/
91
+
92
+ .nav3 {min-height: 500px; margin: 0px; padding: 0px; color: rgb(75,75,75); font-size: 90%; font-family: arial, sans serif; }
93
+ .nav3 ul {width: 250px; margin: 0px 0px 5px 0px; padding: 0px; border-bottom: solid 1px rgb(216,206,159); background-color: rgb(219,230,241);}
94
+ .nav3 li {list-style: none; margin: 0px; padding: 0px; font-size: 100%;}
95
+ .nav3 .title {margin: 0px 0px 0px 0px; padding: 3px 5px 2px 15px; background-color: rgb(156,186,214); color: rgb(255,255,255); text-transform: uppercase; font-weight: bold; font-size: 100%;}
96
+
97
+ .nav3 a, .nav3 span {display: block; min-height: 1.7em; height: auto !important; height: 1.7em; line-height: 1.7em; margin: 0px; color: rgb(75,75,75); bold; font-size: 100%; text-decoration: none; border-left: solid 7px rgb(219,230,241); padding: 0px 7px 0px 0px; }
98
+ .nav3 li.webgen-menu-level1 a, .nav3 li.webgen-menu-level1 span {
99
+ padding-left: 5px; border-top: solid 1px rgb(200,200,200); font-weight: bold;
100
+ }
101
+ .nav3 li.webgen-menu-level2 a, .nav3 li.webgen-menu-level2 span {
102
+ padding-left: 10px; font-weight: normal;
103
+ }
104
+ .nav3 li.webgen-menu-level3 a, .nav3 li.webgen-menu-level3 span {
105
+ padding-left: 15px; font-weight: normal; font-size: 90%;
106
+ }
107
+
108
+ .nav3 li.webgen-menu-level1.webgen-menu-submenu-inhierarchy > span,
109
+ .nav3 li.webgen-menu-level1.webgen-menu-submenu-inhierarchy > a {
110
+ padding-left: 0px;
111
+ }
112
+ .nav3 li.webgen-menu-level2.webgen-menu-submenu-inhierarchy > span,
113
+ .nav3 li.webgen-menu-level2.webgen-menu-submenu-inhierarchy > a {
114
+ padding-left: 5px;
115
+ }
116
+ .nav3 li.webgen-menu-submenu-inhierarchy {border-left: solid 5px rgb(156,186,214); color: rgb(100,100,100);}
117
+ .nav3 li.webgen-menu-item-selected > span {font-weight: bold;}
118
+
119
+ /*----------------------------*/
120
+ /* 2.5 - Navigation - Level 4 */
121
+ /*----------------------------*/
122
+ .nav4 {margin: 0px; padding: 0px; color: rgb(75,75,75); font-size: 90%; font-family: arial, sans serif; }
123
+ .nav4 ul {width: 250px; margin: 0px 0px 20px 0px; padding: 0px; border-bottom: solid 1px rgb(216,206,159); background-color: rgb(219,230,241);}
124
+ .nav4 li {list-style: none; margin: 0px; padding: 0px; font-size: 100%;}
125
+ .nav4 li.title {margin: 0px 0px 0px 0px; padding: 3px 5px 2px 15px; background-color: rgb(156,186,214); color: rgb(255,255,255); text-transform: uppercase; font-size: 100%;}
126
+ .nav4 li.webgen-menu-level1 a {display: block; min-height: 1.7em; height: auto !important; height: 1.7em; line-height: 1.7em; margin: 0px; padding: 0px 7px 0px 5px; border-top: solid 1px rgb(200,200,200); border-left: solid 7px rgb(219,230,241); color: rgb(75,75,75); font-size: 100%; text-decoration: none; }
127
+ .nav4 li.webgen-menu-level2 a {display: block; min-height: 1.7em; height: auto !important; height: 1.7em; line-height: 1.7em; margin: 0px; padding: 0px 7px 0px 20px; border-left: solid 7px rgb(219,230,241); color: rgb(75,75,75); text-decoration: none; font-weight: normal; font-size: 90%; text-decoration: none;}
128
+ .nav4 li.webgen-menu-level1 span {display: block; min-height: 1.7em; height: auto !important; height: 1.7em; line-height: 1.7em; margin: 0px; padding: 0px 7px 0px 5px; border-top: solid 1px rgb(200,200,200); border-left: solid 7px rgb(219,230,241); color: rgb(75,75,75); font-size: 100%;}
129
+ .nav4 li.webgen-menu-level2 span {display: block; min-height: 1.7em; height: auto !important; height: 1.7em; line-height: 1.7em; margin: 0px; padding: 0px 7px 0px 20px; border-left: solid 7px rgb(219,230,241); color: rgb(75,75,75); text-decoration: none; font-size: 90%;}
130
+ .nav4 li a:hover, .nav4 li.webgen-menu-level2.webgen-menu-submenu-inhierarchy, .nav4 li.webgen-menu-item-selected {border-left: solid 7px rgb(156,186,214); color: rgb(100,100,100); text-decoration: none;}
131
+
132
+ .localtoc {float: left; width: 150px; margin: 0em 2em 1em 0em; padding: 0 0 0 0; background-color: rgb(238,237,249); font-size: 1.0em;}
133
+ .localtoc ul {width: 150px; margin: 5px 0px 0px 0px; padding: 0px; border-bottom: solid 1px rgb(216,206,159); background-color: rgb(219,230,241);}
134
+ .biglocaltoc {width: 280px;}
135
+ .biglocaltoc ul {width: 280px;}
136
+ .body-header-list {width: 510px; margin: 0em 2em 1em 0em; padding: 0 0 0 0; background-color: rgb(238,237,249); font-size: 1.0em;}
137
+ .body-header-list ul {width: 510px; margin: 5px 0px 0px 0px; padding: 0px; border-bottom: solid 1px rgb(216,206,159); background-color: rgb(219,230,241);}
138
+ .body-header-list li {list-style: none; margin: 0px; padding: 0px;display: block; min-height: 1.7em; height: auto !important; height: 1.7em; line-height: 1.7em; margin: 0px; padding: 0px 7px 0px 10px; border-top: solid 1px rgb(200,200,200); border-left: solid 7px rgb(219,230,241); color: rgb(75,75,75); font-weight: normal; font-size: 100%; text-decoration: none;}
139
+ .body-header-list li.title {margin: 0px 0px 0px 0px; padding: 3px 5px 2px 15px; background-color: rgb(156,186,214); color: rgb(255,255,255); text-transform: uppercase; font-weight: bold;}
140
+
141
+ .body-header-list li table {clear: left; margin: 0em 0px 0em 25px; empty-cells: show; border-collapse: collapse; }
142
+ .body-header-list li table tr {margin: 0px; padding: 0px;}
143
+ .body-header-list li table td {margin: 0px; padding: 0px 7px 0px 7px; border: none; text-align: left;}
144
+ .body-header-list li table th {margin: 0px; padding: 0px; border: none; empty-cells: show; text-align: left; }
145
+
146
+ .localtoc li {list-style: none; margin: 0px; padding: 0px;}
147
+ .localtoc li.title {margin: 0px 0px 0px 0px; padding: 3px 5px 2px 15px; background-color: rgb(156,186,214); color: rgb(255,255,255); text-transform: uppercase; font-weight: bold; font-size: 120%;}
148
+ .localtoc li.webgen-menu-level1 a {display: block; min-height: 1.7em; height: auto !important; height: 1.7em; line-height: 1.7em; margin: 0px; padding: 0px 7px 0px 10px; border-top: solid 1px rgb(200,200,200); border-left: solid 7px rgb(219,230,241); color: rgb(75,75,75); font-weight: normal; font-size: 100%; text-decoration: none;}
149
+ .localtoc li.webgen-menu-level2 a {display: block; min-height: 1.7em; height: auto !important; height: 1.7em; line-height: 1.7em; margin: 0px; padding: 0px 7px 0px 20px; border-left: solid 7px rgb(219,230,241); color: rgb(75,75,75); text-decoration: none; font-weight: normal; font-size: 80%; text-decoration: none;}
150
+ .localtoc li.webgen-menu-level1 span {display: block; min-height: 1.7em; height: auto !important; height: 1.7em; line-height: 1.7em; margin: 0px; padding: 0px 7px 0px 15px; border-top: solid 1px rgb(200,200,200); border-left: solid 7px rgb(219,230,241); color: rgb(75,75,75); font-size: 100%;}
151
+ .localtoc li.webgen-menu-level2 span {display: block; min-height: 1.7em; height: auto !important; height: 1.7em; line-height: 1.7em; margin: 0px; padding: 0px 7px 0px 20px; border-left: solid 7px rgb(219,230,241); color: rgb(75,75,75); text-decoration: none; font-size: 80%;}
152
+ .localtoc li a:hover, .localtoc li.webgen-menu-item-selected {border-left: solid 7px rgb(156,186,214); color: rgb(100,100,100); text-decoration: none;}
153
+
154
+ /******************************************************************************/
155
+ /* SECTION 3 - SPECIFIC CLASSES FOR LAYOUT #1 (With navigation, with sidebar )*/
156
+ /******************************************************************************/
157
+
158
+ .content1 {float: left; width: 428px; margin: 0px; padding: 0px 0px 10px 20px; color: rgb(75,75,75);}
159
+ .content1-container {clear: both; float: left; width: 408px; margin: 0px 0px 15px 0px; padding: 0px;}
160
+ .content1-container-1col {overflow: visible; width: 408px; margin: 0px; padding: 0px;}
161
+ .content1-container-1col-txtright-200px {float: right; width: 196px; margin: 0px; padding: 0px;}
162
+ .content1-container-1col-txtright-160px {float: right; width: 236px; margin: 0px; padding: 0px;}
163
+ .content1-container-1col-txtright-120px {float: right; width: 276px; margin: 0px; padding: 0px;}
164
+ .content1-container-1col-txtright-100px {float: right; width: 296px; margin: 0px; padding: 0px;}
165
+ .content1-container-1col-txtright-80px {float: right; width: 316px; margin: 0px; padding: 0px;}
166
+ .content1-container-1col-txtright-60px {float: right; width: 336px; margin: 0px; padding: 0px;}
167
+ .content1-container-1col-txtright-40px {float: right; width: 356px; margin: 0px; padding: 0px;}
168
+ .content1-container-2col-left {overflow: hidden; float: left; width: 191px; margin: 0px; padding: 0px;}
169
+ .content1-container-2col-right {overflow: hidden; float: right; width: 191px; margin: 0px; padding: 0px;}
170
+ .content1-container-2col-txtright-100px {float: right; width: 79px; margin: 0px; padding: 0px;}
171
+ .content1-container-2col-txtright-80px {float: right; width: 99px; margin: 0px; padding: 0px;}
172
+ .content1-container-2col-txtright-60px {float: right; width: 119px; margin: 0px; padding: 0px;}
173
+ .content1-container-2col-txtright-40px {float: right; width: 139px; margin: 0px; padding: 0px;}
174
+ .content1-container-2col-txtright-20px {float: right; width: 159px; margin: 0px; padding: 0px;}
175
+ .content1-container-3col-left {overflow: hidden; float: left; width: 119px; margin: 0px 25px 0px 0px; padding: 0px;}
176
+ .content1-container-3col-middle {overflow: hidden; float: left; width: 119px;margin: 0px; padding: 0px;}
177
+ .content1-container-3col-right {overflow: hidden; float: right; width: 119px; margin: 0px; padding: 0px;}
178
+ .content1-container-3col-txtright-60px {float: right; width: 47px; margin: 0px; padding: 0px;}
179
+ .content1-container-3col-txtright-40px {float: right; width: 67px; margin: 0px; padding: 0px;}
180
+ .content1-container-3col-txtright-20px {float: right; width: 87px; margin: 0px; padding: 0px;}
181
+ .content1-container-3col-txtright-10px {float: right; width: 97px; margin: 0px; padding: 0px;}
182
+ .content1-pagetitle {overflow: hidden; width: 408px; margin: 0px 0px 10px 0px; padding: 0px 0px 2px 0px; border-bottom: solid 3px rgb(88,144,168); color: rgb(88,144,168); font-weight: bold; font-size: 160%;}
183
+
184
+ /******************************************************/
185
+ /* SECTION 4 - SPECIFIC CLASSES FOR LAYOUTS #2 and #3 */
186
+ /******************************************************/
187
+
188
+ .content2 {float: left; width: 500px; min-height: 530px; margin: 0px; padding: 0px 0px 0px 20px; color: rgb(75,75,75); font-size: 100%;}
189
+ .content3 {float: left; width: 500px; min-height: 530px; margin: 0px; padding: 0px 0px 0px 20px; color: rgb(75,75,75); font-size: 100%;}
190
+ .content2-container, .content3-container {clear: both; float: left; width: 510px; margin: 0px 0px 15px 0px; padding: 0px;}
191
+ .content2-container-1col, .content3-container-1col {overflow: visible; width: 510px; margin: 0px; padding: 0px;}
192
+ .content2-container-1col-txtright-200px, .content3-container-1col-txtright-200px {float: right; width: 357px; margin: 0px; padding: 0px;}
193
+ .content2-container-1col-txtright-160px, .content3-container-1col-txtright-160px {float: right; width: 397px; margin: 0px; padding: 0px;}
194
+ .content2-container-1col-txtright-120px, .content3-container-1col-txtright-120px {float: right; width: 437px; margin: 0px; padding: 0px;}
195
+ .content2-container-1col-txtright-100px, .content3-container-1col-txtright-100px {float: right; width: 457px; margin: 0px; padding: 0px;}
196
+ .content2-container-1col-txtright-80px, .content3-container-1col-txtright-80px {float: right; width: 477px; margin: 0px; padding: 0px;}
197
+ .content2-container-1col-txtright-60px, .content3-container-1col-txtright-60px {float: right; width: 497px; margin: 0px; padding: 0px;}
198
+ .content2-container-1col-txtright-40px, .content3-container-1col-txtright-40px {float: right; width: 517px; margin: 0px; padding: 0px;}
199
+ .content2-container-2col-left, .content3-container-2col-left {overflow: hidden; float: left; width: 272px; margin: 0px; padding: 0px;}
200
+ .content2-container-2col-right, .content3-container-2col-right {overflow: hidden; float: right; width: 272px; margin: 0px; padding: 0px;}
201
+ .content2-container-2col-txtright-100px, .content3-container-2col-txtright-100px {float: right; width: 160px; margin: 0px; padding: 0px;}
202
+ .content2-container-2col-txtright-80px, .content3-container-2col-txtright-80px {float: right; width: 180px; margin: 0px; padding: 0px;}
203
+ .content2-container-2col-txtright-60px, .content3-container-2col-txtright-60px {float: right; width: 200px; margin: 0px; padding: 0px;}
204
+ .content2-container-2col-txtright-40px, .content3-container-2col-txtright-40px {float: right; width: 220px; margin: 0px; padding: 0px;}
205
+ .content2-container-2col-txtright-20px, .content3-container-2col-txtright-20px {float: right; width: 240px; margin: 0px; padding: 0px;}
206
+ .content2-container-3col-left, .content3-container-3col-left {overflow: hidden; float: left; width: 160px; margin: 0px 25px 0px 0px; padding: 0px;}
207
+ .content2-container-3col-middle, .content3-container-3col-middle {overflow: hidden; float: left; width: 160px; margin: 0px; padding: 0px;}
208
+ .content2-container-3col-right, .content3-container-3col-right {overflow: hidden; float: right; width: 160px; margin: 0px; padding: 0px;}
209
+ .content2-container-3col-txtright-60px, .content3-container-3col-txtright-60px {overflow: hidden; float: right; width: 101px; margin: 0px; padding: 0px;}
210
+ .content2-container-3col-txtright-40px, .content3-container-3col-txtright-40px {overflow: hidden; float: right; width: 121px; margin: 0px; padding: 0px;}
211
+ .content2-container-3col-txtright-20px, .content3-container-3col-txtright-20px {overflow: hidden; float: right; width: 141px; margin: 0px; padding: 0px;}
212
+ .content2-container-3col-txtright-10px, .content3-container-3col-txtright-10px {overflow: hidden; float: right; width: 151px; margin: 0px; padding: 0px;}
213
+ .content2-pagetitle, .content3-pagetitle {overflow: hidden; width: 510px; margin: 0px 0px 10px 0px; padding: 0px 0px 2px 0px; border-bottom: solid 3px rgb(88,144,168); color: rgb(88,144,168); font-weight: bold; font-size: 160%;}
214
+
215
+ /*********************************/
216
+ /* SECTION 6 - COMMON PARAMETERS */
217
+ /*********************************/
218
+
219
+ /*--------------------*/
220
+ /* 6.1 - Content Area */
221
+ /*--------------------*/
222
+
223
+ /* Titles and textboxes*/
224
+ .content-title-noshade-size1 {margin: 0px; padding: 0px; color: rgb(88,144,168); font-weight: bold; font-size: 120%;}
225
+ .content-title-noshade-size2 {margin: 0px; padding: 0px; color: rgb(88,144,168); font-weight: bold; font-size: 130%;}
226
+ .content-title-noshade-size3 {margin: 0px; padding: 0px; color: rgb(88,144,168); font-weight: bold; font-size: 140%;}
227
+ .content-title-noshade-size4 {margin: 0px; padding: 0px; color: rgb(88,144,168); font-weight: bold; font-size: 160%;}
228
+ .content-title-noshade-size5 {margin: 0px; padding: 0px; color: rgb(88,144,168); font-weight: bold; font-size: 200%;}
229
+ .content-title-shade-size1 {margin: 0px; padding: 0px 10px 0px 10px; background-color: rgb(215,215,215); color: rgb(100,100,100); color: rgb(88,144,168); font-weight: bold; font-size: 130%;}
230
+ .content-title-shade-size2 {margin: 0px; padding: 0px 10px 0px 10px; background-color: rgb(215,215,215); color: rgb(88,144,168); font-weight: bold; font-size: 150%;}
231
+ .content-title-shade-size3 {margin: 0px; padding: 0px 10px 0px 10px; background-color: rgb(215,215,215); color: rgb(88,144,168); font-weight: bold; font-size: 160%;}
232
+ .content-title-shade-size4 {margin: 0px; padding: 0px 10px 0px 10px; background-color: rgb(215,215,215); color: rgb(88,144,168); font-weight: bold; font-size: 180%;}
233
+ .content-title-shade-size5 {margin: 0px; padding: 0px 10px 0px 10px; background-color: rgb(215,215,215); color: rgb(88,144,168); font-weight: bold; font-size: 200%;}
234
+ .content-subtitle-noshade-size1 {margin: 0px; padding: 0px; color: rgb(88,144,168); font-weight: bold; font-size: 110%;}
235
+ .content-subtitle-noshade-size2 {margin: 0px; padding: 0px; color: rgb(88,144,168); font-weight: bold; font-size: 120%;}
236
+ .content-subtitle-noshade-size3 {margin: 0px; padding: 0px; color: rgb(88,144,168); font-weight: bold; font-size: 130%;}
237
+ .content-subtitle-noshade-size4 {margin: 0px; padding: 0px; color: rgb(88,144,168); font-weight: bold; font-size: 140%;}
238
+ .content-subtitle-noshade-size5 {margin: 0px; padding: 0px; color: rgb(88,144,168); font-weight: bold; font-size: 150%;}
239
+ .content-subtitle-shade-size1 {margin: 0px; padding: 0px 10px 3px 10px; background-color: rgb(215,215,215); color: rgb(88,144,168); font-weight: bold; font-size: 110%;}
240
+ .content-subtitle-shade-size2 {margin: 0px; padding: 0px 10px 3px 10px; background-color: rgb(215,215,215); color: rgb(88,144,168); font-weight: bold; font-size: 120%;}
241
+ .content-subtitle-shade-size3 {margin: 0px; padding: 0px 10px 3px 10px; background-color: rgb(215,215,215); color: rgb(88,144,168); font-weight: bold; font-size: 130%;}
242
+ .content-subtitle-shade-size4 {margin: 0px; padding: 0px 10px 3px 10px; background-color: rgb(215,215,215); color: rgb(88,144,168); font-weight: bold; font-size: 140%;}
243
+ .content-subtitle-shade-size5 {margin: 0px; padding: 0px 10px 3px 10px; background-color: rgb(215,215,215); color: rgb(88,144,168); font-weight: bold; font-size: 150%;}
244
+ .content-txtbox-noshade {margin: 0px; padding: 7px 0px 0px 0px; background-color: rgb(255,255,255);}
245
+ .content-txtbox-shade {margin: 0px; padding: 7px 10px 5px 10px; background-color: rgb(235,235,235);}
246
+ .warning, .content-txtbox-warning {margin: 0px; padding: 7px 10px 5px 10px; background-color: rgb(255,210,210);}
247
+
248
+ /* Headings */
249
+ h1 {margin: 1.0em 0px 0.5em 0px; font-weight: bold; font-size: 140%;}
250
+ h2 {margin: 1.0em 0px 0.5em 0px; font-weight: bold; font-size: 130%;}
251
+ h3 {margin: 1.0em 0px 0.5em 0px; font-weight: bold; font-style: italic; font-size: 120%;}
252
+ h4 {margin: 1.0em 0px 0.5em 0px; font-weight: bold; font-size: 110%;}
253
+ /*h5 {margin: 0px 0px 0.2em 0px; font-weight: bold; font-size: 110%;}
254
+ h6 {margin: 0px 0px 0.2em 0px;font-weight: bold; font-style: italic; font-size: 110%;}*/
255
+
256
+ /* Paragraphs */
257
+ /*
258
+ li {margin: 0px 0px 0.5em 0px; padding: 0px; line-height: 1.3em; font-family: arial, sans serif; font-size: 12pt; }
259
+ li p {margin: 0px 0px 0.5em 0px; padding: 0px; line-height: 1.3em; font-family: arial, sans serif; font-size: 12pt; }
260
+ p {margin: 0px 0px 0.5em 0px; padding: 0px; line-height: 1.3em; font-family: arial, sans serif; font-size: 12pt; }
261
+ */
262
+ p.readmore {margin: 1.0em 0px 0.5em 0px; padding: 0px; line-height: 1.2em; font-size: 110%; }
263
+ p.quote {margin: 0em 30px 0.6em 30px; line-height: 120%; font-size: 120%;}
264
+ p.embed {float: left; width: 120px; margin: 7px 7px 5px 0px; padding: 5px 5px 5px 5px; background-color: rgb(238,237,249); font-style: italic; font-weight: bold; line-height: 1.2em; font-size: 140%;}
265
+ p.embed-caption {float: left; margin: 5px 0px 0px 0px; padding: 0px; font-style: italic; font-weight: normal; line-height: 1.2em; font-size: 70%;}
266
+
267
+ /* Quote */
268
+ p.quote {clear: left; margin: 0em 30px 0.6em 30px; line-height: 120%; font-size: 110%;}
269
+
270
+ /* Embedded emphasis */
271
+ .embed {float: left; width: 120px; margin: 2px 7px 2px 0px; padding: 5px 5px 5px 5px; background-color: rgb(238,237,249); font-style: italic; font-weight: bold; line-height: 1.2em; font-size: 140%;}
272
+ .embed-caption {float: left; margin: 5px 0px 0px 0px; padding: 0px; font-style: italic; font-weight: normal; line-height: 1.2em; font-size: 70%;}
273
+
274
+ /* Lists */
275
+ ul.noindent {margin: 0px 0px 7px 15px; padding: 0px; list-style-type: disc; list-style-position: outside; }
276
+ ul.indent {margin: 0px 0px 7px 15px; padding: 0px 0px 0px 15px; list-style-type: disc; font-family: arial; }
277
+ ol {margin: 0px 0px 0px 9px; padding: 0px 0px 0px 25px; list-style-type: decimal; list-style-position: outside; }
278
+ ul.linklist-noindent {margin: -0.3em 0px 0.5em 0px; padding: 0px; list-style-type: none; line-height: 1.2em; }
279
+ ul.linklist-indent {margin: -0.3em 0px 0.5em 0px; padding: 0px 0px 0px 10px; list-style-type: none; line-height: 1.2em; }
280
+
281
+ /* Tables */
282
+ .table {clear: left; margin: 0.5em 0px 0.2em 30px; border: solid 1px rgb(150,150,150); empty-cells: show; border-collapse: collapse; background-color: rgb(233,232,244);}
283
+ .table tr {margin: 0px; padding: 0px;}
284
+ .table td {padding: 2px 7px 2px 7px; border: solid 1px rgb(150,150,150); text-align: left; font-size: 120%;}
285
+ .table th {margin: 0px; padding: 2px 7px 2px 7px; border: solid 1px rgb(150,150,150); empty-cells: show; text-align: left; font-size: 120%; }
286
+ .table-caption {margin: 0.5em 0px 1.0em 30px; padding: 0px; clear: both; text-align: left; font-size: 120%;}
287
+
288
+ /* Images */
289
+ .img-left-noborder-notopmargin {float: left; margin: 0px 10px 0px 0px;}
290
+ .img-left-noborder-topmargin {float: left; margin: 3px 10px 0px 0px;}
291
+ .img-left-border-notopmargin {float: left; margin: 0px 10px 0px 0px; border: solid 1px rgb(150,150,150);}
292
+ .img-left-border-topmargin {float: left; margin: 3px 10px 0px 0px; border: solid 1px rgb(150,150,150);}
293
+ .img-right-noborder-notopmargin {float: right; margin: 0px 0px 0px 10px;}
294
+ .img-right-noborder-topmargin {float: right; margin: 3px 0px 0px 10px;}
295
+ .img-right-border-notopmargin {float: right; margin: 0px 0px 0px 10px; border: solid 1px rgb(150,150,150);}
296
+ .img-right-border-topmargin {float: right; margin: 3px 0px 0px 10px; border: solid 1px rgb(150,150,150);}
297
+
298
+ /*--------------------*/
299
+ /* 6.2 - Sidebar Area */
300
+ /*--------------------*/
301
+ .sidebar {overflow: hidden; float: right; width: 160px; min-height: 500px; margin: 0px; padding: 0px 0px 10px 0px; text-align: left; color: rgb(75,75,75);}
302
+ .sidebar-maintitle {margin: 0px 0px 10px 0px; padding: 3px 10px 2px 10px; background-color: rgb(156,186,214); color: rgb(255,255,255); text-transform: uppercase; font-weight: bold; font-size: 120%;}
303
+ .sidebar-title-noshade {margin: 0px; padding: 2px 10px 3px 10px; border-top: solid 1px rgb(215,215,215); color: rgb(75,75,75); font-weight: bold; font-size: 120%;}
304
+ .sidebar-title-shade {margin: 0px; padding: 2px 10px 3px 10px; background-color: rgb(215,215,215); color: rgb(75,75,75); font-weight: bold; font-size: 120%;}
305
+ .sidebar-txtbox-noshade {margin: 0px 0px 10px 0px; padding: 2px 10px 3px 10px;}
306
+ .sidebar-txtbox-shade {margin: 0px 0px 10px 0px; padding: 2px 10px 3px 10px; background-color: rgb(235,235,235);}
307
+ .sidebar-txtbox-noshade p {margin: 0px 0px 5px 0px; padding: 0px; line-height: 1.25em; font-size: 110%;}
308
+ .sidebar-txtbox-shade p {margin: 0px 0px 5px 0px; padding: 0px; line-height: 1.25em; font-size: 110%;}
309
+
310
+ /*--------------------*/
311
+ /* 6.3 - Footer Area */
312
+ /*--------------------*/
313
+ .footer {overflow: hidden; clear: both; width: 770px; height: 1.5em; margin: 0px; padding: 0.5em 0px 0.5em 0px; border-top: solid 1px rgb(125,125,125); background-color: rgb(128,161,202); color: rgb(255,255,255); font-size: 1.0em;}
314
+ .footer p {margin: 0px; padding: 0px; text-align: center; line-height: 1.3em; font-size: 110%;}
315
+
316
+ /*-------------------*/
317
+ /* 6.4 - Hyperlinks */
318
+ /*-------------------*/
319
+ .content1 a, .content2 a, .content3 a, .sidebar-txtbox-noshade a, .sidebar-txtbox-shade a {color: rgb(75,75,75); text-decoration: underline;}
320
+ .content1 a:hover, .content2 a:hover, .content3 a:hover, .sidebar-txtbox-noshade a:hover, .sidebar-txtbox-shade a:hover {color: rgb(0,0,0); text-decoration: none;}
321
+ .content1 a:visited, .content2 a:visited, .content3 a:visited, .sidebar-txtbox-noshade a:visited, .sidebar-txtbox-shade a:visited {color: rgb(150,150,150);}
322
+ .footer a {color: rgb(255,255,255); text-decoration: underline;}
323
+ .footer a:hover {color: rgb(0,0,0); text-decoration: none;}
324
+
325
+ /*******************************/
326
+ /* SECTION 7 - GENERIC CLASSES */
327
+ /*******************************/
328
+
329
+ /*----------------------------*/
330
+ /* 7.1 - Title decoration box */
331
+ /*----------------------------*/
332
+ .box-on {float: left; min-width: 0.3em; margin-right: 0.2em; padding: 0px 0.2em 0px 0.3em;}
333
+ .box-off {display: none;}
334
+ /* html box-on {width: 1%;} *//* IE6-Hack for min-width. Also compliant with IE7-Beta2 */
335
+
336
+ /*-----------------------------*/
337
+ /* 7.2 - Horizontal alignments */
338
+ /*-----------------------------*/
339
+ .align-left {text-align: left;}
340
+ .align-right {text-align: right;}
341
+ .align-center {text-align: center;}
342
+ p.align-center {margin-left: auto; margin-right: auto;}
343
+
344
+ /*------------------*/
345
+ /* 7.3 Text colors */
346
+ /*------------------*/
347
+ .txt-white {color: rgb(255,255,255);}
348
+ .txt-black {color: rgb(0,0,0);}
349
+
350
+ .txt-grey01 {color: rgb(242,242,242);}
351
+ .txt-grey02 {color: rgb(230,230,230);}
352
+ .txt-grey03 {color: rgb(217,217,217);}
353
+ .txt-grey04 {color: rgb(204,204,204);}
354
+ .txt-grey05 {color: rgb(191,191,191);}
355
+ .txt-grey06 {color: rgb(178,178,178);}
356
+ .txt-grey07 {color: rgb(153,153,153);}
357
+ .txt-grey08 {color: rgb(127,127,127);}
358
+ .txt-grey09 {color: rgb(89,89,89);}
359
+ .txt-grey10 {color: rgb(51,51,51);}
360
+
361
+ .txt-yellow01 {color: rgb(254,252,232);}
362
+ .txt-yellow02 {color: rgb(253,249,201);}
363
+ .txt-yellow03 {color: rgb(253,246,185);}
364
+ .txt-yellow04 {color: rgb(252,243,162);}
365
+ .txt-yellow05 {color: rgb(251,239,139);}
366
+ .txt-yellow06 {color: rgb(250,236,116);}
367
+ .txt-yellow07 {color: rgb(249,233,93);}
368
+ .txt-yellow08 {color: rgb(249,230,69);}
369
+ .txt-yellow09 {color: rgb(248,227,46);}
370
+ .txt-yellow10 {color: rgb(247,224,23);}
371
+
372
+ .txt-blue01 {color: rgb(238,237,249);}
373
+ .txt-blue02 {color: rgb(222,220,242);}
374
+ .txt-blue03 {color: rgb(205,202,236);}
375
+ .txt-blue04 {color: rgb(189,185,229);}
376
+ .txt-blue05 {color: rgb(172,167,223);}
377
+ .txt-blue06 {color: rgb(155,149,217);}
378
+ .txt-blue07 {color: rgb(139,132,210);}
379
+ .txt-blue08 {color: rgb(122,114,204);}
380
+ .txt-blue09 {color: rgb(106,97,197);}
381
+ .txt-blue10 {color: rgb(89,79,191);}
382
+
383
+ .txt-green01 {color: rgb(237,246,229);}
384
+ .txt-green02 {color: rgb(220,238,204);}
385
+ .txt-green03 {color: rgb(202,229,178);}
386
+ .txt-green04 {color: rgb(185,220,153);}
387
+ .txt-green05 {color: rgb(167,211,127);}
388
+ .txt-green06 {color: rgb(149,203,102);}
389
+ .txt-green07 {color: rgb(132,194,76);}
390
+ .txt-green08 {color: rgb(114,185,51);}
391
+ .txt-green09 {color: rgb(97,177,25);}
392
+ .txt-green10 {color: rgb(79,168,0);}
393
+
394
+ .txt-red01 {color: rgb(252,235,233);}
395
+ .txt-red02 {color: rgb(248,216,211);}
396
+ .txt-red03 {color: rgb(245,196,188);}
397
+ .txt-red04 {color: rgb(242,177,166);}
398
+ .txt-red05 {color: rgb(238,157,144);}
399
+ .txt-red06 {color: rgb(235,137,122);}
400
+ .txt-red07 {color: rgb(232,118,100);}
401
+ .txt-red08 {color: rgb(229,98,77);}
402
+ .txt-red09 {color: rgb(225,79,55);}
403
+ .txt-red10 {color: rgb(222,59,33);}
404
+
405
+ /*-------------------------*/
406
+ /* 7.4 - Background colors */
407
+ /*-------------------------*/
408
+ .bg-white {background-color: rgb(255,255,255);}
409
+ .bg-black {background-color: rgb(0,0,0);}
410
+
411
+ .bg-grey01 {background-color: rgb(242,242,242);}
412
+ .bg-grey02 {background-color: rgb(230,230,230);}
413
+ .bg-grey03 {background-color: rgb(217,217,217);}
414
+ .bg-grey04 {background-color: rgb(204,204,204);}
415
+ .bg-grey05 {background-color: rgb(191,191,191);}
416
+ .bg-grey06 {background-color: rgb(178,178,178);}
417
+ .bg-grey07 {background-color: rgb(153,153,153);}
418
+ .bg-grey08 {background-color: rgb(127,127,127);}
419
+ .bg-grey09 {background-color: rgb(89,89,89);}
420
+ .bg-grey10 {background-color: rgb(51,51,51);}
421
+
422
+ .bg-yellow01 {background-color: rgb(254,252,232);}
423
+ .bg-yellow02 {background-color: rgb(253,249,201);}
424
+ .bg-yellow03 {background-color: rgb(253,246,185);}
425
+ .bg-yellow04 {background-color: rgb(252,243,162);}
426
+ .bg-yellow05 {background-color: rgb(251,239,139);}
427
+ .bg-yellow06 {background-color: rgb(250,236,116);}
428
+ .bg-yellow07 {background-color: rgb(249,233,93);}
429
+ .bg-yellow08 {background-color: rgb(249,230,69);}
430
+ .bg-yellow09 {background-color: rgb(248,227,46);}
431
+ .bg-yellow10 {background-color: rgb(247,224,23);}
432
+
433
+ .bg-blue01 {background-color: rgb(238,237,249);}
434
+ .bg-blue02 {background-color: rgb(222,220,242);}
435
+ .bg-blue03 {background-color: rgb(205,202,236);}
436
+ .bg-blue04 {background-color: rgb(189,185,229);}
437
+ .bg-blue05 {background-color: rgb(172,167,223);}
438
+ .bg-blue06 {background-color: rgb(155,149,217);}
439
+ .bg-blue07 {background-color: rgb(139,132,210);}
440
+ .bg-blue08 {background-color: rgb(122,114,204);}
441
+ .bg-blue09 {background-color: rgb(106,97,197);}
442
+ .bg-blue10 {background-color: rgb(89,79,191);}
443
+
444
+ .bg-green01 {background-color: rgb(237,246,229);}
445
+ .bg-green02 {background-color: rgb(220,238,204);}
446
+ .bg-green03 {background-color: rgb(202,229,178);}
447
+ .bg-green04 {background-color: rgb(185,220,153);}
448
+ .bg-green05 {background-color: rgb(167,211,127);}
449
+ .bg-green06 {background-color: rgb(149,203,102);}
450
+ .bg-green07 {background-color: rgb(132,194,76);}
451
+ .bg-green08 {background-color: rgb(114,185,51);}
452
+ .bg-green09 {background-color: rgb(97,177,25);}
453
+ .bg-green10 {background-color: rgb(79,168,0);}
454
+
455
+ .bg-red01 {background-color: rgb(252,235,233);}
456
+ .bg-red02 {background-color: rgb(248,216,211);}
457
+ .bg-red03 {background-color: rgb(245,196,188);}
458
+ .bg-red04 {background-color: rgb(242,177,166);}
459
+ .bg-red05 {background-color: rgb(238,157,144);}
460
+ .bg-red06 {background-color: rgb(235,137,122);}
461
+ .bg-red07 {background-color: rgb(232,118,100);}
462
+ .bg-red08 {background-color: rgb(229,98,77);}
463
+ .bg-red09 {background-color: rgb(225,79,55);}
464
+ .bg-red10 {background-color: rgb(222,59,33);}
465
+
466
+ /*---------------------------*/
467
+ /* 7.5 Bottom border colors */
468
+ /*---------------------------*/
469
+ .line-box {border-bottom: solid 1px rgb(200,200,200); padding-bottom: 15px; margin: 0px 0px 15px 0px;}
470
+
471
+ .line-white {border-bottom: solid 1px rgb(255,255,255); padding-bottom: 2px; margin: 0px 0px 1px 0px;}
472
+ .line-black {border-bottom: solid 1px rgb(0,0,0); padding-bottom: 2px; margin: 0px 0px 1px 0px;}
473
+
474
+ .line-grey01 {border-bottom: solid 1px rgb(242,242,242); padding-bottom: 2px; margin-bottom: 1px;}
475
+ .line-grey02 {border-bottom: solid 1px rgb(230,230,230); padding-bottom: 2px; margin-bottom: 1px;}
476
+ .line-grey03 {border-bottom: solid 1px rgb(217,217,217); padding-bottom: 2px; margin-bottom: 1px;}
477
+ .line-grey04 {border-bottom: solid 1px rgb(204,204,204); padding-bottom: 2px; margin-bottom: 1px;}
478
+ .line-grey05 {border-bottom: solid 1px rgb(191,191,191); padding-bottom: 2px; margin-bottom: 1px;}
479
+ .line-grey06 {border-bottom: solid 1px rgb(178,178,178); padding-bottom: 2px; margin-bottom: 1px;}
480
+ .line-grey07 {border-bottom: solid 1px rgb(153,153,153); padding-bottom: 2px; margin-bottom: 1px;}
481
+ .line-grey08 {border-bottom: solid 1px rgb(127,127,127); padding-bottom: 2px; margin-bottom: 1px;}
482
+ .line-grey09 {border-bottom: solid 1px rgb(89,89,89); padding-bottom: 2px; margin-bottom: 1px;}
483
+ .line-grey10 {border-bottom: solid 1px rgb(51,51,51); padding-bottom: 2px; margin-bottom: 1px;}
484
+
485
+ .line-yellow01 {border-bottom: solid 1px rgb(254,252,232); padding-bottom: 2px; margin-bottom: 1px;}
486
+ .line-yellow02 {border-bottom: solid 1px rgb(253,249,201); padding-bottom: 2px; margin-bottom: 1px;}
487
+ .line-yellow03 {border-bottom: solid 1px rgb(253,246,185); padding-bottom: 2px; margin-bottom: 1px;}
488
+ .line-yellow04 {border-bottom: solid 1px rgb(252,243,162); padding-bottom: 2px; margin-bottom: 1px;}
489
+ .line-yellow05 {border-bottom: solid 1px rgb(251,239,139); padding-bottom: 2px; margin-bottom: 1px;}
490
+ .line-yellow06 {border-bottom: solid 1px rgb(250,236,116); padding-bottom: 2px; margin-bottom: 1px;}
491
+ .line-yellow07 {border-bottom: solid 1px rgb(249,233,93); padding-bottom: 2px; margin-bottom: 1px;}
492
+ .line-yellow08 {border-bottom: solid 1px rgb(249,230,69); padding-bottom: 2px; margin-bottom: 1px;}
493
+ .line-yellow09 {border-bottom: solid 1px rgb(248,227,46); padding-bottom: 2px; margin-bottom: 1px;}
494
+ .line-yellow10 {border-bottom: solid 1px rgb(247,224,23); padding-bottom: 2px; margin-bottom: 1px;}
495
+
496
+ .line-blue01 {border-bottom: solid 1px rgb(238,237,249); padding-bottom: 2px; margin-bottom: 1px;}
497
+ .line-blue02 {border-bottom: solid 1px rgb(222,220,242); padding-bottom: 2px; margin-bottom: 1px;}
498
+ .line-blue03 {border-bottom: solid 1px rgb(205,202,236); padding-bottom: 2px; margin-bottom: 1px;}
499
+ .line-blue04 {border-bottom: solid 1px rgb(189,185,229); padding-bottom: 2px; margin-bottom: 1px;}
500
+ .line-blue05 {border-bottom: solid 1px rgb(172,167,223); padding-bottom: 2px; margin-bottom: 1px;}
501
+ .line-blue06 {border-bottom: solid 1px rgb(155,149,217); padding-bottom: 2px; margin-bottom: 1px;}
502
+ .line-blue07 {border-bottom: solid 1px rgb(139,132,210); padding-bottom: 2px; margin-bottom: 1px;}
503
+ .line-blue08 {border-bottom: solid 1px rgb(122,114,204); padding-bottom: 2px; margin-bottom: 1px;}
504
+ .line-blue09 {border-bottom: solid 1px rgb(106,97,197); padding-bottom: 2px; margin-bottom: 1px;}
505
+ .line-blue10 {border-bottom: solid 1px rgb(89,79,191); padding-bottom: 2px; margin-bottom: 1px;}
506
+
507
+ .line-green01 {border-bottom: solid 1px rgb(237,246,229); padding-bottom: 2px; margin-bottom: 1px;}
508
+ .line-green02 {border-bottom: solid 1px rgb(220,238,204); padding-bottom: 2px; margin-bottom: 1px;}
509
+ .line-green03 {border-bottom: solid 1px rgb(202,229,178); padding-bottom: 2px; margin-bottom: 1px;}
510
+ .line-green04 {border-bottom: solid 1px rgb(185,220,153); padding-bottom: 2px; margin-bottom: 1px;}
511
+ .line-green05 {border-bottom: solid 1px rgb(167,211,127); padding-bottom: 2px; margin-bottom: 1px;}
512
+ .line-green06 {border-bottom: solid 1px rgb(149,203,102); padding-bottom: 2px; margin-bottom: 1px;}
513
+ .line-green07 {border-bottom: solid 1px rgb(132,194,76); padding-bottom: 2px; margin-bottom: 1px;}
514
+ .line-green08 {border-bottom: solid 1px rgb(114,185,51); padding-bottom: 2px; margin-bottom: 1px;}
515
+ .line-green09 {border-bottom: solid 1px rgb(97,177,25); padding-bottom: 2px; margin-bottom: 1px;}
516
+ .line-green10 {border-bottom: solid 1px rgb(79,168,0); padding-bottom: 2px; margin-bottom: 1px;}
517
+
518
+ .line-red01 {border-bottom: solid 1px rgb(252,235,233); padding-bottom: 2px; margin-bottom: 1px;}
519
+ .line-red02 {border-bottom: solid 1px rgb(248,216,211); padding-bottom: 2px; margin-bottom: 1px;}
520
+ .line-red03 {border-bottom: solid 1px rgb(245,196,188); padding-bottom: 2px; margin-bottom: 1px;}
521
+ .line-red04 {border-bottom: solid 1px rgb(242,177,166); padding-bottom: 2px; margin-bottom: 1px;}
522
+ .line-red05 {border-bottom: solid 1px rgb(238,157,144); padding-bottom: 2px; margin-bottom: 1px;}
523
+ .line-red06 {border-bottom: solid 1px rgb(235,137,122); padding-bottom: 2px; margin-bottom: 1px;}
524
+ .line-red07 {border-bottom: solid 1px rgb(232,118,100); padding-bottom: 2px; margin-bottom: 1px;}
525
+ .line-red08 {border-bottom: solid 1px rgb(229,98,77); padding-bottom: 2px; margin-bottom: 1px;}
526
+ .line-red09 {border-bottom: solid 1px rgb(225,79,55); padding-bottom: 2px; margin-bottom: 1px;}
527
+ .line-red10 {border-bottom: solid 1px rgb(222,59,33); padding-bottom: 2px; margin-bottom: 1px;}
528
+
529
+ /*****************************/
530
+ /* SECTION 8 - MISCELLANEOUS */
531
+ /*****************************/
532
+ .showcode {font-family: monospace; font-weight: bold; color: rgb(255,0,0);}
533
+ .CodeRay {font-family: monospace; font-weight: normal; }
534
+
535
+ pre {
536
+ padding:5px;
537
+ background:#e4e4ff;
538
+ color:#222;
539
+ border:2px solid #ddd;
540
+ margin-top: .2em;
541
+ margin-bottom: .2em;
542
+ margin-left: 0em;
543
+ margin-right: 0em;
544
+ font-family: monospace;
545
+ font-size: 80%;
546
+ }
547
+
548
+ pre.vcs {
549
+ line-height: 1.2em;
550
+ }
551
+
552
+ .clear {clear: both;}
553
+ .hide {display: none;}
554
+ br {clear: none;}
555
+
556
+ .note, .block{
557
+ padding:20px;
558
+ background:#eee;
559
+ color:#222;
560
+ border:2px solid #ddd;
561
+ margin-top: 3em;
562
+ margin-bottom: 3em;
563
+ margin-left: 2em;
564
+ margin-right: 2em;
565
+ }
566
+
567
+ .cmdline, .commandline {
568
+ padding:5px;
569
+ background:#e4e4ff;
570
+ color:#222;
571
+ border:2px solid #ddd;
572
+ margin-top: 1em;
573
+ margin-bottom: 1em;
574
+ margin-left: 0em;
575
+ margin-right: 0em;
576
+ font-family: monospace;
577
+ }
578
+
579
+ .indent {
580
+ margin-left: 4em;
581
+ }
582
+
583
+ a.highlight {
584
+ font-weight: bold;
585
+ }
586
+
587
+ a.highlight, a.highlight:hover, a.highlight:visited {
588
+ color: rgb(88,144,168);
589
+ }
590
+
591
+ table.short_doc {
592
+ margin-top: .2em;
593
+ background-color: rgb(238,237,249);
594
+ width: 100%;
595
+ }
596
+ table.short_doc td.short_doc {
597
+ font-style: italic;
598
+ }
599
+ table.list_alt {
600
+ background-color: rgb(230,228,249);
601
+ }
602
+ div.tagcloud {
603
+ margin-top: 2em;
604
+ margin-bottom: 2em;
605
+ }
606
+ div#index-table {
607
+ margin-top: 1em;
608
+ }
609
+ .half-size {
610
+ width: 250px;
611
+ }
612
+ div.vcs_info {
613
+ margin-left: 2em;
614
+ }
615
+ div.vcs span.toggle {
616
+ font-size: 70%;
617
+ margin-left: .5em;
618
+ font-weight: bold;
619
+ font-style: italic;
620
+ }
621
+ span.vcs_override {
622
+ font-size: 90%;
623
+ font-weight: bold;
624
+ line-height: 1em;
625
+ }
626
+ .help_trigger {
627
+ margin-left: .5em;
628
+ }
629
+ .help {
630
+ background-color: rgb(238,237,249);
631
+ margin: .5em;
632
+ font-size: 80%;
633
+ margin: .5em 2em .5em 2em;
634
+ padding: .3em;
635
+ font-style: italic;
636
+ line-height: 1.2em;
637
+ }
638
+
639
+
640
+ .package_status {
641
+ width: 100%;
642
+ }
643
+ .package_status .name {
644
+ text-align: left;
645
+ background-color: rgb(176,206,234);
646
+ }
647
+ .package_status .name .error {
648
+ text-align: left;
649
+ background-color: rgb(244,146,146);
650
+ }
651
+ .error_message td {
652
+ padding-left: 1em;
653
+ background-color: rgb(244,182,182);
654
+ }
655
+ .message td {
656
+ padding-left: 1em;
657
+ background-color: rgb(219,230,241);
658
+ }
659
+ .from_commits_header td {
660
+ padding-left: 1em;
661
+ background-color: rgb(219,230,241);
662
+ }
663
+ .to_commits_header td {
664
+ padding-left: 1em;
665
+ background-color: rgb(219,230,241);
666
+ }
667
+ .from_commits td {
668
+ padding-left: 1em;
669
+ background-color: rgb(219,230,241);
670
+ }
671
+ .to_commits td {
672
+ padding-left: 1em;
673
+ background-color: rgb(219,230,241);
674
+ }
675
+
676
+ .news_publication_date {
677
+ font-size: 80%;
678
+ font-style: italic;
679
+ }
680
+
681
+ .caption {
682
+ margin-left: 50px;
683
+ margin-right: 50px;
684
+ font-size: 90%;
685
+ font-style: italic;
686
+ }
687
+