60f61ae129b80017145c9b6064c27648 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. package robots;
  2. import lejos.robotics.mapping.LineMap;
  3. import lejos.robotics.navigation.Pose;
  4. public class VirtualRobot implements Robot {
  5. private Pose pose;
  6. private Simulate simthread;
  7. private RobotReturn rr;
  8. private class Simulate extends Thread {
  9. public boolean run = true;
  10. public void run() {
  11. int ang = 0;
  12. int add = 5;
  13. while(run) {
  14. DataPose data = new DataPose();
  15. data.setDistance(20);
  16. data.setPose(pose);
  17. data.setSensorAngle(ang);
  18. rr.robotData(data);
  19. ang += add;
  20. if (ang == -90 || ang == 90) add *= -1;
  21. try {
  22. Thread.sleep(100);
  23. } catch (InterruptedException e) {
  24. }
  25. }
  26. }
  27. }
  28. public VirtualRobot(LineMap map) {
  29. simthread = new Simulate();
  30. pose = new Pose();
  31. }
  32. @Override
  33. public void moveForward() {
  34. // TODO Auto-generated method stub
  35. }
  36. @Override
  37. public void moveLeft() {
  38. // TODO Auto-generated method stub
  39. }
  40. @Override
  41. public void moveRight() {
  42. // TODO Auto-generated method stub
  43. }
  44. @Override
  45. public void moveBackward() {
  46. // TODO Auto-generated method stub
  47. }
  48. @Override
  49. public boolean connect(RobotReturn r) {
  50. rr = r;
  51. simthread.start();
  52. return true;
  53. }
  54. @Override
  55. public void stop() {
  56. }
  57. @Override
  58. public void exit() {
  59. simthread.run = false;
  60. try {
  61. simthread.join();
  62. } catch (InterruptedException e) {
  63. // TODO Auto-generated catch block
  64. e.printStackTrace();
  65. }
  66. }
  67. }