20730e7d21b80017145c9b6064c27648 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  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. System.out.println(ang);
  15. DataPose data = new DataPose();
  16. data.setDistance(100);
  17. data.setPose(pose);
  18. data.setSensorAngle(ang);
  19. rr.robotData(data);
  20. ang += add;
  21. if (ang == -90 || ang == 90) add *= -1;
  22. try {
  23. Thread.sleep(100);
  24. } catch (InterruptedException e) {
  25. }
  26. }
  27. }
  28. }
  29. public VirtualRobot(LineMap map) {
  30. simthread = new Simulate();
  31. pose = new Pose();
  32. }
  33. @Override
  34. public void moveForward() {
  35. // TODO Auto-generated method stub
  36. }
  37. @Override
  38. public void moveLeft() {
  39. // TODO Auto-generated method stub
  40. }
  41. @Override
  42. public void moveRight() {
  43. // TODO Auto-generated method stub
  44. }
  45. @Override
  46. public void moveBackward() {
  47. // TODO Auto-generated method stub
  48. }
  49. @Override
  50. public boolean connect(RobotReturn r) {
  51. rr = r;
  52. simthread.start();
  53. return true;
  54. }
  55. @Override
  56. public void stop() {
  57. }
  58. @Override
  59. public void exit() {
  60. simthread.run = false;
  61. try {
  62. simthread.join();
  63. } catch (InterruptedException e) {
  64. // TODO Auto-generated catch block
  65. e.printStackTrace();
  66. }
  67. }
  68. }