Selaa lähdekoodia

Arrumando problemas repositorio

capellaresumo 7 vuotta sitten
vanhempi
commit
d152bd2518
100 muutettua tiedostoa jossa 0 lisäystä ja 15983 poistoa
  1. 0 0
      .metadata2/.lock
  2. 0 1525
      .metadata2/.log
  3. BIN
      .metadata2/.mylyn/.taskListIndex/segments_1
  4. 0 0
      .metadata2/.mylyn/.taskListIndex/write.lock
  5. BIN
      .metadata2/.mylyn/.tasks.xml.zip
  6. BIN
      .metadata2/.mylyn/repositories.xml.zip
  7. BIN
      .metadata2/.mylyn/tasks.xml.zip
  8. 0 16
      .metadata2/.plugins/org.eclipse.core.resources/.history/0/102195ce0eb9001711c7a09600ea5d68
  9. 0 248
      .metadata2/.plugins/org.eclipse.core.resources/.history/1/30dc958315b80017145c9b6064c27648
  10. 0 130
      .metadata2/.plugins/org.eclipse.core.resources/.history/1/902f28dd22bb001711b8bf632416c20d
  11. 0 272
      .metadata2/.plugins/org.eclipse.core.resources/.history/10/70c258f4a4ba001711b8bf632416c20d
  12. 0 16
      .metadata2/.plugins/org.eclipse.core.resources/.history/10/d06397d611b80017145c9b6064c27648
  13. 0 288
      .metadata2/.plugins/org.eclipse.core.resources/.history/11/10083bb3a5ba001711b8bf632416c20d
  14. 0 149
      .metadata2/.plugins/org.eclipse.core.resources/.history/11/40056c7c19bb001711b8bf632416c20d
  15. 0 166
      .metadata2/.plugins/org.eclipse.core.resources/.history/11/60e7755ef9b00017155fe9ac88a695a6
  16. 0 0
      .metadata2/.plugins/org.eclipse.core.resources/.history/15/80dd4a5808b80017145c9b6064c27648
  17. 0 338
      .metadata2/.plugins/org.eclipse.core.resources/.history/17/c06e3aa321bb001711b8bf632416c20d
  18. 0 25
      .metadata2/.plugins/org.eclipse.core.resources/.history/18/6065aa100fb9001711c7a09600ea5d68
  19. 0 51
      .metadata2/.plugins/org.eclipse.core.resources/.history/18/c0cda01a14b9001711c7a09600ea5d68
  20. 0 52
      .metadata2/.plugins/org.eclipse.core.resources/.history/19/603b73fbe2b000171eb4aea94a5e3c6b
  21. 0 115
      .metadata2/.plugins/org.eclipse.core.resources/.history/1a/3088cad90ab9001711c7a09600ea5d68
  22. 0 177
      .metadata2/.plugins/org.eclipse.core.resources/.history/1a/a07dcaea92ba001711b8bf632416c20d
  23. 0 179
      .metadata2/.plugins/org.eclipse.core.resources/.history/1a/b0c84325acba001711b8bf632416c20d
  24. 0 286
      .metadata2/.plugins/org.eclipse.core.resources/.history/1a/d0b3319f18b80017145c9b6064c27648
  25. 0 135
      .metadata2/.plugins/org.eclipse.core.resources/.history/1b/6001ad73d5b90017124d9f37712eb7c1
  26. 0 162
      .metadata2/.plugins/org.eclipse.core.resources/.history/1b/b0be3c7026bb001711b8bf632416c20d
  27. 0 53
      .metadata2/.plugins/org.eclipse.core.resources/.history/1c/0061834ce4b000171eb4aea94a5e3c6b
  28. 0 126
      .metadata2/.plugins/org.eclipse.core.resources/.history/1c/10536aec23bb001711b8bf632416c20d
  29. 0 312
      .metadata2/.plugins/org.eclipse.core.resources/.history/1c/20b11b80a8ba001711b8bf632416c20d
  30. 0 25
      .metadata2/.plugins/org.eclipse.core.resources/.history/1c/50d569cdafb90017124d9f37712eb7c1
  31. 0 278
      .metadata2/.plugins/org.eclipse.core.resources/.history/1c/c0786a72a5ba001711b8bf632416c20d
  32. 0 334
      .metadata2/.plugins/org.eclipse.core.resources/.history/1d/308fa0529fba001711b8bf632416c20d
  33. 0 24
      .metadata2/.plugins/org.eclipse.core.resources/.history/1f/6039ae6bc7b90017124d9f37712eb7c1
  34. 0 25
      .metadata2/.plugins/org.eclipse.core.resources/.history/1f/70948cf90eb9001711c7a09600ea5d68
  35. 0 149
      .metadata2/.plugins/org.eclipse.core.resources/.history/2/50ff40f19dba001711b8bf632416c20d
  36. 0 139
      .metadata2/.plugins/org.eclipse.core.resources/.history/22/30fac574cfb90017124d9f37712eb7c1
  37. 0 13
      .metadata2/.plugins/org.eclipse.core.resources/.history/22/90210b881eb80017145c9b6064c27648
  38. 0 52
      .metadata2/.plugins/org.eclipse.core.resources/.history/22/d05cb20ce3b000171eb4aea94a5e3c6b
  39. 0 299
      .metadata2/.plugins/org.eclipse.core.resources/.history/23/301d2c7da6ba001711b8bf632416c20d
  40. 0 269
      .metadata2/.plugins/org.eclipse.core.resources/.history/23/30cca097a4ba001711b8bf632416c20d
  41. 0 16
      .metadata2/.plugins/org.eclipse.core.resources/.history/23/b07ddeb41ab80017145c9b6064c27648
  42. 0 116
      .metadata2/.plugins/org.eclipse.core.resources/.history/24/302f98100ab9001711c7a09600ea5d68
  43. 0 149
      .metadata2/.plugins/org.eclipse.core.resources/.history/24/d0f6db9aa0ba001711b8bf632416c20d
  44. 0 16
      .metadata2/.plugins/org.eclipse.core.resources/.history/24/f09094cd11b80017145c9b6064c27648
  45. 0 139
      .metadata2/.plugins/org.eclipse.core.resources/.history/25/a03ad027d5b90017124d9f37712eb7c1
  46. 0 153
      .metadata2/.plugins/org.eclipse.core.resources/.history/26/10b31e95d1b90017124d9f37712eb7c1
  47. 0 128
      .metadata2/.plugins/org.eclipse.core.resources/.history/26/f0f5d5d0e2b000171eb4aea94a5e3c6b
  48. 0 48
      .metadata2/.plugins/org.eclipse.core.resources/.history/27/e02acfa4e1b000171eb4aea94a5e3c6b
  49. 0 26
      .metadata2/.plugins/org.eclipse.core.resources/.history/29/10dc8f6111b9001711c7a09600ea5d68
  50. 0 26
      .metadata2/.plugins/org.eclipse.core.resources/.history/29/b0aac23c12b9001711c7a09600ea5d68
  51. 0 181
      .metadata2/.plugins/org.eclipse.core.resources/.history/29/e0e78f6fadba001711b8bf632416c20d
  52. 0 148
      .metadata2/.plugins/org.eclipse.core.resources/.history/2a/2031f4bed0b90017124d9f37712eb7c1
  53. 0 124
      .metadata2/.plugins/org.eclipse.core.resources/.history/2a/80ea20eb20bb001711b8bf632416c20d
  54. 0 5
      .metadata2/.plugins/org.eclipse.core.resources/.history/2a/e02068fa1db80017145c9b6064c27648
  55. 0 323
      .metadata2/.plugins/org.eclipse.core.resources/.history/2c/50b57accaaba001711b8bf632416c20d
  56. 0 173
      .metadata2/.plugins/org.eclipse.core.resources/.history/2d/50598ff190ba001711b8bf632416c20d
  57. 0 338
      .metadata2/.plugins/org.eclipse.core.resources/.history/2e/3044435021bb001711b8bf632416c20d
  58. 0 24
      .metadata2/.plugins/org.eclipse.core.resources/.history/2e/80965eacc7b90017124d9f37712eb7c1
  59. 0 272
      .metadata2/.plugins/org.eclipse.core.resources/.history/3/80234ffba4ba001711b8bf632416c20d
  60. 0 120
      .metadata2/.plugins/org.eclipse.core.resources/.history/30/0030ab1defb000171877feeee34c61ac
  61. 0 16
      .metadata2/.plugins/org.eclipse.core.resources/.history/30/2030788317b80017145c9b6064c27648
  62. 0 150
      .metadata2/.plugins/org.eclipse.core.resources/.history/30/50641629d7b90017124d9f37712eb7c1
  63. 0 274
      .metadata2/.plugins/org.eclipse.core.resources/.history/30/c0e5893e18b80017145c9b6064c27648
  64. 0 126
      .metadata2/.plugins/org.eclipse.core.resources/.history/31/30b8c624e2b000171eb4aea94a5e3c6b
  65. 0 285
      .metadata2/.plugins/org.eclipse.core.resources/.history/31/5006dba518b80017145c9b6064c27648
  66. 0 26
      .metadata2/.plugins/org.eclipse.core.resources/.history/32/107c0d9713b9001711c7a09600ea5d68
  67. 0 137
      .metadata2/.plugins/org.eclipse.core.resources/.history/32/2023c245cbb90017124d9f37712eb7c1
  68. 0 306
      .metadata2/.plugins/org.eclipse.core.resources/.history/34/e02fcc20d3b90017124d9f37712eb7c1
  69. 0 162
      .metadata2/.plugins/org.eclipse.core.resources/.history/35/00c1392626bb001711b8bf632416c20d
  70. 0 152
      .metadata2/.plugins/org.eclipse.core.resources/.history/35/f09bc35fdfb90017124d9f37712eb7c1
  71. 0 285
      .metadata2/.plugins/org.eclipse.core.resources/.history/36/f0945d7722b80017145c9b6064c27648
  72. 0 7
      .metadata2/.plugins/org.eclipse.core.resources/.history/37/e03584d30db9001711c7a09600ea5d68
  73. 0 143
      .metadata2/.plugins/org.eclipse.core.resources/.history/37/f0eff64ccfb90017124d9f37712eb7c1
  74. 0 330
      .metadata2/.plugins/org.eclipse.core.resources/.history/38/009b7ef4d5b90017124d9f37712eb7c1
  75. 0 204
      .metadata2/.plugins/org.eclipse.core.resources/.history/38/90b4e88ef9b00017155fe9ac88a695a6
  76. 0 5
      .metadata2/.plugins/org.eclipse.core.resources/.history/39/509c606817b80017145c9b6064c27648
  77. 0 155
      .metadata2/.plugins/org.eclipse.core.resources/.history/39/707c7739c4b90017124d9f37712eb7c1
  78. 0 161
      .metadata2/.plugins/org.eclipse.core.resources/.history/3a/509d862427bb001711b8bf632416c20d
  79. 0 119
      .metadata2/.plugins/org.eclipse.core.resources/.history/3a/7045f71822bb001711b8bf632416c20d
  80. 0 132
      .metadata2/.plugins/org.eclipse.core.resources/.history/3a/c0191c62feb000171acddab58857c986
  81. 0 286
      .metadata2/.plugins/org.eclipse.core.resources/.history/3a/e0b200a0a5ba001711b8bf632416c20d
  82. 0 285
      .metadata2/.plugins/org.eclipse.core.resources/.history/3c/70e8585822b80017145c9b6064c27648
  83. 0 130
      .metadata2/.plugins/org.eclipse.core.resources/.history/3f/709828ea0ab9001711c7a09600ea5d68
  84. 0 130
      .metadata2/.plugins/org.eclipse.core.resources/.history/3f/d06d9e71efb00017199bf59f1090384c
  85. 0 306
      .metadata2/.plugins/org.eclipse.core.resources/.history/4/10091a42d3b90017124d9f37712eb7c1
  86. 0 181
      .metadata2/.plugins/org.eclipse.core.resources/.history/4/10dd57dfafba001711b8bf632416c20d
  87. 0 335
      .metadata2/.plugins/org.eclipse.core.resources/.history/4/30e07428b3ba001711b8bf632416c20d
  88. 0 149
      .metadata2/.plugins/org.eclipse.core.resources/.history/4/d0add94ddab90017124d9f37712eb7c1
  89. 0 288
      .metadata2/.plugins/org.eclipse.core.resources/.history/40/0003faaea5ba001711b8bf632416c20d
  90. 0 118
      .metadata2/.plugins/org.eclipse.core.resources/.history/40/10637f24efb000171877feeee34c61ac
  91. 0 166
      .metadata2/.plugins/org.eclipse.core.resources/.history/40/402e759cf9b00017155fe9ac88a695a6
  92. 0 26
      .metadata2/.plugins/org.eclipse.core.resources/.history/40/50ba3f3713b9001711c7a09600ea5d68
  93. 0 138
      .metadata2/.plugins/org.eclipse.core.resources/.history/40/a0a25931d5b90017124d9f37712eb7c1
  94. 0 336
      .metadata2/.plugins/org.eclipse.core.resources/.history/40/a0df7c2e21bb001711b8bf632416c20d
  95. 0 152
      .metadata2/.plugins/org.eclipse.core.resources/.history/40/d03e1572dfb90017124d9f37712eb7c1
  96. 0 139
      .metadata2/.plugins/org.eclipse.core.resources/.history/41/102ecf3dd5b90017124d9f37712eb7c1
  97. 0 152
      .metadata2/.plugins/org.eclipse.core.resources/.history/41/309eb788dfb90017124d9f37712eb7c1
  98. 0 281
      .metadata2/.plugins/org.eclipse.core.resources/.history/41/f0c372e0a4ba001711b8bf632416c20d
  99. 0 130
      .metadata2/.plugins/org.eclipse.core.resources/.history/42/b0a7f13f0bb9001711c7a09600ea5d68
  100. 0 127
      .metadata2/.plugins/org.eclipse.core.resources/.history/43/70f5ce0724bb001711b8bf632416c20d

+ 0 - 0
.metadata2/.lock


+ 0 - 1525
.metadata2/.log

@@ -1,1525 +0,0 @@
-!SESSION 2017-10-13 16:42:10.473 -----------------------------------------------
-eclipse.buildId=4.7.1.M20171009-0410
-java.version=1.8.0_20
-java.vendor=Oracle Corporation
-BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=en_US
-Framework arguments:  -product org.eclipse.epp.package.java.product -keyring /Users/gabrielcapella/.eclipse_keyring
-Command-line arguments:  -os macosx -ws cocoa -arch x86_64 -product org.eclipse.epp.package.java.product -keyring /Users/gabrielcapella/.eclipse_keyring
-
-!ENTRY org.eclipse.jface 2 0 2017-10-13 17:04:14.936
-!MESSAGE Keybinding conflicts occurred.  They may interfere with normal accelerator operation.
-!SUBENTRY 1 org.eclipse.jface 2 0 2017-10-13 17:04:14.936
-!MESSAGE A conflict occurred for COMMAND+W:
-Binding(COMMAND+W,
-	ParameterizedCommand(Command(org.eclipse.ui.cocoa.closeDialog,Close Dialog,
-		Closes the active Dialog,
-		Category(org.eclipse.ui.category.window,Window,null,true),
-		org.eclipse.ui.internal.WorkbenchHandlerServiceHandler@26bc84dc,
-		,,true),null),
-	org.eclipse.ui.defaultAcceleratorConfiguration,
-	org.eclipse.ui.contexts.dialog,,,system)
-Binding(COMMAND+W,
-	ParameterizedCommand(Command(org.eclipse.ui.file.close,Close,
-		Close the active editor,
-		Category(org.eclipse.ui.category.file,File,null,true),
-		org.eclipse.ui.internal.WorkbenchHandlerServiceHandler@3b4e6329,
-		,,true),null),
-	org.eclipse.ui.defaultAcceleratorConfiguration,
-	org.eclipse.ui.contexts.window,,,system)
-!SESSION 2017-10-13 17:27:34.218 -----------------------------------------------
-eclipse.buildId=4.7.1.M20171009-0410
-java.version=1.8.0_20
-java.vendor=Oracle Corporation
-BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=en_US
-Framework arguments:  -product org.eclipse.epp.package.java.product -keyring /Users/gabrielcapella/.eclipse_keyring
-Command-line arguments:  -os macosx -ws cocoa -arch x86_64 -product org.eclipse.epp.package.java.product -keyring /Users/gabrielcapella/.eclipse_keyring
-
-!ENTRY org.eclipse.core.resources 4 4 2017-10-13 17:27:40.055
-!MESSAGE Exception loading preferences from: /SonarBrick/.settings/org.eclipse.jdt.core.prefs.
-!STACK 1
-org.eclipse.core.internal.resources.ResourceException: File not found: /Users/gabrielcapella/eclipse-workspace/SonarBrick/.settings/org.eclipse.jdt.core.prefs.
-	at org.eclipse.core.internal.localstore.FileSystemResourceManager.read(FileSystemResourceManager.java:836)
-	at org.eclipse.core.internal.resources.File.getContents(File.java:277)
-	at org.eclipse.core.internal.resources.ProjectPreferences.load(ProjectPreferences.java:507)
-	at org.eclipse.core.internal.resources.ProjectPreferences.load(ProjectPreferences.java:492)
-	at org.eclipse.core.internal.preferences.EclipsePreferences.create(EclipsePreferences.java:370)
-	at org.eclipse.core.internal.preferences.EclipsePreferences.internalNode(EclipsePreferences.java:623)
-	at org.eclipse.core.internal.preferences.EclipsePreferences.node(EclipsePreferences.java:766)
-	at org.eclipse.core.resources.ProjectScope.getNode(ProjectScope.java:69)
-	at org.eclipse.jdt.internal.ui.javaeditor.JavaEditor$EclipsePreferencesAdapter.getNode(JavaEditor.java:363)
-	at org.eclipse.jdt.internal.ui.javaeditor.JavaEditor$EclipsePreferencesAdapter.addPropertyChangeListener(JavaEditor.java:369)
-	at org.eclipse.ui.texteditor.ChainedPreferenceStore$PropertyChangeListener.register(ChainedPreferenceStore.java:74)
-	at org.eclipse.ui.texteditor.ChainedPreferenceStore.registerChildListeners(ChainedPreferenceStore.java:476)
-	at org.eclipse.ui.texteditor.ChainedPreferenceStore.addPropertyChangeListener(ChainedPreferenceStore.java:123)
-	at org.eclipse.ui.texteditor.AbstractTextEditor.setPreferenceStore(AbstractTextEditor.java:2830)
-	at org.eclipse.jdt.internal.ui.javaeditor.JavaEditor.setPreferenceStore(JavaEditor.java:2582)
-	at org.eclipse.jdt.internal.ui.javaeditor.JavaEditor.doSetInput(JavaEditor.java:2529)
-	at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor.doSetInput(CompilationUnitEditor.java:1418)
-	at org.eclipse.ui.texteditor.AbstractTextEditor$5.run(AbstractTextEditor.java:3154)
-	at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:2137)
-	at org.eclipse.ui.texteditor.AbstractTextEditor.internalInit(AbstractTextEditor.java:3172)
-	at org.eclipse.ui.texteditor.AbstractTextEditor.init(AbstractTextEditor.java:3197)
-	at org.eclipse.ui.internal.EditorReference.initialize(EditorReference.java:362)
-	at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.create(CompatibilityPart.java:333)
-	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
-	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
-	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
-	at java.lang.reflect.Method.invoke(Method.java:483)
-	at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55)
-	at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:990)
-	at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:955)
-	at org.eclipse.e4.core.internal.di.InjectorImpl.inject(InjectorImpl.java:124)
-	at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:399)
-	at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:318)
-	at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:162)
-	at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:105)
-	at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:74)
-	at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:56)
-	at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer.createWidget(ContributedPartRenderer.java:129)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:992)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:661)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:767)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:738)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:732)
-	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:716)
-	at org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer.showTab(StackRenderer.java:1293)
-	at org.eclipse.e4.ui.workbench.renderers.swt.LazyStackRenderer.postProcess(LazyStackRenderer.java:97)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:679)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:767)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:738)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:732)
-	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:716)
-	at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:69)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:675)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$1.run(PartRenderingEngine.java:546)
-	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:530)
-	at org.eclipse.e4.ui.workbench.renderers.swt.ElementReferenceRenderer.createWidget(ElementReferenceRenderer.java:70)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:992)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:661)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:767)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:738)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:732)
-	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:716)
-	at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:69)
-	at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:137)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:675)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:767)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:738)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:732)
-	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:716)
-	at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:69)
-	at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:137)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:675)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:767)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:738)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:732)
-	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:716)
-	at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:69)
-	at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:137)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:675)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:767)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:738)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:732)
-	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:716)
-	at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:69)
-	at org.eclipse.e4.ui.workbench.renderers.swt.PerspectiveRenderer.processContents(PerspectiveRenderer.java:49)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:675)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:767)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:738)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:732)
-	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:716)
-	at org.eclipse.e4.ui.workbench.renderers.swt.PerspectiveStackRenderer.showTab(PerspectiveStackRenderer.java:79)
-	at org.eclipse.e4.ui.workbench.renderers.swt.LazyStackRenderer.postProcess(LazyStackRenderer.java:97)
-	at org.eclipse.e4.ui.workbench.renderers.swt.PerspectiveStackRenderer.postProcess(PerspectiveStackRenderer.java:61)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:679)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:767)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:738)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:732)
-	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:716)
-	at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:69)
-	at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:137)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:675)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:767)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:738)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:732)
-	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:716)
-	at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:69)
-	at org.eclipse.e4.ui.workbench.renderers.swt.WBWRenderer.processContents(WBWRenderer.java:704)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:675)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:767)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:738)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:732)
-	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:716)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1076)
-	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1039)
-	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)
-	at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:680)
-	at org.eclipse.ui.internal.Workbench$$Lambda$15/687685057.run(Unknown Source)
-	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
-	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:594)
-	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148)
-	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:151)
-	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
-	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
-	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
-	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
-	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
-	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
-	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
-	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
-	at java.lang.reflect.Method.invoke(Method.java:483)
-	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:653)
-	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590)
-	at org.eclipse.equinox.launcher.Main.run(Main.java:1499)
-!SUBENTRY 1 org.eclipse.core.resources 4 368 2017-10-13 17:27:40.057
-!MESSAGE File not found: /Users/gabrielcapella/eclipse-workspace/SonarBrick/.settings/org.eclipse.jdt.core.prefs.
-
-!ENTRY org.eclipse.equinox.preferences 4 4 2017-10-13 17:27:40.060
-!MESSAGE Exception loading preferences from: /Users/gabrielcapella/eclipse-workspace/SonarBrick/.settings/org.eclipse.jdt.core.prefs.
-!STACK 0
-org.osgi.service.prefs.BackingStoreException: Exception loading preferences from: /SonarBrick/.settings/org.eclipse.jdt.core.prefs.
-	at org.eclipse.core.internal.resources.ProjectPreferences.load(ProjectPreferences.java:515)
-	at org.eclipse.core.internal.resources.ProjectPreferences.load(ProjectPreferences.java:492)
-	at org.eclipse.core.internal.preferences.EclipsePreferences.create(EclipsePreferences.java:370)
-	at org.eclipse.core.internal.preferences.EclipsePreferences.internalNode(EclipsePreferences.java:623)
-	at org.eclipse.core.internal.preferences.EclipsePreferences.node(EclipsePreferences.java:766)
-	at org.eclipse.core.resources.ProjectScope.getNode(ProjectScope.java:69)
-	at org.eclipse.jdt.internal.ui.javaeditor.JavaEditor$EclipsePreferencesAdapter.getNode(JavaEditor.java:363)
-	at org.eclipse.jdt.internal.ui.javaeditor.JavaEditor$EclipsePreferencesAdapter.addPropertyChangeListener(JavaEditor.java:369)
-	at org.eclipse.ui.texteditor.ChainedPreferenceStore$PropertyChangeListener.register(ChainedPreferenceStore.java:74)
-	at org.eclipse.ui.texteditor.ChainedPreferenceStore.registerChildListeners(ChainedPreferenceStore.java:476)
-	at org.eclipse.ui.texteditor.ChainedPreferenceStore.addPropertyChangeListener(ChainedPreferenceStore.java:123)
-	at org.eclipse.ui.texteditor.AbstractTextEditor.setPreferenceStore(AbstractTextEditor.java:2830)
-	at org.eclipse.jdt.internal.ui.javaeditor.JavaEditor.setPreferenceStore(JavaEditor.java:2582)
-	at org.eclipse.jdt.internal.ui.javaeditor.JavaEditor.doSetInput(JavaEditor.java:2529)
-	at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor.doSetInput(CompilationUnitEditor.java:1418)
-	at org.eclipse.ui.texteditor.AbstractTextEditor$5.run(AbstractTextEditor.java:3154)
-	at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:2137)
-	at org.eclipse.ui.texteditor.AbstractTextEditor.internalInit(AbstractTextEditor.java:3172)
-	at org.eclipse.ui.texteditor.AbstractTextEditor.init(AbstractTextEditor.java:3197)
-	at org.eclipse.ui.internal.EditorReference.initialize(EditorReference.java:362)
-	at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.create(CompatibilityPart.java:333)
-	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
-	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
-	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
-	at java.lang.reflect.Method.invoke(Method.java:483)
-	at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55)
-	at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:990)
-	at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:955)
-	at org.eclipse.e4.core.internal.di.InjectorImpl.inject(InjectorImpl.java:124)
-	at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:399)
-	at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:318)
-	at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:162)
-	at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:105)
-	at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:74)
-	at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:56)
-	at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer.createWidget(ContributedPartRenderer.java:129)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:992)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:661)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:767)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:738)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:732)
-	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:716)
-	at org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer.showTab(StackRenderer.java:1293)
-	at org.eclipse.e4.ui.workbench.renderers.swt.LazyStackRenderer.postProcess(LazyStackRenderer.java:97)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:679)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:767)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:738)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:732)
-	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:716)
-	at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:69)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:675)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$1.run(PartRenderingEngine.java:546)
-	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:530)
-	at org.eclipse.e4.ui.workbench.renderers.swt.ElementReferenceRenderer.createWidget(ElementReferenceRenderer.java:70)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:992)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:661)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:767)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:738)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:732)
-	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:716)
-	at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:69)
-	at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:137)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:675)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:767)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:738)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:732)
-	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:716)
-	at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:69)
-	at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:137)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:675)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:767)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:738)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:732)
-	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:716)
-	at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:69)
-	at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:137)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:675)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:767)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:738)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:732)
-	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:716)
-	at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:69)
-	at org.eclipse.e4.ui.workbench.renderers.swt.PerspectiveRenderer.processContents(PerspectiveRenderer.java:49)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:675)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:767)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:738)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:732)
-	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:716)
-	at org.eclipse.e4.ui.workbench.renderers.swt.PerspectiveStackRenderer.showTab(PerspectiveStackRenderer.java:79)
-	at org.eclipse.e4.ui.workbench.renderers.swt.LazyStackRenderer.postProcess(LazyStackRenderer.java:97)
-	at org.eclipse.e4.ui.workbench.renderers.swt.PerspectiveStackRenderer.postProcess(PerspectiveStackRenderer.java:61)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:679)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:767)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:738)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:732)
-	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:716)
-	at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:69)
-	at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:137)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:675)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:767)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:738)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:732)
-	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:716)
-	at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:69)
-	at org.eclipse.e4.ui.workbench.renderers.swt.WBWRenderer.processContents(WBWRenderer.java:704)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:675)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:767)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:738)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:732)
-	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:716)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1076)
-	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1039)
-	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)
-	at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:680)
-	at org.eclipse.ui.internal.Workbench$$Lambda$15/687685057.run(Unknown Source)
-	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
-	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:594)
-	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148)
-	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:151)
-	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
-	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
-	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
-	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
-	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
-	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
-	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
-	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
-	at java.lang.reflect.Method.invoke(Method.java:483)
-	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:653)
-	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590)
-	at org.eclipse.equinox.launcher.Main.run(Main.java:1499)
-
-!ENTRY org.eclipse.ui 4 4 2017-10-13 17:31:53.896
-!MESSAGE Conflicting handlers for org.eclipse.ui.navigate.backwardHistory: {ActionHandler(org.eclipse.ui.internal.dialogs.PreferencePageHistory$1@1000fbae)} vs {ActionHandler(org.eclipse.ui.internal.NavigationHistoryAction@5f5923ef)}
-
-!ENTRY org.eclipse.ui 4 4 2017-10-13 17:31:53.923
-!MESSAGE Conflicting handlers for org.eclipse.ui.navigate.backwardHistory: {ActionHandler(org.eclipse.ui.internal.dialogs.PreferencePageHistory$1@1000fbae)} vs {ActionHandler(org.eclipse.ui.internal.NavigationHistoryAction@5f5923ef)}
-
-!ENTRY org.eclipse.ui 4 4 2017-10-13 17:31:53.923
-!MESSAGE Conflicting handlers for org.eclipse.ui.navigate.forwardHistory: {ActionHandler(org.eclipse.ui.internal.NavigationHistoryAction@2f262474)} vs {ActionHandler(org.eclipse.ui.internal.dialogs.PreferencePageHistory$2@2463a9ec)}
-
-!ENTRY org.eclipse.ui 4 4 2017-10-13 17:31:53.923
-!MESSAGE Conflicting handlers for org.eclipse.ui.navigate.forwardHistory: {ActionHandler(org.eclipse.ui.internal.NavigationHistoryAction@2f262474)} vs {ActionHandler(org.eclipse.ui.internal.dialogs.PreferencePageHistory$2@2463a9ec)}
-!SESSION 2017-10-13 17:55:11.498 -----------------------------------------------
-eclipse.buildId=4.7.1.M20171009-0410
-java.version=1.8.0_20
-java.vendor=Oracle Corporation
-BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=en_US
-Framework arguments:  -product org.eclipse.epp.package.java.product -keyring /Users/gabrielcapella/.eclipse_keyring
-Command-line arguments:  -os macosx -ws cocoa -arch x86_64 -product org.eclipse.epp.package.java.product -keyring /Users/gabrielcapella/.eclipse_keyring
-
-!ENTRY org.eclipse.recommenders.models.rcp 1 11 2017-10-13 18:02:03.729
-!MESSAGE The model index service was accessed either before it started or after it finished running.
-!STACK 0
-org.eclipse.recommenders.utils.Logs$LogTraceException
-	at org.eclipse.recommenders.utils.Logs$LogTraceException.newTrace(Logs.java:381)
-	at org.eclipse.recommenders.utils.Logs.log(Logs.java:134)
-	at org.eclipse.recommenders.utils.Logs.log(Logs.java:126)
-	at org.eclipse.recommenders.internal.models.rcp.EclipseModelIndex.suggest(EclipseModelIndex.java:211)
-	at org.eclipse.recommenders.models.SimpleModelProvider.acquireModel(SimpleModelProvider.java:70)
-	at org.eclipse.recommenders.models.PoolingModelProvider.access$0(PoolingModelProvider.java:1)
-	at org.eclipse.recommenders.models.PoolingModelProvider$ModelPoolFactoryMediator.makeObject(PoolingModelProvider.java:96)
-	at org.eclipse.recommenders.models.PoolingModelProvider$ModelPoolFactoryMediator.makeObject(PoolingModelProvider.java:1)
-	at org.apache.commons.pool.impl.GenericKeyedObjectPool.borrowObject(GenericKeyedObjectPool.java:1220)
-	at org.eclipse.recommenders.models.PoolingModelProvider.acquireModel(PoolingModelProvider.java:67)
-	at org.eclipse.recommenders.internal.overrides.rcp.RcpOverrideModelProvider.acquireModel(RcpOverrideModelProvider.java:66)
-	at org.eclipse.recommenders.internal.overrides.rcp.OverrideCompletionSessionProcessor.hasModel(OverrideCompletionSessionProcessor.java:121)
-	at org.eclipse.recommenders.internal.overrides.rcp.OverrideCompletionSessionProcessor.startSession(OverrideCompletionSessionProcessor.java:86)
-	at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.fireStartSession(IntelligentCompletionProposalComputer.java:305)
-	at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.computeCompletionProposals(IntelligentCompletionProposalComputer.java:171)
-	at org.eclipse.jdt.internal.ui.text.java.CompletionProposalComputerDescriptor.computeCompletionProposals(CompletionProposalComputerDescriptor.java:333)
-	at org.eclipse.jdt.internal.ui.text.java.CompletionProposalCategory.computeCompletionProposals(CompletionProposalCategory.java:337)
-	at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.collectProposals(ContentAssistProcessor.java:331)
-	at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.computeCompletionProposals(ContentAssistProcessor.java:288)
-	at org.eclipse.jface.text.contentassist.ContentAssistant$3.run(ContentAssistant.java:2007)
-	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
-	at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:2004)
-	at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:560)
-	at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$7(CompletionProposalPopup.java:555)
-	at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:489)
-	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
-	at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:482)
-	at org.eclipse.jface.text.contentassist.ContentAssistant.showPossibleCompletions(ContentAssistant.java:1823)
-	at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor$AdaptedSourceViewer.doOperation(CompilationUnitEditor.java:184)
-	at org.eclipse.ui.texteditor.ContentAssistAction$1.run(ContentAssistAction.java:84)
-	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
-	at org.eclipse.ui.texteditor.ContentAssistAction.run(ContentAssistAction.java:81)
-	at org.eclipse.jface.action.Action.runWithEvent(Action.java:473)
-	at org.eclipse.jface.commands.ActionHandler.execute(ActionHandler.java:118)
-	at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:92)
-	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
-	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
-	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
-	at java.lang.reflect.Method.invoke(Method.java:483)
-	at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55)
-	at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:305)
-	at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:239)
-	at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:132)
-	at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:152)
-	at org.eclipse.core.commands.Command.executeWithChecks(Command.java:494)
-	at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:487)
-	at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:210)
-	at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.executeCommand(KeyBindingDispatcher.java:287)
-	at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.press(KeyBindingDispatcher.java:527)
-	at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.processKeyEvent(KeyBindingDispatcher.java:577)
-	at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.filterKeySequenceBindings(KeyBindingDispatcher.java:385)
-	at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.access$0(KeyBindingDispatcher.java:331)
-	at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher$KeyDownFilter.handleEvent(KeyBindingDispatcher.java:88)
-	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:86)
-	at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1097)
-	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4252)
-	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1502)
-	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1525)
-	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1510)
-	at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1539)
-	at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1535)
-	at org.eclipse.swt.widgets.Canvas.sendKeyEvent(Canvas.java:518)
-	at org.eclipse.swt.widgets.Control.doCommandBySelector(Control.java:1090)
-	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5890)
-	at org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method)
-	at org.eclipse.swt.internal.cocoa.NSResponder.interpretKeyEvents(NSResponder.java:68)
-	at org.eclipse.swt.widgets.Composite.keyDown(Composite.java:601)
-	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5800)
-	at org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method)
-	at org.eclipse.swt.widgets.Widget.callSuper(Widget.java:228)
-	at org.eclipse.swt.widgets.Widget.windowSendEvent(Widget.java:2148)
-	at org.eclipse.swt.widgets.Shell.windowSendEvent(Shell.java:2411)
-	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5862)
-	at org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method)
-	at org.eclipse.swt.widgets.Display.applicationSendEvent(Display.java:5290)
-	at org.eclipse.swt.widgets.Display.applicationProc(Display.java:5440)
-	at org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method)
-	at org.eclipse.swt.internal.cocoa.NSApplication.sendEvent(NSApplication.java:128)
-	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3695)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1150)
-	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1039)
-	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)
-	at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:680)
-	at org.eclipse.ui.internal.Workbench$$Lambda$15/373342545.run(Unknown Source)
-	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
-	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:594)
-	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148)
-	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:151)
-	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
-	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
-	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
-	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
-	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
-	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
-	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
-	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
-	at java.lang.reflect.Method.invoke(Method.java:483)
-	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:653)
-	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590)
-	at org.eclipse.equinox.launcher.Main.run(Main.java:1499)
-!SESSION 2017-10-14 11:49:36.937 -----------------------------------------------
-eclipse.buildId=4.7.1.M20171009-0410
-java.version=1.8.0_20
-java.vendor=Oracle Corporation
-BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=en_US
-Framework arguments:  -product org.eclipse.epp.package.java.product -keyring /Users/gabrielcapella/.eclipse_keyring
-Command-line arguments:  -os macosx -ws cocoa -arch x86_64 -product org.eclipse.epp.package.java.product -keyring /Users/gabrielcapella/.eclipse_keyring
-
-!ENTRY org.eclipse.core.resources 2 10035 2017-10-14 11:49:42.788
-!MESSAGE The workspace exited with unsaved changes in the previous session; refreshing workspace to recover changes.
-!SESSION 2017-10-14 11:51:52.519 -----------------------------------------------
-eclipse.buildId=4.7.1.M20171009-0410
-java.version=1.8.0_20
-java.vendor=Oracle Corporation
-BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=en_US
-Framework arguments:  -product org.eclipse.epp.package.java.product -keyring /Users/gabrielcapella/.eclipse_keyring
-Command-line arguments:  -os macosx -ws cocoa -arch x86_64 -product org.eclipse.epp.package.java.product -keyring /Users/gabrielcapella/.eclipse_keyring
-
-!ENTRY org.eclipse.core.resources 2 10035 2017-10-14 11:51:54.344
-!MESSAGE The workspace exited with unsaved changes in the previous session; refreshing workspace to recover changes.
-!SESSION 2017-10-14 11:53:04.238 -----------------------------------------------
-eclipse.buildId=4.7.1.M20171009-0410
-java.version=1.8.0_20
-java.vendor=Oracle Corporation
-BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=en_US
-Framework arguments:  -product org.eclipse.epp.package.java.product -keyring /Users/gabrielcapella/.eclipse_keyring
-Command-line arguments:  -os macosx -ws cocoa -arch x86_64 -product org.eclipse.epp.package.java.product -keyring /Users/gabrielcapella/.eclipse_keyring
-
-!ENTRY org.eclipse.core.resources 2 10035 2017-10-14 11:53:05.983
-!MESSAGE The workspace exited with unsaved changes in the previous session; refreshing workspace to recover changes.
-!SESSION 2017-10-14 11:54:03.911 -----------------------------------------------
-eclipse.buildId=4.7.1.M20171009-0410
-java.version=1.8.0_20
-java.vendor=Oracle Corporation
-BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=en_US
-Framework arguments:  -product org.eclipse.epp.package.java.product -keyring /Users/gabrielcapella/.eclipse_keyring
-Command-line arguments:  -os macosx -ws cocoa -arch x86_64 -product org.eclipse.epp.package.java.product -keyring /Users/gabrielcapella/.eclipse_keyring
-
-!ENTRY org.eclipse.core.resources 2 10035 2017-10-14 11:54:05.687
-!MESSAGE The workspace exited with unsaved changes in the previous session; refreshing workspace to recover changes.
-!SESSION 2017-10-14 13:07:25.142 -----------------------------------------------
-eclipse.buildId=4.7.1.M20171009-0410
-java.version=1.8.0_20
-java.vendor=Oracle Corporation
-BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=en_US
-Framework arguments:  -product org.eclipse.epp.package.java.product -keyring /Users/gabrielcapella/.eclipse_keyring
-Command-line arguments:  -os macosx -ws cocoa -arch x86_64 -product org.eclipse.epp.package.java.product -keyring /Users/gabrielcapella/.eclipse_keyring
-
-!ENTRY org.eclipse.core.resources 2 10035 2017-10-14 13:07:26.999
-!MESSAGE The workspace exited with unsaved changes in the previous session; refreshing workspace to recover changes.
-!SESSION 2017-10-14 13:40:58.787 -----------------------------------------------
-eclipse.buildId=4.7.1.M20171009-0410
-java.version=1.8.0_20
-java.vendor=Oracle Corporation
-BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=en_US
-Framework arguments:  -product org.eclipse.epp.package.java.product -keyring /Users/gabrielcapella/.eclipse_keyring
-Command-line arguments:  -os macosx -ws cocoa -arch x86_64 -product org.eclipse.epp.package.java.product -keyring /Users/gabrielcapella/.eclipse_keyring
-
-!ENTRY org.eclipse.core.resources 2 10035 2017-10-14 13:41:00.827
-!MESSAGE The workspace exited with unsaved changes in the previous session; refreshing workspace to recover changes.
-
-!ENTRY org.eclipse.recommenders.models.rcp 1 11 2017-10-14 13:41:42.238
-!MESSAGE The model index service was accessed either before it started or after it finished running.
-!STACK 0
-org.eclipse.recommenders.utils.Logs$LogTraceException
-	at org.eclipse.recommenders.utils.Logs$LogTraceException.newTrace(Logs.java:381)
-	at org.eclipse.recommenders.utils.Logs.log(Logs.java:134)
-	at org.eclipse.recommenders.utils.Logs.log(Logs.java:126)
-	at org.eclipse.recommenders.internal.models.rcp.EclipseModelIndex.suggest(EclipseModelIndex.java:211)
-	at org.eclipse.recommenders.models.SimpleModelProvider.acquireModel(SimpleModelProvider.java:70)
-	at org.eclipse.recommenders.models.PoolingModelProvider.access$0(PoolingModelProvider.java:1)
-	at org.eclipse.recommenders.models.PoolingModelProvider$ModelPoolFactoryMediator.makeObject(PoolingModelProvider.java:96)
-	at org.eclipse.recommenders.models.PoolingModelProvider$ModelPoolFactoryMediator.makeObject(PoolingModelProvider.java:1)
-	at org.apache.commons.pool.impl.GenericKeyedObjectPool.borrowObject(GenericKeyedObjectPool.java:1220)
-	at org.eclipse.recommenders.models.PoolingModelProvider.acquireModel(PoolingModelProvider.java:67)
-	at org.eclipse.recommenders.internal.overrides.rcp.RcpOverrideModelProvider.acquireModel(RcpOverrideModelProvider.java:66)
-	at org.eclipse.recommenders.internal.overrides.rcp.OverrideCompletionSessionProcessor.hasModel(OverrideCompletionSessionProcessor.java:121)
-	at org.eclipse.recommenders.internal.overrides.rcp.OverrideCompletionSessionProcessor.startSession(OverrideCompletionSessionProcessor.java:86)
-	at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.fireStartSession(IntelligentCompletionProposalComputer.java:305)
-	at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.computeCompletionProposals(IntelligentCompletionProposalComputer.java:171)
-	at org.eclipse.jdt.internal.ui.text.java.CompletionProposalComputerDescriptor.computeCompletionProposals(CompletionProposalComputerDescriptor.java:333)
-	at org.eclipse.jdt.internal.ui.text.java.CompletionProposalCategory.computeCompletionProposals(CompletionProposalCategory.java:337)
-	at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.collectProposals(ContentAssistProcessor.java:331)
-	at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.computeCompletionProposals(ContentAssistProcessor.java:288)
-	at org.eclipse.jface.text.contentassist.ContentAssistant$3.run(ContentAssistant.java:2007)
-	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
-	at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:2004)
-	at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:560)
-	at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$7(CompletionProposalPopup.java:555)
-	at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:489)
-	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
-	at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:482)
-	at org.eclipse.jface.text.contentassist.ContentAssistant.showPossibleCompletions(ContentAssistant.java:1823)
-	at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor$AdaptedSourceViewer.doOperation(CompilationUnitEditor.java:184)
-	at org.eclipse.ui.texteditor.ContentAssistAction$1.run(ContentAssistAction.java:84)
-	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
-	at org.eclipse.ui.texteditor.ContentAssistAction.run(ContentAssistAction.java:81)
-	at org.eclipse.jface.action.Action.runWithEvent(Action.java:473)
-	at org.eclipse.jface.commands.ActionHandler.execute(ActionHandler.java:118)
-	at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:92)
-	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
-	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
-	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
-	at java.lang.reflect.Method.invoke(Method.java:483)
-	at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55)
-	at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:305)
-	at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:239)
-	at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:132)
-	at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:152)
-	at org.eclipse.core.commands.Command.executeWithChecks(Command.java:494)
-	at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:487)
-	at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:210)
-	at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.executeCommand(KeyBindingDispatcher.java:287)
-	at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.press(KeyBindingDispatcher.java:527)
-	at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.processKeyEvent(KeyBindingDispatcher.java:577)
-	at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.filterKeySequenceBindings(KeyBindingDispatcher.java:385)
-	at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.access$0(KeyBindingDispatcher.java:331)
-	at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher$KeyDownFilter.handleEvent(KeyBindingDispatcher.java:88)
-	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:86)
-	at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1097)
-	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4252)
-	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1502)
-	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1525)
-	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1510)
-	at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1539)
-	at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1535)
-	at org.eclipse.swt.widgets.Canvas.sendKeyEvent(Canvas.java:518)
-	at org.eclipse.swt.widgets.Control.doCommandBySelector(Control.java:1090)
-	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5890)
-	at org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method)
-	at org.eclipse.swt.internal.cocoa.NSResponder.interpretKeyEvents(NSResponder.java:68)
-	at org.eclipse.swt.widgets.Composite.keyDown(Composite.java:601)
-	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5800)
-	at org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method)
-	at org.eclipse.swt.widgets.Widget.callSuper(Widget.java:228)
-	at org.eclipse.swt.widgets.Widget.windowSendEvent(Widget.java:2148)
-	at org.eclipse.swt.widgets.Shell.windowSendEvent(Shell.java:2411)
-	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5862)
-	at org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method)
-	at org.eclipse.swt.widgets.Display.applicationSendEvent(Display.java:5290)
-	at org.eclipse.swt.widgets.Display.applicationProc(Display.java:5440)
-	at org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method)
-	at org.eclipse.swt.internal.cocoa.NSApplication.sendEvent(NSApplication.java:128)
-	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3695)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1150)
-	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
-	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1039)
-	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)
-	at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:680)
-	at org.eclipse.ui.internal.Workbench$$Lambda$15/468950278.run(Unknown Source)
-	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
-	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:594)
-	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148)
-	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:151)
-	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
-	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
-	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
-	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
-	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
-	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
-	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
-	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
-	at java.lang.reflect.Method.invoke(Method.java:483)
-	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:653)
-	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590)
-	at org.eclipse.equinox.launcher.Main.run(Main.java:1499)
-!SESSION 2017-10-15 10:40:07.841 -----------------------------------------------
-eclipse.buildId=4.7.1.M20171009-0410
-java.version=1.8.0_20
-java.vendor=Oracle Corporation
-BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=en_US
-Framework arguments:  -product org.eclipse.epp.package.java.product -keyring /Users/gabrielcapella/.eclipse_keyring
-Command-line arguments:  -os macosx -ws cocoa -arch x86_64 -product org.eclipse.epp.package.java.product -keyring /Users/gabrielcapella/.eclipse_keyring
-
-!ENTRY org.lejos.nxt.ldt 4 0 2017-10-15 11:41:22.769
-!MESSAGE 
-!STACK 0
-java.lang.NullPointerException
-	at org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspathEntry(JavaRuntime.java:1164)
-	at org.eclipse.jdt.launching.StandardClasspathProvider.resolveClasspath(StandardClasspathProvider.java:91)
-	at org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspath(JavaRuntime.java:1517)
-	at org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate.getClasspath(AbstractJavaLaunchConfigurationDelegate.java:415)
-	at org.lejos.nxt.ldt.launch.LaunchNXTConfigDelegate.launch(LaunchNXTConfigDelegate.java:89)
-	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:885)
-	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:739)
-	at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:1039)
-	at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1256)
-	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
-
-!ENTRY org.lejos.nxt.ldt 4 0 2017-10-15 11:41:28.472
-!MESSAGE 
-!STACK 0
-java.lang.NullPointerException
-	at org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspathEntry(JavaRuntime.java:1164)
-	at org.eclipse.jdt.launching.StandardClasspathProvider.resolveClasspath(StandardClasspathProvider.java:91)
-	at org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspath(JavaRuntime.java:1517)
-	at org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate.getClasspath(AbstractJavaLaunchConfigurationDelegate.java:415)
-	at org.lejos.nxt.ldt.launch.LaunchNXTConfigDelegate.launch(LaunchNXTConfigDelegate.java:89)
-	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:885)
-	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:739)
-	at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:1039)
-	at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1256)
-	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
-
-!ENTRY org.lejos.nxt.ldt 4 0 2017-10-15 11:41:53.229
-!MESSAGE 
-!STACK 0
-java.lang.NullPointerException
-	at org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspathEntry(JavaRuntime.java:1164)
-	at org.eclipse.jdt.launching.StandardClasspathProvider.resolveClasspath(StandardClasspathProvider.java:91)
-	at org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspath(JavaRuntime.java:1517)
-	at org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate.getClasspath(AbstractJavaLaunchConfigurationDelegate.java:415)
-	at org.lejos.nxt.ldt.launch.LaunchNXTConfigDelegate.launch(LaunchNXTConfigDelegate.java:89)
-	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:885)
-	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:739)
-	at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:1039)
-	at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1256)
-	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
-
-!ENTRY org.lejos.nxt.ldt 4 0 2017-10-15 11:42:34.434
-!MESSAGE 
-!STACK 0
-java.lang.NullPointerException
-	at org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspathEntry(JavaRuntime.java:1164)
-	at org.eclipse.jdt.launching.StandardClasspathProvider.resolveClasspath(StandardClasspathProvider.java:91)
-	at org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspath(JavaRuntime.java:1517)
-	at org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate.getClasspath(AbstractJavaLaunchConfigurationDelegate.java:415)
-	at org.lejos.nxt.ldt.launch.LaunchNXTConfigDelegate.launch(LaunchNXTConfigDelegate.java:89)
-	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:885)
-	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:739)
-	at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:1039)
-	at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1256)
-	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
-
-!ENTRY org.lejos.nxt.ldt 4 0 2017-10-15 11:42:35.276
-!MESSAGE 
-!STACK 0
-java.lang.NullPointerException
-	at org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspathEntry(JavaRuntime.java:1164)
-	at org.eclipse.jdt.launching.StandardClasspathProvider.resolveClasspath(StandardClasspathProvider.java:91)
-	at org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspath(JavaRuntime.java:1517)
-	at org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate.getClasspath(AbstractJavaLaunchConfigurationDelegate.java:415)
-	at org.lejos.nxt.ldt.launch.LaunchNXTConfigDelegate.launch(LaunchNXTConfigDelegate.java:89)
-	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:885)
-	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:739)
-	at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:1039)
-	at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1256)
-	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
-
-!ENTRY org.lejos.nxt.ldt 4 0 2017-10-15 11:56:29.224
-!MESSAGE 
-!STACK 0
-java.lang.NullPointerException
-	at org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspathEntry(JavaRuntime.java:1164)
-	at org.eclipse.jdt.launching.StandardClasspathProvider.resolveClasspath(StandardClasspathProvider.java:91)
-	at org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspath(JavaRuntime.java:1517)
-	at org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate.getClasspath(AbstractJavaLaunchConfigurationDelegate.java:415)
-	at org.lejos.nxt.ldt.launch.LaunchNXTConfigDelegate.launch(LaunchNXTConfigDelegate.java:89)
-	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:885)
-	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:739)
-	at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:1039)
-	at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1256)
-	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
-!SESSION 2017-10-23 13:23:22.478 -----------------------------------------------
-eclipse.buildId=4.7.1.M20171009-0410
-java.version=1.8.0_20
-java.vendor=Oracle Corporation
-BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=en_US
-Framework arguments:  -product org.eclipse.epp.package.java.product -keyring /Users/gabrielcapella/.eclipse_keyring
-Command-line arguments:  -os macosx -ws cocoa -arch x86_64 -product org.eclipse.epp.package.java.product -keyring /Users/gabrielcapella/.eclipse_keyring
-
-!ENTRY org.eclipse.epp.logging.aeri.ide 2 17 2017-10-23 13:23:32.214
-!MESSAGE Server ‘org.eclipse.epp.logging.aeri.ide.server’ failed with exception: Connect to dev.eclipse.org:443 [dev.eclipse.org/198.41.30.200] failed: Host is down. ; version: 2.0.6.v20170906-1226
-!STACK 0
-org.apache.http.conn.HttpHostConnectException: Connect to dev.eclipse.org:443 [dev.eclipse.org/198.41.30.200] failed: Host is down
-	at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:158)
-	at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:353)
-	at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:380)
-	at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236)
-	at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184)
-	at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88)
-	at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
-	at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
-	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
-	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55)
-	at org.apache.http.client.fluent.Request.internalExecute(Request.java:173)
-	at org.apache.http.client.fluent.Executor.execute(Executor.java:262)
-	at org.eclipse.epp.internal.logging.aeri.ide.server.mars.IO.request(IO.java:170)
-	at org.eclipse.epp.internal.logging.aeri.ide.server.mars.IO.refreshConfiguration(IO.java:64)
-	at org.eclipse.epp.internal.logging.aeri.ide.server.mars.ServerConnection.startUp(ServerConnection.java:124)
-	at com.google.common.util.concurrent.AbstractIdleService$DelegateService$1.run(AbstractIdleService.java:62)
-	at com.google.common.util.concurrent.Callables$4.run(Callables.java:122)
-	at java.lang.Thread.run(Thread.java:745)
-Caused by: java.net.ConnectException: Host is down
-	at java.net.PlainSocketImpl.socketConnect(Native Method)
-	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)
-	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
-	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
-	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
-	at java.net.Socket.connect(Socket.java:589)
-	at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:337)
-	at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:141)
-	... 17 more
-
-!ENTRY org.eclipse.equinox.p2.transport.ecf 4 1002 2017-10-23 14:04:05.825
-!MESSAGE Unable to connect to repository http://www.lejos.org/tools/eclipse/plugin/nxj/content.xml
-!STACK 0
-java.net.ConnectException: Host is down
-	at java.net.PlainSocketImpl.socketConnect(Native Method)
-	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)
-	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
-	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
-	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
-	at java.net.Socket.connect(Socket.java:589)
-	at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:120)
-	at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:179)
-	at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:328)
-	at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:612)
-	at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:447)
-	at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:884)
-	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
-	at org.eclipse.ecf.provider.filetransfer.httpclient4.HttpClientFileSystemBrowser.runRequest(HttpClientFileSystemBrowser.java:263)
-	at org.eclipse.ecf.provider.filetransfer.browse.AbstractFileSystemBrowser$DirectoryJob.run(AbstractFileSystemBrowser.java:69)
-	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
-
-!ENTRY org.eclipse.equinox.p2.transport.ecf 4 1002 2017-10-23 14:04:05.849
-!MESSAGE Unable to connect to repository http://download.eclipse.org/oomph/updates/milestone/latest/compositeContent.xml
-!STACK 0
-java.net.ConnectException: Host is down
-	at java.net.PlainSocketImpl.socketConnect(Native Method)
-	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)
-	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
-	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
-	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
-	at java.net.Socket.connect(Socket.java:589)
-	at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:120)
-	at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:179)
-	at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:328)
-	at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:612)
-	at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:447)
-	at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:884)
-	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
-	at org.eclipse.ecf.provider.filetransfer.httpclient4.HttpClientFileSystemBrowser.runRequest(HttpClientFileSystemBrowser.java:263)
-	at org.eclipse.ecf.provider.filetransfer.browse.AbstractFileSystemBrowser$DirectoryJob.run(AbstractFileSystemBrowser.java:69)
-	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
-
-!ENTRY org.eclipse.equinox.p2.transport.ecf 4 1002 2017-10-23 14:04:05.854
-!MESSAGE Unable to connect to repository http://download.eclipse.org/eclipse/updates/4.7/compositeContent.xml
-!STACK 0
-java.net.ConnectException: Host is down
-	at java.net.PlainSocketImpl.socketConnect(Native Method)
-	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)
-	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
-	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
-	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
-	at java.net.Socket.connect(Socket.java:589)
-	at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:120)
-	at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:179)
-	at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:328)
-	at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:612)
-	at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:447)
-	at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:884)
-	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
-	at org.eclipse.ecf.provider.filetransfer.httpclient4.HttpClientFileSystemBrowser.runRequest(HttpClientFileSystemBrowser.java:263)
-	at org.eclipse.ecf.provider.filetransfer.browse.AbstractFileSystemBrowser$DirectoryJob.run(AbstractFileSystemBrowser.java:69)
-	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
-
-!ENTRY org.eclipse.equinox.p2.transport.ecf 4 1002 2017-10-23 14:04:06.934
-!MESSAGE Unable to connect to repository http://download.eclipse.org/releases/oxygen/compositeContent.xml
-!STACK 0
-java.net.ConnectException: Host is down
-	at java.net.PlainSocketImpl.socketConnect(Native Method)
-	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)
-	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
-	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
-	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
-	at java.net.Socket.connect(Socket.java:589)
-	at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:120)
-	at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:179)
-	at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:328)
-	at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:612)
-	at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:447)
-	at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:884)
-	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
-	at org.eclipse.ecf.provider.filetransfer.httpclient4.HttpClientFileSystemBrowser.runRequest(HttpClientFileSystemBrowser.java:263)
-	at org.eclipse.ecf.provider.filetransfer.browse.AbstractFileSystemBrowser$DirectoryJob.run(AbstractFileSystemBrowser.java:69)
-	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
-
-!ENTRY org.eclipse.jdt.core 4 4 2017-10-23 15:44:02.417
-!MESSAGE Could not retrieve declared methods
-!STACK 0
-java.lang.NullPointerException
-	at org.eclipse.jdt.internal.compiler.lookup.TypeSystem.getWildcard(TypeSystem.java:369)
-	at org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem.getWildcard(AnnotatableTypeSystem.java:195)
-	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.getTypeFromVariantTypeSignature(LookupEnvironment.java:2007)
-	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.getTypeArgumentsFromSignature(LookupEnvironment.java:1645)
-	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.getTypeFromTypeSignature(LookupEnvironment.java:1931)
-	at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.createMethod(BinaryTypeBinding.java:796)
-	at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.createMethods(BinaryTypeBinding.java:910)
-	at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.cachePartsFrom(BinaryTypeBinding.java:529)
-	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.createBinaryTypeFrom(LookupEnvironment.java:1022)
-	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.createBinaryTypeFrom(LookupEnvironment.java:1003)
-	at org.eclipse.jdt.internal.compiler.Compiler.accept(Compiler.java:303)
-	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:249)
-	at org.eclipse.jdt.internal.compiler.lookup.UnresolvedReferenceBinding.resolve(UnresolvedReferenceBinding.java:105)
-	at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.resolveType(BinaryTypeBinding.java:215)
-	at org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding.resolve(ParameterizedTypeBinding.java:1050)
-	at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.resolveType(BinaryTypeBinding.java:186)
-	at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.resolveTypesFor(BinaryTypeBinding.java:1507)
-	at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.availableMethods(BinaryTypeBinding.java:396)
-	at org.eclipse.jdt.core.dom.TypeBinding.getDeclaredMethods(TypeBinding.java:302)
-	at org.eclipse.jdt.internal.corext.dom.Bindings.findOverriddenMethodInType(Bindings.java:494)
-	at org.eclipse.jdt.internal.corext.dom.Bindings.findOverriddenMethodInHierarchy(Bindings.java:511)
-	at org.eclipse.jdt.internal.corext.dom.Bindings.findOverriddenMethods(Bindings.java:567)
-	at org.eclipse.jdt.internal.corext.dom.Bindings.findOverriddenMethod(Bindings.java:538)
-	at org.eclipse.jdt.internal.ui.javaeditor.OverrideIndicatorManager$1.visit(OverrideIndicatorManager.java:184)
-	at org.eclipse.jdt.core.dom.MethodDeclaration.accept0(MethodDeclaration.java:611)
-	at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2796)
-	at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2867)
-	at org.eclipse.jdt.core.dom.TypeDeclaration.accept0(TypeDeclaration.java:470)
-	at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2796)
-	at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2867)
-	at org.eclipse.jdt.core.dom.TypeDeclaration.accept0(TypeDeclaration.java:470)
-	at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2796)
-	at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2867)
-	at org.eclipse.jdt.core.dom.CompilationUnit.accept0(CompilationUnit.java:257)
-	at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2796)
-	at org.eclipse.jdt.internal.ui.javaeditor.OverrideIndicatorManager.updateAnnotations(OverrideIndicatorManager.java:176)
-	at org.eclipse.jdt.internal.ui.javaeditor.OverrideIndicatorManager.reconciled(OverrideIndicatorManager.java:258)
-	at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor.reconciled(CompilationUnitEditor.java:1688)
-	at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconciled(JavaReconcilingStrategy.java:219)
-	at org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.reconciled(JavaCompositeReconcilingStrategy.java:164)
-	at org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.reconcile(JavaCompositeReconcilingStrategy.java:112)
-	at org.eclipse.jface.text.reconciler.MonoReconciler.process(MonoReconciler.java:73)
-	at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:207)
-!SESSION 2017-10-24 20:05:01.984 -----------------------------------------------
-eclipse.buildId=4.7.1.M20171009-0410
-java.version=1.8.0_20
-java.vendor=Oracle Corporation
-BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=en_US
-Framework arguments:  -product org.eclipse.epp.package.java.product -keyring /Users/gabrielcapella/.eclipse_keyring
-Command-line arguments:  -os macosx -ws cocoa -arch x86_64 -product org.eclipse.epp.package.java.product -keyring /Users/gabrielcapella/.eclipse_keyring
-
-!ENTRY org.eclipse.epp.logging.aeri.ide 2 17 2017-10-24 20:05:11.934
-!MESSAGE Server ‘org.eclipse.epp.logging.aeri.ide.server’ failed with exception: Connect to dev.eclipse.org:443 [dev.eclipse.org/198.41.30.200] failed: Host is down. ; version: 2.0.6.v20170906-1226
-!STACK 0
-org.apache.http.conn.HttpHostConnectException: Connect to dev.eclipse.org:443 [dev.eclipse.org/198.41.30.200] failed: Host is down
-	at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:158)
-	at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:353)
-	at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:380)
-	at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236)
-	at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184)
-	at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88)
-	at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
-	at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
-	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
-	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55)
-	at org.apache.http.client.fluent.Request.internalExecute(Request.java:173)
-	at org.apache.http.client.fluent.Executor.execute(Executor.java:262)
-	at org.eclipse.epp.internal.logging.aeri.ide.server.mars.IO.request(IO.java:170)
-	at org.eclipse.epp.internal.logging.aeri.ide.server.mars.IO.refreshConfiguration(IO.java:64)
-	at org.eclipse.epp.internal.logging.aeri.ide.server.mars.ServerConnection.startUp(ServerConnection.java:124)
-	at com.google.common.util.concurrent.AbstractIdleService$DelegateService$1.run(AbstractIdleService.java:62)
-	at com.google.common.util.concurrent.Callables$4.run(Callables.java:122)
-	at java.lang.Thread.run(Thread.java:745)
-Caused by: java.net.ConnectException: Host is down
-	at java.net.PlainSocketImpl.socketConnect(Native Method)
-	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)
-	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
-	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
-	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
-	at java.net.Socket.connect(Socket.java:589)
-	at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:337)
-	at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:141)
-	... 17 more
-
-!ENTRY org.eclipse.equinox.p2.transport.ecf 4 1002 2017-10-24 20:31:15.795
-!MESSAGE Unable to connect to repository http://www.lejos.org/tools/eclipse/plugin/nxj/content.xml
-!STACK 0
-java.net.ConnectException: Host is down
-	at java.net.PlainSocketImpl.socketConnect(Native Method)
-	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)
-	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
-	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
-	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
-	at java.net.Socket.connect(Socket.java:589)
-	at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:120)
-	at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:179)
-	at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:328)
-	at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:612)
-	at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:447)
-	at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:884)
-	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
-	at org.eclipse.ecf.provider.filetransfer.httpclient4.HttpClientFileSystemBrowser.runRequest(HttpClientFileSystemBrowser.java:263)
-	at org.eclipse.ecf.provider.filetransfer.browse.AbstractFileSystemBrowser$DirectoryJob.run(AbstractFileSystemBrowser.java:69)
-	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
-
-!ENTRY org.eclipse.equinox.p2.transport.ecf 4 1002 2017-10-24 20:31:15.803
-!MESSAGE Unable to connect to repository http://download.eclipse.org/oomph/updates/milestone/latest/compositeContent.xml
-!STACK 0
-java.net.ConnectException: Host is down
-	at java.net.PlainSocketImpl.socketConnect(Native Method)
-	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)
-	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
-	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
-	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
-	at java.net.Socket.connect(Socket.java:589)
-	at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:120)
-	at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:179)
-	at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:328)
-	at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:612)
-	at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:447)
-	at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:884)
-	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
-	at org.eclipse.ecf.provider.filetransfer.httpclient4.HttpClientFileSystemBrowser.runRequest(HttpClientFileSystemBrowser.java:263)
-	at org.eclipse.ecf.provider.filetransfer.browse.AbstractFileSystemBrowser$DirectoryJob.run(AbstractFileSystemBrowser.java:69)
-	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
-
-!ENTRY org.eclipse.equinox.p2.transport.ecf 4 1002 2017-10-24 20:31:15.807
-!MESSAGE Unable to connect to repository http://download.eclipse.org/eclipse/updates/4.7/compositeContent.xml
-!STACK 0
-java.net.ConnectException: Host is down
-	at java.net.PlainSocketImpl.socketConnect(Native Method)
-	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)
-	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
-	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
-	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
-	at java.net.Socket.connect(Socket.java:589)
-	at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:120)
-	at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:179)
-	at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:328)
-	at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:612)
-	at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:447)
-	at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:884)
-	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
-	at org.eclipse.ecf.provider.filetransfer.httpclient4.HttpClientFileSystemBrowser.runRequest(HttpClientFileSystemBrowser.java:263)
-	at org.eclipse.ecf.provider.filetransfer.browse.AbstractFileSystemBrowser$DirectoryJob.run(AbstractFileSystemBrowser.java:69)
-	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
-
-!ENTRY org.eclipse.equinox.p2.transport.ecf 4 1002 2017-10-24 20:31:16.083
-!MESSAGE Unable to connect to repository http://download.eclipse.org/releases/oxygen/compositeContent.xml
-!STACK 0
-java.net.ConnectException: Host is down
-	at java.net.PlainSocketImpl.socketConnect(Native Method)
-	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)
-	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
-	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
-	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
-	at java.net.Socket.connect(Socket.java:589)
-	at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:120)
-	at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:179)
-	at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:328)
-	at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:612)
-	at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:447)
-	at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:884)
-	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
-	at org.eclipse.ecf.provider.filetransfer.httpclient4.HttpClientFileSystemBrowser.runRequest(HttpClientFileSystemBrowser.java:263)
-	at org.eclipse.ecf.provider.filetransfer.browse.AbstractFileSystemBrowser$DirectoryJob.run(AbstractFileSystemBrowser.java:69)
-	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
-!SESSION 2017-10-25 15:49:28.917 -----------------------------------------------
-eclipse.buildId=4.7.1.M20171009-0410
-java.version=1.8.0_20
-java.vendor=Oracle Corporation
-BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=en_US
-Framework arguments:  -product org.eclipse.epp.package.java.product -keyring /Users/gabrielcapella/.eclipse_keyring
-Command-line arguments:  -os macosx -ws cocoa -arch x86_64 -product org.eclipse.epp.package.java.product -keyring /Users/gabrielcapella/.eclipse_keyring
-
-!ENTRY org.eclipse.epp.logging.aeri.ide 2 17 2017-10-25 15:49:37.874
-!MESSAGE Server ‘org.eclipse.epp.logging.aeri.ide.server’ failed with exception: Connect to dev.eclipse.org:443 [dev.eclipse.org/198.41.30.200] failed: Host is down. ; version: 2.0.6.v20170906-1226
-!STACK 0
-org.apache.http.conn.HttpHostConnectException: Connect to dev.eclipse.org:443 [dev.eclipse.org/198.41.30.200] failed: Host is down
-	at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:158)
-	at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:353)
-	at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:380)
-	at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236)
-	at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184)
-	at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88)
-	at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
-	at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
-	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
-	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55)
-	at org.apache.http.client.fluent.Request.internalExecute(Request.java:173)
-	at org.apache.http.client.fluent.Executor.execute(Executor.java:262)
-	at org.eclipse.epp.internal.logging.aeri.ide.server.mars.IO.request(IO.java:170)
-	at org.eclipse.epp.internal.logging.aeri.ide.server.mars.IO.refreshConfiguration(IO.java:64)
-	at org.eclipse.epp.internal.logging.aeri.ide.server.mars.ServerConnection.startUp(ServerConnection.java:124)
-	at com.google.common.util.concurrent.AbstractIdleService$DelegateService$1.run(AbstractIdleService.java:62)
-	at com.google.common.util.concurrent.Callables$4.run(Callables.java:122)
-	at java.lang.Thread.run(Thread.java:745)
-Caused by: java.net.ConnectException: Host is down
-	at java.net.PlainSocketImpl.socketConnect(Native Method)
-	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)
-	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
-	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
-	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
-	at java.net.Socket.connect(Socket.java:589)
-	at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:337)
-	at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:141)
-	... 17 more
-
-!ENTRY org.eclipse.equinox.p2.transport.ecf 4 1002 2017-10-25 16:24:33.817
-!MESSAGE Unable to connect to repository http://www.lejos.org/tools/eclipse/plugin/nxj/content.xml
-!STACK 0
-java.net.ConnectException: Host is down
-	at java.net.PlainSocketImpl.socketConnect(Native Method)
-	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)
-	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
-	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
-	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
-	at java.net.Socket.connect(Socket.java:589)
-	at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:120)
-	at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:179)
-	at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:328)
-	at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:612)
-	at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:447)
-	at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:884)
-	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
-	at org.eclipse.ecf.provider.filetransfer.httpclient4.HttpClientFileSystemBrowser.runRequest(HttpClientFileSystemBrowser.java:263)
-	at org.eclipse.ecf.provider.filetransfer.browse.AbstractFileSystemBrowser$DirectoryJob.run(AbstractFileSystemBrowser.java:69)
-	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
-
-!ENTRY org.eclipse.equinox.p2.transport.ecf 4 1002 2017-10-25 16:24:33.825
-!MESSAGE Unable to connect to repository http://download.eclipse.org/oomph/updates/milestone/latest/compositeContent.xml
-!STACK 0
-java.net.ConnectException: Host is down
-	at java.net.PlainSocketImpl.socketConnect(Native Method)
-	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)
-	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
-	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
-	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
-	at java.net.Socket.connect(Socket.java:589)
-	at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:120)
-	at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:179)
-	at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:328)
-	at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:612)
-	at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:447)
-	at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:884)
-	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
-	at org.eclipse.ecf.provider.filetransfer.httpclient4.HttpClientFileSystemBrowser.runRequest(HttpClientFileSystemBrowser.java:263)
-	at org.eclipse.ecf.provider.filetransfer.browse.AbstractFileSystemBrowser$DirectoryJob.run(AbstractFileSystemBrowser.java:69)
-	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
-
-!ENTRY org.eclipse.equinox.p2.transport.ecf 4 1002 2017-10-25 16:24:33.829
-!MESSAGE Unable to connect to repository http://download.eclipse.org/eclipse/updates/4.7/compositeContent.xml
-!STACK 0
-java.net.ConnectException: Host is down
-	at java.net.PlainSocketImpl.socketConnect(Native Method)
-	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)
-	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
-	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
-	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
-	at java.net.Socket.connect(Socket.java:589)
-	at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:120)
-	at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:179)
-	at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:328)
-	at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:612)
-	at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:447)
-	at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:884)
-	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
-	at org.eclipse.ecf.provider.filetransfer.httpclient4.HttpClientFileSystemBrowser.runRequest(HttpClientFileSystemBrowser.java:263)
-	at org.eclipse.ecf.provider.filetransfer.browse.AbstractFileSystemBrowser$DirectoryJob.run(AbstractFileSystemBrowser.java:69)
-	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
-
-!ENTRY org.eclipse.equinox.p2.transport.ecf 4 1002 2017-10-25 16:24:34.090
-!MESSAGE Unable to connect to repository http://download.eclipse.org/releases/oxygen/compositeContent.xml
-!STACK 0
-java.net.ConnectException: Host is down
-	at java.net.PlainSocketImpl.socketConnect(Native Method)
-	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)
-	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
-	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
-	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
-	at java.net.Socket.connect(Socket.java:589)
-	at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:120)
-	at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:179)
-	at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:328)
-	at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:612)
-	at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:447)
-	at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:884)
-	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
-	at org.eclipse.ecf.provider.filetransfer.httpclient4.HttpClientFileSystemBrowser.runRequest(HttpClientFileSystemBrowser.java:263)
-	at org.eclipse.ecf.provider.filetransfer.browse.AbstractFileSystemBrowser$DirectoryJob.run(AbstractFileSystemBrowser.java:69)
-	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
-
-!ENTRY org.lejos.nxt.ldt 4 0 2017-10-25 21:58:29.221
-!MESSAGE 
-!STACK 0
-java.lang.NullPointerException
-	at org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspathEntry(JavaRuntime.java:1164)
-	at org.eclipse.jdt.launching.StandardClasspathProvider.resolveClasspath(StandardClasspathProvider.java:91)
-	at org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspath(JavaRuntime.java:1517)
-	at org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate.getClasspath(AbstractJavaLaunchConfigurationDelegate.java:415)
-	at org.lejos.nxt.ldt.launch.LaunchNXTConfigDelegate.launch(LaunchNXTConfigDelegate.java:89)
-	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:885)
-	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:739)
-	at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:1039)
-	at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1256)
-	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
-
-!ENTRY org.lejos.nxt.ldt 4 0 2017-10-25 21:58:43.180
-!MESSAGE 
-!STACK 0
-java.lang.NullPointerException
-	at org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspathEntry(JavaRuntime.java:1164)
-	at org.eclipse.jdt.launching.StandardClasspathProvider.resolveClasspath(StandardClasspathProvider.java:91)
-	at org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspath(JavaRuntime.java:1517)
-	at org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate.getClasspath(AbstractJavaLaunchConfigurationDelegate.java:415)
-	at org.lejos.nxt.ldt.launch.LaunchNXTConfigDelegate.launch(LaunchNXTConfigDelegate.java:89)
-	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:885)
-	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:739)
-	at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:1039)
-	at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1256)
-	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
-
-!ENTRY org.lejos.nxt.ldt 4 0 2017-10-25 22:02:35.730
-!MESSAGE 
-!STACK 0
-java.lang.NullPointerException
-	at org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspathEntry(JavaRuntime.java:1164)
-	at org.eclipse.jdt.launching.StandardClasspathProvider.resolveClasspath(StandardClasspathProvider.java:91)
-	at org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspath(JavaRuntime.java:1517)
-	at org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate.getClasspath(AbstractJavaLaunchConfigurationDelegate.java:415)
-	at org.lejos.nxt.ldt.launch.LaunchNXTConfigDelegate.launch(LaunchNXTConfigDelegate.java:89)
-	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:885)
-	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:739)
-	at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:1039)
-	at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1256)
-	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
-
-!ENTRY org.lejos.nxt.ldt 4 0 2017-10-25 22:02:37.027
-!MESSAGE 
-!STACK 0
-java.lang.NullPointerException
-	at org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspathEntry(JavaRuntime.java:1164)
-	at org.eclipse.jdt.launching.StandardClasspathProvider.resolveClasspath(StandardClasspathProvider.java:91)
-	at org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspath(JavaRuntime.java:1517)
-	at org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate.getClasspath(AbstractJavaLaunchConfigurationDelegate.java:415)
-	at org.lejos.nxt.ldt.launch.LaunchNXTConfigDelegate.launch(LaunchNXTConfigDelegate.java:89)
-	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:885)
-	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:739)
-	at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:1039)
-	at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1256)
-	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
-
-!ENTRY org.lejos.nxt.ldt 4 0 2017-10-25 22:02:41.705
-!MESSAGE 
-!STACK 0
-java.lang.NullPointerException
-	at org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspathEntry(JavaRuntime.java:1164)
-	at org.eclipse.jdt.launching.StandardClasspathProvider.resolveClasspath(StandardClasspathProvider.java:91)
-	at org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspath(JavaRuntime.java:1517)
-	at org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate.getClasspath(AbstractJavaLaunchConfigurationDelegate.java:415)
-	at org.lejos.nxt.ldt.launch.LaunchNXTConfigDelegate.launch(LaunchNXTConfigDelegate.java:89)
-	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:885)
-	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:739)
-	at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:1039)
-	at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1256)
-	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
-
-!ENTRY org.lejos.nxt.ldt 4 0 2017-10-25 22:07:57.690
-!MESSAGE 
-!STACK 0
-java.lang.NullPointerException
-	at org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspathEntry(JavaRuntime.java:1164)
-	at org.eclipse.jdt.launching.StandardClasspathProvider.resolveClasspath(StandardClasspathProvider.java:91)
-	at org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspath(JavaRuntime.java:1517)
-	at org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate.getClasspath(AbstractJavaLaunchConfigurationDelegate.java:415)
-	at org.lejos.nxt.ldt.launch.LaunchNXTConfigDelegate.launch(LaunchNXTConfigDelegate.java:89)
-	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:885)
-	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:739)
-	at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:1039)
-	at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1256)
-	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
-!SESSION 2017-10-26 18:34:08.301 -----------------------------------------------
-eclipse.buildId=4.7.1.M20171009-0410
-java.version=1.8.0_20
-java.vendor=Oracle Corporation
-BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=en_US
-Framework arguments:  -product org.eclipse.epp.package.java.product -keyring /Users/gabrielcapella/.eclipse_keyring
-Command-line arguments:  -os macosx -ws cocoa -arch x86_64 -product org.eclipse.epp.package.java.product -keyring /Users/gabrielcapella/.eclipse_keyring
-
-!ENTRY org.eclipse.epp.logging.aeri.ide 2 17 2017-10-26 18:34:18.052
-!MESSAGE Server ‘org.eclipse.epp.logging.aeri.ide.server’ failed with exception: Connect to dev.eclipse.org:443 [dev.eclipse.org/198.41.30.200] failed: Host is down. ; version: 2.0.6.v20170906-1226
-!STACK 0
-org.apache.http.conn.HttpHostConnectException: Connect to dev.eclipse.org:443 [dev.eclipse.org/198.41.30.200] failed: Host is down
-	at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:158)
-	at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:353)
-	at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:380)
-	at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236)
-	at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184)
-	at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88)
-	at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
-	at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
-	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
-	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55)
-	at org.apache.http.client.fluent.Request.internalExecute(Request.java:173)
-	at org.apache.http.client.fluent.Executor.execute(Executor.java:262)
-	at org.eclipse.epp.internal.logging.aeri.ide.server.mars.IO.request(IO.java:170)
-	at org.eclipse.epp.internal.logging.aeri.ide.server.mars.IO.refreshConfiguration(IO.java:64)
-	at org.eclipse.epp.internal.logging.aeri.ide.server.mars.ServerConnection.startUp(ServerConnection.java:124)
-	at com.google.common.util.concurrent.AbstractIdleService$DelegateService$1.run(AbstractIdleService.java:62)
-	at com.google.common.util.concurrent.Callables$4.run(Callables.java:122)
-	at java.lang.Thread.run(Thread.java:745)
-Caused by: java.net.ConnectException: Host is down
-	at java.net.PlainSocketImpl.socketConnect(Native Method)
-	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)
-	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
-	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
-	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
-	at java.net.Socket.connect(Socket.java:589)
-	at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:337)
-	at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:141)
-	... 17 more
-
-!ENTRY org.eclipse.equinox.p2.transport.ecf 4 1002 2017-10-26 19:18:08.776
-!MESSAGE Unable to connect to repository http://www.lejos.org/tools/eclipse/plugin/nxj/content.xml
-!STACK 0
-java.net.ConnectException: Host is down
-	at java.net.PlainSocketImpl.socketConnect(Native Method)
-	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)
-	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
-	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
-	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
-	at java.net.Socket.connect(Socket.java:589)
-	at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:120)
-	at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:179)
-	at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:328)
-	at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:612)
-	at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:447)
-	at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:884)
-	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
-	at org.eclipse.ecf.provider.filetransfer.httpclient4.HttpClientFileSystemBrowser.runRequest(HttpClientFileSystemBrowser.java:263)
-	at org.eclipse.ecf.provider.filetransfer.browse.AbstractFileSystemBrowser$DirectoryJob.run(AbstractFileSystemBrowser.java:69)
-	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
-
-!ENTRY org.eclipse.equinox.p2.transport.ecf 4 1002 2017-10-26 19:18:08.800
-!MESSAGE Unable to connect to repository http://download.eclipse.org/oomph/updates/milestone/latest/compositeContent.xml
-!STACK 0
-java.net.ConnectException: Host is down
-	at java.net.PlainSocketImpl.socketConnect(Native Method)
-	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)
-	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
-	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
-	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
-	at java.net.Socket.connect(Socket.java:589)
-	at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:120)
-	at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:179)
-	at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:328)
-	at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:612)
-	at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:447)
-	at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:884)
-	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
-	at org.eclipse.ecf.provider.filetransfer.httpclient4.HttpClientFileSystemBrowser.runRequest(HttpClientFileSystemBrowser.java:263)
-	at org.eclipse.ecf.provider.filetransfer.browse.AbstractFileSystemBrowser$DirectoryJob.run(AbstractFileSystemBrowser.java:69)
-	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
-
-!ENTRY org.eclipse.equinox.p2.transport.ecf 4 1002 2017-10-26 19:18:08.805
-!MESSAGE Unable to connect to repository http://download.eclipse.org/eclipse/updates/4.7/compositeContent.xml
-!STACK 0
-java.net.ConnectException: Host is down
-	at java.net.PlainSocketImpl.socketConnect(Native Method)
-	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)
-	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
-	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
-	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
-	at java.net.Socket.connect(Socket.java:589)
-	at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:120)
-	at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:179)
-	at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:328)
-	at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:612)
-	at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:447)
-	at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:884)
-	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
-	at org.eclipse.ecf.provider.filetransfer.httpclient4.HttpClientFileSystemBrowser.runRequest(HttpClientFileSystemBrowser.java:263)
-	at org.eclipse.ecf.provider.filetransfer.browse.AbstractFileSystemBrowser$DirectoryJob.run(AbstractFileSystemBrowser.java:69)
-	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
-
-!ENTRY org.eclipse.equinox.p2.transport.ecf 4 1002 2017-10-26 19:18:09.094
-!MESSAGE Unable to connect to repository http://download.eclipse.org/releases/oxygen/compositeContent.xml
-!STACK 0
-java.net.ConnectException: Host is down
-	at java.net.PlainSocketImpl.socketConnect(Native Method)
-	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)
-	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
-	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
-	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
-	at java.net.Socket.connect(Socket.java:589)
-	at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:120)
-	at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:179)
-	at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:328)
-	at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:612)
-	at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:447)
-	at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:884)
-	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
-	at org.eclipse.ecf.provider.filetransfer.httpclient4.HttpClientFileSystemBrowser.runRequest(HttpClientFileSystemBrowser.java:263)
-	at org.eclipse.ecf.provider.filetransfer.browse.AbstractFileSystemBrowser$DirectoryJob.run(AbstractFileSystemBrowser.java:69)
-	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
-
-!ENTRY org.lejos.nxt.ldt 4 0 2017-10-26 22:23:11.729
-!MESSAGE 
-!STACK 0
-java.lang.NullPointerException
-	at org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspathEntry(JavaRuntime.java:1164)
-	at org.eclipse.jdt.launching.StandardClasspathProvider.resolveClasspath(StandardClasspathProvider.java:91)
-	at org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspath(JavaRuntime.java:1517)
-	at org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate.getClasspath(AbstractJavaLaunchConfigurationDelegate.java:415)
-	at org.lejos.nxt.ldt.launch.LaunchNXTConfigDelegate.launch(LaunchNXTConfigDelegate.java:89)
-	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:885)
-	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:739)
-	at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:1039)
-	at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1256)
-	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
-
-!ENTRY org.lejos.nxt.ldt 4 0 2017-10-26 22:23:18.642
-!MESSAGE 
-!STACK 0
-java.lang.NullPointerException
-	at org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspathEntry(JavaRuntime.java:1164)
-	at org.eclipse.jdt.launching.StandardClasspathProvider.resolveClasspath(StandardClasspathProvider.java:91)
-	at org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspath(JavaRuntime.java:1517)
-	at org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate.getClasspath(AbstractJavaLaunchConfigurationDelegate.java:415)
-	at org.lejos.nxt.ldt.launch.LaunchNXTConfigDelegate.launch(LaunchNXTConfigDelegate.java:89)
-	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:885)
-	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:739)
-	at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:1039)
-	at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1256)
-	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
-
-!ENTRY org.lejos.nxt.ldt 4 0 2017-10-26 22:32:24.378
-!MESSAGE 
-!STACK 0
-java.lang.NullPointerException
-	at org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspathEntry(JavaRuntime.java:1164)
-	at org.eclipse.jdt.launching.StandardClasspathProvider.resolveClasspath(StandardClasspathProvider.java:91)
-	at org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspath(JavaRuntime.java:1517)
-	at org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate.getClasspath(AbstractJavaLaunchConfigurationDelegate.java:415)
-	at org.lejos.nxt.ldt.launch.LaunchNXTConfigDelegate.launch(LaunchNXTConfigDelegate.java:89)
-	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:885)
-	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:739)
-	at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:1039)
-	at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1256)
-	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
-
-!ENTRY org.lejos.nxt.ldt 4 0 2017-10-26 22:32:34.078
-!MESSAGE 
-!STACK 0
-java.lang.NullPointerException
-	at org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspathEntry(JavaRuntime.java:1164)
-	at org.eclipse.jdt.launching.StandardClasspathProvider.resolveClasspath(StandardClasspathProvider.java:91)
-	at org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspath(JavaRuntime.java:1517)
-	at org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate.getClasspath(AbstractJavaLaunchConfigurationDelegate.java:415)
-	at org.lejos.nxt.ldt.launch.LaunchNXTConfigDelegate.launch(LaunchNXTConfigDelegate.java:89)
-	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:885)
-	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:739)
-	at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:1039)
-	at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1256)
-	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
-
-!ENTRY org.lejos.nxt.ldt 4 0 2017-10-26 22:32:36.110
-!MESSAGE 
-!STACK 0
-java.lang.NullPointerException
-	at org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspathEntry(JavaRuntime.java:1164)
-	at org.eclipse.jdt.launching.StandardClasspathProvider.resolveClasspath(StandardClasspathProvider.java:91)
-	at org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspath(JavaRuntime.java:1517)
-	at org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate.getClasspath(AbstractJavaLaunchConfigurationDelegate.java:415)
-	at org.lejos.nxt.ldt.launch.LaunchNXTConfigDelegate.launch(LaunchNXTConfigDelegate.java:89)
-	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:885)
-	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:739)
-	at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:1039)
-	at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1256)
-	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
-
-!ENTRY org.lejos.nxt.ldt 4 0 2017-10-26 22:32:39.269
-!MESSAGE 
-!STACK 0
-java.lang.NullPointerException
-	at org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspathEntry(JavaRuntime.java:1164)
-	at org.eclipse.jdt.launching.StandardClasspathProvider.resolveClasspath(StandardClasspathProvider.java:91)
-	at org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspath(JavaRuntime.java:1517)
-	at org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate.getClasspath(AbstractJavaLaunchConfigurationDelegate.java:415)
-	at org.lejos.nxt.ldt.launch.LaunchNXTConfigDelegate.launch(LaunchNXTConfigDelegate.java:89)
-	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:885)
-	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:739)
-	at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:1039)
-	at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1256)
-	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
-
-!ENTRY org.lejos.nxt.ldt 4 0 2017-10-26 22:32:47.844
-!MESSAGE 
-!STACK 0
-java.lang.NullPointerException
-	at org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspathEntry(JavaRuntime.java:1164)
-	at org.eclipse.jdt.launching.StandardClasspathProvider.resolveClasspath(StandardClasspathProvider.java:91)
-	at org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspath(JavaRuntime.java:1517)
-	at org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate.getClasspath(AbstractJavaLaunchConfigurationDelegate.java:415)
-	at org.lejos.nxt.ldt.launch.LaunchNXTConfigDelegate.launch(LaunchNXTConfigDelegate.java:89)
-	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:885)
-	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:739)
-	at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:1039)
-	at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1256)
-	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
-
-!ENTRY org.lejos.nxt.ldt 4 0 2017-10-26 22:32:48.703
-!MESSAGE 
-!STACK 0
-java.lang.NullPointerException
-	at org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspathEntry(JavaRuntime.java:1164)
-	at org.eclipse.jdt.launching.StandardClasspathProvider.resolveClasspath(StandardClasspathProvider.java:91)
-	at org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspath(JavaRuntime.java:1517)
-	at org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate.getClasspath(AbstractJavaLaunchConfigurationDelegate.java:415)
-	at org.lejos.nxt.ldt.launch.LaunchNXTConfigDelegate.launch(LaunchNXTConfigDelegate.java:89)
-	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:885)
-	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:739)
-	at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:1039)
-	at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1256)
-	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
-
-!ENTRY org.eclipse.m2e.logback.appender 2 0 2017-10-27 11:49:19.548
-!MESSAGE Failed to download jre:jre:ctor:zip:1.0.0
-!STACK 0
-org.eclipse.aether.resolution.ArtifactResolutionException: Could not transfer artifact jre:jre:zip:ctor:1.0.0-20160630.072510-1 from/to models (http://download.eclipse.org/recommenders/models/oxygen/): Host is down
-	at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:453)
-	at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:255)
-	at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:232)
-	at org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveArtifact(DefaultRepositorySystem.java:303)
-	at org.eclipse.recommenders.models.ModelRepository.resolveInternal(ModelRepository.java:193)
-	at org.eclipse.recommenders.models.ModelRepository.resolve(ModelRepository.java:172)
-	at org.eclipse.recommenders.internal.models.rcp.EclipseModelRepository.resolve(EclipseModelRepository.java:168)
-	at org.eclipse.recommenders.internal.models.rcp.DownloadModelArchiveJob.run(DownloadModelArchiveJob.java:76)
-	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
-Caused by: org.eclipse.aether.transfer.ArtifactTransferException: Could not transfer artifact jre:jre:zip:ctor:1.0.0-20160630.072510-1 from/to models (http://download.eclipse.org/recommenders/models/oxygen/): Host is down
-	at org.eclipse.aether.connector.basic.ArtifactTransportListener.transferFailed(ArtifactTransportListener.java:52)
-	at org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run(BasicRepositoryConnector.java:364)
-	at org.eclipse.aether.util.concurrency.RunnableErrorForwarder$1.run(RunnableErrorForwarder.java:76)
-	at org.eclipse.aether.connector.basic.BasicRepositoryConnector$DirectExecutor.execute(BasicRepositoryConnector.java:590)
-	at org.eclipse.aether.connector.basic.BasicRepositoryConnector.get(BasicRepositoryConnector.java:258)
-	at org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads(DefaultArtifactResolver.java:529)
-	at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:430)
-	... 8 more
-Caused by: java.net.ConnectException: Host is down
-	at java.net.PlainSocketImpl.socketConnect(Native Method)
-	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)
-	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
-	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
-	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
-	at java.net.Socket.connect(Socket.java:589)
-	at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:120)
-	at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:179)
-	at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:328)
-	at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:612)
-	at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:447)
-	at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:884)
-	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:71)
-	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55)
-	at org.apache.http.impl.client.DecompressingHttpClient.execute(DecompressingHttpClient.java:164)
-	at org.eclipse.aether.transport.http.HttpTransporter.execute(HttpTransporter.java:296)
-	at org.eclipse.aether.transport.http.HttpTransporter.implGet(HttpTransporter.java:252)
-	at org.eclipse.aether.spi.connector.transport.AbstractTransporter.get(AbstractTransporter.java:68)
-	at org.eclipse.aether.connector.basic.BasicRepositoryConnector$GetTaskRunner.runTask(BasicRepositoryConnector.java:456)
-	at org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run(BasicRepositoryConnector.java:359)
-	... 13 more
-
-!ENTRY org.eclipse.recommenders.models.rcp 1 0 2017-10-27 11:49:19.551
-!MESSAGE jre:jre:ctor:zip:1.0.0 could not be resolved from the model repositories. Are you offline?

BIN
.metadata2/.mylyn/.taskListIndex/segments_1


+ 0 - 0
.metadata2/.mylyn/.taskListIndex/write.lock


BIN
.metadata2/.mylyn/.tasks.xml.zip


BIN
.metadata2/.mylyn/repositories.xml.zip


BIN
.metadata2/.mylyn/tasks.xml.zip


+ 0 - 16
.metadata2/.plugins/org.eclipse.core.resources/.history/0/102195ce0eb9001711c7a09600ea5d68

@@ -1,16 +0,0 @@
-package config;
-
-import lejos.robotics.mapping.LineMap;
-import lejos.robotics.navigation.Pose;
-
-public class SonarModel {
-	private LineMap map;
-
-	public SonarModel(LineMap map) {
-		this.map = map;
-	}
-
-	public double expectedRead(Pose p) {
-		return 0;
-	}
-}

+ 0 - 248
.metadata2/.plugins/org.eclipse.core.resources/.history/1/30dc958315b80017145c9b6064c27648

@@ -1,248 +0,0 @@
-import java.awt.Color;
-import java.awt.Graphics;
-import java.awt.Point;
-import java.awt.event.MouseEvent;
-import java.awt.event.MouseListener;
-import java.awt.event.MouseMotionListener;
-import java.awt.event.MouseWheelEvent;
-import java.awt.event.MouseWheelListener;
-import java.awt.image.BufferedImage;
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-
-import javax.imageio.ImageIO;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-
-public class MapImage extends JPanel implements MouseWheelListener, MouseListener, MouseMotionListener  {
-    private double zoom = 2.0; // pixel per cm
-    private double grid = 10.0; // cm
-    private double centerx = 0.0;
-    private double centery = 0.0; // cm
-    private Point mousePt;
-    private ArrayList<Pose> lista_pontos;
-    private ArrayList<Pose> lista_ultra;
-    private int visual_method = 0;
-    private boolean line = false;
-    
-	public MapImage() {
-		super();
-		lista_pontos = new ArrayList<Pose>();
-		lista_ultra = new ArrayList<Pose>();
-		setBackground(Color.BLACK);
-		addMouseWheelListener(this);
-		addMouseListener(this);
-		addMouseMotionListener(this);
-	}
-	
-    private void drawModel (Graphics g) {
-        int width = (int) (getWidth()+2*centerx);
-        int height = (int) (getHeight()+2*centery);
-        int count = 0;
-        int x_tmp = 0, y_tmp = 0;
-        
-	    	for (Pose p : lista_pontos) {
-	    		int x = width/2+(int)(p.x*zoom);
-	    		int y = height/2+(int)(p.y*zoom)*-1;
-	    		
-			if (visual_method == 0) {
-				g.setColor(Color.getHSBColor((float) (p.z/(2.0*Math.PI)), 1, 1));
-				g.fillOval(
-						x-(int)(zoom/2.0*1.5),
-						y-(int)(zoom/2.0*1.5),
-						(int)(zoom*1.5),
-						(int)(zoom*1.5)
-				);
-			} else if (visual_method == 1) {
-	            g.setColor(Color.RED);
-	            g.drawLine(
-	                width/2+(int)(p.x*zoom),
-	                height/2-(int)(p.y*zoom), 
-	                width/2+(int)(p.x*zoom+Math.sin(p.z)*zoom),
-	                height/2-(int)(p.y*zoom-Math.cos(p.z)*zoom)
-	            );
-	
-	           g.drawLine(
-	                width/2+(int)(p.x*zoom+zoom*Math.sin(p.z)),
-	                height/2-(int)(p.y*zoom-zoom*Math.cos(p.z)),
-	                width/2+(int)(p.x*zoom+0.6*zoom*Math.sin(Math.PI/8+p.z)),
-	                height/2-(int)(p.y*zoom-0.6*zoom*Math.cos(Math.PI/8+p.z))
-	            );
-			} else if (visual_method == 2) {
-				g.setColor(Color.RED);
-				g.fillOval(
-						x-(int)(zoom/2.0*1.5),
-						y-(int)(zoom/2.0*1.5),
-						(int)(zoom*1.5),
-						(int)(zoom*1.5)
-				);
-	            g.setColor(Color.BLACK);
-	            g.drawLine(
-	                width/2+(int)(p.x*zoom),
-	                height/2-(int)(p.y*zoom), 
-	                width/2+(int)(p.x*zoom+Math.sin(p.z)*zoom),
-	                height/2-(int)(p.y*zoom-Math.cos(p.z)*zoom)
-	            );
-			}
-	
-		    	if (line && count != 0) {
-		    		g.setColor(Color.LIGHT_GRAY);
-		    		g.drawLine(x_tmp, y_tmp, x, y);
-		    	}
-	
-		    	x_tmp = x;
-		    	y_tmp = y;
-		    	count++;
-		}
-	    	
-	    	g.setColor(Color.RED);
-	    	for (Pose p : lista_ultra) {
-	    		int x = width/2+(int)(p.x*zoom);
-	    		int y = height/2+(int)(p.y*zoom)*-1;
-	    		g.fillRect(
-					x-(int)(zoom/2.0*1.0),
-					y-(int)(zoom/2.0*1.0),
-					(int)(zoom*1.0),
-					(int)(zoom*1.0)
-			);
-	    	}
-    }
-    
-    @Override
-    protected void paintComponent(Graphics g) {
-        int width = (int) (getWidth());
-        int height = (int) (getHeight());
-        int width2 = (int) (getWidth()+2*centerx);
-        int height2 = (int) (getHeight()+2*centery);
-        super.paintComponent(g);
-    
-        g.setColor(new Color(20, 20, 20));
-        
-        int initial_x = height2/2;
-        while (initial_x < width) {
-        	initial_x += grid*zoom;
-        	g.drawLine(0, initial_x, width, initial_x); 
-        }
-        initial_x = height2/2;
-        while (initial_x > 0) {
-        	initial_x -= grid*zoom;
-        	g.drawLine(0, initial_x, width, initial_x); 
-        }
-        int initial_y = width2/2;
-        while (initial_y < width) {
-        	initial_y += grid*zoom;
-            g.drawLine(initial_y, 0, initial_y, height);
-        }
-        initial_y = width2/2;
-        while (initial_y > 0) {
-        	initial_y -= grid*zoom;
-            g.drawLine(initial_y, 0, initial_y, height);
-        }
-
-        g.setColor(Color.ORANGE);
-        g.drawLine(width2/2, 0, width2/2, height);
-        g.drawLine(0, height2/2, width, height2/2);
-
-        drawModel(g);
-    }
-    
-    /**
-     * Adiciona um ponto ao mapa
-     * @param p ponto
-     */
-    public void addPoint(Pose p) {
-    		lista_pontos.add(p);
-    		repaint();
-	}
-
-    public void addPoint(double x, double y, double z) {
-    		lista_pontos.add(new Pose(x, y, z));
-    		repaint();
-	}
-    
-
-    public void addRead(double x, double y) {
-    		lista_ultra.add(new Pose(x, y, 0));
-    		repaint();
-	}
-    
-    public void showLine () {
-    		line = !line;
-    		repaint();
-    }
-
-    public void setVisual (int method) {
-    		visual_method = method;
-    		repaint();
-    }
-    
-    public void save () {
-	    	Integer name = new Integer((int) (Math.random()*1000000));
-	    	BufferedImage imagebuf = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_RGB);
-	    	Graphics g = imagebuf.createGraphics();
-	    	g.fillRect(0, 0, imagebuf.getWidth(), imagebuf.getHeight());
-	    	print(g);
-	    	try {
-			ImageIO.write(imagebuf, "png",  new File(name.toString()+".png"));
-			JOptionPane.showMessageDialog(null, "Image saved.");
-		} catch (IOException e) {
-			e.printStackTrace();
-			JOptionPane.showMessageDialog(null, "Image not saved.");
-		}
-    }
-    
-	public void clean() {
-		lista_pontos.clear();
-		lista_ultra.clear();
-		repaint();
-	}
-	@Override
-	public void mouseDragged(MouseEvent e) {
-		centerx += e.getX() - mousePt.x;
-		centery += e.getY() - mousePt.y;
-		mousePt = e.getPoint();
-		repaint();
-		
-	}
-	@Override
-	public void mouseMoved(MouseEvent e) {		
-	}
-	
-	@Override
-	public void mouseClicked(MouseEvent e) {		
-	}
-	
-	@Override
-	public void mousePressed(MouseEvent e) {
-		mousePt = e.getPoint();
-		repaint();
-		
-	}
-	@Override
-	public void mouseReleased(MouseEvent e) {		
-	}
-	
-	@Override
-	public void mouseEntered(MouseEvent e) {
-	}
-	
-	@Override
-	public void mouseExited(MouseEvent e) {	
-	}
-	
-	@Override
-	public void mouseWheelMoved(MouseWheelEvent e) {
-		if(e.getWheelRotation()<0){
-			if (zoom < 15.0)
-				zoom *= 1.1;
-			repaint();
-		}
-		//Zoom out
-		if(e.getWheelRotation()>0){
-			if (zoom > 1.0)
-				zoom /= 1.1;
-			repaint();
-		}
-	}
-}

+ 0 - 130
.metadata2/.plugins/org.eclipse.core.resources/.history/1/902f28dd22bb001711b8bf632416c20d

@@ -1,130 +0,0 @@
-package robots;
-
-import java.util.ArrayList;
-
-import lejos.robotics.navigation.Pose;
-import lejos.robotics.navigation.DifferentialPilot;
-import lejos.nxt.Motor;
-import lejos.nxt.NXTRegulatedMotor;
-import lejos.nxt.SensorPort;
-import lejos.nxt.UltrasonicSensor;
-import lejos.nxt.remote.RemoteMotor;
-
-public class LCPRobot implements Robot {
-	private Pose pose;
-	static DifferentialPilot pilot;
-	static UltrasonicSensor sonar;
-	RemoteMotor scannerm = Motor.A;
-	RemoteMotor ma = Motor.B;
-	RemoteMotor mb = Motor.C;
-
-	public LCPRobot() {
-
-	}
-
-	@Override
-	public void move(double x) {
-		double dx = Math.sin(Math.toRadians(pose.getHeading())) * x;
-		double dy = Math.cos(Math.toRadians(pose.getHeading())) * x;
-		pose.translate((float) dx, (float) -dy);
-		pilot.travel(x);
-	}
-
-	@Override
-	public void rotate(double x) {
-		pose.rotateUpdate((float)-x);
-		pilot.rotate(x);
-	}
-
-	@Override
-	public ArrayList<DataPose> scann(int ini, int end, int interval) {
-		ArrayList<DataPose> result = new ArrayList<DataPose>();
-		int val = 0;
-		double ang = 0;
-		int engine_mult = 1;
-		Motor.C.setSpeed(200);
-		Motor.C.rotate(-90 * engine_mult); // gira sonar para a posicao 0 grau
-		Motor.C.rotate(-(engine_mult * ini)); // gira ate a posicao inicial passada no parametro ini
-		Motor.C.setSpeed(80);
-		for (int j = 0; j <= (engine_mult * end); j += (engine_mult * interval)) {
-			Motor.C.rotate(-(engine_mult * interval));
-			val = sonar.getDistance();
-			// ang = (j/(5*end)) * 180.0;
-			ang = ini + interval;
-
-			DataPose data = new DataPose();
-			data.setDistance(val);
-			data.setSensorAngle(ang);
-			data.setPose(pose);
-			result.add(data);
-		}
-		Motor.C.setSpeed(200);
-		Motor.C.rotate(0);
-		return result;
-	}
-	
-	
-
-	@Override
-	public String toString() {
-		return "LCP Robot";
-	}
-
-	@Override
-	public void moveForward() {
-		pilot.forward();
-	}
-
-	@Override
-	public void moveLeft() {
-		pilot.rotateLeft();
-	}
-
-	@Override
-	public void moveRight() {
-		pilot.rotateRight();
-	}
-
-	@Override
-	public void moveBackward() {
-		pilot.backward();
-	}
-
-	@Override
-	public void stop() {
-		pilot.stop();
-	}
-
-	@Override
-	public void scann(RobotReturn r) {
-		// TODO Auto-generated method stub
-
-	}
-
-	@Override
-	public void stopScann() {
-		// TODO Auto-generated method stub
-
-	}
-
-	@Override
-	public boolean connect() {
-		//pilot = new DifferentialPilot(5.6f, 11.2f, Motor.B, Motor.A);
-		pilot = new DifferentialPilot(5.6f, 11.2f, Motor.B, Motor.A);
-		sonar = new UltrasonicSensor(SensorPort.S1);
-		pilot.setTravelSpeed(10);
-		pilot.setRotateSpeed(40);
-		return true;
-	}
-
-	@Override
-	public void disconnect() {
-	}
-
-	@Override
-	public void setPose(float x, float y, float a) {
-		pose.setHeading(a);
-		pose.setLocation(x, y);
-	}
-
-}

+ 0 - 272
.metadata2/.plugins/org.eclipse.core.resources/.history/10/70c258f4a4ba001711b8bf632416c20d

@@ -1,272 +0,0 @@
-package robots;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.concurrent.Semaphore;
-
-import lejos.pc.comm.NXTComm;
-import lejos.pc.comm.NXTCommException;
-import lejos.pc.comm.NXTCommFactory;
-import lejos.pc.comm.NXTInfo;
-import lejos.robotics.navigation.Pose;
-
-public class BluetoothRobot implements Robot {
-	private String name;
-	private NXTComm nxtComm;
-	private RobotReturn rr;
-	private Semaphore semaphore;
-	private Semaphore sendm;
-	private int creads = 1;
-	
-	public static final byte FORWARD = 0;
-	public static final byte STOP = 1;
-	public static final byte EXIT = 2;
-	public static final byte LEFT = 3;
-	public static final byte RIGHT = 4;
-	public static final byte BACKWARD = 5;
-	
-	public static final byte STOPSCANN = 6;
-	public static final byte STARTSCANN = 7;
-	public static final byte MOVE = 8;
-	public static final byte ROTATE = 9;
-	public static final byte SETPOSE = 10;
-	public static final byte SETSCANANGLE = 11;
-	
-	public static final byte TYPE_INT = 1;
-	public static final byte TYPE_CMD = 2;
-	public static final byte TYPE_POSE = 3;
-	public static final byte TYPE_FLOAT = 4;
-	
-	private static final int scannangle = 5;
-
-	private DataOutputStream output;
-	private DataInputStream input;
-	private Receiver receivethread;
-	
-	private ArrayList<DataPose> reads;
-		
-	private class Receiver extends Thread {
-		public boolean run = true;
-		@Override
-		public void run() {
-			int bytes_valiable = -1;
-			
-			while(run) {
-				try {
-					bytes_valiable = input.available();
-				} catch (IOException e1) {
-					// TODO Auto-generated catch block
-					e1.printStackTrace();
-				}
-				if (bytes_valiable >= 0) {
-					try {
-						if (input.readByte() != '@') continue;
-						int angle = input.readByte();
-						float alpha = input.readFloat();
-						float x = input.readFloat();
-						int distance = input.readByte();
-						float y = input.readFloat();
-						DataPose d = new DataPose();
-						d.setDistance(distance);
-						d.setSensorAngle(angle);
-						d.setPose(new Pose(y, -x, alpha));
-						if (rr != null)
-							rr.robotData(d);	
-						
-					} catch (IOException e1) {
-						continue;
-					}
-				}
-			}
-		}
-	}
-
-	private class Sender extends Thread {
-		@Override
-		public void run() {
-			
-		}
-	}
-	
-	private class SendData {
-		float f;
-		int i;
-		int cmd;
-		Pose p;
-		int type;
-		SendData(int cmd) {
-			this.cmd = cmd;
-			this.type = TYPE_CMD;
-		}
-		SendData(int cmd, int i) {
-			this.cmd = cmd;
-			this.i = i;
-			this.type = TYPE_INT;
-		}
-		SendData(int cmd, float f) {
-			this.cmd = cmd;
-			this.f = f;
-			this.type = TYPE_FLOAT;
-		}
-		SendData(int cmd, Pose p) {
-			this.cmd = cmd;
-			this.p = p;
-			this.type = TYPE_POSE;
-		}
-		public boolean send(DataOutputStream output) {
-			try {
-				switch (type) {
-				case TYPE_CMD:
-					output.write(cmd);
-					break;
-				case TYPE_INT:
-					output.write(cmd);
-					output.write(i);
-					break;
-				case TYPE_FLOAT:
-					output.write(cmd);
-					output.writeFloat(f);
-					break;
-				case TYPE_POSE:
-					output.write(cmd);
-					output.writeFloat(p.getX());
-					output.writeFloat(p.getY());
-					output.writeFloat(p.getHeading());
-					break;
-				default:
-					return false;
-				}
-			} catch (IOException e) {
-				return false;
-			}
-			return true;
-		}
-	}
-	
-	public BluetoothRobot (String name) {
-		semaphore = new Semaphore(1);
-		sendm = new Semaphore(1);
-		receivethread = new Receiver();
-		sendthread = new Sender();
-		this.name = name;
-	}
-
-	@Override
-	public void moveForward() {
-		send(FORWARD);
-	}
-
-	@Override
-	public void moveLeft() {
-		send(LEFT);
-	}
-
-	@Override
-	public void moveRight() {
-		send(RIGHT);
-	}
-
-	@Override
-	public void moveBackward() {
-		send(BACKWARD);
-	}
-
-	@Override
-	public boolean connect () {
-		try {
-			nxtComm = NXTCommFactory.createNXTComm(NXTCommFactory.BLUETOOTH);
-			NXTInfo[] nxtInfo = nxtComm.search(name); //find brick with NXT_ID by doing a Bluetooth inquiry
-			if (nxtInfo.length == 0) { // failed to find a brick with the ID
-				System.err.println("NO NXT found");
-				return false;
-			}
-			if (!nxtComm.open(nxtInfo[0])) { // the brick was found but a connection could not be establish
-				System.err.println("Failed to open NXT");
-				return false;
-			}
-			
-			input = new DataInputStream(nxtComm.getInputStream()); // open data input stream 
-			output = new DataOutputStream(nxtComm.getOutputStream()); // open data output stream
-			send(SETSCANANGLE, scannangle); // vai scanear em 5 em 5 graus
-		} catch (NXTCommException e) {
-			return false;
-		}
-		
-		receivethread.start();
-		
-		return true;	
-	}
-
-	@Override
-	public void stop() {
-		send(STOP);
-	}
-
-
-	@Override
-	public void move(double x) {
-		send(MOVE, (float)x);
-	}
-
-	@Override
-	public void rotate(double x) {
-		send(ROTATE, (float)x);
-	}
-
-	@Override
-	public ArrayList<DataPose> scann(int ini, int end, int interval) {
-//		send(SETSCANANGLE, interval);
-//		creads = 180/interval;
-//		reads = new ArrayList<DataPose>();
-//		scann(null);
-//		
-//		while(reads.size() <= creads) { };
-//		
-//		stopScann();
-//		creads = -1;
-		return null;
-	}
-
-	@Override
-	public void scann(RobotReturn r) {
-		rr = r;
-		send(STARTSCANN);
-	}
-
-	@Override
-	public void stopScann() {
-		send(STOPSCANN);
-	}
-
-	@Override
-	public void disconnect() {
-		send(EXIT);
-		if (receivethread == null) return;
-		receivethread.run = false;
-		try {
-			receivethread.join();
-		} catch (InterruptedException e1) {
-			System.out.println("Nao foi possivel finalizar as threads...");
-		}
-		try {
-			nxtComm.close();
-		} catch (IOException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-	}
-
-	@Override
-	public void setPose(float x, float y, float a) {
-		send(new Pose(y, -x, a));
-	}
-	
-	
-	@Override
-	public String toString() {
-		return "Bluetooth Mestre/Escravo";
-	}
-
-}

+ 0 - 16
.metadata2/.plugins/org.eclipse.core.resources/.history/10/d06397d611b80017145c9b6064c27648

@@ -1,16 +0,0 @@
-
-public class Pose {
-	public double x, y, z;
-	
-	public Pose(double x, double y, double z) {
-		this.x = x;
-		this.y = y;
-		this.z = z; // em radianos
-	}
-	
-	public Pose() {
-		this.x = (int )(Math.random() * 100 - 50);
-		this.y = (int )(Math.random() * 100 - 50);
-		this.z = (int )(Math.random() * Math.PI * 2.0);
-	}
-}

+ 0 - 288
.metadata2/.plugins/org.eclipse.core.resources/.history/11/10083bb3a5ba001711b8bf632416c20d

@@ -1,288 +0,0 @@
-package robots;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.concurrent.Semaphore;
-
-import ScannerImage.SonarRead;
-import lejos.pc.comm.NXTComm;
-import lejos.pc.comm.NXTCommException;
-import lejos.pc.comm.NXTCommFactory;
-import lejos.pc.comm.NXTInfo;
-import lejos.robotics.navigation.Pose;
-
-public class BluetoothRobot implements Robot {
-	private String name;
-	private NXTComm nxtComm;
-	private RobotReturn rr;
-	private Semaphore semaphore;
-	private Semaphore sendm;
-	private int creads = 1;
-	
-	public static final byte FORWARD = 0;
-	public static final byte STOP = 1;
-	public static final byte EXIT = 2;
-	public static final byte LEFT = 3;
-	public static final byte RIGHT = 4;
-	public static final byte BACKWARD = 5;
-	
-	public static final byte STOPSCANN = 6;
-	public static final byte STARTSCANN = 7;
-	public static final byte MOVE = 8;
-	public static final byte ROTATE = 9;
-	public static final byte SETPOSE = 10;
-	public static final byte SETSCANANGLE = 11;
-	
-	public static final byte TYPE_INT = 1;
-	public static final byte TYPE_CMD = 2;
-	public static final byte TYPE_POSE = 3;
-	public static final byte TYPE_FLOAT = 4;
-	
-	private static final int scannangle = 5;
-
-	private DataOutputStream output;
-	private DataInputStream input;
-	private Receiver receivethread;
-	private Sender sendthread;
-	
-	private ArrayList<DataPose> reads;
-	private ArrayList<SendData> tosend;
-		
-	private class Receiver extends Thread {
-		public boolean run = true;
-		@Override
-		public void run() {
-			int bytes_valiable = -1;
-			
-			while(run) {
-				try {
-					bytes_valiable = input.available();
-				} catch (IOException e1) {
-					// TODO Auto-generated catch block
-					e1.printStackTrace();
-				}
-				if (bytes_valiable >= 0) {
-					try {
-						if (input.readByte() != '@') continue;
-						int angle = input.readByte();
-						float alpha = input.readFloat();
-						float x = input.readFloat();
-						int distance = input.readByte();
-						float y = input.readFloat();
-						DataPose d = new DataPose();
-						d.setDistance(distance);
-						d.setSensorAngle(angle);
-						d.setPose(new Pose(y, -x, alpha));
-						if (rr != null)
-							rr.robotData(d);	
-						
-					} catch (IOException e1) {
-						continue;
-					}
-				}
-			}
-		}
-	}
-
-	private class Sender extends Thread {
-		@Override
-		public void run() {
-			
-		}
-	}
-	
-	private class SendData {
-		float f;
-		int i;
-		int cmd;
-		Pose p;
-		int type;
-		SendData(int cmd) {
-			this.cmd = cmd;
-			this.type = TYPE_CMD;
-		}
-		SendData(int cmd, int i) {
-			this.cmd = cmd;
-			this.i = i;
-			this.type = TYPE_INT;
-		}
-		SendData(int cmd, float f) {
-			this.cmd = cmd;
-			this.f = f;
-			this.type = TYPE_FLOAT;
-		}
-		SendData(int cmd, Pose p) {
-			this.cmd = cmd;
-			this.p = p;
-			this.type = TYPE_POSE;
-		}
-		public boolean send(DataOutputStream output) {
-			try {
-				switch (type) {
-				case TYPE_CMD:
-					output.write(cmd);
-					break;
-				case TYPE_INT:
-					output.write(cmd);
-					output.write(i);
-					break;
-				case TYPE_FLOAT:
-					output.write(cmd);
-					output.writeFloat(f);
-					break;
-				case TYPE_POSE:
-					output.write(cmd);
-					output.writeFloat(p.getX());
-					output.writeFloat(p.getY());
-					output.writeFloat(p.getHeading());
-					break;
-				default:
-					return false;
-				}
-			} catch (IOException e) {
-				return false;
-			}
-			return true;
-		}
-	}
-	
-	public BluetoothRobot (String name) {
-		
-		semaphore = new Semaphore(1);
-		
-		sendm = new Semaphore(1);
-		tosend = new ArrayList<SendData>();
-		
-		receivethread = new Receiver();
-		sendthread = new Sender();
-		
-		this.name = name;
-	}
-	
-	public void send (SendData sd) {
-		if (sendm.tryAcquire()) {
-			tosend.add(sd);
-			sendm.release();
-		}
-	}
-
-	@Override
-	public void moveForward() {
-		send(new SendData(FORWARD));
-	}
-
-	@Override
-	public void moveLeft() {
-		send(new SendData(LEFT));
-	}
-
-	@Override
-	public void moveRight() {
-		send(new SendData(RIGHT));
-	}
-
-	@Override
-	public void moveBackward() {
-		send(new SendData(BACKWARD));
-	}
-
-	@Override
-	public boolean connect () {
-		try {
-			nxtComm = NXTCommFactory.createNXTComm(NXTCommFactory.BLUETOOTH);
-			NXTInfo[] nxtInfo = nxtComm.search(name); //find brick with NXT_ID by doing a Bluetooth inquiry
-			if (nxtInfo.length == 0) { // failed to find a brick with the ID
-				System.err.println("NO NXT found");
-				return false;
-			}
-			if (!nxtComm.open(nxtInfo[0])) { // the brick was found but a connection could not be establish
-				System.err.println("Failed to open NXT");
-				return false;
-			}
-			
-			input = new DataInputStream(nxtComm.getInputStream()); // open data input stream 
-			output = new DataOutputStream(nxtComm.getOutputStream()); // open data output stream
-			send(new SendData(SETSCANANGLE, scannangle)); // vai scanear em 5 em 5 graus
-		} catch (NXTCommException e) {
-			return false;
-		}
-		
-		receivethread.start();
-		sendthread.start();
-		
-		return true;	
-	}
-
-	@Override
-	public void stop() {
-		send(new SendData(STOP));
-	}
-
-
-	@Override
-	public void move(double x) {
-		send(MOVE, (float)x);
-	}
-
-	@Override
-	public void rotate(double x) {
-		send(ROTATE, (float)x);
-	}
-
-	@Override
-	public ArrayList<DataPose> scann(int ini, int end, int interval) {
-//		send(SETSCANANGLE, interval);
-//		creads = 180/interval;
-//		reads = new ArrayList<DataPose>();
-//		scann(null);
-//		
-//		while(reads.size() <= creads) { };
-//		
-//		stopScann();
-//		creads = -1;
-		return null;
-	}
-
-	@Override
-	public void scann(RobotReturn r) {
-		rr = r;
-		send(STARTSCANN);
-	}
-
-	@Override
-	public void stopScann() {
-		send(STOPSCANN);
-	}
-
-	@Override
-	public void disconnect() {
-		send(EXIT);
-		if (receivethread == null) return;
-		receivethread.run = false;
-		try {
-			receivethread.join();
-		} catch (InterruptedException e1) {
-			System.out.println("Nao foi possivel finalizar as threads...");
-		}
-		try {
-			nxtComm.close();
-		} catch (IOException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-	}
-
-	@Override
-	public void setPose(float x, float y, float a) {
-		send(new Pose(y, -x, a));
-	}
-	
-	
-	@Override
-	public String toString() {
-		return "Bluetooth Mestre/Escravo";
-	}
-
-}

+ 0 - 149
.metadata2/.plugins/org.eclipse.core.resources/.history/11/40056c7c19bb001711b8bf632416c20d

@@ -1,149 +0,0 @@
-package robots;
-
-import java.util.ArrayList;
-
-import lejos.robotics.mapping.LineMap;
-import lejos.robotics.navigation.Pose;
-
-public class VirtualRobot implements Robot {
-	private Pose pose;
-	private Simulate simthread;
-	private RobotReturn rr;
-	private LineMap map;
-
-	private class Simulate extends Thread {
-		public boolean run = true;
-
-		public void run() {
-			int ang = 0;
-			int add = -5;
-			while (run) {
-				DataPose data = new DataPose();
-				
-
-				Pose tmppose = new Pose(pose.getX(), pose.getY(), (float) (pose.getHeading() + ang));
-				float dist = map.range(tmppose);
-				if (dist == -1) dist =  255;
-				
-				
-				data.setDistance((int)dist);
-				data.setPose(pose);
-				data.setSensorAngle(ang+90);
-
-				rr.robotData(data);
-
-				ang += add;
-				if (ang == -180 || ang == 0)
-					add *= -1;
-
-				try {
-					Thread.sleep(50);
-				} catch (InterruptedException e) {
-				}
-			}
-		}
-
-	}
-
-	public VirtualRobot(LineMap map) {
-		pose = new Pose();
-		pose.setHeading(0);
-		this.map = map;
-	}
-
-	@Override
-	public void moveForward() {
-		move(5);
-	}
-
-	@Override
-	public void moveLeft() {
-		pose.rotateUpdate(45);
-	}
-
-	@Override
-	public void moveRight() {
-		pose.rotateUpdate(-45);
-	}
-
-	@Override
-	public void moveBackward() {
-		move(-5);
-	}
-
-	@Override
-	public boolean connect() {
-		return true;
-	}
-
-	@Override
-	public void stop() {
-	}
-
-	@Override
-	public void move(double x) {
-		double dx = Math.sin(Math.toRadians(pose.getHeading())) * x;
-		double dy = Math.cos(Math.toRadians(pose.getHeading())) * x;
-		pose.translate((float) dx, (float) -dy);
-	}
-
-	@Override
-	public void rotate(double x) {
-		pose.rotateUpdate((float)-x);
-	}
-
-	@Override
-	public ArrayList<DataPose> scann(int ini, int end, int interval) {
-		ArrayList<DataPose> result = new ArrayList<DataPose>();
-		int ang = 0;
-		for (ang  = ini; ang <= end; ang += interval) {
-			DataPose data = new DataPose();
-			Pose tmppose = new Pose(pose.getX(), pose.getY(), (float) (pose.getHeading() + ang));
-			float dist = map.range(tmppose);
-			if (dist == -1) dist =  255;
-			
-			data.setDistance((int)dist);
-			data.setPose(pose);
-			data.setSensorAngle(ang);	
-			result.add(data);
-		}
-		return result;
-	}
-
-	@Override
-	public void scann(RobotReturn r) {
-		rr = r;
-		stopScann();
-		simthread = new Simulate();
-		simthread.start();
-	}
-
-	@Override
-	public void stopScann() {
-		if (simthread == null) return;
-		simthread.run = false;
-		try {
-			simthread.join();
-		} catch (InterruptedException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-	}
-
-	@Override
-	public void disconnect() {
-
-	}
-
-	@Override
-	public void setPose(float x, float y, float a) {
-		pose.setHeading(a);
-		pose.setLocation(x, y);
-	}
-	
-	@Override
-	public String toString() {
-		return "Virtual Robot";
-	}
-
-}

+ 0 - 166
.metadata2/.plugins/org.eclipse.core.resources/.history/11/60e7755ef9b00017155fe9ac88a695a6

@@ -1,166 +0,0 @@
-import java.awt.BorderLayout;
-import java.awt.event.KeyEvent;
-import java.awt.event.KeyListener;
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-
-import javax.swing.JFrame;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-import javax.swing.SwingUtilities;
-
-import lejos.pc.comm.NXTComm;
-import lejos.pc.comm.NXTCommException;
-import lejos.pc.comm.NXTCommFactory;
-import lejos.pc.comm.NXTInfo;
-
-public class Map extends JPanel implements KeyListener {
-
-	private ImageMap map;
-	
-	private DataOutputStream output;
-	private DataInputStream input;
-	private int before;
-
-	public static final byte FORWARD = 0;
-	public static final byte STOP = 1;
-	public static final byte EXIT = 2;
-	public static final byte LEFT = 3;
-	public static final byte RIGHT = 4;
-	public static final byte BACKWARD = 5;
-	
-	private class Receiver extends Thread {
-		@Override
-		public void run() {
-			int bytes_valiable = -1;
-			
-			while(true) {
-				try {
-					bytes_valiable = input.available();
-				} catch (IOException e1) {
-					// TODO Auto-generated catch block
-					e1.printStackTrace();
-				}
-				if (bytes_valiable >= 0) {
-					try {
-						if (input.readByte() != '@') continue;
-						int angle = input.readByte();
-						float alpha = input.readFloat();
-						float x = input.readFloat();
-						int distance = input.readByte();
-						float y = input.readFloat();
-						System.out.println(x+" "+y);
-					} catch (IOException e1) {
-						continue;
-					}
-				}
-			}
-		}
-	}
-	
-	public Map (DataInputStream in, DataOutputStream out) {
-		JFrame frame = new JFrame("Mapa MAC0318");
-		Receiver r = new Receiver();
-		output = out;
-		input = in;
-		before = -1;
-		
-		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-        frame.setLayout(new BorderLayout());
-        map = new ImageMap();
-		frame.add(this.map);
-		frame.setSize(800, 800);
-		frame.setVisible(true);
-		
-		frame.setFocusable(true);
-		frame.requestFocusInWindow();
-		frame.addKeyListener(this);
-		
-		r.start();
-		
-		String text = "1,2,3 - Change view mode.\n";
-		text += "s - Save image.\n";
-		text += "l - Show trace.\n";
-		JOptionPane.showMessageDialog(null, text);
-	}
-	
-    public void addPoint(Point3D p) {
-    		map.addPoint(p);
-	}
-
-	@Override
-	public void keyPressed(KeyEvent e) {
-		char input = e.getKeyChar();
-		if (input == '1') map.setVisual(0);
-		else if (input == '2') map.setVisual(1);
-		else if (input == '3') map.setVisual(2);
-		else if (input == 'l') map.showLine();
-		else if (input == 's') map.save();
-		
-		 switch(e.getKeyCode()) { 
-	        case KeyEvent.VK_UP:
-	        		sendCmd(FORWARD);
-	            break;
-	        case KeyEvent.VK_DOWN:
-	        		sendCmd(BACKWARD);
-	            break;
-	        case KeyEvent.VK_LEFT:
-	        		sendCmd(LEFT);
-	            break;
-	        case KeyEvent.VK_RIGHT :
-	        		sendCmd(RIGHT);
-	            break;
-	    }			 
-	}
-
-	@Override
-	public void keyReleased(KeyEvent arg0) {
-		sendCmd(STOP);
-	}
-
-	@Override
-	public void keyTyped(KeyEvent arg0) {
-		// TODO Auto-generated method stub
-		
-	}
-	
-	private void sendCmd (int cmd) {
-		if (before != cmd) {
-			try {
-				output.write(cmd);
-				output.flush();
-				System.out.println("Send cmd");
-			} catch (IOException e1) {
-				System.out.println("Erro send cmd");
-				before = -1;
-				sendCmd (cmd);
-			}
-			before = cmd;
-		}
-	}
-	
-
-	public static void main(String[] args) throws NXTCommException, IOException {
-		NXTComm nxtComm = NXTCommFactory.createNXTComm(NXTCommFactory.BLUETOOTH); 
-		NXTInfo[] nxtInfo = nxtComm.search("NXT8"); //find brick with NXT_ID by doing a Bluetooth inquiry
-		if (nxtInfo.length == 0) { // failed to find a brick with the ID
-			System.err.println("NO NXT found");
-			System.exit(1);
-		}
-		if (!nxtComm.open(nxtInfo[0])) { // the brick was found but a connection could not be establish
-			System.err.println("Failed to open NXT");
-			System.exit(1);
-		}
-		
-		final DataInputStream input = new DataInputStream(nxtComm.getInputStream()); // open data input stream 
-		final DataOutputStream output = new DataOutputStream(nxtComm.getOutputStream()); // open data output stream
-		
-		SwingUtilities.invokeLater(new Runnable() {
-            public void run() {
-            	new Map(input, output);
-            }
-        });
-		
-	}
-}

+ 0 - 0
.metadata2/.plugins/org.eclipse.core.resources/.history/15/80dd4a5808b80017145c9b6064c27648


+ 0 - 338
.metadata2/.plugins/org.eclipse.core.resources/.history/17/c06e3aa321bb001711b8bf632416c20d

@@ -1,338 +0,0 @@
-import java.awt.BorderLayout;
-import java.awt.event.KeyEvent;
-import java.awt.event.KeyListener;
-import java.awt.event.WindowEvent;
-import java.awt.event.WindowListener;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.util.ArrayList;
-
-import javax.swing.JFrame;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-import javax.swing.JSplitPane;
-import javax.swing.SwingUtilities;
-
-import config.Map;
-import config.Models;
-import lejos.robotics.mapping.LineMap;
-import lejos.robotics.navigation.Pose;
-import robots.BluetoothRobot;
-import robots.DataPose;
-import robots.LCPRobot;
-import robots.Robot;
-import robots.RobotReturn;
-import robots.VirtualRobot;
-
-public class MainProgram extends JPanel implements KeyListener, WindowListener, RobotReturn {
-
-	private MapImage imap;
-	private Robot robot;
-	private ScannerImage scanner;
-	private Models smodel;
-
-	public static final byte FORWARD = 0;
-	public static final byte STOP = 1;
-	public static final byte EXIT = 2;
-	public static final byte LEFT = 3;
-	public static final byte RIGHT = 4;
-	public static final byte BACKWARD = 5;
-
-	public MainProgram(LineMap map, Robot robot) {
-		this.robot = robot;
-		JFrame frame = new JFrame("Mapa MAC0318");
-
-		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-		frame.setLayout(new BorderLayout());
-		imap = new MapImage(map);
-		scanner = new ScannerImage(map);
-		smodel = new Models(map);
-		// frame.add(this.map);
-		frame.setSize(800, 800);
-		frame.setVisible(true);
-
-		frame.setFocusable(true);
-		frame.requestFocusInWindow();
-		frame.addKeyListener(this);
-		frame.addWindowListener(this);
-
-		JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, scanner, imap);
-		splitPane.setOneTouchExpandable(true);
-		splitPane.setDividerLocation((int) (frame.getHeight() / 2));
-		frame.add(splitPane);
-
-		showHelp();
-	}
-
-	private void showHelp() {
-		String text = "1,2,3 - Change global map view\n";
-		text += "s - Set Pose.\n";
-		text += "l - Show global map trace.\n";
-		text += "c - Clean maps.\n";
-		text += "m - Enter robot movement.\n";
-		text += "r - Enter robo rotation.\n";
-		text += "a - Colect sonar data.\n";
-		text += "z - Make sonar continuous scanner.\n";
-		text += "i - Stop continuous scanner.\n";
-		text += "g - Save global map image.\n";
-		text += "f - Save scanner image.\n";
-		text += "<arrows> - Move robot.\n";
-		text += "h - help.\n";
-		JOptionPane.showMessageDialog(null, text, "HELP", JOptionPane.PLAIN_MESSAGE);
-	}
-
-	public void addPoint(Pose p) {
-		imap.addPoint(p);
-	}
-
-	@Override
-	public void keyPressed(KeyEvent e) {
-
-		char input = e.getKeyChar();
-		switch (input) {
-		case '1':
-			imap.setVisual(0);
-			break;
-		case '2':
-			imap.setVisual(1);
-			break;
-		case '3':
-			imap.setVisual(2);
-			break;
-		case 'l':
-			imap.showLine();
-			break;
-		case 'g':
-			imap.save();
-			break;
-		case 'f':
-			scanner.save();
-			break;
-		case 'c':
-			imap.clean();
-			scanner.clean();
-			break;
-		case 's':
-			setRobotPose();
-			break;
-		case 'm':
-			moveRobot();
-			break;
-		case 'r':
-			rotateRobot();
-			break;
-		case 'a':
-			colectSonar();
-			break;
-		case 'z':
-			robot.scann(this);
-			break;
-		case 'i':
-			robot.stopScann();
-			break;
-		case 'h':
-			showHelp();
-			break;
-		default:
-			break;
-		}
-
-		if (robot == null)
-			return;
-
-		switch (e.getKeyCode()) {
-		case KeyEvent.VK_UP:
-			robot.moveForward();
-			scanner.clean();
-			break;
-		case KeyEvent.VK_DOWN:
-			robot.moveBackward();
-			scanner.clean();
-			break;
-		case KeyEvent.VK_LEFT:
-			robot.moveLeft();
-			scanner.clean();
-			break;
-		case KeyEvent.VK_RIGHT:
-			robot.moveRight();
-			scanner.clean();
-			break;
-		}
-	}
-
-	private void colectSonar() {
-		int interval;
-		try {
-			String rs = JOptionPane.showInputDialog("Interval (degress):");
-			interval = Integer.parseInt(rs);
-		} catch (Exception e) {
-			return;
-		}
-		ArrayList<DataPose> data = robot.scann(-90, 90, interval);
-		if (data == null) return;
-
-		Integer name = new Integer((int) (Math.random() * 1000000));
-		String rand_name = name.toString() + ".txt";
-		FileWriter fileWriter;
-		try {
-			fileWriter = new FileWriter(rand_name);
-		} catch (IOException e) {
-			return;
-		}
-
-		PrintWriter printWriter = new PrintWriter(fileWriter);
-		printWriter.print("x,y,headinng,sonar_ang,read,expected\n");
-		for (DataPose d : data) {
-			robotData(d);
-
-			double expected = smodel.expectedSonarRead(d.getPose(), d.getSensorAngle()+90);
-			printWriter.print(d.getPose().getX() + ",");
-			printWriter.print(d.getPose().getY() + ",");
-			printWriter.print(d.getPose().getHeading() + ",");
-			printWriter.print(d.getSensorAngle() + ",");
-			printWriter.print(d.getDistance() + ",");
-			printWriter.print(expected + "\n");
-		}
-
-		printWriter.close();
-		JOptionPane.showMessageDialog(null, "Reads saved in " + rand_name);
-	}
-
-	private void rotateRobot() {
-		try {
-			String rs = JOptionPane.showInputDialog("Enter rotation (degress-clockwise):");
-			double r = Double.parseDouble(rs);
-			robot.rotate(r);
-			scanner.clean();
-		} catch (Exception e) {
-		}
-	}
-
-	private void moveRobot() {
-		try {
-			String rs = JOptionPane.showInputDialog("Enter distance (cm):");
-			double r = Double.parseDouble(rs);
-			robot.move(r);
-			scanner.clean();
-		} catch (Exception e) {
-		}
-	}
-
-	private void setRobotPose() {
-		try {
-			String xs = JOptionPane.showInputDialog("Enter x (cm):");
-			if (xs.length() == 0)
-				return;
-			String ys = JOptionPane.showInputDialog("Enter y (cm):");
-			if (ys.length() == 0)
-				return;
-			String as = JOptionPane.showInputDialog("Enter heading (degress):");
-			if (as.length() == 0)
-				return;
-
-			float x = Float.parseFloat(xs);
-			float y = Float.parseFloat(ys);
-			float a = Float.parseFloat(as);
-			robot.setPose(x, y, a);
-			scanner.setPose(new Pose(x, y, a));
-			scanner.clean();
-		} catch (Exception e) {
-		}
-	}
-
-	@Override
-	public void keyReleased(KeyEvent arg0) {
-		if (robot == null)
-			return;
-		robot.stop();
-	}
-
-	@Override
-	public void keyTyped(KeyEvent arg0) {
-	}
-
-	@Override
-	public void windowOpened(WindowEvent e) {
-
-	}
-
-	@Override
-	public void windowClosing(WindowEvent e) {
-		System.err.println("Fechando...");
-		if (robot == null)
-			return;
-		robot.disconnect();
-
-	}
-
-	@Override
-	public void windowClosed(WindowEvent e) {
-	}
-
-	@Override
-	public void windowIconified(WindowEvent e) {
-
-	}
-
-	@Override
-	public void windowDeiconified(WindowEvent e) {
-
-	}
-
-	@Override
-	public void windowActivated(WindowEvent e) {
-
-	}
-
-	@Override
-	public void windowDeactivated(WindowEvent e) {
-	}
-
-	@Override
-	public void robotData(DataPose data) {
-		// posicao do robo
-		Pose p = data.getPose();
-		System.out.println(p);
-		imap.addPoint(p);
-		scanner.setPose(p);
-		if (data.getDistance() == 255) {
-			return;
-		}
-
-		// ponto do ultrasonico
-		double sensor_ang = Math.toRadians(data.getSensorAngle() + p.getHeading()-90);
-		double dx = Math.cos(sensor_ang) * data.getDistance();
-		double dy = Math.sin(sensor_ang) * data.getDistance();
-		double expected = smodel.expectedSonarRead(p, data.getSensorAngle()-90);
-		imap.addRead(p.getX() + dx, p.getY() + dy);
-		scanner.addRead(p, data.getDistance(), data.getSensorAngle()-90, expected);
-	}
-
-	public static void main(String[] args) {
-
-		LineMap map = Map.makeMap();
-		Robot robotv = new VirtualRobot(map);
-		Robot robotbt = new BluetoothRobot(null);
-		//Robot robotlcp = new LCPRobot();
-
-		Object[] possibleValues = {robotv, robotbt };
-		Object robot = JOptionPane.showInputDialog(null, "Choose one", "Input", JOptionPane.PLAIN_MESSAGE, null,
-				possibleValues, possibleValues[0]);
-		
-		boolean result = false;
-		if (robot != null)
-			result = ((Robot) robot).connect();
-
-		if (result == false) {
-			JOptionPane.showMessageDialog(null, "Não foi possível conectar ao robô");
-			System.exit(ERROR);
-		}
-
-		SwingUtilities.invokeLater(new Runnable() {
-			public void run() {
-				new MainProgram(map, (Robot) robot);
-			}
-		});
-	}
-}

+ 0 - 25
.metadata2/.plugins/org.eclipse.core.resources/.history/18/6065aa100fb9001711c7a09600ea5d68

@@ -1,25 +0,0 @@
-package config;
-
-import lejos.geom.Line;
-import lejos.robotics.mapping.LineMap;
-import lejos.robotics.navigation.Pose;
-
-public class SonarModel {
-	private LineMap map;
-
-	public SonarModel(LineMap map) {
-		this.map = map;
-	}
-
-	public double expectedRead(Pose p) {
-		// o modelo apresentado aqui eh o mais burro
-		// ele pega a menor distancia do robo a um segmento
-		double min = Double.MAX_VALUE;
-		double d;
-		for (Line l: map.getLines()) {
-			d = l.ptSegDist(p.getX(), p.getY());
-			min = Math.min(min, d);
-		}
-		return min;
-	}
-}

+ 0 - 51
.metadata2/.plugins/org.eclipse.core.resources/.history/18/c0cda01a14b9001711c7a09600ea5d68

@@ -1,51 +0,0 @@
-package config;
-
-import lejos.geom.Line;
-import lejos.geom.Rectangle;
-import lejos.robotics.mapping.LineMap;
-
-public class Map {
-	public static LineMap makeMap () {
-//		Line[] lines1 = {
-//			/* L-shape polygon */
-//			new Line(164,356,58,600),
-//			new Line(58,600,396,721),
-//			new Line(396,721,455,600),
-//			new Line(455,600,227,515),
-//			new Line(227,515,280,399),
-//			new Line(280,399,164,356),
-//			/* Triangle */
-//			new Line(778,526,1079,748),
-//			new Line(1079,748,1063,436),
-//			new Line(1063,436,778,526),
-//			/* Pentagon */
-//			new Line(503,76,333,267),
-//			new Line(333,267,481,452),
-//			new Line(481,452,730,409),
-//			new Line(730,409,704,150),
-//			new Line(704,150,503,76)
-//		};
-		Line[] lines2 = {
-			new Line(16.4,35.6,5.8,60.0),
-			new Line(5.8,60.0,39.6,72.1),
-			new Line(39.6,72.1,45.5,60.0),
-			new Line(45.5,60.0,22.7,51.5),
-			new Line(22.7,51.5,28.0,39.9),
-			new Line(28.0,39.9,16.4,35.6),
-			/* Triangle */
-			new Line(77.8,52.6,107.9,74.8),
-			new Line(107.9,74.8,106.3,43.6),
-			new Line(106.3,43.6,77.8,52.6),
-			/* Pentagon */
-			new Line(50.3,7.6,33.3,26.7),
-			new Line(33.3,26.7,48.1,45.2),
-			new Line(48.1,45.2,73.0,40.9),
-			new Line(73.0,40.9,70.4,15.0),
-			new Line(70.4,15.0,50.3,7.6)
-		};
-		Rectangle bounds = new Rectangle(0, 0, 1189, 841);
-		LineMap  map = new LineMap(lines2, bounds);
-
-		return map;
-	}
-}

+ 0 - 52
.metadata2/.plugins/org.eclipse.core.resources/.history/19/603b73fbe2b000171eb4aea94a5e3c6b

@@ -1,52 +0,0 @@
-import java.io.DataOutputStream;
-import java.io.IOException;
-
-public class SendThread extends Thread{
-	
-	public static final byte FORWARD = 0;
-	public static final byte STOP = 1;
-	public static final byte EXIT = 2;
-	public static final byte LEFT = 3;
-	public static final byte RIGHT = 4;
-	public static final byte BACKWARD = 5;
-	
-	private int command;
-	private int before;
-	private boolean run;
-	private DataOutputStream output;
-	
-	public SendThread(DataOutputStream out) {
-		super();
-		command = -1;
-		before = command;
-		run = true;
-		output = out;
-	}
-	
-	@Override
-	public void run() {
-		while (run) {
-			if (before != command) {
-				try {
-					output.write(command);
-					output.flush();
-					System.out.println("Send cmd");
-				} catch (IOException e) {
-					System.out.println("Erro send cmd");
-				}
-				before = command;
-			}
-			
-			try {
-				Thread.sleep(200);
-			} catch (InterruptedException e) {
-				// TODO Auto-generated catch block
-				e.printStackTrace();
-			}
-		}
-	}
-	
-	public void send (int c) {
-		command = c;
-	}
-}

+ 0 - 115
.metadata2/.plugins/org.eclipse.core.resources/.history/1a/3088cad90ab9001711c7a09600ea5d68

@@ -1,115 +0,0 @@
-import java.awt.Color;
-import java.awt.Graphics;
-import java.util.ArrayList;
-import java.util.concurrent.Semaphore;
-
-import javax.swing.JPanel;
-
-import lejos.geom.Line;
-import lejos.robotics.mapping.LineMap;
-import lejos.robotics.navigation.Pose;
-
-public class ScannerImage extends JPanel {
-	private Pose pose;
-	private LineMap map;
-	private ArrayList<SonarRead> lista_leituras;
-	private Semaphore semaphore;
-	
-	class SonarRead {
-		public double distance;
-		public double ang;
-		SonarRead (double distance, double ang) {
-			this.ang = ang;
-			this.distance = distance;
-		}
-	}
-	
-    @Override
-    protected void paintComponent(Graphics g) {
-    		int w = this.getWidth()/2;
-    		int h = this.getHeight();
-    		int distance = h*2/25;
-    		g.setColor(new Color(0f, 0f, 0f, 0.4f));
-    		for (int i = 1; i <= 18; i++) {
-    			int r = distance * i;
-        		g.drawArc(w-r, h-r, 2*r, 2*r, 0, 180);
-        		g.drawString(new Integer(i*20).toString(), w-7, h-r);
-    		}
-    		g.setColor(new Color(0f, 0f, 0f, 0.5f));
-    		for (int i = 1; i < 6; i++) {
-    			int lw = (int)(Math.cos(Math.PI/6.0*i)*distance * 18);
-    			int lh = (int)(Math.sin(Math.PI/6.0*i)*distance * 18);
-    			g.drawLine(w, h, lw+w, h-lh);
-    		}
-    		g.setColor(new Color(0f, 0f, 0f, 0.1f));
-    		for (int i = 1; i < 12; i++) {
-    			int lw = (int)(Math.cos(Math.PI/12.0*i)*distance * 18);
-    			int lh = (int)(Math.sin(Math.PI/12.0*i)*distance * 18);
-    			g.drawLine(w, h, lw+w, h-lh);
-    		}
-    		
-
-    		if (semaphore.tryAcquire()) {
-    			double d = h*2.0/25.0/20.0;
-    			
-    			g.setColor(new Color(0f, 1f, 0f));
-		    	if (map != null && pose!= null) {
-		    		Line[] lines = map.getLines();
-		    		for (int i = 0; i < lines.length; i++) {
-		    			Line l = lines[i];
-		    			double sin = Math.sin(Math.toRadians(pose.getHeading()-90));
-		    			double cos = Math.cos(Math.toRadians(pose.getHeading()-90));
-		            g.drawLine(
-			                (int)(w+(l.x1/10.0-pose.getX())*d*sin),
-			                (int)(h-(l.y1/10.0-pose.getY())*d*cos), 
-			                (int)(w+(l.x2/10.0-pose.getX())*d*sin),
-			                (int)(h-(l.y2/10.0-pose.getY())*d*cos)
-			        );
-		    		}
-		    	}
-    		
-    			drawDots(g, w, h);
-    	        semaphore.release();
-    		}
-    	}
-
-	private void drawDots(Graphics g, int w, int h) {
-		g.setColor(new Color(1f, 0f, 0f));
-		int oval_size = 16;
-		int distance = h*2/25;
-		double d = distance/20.0;
-		double a = -oval_size/4;
-		for (SonarRead r: lista_leituras) {
-			double x = a+(d*r.distance)*Math.sin(Math.toRadians(r.ang));
-			double y = a+(d*r.distance)*Math.cos(Math.toRadians(r.ang));
-			x = w - x;
-			y = h - y;
-		g.fillOval((int)(x-oval_size/2.0), (int)(y-oval_size/2.0), oval_size/2, oval_size/2);
-		}
-		if (map == null) return;
-	}
-   
-
-	public Pose getPose() {
-		return pose;
-	}
-
-	public void addRead(Pose p, double distance, double ang) {
-		if (semaphore.tryAcquire()) {
-			if (pose == null || !(p.getX() == pose.getX() && p.getY() == pose.getY() 
-					&& p.getHeading() == pose.getHeading())) {
-				pose = new Pose(p.getX(), p.getY(), p.getHeading());
-				lista_leituras.clear();
-			}
-			lista_leituras.add(new SonarRead(distance, ang+90));
-	        semaphore.release();
-		}
-		repaint();
-	}
-	
-	public ScannerImage(LineMap map) {
-		this.map = map;
-		semaphore = new Semaphore(1);
-		lista_leituras =  new ArrayList<SonarRead>();
-	}
-}

+ 0 - 177
.metadata2/.plugins/org.eclipse.core.resources/.history/1a/a07dcaea92ba001711b8bf632416c20d

@@ -1,177 +0,0 @@
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-
-import lejos.nxt.Motor;
-import lejos.nxt.NXTRegulatedMotor;
-import lejos.nxt.SensorPort;
-import lejos.nxt.Sound;
-import lejos.nxt.UltrasonicSensor;
-import lejos.nxt.comm.BTConnection;
-import lejos.nxt.comm.Bluetooth;
-import lejos.robotics.navigation.DifferentialPilot;
-import lejos.robotics.navigation.Pose;
-import lejos.robotics.localization.*;
-
-class Scanner extends Thread {
-	DataOutputStream output;
-	OdometryPoseProvider provider;
-	boolean run;
-	public boolean scann;
-	public int increment = 5;
-	
-	Scanner (DataOutputStream output, OdometryPoseProvider provider) {
-		super();
-		this.output = output;
-		this.provider = provider;
-		run = true;
-		scann = false;
-	}
-	
-	public void stop () {
-		run = false;
-	}
-	
-	public void run() {
-		NXTRegulatedMotor scannerm = Motor.A;
-		UltrasonicSensor sensor = new UltrasonicSensor(SensorPort.S1) ;
-		int position = 0;
-		
-		while (run) {
-			if (scann == false) {
-				scannerm.rotateTo(0);
-				continue;
-			}
-			if (position == 90 || position == -90)
-				increment *= -1;
-
-			scannerm.rotateTo(position);
-			scannerm.waitComplete();
-			
-			int distance = sensor.getDistance();
-						
-			Pose pose = provider.getPose();
-			float x = pose.getX();
-			float y = pose.getY();
-			float alpha = pose.getHeading();
-			
-			if (distance != 255) {
-				try {
-					output.write('@');
-					output.write(position+90);
-					output.writeFloat(alpha);
-					output.writeFloat(x);
-					output.write(distance);
-					output.writeFloat(y);
-					output.flush();
-				} catch (IOException e) {
-				}
-			}
-			
-			position += increment;
-		}
-		
-		scannerm.rotateTo(0);
-		scannerm.waitComplete();
-	}
-}
-
-public class Sonar {
-	
-	private static final byte FORWARD = 0;
-	private static final byte STOP = 1;
-	private static final byte EXIT = 2;
-	private static final byte LEFT = 3;
-	private static final byte RIGHT = 4;
-	private static final byte BACKWARD = 5;
-	
-	public static final byte STOPSCANN = 6;
-	public static final byte STARTSCANN = 7;
-	public static final byte MOVE = 8;
-	public static final byte ROTATE = 9;
-	public static final byte SETPOSE = 10;
-	public static final byte SETSCANANGLE = 11;
-	
-	public static void main(String[] args) throws Exception {
-		
-		BTConnection btc = Bluetooth.waitForConnection();
-		//USBConnection btc = USB.waitForConnection();
-		
-		DataInputStream input = btc.openDataInputStream();
-		DataOutputStream output = btc.openDataOutputStream();
-		
-		DifferentialPilot pilot = new DifferentialPilot(5.6f, 13.8f, Motor.B, Motor.C, false); 
-		OdometryPoseProvider provider = new OdometryPoseProvider(pilot);
-		pilot.setRotateSpeed(5);
-		pilot.setTravelSpeed(20);
-		
-		Scanner scan = new Scanner(output, provider);
-		scan.start();
-		int input_byte;
-		boolean run = true;
-		
-		Sound.twoBeeps();
-		
-		while (run) {
-			if (input.available() <= 0) {
-				Thread.yield();
-				continue;
-			}
-			input_byte = input.readByte();
-
-			System.out.println(input_byte);
-			
-			switch (input_byte) {
-				case FORWARD:
-					pilot.forward();
-					break;
-				case STOP:
-					pilot.stop();
-					break;
-				case EXIT:
-					run = false;
-					break;
-				case LEFT:
-					pilot.rotateLeft();
-					break;
-				case RIGHT:
-					pilot.rotateRight();
-					break;
-				case BACKWARD:
-					pilot.backward();
-					break;
-				case STOPSCANN:
-					scan.scann = false;
-					break;
-				case STARTSCANN:
-					scan.scann = true;
-					break;
-				case MOVE:
-					float d = input.readFloat();
-					pilot.travel(d);
-					break;
-				case ROTATE:
-					float r = input.readFloat();
-					pilot.rotate(r);
-					break;
-				case SETPOSE:
-					float x = input.readFloat();
-					float y = input.readFloat();
-					float a = input.readFloat();
-					System.out.println("x: "+x);
-					System.out.println("y: "+y);
-					System.out.println("a: "+a);
-					provider.setPose(new Pose(x,y,a));
-					break;
-				case SETSCANANGLE:
-					int i = input.readByte();
-					System.out.println("ang: "+i);
-					scan.increment = i;
-					break;
-			}
-		}
-		Sound.beep();
-		scan.stop();
-		scan.join();
-	}
-}

+ 0 - 179
.metadata2/.plugins/org.eclipse.core.resources/.history/1a/b0c84325acba001711b8bf632416c20d

@@ -1,179 +0,0 @@
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-
-import lejos.nxt.Motor;
-import lejos.nxt.NXTRegulatedMotor;
-import lejos.nxt.SensorPort;
-import lejos.nxt.Sound;
-import lejos.nxt.UltrasonicSensor;
-import lejos.nxt.comm.BTConnection;
-import lejos.nxt.comm.Bluetooth;
-import lejos.robotics.navigation.DifferentialPilot;
-import lejos.robotics.navigation.Pose;
-import lejos.robotics.localization.*;
-
-class Scanner extends Thread {
-	DataOutputStream output;
-	OdometryPoseProvider provider;
-	boolean run;
-	public boolean scann;
-	public int increment = 5;
-	int position = 0;
-	
-	Scanner (DataOutputStream output, OdometryPoseProvider provider) {
-		super();
-		this.output = output;
-		this.provider = provider;
-		run = true;
-		scann = false;
-	}
-	
-	public void stop () {
-		run = false;
-	}
-	
-	public void run() {
-		NXTRegulatedMotor scannerm = Motor.A;
-		UltrasonicSensor sensor = new UltrasonicSensor(SensorPort.S1) ;
-		
-		while (run) {
-			if (scann == false)
-				position = 0;
-			
-			if (position == 90 || position == -90)
-				increment *= -1;
-
-			scannerm.rotateTo(position);
-			scannerm.waitComplete();
-
-			if (scann == false)
-				continue;
-			
-			int distance = sensor.getDistance();
-						
-			Pose pose = provider.getPose();
-			float x = pose.getX();
-			float y = pose.getY();
-			float alpha = pose.getHeading();
-			
-			if (distance != 255) {
-				try {
-					output.write('@');
-					output.write(position);
-					output.writeFloat(alpha);
-					output.writeFloat(x);
-					output.write(distance);
-					output.writeFloat(y);
-					output.flush();
-				} catch (IOException e) {
-				}
-			}
-			
-			position += increment;
-		}
-		
-		scannerm.rotateTo(0);
-		scannerm.waitComplete();
-	}
-}
-
-public class Sonar {
-	
-	private static final byte FORWARD = 0;
-	private static final byte STOP = 1;
-	private static final byte EXIT = 2;
-	private static final byte LEFT = 3;
-	private static final byte RIGHT = 4;
-	private static final byte BACKWARD = 5;
-	
-	public static final byte STOPSCANN = 6;
-	public static final byte STARTSCANN = 7;
-	public static final byte MOVE = 8;
-	public static final byte ROTATE = 9;
-	public static final byte SETPOSE = 10;
-	public static final byte SETSCANANGLE = 11;
-	
-	public static void main(String[] args) throws Exception {
-		
-		BTConnection btc = Bluetooth.waitForConnection();
-		//USBConnection btc = USB.waitForConnection();
-		
-		DataInputStream input = btc.openDataInputStream();
-		DataOutputStream output = btc.openDataOutputStream();
-		
-		DifferentialPilot pilot = new DifferentialPilot(5.6f, 13.8f, Motor.B, Motor.C, false); 
-		OdometryPoseProvider provider = new OdometryPoseProvider(pilot);
-		pilot.setRotateSpeed(5);
-		pilot.setTravelSpeed(20);
-		
-		Scanner scan = new Scanner(output, provider);
-		scan.start();
-		int input_byte;
-		boolean run = true;
-		
-		Sound.twoBeeps();
-		
-		while (run) {
-			if (input.available() <= 0) {
-				Thread.yield();
-				continue;
-			}
-			input_byte = input.readByte();
-
-			System.out.println(input_byte);
-			
-			switch (input_byte) {
-				case FORWARD:
-					pilot.forward();
-					break;
-				case STOP:
-					pilot.stop();
-					break;
-				case EXIT:
-					run = false;
-					break;
-				case LEFT:
-					pilot.rotateLeft();
-					break;
-				case RIGHT:
-					pilot.rotateRight();
-					break;
-				case BACKWARD:
-					pilot.backward();
-					break;
-				case STOPSCANN:
-					scan.scann = false;
-					break;
-				case STARTSCANN:
-					scan.scann = true;
-					break;
-				case MOVE:
-					float d = input.readFloat();
-					pilot.travel(d);
-					break;
-				case ROTATE:
-					float r = input.readFloat();
-					pilot.rotate(r);
-					break;
-				case SETPOSE:
-					float x = input.readFloat();
-					float y = input.readFloat();
-					float a = input.readFloat();
-					System.out.println("x: "+x);
-					System.out.println("y: "+y);
-					System.out.println("a: "+a);
-					provider.setPose(new Pose(x,y,a));
-					break;
-				case SETSCANANGLE:
-					int i = input.readByte();
-					System.out.println("ang: "+i);
-					scan.increment = i;
-					break;
-			}
-		}
-		Sound.beep();
-		scan.stop();
-		scan.join();
-	}
-}

+ 0 - 286
.metadata2/.plugins/org.eclipse.core.resources/.history/1a/d0b3319f18b80017145c9b6064c27648

@@ -1,286 +0,0 @@
-import java.awt.Color;
-import java.awt.Graphics;
-import java.awt.Point;
-import java.awt.event.MouseEvent;
-import java.awt.event.MouseListener;
-import java.awt.event.MouseMotionListener;
-import java.awt.event.MouseWheelEvent;
-import java.awt.event.MouseWheelListener;
-import java.awt.image.BufferedImage;
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-
-import javax.imageio.ImageIO;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-
-import lejos.geom.Line;
-import lejos.robotics.mapping.LineMap;
-import lejos.robotics.navigation.Pose;
-
-public class MapImage extends JPanel implements MouseWheelListener, MouseListener, MouseMotionListener  {
-    private double zoom = 2.0; // pixel per cm
-    private double grid = 10.0; // cm
-    private double centerx = 0.0;
-    private double centery = 0.0; // cm
-    private Point mousePt;
-    private ArrayList<Pose> lista_pontos;
-    private ArrayList<Pose> lista_ultra;
-    private int visual_method = 0;
-    private boolean line = false;
-    
-    private LineMap map;
-    
-	public MapImage() {
-		super();
-		lista_pontos = new ArrayList<Pose>();
-		lista_ultra = new ArrayList<Pose>();
-		setBackground(Color.BLACK);
-		addMouseWheelListener(this);
-		addMouseListener(this);
-		addMouseMotionListener(this);
-	}
-	
-	public MapImage(LineMap map) {
-		this();
-		this.map = map;
-	}
-	
-    private void drawModel (Graphics g) {
-        int width = (int) (getWidth()+2*centerx);
-        int height = (int) (getHeight()+2*centery);
-        int count = 0;
-        int x_tmp = 0, y_tmp = 0;
-        
-	    	for (Pose p : lista_pontos) {
-			double hading = Math.toRadians(p.getHeading());
-				
-	    		int x = width/2+(int)(p.getX()*zoom);
-	    		int y = height/2+(int)(p.getY()*zoom)*-1;
-	    		
-			if (visual_method == 0) {
-				g.setColor(Color.getHSBColor((float) (hading/(2.0*Math.PI)), 1, 1));
-				g.fillOval(
-						x-(int)(zoom/2.0*1.5),
-						y-(int)(zoom/2.0*1.5),
-						(int)(zoom*1.5),
-						(int)(zoom*1.5)
-				);
-			} else if (visual_method == 1) {
-	            g.setColor(Color.RED);
-	            g.drawLine(
-	                width/2+(int)(p.getX()*zoom),
-	                height/2-(int)(p.getY()*zoom), 
-	                width/2+(int)(p.getX()*zoom+Math.sin(hading)*zoom),
-	                height/2-(int)(p.getY()*zoom-Math.cos(hading)*zoom)
-	            );
-	
-	           g.drawLine(
-	                width/2+(int)(p.getX()*zoom+zoom*Math.sin(hading)),
-	                height/2-(int)(p.getY()*zoom-zoom*Math.cos(hading)),
-	                width/2+(int)(p.getX()*zoom+0.6*zoom*Math.sin(Math.PI/8+hading)),
-	                height/2-(int)(p.getY()*zoom-0.6*zoom*Math.cos(Math.PI/8+hading))
-	            );
-			} else if (visual_method == 2) {
-				g.setColor(Color.RED);
-				g.fillOval(
-						x-(int)(zoom/2.0*1.5),
-						y-(int)(zoom/2.0*1.5),
-						(int)(zoom*1.5),
-						(int)(zoom*1.5)
-				);
-	            g.setColor(Color.BLACK);
-	            g.drawLine(
-	                width/2+(int)(p.getX()*zoom),
-	                height/2-(int)(p.getY()*zoom), 
-	                width/2+(int)(p.getX()*zoom+Math.sin(hading)*zoom),
-	                height/2-(int)(p.getY()*zoom-Math.cos(hading)*zoom)
-	            );
-			}
-	
-		    	if (line && count != 0) {
-		    		g.setColor(Color.LIGHT_GRAY);
-		    		g.drawLine(x_tmp, y_tmp, x, y);
-		    	}
-	
-		    	x_tmp = x;
-		    	y_tmp = y;
-		    	count++;
-		}
-	    	
-	    	g.setColor(Color.RED);
-	    	for (Pose p : lista_ultra) {
-	    		int x = width/2+(int)(p.getX()*zoom);
-	    		int y = height/2+(int)(p.getY()*zoom)*-1;
-	    		g.fillRect(
-					x-(int)(zoom/2.0*1.0),
-					y-(int)(zoom/2.0*1.0),
-					(int)(zoom*1.0),
-					(int)(zoom*1.0)
-			);
-	    	}
-	    	
-	    	if (map != null) {
-	    		Line[] lines = map.getLines();
-	    		for (int i = 0; i < lines.length; i++) {
-	    			Line l = lines[i];
-	            g.drawLine(
-		                width/2+(int)(l.x1*zoom),
-		                height/2-(int)(l.y1*zoom), 
-		                width/2+(int)(l.x2*zoom),
-		                height/2-(int)(l.y2*zoom)
-		        );
-	    		}
-	    	}
-    }
-    
-    @Override
-    protected void paintComponent(Graphics g) {
-        int width = (int) (getWidth());
-        int height = (int) (getHeight());
-        int width2 = (int) (getWidth()+2*centerx);
-        int height2 = (int) (getHeight()+2*centery);
-        super.paintComponent(g);
-    
-        g.setColor(new Color(20, 20, 20));
-        
-        int initial_x = height2/2;
-        while (initial_x < width) {
-        	initial_x += grid*zoom;
-        	g.drawLine(0, initial_x, width, initial_x); 
-        }
-        initial_x = height2/2;
-        while (initial_x > 0) {
-        	initial_x -= grid*zoom;
-        	g.drawLine(0, initial_x, width, initial_x); 
-        }
-        int initial_y = width2/2;
-        while (initial_y < width) {
-        	initial_y += grid*zoom;
-            g.drawLine(initial_y, 0, initial_y, height);
-        }
-        initial_y = width2/2;
-        while (initial_y > 0) {
-        	initial_y -= grid*zoom;
-            g.drawLine(initial_y, 0, initial_y, height);
-        }
-
-        g.setColor(Color.ORANGE);
-        g.drawLine(width2/2, 0, width2/2, height);
-        g.drawLine(0, height2/2, width, height2/2);
-
-        drawModel(g);
-    }
-    
-    /**
-     * Adiciona um ponto ao mapa
-     * @param p ponto
-     */
-    public void addPoint(Pose p) {
-    		lista_pontos.add(p);
-    		repaint();
-	}
-
-    public void addPoint(float x, float y, float z) {
-    		lista_pontos.add(new Pose(x, y, z));
-    		repaint();
-	}
-    
-
-    public void addRead(float x, float y) {
-    		lista_ultra.add(new Pose(x, y, 0));
-    		repaint();
-	}
-    
-
-    public void addPoint(double x, double y, double z) {
-    		addPoint((float)x, (float)y, (float)z);
-	}
-    
-
-    public void addRead(double x, double y) {
-    		lista_ultra.add(new Pose(x, y, 0));
-    		repaint();
-	}
-    
-    
-    public void showLine () {
-    		line = !line;
-    		repaint();
-    }
-
-    public void setVisual (int method) {
-    		visual_method = method;
-    		repaint();
-    }
-    
-    public void save () {
-	    	Integer name = new Integer((int) (Math.random()*1000000));
-	    	BufferedImage imagebuf = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_RGB);
-	    	Graphics g = imagebuf.createGraphics();
-	    	g.fillRect(0, 0, imagebuf.getWidth(), imagebuf.getHeight());
-	    	print(g);
-	    	try {
-			ImageIO.write(imagebuf, "png",  new File(name.toString()+".png"));
-			JOptionPane.showMessageDialog(null, "Image saved.");
-		} catch (IOException e) {
-			e.printStackTrace();
-			JOptionPane.showMessageDialog(null, "Image not saved.");
-		}
-    }
-    
-	public void clean() {
-		lista_pontos.clear();
-		lista_ultra.clear();
-		repaint();
-	}
-	@Override
-	public void mouseDragged(MouseEvent e) {
-		centerx += e.getX() - mousePt.x;
-		centery += e.getY() - mousePt.y;
-		mousePt = e.getPoint();
-		repaint();
-		
-	}
-	@Override
-	public void mouseMoved(MouseEvent e) {		
-	}
-	
-	@Override
-	public void mouseClicked(MouseEvent e) {		
-	}
-	
-	@Override
-	public void mousePressed(MouseEvent e) {
-		mousePt = e.getPoint();
-		repaint();
-		
-	}
-	@Override
-	public void mouseReleased(MouseEvent e) {		
-	}
-	
-	@Override
-	public void mouseEntered(MouseEvent e) {
-	}
-	
-	@Override
-	public void mouseExited(MouseEvent e) {	
-	}
-	
-	@Override
-	public void mouseWheelMoved(MouseWheelEvent e) {
-		if(e.getWheelRotation()<0){
-			if (zoom < 15.0)
-				zoom *= 1.1;
-			repaint();
-		}
-		//Zoom out
-		if(e.getWheelRotation()>0){
-			if (zoom > 1.0)
-				zoom /= 1.1;
-			repaint();
-		}
-	}
-}

+ 0 - 135
.metadata2/.plugins/org.eclipse.core.resources/.history/1b/6001ad73d5b90017124d9f37712eb7c1

@@ -1,135 +0,0 @@
-package robots;
-
-import java.util.ArrayList;
-
-import lejos.robotics.mapping.LineMap;
-import lejos.robotics.navigation.Pose;
-
-public class VirtualRobot implements Robot {
-	private Pose pose;
-	private Simulate simthread;
-	private RobotReturn rr;
-	private LineMap map;
-
-	private class Simulate extends Thread {
-		public boolean run = true;
-
-		public void run() {
-			int ang = 0;
-			int add = -5;
-			while (run) {
-				DataPose data = new DataPose();
-				
-
-				Pose tmppose = new Pose(pose.getX(), pose.getY(), (float) (pose.getHeading() + ang));
-				float dist = map.range(tmppose);
-				if (dist == -1) dist =  255;
-				
-				
-				data.setDistance((int)dist);
-				data.setPose(pose);
-				data.setSensorAngle(ang);
-
-				rr.robotData(data);
-
-				ang += add;
-				if (ang == -180 || ang == 0)
-					add *= -1;
-
-				try {
-					Thread.sleep(50);
-				} catch (InterruptedException e) {
-				}
-			}
-		}
-
-	}
-
-	public VirtualRobot(LineMap map) {
-		pose = new Pose();
-		pose.setHeading(90);
-		this.map = map;
-	}
-
-	@Override
-	public void moveForward() {
-		move(5);
-	}
-
-	@Override
-	public void moveLeft() {
-		pose.rotateUpdate(45);
-	}
-
-	@Override
-	public void moveRight() {
-		pose.rotateUpdate(-45);
-	}
-
-	@Override
-	public void moveBackward() {
-		move(-5);
-	}
-
-	@Override
-	public boolean connect() {
-		return true;
-	}
-
-	@Override
-	public void stop() {
-	}
-
-	@Override
-	public void move(double x) {
-		double dx = Math.sin(Math.toRadians(pose.getHeading())) * x;
-		double dy = Math.cos(Math.toRadians(pose.getHeading())) * x;
-		pose.translate((float) dx, (float) -dy);
-	}
-
-	@Override
-	public void rotate(double x) {
-		pose.rotateUpdate((float)x);
-	}
-
-	@Override
-	public ArrayList<DataPose> scann(int ini, int end, int interval) {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	@Override
-	public void scann(RobotReturn r) {
-		rr = r;
-		simthread = new Simulate();
-		simthread.start();
-	}
-
-	@Override
-	public void stopScann() {
-		simthread.run = false;
-		try {
-			simthread.join();
-		} catch (InterruptedException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-	}
-
-	@Override
-	public void disconnect() {
-
-	}
-
-	@Override
-	public void setPose(float x, float y, float a) {
-		pose.setHeading(a);
-		pose.setLocation(x, y);
-	}
-	
-	@Override
-	public String toString() {
-		return "Virtual Robot";
-	}
-
-}

+ 0 - 162
.metadata2/.plugins/org.eclipse.core.resources/.history/1b/b0be3c7026bb001711b8bf632416c20d

@@ -1,162 +0,0 @@
-package robots;
-
-import java.util.ArrayList;
-import java.util.Random;
-
-import lejos.robotics.mapping.LineMap;
-import lejos.robotics.navigation.Pose;
-
-public class VirtualRobot implements Robot {
-	private Pose pose;
-	private Simulate simthread;
-	private RobotReturn rr;
-	private LineMap map;
-	private int angle = 0;
-	private Random rand;
-
-	private class Simulate extends Thread {
-		public boolean run = true;
-
-		public void run() {
-			angle = 0;
-			int add = -5;
-			while (run) {
-				DataPose data = new DataPose();
-
-				double dist = getDistance();
-				
-				data.setDistance((int)dist);
-				data.setPose(pose);
-				data.setSensorAngle(angle+90);
-
-				rr.robotData(data);
-
-				angle += add;
-				if (angle == -180 || angle == 0)
-					add *= -1;
-
-				try {
-					Thread.sleep(50);
-				} catch (InterruptedException e) {
-				}
-			}
-		}
-
-	}
-	
-	public double getDistance() {
-		Pose tmppose = new Pose(pose.getX(), pose.getY(), pose.getHeading());
-		float mindist = Float.POSITIVE_INFINITY;
-		int cone = 20;
-		for (int angle=-cone/2; angle <= cone/2; angle++) {
-			tmppose.setHeading((float) (pose.getHeading() + angle));
-			float dist = map.range(tmppose);
-			if (dist > 0 && dist < mindist) mindist = dist;
-		}
-		double v = mindist+rand.nextGaussian()*4+Math.random();
-		v = Math.min(255, v);
-		return v;
-	}
-
-	public VirtualRobot(LineMap map) {
-		pose = new Pose();
-		pose.setHeading(0);
-		this.map = map;
-		rand = new Random();
-	}
-
-	@Override
-	public void moveForward() {
-		move(5);
-	}
-
-	@Override
-	public void moveLeft() {
-		pose.rotateUpdate(45);
-	}
-
-	@Override
-	public void moveRight() {
-		pose.rotateUpdate(-45);
-	}
-
-	@Override
-	public void moveBackward() {
-		move(-5);
-	}
-
-	@Override
-	public boolean connect() {
-		return true;
-	}
-
-	@Override
-	public void stop() {
-	}
-
-	@Override
-	public void move(double x) {
-		double dx = Math.sin(Math.toRadians(pose.getHeading())) * x;
-		double dy = Math.cos(Math.toRadians(pose.getHeading())) * x;
-		pose.translate((float) dx, (float) -dy);
-	}
-
-	@Override
-	public void rotate(double x) {
-		pose.rotateUpdate((float)-x);
-	}
-
-	@Override
-	public ArrayList<DataPose> scann(int ini, int end, int interval) {
-		ArrayList<DataPose> result = new ArrayList<DataPose>();
-		int ang = 0;
-		for (ang  = ini; ang <= end; ang += interval) {
-			DataPose data = new DataPose();
-
-			double dist = getDistance();
-			
-			data.setDistance((int)dist);
-			data.setPose(pose);
-			data.setSensorAngle(ang);	
-			result.add(data);
-		}
-		return result;
-	}
-
-	@Override
-	public void scann(RobotReturn r) {
-		rr = r;
-		stopScann();
-		simthread = new Simulate();
-		simthread.start();
-	}
-
-	@Override
-	public void stopScann() {
-		if (simthread == null) return;
-		simthread.run = false;
-		try {
-			simthread.join();
-		} catch (InterruptedException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-	}
-
-	@Override
-	public void disconnect() {
-
-	}
-
-	@Override
-	public void setPose(float x, float y, float a) {
-		pose.setHeading(a);
-		pose.setLocation(x, y);
-	}
-	
-	@Override
-	public String toString() {
-		return "Virtual Robot";
-	}
-
-}

+ 0 - 53
.metadata2/.plugins/org.eclipse.core.resources/.history/1c/0061834ce4b000171eb4aea94a5e3c6b

@@ -1,53 +0,0 @@
-import java.io.DataOutputStream;
-import java.io.IOException;
-
-public class SendThread extends Thread{
-	
-	public static final byte FORWARD = 0;
-	public static final byte STOP = 1;
-	public static final byte EXIT = 2;
-	public static final byte LEFT = 3;
-	public static final byte RIGHT = 4;
-	public static final byte BACKWARD = 5;
-	
-	private int command;
-	private int before;
-	private boolean run;
-	private DataOutputStream output;
-	
-	public SendThread(DataOutputStream out) {
-		super();
-		command = -1;
-		before = command;
-		run = true;
-		output = out;
-	}
-	
-	@Override
-	public void run() {
-		while (run) {
-			if (before != command) {
-//				try {
-//					output.write(command);
-//					output.flush();
-//					System.out.println("Send cmd");
-//				} catch (IOException e) {
-//					System.out.println("Erro send cmd");
-//				}
-				System.out.println("Send cmd");
-				before = command;
-			}
-			
-			try {
-				Thread.sleep(200);
-			} catch (InterruptedException e) {
-				// TODO Auto-generated catch block
-				e.printStackTrace();
-			}
-		}
-	}
-	
-	public void send (int c) {
-		command = c;
-	}
-}

+ 0 - 126
.metadata2/.plugins/org.eclipse.core.resources/.history/1c/10536aec23bb001711b8bf632416c20d

@@ -1,126 +0,0 @@
-package robots;
-
-import java.util.ArrayList;
-
-import lejos.robotics.navigation.Pose;
-import lejos.robotics.navigation.DifferentialPilot;
-import lejos.nxt.Motor;
-import lejos.nxt.SensorPort;
-import lejos.nxt.UltrasonicSensor;
-import lejos.nxt.remote.RemoteMotor;
-
-public class LCPRobot implements Robot {
-	private Pose pose;
-	static DifferentialPilot pilot;
-	static UltrasonicSensor sonar;
-	RemoteMotor scannerm = Motor.A;
-	RemoteMotor ma = Motor.B;
-	RemoteMotor mb = Motor.C;
-
-	public LCPRobot() {
-
-	}
-
-	@Override
-	public void move(double x) {
-		double dx = Math.sin(Math.toRadians(pose.getHeading())) * x;
-		double dy = Math.cos(Math.toRadians(pose.getHeading())) * x;
-		pose.translate((float) dx, (float) -dy);
-		pilot.travel(x);
-	}
-
-	@Override
-	public void rotate(double x) {
-		pose.rotateUpdate((float)-x);
-		pilot.rotate(x);
-	}
-
-	@Override
-	public ArrayList<DataPose> scann(int ini, int end, int interval) {
-		ArrayList<DataPose> result = new ArrayList<DataPose>();
-		int val = 0;
-		double ang = 0;
-		int engine_mult = 1;
-		scannerm.setSpeed(80);
-		for (int j = ini; j <= end; j += interval) {
-			scannerm.rotate(-(j * engine_mult));
-			scannerm.waitComplete();
-			val = sonar.getDistance();
-			ang = ini + interval;
-
-			DataPose data = new DataPose();
-			data.setDistance(val);
-			data.setSensorAngle(ang);
-			data.setPose(pose);
-			result.add(data);
-		}
-		scannerm.setSpeed(200);
-		scannerm.rotate(0);
-		return result;
-	}
-	
-	
-
-	@Override
-	public String toString() {
-		return "LCP Robot";
-	}
-
-	@Override
-	public void moveForward() {
-		pilot.forward();
-	}
-
-	@Override
-	public void moveLeft() {
-		pilot.rotateLeft();
-	}
-
-	@Override
-	public void moveRight() {
-		pilot.rotateRight();
-	}
-
-	@Override
-	public void moveBackward() {
-		pilot.backward();
-	}
-
-	@Override
-	public void stop() {
-		pilot.stop();
-	}
-
-	@Override
-	public void scann(RobotReturn r) {
-		// TODO Auto-generated method stub
-
-	}
-
-	@Override
-	public void stopScann() {
-		// TODO Auto-generated method stub
-
-	}
-
-	@Override
-	public boolean connect() {
-		//pilot = new DifferentialPilot(5.6f, 11.2f, Motor.B, Motor.A);
-		pilot = new DifferentialPilot(5.6f, 11.2f, ma, mb);
-		sonar = new UltrasonicSensor(SensorPort.S1);
-		pilot.setTravelSpeed(10);
-		pilot.setRotateSpeed(40);
-		return true;
-	}
-
-	@Override
-	public void disconnect() {
-	}
-
-	@Override
-	public void setPose(float x, float y, float a) {
-		pose.setHeading(a);
-		pose.setLocation(x, y);
-	}
-
-}

+ 0 - 312
.metadata2/.plugins/org.eclipse.core.resources/.history/1c/20b11b80a8ba001711b8bf632416c20d

@@ -1,312 +0,0 @@
-package robots;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.concurrent.Semaphore;
-
-import lejos.pc.comm.NXTComm;
-import lejos.pc.comm.NXTCommException;
-import lejos.pc.comm.NXTCommFactory;
-import lejos.pc.comm.NXTInfo;
-import lejos.robotics.navigation.Pose;
-
-public class BluetoothRobot implements Robot {
-	private String name;
-	private NXTComm nxtComm;
-	private RobotReturn rr;
-	private Semaphore readm;
-	private Semaphore sendm;
-	
-	private int lastcmd = -1;
-	
-	public static final byte FORWARD = 0;
-	public static final byte STOP = 1;
-	public static final byte EXIT = 2;
-	public static final byte LEFT = 3;
-	public static final byte RIGHT = 4;
-	public static final byte BACKWARD = 5;
-	
-	public static final byte STOPSCANN = 6;
-	public static final byte STARTSCANN = 7;
-	public static final byte MOVE = 8;
-	public static final byte ROTATE = 9;
-	public static final byte SETPOSE = 10;
-	public static final byte SETSCANANGLE = 11;
-	
-	public static final byte TYPE_INT = 1;
-	public static final byte TYPE_CMD = 2;
-	public static final byte TYPE_POSE = 3;
-	public static final byte TYPE_FLOAT = 4;
-	
-	private static final int scannangle = 5;
-
-	private DataOutputStream output;
-	private DataInputStream input;
-	private Receiver receivethread;
-	private Sender sendthread;
-	
-	private ArrayList<DataPose> reads;
-	private ArrayList<SendData> tosend;
-		
-	private class Receiver extends Thread {
-		public boolean run = true;
-		@Override
-		public void run() {
-			int bytes_valiable = -1;
-			
-			while(run) {
-				try {
-					bytes_valiable = input.available();
-				} catch (IOException e1) {
-					// TODO Auto-generated catch block
-					e1.printStackTrace();
-				}
-				if (bytes_valiable >= 0) {
-					try {
-						if (input.readByte() != '@') continue;
-						int angle = input.readByte();
-						float alpha = input.readFloat();
-						float x = input.readFloat();
-						int distance = input.readByte();
-						float y = input.readFloat();
-						DataPose d = new DataPose();
-						d.setDistance(distance);
-						d.setSensorAngle(angle);
-						d.setPose(new Pose(y, -x, alpha));
-						if (rr != null)
-							rr.robotData(d);	
-						
-					} catch (IOException e1) {
-						continue;
-					}
-				}
-			}
-		}
-	}
-
-	private class Sender extends Thread {
-		public boolean run = true;
-		@Override
-		public void run() {		
-			while(run) {
-				SendData value = null;
-				if (sendm.tryAcquire()) {
-					if (tosend.size() > 0) {
-						value = tosend.get(0);
-						tosend.remove(0);
-					}
-					sendm.release();
-				}
-				if (value != null)
-					value.send(output);
-				else
-					try {
-						Thread.sleep(100);
-					} catch (InterruptedException e) {
-
-					}
-			}
-		}
-	}
-	
-	private class SendData {
-		float f;
-		int i;
-		int cmd;
-		Pose p;
-		int type;
-		SendData(int cmd) {
-			this.cmd = cmd;
-			this.type = TYPE_CMD;
-		}
-		SendData(int cmd, int i) {
-			this.cmd = cmd;
-			this.i = i;
-			this.type = TYPE_INT;
-		}
-		SendData(int cmd, float f) {
-			this.cmd = cmd;
-			this.f = f;
-			this.type = TYPE_FLOAT;
-		}
-		SendData(int cmd, Pose p) {
-			this.cmd = cmd;
-			this.p = p;
-			this.type = TYPE_POSE;
-		}
-		public boolean send(DataOutputStream output) {
-			try {
-				switch (type) {
-				case TYPE_CMD:
-					output.write(cmd);
-					break;
-				case TYPE_INT:
-					output.write(cmd);
-					output.write(i);
-					break;
-				case TYPE_FLOAT:
-					output.write(cmd);
-					output.writeFloat(f);
-					break;
-				case TYPE_POSE:
-					output.write(cmd);
-					output.writeFloat(p.getX());
-					output.writeFloat(p.getY());
-					output.writeFloat(p.getHeading());
-					break;
-				default:
-					return false;
-				}
-				output.flush();
-			} catch (IOException e) {
-				return false;
-			}
-			return true;
-		}
-	}
-	
-	public BluetoothRobot (String name) {
-		
-		readm = new Semaphore(1);
-		reads = new ArrayList<DataPose>();
-		
-		sendm = new Semaphore(1);
-		tosend = new ArrayList<SendData>();
-		
-		receivethread = new Receiver();
-		sendthread = new Sender();
-		
-		this.name = name;
-	}
-	
-	public void send (SendData sd) {
-		if (sendm.tryAcquire()) {
-			tosend.add(sd);
-			sendm.release();
-		}
-	}
-
-	@Override
-	public void moveForward() {
-		if (lastcmd == FORWARD) return;
-		send(new SendData(FORWARD));
-		lastcmd = FORWARD;
-	}
-
-	@Override
-	public void moveLeft() {
-		if (lastcmd == LEFT) return;
-		send(new SendData(LEFT));
-		lastcmd = LEFT;
-	}
-
-	@Override
-	public void moveRight() {
-		if (lastcmd == RIGHT) return;
-		send(new SendData(RIGHT));
-		lastcmd = RIGHT;
-	}
-
-	@Override
-	public void moveBackward() {
-		send(new SendData(BACKWARD));
-	}
-
-	@Override
-	public boolean connect () {
-		try {
-			nxtComm = NXTCommFactory.createNXTComm(NXTCommFactory.BLUETOOTH);
-			NXTInfo[] nxtInfo = nxtComm.search(name); //find brick with NXT_ID by doing a Bluetooth inquiry
-			if (nxtInfo.length == 0) { // failed to find a brick with the ID
-				System.err.println("NO NXT found");
-				return false;
-			}
-			if (!nxtComm.open(nxtInfo[0])) { // the brick was found but a connection could not be establish
-				System.err.println("Failed to open NXT");
-				return false;
-			}
-			
-			input = new DataInputStream(nxtComm.getInputStream()); // open data input stream 
-			output = new DataOutputStream(nxtComm.getOutputStream()); // open data output stream
-			send(new SendData(SETSCANANGLE, scannangle)); // vai scanear em 5 em 5 graus
-		} catch (NXTCommException e) {
-			return false;
-		}
-		
-		receivethread.start();
-		sendthread.start();
-		
-		return true;	
-	}
-
-	@Override
-	public void stop() {
-		send(new SendData(STOP));
-	}
-
-
-	@Override
-	public void move(double x) {
-		send(new SendData(MOVE, (float)x));
-	}
-
-	@Override
-	public void rotate(double x) {
-		send(new SendData(ROTATE, (float)x));
-	}
-
-	@Override
-	public ArrayList<DataPose> scann(int ini, int end, int interval) {
-//		send(SETSCANANGLE, interval);
-//		creads = 180/interval;
-//		reads = new ArrayList<DataPose>();
-//		scann(null);
-//		
-//		while(reads.size() <= creads) { };
-//		
-//		stopScann();
-//		creads = -1;
-		return null;
-	}
-
-	@Override
-	public void scann(RobotReturn r) {
-		rr = r;
-		send(new SendData(STARTSCANN));
-	}
-
-	@Override
-	public void stopScann() {
-		send(new SendData(STOPSCANN));
-	}
-
-	@Override
-	public void disconnect() {
-		send(new SendData(EXIT));
-		if (receivethread == null) return;
-		receivethread.run = false;
-		try {
-			receivethread.join();
-		} catch (InterruptedException e1) {
-			System.out.println("Nao foi possivel finalizar as threads...");
-		}
-		try {
-			nxtComm.close();
-		} catch (IOException e) {
-		}
-	}
-
-	@Override
-	public void setPose(float x, float y, float a) {
-		send(new SendData(SETPOSE, new Pose(y, -x, a)));
-	}
-	
-	
-	@Override
-	public String toString() {
-		return "Bluetooth Mestre/Escravo";
-	}
-
-}

+ 0 - 25
.metadata2/.plugins/org.eclipse.core.resources/.history/1c/50d569cdafb90017124d9f37712eb7c1

@@ -1,25 +0,0 @@
-package config;
-
-import lejos.geom.Line;
-import lejos.robotics.mapping.LineMap;
-import lejos.robotics.navigation.Pose;
-
-public class Models {
-	private LineMap map;
-
-	public Models(LineMap map) {
-		this.map = map;
-	}
-
-	public double expectedSonarRead(Pose p) {
-		// o modelo apresentado aqui eh o mais burro
-		// ele pega a menor distancia do robo a um segmento
-		double min = Double.MAX_VALUE;
-		double d;
-		for (Line l : map.getLines()) {
-			d = l.ptSegDist(p.getX(), p.getY());
-			min = Math.min(min, d);
-		}
-		return min;
-	}
-}

+ 0 - 278
.metadata2/.plugins/org.eclipse.core.resources/.history/1c/c0786a72a5ba001711b8bf632416c20d

@@ -1,278 +0,0 @@
-package robots;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.concurrent.Semaphore;
-
-import lejos.pc.comm.NXTComm;
-import lejos.pc.comm.NXTCommException;
-import lejos.pc.comm.NXTCommFactory;
-import lejos.pc.comm.NXTInfo;
-import lejos.robotics.navigation.Pose;
-
-public class BluetoothRobot implements Robot {
-	private String name;
-	private NXTComm nxtComm;
-	private RobotReturn rr;
-	private Semaphore semaphore;
-	private Semaphore sendm;
-	private int creads = 1;
-	
-	public static final byte FORWARD = 0;
-	public static final byte STOP = 1;
-	public static final byte EXIT = 2;
-	public static final byte LEFT = 3;
-	public static final byte RIGHT = 4;
-	public static final byte BACKWARD = 5;
-	
-	public static final byte STOPSCANN = 6;
-	public static final byte STARTSCANN = 7;
-	public static final byte MOVE = 8;
-	public static final byte ROTATE = 9;
-	public static final byte SETPOSE = 10;
-	public static final byte SETSCANANGLE = 11;
-	
-	public static final byte TYPE_INT = 1;
-	public static final byte TYPE_CMD = 2;
-	public static final byte TYPE_POSE = 3;
-	public static final byte TYPE_FLOAT = 4;
-	
-	private static final int scannangle = 5;
-
-	private DataOutputStream output;
-	private DataInputStream input;
-	private Receiver receivethread;
-	private Sender sendthread;
-	
-	private ArrayList<DataPose> reads;
-	private ArrayList<SendData> tosend;
-		
-	private class Receiver extends Thread {
-		public boolean run = true;
-		@Override
-		public void run() {
-			int bytes_valiable = -1;
-			
-			while(run) {
-				try {
-					bytes_valiable = input.available();
-				} catch (IOException e1) {
-					// TODO Auto-generated catch block
-					e1.printStackTrace();
-				}
-				if (bytes_valiable >= 0) {
-					try {
-						if (input.readByte() != '@') continue;
-						int angle = input.readByte();
-						float alpha = input.readFloat();
-						float x = input.readFloat();
-						int distance = input.readByte();
-						float y = input.readFloat();
-						DataPose d = new DataPose();
-						d.setDistance(distance);
-						d.setSensorAngle(angle);
-						d.setPose(new Pose(y, -x, alpha));
-						if (rr != null)
-							rr.robotData(d);	
-						
-					} catch (IOException e1) {
-						continue;
-					}
-				}
-			}
-		}
-	}
-
-	private class Sender extends Thread {
-		@Override
-		public void run() {
-			
-		}
-	}
-	
-	private class SendData {
-		float f;
-		int i;
-		int cmd;
-		Pose p;
-		int type;
-		SendData(int cmd) {
-			this.cmd = cmd;
-			this.type = TYPE_CMD;
-		}
-		SendData(int cmd, int i) {
-			this.cmd = cmd;
-			this.i = i;
-			this.type = TYPE_INT;
-		}
-		SendData(int cmd, float f) {
-			this.cmd = cmd;
-			this.f = f;
-			this.type = TYPE_FLOAT;
-		}
-		SendData(int cmd, Pose p) {
-			this.cmd = cmd;
-			this.p = p;
-			this.type = TYPE_POSE;
-		}
-		public boolean send(DataOutputStream output) {
-			try {
-				switch (type) {
-				case TYPE_CMD:
-					output.write(cmd);
-					break;
-				case TYPE_INT:
-					output.write(cmd);
-					output.write(i);
-					break;
-				case TYPE_FLOAT:
-					output.write(cmd);
-					output.writeFloat(f);
-					break;
-				case TYPE_POSE:
-					output.write(cmd);
-					output.writeFloat(p.getX());
-					output.writeFloat(p.getY());
-					output.writeFloat(p.getHeading());
-					break;
-				default:
-					return false;
-				}
-			} catch (IOException e) {
-				return false;
-			}
-			return true;
-		}
-	}
-	
-	public BluetoothRobot (String name) {
-		
-		semaphore = new Semaphore(1);
-		
-		sendm = new Semaphore(1);
-		tosend = new ArrayList<SendData>();
-		
-		receivethread = new Receiver();
-		sendthread = new Sender();
-		this.name = name;
-	}
-
-	@Override
-	public void moveForward() {
-		send(FORWARD);
-	}
-
-	@Override
-	public void moveLeft() {
-		send(LEFT);
-	}
-
-	@Override
-	public void moveRight() {
-		send(RIGHT);
-	}
-
-	@Override
-	public void moveBackward() {
-		send(BACKWARD);
-	}
-
-	@Override
-	public boolean connect () {
-		try {
-			nxtComm = NXTCommFactory.createNXTComm(NXTCommFactory.BLUETOOTH);
-			NXTInfo[] nxtInfo = nxtComm.search(name); //find brick with NXT_ID by doing a Bluetooth inquiry
-			if (nxtInfo.length == 0) { // failed to find a brick with the ID
-				System.err.println("NO NXT found");
-				return false;
-			}
-			if (!nxtComm.open(nxtInfo[0])) { // the brick was found but a connection could not be establish
-				System.err.println("Failed to open NXT");
-				return false;
-			}
-			
-			input = new DataInputStream(nxtComm.getInputStream()); // open data input stream 
-			output = new DataOutputStream(nxtComm.getOutputStream()); // open data output stream
-			send(SETSCANANGLE, scannangle); // vai scanear em 5 em 5 graus
-		} catch (NXTCommException e) {
-			return false;
-		}
-		
-		receivethread.start();
-		
-		return true;	
-	}
-
-	@Override
-	public void stop() {
-		send(STOP);
-	}
-
-
-	@Override
-	public void move(double x) {
-		send(MOVE, (float)x);
-	}
-
-	@Override
-	public void rotate(double x) {
-		send(ROTATE, (float)x);
-	}
-
-	@Override
-	public ArrayList<DataPose> scann(int ini, int end, int interval) {
-//		send(SETSCANANGLE, interval);
-//		creads = 180/interval;
-//		reads = new ArrayList<DataPose>();
-//		scann(null);
-//		
-//		while(reads.size() <= creads) { };
-//		
-//		stopScann();
-//		creads = -1;
-		return null;
-	}
-
-	@Override
-	public void scann(RobotReturn r) {
-		rr = r;
-		send(STARTSCANN);
-	}
-
-	@Override
-	public void stopScann() {
-		send(STOPSCANN);
-	}
-
-	@Override
-	public void disconnect() {
-		send(EXIT);
-		if (receivethread == null) return;
-		receivethread.run = false;
-		try {
-			receivethread.join();
-		} catch (InterruptedException e1) {
-			System.out.println("Nao foi possivel finalizar as threads...");
-		}
-		try {
-			nxtComm.close();
-		} catch (IOException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-	}
-
-	@Override
-	public void setPose(float x, float y, float a) {
-		send(new Pose(y, -x, a));
-	}
-	
-	
-	@Override
-	public String toString() {
-		return "Bluetooth Mestre/Escravo";
-	}
-
-}

+ 0 - 334
.metadata2/.plugins/org.eclipse.core.resources/.history/1d/308fa0529fba001711b8bf632416c20d

@@ -1,334 +0,0 @@
-import java.awt.BorderLayout;
-import java.awt.event.KeyEvent;
-import java.awt.event.KeyListener;
-import java.awt.event.WindowEvent;
-import java.awt.event.WindowListener;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.util.ArrayList;
-
-import javax.swing.JFrame;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-import javax.swing.JSplitPane;
-import javax.swing.SwingUtilities;
-
-import config.Map;
-import config.Models;
-import lejos.robotics.mapping.LineMap;
-import lejos.robotics.navigation.Pose;
-import robots.BluetoothRobot;
-import robots.DataPose;
-import robots.Robot;
-import robots.RobotReturn;
-import robots.VirtualRobot;
-
-public class MainProgram extends JPanel implements KeyListener, WindowListener, RobotReturn {
-
-	private MapImage imap;
-	private Robot robot;
-	private ScannerImage scanner;
-	private Models smodel;
-
-	public static final byte FORWARD = 0;
-	public static final byte STOP = 1;
-	public static final byte EXIT = 2;
-	public static final byte LEFT = 3;
-	public static final byte RIGHT = 4;
-	public static final byte BACKWARD = 5;
-
-	public MainProgram(LineMap map, Robot robot) {
-		this.robot = robot;
-		JFrame frame = new JFrame("Mapa MAC0318");
-
-		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-		frame.setLayout(new BorderLayout());
-		imap = new MapImage(map);
-		scanner = new ScannerImage(map);
-		smodel = new Models(map);
-		// frame.add(this.map);
-		frame.setSize(800, 800);
-		frame.setVisible(true);
-
-		frame.setFocusable(true);
-		frame.requestFocusInWindow();
-		frame.addKeyListener(this);
-		frame.addWindowListener(this);
-
-		JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, scanner, imap);
-		splitPane.setOneTouchExpandable(true);
-		splitPane.setDividerLocation((int) (frame.getHeight() / 2));
-		frame.add(splitPane);
-
-		showHelp();
-	}
-
-	private void showHelp() {
-		String text = "1,2,3 - Change global map view\n";
-		text += "s - Set Pose.\n";
-		text += "l - Show global map trace.\n";
-		text += "c - Clean maps.\n";
-		text += "m - Enter robot movement.\n";
-		text += "r - Enter robo rotation.\n";
-		text += "a - Colect sonar data.\n";
-		text += "z - Make sonar continuous scanner.\n";
-		text += "i - Stop continuous scanner.\n";
-		text += "g - Save global map image.\n";
-		text += "f - Save scanner image.\n";
-		text += "<arrows> - Move robot.\n";
-		text += "h - help.\n";
-		JOptionPane.showMessageDialog(null, text, "HELP", JOptionPane.PLAIN_MESSAGE);
-	}
-
-	public void addPoint(Pose p) {
-		imap.addPoint(p);
-	}
-
-	@Override
-	public void keyPressed(KeyEvent e) {
-
-		char input = e.getKeyChar();
-		switch (input) {
-		case '1':
-			imap.setVisual(0);
-			break;
-		case '2':
-			imap.setVisual(1);
-			break;
-		case '3':
-			imap.setVisual(2);
-			break;
-		case 'l':
-			imap.showLine();
-			break;
-		case 'g':
-			imap.save();
-			break;
-		case 'f':
-			scanner.save();
-			break;
-		case 'c':
-			imap.clean();
-			scanner.clean();
-			break;
-		case 's':
-			setRobotPose();
-			break;
-		case 'm':
-			moveRobot();
-			break;
-		case 'r':
-			rotateRobot();
-			break;
-		case 'a':
-			colectSonar();
-			break;
-		case 'z':
-			robot.scann(this);
-			break;
-		case 'i':
-			robot.stopScann();
-			break;
-		case 'h':
-			showHelp();
-			break;
-		default:
-			break;
-		}
-
-		if (robot == null)
-			return;
-
-		switch (e.getKeyCode()) {
-		case KeyEvent.VK_UP:
-			robot.moveForward();
-			scanner.clean();
-			break;
-		case KeyEvent.VK_DOWN:
-			robot.moveBackward();
-			scanner.clean();
-			break;
-		case KeyEvent.VK_LEFT:
-			robot.moveLeft();
-			scanner.clean();
-			break;
-		case KeyEvent.VK_RIGHT:
-			robot.moveRight();
-			scanner.clean();
-			break;
-		}
-	}
-
-	private void colectSonar() {
-		int interval;
-		try {
-			String rs = JOptionPane.showInputDialog("Interval (degress):");
-			interval = Integer.parseInt(rs);
-		} catch (Exception e) {
-			return;
-		}
-		ArrayList<DataPose> data = robot.scann(-90, 90, interval);
-
-		Integer name = new Integer((int) (Math.random() * 1000000));
-		String rand_name = name.toString() + ".txt";
-		FileWriter fileWriter;
-		try {
-			fileWriter = new FileWriter(rand_name);
-		} catch (IOException e) {
-			return;
-		}
-		PrintWriter printWriter = new PrintWriter(fileWriter);
-		printWriter.print("x,y,headinng,sonar_ang,read,expected\n");
-		for (DataPose d : data) {
-			robotData(d);
-
-			double expected = smodel.expectedSonarRead(d.getPose(), d.getSensorAngle());
-			printWriter.print(d.getPose().getX() + ",");
-			printWriter.print(d.getPose().getY() + ",");
-			printWriter.print(d.getPose().getHeading() + ",");
-			printWriter.print(d.getSensorAngle() + ",");
-			printWriter.print(d.getDistance() + ",");
-			printWriter.print(expected + "\n");
-		}
-
-		printWriter.close();
-		JOptionPane.showMessageDialog(null, "Reads saved in " + rand_name);
-	}
-
-	private void rotateRobot() {
-		try {
-			String rs = JOptionPane.showInputDialog("Enter rotation (degress-clockwise):");
-			double r = Double.parseDouble(rs);
-			robot.rotate(r);
-			scanner.clean();
-		} catch (Exception e) {
-		}
-	}
-
-	private void moveRobot() {
-		try {
-			String rs = JOptionPane.showInputDialog("Enter distance (cm):");
-			double r = Double.parseDouble(rs);
-			robot.move(r);
-			scanner.clean();
-		} catch (Exception e) {
-		}
-	}
-
-	private void setRobotPose() {
-		try {
-			String xs = JOptionPane.showInputDialog("Enter x (cm):");
-			if (xs.length() == 0)
-				return;
-			String ys = JOptionPane.showInputDialog("Enter y (cm):");
-			if (ys.length() == 0)
-				return;
-			String as = JOptionPane.showInputDialog("Enter heading (degress):");
-			if (as.length() == 0)
-				return;
-
-			float x = Float.parseFloat(xs);
-			float y = Float.parseFloat(ys);
-			float a = Float.parseFloat(as);
-			robot.setPose(x, y, a);
-			scanner.setPose(new Pose(x, y, a));
-			scanner.clean();
-		} catch (Exception e) {
-		}
-	}
-
-	@Override
-	public void keyReleased(KeyEvent arg0) {
-		if (robot == null)
-			return;
-		robot.stop();
-	}
-
-	@Override
-	public void keyTyped(KeyEvent arg0) {
-	}
-
-	@Override
-	public void windowOpened(WindowEvent e) {
-
-	}
-
-	@Override
-	public void windowClosing(WindowEvent e) {
-		System.err.println("Fechando...");
-		if (robot == null)
-			return;
-		robot.disconnect();
-
-	}
-
-	@Override
-	public void windowClosed(WindowEvent e) {
-	}
-
-	@Override
-	public void windowIconified(WindowEvent e) {
-
-	}
-
-	@Override
-	public void windowDeiconified(WindowEvent e) {
-
-	}
-
-	@Override
-	public void windowActivated(WindowEvent e) {
-
-	}
-
-	@Override
-	public void windowDeactivated(WindowEvent e) {
-	}
-
-	@Override
-	public void robotData(DataPose data) {
-		// posicao do robo
-		Pose p = data.getPose();
-
-		imap.addPoint(p);
-		if (data.getDistance() == 255) {
-			scanner.setPose(p);
-			return;
-		}
-
-		// ponto do ultrasonico
-		double sensor_ang = Math.toRadians(data.getSensorAngle() + p.getHeading());
-		double dx = Math.cos(sensor_ang) * data.getDistance();
-		double dy = Math.sin(sensor_ang) * data.getDistance();
-		double expected = smodel.expectedSonarRead(p, data.getSensorAngle());
-		imap.addRead(p.getX() + dx, p.getY() + dy);
-		scanner.addRead(p, data.getDistance(), data.getSensorAngle(), expected);
-	}
-
-	public static void main(String[] args) {
-
-		LineMap map = Map.makeMap();
-		Robot robotv = new VirtualRobot(map);
-		Robot robotbt = new BluetoothRobot(null);
-
-		Object[] possibleValues = { robotv, robotbt };
-		Object robot = JOptionPane.showInputDialog(null, "Choose one", "Input", JOptionPane.PLAIN_MESSAGE, null,
-				possibleValues, possibleValues[0]);
-		
-		boolean result = false;
-		if (robot != null)
-			result = ((Robot) robot).connect();
-
-		if (result == false) {
-			JOptionPane.showMessageDialog(null, "Não foi possível conectar ao robô");
-			System.exit(ERROR);
-		}
-
-		SwingUtilities.invokeLater(new Runnable() {
-			public void run() {
-				new MainProgram(map, (Robot) robot);
-			}
-		});
-	}
-}

+ 0 - 24
.metadata2/.plugins/org.eclipse.core.resources/.history/1f/6039ae6bc7b90017124d9f37712eb7c1

@@ -1,24 +0,0 @@
-package config;
-
-import lejos.geom.Line;
-import lejos.robotics.mapping.LineMap;
-import lejos.robotics.navigation.Pose;
-
-public class Models {
-	private LineMap map;
-
-	public Models(LineMap map) {
-		this.map = map;
-	}
-
-	public double expectedSonarRead(Pose p, double angle) {
-		Pose tmppose = (30, 25, 120);
-		float mindist = Float.POSITIVE_INFINITY;
-		for (int angulo=-cone/2; angulo <= cone/2; angulo++) {
-		tmppose.setHeading(mypose.getHeading() - angulo);
-		float dist = mymap.range(tmpPose);
-		if (dist > 0 && dist < mindist) mindist = dist;
-		} 
-		return 0;
-	}
-}

+ 0 - 25
.metadata2/.plugins/org.eclipse.core.resources/.history/1f/70948cf90eb9001711c7a09600ea5d68

@@ -1,25 +0,0 @@
-package config;
-
-import lejos.geom.Line;
-import lejos.robotics.mapping.LineMap;
-import lejos.robotics.navigation.Pose;
-
-public class SonarModel {
-	private LineMap map;
-
-	public SonarModel(LineMap map) {
-		this.map = map;
-	}
-
-	public double expectedRead(Pose p) {
-		// o modelo apresentado aqui eh o mais burro
-		// ele pega a menor distancia do robo a um segmento
-		double min = Double.MAX_VALUE;
-		double d;
-		for (Line l: map) {
-			d = l.ptSegDist(p.getX(), p.getY());
-			min = Math.min(min, d);
-		}
-		return 0;
-	}
-}

+ 0 - 149
.metadata2/.plugins/org.eclipse.core.resources/.history/2/50ff40f19dba001711b8bf632416c20d

@@ -1,149 +0,0 @@
-package robots;
-
-import java.util.ArrayList;
-
-import lejos.robotics.mapping.LineMap;
-import lejos.robotics.navigation.Pose;
-
-public class VirtualRobot implements Robot {
-	private Pose pose;
-	private Simulate simthread;
-	private RobotReturn rr;
-	private LineMap map;
-
-	private class Simulate extends Thread {
-		public boolean run = true;
-
-		public void run() {
-			int ang = 0;
-			int add = -5;
-			while (run) {
-				DataPose data = new DataPose();
-				
-
-				Pose tmppose = new Pose(pose.getX(), pose.getY(), (float) (pose.getHeading() + ang));
-				float dist = map.range(tmppose);
-				if (dist == -1) dist =  255;
-				
-				
-				data.setDistance((int)dist);
-				data.setPose(pose);
-				data.setSensorAngle(ang);
-
-				rr.robotData(data);
-
-				ang += add;
-				if (ang == -180 || ang == 0)
-					add *= -1;
-
-				try {
-					Thread.sleep(50);
-				} catch (InterruptedException e) {
-				}
-			}
-		}
-
-	}
-
-	public VirtualRobot(LineMap map) {
-		pose = new Pose();
-		pose.setHeading(90);
-		this.map = map;
-	}
-
-	@Override
-	public void moveForward() {
-		move(5);
-	}
-
-	@Override
-	public void moveLeft() {
-		pose.rotateUpdate(45);
-	}
-
-	@Override
-	public void moveRight() {
-		pose.rotateUpdate(-45);
-	}
-
-	@Override
-	public void moveBackward() {
-		move(-5);
-	}
-
-	@Override
-	public boolean connect() {
-		return true;
-	}
-
-	@Override
-	public void stop() {
-	}
-
-	@Override
-	public void move(double x) {
-		double dx = Math.sin(Math.toRadians(pose.getHeading())) * x;
-		double dy = Math.cos(Math.toRadians(pose.getHeading())) * x;
-		pose.translate((float) dx, (float) -dy);
-	}
-
-	@Override
-	public void rotate(double x) {
-		pose.rotateUpdate((float)-x);
-	}
-
-	@Override
-	public ArrayList<DataPose> scann(int ini, int end, int interval) {
-		ArrayList<DataPose> result = new ArrayList<DataPose>();
-		int ang = 0;
-		for (ang  = ini; ang <= end; ang += interval) {
-			DataPose data = new DataPose();
-			Pose tmppose = new Pose(pose.getX(), pose.getY(), (float) (pose.getHeading() + ang));
-			float dist = map.range(tmppose);
-			if (dist == -1) dist =  255;
-			
-			data.setDistance((int)dist);
-			data.setPose(pose);
-			data.setSensorAngle(ang);	
-			result.add(data);
-		}
-		return result;
-	}
-
-	@Override
-	public void scann(RobotReturn r) {
-		rr = r;
-		stopScann();
-		simthread = new Simulate();
-		simthread.start();
-	}
-
-	@Override
-	public void stopScann() {
-		if (simthread == null) return;
-		simthread.run = false;
-		try {
-			simthread.join();
-		} catch (InterruptedException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-	}
-
-	@Override
-	public void disconnect() {
-
-	}
-
-	@Override
-	public void setPose(float x, float y, float a) {
-		pose.setHeading(a);
-		pose.setLocation(x, y);
-	}
-	
-	@Override
-	public String toString() {
-		return "Virtual Robot";
-	}
-
-}

+ 0 - 139
.metadata2/.plugins/org.eclipse.core.resources/.history/22/30fac574cfb90017124d9f37712eb7c1

@@ -1,139 +0,0 @@
-package robots;
-
-import java.util.ArrayList;
-
-import lejos.robotics.mapping.LineMap;
-import lejos.robotics.navigation.Pose;
-
-public class VirtualRobot implements Robot {
-	private Pose pose;
-	private Simulate simthread;
-	private RobotReturn rr;
-	private LineMap map;
-
-	private class Simulate extends Thread {
-		public boolean run = true;
-
-		public void run() {
-			int ang = 0;
-			int add = -5;
-			while (run) {
-				DataPose data = new DataPose();
-				
-
-				Pose tmppose = new Pose(pose.getX(), pose.getY(), (float) (pose.getHeading() + ang));
-				float dist = map.range(tmppose);
-				if (dist == -1) dist =  255;
-				
-				
-				data.setDistance((int)dist);
-				data.setPose(pose);
-				data.setSensorAngle(ang);
-
-				rr.robotData(data);
-
-				ang += add;
-				if (ang == -180 || ang == 0)
-					add *= -1;
-
-				try {
-					Thread.sleep(200);
-				} catch (InterruptedException e) {
-				}
-			}
-		}
-
-	}
-
-	public VirtualRobot(LineMap map) {
-		pose = new Pose();
-		pose.setHeading(90);
-		this.map = map;
-	}
-
-	@Override
-	public void moveForward() {
-		double dx = Math.sin(Math.toRadians(pose.getHeading())) * 5;
-		double dy = Math.cos(Math.toRadians(pose.getHeading())) * 5;
-		pose.translate((float) dx, (float) -dy);
-	}
-
-	@Override
-	public void moveLeft() {
-		pose.rotateUpdate(45);
-	}
-
-	@Override
-	public void moveRight() {
-		pose.rotateUpdate(-45);
-	}
-
-	@Override
-	public void moveBackward() {
-		double dx = Math.sin(Math.toRadians(pose.getHeading())) * 5;
-		double dy = Math.cos(Math.toRadians(pose.getHeading())) * 5;
-		pose.translate((float) -dx, (float) dy);
-	}
-
-	@Override
-	public boolean connect() {
-		return true;
-	}
-
-	@Override
-	public void stop() {
-	}
-
-	@Override
-	public void move(double x) {
-		// TODO Auto-generated method stub
-
-	}
-
-	@Override
-	public void rotate(double x) {
-		// TODO Auto-generated method stub
-
-	}
-
-	@Override
-	public ArrayList<DataPose> scann(int ini, int end, int interval) {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	@Override
-	public void scann(RobotReturn r) {
-		rr = r;
-		simthread = new Simulate();
-		simthread.start();
-	}
-
-	@Override
-	public void stopScann() {
-		simthread.run = false;
-		try {
-			simthread.join();
-		} catch (InterruptedException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-	}
-
-	@Override
-	public void disconnect() {
-
-	}
-
-	@Override
-	public void setPose(float x, float y, float a) {
-		pose.setHeading(a);
-		pose.setLocation(x, y);
-	}
-	
-	@Override
-	public String toString() {
-		return "Virtual Robot";
-	}
-
-}

+ 0 - 13
.metadata2/.plugins/org.eclipse.core.resources/.history/22/90210b881eb80017145c9b6064c27648

@@ -1,13 +0,0 @@
-package robots;
-
-public interface Robot {
-	public void moveForward ();
-	public void moveLeft ();
-	public void moveRight ();
-	public void moveBackward ();
-	
-	public boolean connect (RobotReturn m);
-	public void stop ();
-	public void exit ();
-	
-}

+ 0 - 52
.metadata2/.plugins/org.eclipse.core.resources/.history/22/d05cb20ce3b000171eb4aea94a5e3c6b

@@ -1,52 +0,0 @@
-import java.io.DataOutputStream;
-import java.io.IOException;
-
-public class SendThread extends Thread{
-	
-	public static final byte FORWARD = 0;
-	public static final byte STOP = 1;
-	public static final byte EXIT = 2;
-	public static final byte LEFT = 3;
-	public static final byte RIGHT = 4;
-	public static final byte BACKWARD = 5;
-	
-	private int command;
-	private int before;
-	private boolean run;
-	private DataOutputStream output;
-	
-	public SendThread(DataOutputStream out) {
-		super();
-		command = -1;
-		before = command;
-		run = true;
-		output = out;
-	}
-	
-	@Override
-	public void run() {
-		while (run) {
-			if (before != command) {
-				try {
-//					output.write(command);
-//					output.flush();
-					System.out.println("Send cmd");
-				} catch (IOException e) {
-					System.out.println("Erro send cmd");
-				}
-				before = command;
-			}
-			
-			try {
-				Thread.sleep(200);
-			} catch (InterruptedException e) {
-				// TODO Auto-generated catch block
-				e.printStackTrace();
-			}
-		}
-	}
-	
-	public void send (int c) {
-		command = c;
-	}
-}

+ 0 - 299
.metadata2/.plugins/org.eclipse.core.resources/.history/23/301d2c7da6ba001711b8bf632416c20d

@@ -1,299 +0,0 @@
-package robots;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.concurrent.Semaphore;
-
-import lejos.pc.comm.NXTComm;
-import lejos.pc.comm.NXTCommException;
-import lejos.pc.comm.NXTCommFactory;
-import lejos.pc.comm.NXTInfo;
-import lejos.robotics.navigation.Pose;
-
-public class BluetoothRobot implements Robot {
-	private String name;
-	private NXTComm nxtComm;
-	private RobotReturn rr;
-	private Semaphore readm;
-	private Semaphore sendm;
-	
-	public static final byte FORWARD = 0;
-	public static final byte STOP = 1;
-	public static final byte EXIT = 2;
-	public static final byte LEFT = 3;
-	public static final byte RIGHT = 4;
-	public static final byte BACKWARD = 5;
-	
-	public static final byte STOPSCANN = 6;
-	public static final byte STARTSCANN = 7;
-	public static final byte MOVE = 8;
-	public static final byte ROTATE = 9;
-	public static final byte SETPOSE = 10;
-	public static final byte SETSCANANGLE = 11;
-	
-	public static final byte TYPE_INT = 1;
-	public static final byte TYPE_CMD = 2;
-	public static final byte TYPE_POSE = 3;
-	public static final byte TYPE_FLOAT = 4;
-	
-	private static final int scannangle = 5;
-
-	private DataOutputStream output;
-	private DataInputStream input;
-	private Receiver receivethread;
-	private Sender sendthread;
-	
-	private ArrayList<DataPose> reads;
-	private ArrayList<SendData> tosend;
-		
-	private class Receiver extends Thread {
-		public boolean run = true;
-		@Override
-		public void run() {
-			int bytes_valiable = -1;
-			
-			while(run) {
-				try {
-					bytes_valiable = input.available();
-				} catch (IOException e1) {
-					// TODO Auto-generated catch block
-					e1.printStackTrace();
-				}
-				if (bytes_valiable >= 0) {
-					try {
-						if (input.readByte() != '@') continue;
-						int angle = input.readByte();
-						float alpha = input.readFloat();
-						float x = input.readFloat();
-						int distance = input.readByte();
-						float y = input.readFloat();
-						DataPose d = new DataPose();
-						d.setDistance(distance);
-						d.setSensorAngle(angle);
-						d.setPose(new Pose(y, -x, alpha));
-						if (rr != null)
-							rr.robotData(d);	
-						
-					} catch (IOException e1) {
-						continue;
-					}
-				}
-			}
-		}
-	}
-
-	private class Sender extends Thread {
-		public boolean run = true;
-		@Override
-		public void run() {		
-			while(run) {
-				SendData value = null;
-				if (sendm.tryAcquire()) {
-					if (tosend.size() > 0) {
-						value = tosend.get(0);
-						tosend.remove(0);
-					}
-					sendm.release();
-				}
-				if (value != null)
-					value.send(output);
-			}
-		}
-	}
-	
-	private class SendData {
-		float f;
-		int i;
-		int cmd;
-		Pose p;
-		int type;
-		SendData(int cmd) {
-			this.cmd = cmd;
-			this.type = TYPE_CMD;
-		}
-		SendData(int cmd, int i) {
-			this.cmd = cmd;
-			this.i = i;
-			this.type = TYPE_INT;
-		}
-		SendData(int cmd, float f) {
-			this.cmd = cmd;
-			this.f = f;
-			this.type = TYPE_FLOAT;
-		}
-		SendData(int cmd, Pose p) {
-			this.cmd = cmd;
-			this.p = p;
-			this.type = TYPE_POSE;
-		}
-		public boolean send(DataOutputStream output) {
-			try {
-				switch (type) {
-				case TYPE_CMD:
-					output.write(cmd);
-					break;
-				case TYPE_INT:
-					output.write(cmd);
-					output.write(i);
-					break;
-				case TYPE_FLOAT:
-					output.write(cmd);
-					output.writeFloat(f);
-					break;
-				case TYPE_POSE:
-					output.write(cmd);
-					output.writeFloat(p.getX());
-					output.writeFloat(p.getY());
-					output.writeFloat(p.getHeading());
-					break;
-				default:
-					return false;
-				}
-				output.flush();
-			} catch (IOException e) {
-				return false;
-			}
-			return true;
-		}
-	}
-	
-	public BluetoothRobot (String name) {
-		
-		semaphore = new Semaphore(1);
-		
-		sendm = new Semaphore(1);
-		tosend = new ArrayList<SendData>();
-		
-		receivethread = new Receiver();
-		sendthread = new Sender();
-		
-		this.name = name;
-	}
-	
-	public void send (SendData sd) {
-		if (sendm.tryAcquire()) {
-			tosend.add(sd);
-			sendm.release();
-		}
-	}
-
-	@Override
-	public void moveForward() {
-		send(new SendData(FORWARD));
-	}
-
-	@Override
-	public void moveLeft() {
-		send(new SendData(LEFT));
-	}
-
-	@Override
-	public void moveRight() {
-		send(new SendData(RIGHT));
-	}
-
-	@Override
-	public void moveBackward() {
-		send(new SendData(BACKWARD));
-	}
-
-	@Override
-	public boolean connect () {
-		try {
-			nxtComm = NXTCommFactory.createNXTComm(NXTCommFactory.BLUETOOTH);
-			NXTInfo[] nxtInfo = nxtComm.search(name); //find brick with NXT_ID by doing a Bluetooth inquiry
-			if (nxtInfo.length == 0) { // failed to find a brick with the ID
-				System.err.println("NO NXT found");
-				return false;
-			}
-			if (!nxtComm.open(nxtInfo[0])) { // the brick was found but a connection could not be establish
-				System.err.println("Failed to open NXT");
-				return false;
-			}
-			
-			input = new DataInputStream(nxtComm.getInputStream()); // open data input stream 
-			output = new DataOutputStream(nxtComm.getOutputStream()); // open data output stream
-			send(new SendData(SETSCANANGLE, scannangle)); // vai scanear em 5 em 5 graus
-		} catch (NXTCommException e) {
-			return false;
-		}
-		
-		receivethread.start();
-		sendthread.start();
-		
-		return true;	
-	}
-
-	@Override
-	public void stop() {
-		send(new SendData(STOP));
-	}
-
-
-	@Override
-	public void move(double x) {
-		send(new SendData(MOVE, (float)x));
-	}
-
-	@Override
-	public void rotate(double x) {
-		send(new SendData(ROTATE, (float)x));
-	}
-
-	@Override
-	public ArrayList<DataPose> scann(int ini, int end, int interval) {
-//		send(SETSCANANGLE, interval);
-//		creads = 180/interval;
-//		reads = new ArrayList<DataPose>();
-//		scann(null);
-//		
-//		while(reads.size() <= creads) { };
-//		
-//		stopScann();
-//		creads = -1;
-		return null;
-	}
-
-	@Override
-	public void scann(RobotReturn r) {
-		rr = r;
-		send(new SendData(STARTSCANN));
-	}
-
-	@Override
-	public void stopScann() {
-		send(new SendData(STOPSCANN));
-	}
-
-	@Override
-	public void disconnect() {
-		send(new SendData(EXIT));
-		if (receivethread == null) return;
-		receivethread.run = false;
-		try {
-			receivethread.join();
-		} catch (InterruptedException e1) {
-			System.out.println("Nao foi possivel finalizar as threads...");
-		}
-		try {
-			nxtComm.close();
-		} catch (IOException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-	}
-
-	@Override
-	public void setPose(float x, float y, float a) {
-		send(new SendData(SETPOSE, new Pose(y, -x, a)));
-	}
-	
-	
-	@Override
-	public String toString() {
-		return "Bluetooth Mestre/Escravo";
-	}
-
-}

+ 0 - 269
.metadata2/.plugins/org.eclipse.core.resources/.history/23/30cca097a4ba001711b8bf632416c20d

@@ -1,269 +0,0 @@
-package robots;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.concurrent.Semaphore;
-
-import lejos.pc.comm.NXTComm;
-import lejos.pc.comm.NXTCommException;
-import lejos.pc.comm.NXTCommFactory;
-import lejos.pc.comm.NXTInfo;
-import lejos.robotics.navigation.Pose;
-
-public class BluetoothRobot implements Robot {
-	private String name;
-	private NXTComm nxtComm;
-	private RobotReturn rr;
-	private Semaphore semaphore;
-	private int creads = 1;
-	
-	public static final byte FORWARD = 0;
-	public static final byte STOP = 1;
-	public static final byte EXIT = 2;
-	public static final byte LEFT = 3;
-	public static final byte RIGHT = 4;
-	public static final byte BACKWARD = 5;
-	
-	public static final byte STOPSCANN = 6;
-	public static final byte STARTSCANN = 7;
-	public static final byte MOVE = 8;
-	public static final byte ROTATE = 9;
-	public static final byte SETPOSE = 10;
-	public static final byte SETSCANANGLE = 11;
-	
-	public static final byte TYPE_INT = 1;
-	public static final byte TYPE_CMD = 2;
-	public static final byte TYPE_POSE = 3;
-	public static final byte TYPE_FLOAT = 4;
-	
-	private static final int scannangle = 5;
-
-	private DataOutputStream output;
-	private DataInputStream input;
-	private Receiver receivethread;
-	
-	private ArrayList<DataPose> reads;
-		
-	private class Receiver extends Thread {
-		public boolean run = true;
-		@Override
-		public void run() {
-			int bytes_valiable = -1;
-			
-			while(run) {
-				try {
-					bytes_valiable = input.available();
-				} catch (IOException e1) {
-					// TODO Auto-generated catch block
-					e1.printStackTrace();
-				}
-				if (bytes_valiable >= 0) {
-					try {
-						if (input.readByte() != '@') continue;
-						int angle = input.readByte();
-						float alpha = input.readFloat();
-						float x = input.readFloat();
-						int distance = input.readByte();
-						float y = input.readFloat();
-						DataPose d = new DataPose();
-						d.setDistance(distance);
-						d.setSensorAngle(angle);
-						d.setPose(new Pose(y, -x, alpha));
-						if (rr != null)
-							rr.robotData(d);	
-						
-					} catch (IOException e1) {
-						continue;
-					}
-				}
-			}
-		}
-	}
-
-	private class Sender extends Thread {
-		
-	}
-	
-	private class SendData {
-		float f;
-		int i;
-		int cmd;
-		Pose p;
-		int type;
-		SendData(int cmd) {
-			this.cmd = cmd;
-			this.type = TYPE_CMD;
-		}
-		SendData(int cmd, int i) {
-			this.cmd = cmd;
-			this.i = i;
-			this.type = TYPE_INT;
-		}
-		SendData(int cmd, float f) {
-			this.cmd = cmd;
-			this.f = f;
-			this.type = TYPE_FLOAT;
-		}
-		SendData(int cmd, Pose p) {
-			this.cmd = cmd;
-			this.p = p;
-			this.type = TYPE_POSE;
-		}
-		public boolean send(DataOutputStream output) {
-			try {
-				switch (type) {
-				case TYPE_CMD:
-					output.write(i);
-					break;
-
-				default:
-					return false;
-					break;
-				}
-			} catch (IOException e) {
-				return false;
-			}
-			return true;
-		}
-	}
-	
-	private void send(Pose p) {
-		if (semaphore.tryAcquire()) {
-			try {
-				output.write(SETPOSE);
-				output.writeFloat(p.getX());
-				output.writeFloat(p.getY());
-				output.writeFloat(p.getHeading());
-				output.flush();
-			} catch (IOException e) {
-				System.out.println("Erro ao enviar...");
-			}
-			semaphore.release();
-		}
-	}
-	
-	public BluetoothRobot (String name) {
-		semaphore = new Semaphore(1);
-		receivethread = new Receiver();
-		this.name = name;
-	}
-
-	@Override
-	public void moveForward() {
-		send(FORWARD);
-	}
-
-	@Override
-	public void moveLeft() {
-		send(LEFT);
-	}
-
-	@Override
-	public void moveRight() {
-		send(RIGHT);
-	}
-
-	@Override
-	public void moveBackward() {
-		send(BACKWARD);
-	}
-
-	@Override
-	public boolean connect () {
-		try {
-			nxtComm = NXTCommFactory.createNXTComm(NXTCommFactory.BLUETOOTH);
-			NXTInfo[] nxtInfo = nxtComm.search(name); //find brick with NXT_ID by doing a Bluetooth inquiry
-			if (nxtInfo.length == 0) { // failed to find a brick with the ID
-				System.err.println("NO NXT found");
-				return false;
-			}
-			if (!nxtComm.open(nxtInfo[0])) { // the brick was found but a connection could not be establish
-				System.err.println("Failed to open NXT");
-				return false;
-			}
-			
-			input = new DataInputStream(nxtComm.getInputStream()); // open data input stream 
-			output = new DataOutputStream(nxtComm.getOutputStream()); // open data output stream
-			send(SETSCANANGLE, scannangle); // vai scanear em 5 em 5 graus
-		} catch (NXTCommException e) {
-			return false;
-		}
-		
-		receivethread.start();
-		
-		return true;	
-	}
-
-	@Override
-	public void stop() {
-		send(STOP);
-	}
-
-
-	@Override
-	public void move(double x) {
-		send(MOVE, (float)x);
-	}
-
-	@Override
-	public void rotate(double x) {
-		send(ROTATE, (float)x);
-	}
-
-	@Override
-	public ArrayList<DataPose> scann(int ini, int end, int interval) {
-//		send(SETSCANANGLE, interval);
-//		creads = 180/interval;
-//		reads = new ArrayList<DataPose>();
-//		scann(null);
-//		
-//		while(reads.size() <= creads) { };
-//		
-//		stopScann();
-//		creads = -1;
-		return null;
-	}
-
-	@Override
-	public void scann(RobotReturn r) {
-		rr = r;
-		send(STARTSCANN);
-	}
-
-	@Override
-	public void stopScann() {
-		send(STOPSCANN);
-	}
-
-	@Override
-	public void disconnect() {
-		send(EXIT);
-		if (receivethread == null) return;
-		receivethread.run = false;
-		try {
-			receivethread.join();
-		} catch (InterruptedException e1) {
-			System.out.println("Nao foi possivel finalizar as threads...");
-		}
-		try {
-			nxtComm.close();
-		} catch (IOException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-	}
-
-	@Override
-	public void setPose(float x, float y, float a) {
-		send(new Pose(y, -x, a));
-	}
-	
-	
-	@Override
-	public String toString() {
-		return "Bluetooth Mestre/Escravo";
-	}
-
-}

+ 0 - 16
.metadata2/.plugins/org.eclipse.core.resources/.history/23/b07ddeb41ab80017145c9b6064c27648

@@ -1,16 +0,0 @@
-package robots;
-
-import lejos.robotics.navigation.Pose;
-
-public interface Robot {
-	public void moveForward ();
-	public void moveLeft ();
-	public void moveRight ();
-	public void moveBackward ();
-	
-	public boolean connect ();
-	public void stop ();
-	public void exit ();
-	
-	public Pose getData();
-}

+ 0 - 116
.metadata2/.plugins/org.eclipse.core.resources/.history/24/302f98100ab9001711c7a09600ea5d68

@@ -1,116 +0,0 @@
-import java.awt.Color;
-import java.awt.Graphics;
-import java.util.ArrayList;
-import java.util.concurrent.Semaphore;
-
-import javax.swing.JPanel;
-
-import lejos.geom.Line;
-import lejos.robotics.mapping.LineMap;
-import lejos.robotics.navigation.Pose;
-
-public class ScannerImage extends JPanel {
-	private Pose pose;
-	private LineMap map;
-	private ArrayList<SonarRead> lista_leituras;
-	private Semaphore semaphore;
-	
-	class SonarRead {
-		public double distance;
-		public double ang;
-		SonarRead (double distance, double ang) {
-			this.ang = ang;
-			this.distance = distance;
-		}
-	}
-	
-    @Override
-    protected void paintComponent(Graphics g) {
-    		int w = this.getWidth()/2;
-    		int h = this.getHeight();
-    		int distance = h*2/25;
-    		g.setColor(new Color(0f, 0f, 0f, 0.4f));
-    		for (int i = 1; i <= 18; i++) {
-    			int r = distance * i;
-        		g.drawArc(w-r, h-r, 2*r, 2*r, 0, 180);
-        		g.drawString(new Integer(i*20).toString(), w-7, h-r);
-    		}
-    		g.setColor(new Color(0f, 0f, 0f, 0.5f));
-    		for (int i = 1; i < 6; i++) {
-    			int lw = (int)(Math.cos(Math.PI/6.0*i)*distance * 18);
-    			int lh = (int)(Math.sin(Math.PI/6.0*i)*distance * 18);
-    			g.drawLine(w, h, lw+w, h-lh);
-    		}
-    		g.setColor(new Color(0f, 0f, 0f, 0.1f));
-    		for (int i = 1; i < 12; i++) {
-    			int lw = (int)(Math.cos(Math.PI/12.0*i)*distance * 18);
-    			int lh = (int)(Math.sin(Math.PI/12.0*i)*distance * 18);
-    			g.drawLine(w, h, lw+w, h-lh);
-    		}
-    		
-
-    		if (semaphore.tryAcquire()) {
-    			double d = h*2.0/25.0/20.0;
-    			
-    			g.setColor(new Color(0f, 1f, 0f));
-		    	if (map != null && pose!= null) {
-		    		Line[] lines = map.getLines();
-		    		for (int i = 0; i < lines.length; i++) {
-		    			Line l = lines[i];
-		    			System.out.println(pose.getHeading());
-		    			double sin = Math.sin(Math.toRadians(pose.getHeading()));
-		    			double cos = Math.cos(Math.toRadians(pose.getHeading()));
-		            g.drawLine(
-			                (int)(w+(l.x1/10.0-pose.getX())*d*sin),
-			                (int)(h-(l.y1/10.0-pose.getY())*d*cos), 
-			                (int)(w+(l.x2/10.0-pose.getX())*d*sin),
-			                (int)(h-(l.y2/10.0-pose.getY())*d*cos)
-			        );
-		    		}
-		    	}
-    		
-    			drawDots(g, w, h);
-    	        semaphore.release();
-    		}
-    	}
-
-	private void drawDots(Graphics g, int w, int h) {
-		g.setColor(new Color(1f, 0f, 0f));
-		int oval_size = 16;
-		int distance = h*2/25;
-		double d = distance/20.0;
-		double a = -oval_size/4;
-		for (SonarRead r: lista_leituras) {
-			double x = a+(d*r.distance)*Math.sin(Math.toRadians(r.ang));
-			double y = a+(d*r.distance)*Math.cos(Math.toRadians(r.ang));
-			x = w - x;
-			y = h - y;
-		g.fillOval((int)(x-oval_size/2.0), (int)(y-oval_size/2.0), oval_size/2, oval_size/2);
-		}
-		if (map == null) return;
-	}
-   
-
-	public Pose getPose() {
-		return pose;
-	}
-
-	public void addRead(Pose p, double distance, double ang) {
-		if (semaphore.tryAcquire()) {
-			if (pose == null || !(p.getX() == pose.getX() && p.getY() == pose.getY() 
-					&& p.getHeading() == pose.getHeading())) {
-				pose = new Pose(p.getX(), p.getY(), p.getHeading());
-				lista_leituras.clear();
-			}
-			lista_leituras.add(new SonarRead(distance, ang+90));
-	        semaphore.release();
-		}
-		repaint();
-	}
-	
-	public ScannerImage(LineMap map) {
-		this.map = map;
-		semaphore = new Semaphore(1);
-		lista_leituras =  new ArrayList<SonarRead>();
-	}
-}

+ 0 - 149
.metadata2/.plugins/org.eclipse.core.resources/.history/24/d0f6db9aa0ba001711b8bf632416c20d

@@ -1,149 +0,0 @@
-package robots;
-
-import java.util.ArrayList;
-
-import lejos.robotics.mapping.LineMap;
-import lejos.robotics.navigation.Pose;
-
-public class VirtualRobot implements Robot {
-	private Pose pose;
-	private Simulate simthread;
-	private RobotReturn rr;
-	private LineMap map;
-
-	private class Simulate extends Thread {
-		public boolean run = true;
-
-		public void run() {
-			int ang = 0;
-			int add = -5;
-			while (run) {
-				DataPose data = new DataPose();
-				
-
-				Pose tmppose = new Pose(pose.getX(), pose.getY(), (float) (pose.getHeading() + ang));
-				float dist = map.range(tmppose);
-				if (dist == -1) dist =  255;
-				
-				
-				data.setDistance((int)dist);
-				data.setPose(pose);
-				data.setSensorAngle(ang+90);
-
-				rr.robotData(data);
-
-				ang += add;
-				if (ang == -180 || ang == 0)
-					add *= -1;
-
-				try {
-					Thread.sleep(50);
-				} catch (InterruptedException e) {
-				}
-			}
-		}
-
-	}
-
-	public VirtualRobot(LineMap map) {
-		pose = new Pose();
-		pose.setHeading(90);
-		this.map = map;
-	}
-
-	@Override
-	public void moveForward() {
-		move(5);
-	}
-
-	@Override
-	public void moveLeft() {
-		pose.rotateUpdate(45);
-	}
-
-	@Override
-	public void moveRight() {
-		pose.rotateUpdate(-45);
-	}
-
-	@Override
-	public void moveBackward() {
-		move(-5);
-	}
-
-	@Override
-	public boolean connect() {
-		return true;
-	}
-
-	@Override
-	public void stop() {
-	}
-
-	@Override
-	public void move(double x) {
-		double dx = Math.sin(Math.toRadians(pose.getHeading())) * x;
-		double dy = Math.cos(Math.toRadians(pose.getHeading())) * x;
-		pose.translate((float) dx, (float) -dy);
-	}
-
-	@Override
-	public void rotate(double x) {
-		pose.rotateUpdate((float)-x);
-	}
-
-	@Override
-	public ArrayList<DataPose> scann(int ini, int end, int interval) {
-		ArrayList<DataPose> result = new ArrayList<DataPose>();
-		int ang = 0;
-		for (ang  = ini; ang <= end; ang += interval) {
-			DataPose data = new DataPose();
-			Pose tmppose = new Pose(pose.getX(), pose.getY(), (float) (pose.getHeading() + ang));
-			float dist = map.range(tmppose);
-			if (dist == -1) dist =  255;
-			
-			data.setDistance((int)dist);
-			data.setPose(pose);
-			data.setSensorAngle(ang);	
-			result.add(data);
-		}
-		return result;
-	}
-
-	@Override
-	public void scann(RobotReturn r) {
-		rr = r;
-		stopScann();
-		simthread = new Simulate();
-		simthread.start();
-	}
-
-	@Override
-	public void stopScann() {
-		if (simthread == null) return;
-		simthread.run = false;
-		try {
-			simthread.join();
-		} catch (InterruptedException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-	}
-
-	@Override
-	public void disconnect() {
-
-	}
-
-	@Override
-	public void setPose(float x, float y, float a) {
-		pose.setHeading(a);
-		pose.setLocation(x, y);
-	}
-	
-	@Override
-	public String toString() {
-		return "Virtual Robot";
-	}
-
-}

+ 0 - 16
.metadata2/.plugins/org.eclipse.core.resources/.history/24/f09094cd11b80017145c9b6064c27648

@@ -1,16 +0,0 @@
-
-public class Point3D {
-	public double x, y, z;
-	
-	public Point3D(double x, double y, double z) {
-		this.x = x;
-		this.y = y;
-		this.z = z; // em radianos
-	}
-	
-	public Point3D() {
-		this.x = (int )(Math.random() * 100 - 50);
-		this.y = (int )(Math.random() * 100 - 50);
-		this.z = (int )(Math.random() * Math.PI * 2.0);
-	}
-}

+ 0 - 139
.metadata2/.plugins/org.eclipse.core.resources/.history/25/a03ad027d5b90017124d9f37712eb7c1

@@ -1,139 +0,0 @@
-package robots;
-
-import java.util.ArrayList;
-
-import lejos.robotics.mapping.LineMap;
-import lejos.robotics.navigation.Pose;
-
-public class VirtualRobot implements Robot {
-	private Pose pose;
-	private Simulate simthread;
-	private RobotReturn rr;
-	private LineMap map;
-
-	private class Simulate extends Thread {
-		public boolean run = true;
-
-		public void run() {
-			int ang = 0;
-			int add = -5;
-			while (run) {
-				DataPose data = new DataPose();
-				
-
-				Pose tmppose = new Pose(pose.getX(), pose.getY(), (float) (pose.getHeading() + ang));
-				float dist = map.range(tmppose);
-				if (dist == -1) dist =  255;
-				
-				
-				data.setDistance((int)dist);
-				data.setPose(pose);
-				data.setSensorAngle(ang);
-
-				rr.robotData(data);
-
-				ang += add;
-				if (ang == -180 || ang == 0)
-					add *= -1;
-
-				try {
-					Thread.sleep(50);
-				} catch (InterruptedException e) {
-				}
-			}
-		}
-
-	}
-
-	public VirtualRobot(LineMap map) {
-		pose = new Pose();
-		pose.setHeading(90);
-		this.map = map;
-	}
-
-	@Override
-	public void moveForward() {
-		double dx = Math.sin(Math.toRadians(pose.getHeading())) * 5;
-		double dy = Math.cos(Math.toRadians(pose.getHeading())) * 5;
-		pose.translate((float) dx, (float) -dy);
-	}
-
-	@Override
-	public void moveLeft() {
-		pose.rotateUpdate(45);
-	}
-
-	@Override
-	public void moveRight() {
-		pose.rotateUpdate(-45);
-	}
-
-	@Override
-	public void moveBackward() {
-		double dx = Math.sin(Math.toRadians(pose.getHeading())) * 5;
-		double dy = Math.cos(Math.toRadians(pose.getHeading())) * 5;
-		pose.translate((float) -dx, (float) dy);
-	}
-
-	@Override
-	public boolean connect() {
-		return true;
-	}
-
-	@Override
-	public void stop() {
-	}
-
-	@Override
-	public void move(double x) {
-		// TODO Auto-generated method stub
-
-	}
-
-	@Override
-	public void rotate(double x) {
-		// TODO Auto-generated method stub
-
-	}
-
-	@Override
-	public ArrayList<DataPose> scann(int ini, int end, int interval) {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	@Override
-	public void scann(RobotReturn r) {
-		rr = r;
-		simthread = new Simulate();
-		simthread.start();
-	}
-
-	@Override
-	public void stopScann() {
-		simthread.run = false;
-		try {
-			simthread.join();
-		} catch (InterruptedException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-	}
-
-	@Override
-	public void disconnect() {
-
-	}
-
-	@Override
-	public void setPose(float x, float y, float a) {
-		pose.setHeading(a);
-		pose.setLocation(x, y);
-	}
-	
-	@Override
-	public String toString() {
-		return "Virtual Robot";
-	}
-
-}

+ 0 - 153
.metadata2/.plugins/org.eclipse.core.resources/.history/26/10b31e95d1b90017124d9f37712eb7c1

@@ -1,153 +0,0 @@
-import java.awt.Color;
-import java.awt.Graphics;
-import java.util.ArrayList;
-import java.util.concurrent.Semaphore;
-
-import javax.swing.JPanel;
-
-import lejos.geom.Line;
-import lejos.robotics.mapping.LineMap;
-import lejos.robotics.navigation.Pose;
-
-public class ScannerImage extends JPanel {
-	private Pose pose;
-	private LineMap map;
-	private ArrayList<SonarRead> lista_leituras;
-	private Semaphore semaphore;
-
-	class SonarRead {
-		public double distance;
-		public double ang;
-		public double expected;
-
-		SonarRead(double distance, double ang, double expected) {
-			this.ang = ang;
-			this.distance = distance;
-			this.expected = expected;
-		}
-	}
-
-	@Override
-	protected void paintComponent(Graphics g) {
-		int w = this.getWidth() / 2;
-		int h = this.getHeight();
-		int distance = h * 2 / 25;
-		g.setColor(new Color(0f, 0f, 0f, 0.4f));
-		for (int i = 1; i <= 18; i++) {
-			int r = distance * i;
-			g.drawArc(w - r, h - r, 2 * r, 2 * r, 0, 180);
-			g.drawString(new Integer(i * 20).toString(), w - 7, h - r);
-		}
-		g.setColor(new Color(0f, 0f, 0f, 0.5f));
-		for (int i = 1; i < 6; i++) {
-			int lw = (int) (Math.cos(Math.PI / 6.0 * i) * distance * 18);
-			int lh = (int) (Math.sin(Math.PI / 6.0 * i) * distance * 18);
-			g.drawLine(w, h, lw + w, h - lh);
-		}
-		g.setColor(new Color(0f, 0f, 0f, 0.1f));
-		for (int i = 1; i < 12; i++) {
-			int lw = (int) (Math.cos(Math.PI / 12.0 * i) * distance * 18);
-			int lh = (int) (Math.sin(Math.PI / 12.0 * i) * distance * 18);
-			g.drawLine(w, h, lw + w, h - lh);
-		}
-
-		if (semaphore.tryAcquire()) {
-			double d = h * 2.0 / 25.0 / 20.0;
-
-			g.setColor(new Color(0f, 1f, 0f));
-			if (map != null && pose != null) {
-				Line[] lines = map.getLines();
-				for (int i = 0; i < lines.length; i++) {
-					Line l = lines[i];
-					double sin = Math.sin(-Math.toRadians(pose.getHeading() - 180));
-					double cos = Math.cos(-Math.toRadians(pose.getHeading() - 180));
-
-					double x1 = (l.x1 - pose.getX()) * d;
-					double y1 = (l.y1 - pose.getY()) * d;
-
-					double x2 = (l.x2 - pose.getX()) * d;
-					double y2 = (l.y2 - pose.getY()) * d;
-
-					double xx1 = x1 * cos - y1 * sin;
-					double yy1 = y1 * cos + x1 * sin;
-
-					double xx2 = x2 * cos - y2 * sin;
-					double yy2 = y2 * cos + x2 * sin;
-
-					g.drawLine((int) (w + xx1), (int) (h - yy1), (int) (w + xx2), (int) (h - yy2));
-				}
-			}
-
-			drawDots(g, w, h);
-			semaphore.release();
-		}
-	}
-
-	private void drawDots(Graphics g, int w, int h) {
-		int oval_size = 16;
-		int distance = h * 2 / 25;
-		double d = distance / 20.0;
-		double a = -oval_size / 4;
-		double x, y;
-
-		g.setColor(new Color(1f, 0f, 0f));
-		for (SonarRead r : lista_leituras) {
-			x = a + (d * r.distance) * Math.sin(Math.toRadians(r.ang));
-			y = a + (d * r.distance) * Math.cos(Math.toRadians(r.ang));
-			x = w - x;
-			y = h - y;
-			g.setColor(new Color(1f, 0f, 0f));
-			g.fillOval((int) (x - oval_size / 2.0), (int) (y - oval_size / 2.0), oval_size / 2, oval_size / 2);
-
-			x = a + (d * r.expected) * Math.sin(Math.toRadians(r.ang));
-			y = a + (d * r.expected) * Math.cos(Math.toRadians(r.ang));
-			x = w - x;
-			y = h - y;
-			g.setColor(new Color(0f, 0f, 1f));
-			g.fillOval((int) (x - oval_size / 2.0), (int) (y - oval_size / 2.0), oval_size / 2, oval_size / 2);
-		}
-		if (map == null)
-			return;
-	}
-
-	public Pose getPose() {
-		return pose;
-	}
-	
-	public void setPose (Pose p) {
-		pose = p;
-		if (semaphore.tryAcquire()) {
-			lista_leituras.clear();
-			semaphore.release();
-		}
-		repaint();
-	}
-
-	public void addRead(Pose p, double distance, double ang, double expected) {
-		if (semaphore.tryAcquire()) {
-//			if (pose == null
-//					|| !(p.getX() == pose.getX() && p.getY() == pose.getY() && p.getHeading() == pose.getHeading())
-//					|| lista_leituras.size() >= 180) {
-//				pose = new Pose(p.getX(), p.getY(), p.getHeading());
-//				lista_leituras.clear();
-//			}
-			lista_leituras.add(new SonarRead(distance, ang + 90, expected));
-			semaphore.release();
-		}
-		repaint();
-	}
-
-	public ScannerImage(LineMap map) {
-		this.map = map;
-		semaphore = new Semaphore(1);
-		lista_leituras = new ArrayList<SonarRead>();
-	}
-
-	public void clean() {
-		if (semaphore.tryAcquire()) {
-			lista_leituras.clear();
-			semaphore.release();
-		}
-		repaint();
-	}
-}

+ 0 - 128
.metadata2/.plugins/org.eclipse.core.resources/.history/26/f0f5d5d0e2b000171eb4aea94a5e3c6b

@@ -1,128 +0,0 @@
-import java.awt.BorderLayout;
-import java.awt.event.KeyEvent;
-import java.awt.event.KeyListener;
-import java.io.BufferedReader;
-import java.io.DataInput;
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.io.InputStreamReader;
-
-import javax.swing.JFrame;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-
-import lejos.pc.comm.NXTComm;
-import lejos.pc.comm.NXTCommException;
-import lejos.pc.comm.NXTCommFactory;
-import lejos.pc.comm.NXTInfo;
-
-public class Map extends JPanel {
-	private final class KeyboardEvent implements KeyListener {
-		private DataOutputStream output;
-		public KeyboardEvent(DataOutputStream output) {
-			super();
-			this.output = output;
-		}
-
-		public void keyTyped(KeyEvent e) {
-		}
-
-		public void keyReleased(KeyEvent e) {
-			
-		}
-
-		public void keyPressed(KeyEvent e) {
-			char input = e.getKeyChar();
-			if (input == '1') map.setVisual(0);
-			else if (input == '2') map.setVisual(1);
-			else if (input == '3') map.setVisual(2);
-			else if (input == 'l') map.showLine();
-			else if (input == 's') map.save();
-
-			System.out.println(e.getKeyCode());
-		    switch(e.getKeyCode()) { 
-		        case KeyEvent.VK_UP:
-		        		sendthread.send(SendThread.FORWARD);
-		            break;
-		        case KeyEvent.VK_DOWN:
-		        		sendthread.send(SendThread.BACKWARD);
-		            break;
-		        case KeyEvent.VK_LEFT:
-		        		sendthread.send(SendThread.LEFT);
-		            break;
-		        case KeyEvent.VK_RIGHT :
-		        		sendthread.send(SendThread.RIGHT);
-		            break;
-		    }
-		}
-	}
-
-	private ImageMap map;
-	private SendThread sendthread;
-	
-	public Map (DataInputStream input, final DataOutputStream output) throws IOException {
-		JFrame frame = new JFrame("Mapa MAC0318");
-		KeyboardEvent event = new KeyboardEvent(output);
-		sendthread = new SendThread(output);
-		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-        frame.setLayout(new BorderLayout());
-        this.map = new ImageMap();
-		frame.add(this.map);
-		frame.setSize(800, 800);
-		frame.setVisible(true);
-		
-		frame.setFocusable(true);
-		frame.requestFocusInWindow();
-		
-		frame.addKeyListener(event);
-		String text = "1,2,3 - Change view mode.\n";
-		text += "s - Save image.\n";
-		text += "l - Show trace.\n";
-		JOptionPane.showMessageDialog(null, text);
-		
-		int bytes_valiable = -1;
-		
-		while(true) {
-			try {
-				bytes_valiable = input.available();
-			} catch (IOException e1) {
-				// TODO Auto-generated catch block
-				e1.printStackTrace();
-			}
-			if (bytes_valiable >= 0) {
-				if (input.readByte() != '@') continue;
-				int angle = input.readByte();
-				float x = input.readFloat();
-				int distance = input.readByte();
-				float y = input.readFloat();
-				System.out.println(x+" "+y);
-			}
-		}
-	}
-	
-    public void addPoint(Point3D p) {
-    		map.addPoint(p);
-	}
-
-	public static void main(String[] args) throws NXTCommException, IOException {
-//		NXTComm nxtComm = NXTCommFactory.createNXTComm(NXTCommFactory.USB); 
-//		NXTInfo[] nxtInfo = nxtComm.search("NXT8"); //find brick with NXT_ID by doing a Bluetooth inquiry
-//		if (nxtInfo.length == 0) { // failed to find a brick with the ID
-//			System.err.println("NO NXT found");
-//			System.exit(1);
-//		}
-//		if (!nxtComm.open(nxtInfo[0])) { // the brick was found but a connection could not be establish
-//			System.err.println("Failed to open NXT");
-//			System.exit(1);
-//		}
-//		
-//		DataInputStream input = new DataInputStream(nxtComm.getInputStream()); // open data input stream 
-//		DataOutputStream output = new DataOutputStream(nxtComm.getOutputStream()); // open data output stream
-		
-//		Map map = new Map(input, output);
-		
-		Map map = new Map(null, null);
-
-	}
-}

+ 0 - 48
.metadata2/.plugins/org.eclipse.core.resources/.history/27/e02acfa4e1b000171eb4aea94a5e3c6b

@@ -1,48 +0,0 @@
-import java.io.DataOutputStream;
-import java.io.IOException;
-
-public class SendThread extends Thread{
-	
-	public static final byte FORWARD = 0;
-	public static final byte STOP = 1;
-	public static final byte EXIT = 2;
-	public static final byte LEFT = 3;
-	public static final byte RIGHT = 4;
-	public static final byte BACKWARD = 5;
-	
-	private int command;
-	private int before;
-	private boolean run;
-	private DataOutputStream output;
-	
-	public SendThread(DataOutputStream out) {
-		super();
-		command = -1;
-		before = command;
-		run = true;
-		output = out;
-	}
-	
-	@Override
-	public void run() {
-		while (run) {
-			if (before != command) {
-				try {
-					output.write(command);
-				} catch (IOException e) { }
-				before = command;
-			}
-			
-			try {
-				Thread.sleep(200);
-			} catch (InterruptedException e) {
-				// TODO Auto-generated catch block
-				e.printStackTrace();
-			}
-		}
-	}
-	
-	public void send (int c) {
-		command = c;
-	}
-}

+ 0 - 26
.metadata2/.plugins/org.eclipse.core.resources/.history/29/10dc8f6111b9001711c7a09600ea5d68

@@ -1,26 +0,0 @@
-package config;
-
-import lejos.geom.Line;
-import lejos.robotics.mapping.LineMap;
-import lejos.robotics.navigation.Pose;
-
-public class Models {
-	private LineMap map;
-
-	public Models(LineMap map) {
-		this.map = map;
-	}
-
-	public double expectedSonarRead(Pose p) {
-		// o modelo apresentado aqui eh o mais burro
-		// ele pega a menor distancia do robo a um segmento
-		double min = Double.MAX_VALUE;
-		double d;
-		for (Line l : map.getLines()) {
-			System.out.println(l);
-			d = l.ptSegDist(p.getX() * 10, p.getY() * 10);
-			min = Math.min(min, d);
-		}
-		return min / 10.0;
-	}
-}

+ 0 - 26
.metadata2/.plugins/org.eclipse.core.resources/.history/29/b0aac23c12b9001711c7a09600ea5d68

@@ -1,26 +0,0 @@
-package config;
-
-import lejos.geom.Line;
-import lejos.robotics.mapping.LineMap;
-import lejos.robotics.navigation.Pose;
-
-public class Models {
-	private LineMap map;
-
-	public Models(LineMap map) {
-		this.map = map;
-	}
-
-	public double expectedSonarRead(Pose p) {
-		// o modelo apresentado aqui eh o mais burro
-		// ele pega a menor distancia do robo a um segmento
-		double min = Double.MAX_VALUE;
-		double d;
-		for (Line l : map.getLines()) {
-			d = l.ptSegDist(p.getX(), p.getY());
-			min = Math.min(min, d);
-		}
-		System.out.println(Math.sqrt(min));
-		return Math.sqrt(min);
-	}
-}

+ 0 - 181
.metadata2/.plugins/org.eclipse.core.resources/.history/29/e0e78f6fadba001711b8bf632416c20d

@@ -1,181 +0,0 @@
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-
-import lejos.nxt.Motor;
-import lejos.nxt.NXTRegulatedMotor;
-import lejos.nxt.SensorPort;
-import lejos.nxt.Sound;
-import lejos.nxt.UltrasonicSensor;
-import lejos.nxt.comm.BTConnection;
-import lejos.nxt.comm.Bluetooth;
-import lejos.robotics.navigation.DifferentialPilot;
-import lejos.robotics.navigation.Pose;
-import lejos.robotics.localization.*;
-
-class Scanner extends Thread {
-	DataOutputStream output;
-	OdometryPoseProvider provider;
-	boolean run;
-	public boolean scann;
-	public int increment = 5;
-	int position = 0;
-	
-	Scanner (DataOutputStream output, OdometryPoseProvider provider) {
-		super();
-		this.output = output;
-		this.provider = provider;
-		run = true;
-		scann = false;
-	}
-	
-	public void stop () {
-		run = false;
-	}
-	
-	public void run() {
-		NXTRegulatedMotor scannerm = Motor.A;
-		UltrasonicSensor sensor = new UltrasonicSensor(SensorPort.S1) ;
-		
-		while (run) {
-			if (scann == false)
-				position = 0;
-			
-			if (position == 90 || position == -90)
-				increment *= -1;
-
-			scannerm.rotateTo(position);
-			scannerm.waitComplete();
-
-			if (scann == false)
-				continue;
-			
-			int distance = sensor.getDistance();
-						
-			Pose pose = provider.getPose();
-			float x = pose.getX();
-			float y = pose.getY();
-			float alpha = pose.getHeading();
-			
-			if (distance != 255) {
-				try {
-					output.write('@');
-					output.write(position);
-					output.writeFloat(alpha);
-					output.writeFloat(x);
-					output.write(distance);
-					output.writeFloat(y);
-					output.flush();
-				} catch (IOException e) {
-				}
-			}
-			
-			position += increment;
-		}
-		
-		scannerm.rotateTo(0);
-		scannerm.waitComplete();
-	}
-}
-
-public class Sonar {
-	
-	private static final byte FORWARD = 0;
-	private static final byte STOP = 1;
-	private static final byte EXIT = 2;
-	private static final byte LEFT = 3;
-	private static final byte RIGHT = 4;
-	private static final byte BACKWARD = 5;
-	
-	public static final byte STOPSCANN = 6;
-	public static final byte STARTSCANN = 7;
-	public static final byte MOVE = 8;
-	public static final byte ROTATE = 9;
-	public static final byte SETPOSE = 10;
-	public static final byte SETSCANANGLE = 11;
-	
-	public static void main(String[] args) throws Exception {
-		
-		BTConnection btc = Bluetooth.waitForConnection();
-		//USBConnection btc = USB.waitForConnection();
-		
-		DataInputStream input = btc.openDataInputStream();
-		DataOutputStream output = btc.openDataOutputStream();
-		
-		DifferentialPilot pilot = new DifferentialPilot(5.6f, 13.8f, Motor.B, Motor.C, false); 
-		OdometryPoseProvider provider = new OdometryPoseProvider(pilot);
-		pilot.setRotateSpeed(5);
-		pilot.setTravelSpeed(20);
-		
-		Scanner scan = new Scanner(output, provider);
-		scan.start();
-		int input_byte;
-		boolean run = true;
-		
-		Sound.twoBeeps();
-		
-		while (run) {
-			if (input.available() <= 0) {
-				Thread.yield();
-				continue;
-			}
-			input_byte = input.readByte();
-
-			System.out.println(input_byte);
-			
-			switch (input_byte) {
-				case FORWARD:
-					pilot.forward();
-					break;
-				case STOP:
-					pilot.stop();
-					break;
-				case EXIT:
-					run = false;
-					break;
-				case LEFT:
-					pilot.rotateLeft();
-					break;
-				case RIGHT:
-					pilot.rotateRight();
-					break;
-				case BACKWARD:
-					pilot.backward();
-					break;
-				case STOPSCANN:
-					scan.scann = false;
-					break;
-				case STARTSCANN:
-					scan.position = 90;
-					scan.increment = -Math.abs(increment);
-					scan.scann = true;
-					break;
-				case MOVE:
-					float d = input.readFloat();
-					pilot.travel(d);
-					break;
-				case ROTATE:
-					float r = input.readFloat();
-					pilot.rotate(r);
-					break;
-				case SETPOSE:
-					float x = input.readFloat();
-					float y = input.readFloat();
-					float a = input.readFloat();
-					System.out.println("x: "+x);
-					System.out.println("y: "+y);
-					System.out.println("a: "+a);
-					provider.setPose(new Pose(x,y,a));
-					break;
-				case SETSCANANGLE:
-					int i = input.readByte();
-					System.out.println("ang: "+i);
-					scan.increment = i;
-					break;
-			}
-		}
-		Sound.beep();
-		scan.stop();
-		scan.join();
-	}
-}

+ 0 - 148
.metadata2/.plugins/org.eclipse.core.resources/.history/2a/2031f4bed0b90017124d9f37712eb7c1

@@ -1,148 +0,0 @@
-import java.awt.Color;
-import java.awt.Graphics;
-import java.util.ArrayList;
-import java.util.concurrent.Semaphore;
-
-import javax.swing.JPanel;
-
-import lejos.geom.Line;
-import lejos.robotics.mapping.LineMap;
-import lejos.robotics.navigation.Pose;
-
-public class ScannerImage extends JPanel {
-	private Pose pose;
-	private LineMap map;
-	private ArrayList<SonarRead> lista_leituras;
-	private Semaphore semaphore;
-
-	class SonarRead {
-		public double distance;
-		public double ang;
-		public double expected;
-
-		SonarRead(double distance, double ang, double expected) {
-			this.ang = ang;
-			this.distance = distance;
-			this.expected = expected;
-		}
-	}
-
-	@Override
-	protected void paintComponent(Graphics g) {
-		int w = this.getWidth() / 2;
-		int h = this.getHeight();
-		int distance = h * 2 / 25;
-		g.setColor(new Color(0f, 0f, 0f, 0.4f));
-		for (int i = 1; i <= 18; i++) {
-			int r = distance * i;
-			g.drawArc(w - r, h - r, 2 * r, 2 * r, 0, 180);
-			g.drawString(new Integer(i * 20).toString(), w - 7, h - r);
-		}
-		g.setColor(new Color(0f, 0f, 0f, 0.5f));
-		for (int i = 1; i < 6; i++) {
-			int lw = (int) (Math.cos(Math.PI / 6.0 * i) * distance * 18);
-			int lh = (int) (Math.sin(Math.PI / 6.0 * i) * distance * 18);
-			g.drawLine(w, h, lw + w, h - lh);
-		}
-		g.setColor(new Color(0f, 0f, 0f, 0.1f));
-		for (int i = 1; i < 12; i++) {
-			int lw = (int) (Math.cos(Math.PI / 12.0 * i) * distance * 18);
-			int lh = (int) (Math.sin(Math.PI / 12.0 * i) * distance * 18);
-			g.drawLine(w, h, lw + w, h - lh);
-		}
-
-		if (semaphore.tryAcquire()) {
-			double d = h * 2.0 / 25.0 / 20.0;
-
-			g.setColor(new Color(0f, 1f, 0f));
-			if (map != null && pose != null) {
-				Line[] lines = map.getLines();
-				for (int i = 0; i < lines.length; i++) {
-					Line l = lines[i];
-					double sin = Math.sin(-Math.toRadians(pose.getHeading() - 180));
-					double cos = Math.cos(-Math.toRadians(pose.getHeading() - 180));
-
-					double x1 = (l.x1 - pose.getX()) * d;
-					double y1 = (l.y1 - pose.getY()) * d;
-
-					double x2 = (l.x2 - pose.getX()) * d;
-					double y2 = (l.y2 - pose.getY()) * d;
-
-					double xx1 = x1 * cos - y1 * sin;
-					double yy1 = y1 * cos + x1 * sin;
-
-					double xx2 = x2 * cos - y2 * sin;
-					double yy2 = y2 * cos + x2 * sin;
-
-					g.drawLine((int) (w + xx1), (int) (h - yy1), (int) (w + xx2), (int) (h - yy2));
-				}
-			}
-
-			drawDots(g, w, h);
-			semaphore.release();
-		}
-	}
-
-	private void drawDots(Graphics g, int w, int h) {
-		int oval_size = 16;
-		int distance = h * 2 / 25;
-		double d = distance / 20.0;
-		double a = -oval_size / 4;
-		double x, y;
-
-		g.setColor(new Color(1f, 0f, 0f));
-		for (SonarRead r : lista_leituras) {
-			x = a + (d * r.distance) * Math.sin(Math.toRadians(r.ang));
-			y = a + (d * r.distance) * Math.cos(Math.toRadians(r.ang));
-			x = w - x;
-			y = h - y;
-			g.setColor(new Color(1f, 0f, 0f));
-			g.fillOval((int) (x - oval_size / 2.0), (int) (y - oval_size / 2.0), oval_size / 2, oval_size / 2);
-
-			x = a + (d * r.expected) * Math.sin(Math.toRadians(r.ang));
-			y = a + (d * r.expected) * Math.cos(Math.toRadians(r.ang));
-			x = w - x;
-			y = h - y;
-			g.setColor(new Color(0f, 0f, 1f));
-			g.fillOval((int) (x - oval_size / 2.0), (int) (y - oval_size / 2.0), oval_size / 2, oval_size / 2);
-		}
-		if (map == null)
-			return;
-	}
-
-	public Pose getPose() {
-		return pose;
-	}
-	
-	public void setPose (Pose p) {
-		pose = p;
-	}
-
-	public void addRead(Pose p, double distance, double ang, double expected) {
-		if (semaphore.tryAcquire()) {
-			if (pose == null
-					|| !(p.getX() == pose.getX() && p.getY() == pose.getY() && p.getHeading() == pose.getHeading())
-					|| lista_leituras.size() >= 180) {
-				pose = new Pose(p.getX(), p.getY(), p.getHeading());
-				lista_leituras.clear();
-			}
-			lista_leituras.add(new SonarRead(distance, ang + 90, expected));
-			semaphore.release();
-		}
-		repaint();
-	}
-
-	public ScannerImage(LineMap map) {
-		this.map = map;
-		semaphore = new Semaphore(1);
-		lista_leituras = new ArrayList<SonarRead>();
-	}
-
-	public void clean() {
-		if (semaphore.tryAcquire()) {
-			lista_leituras.clear();
-			semaphore.release();
-		}
-		repaint();
-	}
-}

+ 0 - 124
.metadata2/.plugins/org.eclipse.core.resources/.history/2a/80ea20eb20bb001711b8bf632416c20d

@@ -1,124 +0,0 @@
-package robots;
-
-import java.util.ArrayList;
-
-import lejos.robotics.localization.OdometryPoseProvider;
-import lejos.robotics.mapping.LineMap;
-import lejos.robotics.navigation.Pose;
-import lejos.robotics.navigation.DifferentialPilot;
-import lejos.nxt.Motor;
-import lejos.util.Delay;
-import lejos.nxt.SensorPort;
-import lejos.nxt.UltrasonicSensor;
-
-public class LCPRobot implements Robot {
-	OdometryPoseProvider provider;
-
-    static DifferentialPilot pilot;
-    static UltrasonicSensor sonar;
-
-    public LCPRobot () {
-        pilot = new DifferentialPilot(5.6f, 11.2f, Motor.B, Motor.A);
-        sonar = new UltrasonicSensor(SensorPort.S1);
-        pilot.setTravelSpeed(10);
-        pilot.setRotateSpeed(40);
-        provider = new OdometryPoseProvider(pilot);
-    }
-
-    @Override
-    public void move(double x) {
-    		pilot.travel(x);
-    }
-
-    @Override
-    public void rotate(double x) { // espera um valor positivo ou negativo entre 0 e 360
-        pilot.rotate(x);
-    }
-
-    @Override
-    public ArrayList<DataPose> scann(int ini, int end, int interval) {
-        ArrayList<DataPose> result = new ArrayList<DataPose>();
-        int val = 0;
-        double ang = 0;
-        double engine_mult = 1;
-        Motor.C.setSpeed(200);
-        Motor.C.rotate(-90*engine_mult); // gira sonar para a posicao 0 grau
-        Motor.C.rotate(-(engine_mult*ini)); // gira ate a posicao inicial passada no parametro ini
-        Motor.C.setSpeed(80);
-        for (int j=0; j <= (engine_mult*end); j+=(engine_mult*interval)){ 
-            Motor.C.rotate(-(5*interval));
-            val = sonar.getDistance();
-            //ang = (j/(5*end)) * 180.0;
-            ang = ini + interval;
-            
-            DataPose data = new DataPose();
-            data.setDistance(val);
-            data.setSensorAngle(ang);
-            data.setPose(provider.getPose());
-            result.add(data);
-        }
-        Motor.C.setSpeed(200);
-        Motor.C.rotate(460);
-        return result;
-    }
-   
-    @Override 
-    public String toString() {
-        return "LCP Robot";
-    }
-
-	@Override
-	public void moveForward() {
-		pilot.forward();
-		
-	}
-
-	@Override
-	public void moveLeft() {
-		pilot.rotateLeft();
-	}
-
-	@Override
-	public void moveRight() {
-		pilot.rotateRight();
-	}
-
-	@Override
-	public void moveBackward() {
-		pilot.backward();
-		
-	}
-
-	@Override
-	public void stop() {
-		pilot.stop();
-		
-	}
-
-	@Override
-	public void scann(RobotReturn r) {
-		// TODO Auto-generated method stub
-		
-	}
-
-	@Override
-	public void stopScann() {
-		// TODO Auto-generated method stub
-		
-	}
-
-	@Override
-	public boolean connect() {
-		return true;
-	}
-
-	@Override
-	public void disconnect() {		
-	}
-
-	@Override
-	public void setPose(float x, float y, float a) {
-		provider.setPose(new Pose(x, y, a));
-	}
-
-}

+ 0 - 5
.metadata2/.plugins/org.eclipse.core.resources/.history/2a/e02068fa1db80017145c9b6064c27648

@@ -1,5 +0,0 @@
-package robots;
-
-public interface RobotReturn {
-
-}

+ 0 - 323
.metadata2/.plugins/org.eclipse.core.resources/.history/2c/50b57accaaba001711b8bf632416c20d

@@ -1,323 +0,0 @@
-package robots;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.concurrent.Semaphore;
-
-import lejos.pc.comm.NXTComm;
-import lejos.pc.comm.NXTCommException;
-import lejos.pc.comm.NXTCommFactory;
-import lejos.pc.comm.NXTInfo;
-import lejos.robotics.navigation.Pose;
-
-public class BluetoothRobot implements Robot {
-	private String name;
-	private NXTComm nxtComm;
-	private RobotReturn rr;
-	private Semaphore readm;
-	private Semaphore sendm;
-	
-	private int lastcmd = -1;
-	
-	public static final byte FORWARD = 0;
-	public static final byte STOP = 1;
-	public static final byte EXIT = 2;
-	public static final byte LEFT = 3;
-	public static final byte RIGHT = 4;
-	public static final byte BACKWARD = 5;
-	
-	public static final byte STOPSCANN = 6;
-	public static final byte STARTSCANN = 7;
-	public static final byte MOVE = 8;
-	public static final byte ROTATE = 9;
-	public static final byte SETPOSE = 10;
-	public static final byte SETSCANANGLE = 11;
-	
-	public static final byte TYPE_INT = 1;
-	public static final byte TYPE_CMD = 2;
-	public static final byte TYPE_POSE = 3;
-	public static final byte TYPE_FLOAT = 4;
-	
-	private static final int scannangle = 5;
-
-	private DataOutputStream output;
-	private DataInputStream input;
-	private Receiver receivethread;
-	private Sender sendthread;
-	
-	private ArrayList<DataPose> reads = null;
-	private ArrayList<SendData> tosend;
-		
-	private class Receiver extends Thread {
-		public boolean run = true;
-		@Override
-		public void run() {
-			int bytes_valiable = -1;
-			
-			while(run) {
-				try {
-					bytes_valiable = input.available();
-				} catch (IOException e1) {
-					// TODO Auto-generated catch block
-					e1.printStackTrace();
-				}
-				if (bytes_valiable >= 0) {
-					try {
-						if (input.readByte() != '@') continue;
-						int angle = input.readByte();
-						float alpha = input.readFloat();
-						float x = input.readFloat();
-						int distance = input.readByte();
-						float y = input.readFloat();
-						DataPose d = new DataPose();
-						d.setDistance(distance);
-						d.setSensorAngle(angle);
-						d.setPose(new Pose(y, -x, alpha));
-						if (rr != null)
-							rr.robotData(d);	
-						
-					} catch (IOException e1) {
-						continue;
-					}
-				}
-			}
-		}
-	}
-
-	private class Sender extends Thread {
-		public boolean run = true;
-		@Override
-		public void run() {		
-			while(run) {
-				SendData value = null;
-				if (sendm.tryAcquire()) {
-					if (tosend.size() > 0) {
-						value = tosend.get(0);
-						tosend.remove(0);
-					}
-					sendm.release();
-				}
-				if (value != null)
-					value.send(output);
-				else
-					try {
-						Thread.sleep(100);
-					} catch (InterruptedException e) {
-
-					}
-			}
-		}
-	}
-	
-	private class SendData {
-		float f;
-		int i;
-		int cmd;
-		Pose p;
-		int type;
-		SendData(int cmd) {
-			this.cmd = cmd;
-			this.type = TYPE_CMD;
-		}
-		SendData(int cmd, int i) {
-			this.cmd = cmd;
-			this.i = i;
-			this.type = TYPE_INT;
-		}
-		SendData(int cmd, float f) {
-			this.cmd = cmd;
-			this.f = f;
-			this.type = TYPE_FLOAT;
-		}
-		SendData(int cmd, Pose p) {
-			this.cmd = cmd;
-			this.p = p;
-			this.type = TYPE_POSE;
-		}
-		public boolean send(DataOutputStream output) {
-			try {
-				switch (type) {
-				case TYPE_CMD:
-					output.write(cmd);
-					break;
-				case TYPE_INT:
-					output.write(cmd);
-					output.write(i);
-					break;
-				case TYPE_FLOAT:
-					output.write(cmd);
-					output.writeFloat(f);
-					break;
-				case TYPE_POSE:
-					output.write(cmd);
-					output.writeFloat(p.getX());
-					output.writeFloat(p.getY());
-					output.writeFloat(p.getHeading());
-					break;
-				default:
-					return false;
-				}
-				output.flush();
-			} catch (IOException e) {
-				return false;
-			}
-			return true;
-		}
-	}
-	
-	public BluetoothRobot (String name) {
-		
-		readm = new Semaphore(1);
-		
-		sendm = new Semaphore(1);
-		tosend = new ArrayList<SendData>();
-		
-		receivethread = new Receiver();
-		sendthread = new Sender();
-		
-		this.name = name;
-	}
-	
-	public void send (SendData sd) {
-		if (sendm.tryAcquire()) {
-			tosend.add(sd);
-			sendm.release();
-		}
-	}
-
-	@Override
-	public void moveForward() {
-		if (lastcmd == FORWARD) return;
-		send(new SendData(FORWARD));
-		lastcmd = FORWARD;
-	}
-
-	@Override
-	public void moveLeft() {
-		if (lastcmd == LEFT) return;
-		send(new SendData(LEFT));
-		lastcmd = LEFT;
-	}
-
-	@Override
-	public void moveRight() {
-		if (lastcmd == RIGHT) return;
-		send(new SendData(RIGHT));
-		lastcmd = RIGHT;
-	}
-
-	@Override
-	public void moveBackward() {
-		if (lastcmd == BACKWARD) return;
-		send(new SendData(BACKWARD));
-		lastcmd = BACKWARD;
-	}
-
-	@Override
-	public boolean connect () {
-		try {
-			nxtComm = NXTCommFactory.createNXTComm(NXTCommFactory.BLUETOOTH);
-			NXTInfo[] nxtInfo = nxtComm.search(name); //find brick with NXT_ID by doing a Bluetooth inquiry
-			if (nxtInfo.length == 0) { // failed to find a brick with the ID
-				System.err.println("NO NXT found");
-				return false;
-			}
-			if (!nxtComm.open(nxtInfo[0])) { // the brick was found but a connection could not be establish
-				System.err.println("Failed to open NXT");
-				return false;
-			}
-			
-			input = new DataInputStream(nxtComm.getInputStream()); // open data input stream 
-			output = new DataOutputStream(nxtComm.getOutputStream()); // open data output stream
-			send(new SendData(SETSCANANGLE, scannangle)); // vai scanear em 5 em 5 graus
-		} catch (NXTCommException e) {
-			return false;
-		}
-		
-		receivethread.start();
-		sendthread.start();
-		
-		return true;	
-	}
-
-	@Override
-	public void stop() {
-		send(new SendData(STOP));
-		lastcmd = -1;
-	}
-
-
-	@Override
-	public void move(double x) {
-		send(new SendData(MOVE, (float)x));
-	}
-
-	@Override
-	public void rotate(double x) {
-		send(new SendData(ROTATE, (float)x));
-	}
-
-	@Override
-	public ArrayList<DataPose> scann(int ini, int end, int interval) {
-		int readsn = Math.abs(ini-end)/interval;
-		send(new SendData(SETSCANANGLE, interval));
-		ArrayList<DataPose> tmp;
-		reads = new ArrayList<DataPose>();
-		scann(null);
-		while(true) {
-			readm.tryAcquire();
-			if (reads.size() >= readsn) break;
-			try {
-				Thread.sleep(50);
-			} catch (InterruptedException e) {
-			}
-		}
-		readm.release();
-		stopScann();
-		send(new SendData(SETSCANANGLE, scannangle));
-		tmp = reads;
-		reads = null;
-		return tmp;
-	}
-
-	@Override
-	public void scann(RobotReturn r) {
-		rr = r;
-		send(new SendData(STARTSCANN));
-	}
-
-	@Override
-	public void stopScann() {
-		send(new SendData(STOPSCANN));
-	}
-
-	@Override
-	public void disconnect() {
-		send(new SendData(EXIT));
-		if (receivethread == null) return;
-		receivethread.run = false;
-		try {
-			receivethread.join();
-		} catch (InterruptedException e1) {
-			System.out.println("Nao foi possivel finalizar as threads...");
-		}
-		try {
-			nxtComm.close();
-		} catch (IOException e) {
-		}
-	}
-
-	@Override
-	public void setPose(float x, float y, float a) {
-		send(new SendData(SETPOSE, new Pose(y, -x, a)));
-	}
-	
-	
-	@Override
-	public String toString() {
-		return "Bluetooth Mestre/Escravo";
-	}
-
-}

+ 0 - 173
.metadata2/.plugins/org.eclipse.core.resources/.history/2d/50598ff190ba001711b8bf632416c20d

@@ -1,173 +0,0 @@
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-
-import lejos.nxt.Motor;
-import lejos.nxt.NXTRegulatedMotor;
-import lejos.nxt.SensorPort;
-import lejos.nxt.Sound;
-import lejos.nxt.UltrasonicSensor;
-import lejos.nxt.comm.BTConnection;
-import lejos.nxt.comm.Bluetooth;
-import lejos.robotics.navigation.DifferentialPilot;
-import lejos.robotics.navigation.Pose;
-import lejos.robotics.localization.*;
-
-class Scanner extends Thread {
-	DataOutputStream output;
-	OdometryPoseProvider provider;
-	boolean run;
-	public boolean scann;
-	public int increment = 5;
-	
-	Scanner (DataOutputStream output, OdometryPoseProvider provider) {
-		super();
-		this.output = output;
-		this.provider = provider;
-		run = true;
-		scann = false;
-	}
-	
-	public void stop () {
-		run = false;
-	}
-	
-	public void run() {
-		NXTRegulatedMotor scannerm = Motor.A;
-		UltrasonicSensor sensor = new UltrasonicSensor(SensorPort.S1) ;
-		int position = 0;
-		
-		while (run) {
-			if (scann == false) {
-				scannerm.rotateTo(0);
-				continue;
-			}
-			if (position == 90 || position == -90)
-				increment *= -1;
-
-			scannerm.rotateTo(position);
-			scannerm.waitComplete();
-			
-			int distance = sensor.getDistance();
-						
-			Pose pose = provider.getPose();
-			float x = pose.getX();
-			float y = pose.getY();
-			float alpha = pose.getHeading();
-			
-			if (distance != 255) {
-				try {
-					output.write('@');
-					output.write(position);
-					output.writeFloat(alpha);
-					output.writeFloat(x);
-					output.write(distance);
-					output.writeFloat(y);
-					output.flush();
-				} catch (IOException e) {
-				}
-			}
-			
-			position += increment;
-		}
-		
-		scannerm.rotateTo(0);
-		scannerm.waitComplete();
-	}
-}
-
-public class Sonar {
-	
-	private static final byte FORWARD = 0;
-	private static final byte STOP = 1;
-	private static final byte EXIT = 2;
-	private static final byte LEFT = 3;
-	private static final byte RIGHT = 4;
-	private static final byte BACKWARD = 5;
-	
-	public static final byte STOPSCANN = 6;
-	public static final byte STARTSCANN = 7;
-	public static final byte MOVE = 8;
-	public static final byte ROTATE = 9;
-	public static final byte SETPOSE = 10;
-	public static final byte SETSCANANGLE = 11;
-	
-	public static void main(String[] args) throws Exception {
-		
-		BTConnection btc = Bluetooth.waitForConnection();
-		//USBConnection btc = USB.waitForConnection();
-		
-		DataInputStream input = btc.openDataInputStream();
-		DataOutputStream output = btc.openDataOutputStream();
-		
-		DifferentialPilot pilot = new DifferentialPilot(5.6f, 13.8f, Motor.B, Motor.C, false); 
-		OdometryPoseProvider provider = new OdometryPoseProvider(pilot);
-		pilot.setRotateSpeed(5);
-		pilot.setTravelSpeed(20);
-		
-		Scanner scan = new Scanner(output, provider);
-		scan.start();
-		int input_byte;
-		boolean run = true;
-		
-		Sound.twoBeeps();
-		
-		while (run) {
-			if (input.available() <= 0) {
-				Thread.yield();
-				continue;
-			}
-			input_byte = input.readByte();
-
-			System.out.println(input_byte);
-			
-			switch (input_byte) {
-				case FORWARD:
-					pilot.forward();
-					break;
-				case STOP:
-					pilot.stop();
-					break;
-				case EXIT:
-					run = false;
-					break;
-				case LEFT:
-					pilot.rotateLeft();
-					break;
-				case RIGHT:
-					pilot.rotateRight();
-					break;
-				case BACKWARD:
-					pilot.backward();
-					break;
-				case STOPSCANN:
-					scan.scann = false;
-					break;
-				case STARTSCANN:
-					scan.scann = true;
-					break;
-				case MOVE:
-					float d = input.readFloat();
-					pilot.travel(d);
-					break;
-				case ROTATE:
-					float r = input.readFloat();
-					pilot.rotate(r);
-					break;
-				case SETPOSE:
-					float x = input.readFloat();
-					float y = input.readFloat();
-					float a = input.readFloat();
-					provider.setPose(new Pose(x,y,a));
-					break;
-				case SETSCANANGLE:
-					int i = input.readByte();
-					scan.increment = i;
-					break;
-			}
-		}
-		Sound.beep();
-		scan.stop();
-		scan.join();
-	}
-}

+ 0 - 338
.metadata2/.plugins/org.eclipse.core.resources/.history/2e/3044435021bb001711b8bf632416c20d

@@ -1,338 +0,0 @@
-import java.awt.BorderLayout;
-import java.awt.event.KeyEvent;
-import java.awt.event.KeyListener;
-import java.awt.event.WindowEvent;
-import java.awt.event.WindowListener;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.util.ArrayList;
-
-import javax.swing.JFrame;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-import javax.swing.JSplitPane;
-import javax.swing.SwingUtilities;
-
-import config.Map;
-import config.Models;
-import lejos.robotics.mapping.LineMap;
-import lejos.robotics.navigation.Pose;
-import robots.BluetoothRobot;
-import robots.DataPose;
-import robots.LCPRobot;
-import robots.Robot;
-import robots.RobotReturn;
-import robots.VirtualRobot;
-
-public class MainProgram extends JPanel implements KeyListener, WindowListener, RobotReturn {
-
-	private MapImage imap;
-	private Robot robot;
-	private ScannerImage scanner;
-	private Models smodel;
-
-	public static final byte FORWARD = 0;
-	public static final byte STOP = 1;
-	public static final byte EXIT = 2;
-	public static final byte LEFT = 3;
-	public static final byte RIGHT = 4;
-	public static final byte BACKWARD = 5;
-
-	public MainProgram(LineMap map, Robot robot) {
-		this.robot = robot;
-		JFrame frame = new JFrame("Mapa MAC0318");
-
-		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-		frame.setLayout(new BorderLayout());
-		imap = new MapImage(map);
-		scanner = new ScannerImage(map);
-		smodel = new Models(map);
-		// frame.add(this.map);
-		frame.setSize(800, 800);
-		frame.setVisible(true);
-
-		frame.setFocusable(true);
-		frame.requestFocusInWindow();
-		frame.addKeyListener(this);
-		frame.addWindowListener(this);
-
-		JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, scanner, imap);
-		splitPane.setOneTouchExpandable(true);
-		splitPane.setDividerLocation((int) (frame.getHeight() / 2));
-		frame.add(splitPane);
-
-		showHelp();
-	}
-
-	private void showHelp() {
-		String text = "1,2,3 - Change global map view\n";
-		text += "s - Set Pose.\n";
-		text += "l - Show global map trace.\n";
-		text += "c - Clean maps.\n";
-		text += "m - Enter robot movement.\n";
-		text += "r - Enter robo rotation.\n";
-		text += "a - Colect sonar data.\n";
-		text += "z - Make sonar continuous scanner.\n";
-		text += "i - Stop continuous scanner.\n";
-		text += "g - Save global map image.\n";
-		text += "f - Save scanner image.\n";
-		text += "<arrows> - Move robot.\n";
-		text += "h - help.\n";
-		JOptionPane.showMessageDialog(null, text, "HELP", JOptionPane.PLAIN_MESSAGE);
-	}
-
-	public void addPoint(Pose p) {
-		imap.addPoint(p);
-	}
-
-	@Override
-	public void keyPressed(KeyEvent e) {
-
-		char input = e.getKeyChar();
-		switch (input) {
-		case '1':
-			imap.setVisual(0);
-			break;
-		case '2':
-			imap.setVisual(1);
-			break;
-		case '3':
-			imap.setVisual(2);
-			break;
-		case 'l':
-			imap.showLine();
-			break;
-		case 'g':
-			imap.save();
-			break;
-		case 'f':
-			scanner.save();
-			break;
-		case 'c':
-			imap.clean();
-			scanner.clean();
-			break;
-		case 's':
-			setRobotPose();
-			break;
-		case 'm':
-			moveRobot();
-			break;
-		case 'r':
-			rotateRobot();
-			break;
-		case 'a':
-			colectSonar();
-			break;
-		case 'z':
-			robot.scann(this);
-			break;
-		case 'i':
-			robot.stopScann();
-			break;
-		case 'h':
-			showHelp();
-			break;
-		default:
-			break;
-		}
-
-		if (robot == null)
-			return;
-
-		switch (e.getKeyCode()) {
-		case KeyEvent.VK_UP:
-			robot.moveForward();
-			scanner.clean();
-			break;
-		case KeyEvent.VK_DOWN:
-			robot.moveBackward();
-			scanner.clean();
-			break;
-		case KeyEvent.VK_LEFT:
-			robot.moveLeft();
-			scanner.clean();
-			break;
-		case KeyEvent.VK_RIGHT:
-			robot.moveRight();
-			scanner.clean();
-			break;
-		}
-	}
-
-	private void colectSonar() {
-		int interval;
-		try {
-			String rs = JOptionPane.showInputDialog("Interval (degress):");
-			interval = Integer.parseInt(rs);
-		} catch (Exception e) {
-			return;
-		}
-		ArrayList<DataPose> data = robot.scann(-90, 90, interval);
-		if (data == null) return;
-
-		Integer name = new Integer((int) (Math.random() * 1000000));
-		String rand_name = name.toString() + ".txt";
-		FileWriter fileWriter;
-		try {
-			fileWriter = new FileWriter(rand_name);
-		} catch (IOException e) {
-			return;
-		}
-
-		PrintWriter printWriter = new PrintWriter(fileWriter);
-		printWriter.print("x,y,headinng,sonar_ang,read,expected\n");
-		for (DataPose d : data) {
-			robotData(d);
-
-			double expected = smodel.expectedSonarRead(d.getPose(), d.getSensorAngle()+90);
-			printWriter.print(d.getPose().getX() + ",");
-			printWriter.print(d.getPose().getY() + ",");
-			printWriter.print(d.getPose().getHeading() + ",");
-			printWriter.print(d.getSensorAngle() + ",");
-			printWriter.print(d.getDistance() + ",");
-			printWriter.print(expected + "\n");
-		}
-
-		printWriter.close();
-		JOptionPane.showMessageDialog(null, "Reads saved in " + rand_name);
-	}
-
-	private void rotateRobot() {
-		try {
-			String rs = JOptionPane.showInputDialog("Enter rotation (degress-clockwise):");
-			double r = Double.parseDouble(rs);
-			robot.rotate(r);
-			scanner.clean();
-		} catch (Exception e) {
-		}
-	}
-
-	private void moveRobot() {
-		try {
-			String rs = JOptionPane.showInputDialog("Enter distance (cm):");
-			double r = Double.parseDouble(rs);
-			robot.move(r);
-			scanner.clean();
-		} catch (Exception e) {
-		}
-	}
-
-	private void setRobotPose() {
-		try {
-			String xs = JOptionPane.showInputDialog("Enter x (cm):");
-			if (xs.length() == 0)
-				return;
-			String ys = JOptionPane.showInputDialog("Enter y (cm):");
-			if (ys.length() == 0)
-				return;
-			String as = JOptionPane.showInputDialog("Enter heading (degress):");
-			if (as.length() == 0)
-				return;
-
-			float x = Float.parseFloat(xs);
-			float y = Float.parseFloat(ys);
-			float a = Float.parseFloat(as);
-			robot.setPose(x, y, a);
-			scanner.setPose(new Pose(x, y, a));
-			scanner.clean();
-		} catch (Exception e) {
-		}
-	}
-
-	@Override
-	public void keyReleased(KeyEvent arg0) {
-		if (robot == null)
-			return;
-		robot.stop();
-	}
-
-	@Override
-	public void keyTyped(KeyEvent arg0) {
-	}
-
-	@Override
-	public void windowOpened(WindowEvent e) {
-
-	}
-
-	@Override
-	public void windowClosing(WindowEvent e) {
-		System.err.println("Fechando...");
-		if (robot == null)
-			return;
-		robot.disconnect();
-
-	}
-
-	@Override
-	public void windowClosed(WindowEvent e) {
-	}
-
-	@Override
-	public void windowIconified(WindowEvent e) {
-
-	}
-
-	@Override
-	public void windowDeiconified(WindowEvent e) {
-
-	}
-
-	@Override
-	public void windowActivated(WindowEvent e) {
-
-	}
-
-	@Override
-	public void windowDeactivated(WindowEvent e) {
-	}
-
-	@Override
-	public void robotData(DataPose data) {
-		// posicao do robo
-		Pose p = data.getPose();
-		System.out.println(p);
-		imap.addPoint(p);
-		scanner.setPose(p);
-		if (data.getDistance() == 255) {
-			return;
-		}
-
-		// ponto do ultrasonico
-		double sensor_ang = Math.toRadians(data.getSensorAngle() + p.getHeading()-90);
-		double dx = Math.cos(sensor_ang) * data.getDistance();
-		double dy = Math.sin(sensor_ang) * data.getDistance();
-		double expected = smodel.expectedSonarRead(p, data.getSensorAngle()-90);
-		imap.addRead(p.getX() + dx, p.getY() + dy);
-		scanner.addRead(p, data.getDistance(), data.getSensorAngle()-90, expected);
-	}
-
-	public static void main(String[] args) {
-
-		LineMap map = Map.makeMap();
-		Robot robotv = new VirtualRobot(map);
-		Robot robotbt = new BluetoothRobot(null);
-		Robot robotlcp = new LCPRobot();
-
-		Object[] possibleValues = { robotlcp, robotv, robotbt };
-		Object robot = JOptionPane.showInputDialog(null, "Choose one", "Input", JOptionPane.PLAIN_MESSAGE, null,
-				possibleValues, possibleValues[0]);
-		
-		boolean result = false;
-		if (robot != null)
-			result = ((Robot) robot).connect();
-
-		if (result == false) {
-			JOptionPane.showMessageDialog(null, "Não foi possível conectar ao robô");
-			System.exit(ERROR);
-		}
-
-		SwingUtilities.invokeLater(new Runnable() {
-			public void run() {
-				new MainProgram(map, (Robot) robot);
-			}
-		});
-	}
-}

+ 0 - 24
.metadata2/.plugins/org.eclipse.core.resources/.history/2e/80965eacc7b90017124d9f37712eb7c1

@@ -1,24 +0,0 @@
-package config;
-
-import lejos.geom.Line;
-import lejos.robotics.mapping.LineMap;
-import lejos.robotics.navigation.Pose;
-
-public class Models {
-	private LineMap map;
-
-	public Models(LineMap map) {
-		this.map = map;
-	}
-
-	public double expectedSonarRead(Pose p, double angle) {
-		Pose tmppose = new Pose(p.getX(), p.getY(), p.getHeading());
-		float mindist = Float.POSITIVE_INFINITY;
-		for (int angulo=-cone/2; angulo <= cone/2; angulo++) {
-			tmppose.setHeading((float) (p.getHeading() - angulo + angle));
-			float dist = map.range(tmppose);
-			if (dist > 0 && dist < mindist) mindist = dist;
-		} 
-		return mindist;
-	}
-}

+ 0 - 272
.metadata2/.plugins/org.eclipse.core.resources/.history/3/80234ffba4ba001711b8bf632416c20d

@@ -1,272 +0,0 @@
-package robots;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.concurrent.Semaphore;
-
-import lejos.pc.comm.NXTComm;
-import lejos.pc.comm.NXTCommException;
-import lejos.pc.comm.NXTCommFactory;
-import lejos.pc.comm.NXTInfo;
-import lejos.robotics.navigation.Pose;
-
-public class BluetoothRobot implements Robot {
-	private String name;
-	private NXTComm nxtComm;
-	private RobotReturn rr;
-	private Semaphore semaphore;
-	private Semaphore sendm;
-	private int creads = 1;
-	
-	public static final byte FORWARD = 0;
-	public static final byte STOP = 1;
-	public static final byte EXIT = 2;
-	public static final byte LEFT = 3;
-	public static final byte RIGHT = 4;
-	public static final byte BACKWARD = 5;
-	
-	public static final byte STOPSCANN = 6;
-	public static final byte STARTSCANN = 7;
-	public static final byte MOVE = 8;
-	public static final byte ROTATE = 9;
-	public static final byte SETPOSE = 10;
-	public static final byte SETSCANANGLE = 11;
-	
-	public static final byte TYPE_INT = 1;
-	public static final byte TYPE_CMD = 2;
-	public static final byte TYPE_POSE = 3;
-	public static final byte TYPE_FLOAT = 4;
-	
-	private static final int scannangle = 5;
-
-	private DataOutputStream output;
-	private DataInputStream input;
-	private Receiver receivethread;
-	
-	private ArrayList<DataPose> reads;
-		
-	private class Receiver extends Thread {
-		public boolean run = true;
-		@Override
-		public void run() {
-			int bytes_valiable = -1;
-			
-			while(run) {
-				try {
-					bytes_valiable = input.available();
-				} catch (IOException e1) {
-					// TODO Auto-generated catch block
-					e1.printStackTrace();
-				}
-				if (bytes_valiable >= 0) {
-					try {
-						if (input.readByte() != '@') continue;
-						int angle = input.readByte();
-						float alpha = input.readFloat();
-						float x = input.readFloat();
-						int distance = input.readByte();
-						float y = input.readFloat();
-						DataPose d = new DataPose();
-						d.setDistance(distance);
-						d.setSensorAngle(angle);
-						d.setPose(new Pose(y, -x, alpha));
-						if (rr != null)
-							rr.robotData(d);	
-						
-					} catch (IOException e1) {
-						continue;
-					}
-				}
-			}
-		}
-	}
-
-	private class Sender extends Thread {
-		@Override
-		public void run() {
-			
-		}
-	}
-	
-	private class SendData {
-		float f;
-		int i;
-		int cmd;
-		Pose p;
-		int type;
-		SendData(int cmd) {
-			this.cmd = cmd;
-			this.type = TYPE_CMD;
-		}
-		SendData(int cmd, int i) {
-			this.cmd = cmd;
-			this.i = i;
-			this.type = TYPE_INT;
-		}
-		SendData(int cmd, float f) {
-			this.cmd = cmd;
-			this.f = f;
-			this.type = TYPE_FLOAT;
-		}
-		SendData(int cmd, Pose p) {
-			this.cmd = cmd;
-			this.p = p;
-			this.type = TYPE_POSE;
-		}
-		public boolean send(DataOutputStream output) {
-			try {
-				switch (type) {
-				case TYPE_CMD:
-					output.write(cmd);
-					break;
-				case TYPE_INT:
-					output.write(cmd);
-					output.write(i);
-					break;
-				case TYPE_FLOAT:
-					output.write(cmd);
-					output.writeFloat(f);
-					break;
-				case TYPE_POSE:
-					output.write(cmd);
-					output.writeFloat(p.getX());
-					output.writeFloat(p.getY());
-					output.writeFloat(p.getHeading());
-					break;
-				default:
-					return false;
-				}
-			} catch (IOException e) {
-				return false;
-			}
-			return true;
-		}
-	}
-	
-	public BluetoothRobot (String name) {
-		semaphore = new Semaphore(1);
-		sendm = new Semaphore(1);
-		receivethread = new Receiver();
-		sendthread = new Sender();
-		this.name = name;
-	}
-
-	@Override
-	public void moveForward() {
-		send(FORWARD);
-	}
-
-	@Override
-	public void moveLeft() {
-		send(LEFT);
-	}
-
-	@Override
-	public void moveRight() {
-		send(RIGHT);
-	}
-
-	@Override
-	public void moveBackward() {
-		send(BACKWARD);
-	}
-
-	@Override
-	public boolean connect () {
-		try {
-			nxtComm = NXTCommFactory.createNXTComm(NXTCommFactory.BLUETOOTH);
-			NXTInfo[] nxtInfo = nxtComm.search(name); //find brick with NXT_ID by doing a Bluetooth inquiry
-			if (nxtInfo.length == 0) { // failed to find a brick with the ID
-				System.err.println("NO NXT found");
-				return false;
-			}
-			if (!nxtComm.open(nxtInfo[0])) { // the brick was found but a connection could not be establish
-				System.err.println("Failed to open NXT");
-				return false;
-			}
-			
-			input = new DataInputStream(nxtComm.getInputStream()); // open data input stream 
-			output = new DataOutputStream(nxtComm.getOutputStream()); // open data output stream
-			send(SETSCANANGLE, scannangle); // vai scanear em 5 em 5 graus
-		} catch (NXTCommException e) {
-			return false;
-		}
-		
-		receivethread.start();
-		
-		return true;	
-	}
-
-	@Override
-	public void stop() {
-		send(STOP);
-	}
-
-
-	@Override
-	public void move(double x) {
-		send(MOVE, (float)x);
-	}
-
-	@Override
-	public void rotate(double x) {
-		send(ROTATE, (float)x);
-	}
-
-	@Override
-	public ArrayList<DataPose> scann(int ini, int end, int interval) {
-//		send(SETSCANANGLE, interval);
-//		creads = 180/interval;
-//		reads = new ArrayList<DataPose>();
-//		scann(null);
-//		
-//		while(reads.size() <= creads) { };
-//		
-//		stopScann();
-//		creads = -1;
-		return null;
-	}
-
-	@Override
-	public void scann(RobotReturn r) {
-		rr = r;
-		send(STARTSCANN);
-	}
-
-	@Override
-	public void stopScann() {
-		send(STOPSCANN);
-	}
-
-	@Override
-	public void disconnect() {
-		send(EXIT);
-		if (receivethread == null) return;
-		receivethread.run = false;
-		try {
-			receivethread.join();
-		} catch (InterruptedException e1) {
-			System.out.println("Nao foi possivel finalizar as threads...");
-		}
-		try {
-			nxtComm.close();
-		} catch (IOException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-	}
-
-	@Override
-	public void setPose(float x, float y, float a) {
-		send(new Pose(y, -x, a));
-	}
-	
-	
-	@Override
-	public String toString() {
-		return "Bluetooth Mestre/Escravo";
-	}
-
-}

+ 0 - 120
.metadata2/.plugins/org.eclipse.core.resources/.history/30/0030ab1defb000171877feeee34c61ac

@@ -1,120 +0,0 @@
-import java.awt.BorderLayout;
-import java.awt.event.KeyEvent;
-import java.awt.event.KeyListener;
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-
-import javax.swing.JFrame;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-
-import lejos.pc.comm.NXTComm;
-import lejos.pc.comm.NXTCommException;
-import lejos.pc.comm.NXTCommFactory;
-import lejos.pc.comm.NXTInfo;
-
-public class Map extends JPanel {
-	private final class KeyboardEvent implements KeyListener {
-		public void keyTyped(KeyEvent e) {
-		}
-
-		public void keyReleased(KeyEvent e) {
-		}
-
-		public void keyPressed(KeyEvent e) {
-			char input = e.getKeyChar();
-			if (input == '1') map.setVisual(0);
-			else if (input == '2') map.setVisual(1);
-			else if (input == '3') map.setVisual(2);
-			else if (input == 'l') map.showLine();
-			else if (input == 's') map.save();
-
-			System.out.println(e.getKeyCode());
-		    switch(e.getKeyCode()) { 
-		        case KeyEvent.VK_UP:
-		        		sendthread.send(SendThread.FORWARD);
-		            break;
-		        case KeyEvent.VK_DOWN:
-		        		sendthread.send(SendThread.BACKWARD);
-		            break;
-		        case KeyEvent.VK_LEFT:
-		        		sendthread.send(SendThread.LEFT);
-		            break;
-		        case KeyEvent.VK_RIGHT :
-		        		sendthread.send(SendThread.RIGHT);
-		            break;
-		    }
-		}
-	}
-
-	private ImageMap map;
-	private SendThread sendthread;
-	private DataOutputStream output;
-	
-	public Map (DataInputStream input, DataOutputStream output) throws IOException {
-		JFrame frame = new JFrame("Mapa MAC0318");
-		KeyboardEvent event = new KeyboardEvent();
-		output = this.output;
-		sendthread = new SendThread(output);
-		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-        frame.setLayout(new BorderLayout());
-        this.map = new ImageMap();
-		frame.add(this.map);
-		frame.setSize(800, 800);
-		frame.setVisible(true);
-		
-		frame.setFocusable(true);
-		frame.requestFocusInWindow();
-		
-		frame.addKeyListener(event);
-		String text = "1,2,3 - Change view mode.\n";
-		text += "s - Save image.\n";
-		text += "l - Show trace.\n";
-		JOptionPane.showMessageDialog(null, text);
-		
-		int bytes_valiable = -1;
-		
-		while(true) {
-			try {
-				bytes_valiable = input.available();
-			} catch (IOException e1) {
-				// TODO Auto-generated catch block
-				e1.printStackTrace();
-			}
-			if (bytes_valiable >= 0) {
-				if (input.readByte() != '@') continue;
-				int angle = input.readByte();
-				float x = input.readFloat();
-				int distance = input.readByte();
-				float y = input.readFloat();
-				System.out.println(x+" "+y);
-			}
-		}
-	}
-	
-    public void addPoint(Point3D p) {
-    		map.addPoint(p);
-	}
-
-	public static void main(String[] args) throws NXTCommException, IOException {
-		NXTComm nxtComm = NXTCommFactory.createNXTComm(NXTCommFactory.BLUETOOTH); 
-		NXTInfo[] nxtInfo = nxtComm.search("NXT8"); //find brick with NXT_ID by doing a Bluetooth inquiry
-		if (nxtInfo.length == 0) { // failed to find a brick with the ID
-			System.err.println("NO NXT found");
-			System.exit(1);
-		}
-		if (!nxtComm.open(nxtInfo[0])) { // the brick was found but a connection could not be establish
-			System.err.println("Failed to open NXT");
-			System.exit(1);
-		}
-		
-		DataInputStream input = new DataInputStream(nxtComm.getInputStream()); // open data input stream 
-		DataOutputStream output = new DataOutputStream(nxtComm.getOutputStream()); // open data output stream
-		
-		Map map = new Map(input, output);
-		
-		Map map = new Map(null, null);
-
-	}
-}

+ 0 - 16
.metadata2/.plugins/org.eclipse.core.resources/.history/30/2030788317b80017145c9b6064c27648

@@ -1,16 +0,0 @@
-
-public class Pose {
-	public double x, y, z;
-	
-	public Pose(double x, double y, double alpha) {
-		this.x = x;
-		this.y = y;
-		this.z = alpha; // em radianos
-	}
-	
-	public Pose() {
-		this.x = (int )(Math.random() * 100 - 50);
-		this.y = (int )(Math.random() * 100 - 50);
-		this.z = (int )(Math.random() * Math.PI * 2.0);
-	}
-}

+ 0 - 150
.metadata2/.plugins/org.eclipse.core.resources/.history/30/50641629d7b90017124d9f37712eb7c1

@@ -1,150 +0,0 @@
-package robots;
-
-import java.util.ArrayList;
-
-import lejos.robotics.mapping.LineMap;
-import lejos.robotics.navigation.Pose;
-
-public class VirtualRobot implements Robot {
-	private Pose pose;
-	private Simulate simthread;
-	private RobotReturn rr;
-	private LineMap map;
-
-	private class Simulate extends Thread {
-		public boolean run = true;
-
-		public void run() {
-			int ang = 0;
-			int add = -5;
-			while (run) {
-				DataPose data = new DataPose();
-				
-
-				Pose tmppose = new Pose(pose.getX(), pose.getY(), (float) (pose.getHeading() + ang));
-				float dist = map.range(tmppose);
-				if (dist == -1) dist =  255;
-				
-				
-				data.setDistance((int)dist);
-				data.setPose(pose);
-				data.setSensorAngle(ang);
-
-				rr.robotData(data);
-
-				ang += add;
-				if (ang == -180 || ang == 0)
-					add *= -1;
-
-				try {
-					Thread.sleep(50);
-				} catch (InterruptedException e) {
-				}
-			}
-		}
-
-	}
-
-	public VirtualRobot(LineMap map) {
-		pose = new Pose();
-		pose.setHeading(90);
-		this.map = map;
-	}
-
-	@Override
-	public void moveForward() {
-		move(5);
-	}
-
-	@Override
-	public void moveLeft() {
-		pose.rotateUpdate(45);
-	}
-
-	@Override
-	public void moveRight() {
-		pose.rotateUpdate(-45);
-	}
-
-	@Override
-	public void moveBackward() {
-		move(-5);
-	}
-
-	@Override
-	public boolean connect() {
-		return true;
-	}
-
-	@Override
-	public void stop() {
-	}
-
-	@Override
-	public void move(double x) {
-		double dx = Math.sin(Math.toRadians(pose.getHeading())) * x;
-		double dy = Math.cos(Math.toRadians(pose.getHeading())) * x;
-		pose.translate((float) dx, (float) -dy);
-	}
-
-	@Override
-	public void rotate(double x) {
-		pose.rotateUpdate((float)-x);
-	}
-
-	@Override
-	public ArrayList<DataPose> scann(int ini, int end, int interval) {
-		ArrayList<DataPose> result = new ArrayList<DataPose>();
-		int ang = 0;
-		for (ang  = ini ; ang <= end; ang += interval) {
-			DataPose data = new DataPose();
-			Pose tmppose = new Pose(pose.getX(), pose.getY(), (float) (pose.getHeading() + ang));
-			float dist = map.range(tmppose);
-			if (dist == -1) dist =  255;
-			
-			data.setDistance((int)dist);
-			data.setPose(pose);
-			data.setSensorAngle(ang);
-	
-			rr.robotData(data);
-	
-			result.add(data);
-		}
-		return result;
-	}
-
-	@Override
-	public void scann(RobotReturn r) {
-		rr = r;
-		simthread = new Simulate();
-		simthread.start();
-	}
-
-	@Override
-	public void stopScann() {
-		simthread.run = false;
-		try {
-			simthread.join();
-		} catch (InterruptedException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-	}
-
-	@Override
-	public void disconnect() {
-
-	}
-
-	@Override
-	public void setPose(float x, float y, float a) {
-		pose.setHeading(a);
-		pose.setLocation(x, y);
-	}
-	
-	@Override
-	public String toString() {
-		return "Virtual Robot";
-	}
-
-}

+ 0 - 274
.metadata2/.plugins/org.eclipse.core.resources/.history/30/c0e5893e18b80017145c9b6064c27648

@@ -1,274 +0,0 @@
-import java.awt.Color;
-import java.awt.Graphics;
-import java.awt.Point;
-import java.awt.event.MouseEvent;
-import java.awt.event.MouseListener;
-import java.awt.event.MouseMotionListener;
-import java.awt.event.MouseWheelEvent;
-import java.awt.event.MouseWheelListener;
-import java.awt.image.BufferedImage;
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-
-import javax.imageio.ImageIO;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-
-import lejos.geom.Line;
-import lejos.robotics.mapping.LineMap;
-import lejos.robotics.navigation.Pose;
-
-public class MapImage extends JPanel implements MouseWheelListener, MouseListener, MouseMotionListener  {
-    private double zoom = 2.0; // pixel per cm
-    private double grid = 10.0; // cm
-    private double centerx = 0.0;
-    private double centery = 0.0; // cm
-    private Point mousePt;
-    private ArrayList<Pose> lista_pontos;
-    private ArrayList<Pose> lista_ultra;
-    private int visual_method = 0;
-    private boolean line = false;
-    
-    private LineMap map;
-    
-	public MapImage() {
-		super();
-		lista_pontos = new ArrayList<Pose>();
-		lista_ultra = new ArrayList<Pose>();
-		setBackground(Color.BLACK);
-		addMouseWheelListener(this);
-		addMouseListener(this);
-		addMouseMotionListener(this);
-	}
-	
-	public MapImage(LineMap map) {
-		this();
-		this.map = map;
-	}
-	
-    private void drawModel (Graphics g) {
-        int width = (int) (getWidth()+2*centerx);
-        int height = (int) (getHeight()+2*centery);
-        int count = 0;
-        int x_tmp = 0, y_tmp = 0;
-        
-	    	for (Pose p : lista_pontos) {
-			double hading = Math.toRadians(p.getHeading());
-				
-	    		int x = width/2+(int)(p.getX()*zoom);
-	    		int y = height/2+(int)(p.getY()*zoom)*-1;
-	    		
-			if (visual_method == 0) {
-				g.setColor(Color.getHSBColor((float) (hading/(2.0*Math.PI)), 1, 1));
-				g.fillOval(
-						x-(int)(zoom/2.0*1.5),
-						y-(int)(zoom/2.0*1.5),
-						(int)(zoom*1.5),
-						(int)(zoom*1.5)
-				);
-			} else if (visual_method == 1) {
-	            g.setColor(Color.RED);
-	            g.drawLine(
-	                width/2+(int)(p.getX()*zoom),
-	                height/2-(int)(p.getY()*zoom), 
-	                width/2+(int)(p.getX()*zoom+Math.sin(hading)*zoom),
-	                height/2-(int)(p.getY()*zoom-Math.cos(hading)*zoom)
-	            );
-	
-	           g.drawLine(
-	                width/2+(int)(p.getX()*zoom+zoom*Math.sin(hading)),
-	                height/2-(int)(p.getY()*zoom-zoom*Math.cos(hading)),
-	                width/2+(int)(p.getX()*zoom+0.6*zoom*Math.sin(Math.PI/8+hading)),
-	                height/2-(int)(p.getY()*zoom-0.6*zoom*Math.cos(Math.PI/8+hading))
-	            );
-			} else if (visual_method == 2) {
-				g.setColor(Color.RED);
-				g.fillOval(
-						x-(int)(zoom/2.0*1.5),
-						y-(int)(zoom/2.0*1.5),
-						(int)(zoom*1.5),
-						(int)(zoom*1.5)
-				);
-	            g.setColor(Color.BLACK);
-	            g.drawLine(
-	                width/2+(int)(p.x*zoom),
-	                height/2-(int)(p.y*zoom), 
-	                width/2+(int)(p.x*zoom+Math.sin(p.z)*zoom),
-	                height/2-(int)(p.y*zoom-Math.cos(p.z)*zoom)
-	            );
-			}
-	
-		    	if (line && count != 0) {
-		    		g.setColor(Color.LIGHT_GRAY);
-		    		g.drawLine(x_tmp, y_tmp, x, y);
-		    	}
-	
-		    	x_tmp = x;
-		    	y_tmp = y;
-		    	count++;
-		}
-	    	
-	    	g.setColor(Color.RED);
-	    	for (Pose p : lista_ultra) {
-	    		int x = width/2+(int)(p.getX()*zoom);
-	    		int y = height/2+(int)(p.getY()*zoom)*-1;
-	    		g.fillRect(
-					x-(int)(zoom/2.0*1.0),
-					y-(int)(zoom/2.0*1.0),
-					(int)(zoom*1.0),
-					(int)(zoom*1.0)
-			);
-	    	}
-	    	
-	    	if (map != null) {
-	    		Line[] lines = map.getLines();
-	    		for (int i = 0; i < lines.length; i++) {
-	    			Line l = lines[i];
-	            g.drawLine(
-		                width/2+(int)(l.x1*zoom),
-		                height/2-(int)(l.y1*zoom), 
-		                width/2+(int)(l.x2*zoom),
-		                height/2-(int)(l.y2*zoom)
-		        );
-	    		}
-	    	}
-    }
-    
-    @Override
-    protected void paintComponent(Graphics g) {
-        int width = (int) (getWidth());
-        int height = (int) (getHeight());
-        int width2 = (int) (getWidth()+2*centerx);
-        int height2 = (int) (getHeight()+2*centery);
-        super.paintComponent(g);
-    
-        g.setColor(new Color(20, 20, 20));
-        
-        int initial_x = height2/2;
-        while (initial_x < width) {
-        	initial_x += grid*zoom;
-        	g.drawLine(0, initial_x, width, initial_x); 
-        }
-        initial_x = height2/2;
-        while (initial_x > 0) {
-        	initial_x -= grid*zoom;
-        	g.drawLine(0, initial_x, width, initial_x); 
-        }
-        int initial_y = width2/2;
-        while (initial_y < width) {
-        	initial_y += grid*zoom;
-            g.drawLine(initial_y, 0, initial_y, height);
-        }
-        initial_y = width2/2;
-        while (initial_y > 0) {
-        	initial_y -= grid*zoom;
-            g.drawLine(initial_y, 0, initial_y, height);
-        }
-
-        g.setColor(Color.ORANGE);
-        g.drawLine(width2/2, 0, width2/2, height);
-        g.drawLine(0, height2/2, width, height2/2);
-
-        drawModel(g);
-    }
-    
-    /**
-     * Adiciona um ponto ao mapa
-     * @param p ponto
-     */
-    public void addPoint(Pose p) {
-    		lista_pontos.add(p);
-    		repaint();
-	}
-
-    public void addPoint(double x, double y, double z) {
-    		lista_pontos.add(new Pose(x, y, z));
-    		repaint();
-	}
-    
-
-    public void addRead(double x, double y) {
-    		lista_ultra.add(new Pose(x, y, 0));
-    		repaint();
-	}
-    
-    public void showLine () {
-    		line = !line;
-    		repaint();
-    }
-
-    public void setVisual (int method) {
-    		visual_method = method;
-    		repaint();
-    }
-    
-    public void save () {
-	    	Integer name = new Integer((int) (Math.random()*1000000));
-	    	BufferedImage imagebuf = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_RGB);
-	    	Graphics g = imagebuf.createGraphics();
-	    	g.fillRect(0, 0, imagebuf.getWidth(), imagebuf.getHeight());
-	    	print(g);
-	    	try {
-			ImageIO.write(imagebuf, "png",  new File(name.toString()+".png"));
-			JOptionPane.showMessageDialog(null, "Image saved.");
-		} catch (IOException e) {
-			e.printStackTrace();
-			JOptionPane.showMessageDialog(null, "Image not saved.");
-		}
-    }
-    
-	public void clean() {
-		lista_pontos.clear();
-		lista_ultra.clear();
-		repaint();
-	}
-	@Override
-	public void mouseDragged(MouseEvent e) {
-		centerx += e.getX() - mousePt.x;
-		centery += e.getY() - mousePt.y;
-		mousePt = e.getPoint();
-		repaint();
-		
-	}
-	@Override
-	public void mouseMoved(MouseEvent e) {		
-	}
-	
-	@Override
-	public void mouseClicked(MouseEvent e) {		
-	}
-	
-	@Override
-	public void mousePressed(MouseEvent e) {
-		mousePt = e.getPoint();
-		repaint();
-		
-	}
-	@Override
-	public void mouseReleased(MouseEvent e) {		
-	}
-	
-	@Override
-	public void mouseEntered(MouseEvent e) {
-	}
-	
-	@Override
-	public void mouseExited(MouseEvent e) {	
-	}
-	
-	@Override
-	public void mouseWheelMoved(MouseWheelEvent e) {
-		if(e.getWheelRotation()<0){
-			if (zoom < 15.0)
-				zoom *= 1.1;
-			repaint();
-		}
-		//Zoom out
-		if(e.getWheelRotation()>0){
-			if (zoom > 1.0)
-				zoom /= 1.1;
-			repaint();
-		}
-	}
-}

+ 0 - 126
.metadata2/.plugins/org.eclipse.core.resources/.history/31/30b8c624e2b000171eb4aea94a5e3c6b

@@ -1,126 +0,0 @@
-import java.awt.BorderLayout;
-import java.awt.event.KeyEvent;
-import java.awt.event.KeyListener;
-import java.io.BufferedReader;
-import java.io.DataInput;
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.io.InputStreamReader;
-
-import javax.swing.JFrame;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-
-import lejos.pc.comm.NXTComm;
-import lejos.pc.comm.NXTCommException;
-import lejos.pc.comm.NXTCommFactory;
-import lejos.pc.comm.NXTInfo;
-
-public class Map extends JPanel {
-	private ImageMap map;
-	private SendThread sendthread;
-	
-	public Map (DataInputStream input, final DataOutputStream output) throws IOException {
-		JFrame frame = new JFrame("Mapa MAC0318");
-		sendthread = new SendThread(output);
-		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-        frame.setLayout(new BorderLayout());
-        this.map = new ImageMap();
-		frame.add(this.map);
-		frame.setSize(800, 800);
-		frame.setVisible(true);
-		
-		frame.setFocusable(true);
-		frame.requestFocusInWindow();
-		
-		frame.addKeyListener(new KeyListener() {
-			@Override
-			public void keyTyped(KeyEvent e) {
-			}
-			@Override
-			public void keyReleased(KeyEvent e) {
-				
-			}
-			@Override
-			public void keyPressed(KeyEvent e) {
-				char input = e.getKeyChar();
-				if (input == '1') map.setVisual(0);
-				else if (input == '2') map.setVisual(1);
-				else if (input == '3') map.setVisual(2);
-				else if (input == 'l') map.showLine();
-				else if (input == 's') map.save();
-
-				try {
-					System.out.println(e.getKeyCode());
-				    switch(e.getKeyCode()) { 
-				        case KeyEvent.VK_UP:
-				        		output.write(SendThread.FORWARD);
-				            break;
-				        case KeyEvent.VK_DOWN:
-			        			output.write(SendThread.BACKWARD);
-				            break;
-				        case KeyEvent.VK_LEFT:
-				        		output.write(SendThread.LEFT);
-				            break;
-				        case KeyEvent.VK_RIGHT :
-				        		output.write(SendThread.RIGHT);
-				            break;
-				     }
-				    output.flush();
-
-				} catch (IOException e1) {
-					System.out.println(22222);
-				}
-			}
-		});
-		String text = "1,2,3 - Change view mode.\n";
-		text += "s - Save image.\n";
-		text += "l - Show trace.\n";
-		JOptionPane.showMessageDialog(null, text);
-		
-		int bytes_valiable = -1;
-		
-		while(true) {
-			try {
-				bytes_valiable = input.available();
-			} catch (IOException e1) {
-				// TODO Auto-generated catch block
-				e1.printStackTrace();
-			}
-			if (bytes_valiable >= 0) {
-				if (input.readByte() != '@') continue;
-				int angle = input.readByte();
-				float x = input.readFloat();
-				int distance = input.readByte();
-				float y = input.readFloat();
-				System.out.println(x+" "+y);
-			}
-		}
-	}
-	
-    public void addPoint(Point3D p) {
-    		map.addPoint(p);
-	}
-
-	public static void main(String[] args) throws NXTCommException, IOException {
-//		NXTComm nxtComm = NXTCommFactory.createNXTComm(NXTCommFactory.USB); 
-//		NXTInfo[] nxtInfo = nxtComm.search("NXT8"); //find brick with NXT_ID by doing a Bluetooth inquiry
-//		if (nxtInfo.length == 0) { // failed to find a brick with the ID
-//			System.err.println("NO NXT found");
-//			System.exit(1);
-//		}
-//		if (!nxtComm.open(nxtInfo[0])) { // the brick was found but a connection could not be establish
-//			System.err.println("Failed to open NXT");
-//			System.exit(1);
-//		}
-//		
-//		DataInputStream input = new DataInputStream(nxtComm.getInputStream()); // open data input stream 
-//		DataOutputStream output = new DataOutputStream(nxtComm.getOutputStream()); // open data output stream
-		
-//		Map map = new Map(input, output);
-		
-		Map map = new Map(null, null);
-
-	}
-}

+ 0 - 285
.metadata2/.plugins/org.eclipse.core.resources/.history/31/5006dba518b80017145c9b6064c27648

@@ -1,285 +0,0 @@
-import java.awt.Color;
-import java.awt.Graphics;
-import java.awt.Point;
-import java.awt.event.MouseEvent;
-import java.awt.event.MouseListener;
-import java.awt.event.MouseMotionListener;
-import java.awt.event.MouseWheelEvent;
-import java.awt.event.MouseWheelListener;
-import java.awt.image.BufferedImage;
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-
-import javax.imageio.ImageIO;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-
-import lejos.geom.Line;
-import lejos.robotics.mapping.LineMap;
-import lejos.robotics.navigation.Pose;
-
-public class MapImage extends JPanel implements MouseWheelListener, MouseListener, MouseMotionListener  {
-    private double zoom = 2.0; // pixel per cm
-    private double grid = 10.0; // cm
-    private double centerx = 0.0;
-    private double centery = 0.0; // cm
-    private Point mousePt;
-    private ArrayList<Pose> lista_pontos;
-    private ArrayList<Pose> lista_ultra;
-    private int visual_method = 0;
-    private boolean line = false;
-    
-    private LineMap map;
-    
-	public MapImage() {
-		super();
-		lista_pontos = new ArrayList<Pose>();
-		lista_ultra = new ArrayList<Pose>();
-		setBackground(Color.BLACK);
-		addMouseWheelListener(this);
-		addMouseListener(this);
-		addMouseMotionListener(this);
-	}
-	
-	public MapImage(LineMap map) {
-		this();
-		this.map = map;
-	}
-	
-    private void drawModel (Graphics g) {
-        int width = (int) (getWidth()+2*centerx);
-        int height = (int) (getHeight()+2*centery);
-        int count = 0;
-        int x_tmp = 0, y_tmp = 0;
-        
-	    	for (Pose p : lista_pontos) {
-			double hading = Math.toRadians(p.getHeading());
-				
-	    		int x = width/2+(int)(p.getX()*zoom);
-	    		int y = height/2+(int)(p.getY()*zoom)*-1;
-	    		
-			if (visual_method == 0) {
-				g.setColor(Color.getHSBColor((float) (hading/(2.0*Math.PI)), 1, 1));
-				g.fillOval(
-						x-(int)(zoom/2.0*1.5),
-						y-(int)(zoom/2.0*1.5),
-						(int)(zoom*1.5),
-						(int)(zoom*1.5)
-				);
-			} else if (visual_method == 1) {
-	            g.setColor(Color.RED);
-	            g.drawLine(
-	                width/2+(int)(p.getX()*zoom),
-	                height/2-(int)(p.getY()*zoom), 
-	                width/2+(int)(p.getX()*zoom+Math.sin(hading)*zoom),
-	                height/2-(int)(p.getY()*zoom-Math.cos(hading)*zoom)
-	            );
-	
-	           g.drawLine(
-	                width/2+(int)(p.getX()*zoom+zoom*Math.sin(hading)),
-	                height/2-(int)(p.getY()*zoom-zoom*Math.cos(hading)),
-	                width/2+(int)(p.getX()*zoom+0.6*zoom*Math.sin(Math.PI/8+hading)),
-	                height/2-(int)(p.getY()*zoom-0.6*zoom*Math.cos(Math.PI/8+hading))
-	            );
-			} else if (visual_method == 2) {
-				g.setColor(Color.RED);
-				g.fillOval(
-						x-(int)(zoom/2.0*1.5),
-						y-(int)(zoom/2.0*1.5),
-						(int)(zoom*1.5),
-						(int)(zoom*1.5)
-				);
-	            g.setColor(Color.BLACK);
-	            g.drawLine(
-	                width/2+(int)(p.getX()*zoom),
-	                height/2-(int)(p.getY()*zoom), 
-	                width/2+(int)(p.getX()*zoom+Math.sin(hading)*zoom),
-	                height/2-(int)(p.getY()*zoom-Math.cos(hading)*zoom)
-	            );
-			}
-	
-		    	if (line && count != 0) {
-		    		g.setColor(Color.LIGHT_GRAY);
-		    		g.drawLine(x_tmp, y_tmp, x, y);
-		    	}
-	
-		    	x_tmp = x;
-		    	y_tmp = y;
-		    	count++;
-		}
-	    	
-	    	g.setColor(Color.RED);
-	    	for (Pose p : lista_ultra) {
-	    		int x = width/2+(int)(p.getX()*zoom);
-	    		int y = height/2+(int)(p.getY()*zoom)*-1;
-	    		g.fillRect(
-					x-(int)(zoom/2.0*1.0),
-					y-(int)(zoom/2.0*1.0),
-					(int)(zoom*1.0),
-					(int)(zoom*1.0)
-			);
-	    	}
-	    	
-	    	if (map != null) {
-	    		Line[] lines = map.getLines();
-	    		for (int i = 0; i < lines.length; i++) {
-	    			Line l = lines[i];
-	            g.drawLine(
-		                width/2+(int)(l.x1*zoom),
-		                height/2-(int)(l.y1*zoom), 
-		                width/2+(int)(l.x2*zoom),
-		                height/2-(int)(l.y2*zoom)
-		        );
-	    		}
-	    	}
-    }
-    
-    @Override
-    protected void paintComponent(Graphics g) {
-        int width = (int) (getWidth());
-        int height = (int) (getHeight());
-        int width2 = (int) (getWidth()+2*centerx);
-        int height2 = (int) (getHeight()+2*centery);
-        super.paintComponent(g);
-    
-        g.setColor(new Color(20, 20, 20));
-        
-        int initial_x = height2/2;
-        while (initial_x < width) {
-        	initial_x += grid*zoom;
-        	g.drawLine(0, initial_x, width, initial_x); 
-        }
-        initial_x = height2/2;
-        while (initial_x > 0) {
-        	initial_x -= grid*zoom;
-        	g.drawLine(0, initial_x, width, initial_x); 
-        }
-        int initial_y = width2/2;
-        while (initial_y < width) {
-        	initial_y += grid*zoom;
-            g.drawLine(initial_y, 0, initial_y, height);
-        }
-        initial_y = width2/2;
-        while (initial_y > 0) {
-        	initial_y -= grid*zoom;
-            g.drawLine(initial_y, 0, initial_y, height);
-        }
-
-        g.setColor(Color.ORANGE);
-        g.drawLine(width2/2, 0, width2/2, height);
-        g.drawLine(0, height2/2, width, height2/2);
-
-        drawModel(g);
-    }
-    
-    /**
-     * Adiciona um ponto ao mapa
-     * @param p ponto
-     */
-    public void addPoint(Pose p) {
-    		lista_pontos.add(p);
-    		repaint();
-	}
-
-    public void addPoint(float x, float y, float z) {
-    		lista_pontos.add(new Pose(x, y, z));
-    		repaint();
-	}
-    
-
-    public void addRead(float x, float y) {
-    		lista_ultra.add(new Pose(x, y, 0));
-    		repaint();
-	}
-    
-
-    public void addPoint(double x, double y, double z) {
-    		addPoint((float)x, (float)y, (float)z);
-	}
-    
-
-    public void addRead(double x, double y) {
-    		addRead((float)z, (float)y);
-	}
-    
-    
-    public void showLine () {
-    		line = !line;
-    		repaint();
-    }
-
-    public void setVisual (int method) {
-    		visual_method = method;
-    		repaint();
-    }
-    
-    public void save () {
-	    	Integer name = new Integer((int) (Math.random()*1000000));
-	    	BufferedImage imagebuf = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_RGB);
-	    	Graphics g = imagebuf.createGraphics();
-	    	g.fillRect(0, 0, imagebuf.getWidth(), imagebuf.getHeight());
-	    	print(g);
-	    	try {
-			ImageIO.write(imagebuf, "png",  new File(name.toString()+".png"));
-			JOptionPane.showMessageDialog(null, "Image saved.");
-		} catch (IOException e) {
-			e.printStackTrace();
-			JOptionPane.showMessageDialog(null, "Image not saved.");
-		}
-    }
-    
-	public void clean() {
-		lista_pontos.clear();
-		lista_ultra.clear();
-		repaint();
-	}
-	@Override
-	public void mouseDragged(MouseEvent e) {
-		centerx += e.getX() - mousePt.x;
-		centery += e.getY() - mousePt.y;
-		mousePt = e.getPoint();
-		repaint();
-		
-	}
-	@Override
-	public void mouseMoved(MouseEvent e) {		
-	}
-	
-	@Override
-	public void mouseClicked(MouseEvent e) {		
-	}
-	
-	@Override
-	public void mousePressed(MouseEvent e) {
-		mousePt = e.getPoint();
-		repaint();
-		
-	}
-	@Override
-	public void mouseReleased(MouseEvent e) {		
-	}
-	
-	@Override
-	public void mouseEntered(MouseEvent e) {
-	}
-	
-	@Override
-	public void mouseExited(MouseEvent e) {	
-	}
-	
-	@Override
-	public void mouseWheelMoved(MouseWheelEvent e) {
-		if(e.getWheelRotation()<0){
-			if (zoom < 15.0)
-				zoom *= 1.1;
-			repaint();
-		}
-		//Zoom out
-		if(e.getWheelRotation()>0){
-			if (zoom > 1.0)
-				zoom /= 1.1;
-			repaint();
-		}
-	}
-}

+ 0 - 26
.metadata2/.plugins/org.eclipse.core.resources/.history/32/107c0d9713b9001711c7a09600ea5d68

@@ -1,26 +0,0 @@
-package config;
-
-import lejos.geom.Line;
-import lejos.robotics.mapping.LineMap;
-import lejos.robotics.navigation.Pose;
-
-public class Models {
-	private LineMap map;
-
-	public Models(LineMap map) {
-		this.map = map;
-	}
-
-	public double expectedSonarRead(Pose p) {
-		// o modelo apresentado aqui eh o mais burro
-		// ele pega a menor distancia do robo a um segmento
-		double min = Double.MAX_VALUE;
-		double d;
-		for (Line l : map.getLines()) {
-			d = l.ptSegDist(p.getX() * 10, p.getY() * 10);
-			min = Math.min(min, d);
-		}
-		//System.out.println(min);
-		return min / 10.0;
-	}
-}

+ 0 - 137
.metadata2/.plugins/org.eclipse.core.resources/.history/32/2023c245cbb90017124d9f37712eb7c1

@@ -1,137 +0,0 @@
-package robots;
-
-import java.util.ArrayList;
-
-import lejos.robotics.mapping.LineMap;
-import lejos.robotics.navigation.Pose;
-
-public class VirtualRobot implements Robot {
-	private Pose pose;
-	private Simulate simthread;
-	private RobotReturn rr;
-	private LineMap map;
-
-	private class Simulate extends Thread {
-		public boolean run = true;
-
-		public void run() {
-			int ang = 0;
-			int add = -5;
-			while (run) {
-				DataPose data = new DataPose();
-				
-
-				Pose tmppose = new Pose(pose.getX(), pose.getY(), (float) (pose.getHeading() + ang));
-				float dist = map.range(tmppose);
-				if (dist == -1) dist =  255;
-				
-				
-				data.setDistance((int)dist);
-				data.setPose(pose);
-				data.setSensorAngle(ang);
-
-				rr.robotData(data);
-
-				ang += add;
-				if (ang == -180 || ang == 0)
-					add *= -1;
-
-				try {
-					Thread.sleep(200);
-				} catch (InterruptedException e) {
-				}
-			}
-		}
-
-	}
-
-	public VirtualRobot(LineMap map) {
-		simthread = new Simulate();
-		pose = new Pose();
-		pose.setHeading(90);
-		this.map = map;
-	}
-
-	@Override
-	public void moveForward() {
-		double dx = Math.sin(Math.toRadians(pose.getHeading())) * 5;
-		double dy = Math.cos(Math.toRadians(pose.getHeading())) * 5;
-		pose.translate((float) dx, (float) -dy);
-	}
-
-	@Override
-	public void moveLeft() {
-		pose.rotateUpdate(45);
-	}
-
-	@Override
-	public void moveRight() {
-		pose.rotateUpdate(-45);
-	}
-
-	@Override
-	public void moveBackward() {
-		double dx = Math.sin(Math.toRadians(pose.getHeading())) * 5;
-		double dy = Math.cos(Math.toRadians(pose.getHeading())) * 5;
-		pose.translate((float) -dx, (float) dy);
-	}
-
-	@Override
-	public boolean connect(RobotReturn r) {
-		return true;
-	}
-
-	@Override
-	public void stop() {
-	}
-
-	@Override
-	public void move(double x) {
-		// TODO Auto-generated method stub
-
-	}
-
-	@Override
-	public void rotate(double x) {
-		// TODO Auto-generated method stub
-
-	}
-
-	@Override
-	public ArrayList<DataPose> scann(int ini, int end, int interval) {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	@Override
-	public void scann(RobotReturn r) {
-		rr = r;
-		simthread.start();
-	}
-
-	@Override
-	public void stopScann() {
-		// TODO Auto-generated method stub
-
-	}
-
-	@Override
-	public void disconnect() {
-
-		simthread.run = false;
-		try {
-			simthread.join();
-		} catch (InterruptedException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-
-	}
-
-	@Override
-	public void setPose(float x, float y, float a) {
-		pose.setHeading(a);
-		pose.setLocation(x, y);
-	}
-
-}

+ 0 - 306
.metadata2/.plugins/org.eclipse.core.resources/.history/34/e02fcc20d3b90017124d9f37712eb7c1

@@ -1,306 +0,0 @@
-import java.awt.BorderLayout;
-import java.awt.event.KeyEvent;
-import java.awt.event.KeyListener;
-import java.awt.event.WindowEvent;
-import java.awt.event.WindowListener;
-import java.util.ArrayList;
-
-import javax.swing.ButtonGroup;
-import javax.swing.JFrame;
-import javax.swing.JMenu;
-import javax.swing.JMenuBar;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-import javax.swing.JRadioButtonMenuItem;
-import javax.swing.JSplitPane;
-import javax.swing.SwingUtilities;
-
-import config.Map;
-import config.Models;
-import lejos.robotics.mapping.LineMap;
-import lejos.robotics.navigation.Pose;
-import robots.BluetoothRobot;
-import robots.DataPose;
-import robots.Robot;
-import robots.RobotReturn;
-import robots.VirtualRobot;
-
-public class MainProgram extends JPanel implements KeyListener, WindowListener, RobotReturn {
-
-	private MapImage imap;
-	private Robot robot;
-	private ScannerImage scanner;
-	private Models smodel;
-
-	public static final byte FORWARD = 0;
-	public static final byte STOP = 1;
-	public static final byte EXIT = 2;
-	public static final byte LEFT = 3;
-	public static final byte RIGHT = 4;
-	public static final byte BACKWARD = 5;
-
-	public MainProgram(LineMap map, Robot robot) {
-		this.robot = robot;
-		JFrame frame = new JFrame("Mapa MAC0318");
-
-		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-		frame.setLayout(new BorderLayout());
-		imap = new MapImage(map);
-		scanner = new ScannerImage(map);
-		smodel = new Models(map);
-		// frame.add(this.map);
-		frame.setSize(800, 800);
-		frame.setVisible(true);
-
-		frame.setFocusable(true);
-		frame.requestFocusInWindow();
-		frame.addKeyListener(this);
-		frame.addWindowListener(this);
-
-		JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, scanner, imap);
-		splitPane.setOneTouchExpandable(true);
-		splitPane.setDividerLocation((int) (frame.getHeight() / 2));
-		frame.add(splitPane);
-
-		boolean result = false;
-		if (robot != null)
-			result = robot.connect();
-	
-
-		if (result == false) {
-			JOptionPane.showMessageDialog(null, "Não foi possível conectar ao robô");
-		}
-
-		showHelp();
-	}
-
-	private void showHelp() {
-		String text = "1,2,3 - Change global map view\n";
-		text += "s - Set Pose.\n";
-		text += "l - Show global map trace.\n";
-		text += "c - Clean maps.\n";
-		text += "m - Enter robot movement.\n";
-		text += "r - Enter robo rotation.\n";
-		text += "a - Colect sonar data.\n";
-		text += "z - Make sonar continuous scanner.\n";
-		text += "i - Stop continuous scanner.\n";
-		text += "g - Save global map image.\n";
-		text += "f - Save scanner image.\n";
-		text += "<arrows> - Move robot.\n";
-		text += "h - help.\n";
-		JOptionPane.showMessageDialog(null, text, "HELP", JOptionPane.PLAIN_MESSAGE);
-	}
-
-	public void addPoint(Pose p) {
-		imap.addPoint(p);
-	}
-
-	@Override
-	public void keyPressed(KeyEvent e) {
-		
-		char input = e.getKeyChar();
-		switch (input) {
-		case '1':
-			imap.setVisual(0);
-			break;
-		case '2':
-			imap.setVisual(1);
-			break;
-		case '3':
-			imap.setVisual(2);
-			break;
-		case 'l':
-			imap.showLine();
-			break;
-		case 'g':
-			imap.save();
-			break;
-		case 'c':
-			imap.clean();
-			scanner.clean();
-			break;
-		case 's':
-			setRobotPose();
-			break;
-		case 'm':
-			moveRobot();
-			break;
-		case 'r':
-			rotateRobot();
-			break;
-		case 'a':
-			colectSonar();
-			break;
-		case 'z':
-			robot.scann(this);
-			break;
-		case 'i':
-			robot.stopScann();
-			break;
-		case 'h':
-			showHelp();
-			break;
-		default:
-			break;
-		}
-
-	
-
-		if (robot == null)
-			return;
-
-		scanner.clean();
-		switch (e.getKeyCode()) {
-		case KeyEvent.VK_UP:
-			robot.moveForward();
-			break;
-		case KeyEvent.VK_DOWN:
-			robot.moveBackward();
-			break;
-		case KeyEvent.VK_LEFT:
-			robot.moveLeft();
-			break;
-		case KeyEvent.VK_RIGHT:
-			robot.moveRight();
-			break;
-		}
-	}
-
-	private void colectSonar() {
-		int interval;
-		try {
-			String rs = JOptionPane.showInputDialog("Interval (degress):");
-			interval = Integer.parseInt(rs);
-		} catch (Exception e) {
-			return;
-		}
-		ArrayList<DataPose> data = robot.scann(-90, 90, interval);
-		scanner.clean();
-		
-	}
-
-	private void rotateRobot() {
-		try {
-			String rs = JOptionPane.showInputDialog("Enter rotation (degress-clockwise):");
-			double r = Double.parseDouble(rs);
-			robot.rotate(r);
-			scanner.clean();
-		} catch (Exception e) {
-		}
-	}
-	
-
-	private void moveRobot() {
-		try {
-			String rs = JOptionPane.showInputDialog("Enter distance (cm):");
-			double r = Double.parseDouble(rs);
-			robot.move(r);
-			scanner.clean();
-		} catch (Exception e) {
-		}
-	}
-
-	private void setRobotPose() {
-		try {
-			String xs = JOptionPane.showInputDialog("Enter x (cm):");
-			if (xs.length() == 0) return;
-			String ys = JOptionPane.showInputDialog("Enter y (cm):");
-			if (ys.length() == 0) return;
-			String as = JOptionPane.showInputDialog("Enter heading (degress):");
-			if (as.length() == 0) return;
-		
-			float x = Float.parseFloat(xs);
-			float y = Float.parseFloat(ys);
-			float a = Float.parseFloat(as);
-			robot.setPose(x, y, a);
-			scanner.setPose(new Pose(x, y, a));
-			scanner.clean();
-		} catch (Exception e) {
-		}
-	}
-
-	@Override
-	public void keyReleased(KeyEvent arg0) {
-		if (robot == null)
-			return;
-		robot.stop();
-	}
-
-	@Override
-	public void keyTyped(KeyEvent arg0) {
-	}
-
-	@Override
-	public void windowOpened(WindowEvent e) {
-
-	}
-
-	@Override
-	public void windowClosing(WindowEvent e) {
-		System.err.println("Fechando...");
-		if (robot == null)
-			return;
-		robot.disconnect();
-
-	}
-
-	@Override
-	public void windowClosed(WindowEvent e) {
-	}
-
-	@Override
-	public void windowIconified(WindowEvent e) {
-
-	}
-
-	@Override
-	public void windowDeiconified(WindowEvent e) {
-
-	}
-
-	@Override
-	public void windowActivated(WindowEvent e) {
-
-	}
-
-	@Override
-	public void windowDeactivated(WindowEvent e) {
-	}
-
-	@Override
-	public void robotData(DataPose data) {
-		// posicao do robo
-		Pose p = data.getPose();
-
-		imap.addPoint(p);
-		if (data.getDistance() == 255) {
-			scanner.setPose(p);
-			return;
-		}
-
-		// ponto do ultrasonico
-		double sensor_ang = Math.toRadians(data.getSensorAngle() + p.getHeading());
-		double dx = Math.cos(sensor_ang) * data.getDistance();
-		double dy = Math.sin(sensor_ang) * data.getDistance();
-		double expected = smodel.expectedSonarRead(p, data.getSensorAngle());
-		imap.addRead(p.getX() + dx, p.getY() + dy);
-		scanner.addRead(p, data.getDistance(), data.getSensorAngle(), expected);
-	}
-
-	public static void main(String[] args) {
-
-		LineMap map = Map.makeMap();
-		Robot robotv = new VirtualRobot(map);
-		Robot robotbt = new BluetoothRobot(null);
-
-		Object[] possibleValues = { robotv, robotbt };
-		Object robot = JOptionPane.showInputDialog(null, "Choose one", "Input", JOptionPane.PLAIN_MESSAGE, null,
-				possibleValues, possibleValues[0]);
-
-		SwingUtilities.invokeLater(new Runnable() {
-			public void run() {
-				new MainProgram(map, (Robot) robot);
-			}
-		});
-	}
-}

+ 0 - 162
.metadata2/.plugins/org.eclipse.core.resources/.history/35/00c1392626bb001711b8bf632416c20d

@@ -1,162 +0,0 @@
-package robots;
-
-import java.util.ArrayList;
-import java.util.Random;
-
-import lejos.robotics.mapping.LineMap;
-import lejos.robotics.navigation.Pose;
-
-public class VirtualRobot implements Robot {
-	private Pose pose;
-	private Simulate simthread;
-	private RobotReturn rr;
-	private LineMap map;
-	private int angle = 0;
-	private Random rand;
-
-	private class Simulate extends Thread {
-		public boolean run = true;
-
-		public void run() {
-			angle = 0;
-			int add = -5;
-			while (run) {
-				DataPose data = new DataPose();
-
-				double dist = getDistance();
-				
-				data.setDistance((int)dist);
-				data.setPose(pose);
-				data.setSensorAngle(angle+90);
-
-				rr.robotData(data);
-
-				angle += add;
-				if (angle == -180 || angle == 0)
-					add *= -1;
-
-				try {
-					Thread.sleep(50);
-				} catch (InterruptedException e) {
-				}
-			}
-		}
-
-	}
-	
-	public double getDistance() {
-		Pose tmppose = new Pose(pose.getX(), pose.getY(), pose.getHeading());
-		float mindist = Float.POSITIVE_INFINITY;
-		int cone = 20;
-		for (int angle=-cone/2; angle <= cone/2; angle++) {
-			tmppose.setHeading((float) (pose.getHeading() - angle));
-			float dist = map.range(tmppose);
-			if (dist > 0 && dist < mindist) mindist = dist;
-		}
-		double v = mindist+rand.nextGaussian()*4+Math.random();
-		v = Math.min(255, v);
-		return v;
-	}
-
-	public VirtualRobot(LineMap map) {
-		pose = new Pose();
-		pose.setHeading(0);
-		this.map = map;
-		rand = new Random();
-	}
-
-	@Override
-	public void moveForward() {
-		move(5);
-	}
-
-	@Override
-	public void moveLeft() {
-		pose.rotateUpdate(45);
-	}
-
-	@Override
-	public void moveRight() {
-		pose.rotateUpdate(-45);
-	}
-
-	@Override
-	public void moveBackward() {
-		move(-5);
-	}
-
-	@Override
-	public boolean connect() {
-		return true;
-	}
-
-	@Override
-	public void stop() {
-	}
-
-	@Override
-	public void move(double x) {
-		double dx = Math.sin(Math.toRadians(pose.getHeading())) * x;
-		double dy = Math.cos(Math.toRadians(pose.getHeading())) * x;
-		pose.translate((float) dx, (float) -dy);
-	}
-
-	@Override
-	public void rotate(double x) {
-		pose.rotateUpdate((float)-x);
-	}
-
-	@Override
-	public ArrayList<DataPose> scann(int ini, int end, int interval) {
-		ArrayList<DataPose> result = new ArrayList<DataPose>();
-		int ang = 0;
-		for (ang  = ini; ang <= end; ang += interval) {
-			DataPose data = new DataPose();
-
-			double dist = getDistance();
-			
-			data.setDistance((int)dist);
-			data.setPose(pose);
-			data.setSensorAngle(ang);	
-			result.add(data);
-		}
-		return result;
-	}
-
-	@Override
-	public void scann(RobotReturn r) {
-		rr = r;
-		stopScann();
-		simthread = new Simulate();
-		simthread.start();
-	}
-
-	@Override
-	public void stopScann() {
-		if (simthread == null) return;
-		simthread.run = false;
-		try {
-			simthread.join();
-		} catch (InterruptedException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-	}
-
-	@Override
-	public void disconnect() {
-
-	}
-
-	@Override
-	public void setPose(float x, float y, float a) {
-		pose.setHeading(a);
-		pose.setLocation(x, y);
-	}
-	
-	@Override
-	public String toString() {
-		return "Virtual Robot";
-	}
-
-}

+ 0 - 152
.metadata2/.plugins/org.eclipse.core.resources/.history/35/f09bc35fdfb90017124d9f37712eb7c1

@@ -1,152 +0,0 @@
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-
-import lejos.nxt.Motor;
-import lejos.nxt.NXTRegulatedMotor;
-import lejos.nxt.SensorPort;
-import lejos.nxt.Sound;
-import lejos.nxt.UltrasonicSensor;
-import lejos.nxt.comm.BTConnection;
-import lejos.nxt.comm.Bluetooth;
-import lejos.robotics.navigation.DifferentialPilot;
-import lejos.robotics.navigation.Pose;
-import lejos.robotics.localization.*;
-
-class Scanner extends Thread {
-	DataOutputStream output;
-	OdometryPoseProvider provider;
-	boolean run;
-	public boolean scann;
-	
-	Scanner (DataOutputStream output, OdometryPoseProvider provider) {
-		super();
-		this.output = output;
-		this.provider = provider;
-		run = true;
-		scann = false;
-	}
-	
-	public void stop () {
-		run = false;
-	}
-	
-	public void run() {
-		NXTRegulatedMotor scannerm = Motor.A;
-		UltrasonicSensor sensor = new UltrasonicSensor(SensorPort.S1) ;
-		int increment = 5;
-		int position = 0;
-		
-		while (run) {
-			if (scann == false) {
-				scannerm.rotateTo(0);
-				continue;
-			}
-			if (position == 90 || position == -90)
-				increment *= -1;
-
-			scannerm.rotateTo(position);
-			scannerm.waitComplete();
-			
-			int distance = sensor.getDistance();
-						
-			Pose pose = provider.getPose();
-			float x = pose.getX();
-			float y = pose.getY();
-			float alpha = pose.getHeading();
-			
-			if (distance != 255) {
-				try {
-					output.write('@');
-					output.write(position);
-					output.writeFloat(alpha);
-					output.writeFloat(x);
-					output.write(distance);
-					output.writeFloat(y);
-					output.flush();
-				} catch (IOException e) {
-				}
-			}
-			
-			position += increment;
-		}
-		
-		scannerm.rotateTo(0);
-		scannerm.waitComplete();
-	}
-}
-
-public class Sonar {
-	
-	private static final byte FORWARD = 0;
-	private static final byte STOP = 1;
-	private static final byte EXIT = 2;
-	private static final byte LEFT = 3;
-	private static final byte RIGHT = 4;
-	private static final byte BACKWARD = 5;
-	
-	public static final byte STOPSCANN = 6;
-	public static final byte STARTSCANN = 7;
-	public static final byte MOVE = 8;
-	public static final byte ROTATE = 9;
-	public static final byte SETPOSE = 10;
-	public static final byte SETSCANANGLE = 11;
-	
-	public static void main(String[] args) throws Exception {
-		
-		BTConnection btc = Bluetooth.waitForConnection();
-		//USBConnection btc = USB.waitForConnection();
-		
-		DataInputStream input = btc.openDataInputStream();
-		DataOutputStream output = btc.openDataOutputStream();
-		
-		DifferentialPilot pilot = new DifferentialPilot(5.6f, 13.8f, Motor.B, Motor.C, false); 
-		OdometryPoseProvider provider = new OdometryPoseProvider(pilot);
-		pilot.setRotateSpeed(5);
-		pilot.setTravelSpeed(20);
-		
-		Scanner scan = new Scanner(output, provider);
-		scan.start();
-		int input_byte;
-		boolean run = true;
-		
-		Sound.twoBeeps();
-		
-		while (run) {
-			if (input.available() <= 0) {
-				Thread.yield();
-				continue;
-			}
-			input_byte = input.readByte();
-
-			System.out.println(input_byte);
-			
-			switch (input_byte) {
-				case FORWARD:
-					pilot.forward();
-					break;
-				case STOP:
-					pilot.stop();
-					break;
-				case EXIT:
-					run = false;
-					break;
-				case LEFT:
-					pilot.rotateLeft();
-					break;
-				case RIGHT:
-					pilot.rotateRight();
-					break;
-				case BACKWARD:
-					pilot.backward();
-					break;
-				case STOPSCANN:
-					pilot.scann = true;
-					break;
-			}
-		}
-		Sound.beep();
-		scan.stop();
-		scan.join();
-	}
-}

+ 0 - 285
.metadata2/.plugins/org.eclipse.core.resources/.history/36/f0945d7722b80017145c9b6064c27648

@@ -1,285 +0,0 @@
-import java.awt.Color;
-import java.awt.Graphics;
-import java.awt.Point;
-import java.awt.event.MouseEvent;
-import java.awt.event.MouseListener;
-import java.awt.event.MouseMotionListener;
-import java.awt.event.MouseWheelEvent;
-import java.awt.event.MouseWheelListener;
-import java.awt.image.BufferedImage;
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-
-import javax.imageio.ImageIO;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-
-import lejos.geom.Line;
-import lejos.robotics.mapping.LineMap;
-import lejos.robotics.navigation.Pose;
-
-public class MapImage extends JPanel implements MouseWheelListener, MouseListener, MouseMotionListener  {
-    private double zoom = 2.0; // pixel per cm
-    private double grid = 10.0; // cm
-    private double centerx = 0.0;
-    private double centery = 0.0; // cm
-    private Point mousePt;
-    private ArrayList<Pose> lista_pontos;
-    private ArrayList<Pose> lista_ultra;
-    private int visual_method = 0;
-    private boolean line = false;
-    
-    private LineMap map;
-    
-	public MapImage() {
-		super();
-		lista_pontos = new ArrayList<Pose>();
-		lista_ultra = new ArrayList<Pose>();
-		setBackground(Color.BLACK);
-		addMouseWheelListener(this);
-		addMouseListener(this);
-		addMouseMotionListener(this);
-	}
-	
-	public MapImage(LineMap map) {
-		this();
-		this.map = map;
-	}
-	
-    private void drawModel (Graphics g) {
-        int width = (int) (getWidth()+2*centerx);
-        int height = (int) (getHeight()+2*centery);
-        int count = 0;
-        int x_tmp = 0, y_tmp = 0;
-        
-	    	for (Pose p : lista_pontos) {
-			double hading = Math.toRadians(p.getHeading());
-				
-	    		int x = width/2+(int)(p.getX()*zoom);
-	    		int y = height/2+(int)(p.getY()*zoom)*-1;
-	    		
-			if (visual_method == 0) {
-				g.setColor(Color.getHSBColor((float) (hading/(2.0*Math.PI)), 1, 1));
-				g.fillOval(
-						x-(int)(zoom/2.0*1.5),
-						y-(int)(zoom/2.0*1.5),
-						(int)(zoom*1.5),
-						(int)(zoom*1.5)
-				);
-			} else if (visual_method == 1) {
-	            g.setColor(Color.RED);
-	            g.drawLine(
-	                width/2+(int)(p.getX()*zoom),
-	                height/2-(int)(p.getY()*zoom), 
-	                width/2+(int)(p.getX()*zoom+Math.sin(hading)*zoom),
-	                height/2-(int)(p.getY()*zoom-Math.cos(hading)*zoom)
-	            );
-	
-	           g.drawLine(
-	                width/2+(int)(p.getX()*zoom+zoom*Math.sin(hading)),
-	                height/2-(int)(p.getY()*zoom-zoom*Math.cos(hading)),
-	                width/2+(int)(p.getX()*zoom+0.6*zoom*Math.sin(Math.PI/8+hading)),
-	                height/2-(int)(p.getY()*zoom-0.6*zoom*Math.cos(Math.PI/8+hading))
-	            );
-			} else if (visual_method == 2) {
-				g.setColor(Color.RED);
-				g.fillOval(
-						x-(int)(zoom/2.0*1.5),
-						y-(int)(zoom/2.0*1.5),
-						(int)(zoom*1.5),
-						(int)(zoom*1.5)
-				);
-	            g.setColor(Color.BLACK);
-	            g.drawLine(
-	                width/2+(int)(p.getX()*zoom),
-	                height/2-(int)(p.getY()*zoom), 
-	                width/2+(int)(p.getX()*zoom+Math.sin(hading)*zoom),
-	                height/2-(int)(p.getY()*zoom-Math.cos(hading)*zoom)
-	            );
-			}
-	
-		    	if (line && count != 0) {
-		    		g.setColor(Color.LIGHT_GRAY);
-		    		g.drawLine(x_tmp, y_tmp, x, y);
-		    	}
-	
-		    	x_tmp = x;
-		    	y_tmp = y;
-		    	count++;
-		}
-	    	
-	    	g.setColor(Color.RED);
-	    	for (Pose p : lista_ultra) {
-	    		int x = width/2+(int)(p.getX()*zoom);
-	    		int y = height/2+(int)(p.getY()*zoom)*-1;
-	    		g.fillRect(
-					x-(int)(zoom/2.0*1.0),
-					y-(int)(zoom/2.0*1.0),
-					(int)(zoom*1.0),
-					(int)(zoom*1.0)
-			);
-	    	}
-	    	
-	    	if (map != null) {
-	    		Line[] lines = map.getLines();
-	    		for (int i = 0; i < lines.length; i++) {
-	    			Line l = lines[i];
-	            g.drawLine(
-		                width/2+(int)(l.x1*zoom*1000.0),
-		                height/2-(int)(l.y1*zoom*1000.0), 
-		                width/2+(int)(l.x2*zoom*1000.0),
-		                height/2-(int)(l.y2*zoom*1000.0)
-		        );
-	    		}
-	    	}
-    }
-    
-    @Override
-    protected void paintComponent(Graphics g) {
-        int width = (int) (getWidth());
-        int height = (int) (getHeight());
-        int width2 = (int) (getWidth()+2*centerx);
-        int height2 = (int) (getHeight()+2*centery);
-        super.paintComponent(g);
-    
-        g.setColor(new Color(20, 20, 20));
-        
-        int initial_x = height2/2;
-        while (initial_x < width) {
-        	initial_x += grid*zoom;
-        	g.drawLine(0, initial_x, width, initial_x); 
-        }
-        initial_x = height2/2;
-        while (initial_x > 0) {
-        	initial_x -= grid*zoom;
-        	g.drawLine(0, initial_x, width, initial_x); 
-        }
-        int initial_y = width2/2;
-        while (initial_y < width) {
-        	initial_y += grid*zoom;
-            g.drawLine(initial_y, 0, initial_y, height);
-        }
-        initial_y = width2/2;
-        while (initial_y > 0) {
-        	initial_y -= grid*zoom;
-            g.drawLine(initial_y, 0, initial_y, height);
-        }
-
-        g.setColor(Color.ORANGE);
-        g.drawLine(width2/2, 0, width2/2, height);
-        g.drawLine(0, height2/2, width, height2/2);
-
-        drawModel(g);
-    }
-    
-    /**
-     * Adiciona um ponto ao mapa
-     * @param p ponto
-     */
-    public void addPoint(Pose p) {
-    		lista_pontos.add(p);
-    		repaint();
-	}
-
-    public void addPoint(float x, float y, float z) {
-    		lista_pontos.add(new Pose(x, y, z));
-    		repaint();
-	}
-    
-
-    public void addRead(float x, float y) {
-    		lista_ultra.add(new Pose(x, y, 0));
-    		repaint();
-	}
-    
-
-    public void addPoint(double x, double y, double z) {
-    		addPoint((float)x, (float)y, (float)z);
-	}
-    
-
-    public void addRead(double x, double y) {
-    		addRead((float)x, (float)y);
-	}
-    
-    
-    public void showLine () {
-    		line = !line;
-    		repaint();
-    }
-
-    public void setVisual (int method) {
-    		visual_method = method;
-    		repaint();
-    }
-    
-    public void save () {
-	    	Integer name = new Integer((int) (Math.random()*1000000));
-	    	BufferedImage imagebuf = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_RGB);
-	    	Graphics g = imagebuf.createGraphics();
-	    	g.fillRect(0, 0, imagebuf.getWidth(), imagebuf.getHeight());
-	    	print(g);
-	    	try {
-			ImageIO.write(imagebuf, "png",  new File(name.toString()+".png"));
-			JOptionPane.showMessageDialog(null, "Image saved.");
-		} catch (IOException e) {
-			e.printStackTrace();
-			JOptionPane.showMessageDialog(null, "Image not saved.");
-		}
-    }
-    
-	public void clean() {
-		lista_pontos.clear();
-		lista_ultra.clear();
-		repaint();
-	}
-	@Override
-	public void mouseDragged(MouseEvent e) {
-		centerx += e.getX() - mousePt.x;
-		centery += e.getY() - mousePt.y;
-		mousePt = e.getPoint();
-		repaint();
-		
-	}
-	@Override
-	public void mouseMoved(MouseEvent e) {		
-	}
-	
-	@Override
-	public void mouseClicked(MouseEvent e) {		
-	}
-	
-	@Override
-	public void mousePressed(MouseEvent e) {
-		mousePt = e.getPoint();
-		repaint();
-		
-	}
-	@Override
-	public void mouseReleased(MouseEvent e) {		
-	}
-	
-	@Override
-	public void mouseEntered(MouseEvent e) {
-	}
-	
-	@Override
-	public void mouseExited(MouseEvent e) {	
-	}
-	
-	@Override
-	public void mouseWheelMoved(MouseWheelEvent e) {
-		if(e.getWheelRotation()<0){
-			if (zoom < 15.0)
-				zoom *= 1.1;
-			repaint();
-		}
-		//Zoom out
-		if(e.getWheelRotation()>0){
-			if (zoom > 1.0)
-				zoom /= 1.1;
-			repaint();
-		}
-	}
-}

+ 0 - 7
.metadata2/.plugins/org.eclipse.core.resources/.history/37/e03584d30db9001711c7a09600ea5d68

@@ -1,7 +0,0 @@
-package config;
-
-public class SonarModel {
-	public static double expectedRead () {
-		return 0;
-	}
-}

+ 0 - 143
.metadata2/.plugins/org.eclipse.core.resources/.history/37/f0eff64ccfb90017124d9f37712eb7c1

@@ -1,143 +0,0 @@
-import java.awt.Color;
-import java.awt.Graphics;
-import java.util.ArrayList;
-import java.util.concurrent.Semaphore;
-
-import javax.swing.JPanel;
-
-import lejos.geom.Line;
-import lejos.robotics.mapping.LineMap;
-import lejos.robotics.navigation.Pose;
-
-public class ScannerImage extends JPanel {
-	private Pose pose;
-	private LineMap map;
-	private ArrayList<SonarRead> lista_leituras;
-	private Semaphore semaphore;
-
-	class SonarRead {
-		public double distance;
-		public double ang;
-		public double expected;
-
-		SonarRead(double distance, double ang, double expected) {
-			this.ang = ang;
-			this.distance = distance;
-			this.expected = expected;
-		}
-	}
-
-	@Override
-	protected void paintComponent(Graphics g) {
-		int w = this.getWidth() / 2;
-		int h = this.getHeight();
-		int distance = h * 2 / 25;
-		g.setColor(new Color(0f, 0f, 0f, 0.4f));
-		for (int i = 1; i <= 18; i++) {
-			int r = distance * i;
-			g.drawArc(w - r, h - r, 2 * r, 2 * r, 0, 180);
-			g.drawString(new Integer(i * 20).toString(), w - 7, h - r);
-		}
-		g.setColor(new Color(0f, 0f, 0f, 0.5f));
-		for (int i = 1; i < 6; i++) {
-			int lw = (int) (Math.cos(Math.PI / 6.0 * i) * distance * 18);
-			int lh = (int) (Math.sin(Math.PI / 6.0 * i) * distance * 18);
-			g.drawLine(w, h, lw + w, h - lh);
-		}
-		g.setColor(new Color(0f, 0f, 0f, 0.1f));
-		for (int i = 1; i < 12; i++) {
-			int lw = (int) (Math.cos(Math.PI / 12.0 * i) * distance * 18);
-			int lh = (int) (Math.sin(Math.PI / 12.0 * i) * distance * 18);
-			g.drawLine(w, h, lw + w, h - lh);
-		}
-
-		if (semaphore.tryAcquire()) {
-			double d = h * 2.0 / 25.0 / 20.0;
-
-			g.setColor(new Color(0f, 1f, 0f));
-			if (map != null && pose != null) {
-				Line[] lines = map.getLines();
-				for (int i = 0; i < lines.length; i++) {
-					Line l = lines[i];
-					double sin = Math.sin(-Math.toRadians(pose.getHeading() - 180));
-					double cos = Math.cos(-Math.toRadians(pose.getHeading() - 180));
-
-					double x1 = (l.x1 - pose.getX()) * d;
-					double y1 = (l.y1 - pose.getY()) * d;
-
-					double x2 = (l.x2 - pose.getX()) * d;
-					double y2 = (l.y2 - pose.getY()) * d;
-
-					double xx1 = x1 * cos - y1 * sin;
-					double yy1 = y1 * cos + x1 * sin;
-
-					double xx2 = x2 * cos - y2 * sin;
-					double yy2 = y2 * cos + x2 * sin;
-
-					g.drawLine((int) (w + xx1), (int) (h - yy1), (int) (w + xx2), (int) (h - yy2));
-				}
-			}
-
-			drawDots(g, w, h);
-			semaphore.release();
-		}
-	}
-
-	private void drawDots(Graphics g, int w, int h) {
-		int oval_size = 16;
-		int distance = h * 2 / 25;
-		double d = distance / 20.0;
-		double a = -oval_size / 4;
-		double x, y;
-
-		g.setColor(new Color(1f, 0f, 0f));
-		for (SonarRead r : lista_leituras) {
-			x = a + (d * r.distance) * Math.sin(Math.toRadians(r.ang));
-			y = a + (d * r.distance) * Math.cos(Math.toRadians(r.ang));
-			x = w - x;
-			y = h - y;
-			g.setColor(new Color(1f, 0f, 0f));
-			g.fillOval((int) (x - oval_size / 2.0), (int) (y - oval_size / 2.0), oval_size / 2, oval_size / 2);
-
-			x = a + (d * r.expected) * Math.sin(Math.toRadians(r.ang));
-			y = a + (d * r.expected) * Math.cos(Math.toRadians(r.ang));
-			x = w - x;
-			y = h - y;
-			g.setColor(new Color(0f, 0f, 1f));
-			g.fillOval((int) (x - oval_size / 2.0), (int) (y - oval_size / 2.0), oval_size / 2, oval_size / 2);
-		}
-		if (map == null)
-			return;
-	}
-
-	public Pose getPose() {
-		return pose;
-	}
-
-	public void addRead(Pose p, double distance, double ang, double expected) {
-		if (semaphore.tryAcquire()) {
-			if (pose == null
-					|| !(p.getX() == pose.getX() && p.getY() == pose.getY() && p.getHeading() == pose.getHeading())
-					|| lista_leituras.size() >= 180) {
-				pose = new Pose(p.getX(), p.getY(), p.getHeading());
-				lista_leituras.clear();
-			}
-			lista_leituras.add(new SonarRead(distance, ang + 90, expected));
-			semaphore.release();
-		}
-		repaint();
-	}
-
-	public ScannerImage(LineMap map) {
-		this.map = map;
-		semaphore = new Semaphore(1);
-		lista_leituras = new ArrayList<SonarRead>();
-	}
-
-	public void clean() {
-		if (semaphore.tryAcquire()) {
-			lista_leituras.clear();
-		}
-		repaint();
-	}
-}

+ 0 - 330
.metadata2/.plugins/org.eclipse.core.resources/.history/38/009b7ef4d5b90017124d9f37712eb7c1

@@ -1,330 +0,0 @@
-import java.awt.BorderLayout;
-import java.awt.event.KeyEvent;
-import java.awt.event.KeyListener;
-import java.awt.event.WindowEvent;
-import java.awt.event.WindowListener;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.util.ArrayList;
-
-import javax.swing.JFrame;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-import javax.swing.JSplitPane;
-import javax.swing.SwingUtilities;
-
-import config.Map;
-import config.Models;
-import lejos.robotics.mapping.LineMap;
-import lejos.robotics.navigation.Pose;
-import robots.BluetoothRobot;
-import robots.DataPose;
-import robots.Robot;
-import robots.RobotReturn;
-import robots.VirtualRobot;
-
-public class MainProgram extends JPanel implements KeyListener, WindowListener, RobotReturn {
-
-	private MapImage imap;
-	private Robot robot;
-	private ScannerImage scanner;
-	private Models smodel;
-
-	public static final byte FORWARD = 0;
-	public static final byte STOP = 1;
-	public static final byte EXIT = 2;
-	public static final byte LEFT = 3;
-	public static final byte RIGHT = 4;
-	public static final byte BACKWARD = 5;
-
-	public MainProgram(LineMap map, Robot robot) {
-		this.robot = robot;
-		JFrame frame = new JFrame("Mapa MAC0318");
-
-		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-		frame.setLayout(new BorderLayout());
-		imap = new MapImage(map);
-		scanner = new ScannerImage(map);
-		smodel = new Models(map);
-		// frame.add(this.map);
-		frame.setSize(800, 800);
-		frame.setVisible(true);
-
-		frame.setFocusable(true);
-		frame.requestFocusInWindow();
-		frame.addKeyListener(this);
-		frame.addWindowListener(this);
-
-		JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, scanner, imap);
-		splitPane.setOneTouchExpandable(true);
-		splitPane.setDividerLocation((int) (frame.getHeight() / 2));
-		frame.add(splitPane);
-
-		boolean result = false;
-		if (robot != null)
-			result = robot.connect();
-	
-
-		if (result == false) {
-			JOptionPane.showMessageDialog(null, "Não foi possível conectar ao robô");
-		}
-
-		imap.addPoint(new Pose());
-		showHelp();
-	}
-
-	private void showHelp() {
-		String text = "1,2,3 - Change global map view\n";
-		text += "s - Set Pose.\n";
-		text += "l - Show global map trace.\n";
-		text += "c - Clean maps.\n";
-		text += "m - Enter robot movement.\n";
-		text += "r - Enter robo rotation.\n";
-		text += "a - Colect sonar data.\n";
-		text += "z - Make sonar continuous scanner.\n";
-		text += "i - Stop continuous scanner.\n";
-		text += "g - Save global map image.\n";
-		text += "f - Save scanner image.\n";
-		text += "<arrows> - Move robot.\n";
-		text += "h - help.\n";
-		JOptionPane.showMessageDialog(null, text, "HELP", JOptionPane.PLAIN_MESSAGE);
-	}
-
-	public void addPoint(Pose p) {
-		imap.addPoint(p);
-	}
-
-	@Override
-	public void keyPressed(KeyEvent e) {
-		
-		char input = e.getKeyChar();
-		switch (input) {
-		case '1':
-			imap.setVisual(0);
-			break;
-		case '2':
-			imap.setVisual(1);
-			break;
-		case '3':
-			imap.setVisual(2);
-			break;
-		case 'l':
-			imap.showLine();
-			break;
-		case 'g':
-			imap.save();
-			break;
-		case 'c':
-			imap.clean();
-			scanner.clean();
-			break;
-		case 's':
-			setRobotPose();
-			break;
-		case 'm':
-			moveRobot();
-			break;
-		case 'r':
-			rotateRobot();
-			break;
-		case 'a':
-			colectSonar();
-			break;
-		case 'z':
-			robot.scann(this);
-			break;
-		case 'i':
-			robot.stopScann();
-			break;
-		case 'h':
-			showHelp();
-			break;
-		default:
-			break;
-		}
-
-	
-
-		if (robot == null)
-			return;
-
-		scanner.clean();
-		switch (e.getKeyCode()) {
-		case KeyEvent.VK_UP:
-			robot.moveForward();
-			break;
-		case KeyEvent.VK_DOWN:
-			robot.moveBackward();
-			break;
-		case KeyEvent.VK_LEFT:
-			robot.moveLeft();
-			break;
-		case KeyEvent.VK_RIGHT:
-			robot.moveRight();
-			break;
-		}
-	}
-
-	private void colectSonar() {
-		int interval;
-		try {
-			String rs = JOptionPane.showInputDialog("Interval (degress):");
-			interval = Integer.parseInt(rs);
-		} catch (Exception e) {
-			return;
-		}
-		ArrayList<DataPose> data = robot.scann(-90, 90, interval);
-		
-		Integer name = new Integer((int) (Math.random()*1000000));
-		String rand_name = name.toString()+".txt";
-	    FileWriter fileWriter;
-		try {
-			fileWriter = new FileWriter(rand_name);
-		} catch (IOException e) {
-			return;
-		}
-		scanner.clean();
-	    PrintWriter printWriter = new PrintWriter(fileWriter);
-		printWriter.print("x,y,headinng,sonar_ang,read,expected\n");
-		for(DataPose d: data) {
-			robotData(d);
-
-			double expected = smodel.expectedSonarRead(d.getPose(), d.getSensorAngle());
-			printWriter.print(d.getPose().getX()+",");
-			printWriter.print(d.getPose().getY()+",");
-			printWriter.print(d.getPose().getHeading()+",");
-			printWriter.print(d.getSensorAngle()+",");
-			printWriter.print(d.getDistance()+",");
-			printWriter.print(expected+"\n");
-		}
-
-		printWriter.close();
-		JOptionPane.showMessageDialog(null, "Reads saved in "+rand_name);
-	}
-
-	private void rotateRobot() {
-		try {
-			String rs = JOptionPane.showInputDialog("Enter rotation (degress-clockwise):");
-			double r = Double.parseDouble(rs);
-			robot.rotate(r);
-			scanner.clean();
-		} catch (Exception e) {
-		}
-	}
-	
-
-	private void moveRobot() {
-		try {
-			String rs = JOptionPane.showInputDialog("Enter distance (cm):");
-			double r = Double.parseDouble(rs);
-			robot.move(r);
-			scanner.clean();
-		} catch (Exception e) {
-		}
-	}
-
-	private void setRobotPose() {
-		try {
-			String xs = JOptionPane.showInputDialog("Enter x (cm):");
-			if (xs.length() == 0) return;
-			String ys = JOptionPane.showInputDialog("Enter y (cm):");
-			if (ys.length() == 0) return;
-			String as = JOptionPane.showInputDialog("Enter heading (degress):");
-			if (as.length() == 0) return;
-		
-			float x = Float.parseFloat(xs);
-			float y = Float.parseFloat(ys);
-			float a = Float.parseFloat(as);
-			robot.setPose(x, y, a);
-			scanner.setPose(new Pose(x, y, a));
-			scanner.clean();
-		} catch (Exception e) {
-		}
-	}
-
-	@Override
-	public void keyReleased(KeyEvent arg0) {
-		if (robot == null)
-			return;
-		robot.stop();
-	}
-
-	@Override
-	public void keyTyped(KeyEvent arg0) {
-	}
-
-	@Override
-	public void windowOpened(WindowEvent e) {
-
-	}
-
-	@Override
-	public void windowClosing(WindowEvent e) {
-		System.err.println("Fechando...");
-		if (robot == null)
-			return;
-		robot.disconnect();
-
-	}
-
-	@Override
-	public void windowClosed(WindowEvent e) {
-	}
-
-	@Override
-	public void windowIconified(WindowEvent e) {
-
-	}
-
-	@Override
-	public void windowDeiconified(WindowEvent e) {
-
-	}
-
-	@Override
-	public void windowActivated(WindowEvent e) {
-
-	}
-
-	@Override
-	public void windowDeactivated(WindowEvent e) {
-	}
-
-	@Override
-	public void robotData(DataPose data) {
-		// posicao do robo
-		Pose p = data.getPose();
-
-		imap.addPoint(p);
-		if (data.getDistance() == 255) {
-			scanner.setPose(p);
-			return;
-		}
-
-		// ponto do ultrasonico
-		double sensor_ang = Math.toRadians(data.getSensorAngle() + p.getHeading());
-		double dx = Math.cos(sensor_ang) * data.getDistance();
-		double dy = Math.sin(sensor_ang) * data.getDistance();
-		double expected = smodel.expectedSonarRead(p, data.getSensorAngle());
-		imap.addRead(p.getX() + dx, p.getY() + dy);
-		scanner.addRead(p, data.getDistance(), data.getSensorAngle(), expected);
-	}
-
-	public static void main(String[] args) {
-
-		LineMap map = Map.makeMap();
-		Robot robotv = new VirtualRobot(map);
-		Robot robotbt = new BluetoothRobot(null);
-
-		Object[] possibleValues = { robotv, robotbt };
-		Object robot = JOptionPane.showInputDialog(null, "Choose one", "Input", JOptionPane.PLAIN_MESSAGE, null,
-				possibleValues, possibleValues[0]);
-
-		SwingUtilities.invokeLater(new Runnable() {
-			public void run() {
-				new MainProgram(map, (Robot) robot);
-			}
-		});
-	}
-}

+ 0 - 204
.metadata2/.plugins/org.eclipse.core.resources/.history/38/90b4e88ef9b00017155fe9ac88a695a6

@@ -1,204 +0,0 @@
-import java.awt.Color;
-import java.awt.Graphics;
-import java.awt.Point;
-import java.awt.event.MouseAdapter;
-import java.awt.event.MouseEvent;
-import java.awt.event.MouseMotionListener;
-import java.awt.event.MouseWheelEvent;
-import java.awt.event.MouseWheelListener;
-import java.awt.image.BufferedImage;
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-
-import javax.imageio.ImageIO;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-
-public class ImageMap extends JPanel {
-    private double zoom = 2.0; // pixel per cm
-    private double grid = 10.0; // cm
-    private double centerx = 0.0;
-    private double centery = 0.0; // cm
-    private Point mousePt;
-    private ArrayList<Point3D> lista_pontos;
-    private int visual_method = 0;
-    private boolean line = false;
-    
-	public ImageMap() {
-		lista_pontos = new ArrayList<Point3D>();
-		setBackground(Color.BLACK);
-		addMouseWheelListener(new MouseWheelListener() {
-            @Override
-            public void mouseWheelMoved(MouseWheelEvent e) {
-                // TODO Auto-generated method stub
-                if(e.getWheelRotation()<0){
-                    if (zoom < 15.0)
-                        zoom *= 1.1;
-                    repaint();
-                }
-                //Zoom out
-                if(e.getWheelRotation()>0){
-                    if (zoom > 1.0)
-                        zoom /= 1.1;
-                    repaint();
-                }
-            }
-        });
-		addMouseListener(new MouseAdapter() {
-            @Override
-            public void mousePressed(MouseEvent e) {
-                mousePt = e.getPoint();
-                repaint();
-            }
-        });
-
-        addMouseMotionListener(new MouseMotionListener() {
-            @Override
-            public void mouseMoved(MouseEvent e) {
-                // TODO Auto-generated method stub
-            }
-            
-            @Override
-            public void mouseDragged(MouseEvent e) {
-                centerx += e.getX() - mousePt.x;
-                centery += e.getY() - mousePt.y;
-                mousePt = e.getPoint();
-                repaint();
-            }
-        });
-	}
-    private void drawModel (Graphics g) {
-        int width = (int) (getWidth()+2*centerx);
-        int height = (int) (getHeight()+2*centery);
-        int count = 0;
-        int x_tmp = 0, y_tmp = 0;
-        
-    	for (Point3D p : lista_pontos) {
-    		int x = width/2+(int)(p.x*zoom);
-    		int y = height/2+(int)(p.y*zoom)*-1;
-    		
-			if (visual_method == 0) {
-				g.setColor(Color.getHSBColor((float) (p.z/(2.0*Math.PI)), 1, 1));
-				g.fillOval(
-						x-(int)(zoom/2.0*1.5),
-						y-(int)(zoom/2.0*1.5),
-						(int)(zoom*1.5),
-						(int)(zoom*1.5)
-				);
-			} else if (visual_method == 1) {
-                g.setColor(Color.RED);
-                g.drawLine(
-                    width/2+(int)(p.x*zoom),
-                    height/2-(int)(p.y*zoom), 
-                    width/2+(int)(p.x*zoom+Math.sin(p.z)*zoom),
-                    height/2-(int)(p.y*zoom-Math.cos(p.z)*zoom)
-                );
-
-               g.drawLine(
-                    width/2+(int)(p.x*zoom+zoom*Math.sin(p.z)),
-                    height/2-(int)(p.y*zoom-zoom*Math.cos(p.z)),
-                    width/2+(int)(p.x*zoom+0.6*zoom*Math.sin(Math.PI/8+p.z)),
-                    height/2-(int)(p.y*zoom-0.6*zoom*Math.cos(Math.PI/8+p.z))
-                );
-			} else if (visual_method == 2) {
-				g.setColor(Color.RED);
-				g.fillOval(
-						x-(int)(zoom/2.0*1.5),
-						y-(int)(zoom/2.0*1.5),
-						(int)(zoom*1.5),
-						(int)(zoom*1.5)
-				);
-                g.setColor(Color.BLACK);
-                g.drawLine(
-                    width/2+(int)(p.x*zoom),
-                    height/2-(int)(p.y*zoom), 
-                    width/2+(int)(p.x*zoom+Math.sin(p.z)*zoom),
-                    height/2-(int)(p.y*zoom-Math.cos(p.z)*zoom)
-                );
-			}
-
-	    	if (line && count != 0) {
-	    		g.setColor(Color.LIGHT_GRAY);
-	    		g.drawLine(x_tmp, y_tmp, x, y);
-	    	}
-
-	    	x_tmp = x;
-	    	y_tmp = y;
-	    	count++;
-		}
-    }
-    
-    @Override
-    protected void paintComponent(Graphics g) {
-        int width = (int) (getWidth());
-        int height = (int) (getHeight());
-        int width2 = (int) (getWidth()+2*centerx);
-        int height2 = (int) (getHeight()+2*centery);
-        super.paintComponent(g);
-    
-        g.setColor(new Color(20, 20, 20));
-        
-        int initial_x = height2/2;
-        while (initial_x < width) {
-        	initial_x += grid*zoom;
-        	g.drawLine(0, initial_x, width, initial_x); 
-        }
-        initial_x = height2/2;
-        while (initial_x > 0) {
-        	initial_x -= grid*zoom;
-        	g.drawLine(0, initial_x, width, initial_x); 
-        }
-        int initial_y = width2/2;
-        while (initial_y < width) {
-        	initial_y += grid*zoom;
-            g.drawLine(initial_y, 0, initial_y, height);
-        }
-        initial_y = width2/2;
-        while (initial_y > 0) {
-        	initial_y -= grid*zoom;
-            g.drawLine(initial_y, 0, initial_y, height);
-        }
-
-        g.setColor(Color.ORANGE);
-        g.drawLine(width2/2, 0, width2/2, height);
-        g.drawLine(0, height2/2, width, height2/2);
-
-        drawModel(g);
-    }
-    
-    /**
-     * Adiciona um ponto ao mapa
-     * @param p ponto
-     */
-    public void addPoint(Point3D p) {
-    	lista_pontos.add(p);
-    	repaint();
-	}
-    
-    public void showLine () {
-    	line = !line;
-    	repaint();
-    }
-
-    public void setVisual (int method) {
-    	visual_method = method;
-    	repaint();
-    }
-    
-
-    public void save () {
-    	Integer name = new Integer((int) (Math.random()*1000000));
-    	BufferedImage imagebuf = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_RGB);
-    	Graphics g = imagebuf.createGraphics();
-    	g.fillRect(0, 0, imagebuf.getWidth(), imagebuf.getHeight());
-    	print(g);
-    	try {
-			ImageIO.write(imagebuf, "png",  new File(name.toString()+".png"));
-			JOptionPane.showMessageDialog(null, "Image saved.");
-		} catch (IOException e) {
-			e.printStackTrace();
-			JOptionPane.showMessageDialog(null, "Image not saved.");
-		}
-    }
-}

+ 0 - 5
.metadata2/.plugins/org.eclipse.core.resources/.history/39/509c606817b80017145c9b6064c27648

@@ -1,5 +0,0 @@
-package robots;
-
-public interface Robot {
-
-}

+ 0 - 155
.metadata2/.plugins/org.eclipse.core.resources/.history/39/707c7739c4b90017124d9f37712eb7c1

@@ -1,155 +0,0 @@
-import java.awt.Color;
-import java.awt.Graphics;
-import java.awt.event.MouseWheelEvent;
-import java.awt.event.MouseWheelListener;
-import java.util.ArrayList;
-import java.util.concurrent.Semaphore;
-
-import javax.swing.JPanel;
-
-import lejos.geom.Line;
-import lejos.robotics.mapping.LineMap;
-import lejos.robotics.navigation.Pose;
-
-public class ScannerImage extends JPanel implements MouseWheelListener {
-	private Pose pose;
-	private LineMap map;
-	private ArrayList<SonarRead> lista_leituras;
-	private Semaphore semaphore;
-	private double zoom;
-
-	class SonarRead {
-		public double distance;
-		public double ang;
-		public double expected;
-
-		SonarRead(double distance, double ang, double expected) {
-			this.ang = ang;
-			this.distance = distance;
-			this.expected = expected;
-		}
-	}
-
-	@Override
-	protected void paintComponent(Graphics g) {
-		int w = this.getWidth() / 2;
-		int h = this.getHeight();
-		int distance = (int)(h*2.0/25.0*zoom);
-		g.setColor(new Color(0f, 0f, 0f, 0.4f));
-		for (int i = 1; i <= 18; i++) {
-			int r = distance * i;
-			g.drawArc(w - r, h - r, 2 * r, 2 * r, 0, 180);
-			g.drawString(new Integer(i * 20).toString(), w - 7, h - r);
-		}
-		g.setColor(new Color(0f, 0f, 0f, 0.5f));
-		for (int i = 1; i < 6; i++) {
-			int lw = (int) (Math.cos(Math.PI / 6.0 * i) * distance * 18);
-			int lh = (int) (Math.sin(Math.PI / 6.0 * i) * distance * 18);
-			g.drawLine(w, h, lw + w, h - lh);
-		}
-		g.setColor(new Color(0f, 0f, 0f, 0.1f));
-		for (int i = 1; i < 12; i++) {
-			int lw = (int) (Math.cos(Math.PI / 12.0 * i) * distance * 18);
-			int lh = (int) (Math.sin(Math.PI / 12.0 * i) * distance * 18);
-			g.drawLine(w, h, lw + w, h - lh);
-		}
-
-		if (semaphore.tryAcquire()) {
-			double d = h * 2.0 / 25.0 / 20.0;
-
-			g.setColor(new Color(0f, 1f, 0f));
-			if (map != null && pose != null) {
-				Line[] lines = map.getLines();
-				for (int i = 0; i < lines.length; i++) {
-					Line l = lines[i];
-					double sin = Math.sin(-Math.toRadians(pose.getHeading() - 180));
-					double cos = Math.cos(-Math.toRadians(pose.getHeading() - 180));
-
-					double x1 = (l.x1 - pose.getX()) * d;
-					double y1 = (l.y1 - pose.getY()) * d;
-
-					double x2 = (l.x2 - pose.getX()) * d;
-					double y2 = (l.y2 - pose.getY()) * d;
-
-					double xx1 = x1 * cos - y1 * sin;
-					double yy1 = y1 * cos + x1 * sin;
-
-					double xx2 = x2 * cos - y2 * sin;
-					double yy2 = y2 * cos + x2 * sin;
-
-					g.drawLine((int) (w + xx1), (int) (h - yy1), (int) (w + xx2), (int) (h - yy2));
-				}
-			}
-
-			drawDots(g, w, h);
-			semaphore.release();
-		}
-	}
-
-	private void drawDots(Graphics g, int w, int h) {
-		int oval_size = 16;
-		int distance = h * 2 / 25;
-		double d = distance / 20.0*zoom;
-		double a = -oval_size / 4;
-		double x, y;
-
-		g.setColor(new Color(1f, 0f, 0f));
-		for (SonarRead r : lista_leituras) {
-			x = a + (d * r.distance) * Math.sin(Math.toRadians(r.ang));
-			y = a + (d * r.distance) * Math.cos(Math.toRadians(r.ang));
-			x = w - x;
-			y = h - y;
-			g.setColor(new Color(1f, 0f, 0f));
-			g.fillOval((int) (x - oval_size / 2.0), (int) (y - oval_size / 2.0), oval_size / 2, oval_size / 2);
-
-			x = a + (d * r.expected) * Math.sin(Math.toRadians(r.ang));
-			y = a + (d * r.expected) * Math.cos(Math.toRadians(r.ang));
-			x = w - x;
-			y = h - y;
-			g.setColor(new Color(0f, 0f, 1f));
-			g.fillOval((int) (x - oval_size / 2.0), (int) (y - oval_size / 2.0), oval_size / 2, oval_size / 2);
-		}
-		if (map == null)
-			return;
-	}
-
-	public Pose getPose() {
-		return pose;
-	}
-
-	public void addRead(Pose p, double distance, double ang, double expected) {
-		if (semaphore.tryAcquire()) {
-			if (pose == null
-					|| !(p.getX() == pose.getX() && p.getY() == pose.getY() && p.getHeading() == pose.getHeading())
-					|| lista_leituras.size() >= 180) {
-				pose = new Pose(p.getX(), p.getY(), p.getHeading());
-				lista_leituras.clear();
-			}
-			lista_leituras.add(new SonarRead(distance, ang + 90, expected));
-			semaphore.release();
-		}
-		repaint();
-	}
-
-	public ScannerImage(LineMap map) {
-		this.map = map;
-		semaphore = new Semaphore(1);
-		lista_leituras = new ArrayList<SonarRead>();
-		zoom = 1;
-	}
-
-	@Override
-	public void mouseWheelMoved(MouseWheelEvent e) {
-		if(e.getWheelRotation()<0){
-			if (zoom < 15.0)
-				zoom *= 1.1;
-			repaint();
-		}
-		//Zoom out
-		if(e.getWheelRotation()>0){
-			if (zoom > 1.0)
-				zoom /= 1.1;
-			repaint();
-		}
-	}
-}

+ 0 - 161
.metadata2/.plugins/org.eclipse.core.resources/.history/3a/509d862427bb001711b8bf632416c20d

@@ -1,161 +0,0 @@
-package robots;
-
-import java.util.ArrayList;
-import java.util.Random;
-
-import lejos.robotics.mapping.LineMap;
-import lejos.robotics.navigation.Pose;
-
-public class VirtualRobot implements Robot {
-	private Pose pose;
-	private Simulate simthread;
-	private RobotReturn rr;
-	private LineMap map;
-	private int angle = 0;
-	private Random rand;
-
-	private class Simulate extends Thread {
-		public boolean run = true;
-
-		public void run() {
-			angle = 0;
-			int add = -5;
-			while (run) {
-				DataPose data = new DataPose();
-
-				double dist = getDistance();
-
-				data.setDistance((int) dist);
-				data.setPose(pose);
-				data.setSensorAngle(angle + 90);
-
-				rr.robotData(data);
-
-				angle += add;
-				if (angle == -180 || angle == 0)
-					add *= -1;
-
-				try {
-					Thread.sleep(50);
-				} catch (InterruptedException e) {
-				}
-			}
-		}
-
-	}
-
-	public double getDistance() {
-		Pose tmppose = new Pose(pose.getX(), pose.getY(), pose.getHeading());
-		float mindist = Float.POSITIVE_INFINITY;
-		int cone = 30;
-		for (int angulo = -cone / 2; angulo <= cone / 2; angulo++) {
-			tmppose.setHeading((float) (pose.getHeading() - angulo + angle));
-			float dist = map.range(tmppose);
-			if (dist > 0 && dist < mindist)
-				mindist = dist;
-		}
-		double v = mindist + rand.nextGaussian() * 4 + Math.random() * 2;
-		v = Math.min(255, v);
-		return v;
-	}
-
-	public VirtualRobot(LineMap map) {
-		pose = new Pose();
-		pose.setHeading(0);
-		this.map = map;
-		rand = new Random();
-	}
-
-	@Override
-	public void moveForward() {
-		move(5);
-	}
-
-	@Override
-	public void moveLeft() {
-		pose.rotateUpdate(45);
-	}
-
-	@Override
-	public void moveRight() {
-		pose.rotateUpdate(-45);
-	}
-
-	@Override
-	public void moveBackward() {
-		move(-5);
-	}
-
-	@Override
-	public boolean connect() {
-		return true;
-	}
-
-	@Override
-	public void stop() {
-	}
-
-	@Override
-	public void move(double x) {
-		double dx = Math.sin(Math.toRadians(pose.getHeading())) * x;
-		double dy = Math.cos(Math.toRadians(pose.getHeading())) * x;
-		pose.translate((float) dx, (float) -dy);
-	}
-
-	@Override
-	public void rotate(double x) {
-		pose.rotateUpdate((float) -x);
-	}
-
-	@Override
-	public ArrayList<DataPose> scann(int ini, int end, int interval) {
-		ArrayList<DataPose> result = new ArrayList<DataPose>();
-		for (angle = ini-90; angle <= end-90; angle += interval) {
-			DataPose data = new DataPose();
-			double dist = getDistance();
-			data.setDistance((int) dist);
-			data.setPose(pose);
-			data.setSensorAngle(angle+90);
-			result.add(data);
-		}
-		return result;
-	}
-
-	@Override
-	public void scann(RobotReturn r) {
-		rr = r;
-		stopScann();
-		simthread = new Simulate();
-		simthread.start();
-	}
-
-	@Override
-	public void stopScann() {
-		if (simthread == null)
-			return;
-		simthread.run = false;
-		try {
-			simthread.join();
-		} catch (InterruptedException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-	}
-
-	@Override
-	public void disconnect() {
-
-	}
-
-	@Override
-	public void setPose(float x, float y, float a) {
-		pose.setHeading(a);
-		pose.setLocation(x, y);
-	}
-
-	@Override
-	public String toString() {
-		return "Virtual Robot";
-	}
-
-}

+ 0 - 119
.metadata2/.plugins/org.eclipse.core.resources/.history/3a/7045f71822bb001711b8bf632416c20d

@@ -1,119 +0,0 @@
-package robots;
-
-import java.util.ArrayList;
-
-import lejos.robotics.localization.OdometryPoseProvider;
-import lejos.robotics.navigation.Pose;
-import lejos.robotics.navigation.DifferentialPilot;
-import lejos.nxt.Motor;
-import lejos.nxt.SensorPort;
-import lejos.nxt.UltrasonicSensor;
-
-public class LCPRobot implements Robot {
-	static DifferentialPilot pilot;
-	static UltrasonicSensor sonar;
-
-	public LCPRobot() {
-
-	}
-
-	@Override
-	public void move(double x) {
-		pilot.travel(x);
-	}
-
-	@Override
-	public void rotate(double x) {
-		pilot.rotate(x);
-	}
-
-	@Override
-	public ArrayList<DataPose> scann(int ini, int end, int interval) {
-		ArrayList<DataPose> result = new ArrayList<DataPose>();
-		int val = 0;
-		double ang = 0;
-		int engine_mult = 1;
-		Motor.C.setSpeed(200);
-		Motor.C.rotate(-90 * engine_mult); // gira sonar para a posicao 0 grau
-		Motor.C.rotate(-(engine_mult * ini)); // gira ate a posicao inicial passada no parametro ini
-		Motor.C.setSpeed(80);
-		for (int j = 0; j <= (engine_mult * end); j += (engine_mult * interval)) {
-			Motor.C.rotate(-(engine_mult * interval));
-			val = sonar.getDistance();
-			// ang = (j/(5*end)) * 180.0;
-			ang = ini + interval;
-
-			DataPose data = new DataPose();
-			data.setDistance(val);
-			data.setSensorAngle(ang);
-			data.setPose(provider.getPose());
-			result.add(data);
-		}
-		Motor.C.setSpeed(200);
-		Motor.C.rotate(0);
-		return result;
-	}
-
-	@Override
-	public String toString() {
-		return "LCP Robot";
-	}
-
-	@Override
-	public void moveForward() {
-		pilot.forward();
-
-	}
-
-	@Override
-	public void moveLeft() {
-		pilot.rotateLeft();
-	}
-
-	@Override
-	public void moveRight() {
-		pilot.rotateRight();
-	}
-
-	@Override
-	public void moveBackward() {
-		pilot.backward();
-	}
-
-	@Override
-	public void stop() {
-		pilot.stop();
-	}
-
-	@Override
-	public void scann(RobotReturn r) {
-		// TODO Auto-generated method stub
-
-	}
-
-	@Override
-	public void stopScann() {
-		// TODO Auto-generated method stub
-
-	}
-
-	@Override
-	public boolean connect() {
-		//pilot = new DifferentialPilot(5.6f, 11.2f, Motor.B, Motor.A);
-		pilot = new DifferentialPilot(5.6f, 11.2f, Motor.B, Motor.A);
-		sonar = new UltrasonicSensor(SensorPort.S1);
-		pilot.setTravelSpeed(10);
-		pilot.setRotateSpeed(40);
-		return true;
-	}
-
-	@Override
-	public void disconnect() {
-	}
-
-	@Override
-	public void setPose(float x, float y, float a) {
-		provider.setPose(new Pose(x, y, a));
-	}
-
-}

+ 0 - 132
.metadata2/.plugins/org.eclipse.core.resources/.history/3a/c0191c62feb000171acddab58857c986

@@ -1,132 +0,0 @@
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-
-import lejos.nxt.Motor;
-import lejos.nxt.NXTRegulatedMotor;
-import lejos.nxt.SensorPort;
-import lejos.nxt.Sound;
-import lejos.nxt.UltrasonicSensor;
-import lejos.nxt.comm.BTConnection;
-import lejos.nxt.comm.Bluetooth;
-import lejos.nxt.comm.USB;
-import lejos.nxt.comm.USBConnection;
-import lejos.robotics.navigation.DifferentialPilot;
-import lejos.robotics.navigation.Pose;
-import lejos.robotics.localization.*;
-
-class Scanner extends Thread {
-	DataOutputStream output;
-	OdometryPoseProvider provider;
-	boolean run;
-	
-	Scanner (DataOutputStream output, OdometryPoseProvider provider) {
-		super();
-		this.output = output;
-		this.provider = provider;
-		run = true;
-	}
-	
-	public void stop () {
-		run = false;
-	}
-	
-	public void run() {
-		NXTRegulatedMotor scannerm = Motor.A;
-		UltrasonicSensor sensor = new UltrasonicSensor(SensorPort.S1) ;
-		int increment = 10;
-		int position = 0;
-		sensor.ping();
-		
-		while (run) {
-			if (position == 90 || position == -90)
-				increment *= -1;
-
-			scannerm.rotateTo(position);
-			scannerm.waitComplete();
-			
-			int distance = sensor.getDistance();
-						
-			Pose pose = provider.getPose();
-			float x = pose.getX();
-			float y = pose.getY();
-			float alpha = pose.getHeading();
-			
-			try {
-				output.write('@');
-				output.write(position);
-				output.writeFloat(alpha);
-				output.writeFloat(x);
-				output.write(distance);
-				output.writeFloat(y);
-				output.flush();
-			} catch (IOException e) {
-			}
-			position += increment;
-			sensor.ping();
-		}
-		
-	}
-}
-
-public class Sonar {
-	
-	private static final byte FORWARD = 0;
-	private static final byte STOP = 1;
-	private static final byte EXIT = 2;
-	private static final byte LEFT = 3;
-	private static final byte RIGHT = 4;
-	private static final byte BACKWARD = 5;
-	
-	public static void main(String[] args) throws Exception {
-		
-		BTConnection btc = Bluetooth.waitForConnection();
-		//USBConnection btc = USB.waitForConnection();
-		
-		DataInputStream input = btc.openDataInputStream();
-		DataOutputStream output = btc.openDataOutputStream();
-		
-		DifferentialPilot pilot = new DifferentialPilot(5.6f, 13.8f, Motor.B, Motor.C, false); 
-		OdometryPoseProvider provider = new OdometryPoseProvider(pilot);
-		pilot.setRotateSpeed(5);
-		pilot.setTravelSpeed(20);
-		
-		Scanner scan = new Scanner(output, provider);
-		scan.start();
-		int input_byte;
-		boolean run = true;
-		
-		while (run) {
-			if (input.available() <= 0) {
-				Thread.yield();
-				continue;
-			}
-			input_byte = input.readByte();
-
-			System.out.println(input_byte);
-			
-			switch (input_byte) {
-				case FORWARD:
-					pilot.forward();
-					break;
-				case STOP:
-					pilot.stop();
-					break;
-				case EXIT:
-					run = false;
-					break;
-				case LEFT:
-					pilot.rotateLeft();
-					break;
-				case RIGHT:
-					pilot.rotateRight();
-					break;
-				case BACKWARD:
-					pilot.backward();
-					break;
-			}
-		}
-		scan.stop();
-		scan.join();
-	}
-}

+ 0 - 286
.metadata2/.plugins/org.eclipse.core.resources/.history/3a/e0b200a0a5ba001711b8bf632416c20d

@@ -1,286 +0,0 @@
-package robots;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.concurrent.Semaphore;
-
-import ScannerImage.SonarRead;
-import lejos.pc.comm.NXTComm;
-import lejos.pc.comm.NXTCommException;
-import lejos.pc.comm.NXTCommFactory;
-import lejos.pc.comm.NXTInfo;
-import lejos.robotics.navigation.Pose;
-
-public class BluetoothRobot implements Robot {
-	private String name;
-	private NXTComm nxtComm;
-	private RobotReturn rr;
-	private Semaphore semaphore;
-	private Semaphore sendm;
-	private int creads = 1;
-	
-	public static final byte FORWARD = 0;
-	public static final byte STOP = 1;
-	public static final byte EXIT = 2;
-	public static final byte LEFT = 3;
-	public static final byte RIGHT = 4;
-	public static final byte BACKWARD = 5;
-	
-	public static final byte STOPSCANN = 6;
-	public static final byte STARTSCANN = 7;
-	public static final byte MOVE = 8;
-	public static final byte ROTATE = 9;
-	public static final byte SETPOSE = 10;
-	public static final byte SETSCANANGLE = 11;
-	
-	public static final byte TYPE_INT = 1;
-	public static final byte TYPE_CMD = 2;
-	public static final byte TYPE_POSE = 3;
-	public static final byte TYPE_FLOAT = 4;
-	
-	private static final int scannangle = 5;
-
-	private DataOutputStream output;
-	private DataInputStream input;
-	private Receiver receivethread;
-	private Sender sendthread;
-	
-	private ArrayList<DataPose> reads;
-	private ArrayList<SendData> tosend;
-		
-	private class Receiver extends Thread {
-		public boolean run = true;
-		@Override
-		public void run() {
-			int bytes_valiable = -1;
-			
-			while(run) {
-				try {
-					bytes_valiable = input.available();
-				} catch (IOException e1) {
-					// TODO Auto-generated catch block
-					e1.printStackTrace();
-				}
-				if (bytes_valiable >= 0) {
-					try {
-						if (input.readByte() != '@') continue;
-						int angle = input.readByte();
-						float alpha = input.readFloat();
-						float x = input.readFloat();
-						int distance = input.readByte();
-						float y = input.readFloat();
-						DataPose d = new DataPose();
-						d.setDistance(distance);
-						d.setSensorAngle(angle);
-						d.setPose(new Pose(y, -x, alpha));
-						if (rr != null)
-							rr.robotData(d);	
-						
-					} catch (IOException e1) {
-						continue;
-					}
-				}
-			}
-		}
-	}
-
-	private class Sender extends Thread {
-		@Override
-		public void run() {
-			
-		}
-	}
-	
-	private class SendData {
-		float f;
-		int i;
-		int cmd;
-		Pose p;
-		int type;
-		SendData(int cmd) {
-			this.cmd = cmd;
-			this.type = TYPE_CMD;
-		}
-		SendData(int cmd, int i) {
-			this.cmd = cmd;
-			this.i = i;
-			this.type = TYPE_INT;
-		}
-		SendData(int cmd, float f) {
-			this.cmd = cmd;
-			this.f = f;
-			this.type = TYPE_FLOAT;
-		}
-		SendData(int cmd, Pose p) {
-			this.cmd = cmd;
-			this.p = p;
-			this.type = TYPE_POSE;
-		}
-		public boolean send(DataOutputStream output) {
-			try {
-				switch (type) {
-				case TYPE_CMD:
-					output.write(cmd);
-					break;
-				case TYPE_INT:
-					output.write(cmd);
-					output.write(i);
-					break;
-				case TYPE_FLOAT:
-					output.write(cmd);
-					output.writeFloat(f);
-					break;
-				case TYPE_POSE:
-					output.write(cmd);
-					output.writeFloat(p.getX());
-					output.writeFloat(p.getY());
-					output.writeFloat(p.getHeading());
-					break;
-				default:
-					return false;
-				}
-			} catch (IOException e) {
-				return false;
-			}
-			return true;
-		}
-	}
-	
-	public BluetoothRobot (String name) {
-		
-		semaphore = new Semaphore(1);
-		
-		sendm = new Semaphore(1);
-		tosend = new ArrayList<SendData>();
-		
-		receivethread = new Receiver();
-		sendthread = new Sender();
-		this.name = name;
-	}
-	
-	public void send (SendData sd) {
-		if (sendm.tryAcquire()) {
-			tosend.add(sd);
-			sendm.release();
-		}
-	}
-
-	@Override
-	public void moveForward() {
-		send(FORWARD);
-	}
-
-	@Override
-	public void moveLeft() {
-		send(LEFT);
-	}
-
-	@Override
-	public void moveRight() {
-		send(RIGHT);
-	}
-
-	@Override
-	public void moveBackward() {
-		send(BACKWARD);
-	}
-
-	@Override
-	public boolean connect () {
-		try {
-			nxtComm = NXTCommFactory.createNXTComm(NXTCommFactory.BLUETOOTH);
-			NXTInfo[] nxtInfo = nxtComm.search(name); //find brick with NXT_ID by doing a Bluetooth inquiry
-			if (nxtInfo.length == 0) { // failed to find a brick with the ID
-				System.err.println("NO NXT found");
-				return false;
-			}
-			if (!nxtComm.open(nxtInfo[0])) { // the brick was found but a connection could not be establish
-				System.err.println("Failed to open NXT");
-				return false;
-			}
-			
-			input = new DataInputStream(nxtComm.getInputStream()); // open data input stream 
-			output = new DataOutputStream(nxtComm.getOutputStream()); // open data output stream
-			send(SETSCANANGLE, scannangle); // vai scanear em 5 em 5 graus
-		} catch (NXTCommException e) {
-			return false;
-		}
-		
-		receivethread.start();
-		
-		return true;	
-	}
-
-	@Override
-	public void stop() {
-		send(STOP);
-	}
-
-
-	@Override
-	public void move(double x) {
-		send(MOVE, (float)x);
-	}
-
-	@Override
-	public void rotate(double x) {
-		send(ROTATE, (float)x);
-	}
-
-	@Override
-	public ArrayList<DataPose> scann(int ini, int end, int interval) {
-//		send(SETSCANANGLE, interval);
-//		creads = 180/interval;
-//		reads = new ArrayList<DataPose>();
-//		scann(null);
-//		
-//		while(reads.size() <= creads) { };
-//		
-//		stopScann();
-//		creads = -1;
-		return null;
-	}
-
-	@Override
-	public void scann(RobotReturn r) {
-		rr = r;
-		send(STARTSCANN);
-	}
-
-	@Override
-	public void stopScann() {
-		send(STOPSCANN);
-	}
-
-	@Override
-	public void disconnect() {
-		send(EXIT);
-		if (receivethread == null) return;
-		receivethread.run = false;
-		try {
-			receivethread.join();
-		} catch (InterruptedException e1) {
-			System.out.println("Nao foi possivel finalizar as threads...");
-		}
-		try {
-			nxtComm.close();
-		} catch (IOException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-	}
-
-	@Override
-	public void setPose(float x, float y, float a) {
-		send(new Pose(y, -x, a));
-	}
-	
-	
-	@Override
-	public String toString() {
-		return "Bluetooth Mestre/Escravo";
-	}
-
-}

+ 0 - 285
.metadata2/.plugins/org.eclipse.core.resources/.history/3c/70e8585822b80017145c9b6064c27648

@@ -1,285 +0,0 @@
-import java.awt.Color;
-import java.awt.Graphics;
-import java.awt.Point;
-import java.awt.event.MouseEvent;
-import java.awt.event.MouseListener;
-import java.awt.event.MouseMotionListener;
-import java.awt.event.MouseWheelEvent;
-import java.awt.event.MouseWheelListener;
-import java.awt.image.BufferedImage;
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-
-import javax.imageio.ImageIO;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-
-import lejos.geom.Line;
-import lejos.robotics.mapping.LineMap;
-import lejos.robotics.navigation.Pose;
-
-public class MapImage extends JPanel implements MouseWheelListener, MouseListener, MouseMotionListener  {
-    private double zoom = 2.0; // pixel per cm
-    private double grid = 10.0; // cm
-    private double centerx = 0.0;
-    private double centery = 0.0; // cm
-    private Point mousePt;
-    private ArrayList<Pose> lista_pontos;
-    private ArrayList<Pose> lista_ultra;
-    private int visual_method = 0;
-    private boolean line = false;
-    
-    private LineMap map;
-    
-	public MapImage() {
-		super();
-		lista_pontos = new ArrayList<Pose>();
-		lista_ultra = new ArrayList<Pose>();
-		setBackground(Color.BLACK);
-		addMouseWheelListener(this);
-		addMouseListener(this);
-		addMouseMotionListener(this);
-	}
-	
-	public MapImage(LineMap map) {
-		this();
-		this.map = map;
-	}
-	
-    private void drawModel (Graphics g) {
-        int width = (int) (getWidth()+2*centerx);
-        int height = (int) (getHeight()+2*centery);
-        int count = 0;
-        int x_tmp = 0, y_tmp = 0;
-        
-	    	for (Pose p : lista_pontos) {
-			double hading = Math.toRadians(p.getHeading());
-				
-	    		int x = width/2+(int)(p.getX()*zoom);
-	    		int y = height/2+(int)(p.getY()*zoom)*-1;
-	    		
-			if (visual_method == 0) {
-				g.setColor(Color.getHSBColor((float) (hading/(2.0*Math.PI)), 1, 1));
-				g.fillOval(
-						x-(int)(zoom/2.0*1.5),
-						y-(int)(zoom/2.0*1.5),
-						(int)(zoom*1.5),
-						(int)(zoom*1.5)
-				);
-			} else if (visual_method == 1) {
-	            g.setColor(Color.RED);
-	            g.drawLine(
-	                width/2+(int)(p.getX()*zoom),
-	                height/2-(int)(p.getY()*zoom), 
-	                width/2+(int)(p.getX()*zoom+Math.sin(hading)*zoom),
-	                height/2-(int)(p.getY()*zoom-Math.cos(hading)*zoom)
-	            );
-	
-	           g.drawLine(
-	                width/2+(int)(p.getX()*zoom+zoom*Math.sin(hading)),
-	                height/2-(int)(p.getY()*zoom-zoom*Math.cos(hading)),
-	                width/2+(int)(p.getX()*zoom+0.6*zoom*Math.sin(Math.PI/8+hading)),
-	                height/2-(int)(p.getY()*zoom-0.6*zoom*Math.cos(Math.PI/8+hading))
-	            );
-			} else if (visual_method == 2) {
-				g.setColor(Color.RED);
-				g.fillOval(
-						x-(int)(zoom/2.0*1.5),
-						y-(int)(zoom/2.0*1.5),
-						(int)(zoom*1.5),
-						(int)(zoom*1.5)
-				);
-	            g.setColor(Color.BLACK);
-	            g.drawLine(
-	                width/2+(int)(p.getX()*zoom),
-	                height/2-(int)(p.getY()*zoom), 
-	                width/2+(int)(p.getX()*zoom+Math.sin(hading)*zoom),
-	                height/2-(int)(p.getY()*zoom-Math.cos(hading)*zoom)
-	            );
-			}
-	
-		    	if (line && count != 0) {
-		    		g.setColor(Color.LIGHT_GRAY);
-		    		g.drawLine(x_tmp, y_tmp, x, y);
-		    	}
-	
-		    	x_tmp = x;
-		    	y_tmp = y;
-		    	count++;
-		}
-	    	
-	    	g.setColor(Color.RED);
-	    	for (Pose p : lista_ultra) {
-	    		int x = width/2+(int)(p.getX()*zoom);
-	    		int y = height/2+(int)(p.getY()*zoom)*-1;
-	    		g.fillRect(
-					x-(int)(zoom/2.0*1.0),
-					y-(int)(zoom/2.0*1.0),
-					(int)(zoom*1.0),
-					(int)(zoom*1.0)
-			);
-	    	}
-	    	
-	    	if (map != null) {
-	    		Line[] lines = map.getLines();
-	    		for (int i = 0; i < lines.length; i++) {
-	    			Line l = lines[i];
-	            g.drawLine(
-		                width/2+(int)(l.x1*zoom),
-		                height/2-(int)(l.y1*zoom), 
-		                width/2+(int)(l.x2*zoom),
-		                height/2-(int)(l.y2*zoom)
-		        );
-	    		}
-	    	}
-    }
-    
-    @Override
-    protected void paintComponent(Graphics g) {
-        int width = (int) (getWidth());
-        int height = (int) (getHeight());
-        int width2 = (int) (getWidth()+2*centerx);
-        int height2 = (int) (getHeight()+2*centery);
-        super.paintComponent(g);
-    
-        g.setColor(new Color(20, 20, 20));
-        
-        int initial_x = height2/2;
-        while (initial_x < width) {
-        	initial_x += grid*zoom;
-        	g.drawLine(0, initial_x, width, initial_x); 
-        }
-        initial_x = height2/2;
-        while (initial_x > 0) {
-        	initial_x -= grid*zoom;
-        	g.drawLine(0, initial_x, width, initial_x); 
-        }
-        int initial_y = width2/2;
-        while (initial_y < width) {
-        	initial_y += grid*zoom;
-            g.drawLine(initial_y, 0, initial_y, height);
-        }
-        initial_y = width2/2;
-        while (initial_y > 0) {
-        	initial_y -= grid*zoom;
-            g.drawLine(initial_y, 0, initial_y, height);
-        }
-
-        g.setColor(Color.ORANGE);
-        g.drawLine(width2/2, 0, width2/2, height);
-        g.drawLine(0, height2/2, width, height2/2);
-
-        drawModel(g);
-    }
-    
-    /**
-     * Adiciona um ponto ao mapa
-     * @param p ponto
-     */
-    public void addPoint(Pose p) {
-    		lista_pontos.add(p);
-    		repaint();
-	}
-
-    public void addPoint(float x, float y, float z) {
-    		lista_pontos.add(new Pose(x, y, z));
-    		repaint();
-	}
-    
-
-    public void addRead(float x, float y) {
-    		lista_ultra.add(new Pose(x, y, 0));
-    		repaint();
-	}
-    
-
-    public void addPoint(double x, double y, double z) {
-    		addPoint((float)x, (float)y, (float)z);
-	}
-    
-
-    public void addRead(double x, double y) {
-    		addRead((float)x, (float)y);
-	}
-    
-    
-    public void showLine () {
-    		line = !line;
-    		repaint();
-    }
-
-    public void setVisual (int method) {
-    		visual_method = method;
-    		repaint();
-    }
-    
-    public void save () {
-	    	Integer name = new Integer((int) (Math.random()*1000000));
-	    	BufferedImage imagebuf = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_RGB);
-	    	Graphics g = imagebuf.createGraphics();
-	    	g.fillRect(0, 0, imagebuf.getWidth(), imagebuf.getHeight());
-	    	print(g);
-	    	try {
-			ImageIO.write(imagebuf, "png",  new File(name.toString()+".png"));
-			JOptionPane.showMessageDialog(null, "Image saved.");
-		} catch (IOException e) {
-			e.printStackTrace();
-			JOptionPane.showMessageDialog(null, "Image not saved.");
-		}
-    }
-    
-	public void clean() {
-		lista_pontos.clear();
-		lista_ultra.clear();
-		repaint();
-	}
-	@Override
-	public void mouseDragged(MouseEvent e) {
-		centerx += e.getX() - mousePt.x;
-		centery += e.getY() - mousePt.y;
-		mousePt = e.getPoint();
-		repaint();
-		
-	}
-	@Override
-	public void mouseMoved(MouseEvent e) {		
-	}
-	
-	@Override
-	public void mouseClicked(MouseEvent e) {		
-	}
-	
-	@Override
-	public void mousePressed(MouseEvent e) {
-		mousePt = e.getPoint();
-		repaint();
-		
-	}
-	@Override
-	public void mouseReleased(MouseEvent e) {		
-	}
-	
-	@Override
-	public void mouseEntered(MouseEvent e) {
-	}
-	
-	@Override
-	public void mouseExited(MouseEvent e) {	
-	}
-	
-	@Override
-	public void mouseWheelMoved(MouseWheelEvent e) {
-		if(e.getWheelRotation()<0){
-			if (zoom < 15.0)
-				zoom *= 1.1;
-			repaint();
-		}
-		//Zoom out
-		if(e.getWheelRotation()>0){
-			if (zoom > 1.0)
-				zoom /= 1.1;
-			repaint();
-		}
-	}
-}

+ 0 - 130
.metadata2/.plugins/org.eclipse.core.resources/.history/3f/709828ea0ab9001711c7a09600ea5d68

@@ -1,130 +0,0 @@
-import java.awt.Color;
-import java.awt.Graphics;
-import java.util.ArrayList;
-import java.util.concurrent.Semaphore;
-
-import javax.swing.JPanel;
-
-import lejos.geom.Line;
-import lejos.robotics.mapping.LineMap;
-import lejos.robotics.navigation.Pose;
-
-public class ScannerImage extends JPanel {
-	private Pose pose;
-	private LineMap map;
-	private ArrayList<SonarRead> lista_leituras;
-	private Semaphore semaphore;
-	
-	class SonarRead {
-		public double distance;
-		public double ang;
-		SonarRead (double distance, double ang) {
-			this.ang = ang;
-			this.distance = distance;
-		}
-	}
-	
-    @Override
-    protected void paintComponent(Graphics g) {
-    		int w = this.getWidth()/2;
-    		int h = this.getHeight();
-    		int distance = h*2/25;
-    		g.setColor(new Color(0f, 0f, 0f, 0.4f));
-    		for (int i = 1; i <= 18; i++) {
-    			int r = distance * i;
-        		g.drawArc(w-r, h-r, 2*r, 2*r, 0, 180);
-        		g.drawString(new Integer(i*20).toString(), w-7, h-r);
-    		}
-    		g.setColor(new Color(0f, 0f, 0f, 0.5f));
-    		for (int i = 1; i < 6; i++) {
-    			int lw = (int)(Math.cos(Math.PI/6.0*i)*distance * 18);
-    			int lh = (int)(Math.sin(Math.PI/6.0*i)*distance * 18);
-    			g.drawLine(w, h, lw+w, h-lh);
-    		}
-    		g.setColor(new Color(0f, 0f, 0f, 0.1f));
-    		for (int i = 1; i < 12; i++) {
-    			int lw = (int)(Math.cos(Math.PI/12.0*i)*distance * 18);
-    			int lh = (int)(Math.sin(Math.PI/12.0*i)*distance * 18);
-    			g.drawLine(w, h, lw+w, h-lh);
-    		}
-    		
-
-    		if (semaphore.tryAcquire()) {
-    			double d = h*2.0/25.0/20.0;
-    			
-    			g.setColor(new Color(0f, 1f, 0f));
-		    	if (map != null && pose!= null) {
-		    		Line[] lines = map.getLines();
-		    		for (int i = 0; i < lines.length; i++) {
-		    			Line l = lines[i];
-		    			double sin = Math.sin(Math.toRadians(pose.getHeading()-90));
-		    			double cos = Math.cos(Math.toRadians(pose.getHeading()-90));
-		    			
-		    			double x1 = (l.x1/10.0-pose.getX())*d;
-		    			double y1 = (l.y1/10.0-pose.getY())*d;
-		    			
-		    			double x2 = (l.x2/10.0-pose.getX())*d;
-		    			double y2 = (l.y2/10.0-pose.getY())*d;
-		    			
-		    			double xx1 = x1*cos-y1*sin;
-		    			double yy1 = y1*cos-x1*sin;
-
-		    			double xx2 = x2*cos-y2*sin;
-		    			double yy2 = y2*cos-x2*sin;
-		    			
-		            g.drawLine(
-			                (int)(w+xx1),
-			                (int)(h-yy1), 
-			                (int)(w+xx2),
-			                (int)(h-yy2)
-			        );
-		    		}
-		    	}
-    		
-    			drawDots(g, w, h);
-    	        semaphore.release();
-    		}
-    	}
-    
-
-
-	private void drawDots(Graphics g, int w, int h) {
-		g.setColor(new Color(1f, 0f, 0f));
-		int oval_size = 16;
-		int distance = h*2/25;
-		double d = distance/20.0;
-		double a = -oval_size/4;
-		for (SonarRead r: lista_leituras) {
-			double x = a+(d*r.distance)*Math.sin(Math.toRadians(r.ang));
-			double y = a+(d*r.distance)*Math.cos(Math.toRadians(r.ang));
-			x = w - x;
-			y = h - y;
-		g.fillOval((int)(x-oval_size/2.0), (int)(y-oval_size/2.0), oval_size/2, oval_size/2);
-		}
-		if (map == null) return;
-	}
-   
-
-	public Pose getPose() {
-		return pose;
-	}
-
-	public void addRead(Pose p, double distance, double ang) {
-		if (semaphore.tryAcquire()) {
-			if (pose == null || !(p.getX() == pose.getX() && p.getY() == pose.getY() 
-					&& p.getHeading() == pose.getHeading())) {
-				pose = new Pose(p.getX(), p.getY(), p.getHeading());
-				lista_leituras.clear();
-			}
-			lista_leituras.add(new SonarRead(distance, ang+90));
-	        semaphore.release();
-		}
-		repaint();
-	}
-	
-	public ScannerImage(LineMap map) {
-		this.map = map;
-		semaphore = new Semaphore(1);
-		lista_leituras =  new ArrayList<SonarRead>();
-	}
-}

+ 0 - 130
.metadata2/.plugins/org.eclipse.core.resources/.history/3f/d06d9e71efb00017199bf59f1090384c

@@ -1,130 +0,0 @@
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-
-import lejos.nxt.Motor;
-import lejos.nxt.NXTRegulatedMotor;
-import lejos.nxt.SensorPort;
-import lejos.nxt.Sound;
-import lejos.nxt.UltrasonicSensor;
-import lejos.nxt.comm.BTConnection;
-import lejos.nxt.comm.Bluetooth;
-import lejos.nxt.comm.USB;
-import lejos.nxt.comm.USBConnection;
-import lejos.robotics.navigation.DifferentialPilot;
-import lejos.robotics.navigation.Pose;
-import lejos.robotics.localization.*;
-
-class Scanner extends Thread {
-	DataOutputStream output;
-	OdometryPoseProvider provider;
-	boolean run;
-	
-	Scanner (DataOutputStream output, OdometryPoseProvider provider) {
-		super();
-		this.output = output;
-		this.provider = provider;
-		run = true;
-	}
-	
-	public void stop () {
-		run = false;
-	}
-	
-	public void run() {
-		NXTRegulatedMotor scannerm = Motor.A;
-		UltrasonicSensor sensor = new UltrasonicSensor(SensorPort.S1) ;
-		int increment = 10;
-		int position = 0;
-		sensor.ping();
-		
-		while (run) {
-			if (position == 90 || position == -90)
-				increment *= -1;
-
-			scannerm.rotateTo(position);
-			scannerm.waitComplete();
-			
-			int distance = sensor.getDistance();
-						
-			Pose pose = provider.getPose();
-			float x = pose.getX();
-			float y = pose.getY();
-			
-			try {
-				output.write('@');
-				output.write(position);
-				output.writeFloat(x);
-				output.write(distance);
-				output.writeFloat(y);
-				output.flush();
-			} catch (IOException e) {
-			}
-			position += increment;
-			sensor.ping();
-		}
-		
-	}
-}
-
-public class Sonar {
-	
-	private static final byte FORWARD = 0;
-	private static final byte STOP = 1;
-	private static final byte EXIT = 2;
-	private static final byte LEFT = 3;
-	private static final byte RIGHT = 4;
-	private static final byte BACKWARD = 5;
-	
-	public static void main(String[] args) throws Exception {
-		
-		//BTConnection btc = Bluetooth.waitForConnection();
-		USBConnection btc = USB.waitForConnection();
-		
-		DataInputStream input = btc.openDataInputStream();
-		DataOutputStream output = btc.openDataOutputStream();
-		
-		DifferentialPilot pilot = new DifferentialPilot(5.6f, 13.8f, Motor.B, Motor.C, false); 
-		OdometryPoseProvider provider = new OdometryPoseProvider(pilot);
-		pilot.setRotateSpeed(5);
-		pilot.setTravelSpeed(20);
-		
-		Scanner scan = new Scanner(output, provider);
-		scan.start();
-		int input_byte;
-		boolean run = true;
-		
-		while (run) {
-			if (input.available() <= 0) {
-				Thread.yield();
-				continue;
-			}
-			input_byte = input.readByte();
-
-			System.out.println(input_byte);
-			
-			switch (input_byte) {
-				case FORWARD:
-					pilot.forward();
-					break;
-				case STOP:
-					pilot.stop();
-					break;
-				case EXIT:
-					run = false;
-					break;
-				case LEFT:
-					pilot.rotateLeft();
-					break;
-				case RIGHT:
-					pilot.rotateRight();
-					break;
-				case BACKWARD:
-					pilot.backward();
-					break;
-			}
-		}
-		scan.stop();
-		scan.join();
-	}
-}

+ 0 - 306
.metadata2/.plugins/org.eclipse.core.resources/.history/4/10091a42d3b90017124d9f37712eb7c1

@@ -1,306 +0,0 @@
-import java.awt.BorderLayout;
-import java.awt.event.KeyEvent;
-import java.awt.event.KeyListener;
-import java.awt.event.WindowEvent;
-import java.awt.event.WindowListener;
-import java.util.ArrayList;
-
-import javax.swing.ButtonGroup;
-import javax.swing.JFrame;
-import javax.swing.JMenu;
-import javax.swing.JMenuBar;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-import javax.swing.JRadioButtonMenuItem;
-import javax.swing.JSplitPane;
-import javax.swing.SwingUtilities;
-
-import config.Map;
-import config.Models;
-import lejos.robotics.mapping.LineMap;
-import lejos.robotics.navigation.Pose;
-import robots.BluetoothRobot;
-import robots.DataPose;
-import robots.Robot;
-import robots.RobotReturn;
-import robots.VirtualRobot;
-
-public class MainProgram extends JPanel implements KeyListener, WindowListener, RobotReturn {
-
-	private MapImage imap;
-	private Robot robot;
-	private ScannerImage scanner;
-	private Models smodel;
-
-	public static final byte FORWARD = 0;
-	public static final byte STOP = 1;
-	public static final byte EXIT = 2;
-	public static final byte LEFT = 3;
-	public static final byte RIGHT = 4;
-	public static final byte BACKWARD = 5;
-
-	public MainProgram(LineMap map, Robot robot) {
-		this.robot = robot;
-		JFrame frame = new JFrame("Mapa MAC0318");
-
-		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-		frame.setLayout(new BorderLayout());
-		imap = new MapImage(map);
-		scanner = new ScannerImage(map);
-		smodel = new Models(map);
-		// frame.add(this.map);
-		frame.setSize(800, 800);
-		frame.setVisible(true);
-
-		frame.setFocusable(true);
-		frame.requestFocusInWindow();
-		frame.addKeyListener(this);
-		frame.addWindowListener(this);
-
-		JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, scanner, imap);
-		splitPane.setOneTouchExpandable(true);
-		splitPane.setDividerLocation((int) (frame.getHeight() / 2));
-		frame.add(splitPane);
-
-		boolean result = false;
-		if (robot != null)
-			result = robot.connect();
-	
-
-		if (result == false) {
-			JOptionPane.showMessageDialog(null, "Não foi possível conectar ao robô");
-		}
-
-		showHelp();
-	}
-
-	private void showHelp() {
-		String text = "1,2,3 - Change global map view\n";
-		text += "s - Set Pose.\n";
-		text += "l - Show global map trace.\n";
-		text += "c - Clean maps.\n";
-		text += "m - Enter robot movement.\n";
-		text += "r - Enter robo rotation.\n";
-		text += "a - Colect sonar data.\n";
-		text += "z - Make sonar continuous scanner.\n";
-		text += "i - Stop continuous scanner.\n";
-		text += "g - Save global map image.\n";
-		text += "f - Save scanner image.\n";
-		text += "<arrows> - Move robot.\n";
-		text += "h - help.\n";
-		JOptionPane.showMessageDialog(null, text, "HELP", JOptionPane.PLAIN_MESSAGE);
-	}
-
-	public void addPoint(Pose p) {
-		imap.addPoint(p);
-	}
-
-	@Override
-	public void keyPressed(KeyEvent e) {
-		
-		char input = e.getKeyChar();
-		switch (input) {
-		case '1':
-			imap.setVisual(0);
-			break;
-		case '2':
-			imap.setVisual(1);
-			break;
-		case '3':
-			imap.setVisual(2);
-			break;
-		case 'l':
-			imap.showLine();
-			break;
-		case 'g':
-			imap.save();
-			break;
-		case 'c':
-			imap.clean();
-			scanner.clean();
-			break;
-		case 's':
-			setRobotPose();
-			break;
-		case 'm':
-			moveRobot();
-			break;
-		case 'r':
-			rotateRobot();
-			break;
-		case 'a':
-			colectSonar();
-			break;
-		case 'z':
-			robot.scann(this);
-			break;
-		case 'i':
-			robot.stopScann();
-			break;
-		case 'h':
-			showHelp();
-			break;
-		default:
-			break;
-		}
-
-	
-
-		if (robot == null)
-			return;
-
-		scanner.clean();
-		switch (e.getKeyCode()) {
-		case KeyEvent.VK_UP:
-			robot.moveForward();
-			break;
-		case KeyEvent.VK_DOWN:
-			robot.moveBackward();
-			break;
-		case KeyEvent.VK_LEFT:
-			robot.moveLeft();
-			break;
-		case KeyEvent.VK_RIGHT:
-			robot.moveRight();
-			break;
-		}
-	}
-
-	private void colectSonar() {
-		int interval;
-		try {
-			String rs = JOptionPane.showInputDialog("Interval (degress):");
-			interval = Integer.parseInt(rs);
-		} catch (Exception e) {
-			return;
-		}
-		ArrayList<DataPose> data = robot.scann(-90, 90, interval);
-		for(DataPose d: data) robotData(d);
-		scanner.clean();
-	}
-
-	private void rotateRobot() {
-		try {
-			String rs = JOptionPane.showInputDialog("Enter rotation (degress-clockwise):");
-			double r = Double.parseDouble(rs);
-			robot.rotate(r);
-			scanner.clean();
-		} catch (Exception e) {
-		}
-	}
-	
-
-	private void moveRobot() {
-		try {
-			String rs = JOptionPane.showInputDialog("Enter distance (cm):");
-			double r = Double.parseDouble(rs);
-			robot.move(r);
-			scanner.clean();
-		} catch (Exception e) {
-		}
-	}
-
-	private void setRobotPose() {
-		try {
-			String xs = JOptionPane.showInputDialog("Enter x (cm):");
-			if (xs.length() == 0) return;
-			String ys = JOptionPane.showInputDialog("Enter y (cm):");
-			if (ys.length() == 0) return;
-			String as = JOptionPane.showInputDialog("Enter heading (degress):");
-			if (as.length() == 0) return;
-		
-			float x = Float.parseFloat(xs);
-			float y = Float.parseFloat(ys);
-			float a = Float.parseFloat(as);
-			robot.setPose(x, y, a);
-			scanner.setPose(new Pose(x, y, a));
-			scanner.clean();
-		} catch (Exception e) {
-		}
-	}
-
-	@Override
-	public void keyReleased(KeyEvent arg0) {
-		if (robot == null)
-			return;
-		robot.stop();
-	}
-
-	@Override
-	public void keyTyped(KeyEvent arg0) {
-	}
-
-	@Override
-	public void windowOpened(WindowEvent e) {
-
-	}
-
-	@Override
-	public void windowClosing(WindowEvent e) {
-		System.err.println("Fechando...");
-		if (robot == null)
-			return;
-		robot.disconnect();
-
-	}
-
-	@Override
-	public void windowClosed(WindowEvent e) {
-	}
-
-	@Override
-	public void windowIconified(WindowEvent e) {
-
-	}
-
-	@Override
-	public void windowDeiconified(WindowEvent e) {
-
-	}
-
-	@Override
-	public void windowActivated(WindowEvent e) {
-
-	}
-
-	@Override
-	public void windowDeactivated(WindowEvent e) {
-	}
-
-	@Override
-	public void robotData(DataPose data) {
-		// posicao do robo
-		Pose p = data.getPose();
-
-		imap.addPoint(p);
-		if (data.getDistance() == 255) {
-			scanner.setPose(p);
-			return;
-		}
-
-		// ponto do ultrasonico
-		double sensor_ang = Math.toRadians(data.getSensorAngle() + p.getHeading());
-		double dx = Math.cos(sensor_ang) * data.getDistance();
-		double dy = Math.sin(sensor_ang) * data.getDistance();
-		double expected = smodel.expectedSonarRead(p, data.getSensorAngle());
-		imap.addRead(p.getX() + dx, p.getY() + dy);
-		scanner.addRead(p, data.getDistance(), data.getSensorAngle(), expected);
-	}
-
-	public static void main(String[] args) {
-
-		LineMap map = Map.makeMap();
-		Robot robotv = new VirtualRobot(map);
-		Robot robotbt = new BluetoothRobot(null);
-
-		Object[] possibleValues = { robotv, robotbt };
-		Object robot = JOptionPane.showInputDialog(null, "Choose one", "Input", JOptionPane.PLAIN_MESSAGE, null,
-				possibleValues, possibleValues[0]);
-
-		SwingUtilities.invokeLater(new Runnable() {
-			public void run() {
-				new MainProgram(map, (Robot) robot);
-			}
-		});
-	}
-}

+ 0 - 181
.metadata2/.plugins/org.eclipse.core.resources/.history/4/10dd57dfafba001711b8bf632416c20d

@@ -1,181 +0,0 @@
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-
-import lejos.nxt.Motor;
-import lejos.nxt.NXTRegulatedMotor;
-import lejos.nxt.SensorPort;
-import lejos.nxt.Sound;
-import lejos.nxt.UltrasonicSensor;
-import lejos.nxt.comm.BTConnection;
-import lejos.nxt.comm.Bluetooth;
-import lejos.robotics.navigation.DifferentialPilot;
-import lejos.robotics.navigation.Pose;
-import lejos.robotics.localization.*;
-
-class Scanner extends Thread {
-	DataOutputStream output;
-	OdometryPoseProvider provider;
-	boolean run;
-	public boolean scann;
-	public int increment = 5;
-	int position = 0;
-	
-	Scanner (DataOutputStream output, OdometryPoseProvider provider) {
-		super();
-		this.output = output;
-		this.provider = provider;
-		run = true;
-		scann = false;
-	}
-	
-	public void stop () {
-		run = false;
-	}
-	
-	public void run() {
-		NXTRegulatedMotor scannerm = Motor.A;
-		UltrasonicSensor sensor = new UltrasonicSensor(SensorPort.S1) ;
-		
-		while (run) {
-			if (scann == false)
-				position = 0;
-			
-			if (position == 90 || position == -90)
-				increment *= -1;
-
-			scannerm.rotateTo(position);
-			scannerm.waitComplete();
-
-			if (scann == false)
-				continue;
-			
-			int distance = sensor.getDistance();
-						
-			Pose pose = provider.getPose();
-			float x = pose.getX();
-			float y = pose.getY();
-			float alpha = pose.getHeading();
-			
-			if (distance != 255) {
-				try {
-					output.write('@');
-					output.write(position);
-					output.writeFloat(alpha);
-					output.writeFloat(x);
-					output.write(distance);
-					output.writeFloat(y);
-					output.flush();
-				} catch (IOException e) {
-				}
-			}
-			
-			position += increment;
-		}
-		
-		scannerm.rotateTo(0);
-		scannerm.waitComplete();
-	}
-}
-
-public class Sonar {
-	
-	private static final byte FORWARD = 0;
-	private static final byte STOP = 1;
-	private static final byte EXIT = 2;
-	private static final byte LEFT = 3;
-	private static final byte RIGHT = 4;
-	private static final byte BACKWARD = 5;
-	
-	public static final byte STOPSCANN = 6;
-	public static final byte STARTSCANN = 7;
-	public static final byte MOVE = 8;
-	public static final byte ROTATE = 9;
-	public static final byte SETPOSE = 10;
-	public static final byte SETSCANANGLE = 11;
-	
-	public static void main(String[] args) throws Exception {
-		
-		BTConnection btc = Bluetooth.waitForConnection();
-		//USBConnection btc = USB.waitForConnection();
-		
-		DataInputStream input = btc.openDataInputStream();
-		DataOutputStream output = btc.openDataOutputStream();
-		
-		DifferentialPilot pilot = new DifferentialPilot(5.6f, 13.8f, Motor.B, Motor.C, false); 
-		OdometryPoseProvider provider = new OdometryPoseProvider(pilot);
-		pilot.setRotateSpeed(5);
-		pilot.setTravelSpeed(20);
-		
-		Scanner scan = new Scanner(output, provider);
-		scan.start();
-		int input_byte;
-		boolean run = true;
-		
-		Sound.twoBeeps();
-		
-		while (run) {
-			if (input.available() <= 0) {
-				Thread.yield();
-				continue;
-			}
-			input_byte = input.readByte();
-
-			System.out.println(input_byte);
-			
-			switch (input_byte) {
-				case FORWARD:
-					pilot.forward();
-					break;
-				case STOP:
-					pilot.stop();
-					break;
-				case EXIT:
-					run = false;
-					break;
-				case LEFT:
-					pilot.rotateLeft();
-					break;
-				case RIGHT:
-					pilot.rotateRight();
-					break;
-				case BACKWARD:
-					pilot.backward();
-					break;
-				case STOPSCANN:
-					scan.scann = false;
-					break;
-				case STARTSCANN:
-					scan.position = 90;
-					scan.increment = -Math.abs(scan.increment);
-					scan.scann = true;
-					break;
-				case MOVE:
-					float d = input.readFloat();
-					pilot.travel(d);
-					break;
-				case ROTATE:
-					float r = input.readFloat();
-					pilot.rotate(r);
-					break;
-				case SETPOSE:
-					float x = input.readFloat();
-					float y = input.readFloat();
-					float a = input.readFloat();
-					System.out.println("x: "+x);
-					System.out.println("y: "+y);
-					System.out.println("a: "+a);
-					provider.setPose(new Pose(x,y,a));
-					break;
-				case SETSCANANGLE:
-					int i = input.readByte();
-					System.out.println("ang: "+i);
-					scan.increment = i;
-					break;
-			}
-		}
-		Sound.beep();
-		scan.stop();
-		scan.join();
-	}
-}

+ 0 - 335
.metadata2/.plugins/org.eclipse.core.resources/.history/4/30e07428b3ba001711b8bf632416c20d

@@ -1,335 +0,0 @@
-import java.awt.BorderLayout;
-import java.awt.event.KeyEvent;
-import java.awt.event.KeyListener;
-import java.awt.event.WindowEvent;
-import java.awt.event.WindowListener;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.util.ArrayList;
-
-import javax.swing.JFrame;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-import javax.swing.JSplitPane;
-import javax.swing.SwingUtilities;
-
-import config.Map;
-import config.Models;
-import lejos.robotics.mapping.LineMap;
-import lejos.robotics.navigation.Pose;
-import robots.BluetoothRobot;
-import robots.DataPose;
-import robots.Robot;
-import robots.RobotReturn;
-import robots.VirtualRobot;
-
-public class MainProgram extends JPanel implements KeyListener, WindowListener, RobotReturn {
-
-	private MapImage imap;
-	private Robot robot;
-	private ScannerImage scanner;
-	private Models smodel;
-
-	public static final byte FORWARD = 0;
-	public static final byte STOP = 1;
-	public static final byte EXIT = 2;
-	public static final byte LEFT = 3;
-	public static final byte RIGHT = 4;
-	public static final byte BACKWARD = 5;
-
-	public MainProgram(LineMap map, Robot robot) {
-		this.robot = robot;
-		JFrame frame = new JFrame("Mapa MAC0318");
-
-		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-		frame.setLayout(new BorderLayout());
-		imap = new MapImage(map);
-		scanner = new ScannerImage(map);
-		smodel = new Models(map);
-		// frame.add(this.map);
-		frame.setSize(800, 800);
-		frame.setVisible(true);
-
-		frame.setFocusable(true);
-		frame.requestFocusInWindow();
-		frame.addKeyListener(this);
-		frame.addWindowListener(this);
-
-		JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, scanner, imap);
-		splitPane.setOneTouchExpandable(true);
-		splitPane.setDividerLocation((int) (frame.getHeight() / 2));
-		frame.add(splitPane);
-
-		showHelp();
-	}
-
-	private void showHelp() {
-		String text = "1,2,3 - Change global map view\n";
-		text += "s - Set Pose.\n";
-		text += "l - Show global map trace.\n";
-		text += "c - Clean maps.\n";
-		text += "m - Enter robot movement.\n";
-		text += "r - Enter robo rotation.\n";
-		text += "a - Colect sonar data.\n";
-		text += "z - Make sonar continuous scanner.\n";
-		text += "i - Stop continuous scanner.\n";
-		text += "g - Save global map image.\n";
-		text += "f - Save scanner image.\n";
-		text += "<arrows> - Move robot.\n";
-		text += "h - help.\n";
-		JOptionPane.showMessageDialog(null, text, "HELP", JOptionPane.PLAIN_MESSAGE);
-	}
-
-	public void addPoint(Pose p) {
-		imap.addPoint(p);
-	}
-
-	@Override
-	public void keyPressed(KeyEvent e) {
-
-		char input = e.getKeyChar();
-		switch (input) {
-		case '1':
-			imap.setVisual(0);
-			break;
-		case '2':
-			imap.setVisual(1);
-			break;
-		case '3':
-			imap.setVisual(2);
-			break;
-		case 'l':
-			imap.showLine();
-			break;
-		case 'g':
-			imap.save();
-			break;
-		case 'f':
-			scanner.save();
-			break;
-		case 'c':
-			imap.clean();
-			scanner.clean();
-			break;
-		case 's':
-			setRobotPose();
-			break;
-		case 'm':
-			moveRobot();
-			break;
-		case 'r':
-			rotateRobot();
-			break;
-		case 'a':
-			colectSonar();
-			break;
-		case 'z':
-			robot.scann(this);
-			break;
-		case 'i':
-			robot.stopScann();
-			break;
-		case 'h':
-			showHelp();
-			break;
-		default:
-			break;
-		}
-
-		if (robot == null)
-			return;
-
-		switch (e.getKeyCode()) {
-		case KeyEvent.VK_UP:
-			robot.moveForward();
-			scanner.clean();
-			break;
-		case KeyEvent.VK_DOWN:
-			robot.moveBackward();
-			scanner.clean();
-			break;
-		case KeyEvent.VK_LEFT:
-			robot.moveLeft();
-			scanner.clean();
-			break;
-		case KeyEvent.VK_RIGHT:
-			robot.moveRight();
-			scanner.clean();
-			break;
-		}
-	}
-
-	private void colectSonar() {
-		int interval;
-		try {
-			String rs = JOptionPane.showInputDialog("Interval (degress):");
-			interval = Integer.parseInt(rs);
-		} catch (Exception e) {
-			return;
-		}
-		ArrayList<DataPose> data = robot.scann(-90, 90, interval);
-		if (data == null) return;
-
-		Integer name = new Integer((int) (Math.random() * 1000000));
-		String rand_name = name.toString() + ".txt";
-		FileWriter fileWriter;
-		try {
-			fileWriter = new FileWriter(rand_name);
-		} catch (IOException e) {
-			return;
-		}
-		PrintWriter printWriter = new PrintWriter(fileWriter);
-		printWriter.print("x,y,headinng,sonar_ang,read,expected\n");
-		for (DataPose d : data) {
-			robotData(d);
-
-			double expected = smodel.expectedSonarRead(d.getPose(), d.getSensorAngle()+90);
-			printWriter.print(d.getPose().getX() + ",");
-			printWriter.print(d.getPose().getY() + ",");
-			printWriter.print(d.getPose().getHeading() + ",");
-			printWriter.print(d.getSensorAngle() + ",");
-			printWriter.print(d.getDistance() + ",");
-			printWriter.print(expected + "\n");
-		}
-
-		printWriter.close();
-		JOptionPane.showMessageDialog(null, "Reads saved in " + rand_name);
-	}
-
-	private void rotateRobot() {
-		try {
-			String rs = JOptionPane.showInputDialog("Enter rotation (degress-clockwise):");
-			double r = Double.parseDouble(rs);
-			robot.rotate(r);
-			scanner.clean();
-		} catch (Exception e) {
-		}
-	}
-
-	private void moveRobot() {
-		try {
-			String rs = JOptionPane.showInputDialog("Enter distance (cm):");
-			double r = Double.parseDouble(rs);
-			robot.move(r);
-			scanner.clean();
-		} catch (Exception e) {
-		}
-	}
-
-	private void setRobotPose() {
-		try {
-			String xs = JOptionPane.showInputDialog("Enter x (cm):");
-			if (xs.length() == 0)
-				return;
-			String ys = JOptionPane.showInputDialog("Enter y (cm):");
-			if (ys.length() == 0)
-				return;
-			String as = JOptionPane.showInputDialog("Enter heading (degress):");
-			if (as.length() == 0)
-				return;
-
-			float x = Float.parseFloat(xs);
-			float y = Float.parseFloat(ys);
-			float a = Float.parseFloat(as);
-			robot.setPose(x, y, a);
-			scanner.setPose(new Pose(x, y, a));
-			scanner.clean();
-		} catch (Exception e) {
-		}
-	}
-
-	@Override
-	public void keyReleased(KeyEvent arg0) {
-		if (robot == null)
-			return;
-		robot.stop();
-	}
-
-	@Override
-	public void keyTyped(KeyEvent arg0) {
-	}
-
-	@Override
-	public void windowOpened(WindowEvent e) {
-
-	}
-
-	@Override
-	public void windowClosing(WindowEvent e) {
-		System.err.println("Fechando...");
-		if (robot == null)
-			return;
-		robot.disconnect();
-
-	}
-
-	@Override
-	public void windowClosed(WindowEvent e) {
-	}
-
-	@Override
-	public void windowIconified(WindowEvent e) {
-
-	}
-
-	@Override
-	public void windowDeiconified(WindowEvent e) {
-
-	}
-
-	@Override
-	public void windowActivated(WindowEvent e) {
-
-	}
-
-	@Override
-	public void windowDeactivated(WindowEvent e) {
-	}
-
-	@Override
-	public void robotData(DataPose data) {
-		// posicao do robo
-		Pose p = data.getPose();
-		System.out.println(p);
-		imap.addPoint(p);
-		if (data.getDistance() == 255) {
-			scanner.setPose(p);
-			return;
-		}
-
-		// ponto do ultrasonico
-		double sensor_ang = Math.toRadians(data.getSensorAngle() + p.getHeading()-90);
-		double dx = Math.cos(sensor_ang) * data.getDistance();
-		double dy = Math.sin(sensor_ang) * data.getDistance();
-		double expected = smodel.expectedSonarRead(p, data.getSensorAngle()-90);
-		imap.addRead(p.getX() + dx, p.getY() + dy);
-		scanner.addRead(p, data.getDistance(), data.getSensorAngle()-90, expected);
-	}
-
-	public static void main(String[] args) {
-
-		LineMap map = Map.makeMap();
-		Robot robotv = new VirtualRobot(map);
-		Robot robotbt = new BluetoothRobot(null);
-
-		Object[] possibleValues = { robotv, robotbt };
-		Object robot = JOptionPane.showInputDialog(null, "Choose one", "Input", JOptionPane.PLAIN_MESSAGE, null,
-				possibleValues, possibleValues[0]);
-		
-		boolean result = false;
-		if (robot != null)
-			result = ((Robot) robot).connect();
-
-		if (result == false) {
-			JOptionPane.showMessageDialog(null, "Não foi possível conectar ao robô");
-			System.exit(ERROR);
-		}
-
-		SwingUtilities.invokeLater(new Runnable() {
-			public void run() {
-				new MainProgram(map, (Robot) robot);
-			}
-		});
-	}
-}

+ 0 - 149
.metadata2/.plugins/org.eclipse.core.resources/.history/4/d0add94ddab90017124d9f37712eb7c1

@@ -1,149 +0,0 @@
-package robots;
-
-import java.util.ArrayList;
-
-import lejos.robotics.mapping.LineMap;
-import lejos.robotics.navigation.Pose;
-
-public class VirtualRobot implements Robot {
-	private Pose pose;
-	private Simulate simthread;
-	private RobotReturn rr;
-	private LineMap map;
-
-	private class Simulate extends Thread {
-		public boolean run = true;
-
-		public void run() {
-			int ang = 0;
-			int add = -5;
-			while (run) {
-				DataPose data = new DataPose();
-				
-
-				Pose tmppose = new Pose(pose.getX(), pose.getY(), (float) (pose.getHeading() + ang));
-				float dist = map.range(tmppose);
-				if (dist == -1) dist =  255;
-				
-				
-				data.setDistance((int)dist);
-				data.setPose(pose);
-				data.setSensorAngle(ang);
-
-				rr.robotData(data);
-
-				ang += add;
-				if (ang == -180 || ang == 0)
-					add *= -1;
-
-				try {
-					Thread.sleep(50);
-				} catch (InterruptedException e) {
-				}
-			}
-		}
-
-	}
-
-	public VirtualRobot(LineMap map) {
-		pose = new Pose();
-		pose.setHeading(90);
-		this.map = map;
-	}
-
-	@Override
-	public void moveForward() {
-		move(5);
-	}
-
-	@Override
-	public void moveLeft() {
-		pose.rotateUpdate(45);
-	}
-
-	@Override
-	public void moveRight() {
-		pose.rotateUpdate(-45);
-	}
-
-	@Override
-	public void moveBackward() {
-		move(-5);
-	}
-
-	@Override
-	public boolean connect() {
-		return true;
-	}
-
-	@Override
-	public void stop() {
-	}
-
-	@Override
-	public void move(double x) {
-		double dx = Math.sin(Math.toRadians(pose.getHeading())) * x;
-		double dy = Math.cos(Math.toRadians(pose.getHeading())) * x;
-		pose.translate((float) dx, (float) -dy);
-	}
-
-	@Override
-	public void rotate(double x) {
-		pose.rotateUpdate((float)-x);
-	}
-
-	@Override
-	public ArrayList<DataPose> scann(int ini, int end, int interval) {
-		ArrayList<DataPose> result = new ArrayList<DataPose>();
-		int ang = 0;
-		for (ang  = ini+90; ang <= end+90; ang += interval) {
-			DataPose data = new DataPose();
-			Pose tmppose = new Pose(pose.getX(), pose.getY(), (float) (pose.getHeading() + ang));
-			float dist = map.range(tmppose);
-			if (dist == -1) dist =  255;
-			
-			data.setDistance((int)dist);
-			data.setPose(pose);
-			data.setSensorAngle(ang);	
-			result.add(data);
-		}
-		return result;
-	}
-
-	@Override
-	public void scann(RobotReturn r) {
-		rr = r;
-		stopScann();
-		simthread = new Simulate();
-		simthread.start();
-	}
-
-	@Override
-	public void stopScann() {
-		if (simthread == null) return;
-		simthread.run = false;
-		try {
-			simthread.join();
-		} catch (InterruptedException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-	}
-
-	@Override
-	public void disconnect() {
-
-	}
-
-	@Override
-	public void setPose(float x, float y, float a) {
-		pose.setHeading(a);
-		pose.setLocation(x, y);
-	}
-	
-	@Override
-	public String toString() {
-		return "Virtual Robot";
-	}
-
-}

+ 0 - 288
.metadata2/.plugins/org.eclipse.core.resources/.history/40/0003faaea5ba001711b8bf632416c20d

@@ -1,288 +0,0 @@
-package robots;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.concurrent.Semaphore;
-
-import ScannerImage.SonarRead;
-import lejos.pc.comm.NXTComm;
-import lejos.pc.comm.NXTCommException;
-import lejos.pc.comm.NXTCommFactory;
-import lejos.pc.comm.NXTInfo;
-import lejos.robotics.navigation.Pose;
-
-public class BluetoothRobot implements Robot {
-	private String name;
-	private NXTComm nxtComm;
-	private RobotReturn rr;
-	private Semaphore semaphore;
-	private Semaphore sendm;
-	private int creads = 1;
-	
-	public static final byte FORWARD = 0;
-	public static final byte STOP = 1;
-	public static final byte EXIT = 2;
-	public static final byte LEFT = 3;
-	public static final byte RIGHT = 4;
-	public static final byte BACKWARD = 5;
-	
-	public static final byte STOPSCANN = 6;
-	public static final byte STARTSCANN = 7;
-	public static final byte MOVE = 8;
-	public static final byte ROTATE = 9;
-	public static final byte SETPOSE = 10;
-	public static final byte SETSCANANGLE = 11;
-	
-	public static final byte TYPE_INT = 1;
-	public static final byte TYPE_CMD = 2;
-	public static final byte TYPE_POSE = 3;
-	public static final byte TYPE_FLOAT = 4;
-	
-	private static final int scannangle = 5;
-
-	private DataOutputStream output;
-	private DataInputStream input;
-	private Receiver receivethread;
-	private Sender sendthread;
-	
-	private ArrayList<DataPose> reads;
-	private ArrayList<SendData> tosend;
-		
-	private class Receiver extends Thread {
-		public boolean run = true;
-		@Override
-		public void run() {
-			int bytes_valiable = -1;
-			
-			while(run) {
-				try {
-					bytes_valiable = input.available();
-				} catch (IOException e1) {
-					// TODO Auto-generated catch block
-					e1.printStackTrace();
-				}
-				if (bytes_valiable >= 0) {
-					try {
-						if (input.readByte() != '@') continue;
-						int angle = input.readByte();
-						float alpha = input.readFloat();
-						float x = input.readFloat();
-						int distance = input.readByte();
-						float y = input.readFloat();
-						DataPose d = new DataPose();
-						d.setDistance(distance);
-						d.setSensorAngle(angle);
-						d.setPose(new Pose(y, -x, alpha));
-						if (rr != null)
-							rr.robotData(d);	
-						
-					} catch (IOException e1) {
-						continue;
-					}
-				}
-			}
-		}
-	}
-
-	private class Sender extends Thread {
-		@Override
-		public void run() {
-			
-		}
-	}
-	
-	private class SendData {
-		float f;
-		int i;
-		int cmd;
-		Pose p;
-		int type;
-		SendData(int cmd) {
-			this.cmd = cmd;
-			this.type = TYPE_CMD;
-		}
-		SendData(int cmd, int i) {
-			this.cmd = cmd;
-			this.i = i;
-			this.type = TYPE_INT;
-		}
-		SendData(int cmd, float f) {
-			this.cmd = cmd;
-			this.f = f;
-			this.type = TYPE_FLOAT;
-		}
-		SendData(int cmd, Pose p) {
-			this.cmd = cmd;
-			this.p = p;
-			this.type = TYPE_POSE;
-		}
-		public boolean send(DataOutputStream output) {
-			try {
-				switch (type) {
-				case TYPE_CMD:
-					output.write(cmd);
-					break;
-				case TYPE_INT:
-					output.write(cmd);
-					output.write(i);
-					break;
-				case TYPE_FLOAT:
-					output.write(cmd);
-					output.writeFloat(f);
-					break;
-				case TYPE_POSE:
-					output.write(cmd);
-					output.writeFloat(p.getX());
-					output.writeFloat(p.getY());
-					output.writeFloat(p.getHeading());
-					break;
-				default:
-					return false;
-				}
-			} catch (IOException e) {
-				return false;
-			}
-			return true;
-		}
-	}
-	
-	public BluetoothRobot (String name) {
-		
-		semaphore = new Semaphore(1);
-		
-		sendm = new Semaphore(1);
-		tosend = new ArrayList<SendData>();
-		
-		receivethread = new Receiver();
-		sendthread = new Sender();
-		
-		this.name = name;
-	}
-	
-	public void send (SendData sd) {
-		if (sendm.tryAcquire()) {
-			tosend.add(sd);
-			sendm.release();
-		}
-	}
-
-	@Override
-	public void moveForward() {
-		send(new SendData(FORWARD));
-	}
-
-	@Override
-	public void moveLeft() {
-		send(new SendData(LEFT));
-	}
-
-	@Override
-	public void moveRight() {
-		send(new SendData(RIGHT));
-	}
-
-	@Override
-	public void moveBackward() {
-		send(new SendData(BACKWARD));
-	}
-
-	@Override
-	public boolean connect () {
-		try {
-			nxtComm = NXTCommFactory.createNXTComm(NXTCommFactory.BLUETOOTH);
-			NXTInfo[] nxtInfo = nxtComm.search(name); //find brick with NXT_ID by doing a Bluetooth inquiry
-			if (nxtInfo.length == 0) { // failed to find a brick with the ID
-				System.err.println("NO NXT found");
-				return false;
-			}
-			if (!nxtComm.open(nxtInfo[0])) { // the brick was found but a connection could not be establish
-				System.err.println("Failed to open NXT");
-				return false;
-			}
-			
-			input = new DataInputStream(nxtComm.getInputStream()); // open data input stream 
-			output = new DataOutputStream(nxtComm.getOutputStream()); // open data output stream
-			send(new SendData(SETSCANANGLE, scannangle)); // vai scanear em 5 em 5 graus
-		} catch (NXTCommException e) {
-			return false;
-		}
-		
-		receivethread.start();
-		sendthread.start();
-		
-		return true;	
-	}
-
-	@Override
-	public void stop() {
-		send(STOP);
-	}
-
-
-	@Override
-	public void move(double x) {
-		send(MOVE, (float)x);
-	}
-
-	@Override
-	public void rotate(double x) {
-		send(ROTATE, (float)x);
-	}
-
-	@Override
-	public ArrayList<DataPose> scann(int ini, int end, int interval) {
-//		send(SETSCANANGLE, interval);
-//		creads = 180/interval;
-//		reads = new ArrayList<DataPose>();
-//		scann(null);
-//		
-//		while(reads.size() <= creads) { };
-//		
-//		stopScann();
-//		creads = -1;
-		return null;
-	}
-
-	@Override
-	public void scann(RobotReturn r) {
-		rr = r;
-		send(STARTSCANN);
-	}
-
-	@Override
-	public void stopScann() {
-		send(STOPSCANN);
-	}
-
-	@Override
-	public void disconnect() {
-		send(EXIT);
-		if (receivethread == null) return;
-		receivethread.run = false;
-		try {
-			receivethread.join();
-		} catch (InterruptedException e1) {
-			System.out.println("Nao foi possivel finalizar as threads...");
-		}
-		try {
-			nxtComm.close();
-		} catch (IOException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-	}
-
-	@Override
-	public void setPose(float x, float y, float a) {
-		send(new Pose(y, -x, a));
-	}
-	
-	
-	@Override
-	public String toString() {
-		return "Bluetooth Mestre/Escravo";
-	}
-
-}

+ 0 - 118
.metadata2/.plugins/org.eclipse.core.resources/.history/40/10637f24efb000171877feeee34c61ac

@@ -1,118 +0,0 @@
-import java.awt.BorderLayout;
-import java.awt.event.KeyEvent;
-import java.awt.event.KeyListener;
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-
-import javax.swing.JFrame;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-
-import lejos.pc.comm.NXTComm;
-import lejos.pc.comm.NXTCommException;
-import lejos.pc.comm.NXTCommFactory;
-import lejos.pc.comm.NXTInfo;
-
-public class Map extends JPanel {
-	private final class KeyboardEvent implements KeyListener {
-		public void keyTyped(KeyEvent e) {
-		}
-
-		public void keyReleased(KeyEvent e) {
-		}
-
-		public void keyPressed(KeyEvent e) {
-			char input = e.getKeyChar();
-			if (input == '1') map.setVisual(0);
-			else if (input == '2') map.setVisual(1);
-			else if (input == '3') map.setVisual(2);
-			else if (input == 'l') map.showLine();
-			else if (input == 's') map.save();
-
-			System.out.println(e.getKeyCode());
-		    switch(e.getKeyCode()) { 
-		        case KeyEvent.VK_UP:
-		        		sendthread.send(SendThread.FORWARD);
-		            break;
-		        case KeyEvent.VK_DOWN:
-		        		sendthread.send(SendThread.BACKWARD);
-		            break;
-		        case KeyEvent.VK_LEFT:
-		        		sendthread.send(SendThread.LEFT);
-		            break;
-		        case KeyEvent.VK_RIGHT :
-		        		sendthread.send(SendThread.RIGHT);
-		            break;
-		    }
-		}
-	}
-
-	private ImageMap map;
-	private SendThread sendthread;
-	private DataOutputStream output;
-	
-	public Map (DataInputStream input, DataOutputStream output) throws IOException {
-		JFrame frame = new JFrame("Mapa MAC0318");
-		KeyboardEvent event = new KeyboardEvent();
-		output = this.output;
-		sendthread = new SendThread(output);
-		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-        frame.setLayout(new BorderLayout());
-        this.map = new ImageMap();
-		frame.add(this.map);
-		frame.setSize(800, 800);
-		frame.setVisible(true);
-		
-		frame.setFocusable(true);
-		frame.requestFocusInWindow();
-		
-		frame.addKeyListener(event);
-		String text = "1,2,3 - Change view mode.\n";
-		text += "s - Save image.\n";
-		text += "l - Show trace.\n";
-		JOptionPane.showMessageDialog(null, text);
-		
-		int bytes_valiable = -1;
-		
-		while(true) {
-			try {
-				bytes_valiable = input.available();
-			} catch (IOException e1) {
-				// TODO Auto-generated catch block
-				e1.printStackTrace();
-			}
-			if (bytes_valiable >= 0) {
-				if (input.readByte() != '@') continue;
-				int angle = input.readByte();
-				float x = input.readFloat();
-				int distance = input.readByte();
-				float y = input.readFloat();
-				System.out.println(x+" "+y);
-			}
-		}
-	}
-	
-    public void addPoint(Point3D p) {
-    		map.addPoint(p);
-	}
-
-	public static void main(String[] args) throws NXTCommException, IOException {
-		NXTComm nxtComm = NXTCommFactory.createNXTComm(NXTCommFactory.BLUETOOTH); 
-		NXTInfo[] nxtInfo = nxtComm.search("NXT8"); //find brick with NXT_ID by doing a Bluetooth inquiry
-		if (nxtInfo.length == 0) { // failed to find a brick with the ID
-			System.err.println("NO NXT found");
-			System.exit(1);
-		}
-		if (!nxtComm.open(nxtInfo[0])) { // the brick was found but a connection could not be establish
-			System.err.println("Failed to open NXT");
-			System.exit(1);
-		}
-		
-		DataInputStream input = new DataInputStream(nxtComm.getInputStream()); // open data input stream 
-		DataOutputStream output = new DataOutputStream(nxtComm.getOutputStream()); // open data output stream
-				
-		Map map = new Map(null, null);
-
-	}
-}

+ 0 - 166
.metadata2/.plugins/org.eclipse.core.resources/.history/40/402e759cf9b00017155fe9ac88a695a6

@@ -1,166 +0,0 @@
-import java.awt.BorderLayout;
-import java.awt.event.KeyEvent;
-import java.awt.event.KeyListener;
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-
-import javax.swing.JFrame;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-import javax.swing.SwingUtilities;
-
-import lejos.pc.comm.NXTComm;
-import lejos.pc.comm.NXTCommException;
-import lejos.pc.comm.NXTCommFactory;
-import lejos.pc.comm.NXTInfo;
-
-public class Map extends JPanel implements KeyListener {
-
-	private ImageMap map;
-	
-	private DataOutputStream output;
-	private DataInputStream input;
-	private int before;
-
-	public static final byte FORWARD = 0;
-	public static final byte STOP = 1;
-	public static final byte EXIT = 2;
-	public static final byte LEFT = 3;
-	public static final byte RIGHT = 4;
-	public static final byte BACKWARD = 5;
-	
-	private class Receiver extends Thread {
-		@Override
-		public void run() {
-			int bytes_valiable = -1;
-			
-			while(true) {
-				try {
-					bytes_valiable = input.available();
-				} catch (IOException e1) {
-					// TODO Auto-generated catch block
-					e1.printStackTrace();
-				}
-				if (bytes_valiable >= 0) {
-					try {
-						if (input.readByte() != '@') continue;
-						int angle = input.readByte();
-						float alpha = input.readFloat();
-						float x = input.readFloat();
-						int distance = input.readByte();
-						float y = input.readFloat();
-					} catch (IOException e1) {
-						continue;
-					}
-					System.out.println(x+" "+y);
-				}
-			}
-		}
-	}
-	
-	public Map (DataInputStream in, DataOutputStream out) {
-		JFrame frame = new JFrame("Mapa MAC0318");
-		Receiver r = new Receiver();
-		output = out;
-		input = in;
-		before = -1;
-		
-		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-        frame.setLayout(new BorderLayout());
-        map = new ImageMap();
-		frame.add(this.map);
-		frame.setSize(800, 800);
-		frame.setVisible(true);
-		
-		frame.setFocusable(true);
-		frame.requestFocusInWindow();
-		frame.addKeyListener(this);
-		
-		r.start();
-		
-		String text = "1,2,3 - Change view mode.\n";
-		text += "s - Save image.\n";
-		text += "l - Show trace.\n";
-		JOptionPane.showMessageDialog(null, text);
-	}
-	
-    public void addPoint(Point3D p) {
-    		map.addPoint(p);
-	}
-
-	@Override
-	public void keyPressed(KeyEvent e) {
-		char input = e.getKeyChar();
-		if (input == '1') map.setVisual(0);
-		else if (input == '2') map.setVisual(1);
-		else if (input == '3') map.setVisual(2);
-		else if (input == 'l') map.showLine();
-		else if (input == 's') map.save();
-		
-		 switch(e.getKeyCode()) { 
-	        case KeyEvent.VK_UP:
-	        		sendCmd(FORWARD);
-	            break;
-	        case KeyEvent.VK_DOWN:
-	        		sendCmd(BACKWARD);
-	            break;
-	        case KeyEvent.VK_LEFT:
-	        		sendCmd(LEFT);
-	            break;
-	        case KeyEvent.VK_RIGHT :
-	        		sendCmd(RIGHT);
-	            break;
-	    }			 
-	}
-
-	@Override
-	public void keyReleased(KeyEvent arg0) {
-		sendCmd(STOP);
-	}
-
-	@Override
-	public void keyTyped(KeyEvent arg0) {
-		// TODO Auto-generated method stub
-		
-	}
-	
-	private void sendCmd (int cmd) {
-		if (before != cmd) {
-			try {
-				output.write(cmd);
-				output.flush();
-				System.out.println("Send cmd");
-			} catch (IOException e1) {
-				System.out.println("Erro send cmd");
-				before = -1;
-				sendCmd (cmd);
-			}
-			before = cmd;
-		}
-	}
-	
-
-	public static void main(String[] args) throws NXTCommException, IOException {
-		NXTComm nxtComm = NXTCommFactory.createNXTComm(NXTCommFactory.BLUETOOTH); 
-		NXTInfo[] nxtInfo = nxtComm.search("NXT8"); //find brick with NXT_ID by doing a Bluetooth inquiry
-		if (nxtInfo.length == 0) { // failed to find a brick with the ID
-			System.err.println("NO NXT found");
-			System.exit(1);
-		}
-		if (!nxtComm.open(nxtInfo[0])) { // the brick was found but a connection could not be establish
-			System.err.println("Failed to open NXT");
-			System.exit(1);
-		}
-		
-		final DataInputStream input = new DataInputStream(nxtComm.getInputStream()); // open data input stream 
-		final DataOutputStream output = new DataOutputStream(nxtComm.getOutputStream()); // open data output stream
-		
-		SwingUtilities.invokeLater(new Runnable() {
-            public void run() {
-            	new Map(input, output);
-            }
-        });
-		
-	}
-}

+ 0 - 26
.metadata2/.plugins/org.eclipse.core.resources/.history/40/50ba3f3713b9001711c7a09600ea5d68

@@ -1,26 +0,0 @@
-package config;
-
-import lejos.geom.Line;
-import lejos.robotics.mapping.LineMap;
-import lejos.robotics.navigation.Pose;
-
-public class Models {
-	private LineMap map;
-
-	public Models(LineMap map) {
-		this.map = map;
-	}
-
-	public double expectedSonarRead(Pose p) {
-		// o modelo apresentado aqui eh o mais burro
-		// ele pega a menor distancia do robo a um segmento
-		double min = Double.MAX_VALUE;
-		double d;
-		for (Line l : map.getLines()) {
-			d = l.ptSegDist(p.getX() * 10, p.getY() * 10);
-			min = Math.min(min, d);
-		}
-		System.out.println(min);
-		return min / 10.0;
-	}
-}

+ 0 - 138
.metadata2/.plugins/org.eclipse.core.resources/.history/40/a0a25931d5b90017124d9f37712eb7c1

@@ -1,138 +0,0 @@
-package robots;
-
-import java.util.ArrayList;
-
-import lejos.robotics.mapping.LineMap;
-import lejos.robotics.navigation.Pose;
-
-public class VirtualRobot implements Robot {
-	private Pose pose;
-	private Simulate simthread;
-	private RobotReturn rr;
-	private LineMap map;
-
-	private class Simulate extends Thread {
-		public boolean run = true;
-
-		public void run() {
-			int ang = 0;
-			int add = -5;
-			while (run) {
-				DataPose data = new DataPose();
-				
-
-				Pose tmppose = new Pose(pose.getX(), pose.getY(), (float) (pose.getHeading() + ang));
-				float dist = map.range(tmppose);
-				if (dist == -1) dist =  255;
-				
-				
-				data.setDistance((int)dist);
-				data.setPose(pose);
-				data.setSensorAngle(ang);
-
-				rr.robotData(data);
-
-				ang += add;
-				if (ang == -180 || ang == 0)
-					add *= -1;
-
-				try {
-					Thread.sleep(50);
-				} catch (InterruptedException e) {
-				}
-			}
-		}
-
-	}
-
-	public VirtualRobot(LineMap map) {
-		pose = new Pose();
-		pose.setHeading(90);
-		this.map = map;
-	}
-
-	@Override
-	public void moveForward() {
-		double dx = Math.sin(Math.toRadians(pose.getHeading())) * 5;
-		double dy = Math.cos(Math.toRadians(pose.getHeading())) * 5;
-		pose.translate((float) dx, (float) -dy);
-	}
-
-	@Override
-	public void moveLeft() {
-		pose.rotateUpdate(45);
-	}
-
-	@Override
-	public void moveRight() {
-		pose.rotateUpdate(-45);
-	}
-
-	@Override
-	public void moveBackward() {
-		double dx = Math.sin(Math.toRadians(pose.getHeading())) * 5;
-		double dy = Math.cos(Math.toRadians(pose.getHeading())) * 5;
-		pose.translate((float) -dx, (float) dy);
-	}
-
-	@Override
-	public boolean connect() {
-		return true;
-	}
-
-	@Override
-	public void stop() {
-	}
-
-	@Override
-	public void move(double x) {
-		// TODO Auto-generated method stub
-
-	}
-
-	@Override
-	public void rotate(double x) {
-		pose.rotateUpdate((float)x);
-	}
-
-	@Override
-	public ArrayList<DataPose> scann(int ini, int end, int interval) {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	@Override
-	public void scann(RobotReturn r) {
-		rr = r;
-		simthread = new Simulate();
-		simthread.start();
-	}
-
-	@Override
-	public void stopScann() {
-		simthread.run = false;
-		try {
-			simthread.join();
-		} catch (InterruptedException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-	}
-
-	@Override
-	public void disconnect() {
-
-	}
-
-	@Override
-	public void setPose(float x, float y, float a) {
-		pose.setHeading(a);
-		pose.setLocation(x, y);
-	}
-	
-	@Override
-	public String toString() {
-		return "Virtual Robot";
-	}
-
-}

+ 0 - 336
.metadata2/.plugins/org.eclipse.core.resources/.history/40/a0df7c2e21bb001711b8bf632416c20d

@@ -1,336 +0,0 @@
-import java.awt.BorderLayout;
-import java.awt.event.KeyEvent;
-import java.awt.event.KeyListener;
-import java.awt.event.WindowEvent;
-import java.awt.event.WindowListener;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.util.ArrayList;
-
-import javax.swing.JFrame;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-import javax.swing.JSplitPane;
-import javax.swing.SwingUtilities;
-
-import config.Map;
-import config.Models;
-import lejos.robotics.mapping.LineMap;
-import lejos.robotics.navigation.Pose;
-import robots.BluetoothRobot;
-import robots.DataPose;
-import robots.Robot;
-import robots.RobotReturn;
-import robots.VirtualRobot;
-
-public class MainProgram extends JPanel implements KeyListener, WindowListener, RobotReturn {
-
-	private MapImage imap;
-	private Robot robot;
-	private ScannerImage scanner;
-	private Models smodel;
-
-	public static final byte FORWARD = 0;
-	public static final byte STOP = 1;
-	public static final byte EXIT = 2;
-	public static final byte LEFT = 3;
-	public static final byte RIGHT = 4;
-	public static final byte BACKWARD = 5;
-
-	public MainProgram(LineMap map, Robot robot) {
-		this.robot = robot;
-		JFrame frame = new JFrame("Mapa MAC0318");
-
-		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-		frame.setLayout(new BorderLayout());
-		imap = new MapImage(map);
-		scanner = new ScannerImage(map);
-		smodel = new Models(map);
-		// frame.add(this.map);
-		frame.setSize(800, 800);
-		frame.setVisible(true);
-
-		frame.setFocusable(true);
-		frame.requestFocusInWindow();
-		frame.addKeyListener(this);
-		frame.addWindowListener(this);
-
-		JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, scanner, imap);
-		splitPane.setOneTouchExpandable(true);
-		splitPane.setDividerLocation((int) (frame.getHeight() / 2));
-		frame.add(splitPane);
-
-		showHelp();
-	}
-
-	private void showHelp() {
-		String text = "1,2,3 - Change global map view\n";
-		text += "s - Set Pose.\n";
-		text += "l - Show global map trace.\n";
-		text += "c - Clean maps.\n";
-		text += "m - Enter robot movement.\n";
-		text += "r - Enter robo rotation.\n";
-		text += "a - Colect sonar data.\n";
-		text += "z - Make sonar continuous scanner.\n";
-		text += "i - Stop continuous scanner.\n";
-		text += "g - Save global map image.\n";
-		text += "f - Save scanner image.\n";
-		text += "<arrows> - Move robot.\n";
-		text += "h - help.\n";
-		JOptionPane.showMessageDialog(null, text, "HELP", JOptionPane.PLAIN_MESSAGE);
-	}
-
-	public void addPoint(Pose p) {
-		imap.addPoint(p);
-	}
-
-	@Override
-	public void keyPressed(KeyEvent e) {
-
-		char input = e.getKeyChar();
-		switch (input) {
-		case '1':
-			imap.setVisual(0);
-			break;
-		case '2':
-			imap.setVisual(1);
-			break;
-		case '3':
-			imap.setVisual(2);
-			break;
-		case 'l':
-			imap.showLine();
-			break;
-		case 'g':
-			imap.save();
-			break;
-		case 'f':
-			scanner.save();
-			break;
-		case 'c':
-			imap.clean();
-			scanner.clean();
-			break;
-		case 's':
-			setRobotPose();
-			break;
-		case 'm':
-			moveRobot();
-			break;
-		case 'r':
-			rotateRobot();
-			break;
-		case 'a':
-			colectSonar();
-			break;
-		case 'z':
-			robot.scann(this);
-			break;
-		case 'i':
-			robot.stopScann();
-			break;
-		case 'h':
-			showHelp();
-			break;
-		default:
-			break;
-		}
-
-		if (robot == null)
-			return;
-
-		switch (e.getKeyCode()) {
-		case KeyEvent.VK_UP:
-			robot.moveForward();
-			scanner.clean();
-			break;
-		case KeyEvent.VK_DOWN:
-			robot.moveBackward();
-			scanner.clean();
-			break;
-		case KeyEvent.VK_LEFT:
-			robot.moveLeft();
-			scanner.clean();
-			break;
-		case KeyEvent.VK_RIGHT:
-			robot.moveRight();
-			scanner.clean();
-			break;
-		}
-	}
-
-	private void colectSonar() {
-		int interval;
-		try {
-			String rs = JOptionPane.showInputDialog("Interval (degress):");
-			interval = Integer.parseInt(rs);
-		} catch (Exception e) {
-			return;
-		}
-		ArrayList<DataPose> data = robot.scann(-90, 90, interval);
-		if (data == null) return;
-
-		Integer name = new Integer((int) (Math.random() * 1000000));
-		String rand_name = name.toString() + ".txt";
-		FileWriter fileWriter;
-		try {
-			fileWriter = new FileWriter(rand_name);
-		} catch (IOException e) {
-			return;
-		}
-
-		PrintWriter printWriter = new PrintWriter(fileWriter);
-		printWriter.print("x,y,headinng,sonar_ang,read,expected\n");
-		for (DataPose d : data) {
-			robotData(d);
-
-			double expected = smodel.expectedSonarRead(d.getPose(), d.getSensorAngle()+90);
-			printWriter.print(d.getPose().getX() + ",");
-			printWriter.print(d.getPose().getY() + ",");
-			printWriter.print(d.getPose().getHeading() + ",");
-			printWriter.print(d.getSensorAngle() + ",");
-			printWriter.print(d.getDistance() + ",");
-			printWriter.print(expected + "\n");
-		}
-
-		printWriter.close();
-		JOptionPane.showMessageDialog(null, "Reads saved in " + rand_name);
-	}
-
-	private void rotateRobot() {
-		try {
-			String rs = JOptionPane.showInputDialog("Enter rotation (degress-clockwise):");
-			double r = Double.parseDouble(rs);
-			robot.rotate(r);
-			scanner.clean();
-		} catch (Exception e) {
-		}
-	}
-
-	private void moveRobot() {
-		try {
-			String rs = JOptionPane.showInputDialog("Enter distance (cm):");
-			double r = Double.parseDouble(rs);
-			robot.move(r);
-			scanner.clean();
-		} catch (Exception e) {
-		}
-	}
-
-	private void setRobotPose() {
-		try {
-			String xs = JOptionPane.showInputDialog("Enter x (cm):");
-			if (xs.length() == 0)
-				return;
-			String ys = JOptionPane.showInputDialog("Enter y (cm):");
-			if (ys.length() == 0)
-				return;
-			String as = JOptionPane.showInputDialog("Enter heading (degress):");
-			if (as.length() == 0)
-				return;
-
-			float x = Float.parseFloat(xs);
-			float y = Float.parseFloat(ys);
-			float a = Float.parseFloat(as);
-			robot.setPose(x, y, a);
-			scanner.setPose(new Pose(x, y, a));
-			scanner.clean();
-		} catch (Exception e) {
-		}
-	}
-
-	@Override
-	public void keyReleased(KeyEvent arg0) {
-		if (robot == null)
-			return;
-		robot.stop();
-	}
-
-	@Override
-	public void keyTyped(KeyEvent arg0) {
-	}
-
-	@Override
-	public void windowOpened(WindowEvent e) {
-
-	}
-
-	@Override
-	public void windowClosing(WindowEvent e) {
-		System.err.println("Fechando...");
-		if (robot == null)
-			return;
-		robot.disconnect();
-
-	}
-
-	@Override
-	public void windowClosed(WindowEvent e) {
-	}
-
-	@Override
-	public void windowIconified(WindowEvent e) {
-
-	}
-
-	@Override
-	public void windowDeiconified(WindowEvent e) {
-
-	}
-
-	@Override
-	public void windowActivated(WindowEvent e) {
-
-	}
-
-	@Override
-	public void windowDeactivated(WindowEvent e) {
-	}
-
-	@Override
-	public void robotData(DataPose data) {
-		// posicao do robo
-		Pose p = data.getPose();
-		System.out.println(p);
-		imap.addPoint(p);
-		scanner.setPose(p);
-		if (data.getDistance() == 255) {
-			return;
-		}
-
-		// ponto do ultrasonico
-		double sensor_ang = Math.toRadians(data.getSensorAngle() + p.getHeading()-90);
-		double dx = Math.cos(sensor_ang) * data.getDistance();
-		double dy = Math.sin(sensor_ang) * data.getDistance();
-		double expected = smodel.expectedSonarRead(p, data.getSensorAngle()-90);
-		imap.addRead(p.getX() + dx, p.getY() + dy);
-		scanner.addRead(p, data.getDistance(), data.getSensorAngle()-90, expected);
-	}
-
-	public static void main(String[] args) {
-
-		LineMap map = Map.makeMap();
-		Robot robotv = new VirtualRobot(map);
-		Robot robotbt = new BluetoothRobot(null);
-
-		Object[] possibleValues = { robotv, robotbt };
-		Object robot = JOptionPane.showInputDialog(null, "Choose one", "Input", JOptionPane.PLAIN_MESSAGE, null,
-				possibleValues, possibleValues[0]);
-		
-		boolean result = false;
-		if (robot != null)
-			result = ((Robot) robot).connect();
-
-		if (result == false) {
-			JOptionPane.showMessageDialog(null, "Não foi possível conectar ao robô");
-			System.exit(ERROR);
-		}
-
-		SwingUtilities.invokeLater(new Runnable() {
-			public void run() {
-				new MainProgram(map, (Robot) robot);
-			}
-		});
-	}
-}

+ 0 - 152
.metadata2/.plugins/org.eclipse.core.resources/.history/40/d03e1572dfb90017124d9f37712eb7c1

@@ -1,152 +0,0 @@
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-
-import lejos.nxt.Motor;
-import lejos.nxt.NXTRegulatedMotor;
-import lejos.nxt.SensorPort;
-import lejos.nxt.Sound;
-import lejos.nxt.UltrasonicSensor;
-import lejos.nxt.comm.BTConnection;
-import lejos.nxt.comm.Bluetooth;
-import lejos.robotics.navigation.DifferentialPilot;
-import lejos.robotics.navigation.Pose;
-import lejos.robotics.localization.*;
-
-class Scanner extends Thread {
-	DataOutputStream output;
-	OdometryPoseProvider provider;
-	boolean run;
-	public boolean scann;
-	
-	Scanner (DataOutputStream output, OdometryPoseProvider provider) {
-		super();
-		this.output = output;
-		this.provider = provider;
-		run = true;
-		scann = false;
-	}
-	
-	public void stop () {
-		run = false;
-	}
-	
-	public void run() {
-		NXTRegulatedMotor scannerm = Motor.A;
-		UltrasonicSensor sensor = new UltrasonicSensor(SensorPort.S1) ;
-		int increment = 5;
-		int position = 0;
-		
-		while (run) {
-			if (scann == false) {
-				scannerm.rotateTo(0);
-				continue;
-			}
-			if (position == 90 || position == -90)
-				increment *= -1;
-
-			scannerm.rotateTo(position);
-			scannerm.waitComplete();
-			
-			int distance = sensor.getDistance();
-						
-			Pose pose = provider.getPose();
-			float x = pose.getX();
-			float y = pose.getY();
-			float alpha = pose.getHeading();
-			
-			if (distance != 255) {
-				try {
-					output.write('@');
-					output.write(position);
-					output.writeFloat(alpha);
-					output.writeFloat(x);
-					output.write(distance);
-					output.writeFloat(y);
-					output.flush();
-				} catch (IOException e) {
-				}
-			}
-			
-			position += increment;
-		}
-		
-		scannerm.rotateTo(0);
-		scannerm.waitComplete();
-	}
-}
-
-public class Sonar {
-	
-	private static final byte FORWARD = 0;
-	private static final byte STOP = 1;
-	private static final byte EXIT = 2;
-	private static final byte LEFT = 3;
-	private static final byte RIGHT = 4;
-	private static final byte BACKWARD = 5;
-	
-	public static final byte STOPSCANN = 6;
-	public static final byte STARTSCANN = 7;
-	public static final byte MOVE = 8;
-	public static final byte ROTATE = 9;
-	public static final byte SETPOSE = 10;
-	public static final byte SETSCANANGLE = 11;
-	
-	public static void main(String[] args) throws Exception {
-		
-		BTConnection btc = Bluetooth.waitForConnection();
-		//USBConnection btc = USB.waitForConnection();
-		
-		DataInputStream input = btc.openDataInputStream();
-		DataOutputStream output = btc.openDataOutputStream();
-		
-		DifferentialPilot pilot = new DifferentialPilot(5.6f, 13.8f, Motor.B, Motor.C, false); 
-		OdometryPoseProvider provider = new OdometryPoseProvider(pilot);
-		pilot.setRotateSpeed(5);
-		pilot.setTravelSpeed(20);
-		
-		Scanner scan = new Scanner(output, provider);
-		scan.start();
-		int input_byte;
-		boolean run = true;
-		
-		Sound.twoBeeps();
-		
-		while (run) {
-			if (input.available() <= 0) {
-				Thread.yield();
-				continue;
-			}
-			input_byte = input.readByte();
-
-			System.out.println(input_byte);
-			
-			switch (input_byte) {
-				case FORWARD:
-					pilot.forward();
-					break;
-				case STOP:
-					pilot.stop();
-					break;
-				case EXIT:
-					run = false;
-					break;
-				case LEFT:
-					pilot.rotateLeft();
-					break;
-				case RIGHT:
-					pilot.rotateRight();
-					break;
-				case BACKWARD:
-					pilot.backward();
-					break;
-				case STOPSCANN:
-					pilot..scan = false;
-					break;
-			}
-		}
-		Sound.beep();
-		scan.stop();
-		scan.join();
-	}
-}

+ 0 - 139
.metadata2/.plugins/org.eclipse.core.resources/.history/41/102ecf3dd5b90017124d9f37712eb7c1

@@ -1,139 +0,0 @@
-package robots;
-
-import java.util.ArrayList;
-
-import lejos.robotics.mapping.LineMap;
-import lejos.robotics.navigation.Pose;
-
-public class VirtualRobot implements Robot {
-	private Pose pose;
-	private Simulate simthread;
-	private RobotReturn rr;
-	private LineMap map;
-
-	private class Simulate extends Thread {
-		public boolean run = true;
-
-		public void run() {
-			int ang = 0;
-			int add = -5;
-			while (run) {
-				DataPose data = new DataPose();
-				
-
-				Pose tmppose = new Pose(pose.getX(), pose.getY(), (float) (pose.getHeading() + ang));
-				float dist = map.range(tmppose);
-				if (dist == -1) dist =  255;
-				
-				
-				data.setDistance((int)dist);
-				data.setPose(pose);
-				data.setSensorAngle(ang);
-
-				rr.robotData(data);
-
-				ang += add;
-				if (ang == -180 || ang == 0)
-					add *= -1;
-
-				try {
-					Thread.sleep(50);
-				} catch (InterruptedException e) {
-				}
-			}
-		}
-
-	}
-
-	public VirtualRobot(LineMap map) {
-		pose = new Pose();
-		pose.setHeading(90);
-		this.map = map;
-	}
-
-	@Override
-	public void moveForward() {
-		double dx = Math.sin(Math.toRadians(pose.getHeading())) * 5;
-		double dy = Math.cos(Math.toRadians(pose.getHeading())) * 5;
-		pose.translate((float) dx, (float) -dy);
-	}
-
-	@Override
-	public void moveLeft() {
-		pose.rotateUpdate(45);
-	}
-
-	@Override
-	public void moveRight() {
-		pose.rotateUpdate(-45);
-	}
-
-	@Override
-	public void moveBackward() {
-		double dx = Math.sin(Math.toRadians(pose.getHeading())) * 5;
-		double dy = Math.cos(Math.toRadians(pose.getHeading())) * 5;
-		pose.translate((float) -dx, (float) dy);
-	}
-
-	@Override
-	public boolean connect() {
-		return true;
-	}
-
-	@Override
-	public void stop() {
-	}
-
-	@Override
-	public void move(double x) {
-		double dx = Math.sin(Math.toRadians(pose.getHeading())) * x;
-		double dy = Math.cos(Math.toRadians(pose.getHeading())) * x;
-		pose.translate((float) dx, (float) -dy);
-	}
-
-	@Override
-	public void rotate(double x) {
-		pose.rotateUpdate((float)x);
-	}
-
-	@Override
-	public ArrayList<DataPose> scann(int ini, int end, int interval) {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	@Override
-	public void scann(RobotReturn r) {
-		rr = r;
-		simthread = new Simulate();
-		simthread.start();
-	}
-
-	@Override
-	public void stopScann() {
-		simthread.run = false;
-		try {
-			simthread.join();
-		} catch (InterruptedException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-	}
-
-	@Override
-	public void disconnect() {
-
-	}
-
-	@Override
-	public void setPose(float x, float y, float a) {
-		pose.setHeading(a);
-		pose.setLocation(x, y);
-	}
-	
-	@Override
-	public String toString() {
-		return "Virtual Robot";
-	}
-
-}

+ 0 - 152
.metadata2/.plugins/org.eclipse.core.resources/.history/41/309eb788dfb90017124d9f37712eb7c1

@@ -1,152 +0,0 @@
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-
-import lejos.nxt.Motor;
-import lejos.nxt.NXTRegulatedMotor;
-import lejos.nxt.SensorPort;
-import lejos.nxt.Sound;
-import lejos.nxt.UltrasonicSensor;
-import lejos.nxt.comm.BTConnection;
-import lejos.nxt.comm.Bluetooth;
-import lejos.robotics.navigation.DifferentialPilot;
-import lejos.robotics.navigation.Pose;
-import lejos.robotics.localization.*;
-
-class Scanner extends Thread {
-	DataOutputStream output;
-	OdometryPoseProvider provider;
-	boolean run;
-	public boolean scann;
-	
-	Scanner (DataOutputStream output, OdometryPoseProvider provider) {
-		super();
-		this.output = output;
-		this.provider = provider;
-		run = true;
-		scann = false;
-	}
-	
-	public void stop () {
-		run = false;
-	}
-	
-	public void run() {
-		NXTRegulatedMotor scannerm = Motor.A;
-		UltrasonicSensor sensor = new UltrasonicSensor(SensorPort.S1) ;
-		int increment = 5;
-		int position = 0;
-		
-		while (run) {
-			if (scann == false) {
-				scannerm.rotateTo(0);
-				continue;
-			}
-			if (position == 90 || position == -90)
-				increment *= -1;
-
-			scannerm.rotateTo(position);
-			scannerm.waitComplete();
-			
-			int distance = sensor.getDistance();
-						
-			Pose pose = provider.getPose();
-			float x = pose.getX();
-			float y = pose.getY();
-			float alpha = pose.getHeading();
-			
-			if (distance != 255) {
-				try {
-					output.write('@');
-					output.write(position);
-					output.writeFloat(alpha);
-					output.writeFloat(x);
-					output.write(distance);
-					output.writeFloat(y);
-					output.flush();
-				} catch (IOException e) {
-				}
-			}
-			
-			position += increment;
-		}
-		
-		scannerm.rotateTo(0);
-		scannerm.waitComplete();
-	}
-}
-
-public class Sonar {
-	
-	private static final byte FORWARD = 0;
-	private static final byte STOP = 1;
-	private static final byte EXIT = 2;
-	private static final byte LEFT = 3;
-	private static final byte RIGHT = 4;
-	private static final byte BACKWARD = 5;
-	
-	public static final byte STOPSCANN = 6;
-	public static final byte STARTSCANN = 7;
-	public static final byte MOVE = 8;
-	public static final byte ROTATE = 9;
-	public static final byte SETPOSE = 10;
-	public static final byte SETSCANANGLE = 11;
-	
-	public static void main(String[] args) throws Exception {
-		
-		BTConnection btc = Bluetooth.waitForConnection();
-		//USBConnection btc = USB.waitForConnection();
-		
-		DataInputStream input = btc.openDataInputStream();
-		DataOutputStream output = btc.openDataOutputStream();
-		
-		DifferentialPilot pilot = new DifferentialPilot(5.6f, 13.8f, Motor.B, Motor.C, false); 
-		OdometryPoseProvider provider = new OdometryPoseProvider(pilot);
-		pilot.setRotateSpeed(5);
-		pilot.setTravelSpeed(20);
-		
-		Scanner scan = new Scanner(output, provider);
-		scan.start();
-		int input_byte;
-		boolean run = true;
-		
-		Sound.twoBeeps();
-		
-		while (run) {
-			if (input.available() <= 0) {
-				Thread.yield();
-				continue;
-			}
-			input_byte = input.readByte();
-
-			System.out.println(input_byte);
-			
-			switch (input_byte) {
-				case FORWARD:
-					pilot.forward();
-					break;
-				case STOP:
-					pilot.stop();
-					break;
-				case EXIT:
-					run = false;
-					break;
-				case LEFT:
-					pilot.rotateLeft();
-					break;
-				case RIGHT:
-					pilot.rotateRight();
-					break;
-				case BACKWARD:
-					pilot.backward();
-					break;
-				case STOPSCANN:
-					pilot.scan = false;
-					break;
-			}
-		}
-		Sound.beep();
-		scan.stop();
-		scan.join();
-	}
-}

+ 0 - 281
.metadata2/.plugins/org.eclipse.core.resources/.history/41/f0c372e0a4ba001711b8bf632416c20d

@@ -1,281 +0,0 @@
-package robots;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.concurrent.Semaphore;
-
-import lejos.pc.comm.NXTComm;
-import lejos.pc.comm.NXTCommException;
-import lejos.pc.comm.NXTCommFactory;
-import lejos.pc.comm.NXTInfo;
-import lejos.robotics.navigation.Pose;
-
-public class BluetoothRobot implements Robot {
-	private String name;
-	private NXTComm nxtComm;
-	private RobotReturn rr;
-	private Semaphore semaphore;
-	private int creads = 1;
-	
-	public static final byte FORWARD = 0;
-	public static final byte STOP = 1;
-	public static final byte EXIT = 2;
-	public static final byte LEFT = 3;
-	public static final byte RIGHT = 4;
-	public static final byte BACKWARD = 5;
-	
-	public static final byte STOPSCANN = 6;
-	public static final byte STARTSCANN = 7;
-	public static final byte MOVE = 8;
-	public static final byte ROTATE = 9;
-	public static final byte SETPOSE = 10;
-	public static final byte SETSCANANGLE = 11;
-	
-	public static final byte TYPE_INT = 1;
-	public static final byte TYPE_CMD = 2;
-	public static final byte TYPE_POSE = 3;
-	public static final byte TYPE_FLOAT = 4;
-	
-	private static final int scannangle = 5;
-
-	private DataOutputStream output;
-	private DataInputStream input;
-	private Receiver receivethread;
-	
-	private ArrayList<DataPose> reads;
-		
-	private class Receiver extends Thread {
-		public boolean run = true;
-		@Override
-		public void run() {
-			int bytes_valiable = -1;
-			
-			while(run) {
-				try {
-					bytes_valiable = input.available();
-				} catch (IOException e1) {
-					// TODO Auto-generated catch block
-					e1.printStackTrace();
-				}
-				if (bytes_valiable >= 0) {
-					try {
-						if (input.readByte() != '@') continue;
-						int angle = input.readByte();
-						float alpha = input.readFloat();
-						float x = input.readFloat();
-						int distance = input.readByte();
-						float y = input.readFloat();
-						DataPose d = new DataPose();
-						d.setDistance(distance);
-						d.setSensorAngle(angle);
-						d.setPose(new Pose(y, -x, alpha));
-						if (rr != null)
-							rr.robotData(d);	
-						
-					} catch (IOException e1) {
-						continue;
-					}
-				}
-			}
-		}
-	}
-
-	private class Sender extends Thread {
-		
-	}
-	
-	private class SendData {
-		float f;
-		int i;
-		int cmd;
-		Pose p;
-		int type;
-		SendData(int cmd) {
-			this.cmd = cmd;
-			this.type = TYPE_CMD;
-		}
-		SendData(int cmd, int i) {
-			this.cmd = cmd;
-			this.i = i;
-			this.type = TYPE_INT;
-		}
-		SendData(int cmd, float f) {
-			this.cmd = cmd;
-			this.f = f;
-			this.type = TYPE_FLOAT;
-		}
-		SendData(int cmd, Pose p) {
-			this.cmd = cmd;
-			this.p = p;
-			this.type = TYPE_POSE;
-		}
-		public boolean send(DataOutputStream output) {
-			try {
-				switch (type) {
-				case TYPE_CMD:
-					output.write(cmd);
-					break;
-				case TYPE_INT:
-					output.write(cmd);
-					output.write(i);
-					break;
-				case TYPE_FLOAT:
-					output.write(cmd);
-					output.writeFloat(f);
-					break;
-				case TYPE_POSE:
-					output.write(cmd);
-					output.writeFloat(p.getX());
-					output.writeFloat(p.getY());
-					output.writeFloat(p.getHeading());
-					break;
-				default:
-					return false;
-				}
-			} catch (IOException e) {
-				return false;
-			}
-			return true;
-		}
-	}
-	
-	private void send(Pose p) {
-		if (semaphore.tryAcquire()) {
-			try {
-				output.write(SETPOSE);
-				output.writeFloat(p.getX());
-				output.writeFloat(p.getY());
-				output.writeFloat(p.getHeading());
-				output.flush();
-			} catch (IOException e) {
-				System.out.println("Erro ao enviar...");
-			}
-			semaphore.release();
-		}
-	}
-	
-	public BluetoothRobot (String name) {
-		semaphore = new Semaphore(1);
-		receivethread = new Receiver();
-		this.name = name;
-	}
-
-	@Override
-	public void moveForward() {
-		send(FORWARD);
-	}
-
-	@Override
-	public void moveLeft() {
-		send(LEFT);
-	}
-
-	@Override
-	public void moveRight() {
-		send(RIGHT);
-	}
-
-	@Override
-	public void moveBackward() {
-		send(BACKWARD);
-	}
-
-	@Override
-	public boolean connect () {
-		try {
-			nxtComm = NXTCommFactory.createNXTComm(NXTCommFactory.BLUETOOTH);
-			NXTInfo[] nxtInfo = nxtComm.search(name); //find brick with NXT_ID by doing a Bluetooth inquiry
-			if (nxtInfo.length == 0) { // failed to find a brick with the ID
-				System.err.println("NO NXT found");
-				return false;
-			}
-			if (!nxtComm.open(nxtInfo[0])) { // the brick was found but a connection could not be establish
-				System.err.println("Failed to open NXT");
-				return false;
-			}
-			
-			input = new DataInputStream(nxtComm.getInputStream()); // open data input stream 
-			output = new DataOutputStream(nxtComm.getOutputStream()); // open data output stream
-			send(SETSCANANGLE, scannangle); // vai scanear em 5 em 5 graus
-		} catch (NXTCommException e) {
-			return false;
-		}
-		
-		receivethread.start();
-		
-		return true;	
-	}
-
-	@Override
-	public void stop() {
-		send(STOP);
-	}
-
-
-	@Override
-	public void move(double x) {
-		send(MOVE, (float)x);
-	}
-
-	@Override
-	public void rotate(double x) {
-		send(ROTATE, (float)x);
-	}
-
-	@Override
-	public ArrayList<DataPose> scann(int ini, int end, int interval) {
-//		send(SETSCANANGLE, interval);
-//		creads = 180/interval;
-//		reads = new ArrayList<DataPose>();
-//		scann(null);
-//		
-//		while(reads.size() <= creads) { };
-//		
-//		stopScann();
-//		creads = -1;
-		return null;
-	}
-
-	@Override
-	public void scann(RobotReturn r) {
-		rr = r;
-		send(STARTSCANN);
-	}
-
-	@Override
-	public void stopScann() {
-		send(STOPSCANN);
-	}
-
-	@Override
-	public void disconnect() {
-		send(EXIT);
-		if (receivethread == null) return;
-		receivethread.run = false;
-		try {
-			receivethread.join();
-		} catch (InterruptedException e1) {
-			System.out.println("Nao foi possivel finalizar as threads...");
-		}
-		try {
-			nxtComm.close();
-		} catch (IOException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-	}
-
-	@Override
-	public void setPose(float x, float y, float a) {
-		send(new Pose(y, -x, a));
-	}
-	
-	
-	@Override
-	public String toString() {
-		return "Bluetooth Mestre/Escravo";
-	}
-
-}

+ 0 - 130
.metadata2/.plugins/org.eclipse.core.resources/.history/42/b0a7f13f0bb9001711c7a09600ea5d68

@@ -1,130 +0,0 @@
-import java.awt.Color;
-import java.awt.Graphics;
-import java.util.ArrayList;
-import java.util.concurrent.Semaphore;
-
-import javax.swing.JPanel;
-
-import lejos.geom.Line;
-import lejos.robotics.mapping.LineMap;
-import lejos.robotics.navigation.Pose;
-
-public class ScannerImage extends JPanel {
-	private Pose pose;
-	private LineMap map;
-	private ArrayList<SonarRead> lista_leituras;
-	private Semaphore semaphore;
-	
-	class SonarRead {
-		public double distance;
-		public double ang;
-		SonarRead (double distance, double ang) {
-			this.ang = ang;
-			this.distance = distance;
-		}
-	}
-	
-    @Override
-    protected void paintComponent(Graphics g) {
-    		int w = this.getWidth()/2;
-    		int h = this.getHeight();
-    		int distance = h*2/25;
-    		g.setColor(new Color(0f, 0f, 0f, 0.4f));
-    		for (int i = 1; i <= 18; i++) {
-    			int r = distance * i;
-        		g.drawArc(w-r, h-r, 2*r, 2*r, 0, 180);
-        		g.drawString(new Integer(i*20).toString(), w-7, h-r);
-    		}
-    		g.setColor(new Color(0f, 0f, 0f, 0.5f));
-    		for (int i = 1; i < 6; i++) {
-    			int lw = (int)(Math.cos(Math.PI/6.0*i)*distance * 18);
-    			int lh = (int)(Math.sin(Math.PI/6.0*i)*distance * 18);
-    			g.drawLine(w, h, lw+w, h-lh);
-    		}
-    		g.setColor(new Color(0f, 0f, 0f, 0.1f));
-    		for (int i = 1; i < 12; i++) {
-    			int lw = (int)(Math.cos(Math.PI/12.0*i)*distance * 18);
-    			int lh = (int)(Math.sin(Math.PI/12.0*i)*distance * 18);
-    			g.drawLine(w, h, lw+w, h-lh);
-    		}
-    		
-
-    		if (semaphore.tryAcquire()) {
-    			double d = h*2.0/25.0/20.0;
-    			
-    			g.setColor(new Color(0f, 1f, 0f));
-		    	if (map != null && pose!= null) {
-		    		Line[] lines = map.getLines();
-		    		for (int i = 0; i < lines.length; i++) {
-		    			Line l = lines[i];
-		    			double sin = Math.sin(-Math.toRadians(pose.getHeading()));
-		    			double cos = Math.cos(-Math.toRadians(pose.getHeading()));
-		    			
-		    			double x1 = (l.x1/10.0-pose.getX())*d;
-		    			double y1 = (l.y1/10.0-pose.getY())*d;
-		    			
-		    			double x2 = (l.x2/10.0-pose.getX())*d;
-		    			double y2 = (l.y2/10.0-pose.getY())*d;
-		    			
-		    			double xx1 = x1*cos-y1*sin;
-		    			double yy1 = y1*cos+x1*sin;
-
-		    			double xx2 = x2*cos-y2*sin;
-		    			double yy2 = y2*cos+x2*sin;
-		    			
-		            g.drawLine(
-			                (int)(w+xx1),
-			                (int)(h-yy1), 
-			                (int)(w+xx2),
-			                (int)(h-yy2)
-			        );
-		    		}
-		    	}
-    		
-    			drawDots(g, w, h);
-    	        semaphore.release();
-    		}
-    	}
-    
-
-
-	private void drawDots(Graphics g, int w, int h) {
-		g.setColor(new Color(1f, 0f, 0f));
-		int oval_size = 16;
-		int distance = h*2/25;
-		double d = distance/20.0;
-		double a = -oval_size/4;
-		for (SonarRead r: lista_leituras) {
-			double x = a+(d*r.distance)*Math.sin(Math.toRadians(r.ang));
-			double y = a+(d*r.distance)*Math.cos(Math.toRadians(r.ang));
-			x = w - x;
-			y = h - y;
-		g.fillOval((int)(x-oval_size/2.0), (int)(y-oval_size/2.0), oval_size/2, oval_size/2);
-		}
-		if (map == null) return;
-	}
-   
-
-	public Pose getPose() {
-		return pose;
-	}
-
-	public void addRead(Pose p, double distance, double ang) {
-		if (semaphore.tryAcquire()) {
-			if (pose == null || !(p.getX() == pose.getX() && p.getY() == pose.getY() 
-					&& p.getHeading() == pose.getHeading())) {
-				pose = new Pose(p.getX(), p.getY(), p.getHeading());
-				lista_leituras.clear();
-			}
-			lista_leituras.add(new SonarRead(distance, ang+90));
-	        semaphore.release();
-		}
-		repaint();
-	}
-	
-	public ScannerImage(LineMap map) {
-		this.map = map;
-		semaphore = new Semaphore(1);
-		lista_leituras =  new ArrayList<SonarRead>();
-	}
-}

+ 0 - 127
.metadata2/.plugins/org.eclipse.core.resources/.history/43/70f5ce0724bb001711b8bf632416c20d

@@ -1,127 +0,0 @@
-package robots;
-
-import java.util.ArrayList;
-
-import lejos.robotics.navigation.Pose;
-import lejos.robotics.navigation.DifferentialPilot;
-import lejos.nxt.Motor;
-import lejos.nxt.SensorPort;
-import lejos.nxt.UltrasonicSensor;
-import lejos.nxt.remote.RemoteMotor;
-
-public class LCPRobot implements Robot {
-	private Pose pose;
-	static DifferentialPilot pilot;
-	static UltrasonicSensor sonar;
-	RemoteMotor scannerm = Motor.A;
-	RemoteMotor ma = Motor.B;
-	RemoteMotor mb = Motor.C;
-
-	public LCPRobot() {
-
-	}
-
-	@Override
-	public void move(double x) {
-		double dx = Math.sin(Math.toRadians(pose.getHeading())) * x;
-		double dy = Math.cos(Math.toRadians(pose.getHeading())) * x;
-		pose.translate((float) dx, (float) -dy);
-		pilot.travel(x);
-	}
-
-	@Override
-	public void rotate(double x) {
-		pose.rotateUpdate((float)-x);
-		pilot.rotate(x);
-	}
-
-	@Override
-	public ArrayList<DataPose> scann(int ini, int end, int interval) {
-		ArrayList<DataPose> result = new ArrayList<DataPose>();
-		int val = 0;
-		double ang = 0;
-		int engine_mult = 1;
-		scannerm.setSpeed(80);
-		for (int j = ini; j <= end; j += interval) {
-			System.out.println(j);
-			scannerm.rotate(-(j * engine_mult));
-			scannerm.waitComplete();
-			val = sonar.getDistance();
-			ang = ini + interval;
-
-			DataPose data = new DataPose();
-			data.setDistance(val);
-			data.setSensorAngle(ang);
-			data.setPose(pose);
-			result.add(data);
-		}
-		scannerm.setSpeed(200);
-		scannerm.rotate(0);
-		return result;
-	}
-	
-	
-
-	@Override
-	public String toString() {
-		return "LCP Robot";
-	}
-
-	@Override
-	public void moveForward() {
-		pilot.forward();
-	}
-
-	@Override
-	public void moveLeft() {
-		pilot.rotateLeft();
-	}
-
-	@Override
-	public void moveRight() {
-		pilot.rotateRight();
-	}
-
-	@Override
-	public void moveBackward() {
-		pilot.backward();
-	}
-
-	@Override
-	public void stop() {
-		pilot.stop();
-	}
-
-	@Override
-	public void scann(RobotReturn r) {
-		// TODO Auto-generated method stub
-
-	}
-
-	@Override
-	public void stopScann() {
-		// TODO Auto-generated method stub
-
-	}
-
-	@Override
-	public boolean connect() {
-		//pilot = new DifferentialPilot(5.6f, 11.2f, Motor.B, Motor.A);
-		pilot = new DifferentialPilot(5.6f, 11.2f, ma, mb);
-		sonar = new UltrasonicSensor(SensorPort.S1);
-		pilot.setTravelSpeed(10);
-		pilot.setRotateSpeed(40);
-		return true;
-	}
-
-	@Override
-	public void disconnect() {
-	}
-
-	@Override
-	public void setPose(float x, float y, float a) {
-		pose.setHeading(a);
-		pose.setLocation(x, y);
-	}
-
-}

Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä