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
@@ -1,249 +0,0 @@
1
- =begin
2
- ** Form generated from reading ui file 'replay_controls.ui'
3
- **
4
- ** Created: Mon Jan 25 15:21:37 2010
5
- ** by: Qt User Interface Compiler version 4.5.3
6
- **
7
- ** WARNING! All changes made in this file will be lost when recompiling ui file!
8
- =end
9
-
10
- class Ui_ReplayControls
11
- attr_reader :actionBookmarksAdd
12
- attr_reader :actionGoto
13
- attr_reader :actionBookmarksSave
14
- attr_reader :actionBookmarksSaveAs
15
- attr_reader :actionBookmarksLoad
16
- attr_reader :actionBookmarksSetMark
17
- attr_reader :vboxLayout
18
- attr_reader :grp_play
19
- attr_reader :verticalLayout
20
- attr_reader :horizontalLayout
21
- attr_reader :progress
22
- attr_reader :goto
23
- attr_reader :time_lcd
24
- attr_reader :hboxLayout
25
- attr_reader :textLabel1
26
- attr_reader :speed
27
- attr_reader :slower
28
- attr_reader :play
29
- attr_reader :faster
30
- attr_reader :horizontalLayout_2
31
- attr_reader :bookmarks
32
- attr_reader :spacerItem
33
- attr_reader :gridLayout
34
- attr_reader :seek_start
35
- attr_reader :play_step
36
- attr_reader :play_next_nonempty
37
-
38
- def setupUi(replayControls)
39
- if replayControls.objectName.nil?
40
- replayControls.objectName = "replayControls"
41
- end
42
- replayControls.resize(442, 167)
43
- @actionBookmarksAdd = Qt::Action.new(replayControls)
44
- @actionBookmarksAdd.objectName = "actionBookmarksAdd"
45
- @actionGoto = Qt::Action.new(replayControls)
46
- @actionGoto.objectName = "actionGoto"
47
- @actionGoto.shortcutContext = Qt::ApplicationShortcut
48
- @actionBookmarksSave = Qt::Action.new(replayControls)
49
- @actionBookmarksSave.objectName = "actionBookmarksSave"
50
- @actionBookmarksSave.enabled = false
51
- @actionBookmarksSaveAs = Qt::Action.new(replayControls)
52
- @actionBookmarksSaveAs.objectName = "actionBookmarksSaveAs"
53
- @actionBookmarksSaveAs.enabled = true
54
- @actionBookmarksLoad = Qt::Action.new(replayControls)
55
- @actionBookmarksLoad.objectName = "actionBookmarksLoad"
56
- @actionBookmarksSetMark = Qt::Action.new(replayControls)
57
- @actionBookmarksSetMark.objectName = "actionBookmarksSetMark"
58
- @vboxLayout = Qt::VBoxLayout.new(replayControls)
59
- @vboxLayout.objectName = "vboxLayout"
60
- @grp_play = Qt::GroupBox.new(replayControls)
61
- @grp_play.objectName = "grp_play"
62
- @verticalLayout = Qt::VBoxLayout.new(@grp_play)
63
- @verticalLayout.objectName = "verticalLayout"
64
- @horizontalLayout = Qt::HBoxLayout.new()
65
- @horizontalLayout.objectName = "horizontalLayout"
66
- @progress = Qt::ProgressBar.new(@grp_play)
67
- @progress.objectName = "progress"
68
- @progress.value = 0
69
- @progress.orientation = Qt::Horizontal
70
-
71
- @horizontalLayout.addWidget(@progress)
72
-
73
- @goto = Qt::PushButton.new(@grp_play)
74
- @goto.objectName = "goto"
75
-
76
- @horizontalLayout.addWidget(@goto)
77
-
78
- @time_lcd = Qt::LCDNumber.new(@grp_play)
79
- @time_lcd.objectName = "time_lcd"
80
- @time_lcd.numDigits = 6
81
- @time_lcd.segmentStyle = Qt::LCDNumber::Flat
82
- @time_lcd.setProperty("value", Qt::Variant.new(0))
83
-
84
- @horizontalLayout.addWidget(@time_lcd)
85
-
86
-
87
- @verticalLayout.addLayout(@horizontalLayout)
88
-
89
- @hboxLayout = Qt::HBoxLayout.new()
90
- @hboxLayout.objectName = "hboxLayout"
91
- @textLabel1 = Qt::Label.new(@grp_play)
92
- @textLabel1.objectName = "textLabel1"
93
- @textLabel1.wordWrap = false
94
-
95
- @hboxLayout.addWidget(@textLabel1)
96
-
97
- @speed = Qt::LineEdit.new(@grp_play)
98
- @speed.objectName = "speed"
99
- @sizePolicy = Qt::SizePolicy.new(Qt::SizePolicy::Minimum, Qt::SizePolicy::Fixed)
100
- @sizePolicy.setHorizontalStretch(1)
101
- @sizePolicy.setVerticalStretch(0)
102
- @sizePolicy.heightForWidth = @speed.sizePolicy.hasHeightForWidth
103
- @speed.sizePolicy = @sizePolicy
104
- @speed.maximumSize = Qt::Size.new(80, 32767)
105
- @speed.alignment = Qt::AlignRight
106
-
107
- @hboxLayout.addWidget(@speed)
108
-
109
- @slower = Qt::PushButton.new(@grp_play)
110
- @slower.objectName = "slower"
111
-
112
- @hboxLayout.addWidget(@slower)
113
-
114
- @play = Qt::PushButton.new(@grp_play)
115
- @play.objectName = "play"
116
- @sizePolicy1 = Qt::SizePolicy.new(Qt::SizePolicy::MinimumExpanding, Qt::SizePolicy::Fixed)
117
- @sizePolicy1.setHorizontalStretch(2)
118
- @sizePolicy1.setVerticalStretch(0)
119
- @sizePolicy1.heightForWidth = @play.sizePolicy.hasHeightForWidth
120
- @play.sizePolicy = @sizePolicy1
121
- @play.checkable = true
122
-
123
- @hboxLayout.addWidget(@play)
124
-
125
- @faster = Qt::PushButton.new(@grp_play)
126
- @faster.objectName = "faster"
127
-
128
- @hboxLayout.addWidget(@faster)
129
-
130
-
131
- @verticalLayout.addLayout(@hboxLayout)
132
-
133
- @horizontalLayout_2 = Qt::HBoxLayout.new()
134
- @horizontalLayout_2.objectName = "horizontalLayout_2"
135
- @bookmarks = Qt::ToolButton.new(@grp_play)
136
- @bookmarks.objectName = "bookmarks"
137
- @bookmarks.popupMode = Qt::ToolButton::InstantPopup
138
- @bookmarks.toolButtonStyle = Qt::ToolButtonTextBesideIcon
139
- @bookmarks.arrowType = Qt::DownArrow
140
-
141
- @horizontalLayout_2.addWidget(@bookmarks)
142
-
143
- @spacerItem = Qt::SpacerItem.new(101, 20, Qt::SizePolicy::Expanding, Qt::SizePolicy::Minimum)
144
-
145
- @horizontalLayout_2.addItem(@spacerItem)
146
-
147
- @gridLayout = Qt::GridLayout.new()
148
- @gridLayout.objectName = "gridLayout"
149
- @seek_start = Qt::PushButton.new(@grp_play)
150
- @seek_start.objectName = "seek_start"
151
-
152
- @gridLayout.addWidget(@seek_start, 0, 0, 1, 1)
153
-
154
- @play_step = Qt::PushButton.new(@grp_play)
155
- @play_step.objectName = "play_step"
156
-
157
- @gridLayout.addWidget(@play_step, 0, 1, 1, 1)
158
-
159
- @play_next_nonempty = Qt::PushButton.new(@grp_play)
160
- @play_next_nonempty.objectName = "play_next_nonempty"
161
-
162
- @gridLayout.addWidget(@play_next_nonempty, 1, 0, 1, 2)
163
-
164
-
165
- @horizontalLayout_2.addLayout(@gridLayout)
166
-
167
-
168
- @verticalLayout.addLayout(@horizontalLayout_2)
169
-
170
- play_next_nonempty.raise()
171
- faster.raise()
172
-
173
- @vboxLayout.addWidget(@grp_play)
174
-
175
-
176
- retranslateUi(replayControls)
177
-
178
- Qt::MetaObject.connectSlotsByName(replayControls)
179
- end # setupUi
180
-
181
- def setup_ui(replayControls)
182
- setupUi(replayControls)
183
- end
184
-
185
- def retranslateUi(replayControls)
186
- replayControls.windowTitle = Qt::Application.translate("ReplayControls", "Form", nil, Qt::Application::UnicodeUTF8)
187
- @actionBookmarksAdd.text = Qt::Application.translate("ReplayControls", "Add...", nil, Qt::Application::UnicodeUTF8)
188
- @actionGoto.text = Qt::Application.translate("ReplayControls", "goto", nil, Qt::Application::UnicodeUTF8)
189
- @actionGoto.shortcut = Qt::Application.translate("ReplayControls", "Shift+G, G", nil, Qt::Application::UnicodeUTF8)
190
- @actionBookmarksSave.text = Qt::Application.translate("ReplayControls", "Save", nil, Qt::Application::UnicodeUTF8)
191
- @actionBookmarksSaveAs.text = Qt::Application.translate("ReplayControls", "Save As", nil, Qt::Application::UnicodeUTF8)
192
- @actionBookmarksLoad.text = Qt::Application.translate("ReplayControls", "Load", nil, Qt::Application::UnicodeUTF8)
193
- @actionBookmarksSetMark.text = Qt::Application.translate("ReplayControls", "Set mark", nil, Qt::Application::UnicodeUTF8)
194
- @grp_play.title = Qt::Application.translate("ReplayControls", "Play", nil, Qt::Application::UnicodeUTF8)
195
- @goto.text = Qt::Application.translate("ReplayControls", "&Goto", nil, Qt::Application::UnicodeUTF8)
196
- @textLabel1.text = Qt::Application.translate("ReplayControls", "Speed", nil, Qt::Application::UnicodeUTF8)
197
- @speed.toolTip = Qt::Application.translate("ReplayControls", "<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n" \
198
- "p, li { white-space: pre-wrap; }\n" \
199
- "</style></head><body style=\" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;\">\n" \
200
- "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-weight:600;\">Current playing speed</span></p>\n" \
201
- "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;\"><span style=\" font-weight:400;\">it is the factor between the time in the log file and the time of replay. For instance, 2 means that we replay twice as fast as in reality.</span></p>\n" \
202
- "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"></p></body></html>", nil, Qt::Application::UnicodeUTF8)
203
- @speed.text = Qt::Application.translate("ReplayControls", "1", nil, Qt::Application::UnicodeUTF8)
204
- @slower.toolTip = Qt::Application.translate("ReplayControls", "<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n" \
205
- "p, li { white-space: pre-wrap; }\n" \
206
- "</style></head><body style=\" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;\">\n" \
207
- "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Decrease speed</p></body></html>", nil, Qt::Application::UnicodeUTF8)
208
- @slower.text = Qt::Application.translate("ReplayControls", "Slower", nil, Qt::Application::UnicodeUTF8)
209
- @play.toolTip = Qt::Application.translate("ReplayControls", "<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n" \
210
- "p, li { white-space: pre-wrap; }\n" \
211
- "</style></head><body style=\" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;\">\n" \
212
- "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Play</p></body></html>", nil, Qt::Application::UnicodeUTF8)
213
- @play.text = Qt::Application.translate("ReplayControls", "Play", nil, Qt::Application::UnicodeUTF8)
214
- @faster.toolTip = Qt::Application.translate("ReplayControls", "<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n" \
215
- "p, li { white-space: pre-wrap; }\n" \
216
- "</style></head><body style=\" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;\">\n" \
217
- "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Increase speed</p></body></html>", nil, Qt::Application::UnicodeUTF8)
218
- @faster.text = Qt::Application.translate("ReplayControls", "Faster", nil, Qt::Application::UnicodeUTF8)
219
- @bookmarks.text = Qt::Application.translate("ReplayControls", "Bookmarks", nil, Qt::Application::UnicodeUTF8)
220
- @seek_start.toolTip = Qt::Application.translate("ReplayControls", "<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n" \
221
- "p, li { white-space: pre-wrap; }\n" \
222
- "</style></head><body style=\" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;\">\n" \
223
- "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Go to start</p></body></html>", nil, Qt::Application::UnicodeUTF8)
224
- @seek_start.text = Qt::Application.translate("ReplayControls", "Go To Beginning", nil, Qt::Application::UnicodeUTF8)
225
- @seek_start.shortcut = ''
226
- @play_step.toolTip = Qt::Application.translate("ReplayControls", "<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n" \
227
- "p, li { white-space: pre-wrap; }\n" \
228
- "</style></head><body style=\" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;\">\n" \
229
- "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Go forward one step</p></body></html>", nil, Qt::Application::UnicodeUTF8)
230
- @play_step.text = Qt::Application.translate("ReplayControls", "Step", nil, Qt::Application::UnicodeUTF8)
231
- @play_next_nonempty.toolTip = Qt::Application.translate("ReplayControls", "<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n" \
232
- "p, li { white-space: pre-wrap; }\n" \
233
- "</style></head><body style=\" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;\">\n" \
234
- "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Go to start</p></body></html>", nil, Qt::Application::UnicodeUTF8)
235
- @play_next_nonempty.text = Qt::Application.translate("ReplayControls", "Play next non-empty cycle", nil, Qt::Application::UnicodeUTF8)
236
- @play_next_nonempty.shortcut = ''
237
- end # retranslateUi
238
-
239
- def retranslate_ui(replayControls)
240
- retranslateUi(replayControls)
241
- end
242
-
243
- end
244
-
245
- module Ui
246
- class ReplayControls < Ui_ReplayControls
247
- end
248
- end # module Ui
249
-
@@ -1,130 +0,0 @@
1
- require 'Qt4'
2
- require 'roby/app'
3
-
4
- require 'roby/log/gui/replay_controls_ui'
5
- require 'roby/log/gui/data_displays'
6
- require 'roby/log/server'
7
-
8
- class RemoteStreamListModel < DataStreamListModel
9
- attr_reader :known_servers
10
- def initialize(streams)
11
- super
12
- @known_servers = []
13
- end
14
-
15
- # Update the list of available servers and streams
16
- def update
17
- Roby::Log::Server.available_servers.each do |server|
18
- unless known_servers.find { |str| str.server == server }
19
- begin
20
- known_servers << Roby::Log::Client.new(server)
21
- rescue DRb::DRbConnError
22
- end
23
- end
24
- end
25
-
26
- known_servers.delete_if { |s| !s.connected? }
27
-
28
- found_streams = []
29
- known_servers.delete_if do |server|
30
- begin
31
- server.streams.each do |stream|
32
- found_streams << stream
33
- unless streams.include?(stream)
34
- server.subscribe(stream)
35
- add_new(stream)
36
- end
37
- end
38
- false
39
- rescue DRb::DRbConnError
40
- s.disconnect
41
- true
42
- end
43
- end
44
-
45
- (streams - found_streams).each do |s|
46
- row = streams.index(s)
47
- removeRow(row, Qt::ModelIndex.new)
48
- end
49
- end
50
- end
51
-
52
- class RuntimeDisplay < Qt::MainWindow
53
- attr_reader :ui_displays
54
-
55
- attr_reader :streams
56
- attr_reader :streams_model
57
-
58
- DISPLAY_MINIMUM_DURATION = 5
59
-
60
- def initialize(broadcast, port, period)
61
- super()
62
-
63
- # Create the vertical layout for this window
64
- central_widget = Qt::Widget.new(self)
65
- self.central_widget = central_widget
66
- layout = Qt::VBoxLayout.new(central_widget)
67
- layout.spacing = 6
68
- layout.margin = 0
69
-
70
- # add GUI for the data streams and display setup
71
- @streams = Array.new
72
- @streams_model = RemoteStreamListModel.new(streams)
73
- displays_holder = Qt::Widget.new(central_widget)
74
- layout.add_widget displays_holder
75
- @ui_displays = Ui_DataDisplays.new
76
- ui_displays.setupUi(displays_holder)
77
- ui_displays.streams.model = streams_model
78
- ui_displays.add_stream.enabled = false
79
- ui_displays.remove_stream.enabled = false
80
- connect(ui_displays.display_add, SIGNAL("clicked()"), self, SLOT("add_display()"))
81
-
82
- # Set up the stream discovery
83
- Roby::Log::Server.enable_discovery(broadcast, port, period)
84
-
85
- # This timer is used to call Thread.pass ... of course needed or Ruby
86
- # threads won't be woken up
87
- Thread.current.priority = -1
88
-
89
- @threads_timer = Qt::Timer.new(self)
90
- connect(@threads_timer, SIGNAL('timeout()')) do
91
- Thread.pass
92
- end
93
- @threads_timer.start(50)
94
-
95
- @display_timer = Qt::Timer.new(self)
96
- connect(@display_timer, SIGNAL('timeout()')) do
97
- streams.each do |s|
98
- s.synchronize do
99
- s.display
100
- end
101
- end
102
- end
103
- @display_timer.start(5000)
104
-
105
- sleep(0.5)
106
- streams_model.update
107
-
108
- @discovery_timer = Qt::Timer.new(self)
109
- connect(@discovery_timer, SIGNAL('timeout()')) do
110
- streams_model.update
111
- end
112
- @discovery_timer.start(Integer(period * 1000))
113
- end
114
-
115
- def add_display(kind = nil)
116
- ui_displays.add_display(streams_model, kind)
117
- end
118
- slots 'add_display()'
119
- end
120
-
121
- if $0 == __FILE__
122
- DRb.start_service "druby://:0"
123
- Roby::Log::Server.logger.level = Logger::DEBUG
124
-
125
- a = Qt::Application.new(ARGV)
126
- w = RuntimeDisplay.new('localhost', Roby::Log::Server::RING_PORT, 5)
127
- w.show
128
- a.exec
129
- end
130
-
@@ -1,186 +0,0 @@
1
- require 'roby/log/logger'
2
- require 'roby'
3
-
4
- module Roby::Log
5
- module BasicObjectHooks
6
- HOOKS = %w{added_owner removed_owner}
7
-
8
- def added_owner(peer)
9
- super if defined? super
10
- Roby::Log.log(:added_owner) { [self, peer] }
11
- end
12
-
13
- def removed_owner(peer)
14
- super if defined? super
15
- Roby::Log.log(:removed_owner) { [self, peer] }
16
- end
17
- end
18
- Roby::BasicObject.include BasicObjectHooks
19
-
20
- module TaskHooks
21
- HOOKS = %w{added_task_child removed_task_child}
22
-
23
- def added_child_object(child, relations, info)
24
- super if defined? super
25
- Roby::Log.log(:added_task_child) { [self, relations, child, info] }
26
- end
27
-
28
- def removed_child_object(child, relations)
29
- super if defined? super
30
- Roby::Log.log(:removed_task_child) { [self, relations, child] }
31
- end
32
- end
33
- Roby::Task.include TaskHooks
34
-
35
- module PlanHooks
36
- HOOKS = %w{
37
- added_mission unmarked_mission
38
- added_permanent unmarked_permanent
39
- added_tasks added_events finalized_task finalized_event
40
- replaced_tasks garbage_task added_transaction removed_transaction}
41
-
42
- def added_mission(tasks)
43
- super if defined? super
44
- Roby::Log.log(:added_mission) { [self, tasks] }
45
- end
46
- def unmarked_mission(tasks)
47
- super if defined? super
48
- Roby::Log.log(:unmarked_mission) { [self, tasks] }
49
- end
50
- def replaced(from, to)
51
- super if defined? super
52
- Roby::Log.log(:replaced_tasks) { [self, from, to] }
53
- end
54
- def added_events(tasks)
55
- super if defined? super
56
- Roby::Log.log(:added_events) { [self, tasks] }
57
- end
58
- def added_tasks(tasks)
59
- super if defined? super
60
- Roby::Log.log(:added_tasks) { [self, tasks] }
61
- end
62
- def garbage(task)
63
- super if defined? super
64
- Roby::Log.log(:garbage_task) { [self, task] }
65
- end
66
- def finalized_event(event)
67
- super if defined? super
68
- Roby::Log.log(:finalized_event) { [self, event] }
69
- end
70
- def finalized_task(task)
71
- super if defined? super
72
- Roby::Log.log(:finalized_task) { [self, task] }
73
- end
74
-
75
- def added_transaction(trsc)
76
- super if defined? super
77
- Roby::Log.log(:added_transaction) { [self, trsc] }
78
- end
79
- def removed_transaction(trsc)
80
- super if defined? super
81
- Roby::Log.log(:removed_transaction) { [self, trsc] }
82
- end
83
- end
84
- Roby::Plan.include PlanHooks
85
-
86
- module TransactionHooks
87
- HOOKS = %w{committed_transaction discarded_transaction}
88
-
89
- def committed_transaction
90
- super if defined? super
91
- Roby::Log.log(:committed_transaction) { [self] }
92
- end
93
- def discarded_transaction
94
- super if defined? super
95
- Roby::Log.log(:discarded_transaction) { [self] }
96
- end
97
- end
98
- Roby::Transaction.include TransactionHooks
99
-
100
- module EventGeneratorHooks
101
- HOOKS = %w{added_event_child removed_event_child
102
- generator_calling generator_called generator_fired
103
- generator_signalling generator_forwarding generator_emitting
104
- generator_postponed}
105
-
106
- def added_child_object(to, relations, info)
107
- super if defined? super
108
- Roby::Log.log(:added_event_child) { [self, relations, to, info] }
109
- end
110
-
111
- def removed_child_object(to, relations)
112
- super if defined? super
113
- Roby::Log.log(:removed_event_child) { [self, relations, to] }
114
- end
115
-
116
- def calling(context)
117
- super if defined? super
118
- Roby::Log.log(:generator_calling) { [self, plan.engine.propagation_source_generators, context.to_s] }
119
- end
120
-
121
- def called(context)
122
- super if defined? super
123
- Roby::Log.log(:generator_called) { [self, context.to_s] }
124
- end
125
-
126
- def fired(event)
127
- super if defined? super
128
- Roby::Log.log(:generator_fired) { [self, event.object_id, event.time, event.context.to_s] }
129
- end
130
-
131
- def signalling(event, to)
132
- super if defined? super
133
- Roby::Log.log(:generator_signalling) { [false, self, to, event.object_id, event.time, event.context.to_s] }
134
- end
135
-
136
- def emitting(context)
137
- super if defined? super
138
- Roby::Log.log(:generator_emitting) { [self, plan.engine.propagation_source_generators, context.to_s] }
139
- end
140
-
141
- def forwarding(event, to)
142
- super if defined? super
143
- Roby::Log.log(:generator_forwarding) { [true, self, to, event.object_id, event.time, event.context.to_s] }
144
- end
145
-
146
- def postponed(context, generator, reason)
147
- super if defined? super
148
- Roby::Log.log(:generator_postponed) { [self, context.to_s, generator, reason.to_s] }
149
- end
150
- end
151
- Roby::EventGenerator.include EventGeneratorHooks
152
-
153
- module ExecutionHooks
154
- HOOKS = %w{cycle_end}
155
-
156
- def cycle_end(timings)
157
- super if defined? super
158
- Roby::Log.log(:cycle_end) { [timings] }
159
- end
160
-
161
- module ClassExtension
162
- HOOKS = %w{fatal_exception handled_exception}
163
-
164
- def fatal_exception(error, tasks)
165
- super if defined? super
166
- Roby::Log.log(:fatal_exception) { [error.exception, tasks] }
167
- end
168
- def handled_exception(error, task)
169
- super if defined? super
170
- Roby::Log.log(:handled_exception) { [error.exception, task] }
171
- end
172
- end
173
- end
174
- Roby::ExecutionEngine.include ExecutionHooks
175
-
176
- def self.each_hook
177
- [TransactionHooks, BasicObjectHooks, TaskHooks,
178
- PlanHooks, EventGeneratorHooks, ExecutionHooks,
179
- ExecutionHooks::ClassExtension].each do |klass|
180
- klass::HOOKS.each do |m|
181
- yield(klass, m.to_sym)
182
- end
183
- end
184
- end
185
- end
186
-