30b8c624e2b000171eb4aea94a5e3c6b 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. import java.awt.BorderLayout;
  2. import java.awt.event.KeyEvent;
  3. import java.awt.event.KeyListener;
  4. import java.io.BufferedReader;
  5. import java.io.DataInput;
  6. import java.io.DataInputStream;
  7. import java.io.DataOutputStream;
  8. import java.io.IOException;
  9. import java.io.InputStreamReader;
  10. import javax.swing.JFrame;
  11. import javax.swing.JOptionPane;
  12. import javax.swing.JPanel;
  13. import lejos.pc.comm.NXTComm;
  14. import lejos.pc.comm.NXTCommException;
  15. import lejos.pc.comm.NXTCommFactory;
  16. import lejos.pc.comm.NXTInfo;
  17. public class Map extends JPanel {
  18. private ImageMap map;
  19. private SendThread sendthread;
  20. public Map (DataInputStream input, final DataOutputStream output) throws IOException {
  21. JFrame frame = new JFrame("Mapa MAC0318");
  22. sendthread = new SendThread(output);
  23. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  24. frame.setLayout(new BorderLayout());
  25. this.map = new ImageMap();
  26. frame.add(this.map);
  27. frame.setSize(800, 800);
  28. frame.setVisible(true);
  29. frame.setFocusable(true);
  30. frame.requestFocusInWindow();
  31. frame.addKeyListener(new KeyListener() {
  32. @Override
  33. public void keyTyped(KeyEvent e) {
  34. }
  35. @Override
  36. public void keyReleased(KeyEvent e) {
  37. }
  38. @Override
  39. public void keyPressed(KeyEvent e) {
  40. char input = e.getKeyChar();
  41. if (input == '1') map.setVisual(0);
  42. else if (input == '2') map.setVisual(1);
  43. else if (input == '3') map.setVisual(2);
  44. else if (input == 'l') map.showLine();
  45. else if (input == 's') map.save();
  46. try {
  47. System.out.println(e.getKeyCode());
  48. switch(e.getKeyCode()) {
  49. case KeyEvent.VK_UP:
  50. output.write(SendThread.FORWARD);
  51. break;
  52. case KeyEvent.VK_DOWN:
  53. output.write(SendThread.BACKWARD);
  54. break;
  55. case KeyEvent.VK_LEFT:
  56. output.write(SendThread.LEFT);
  57. break;
  58. case KeyEvent.VK_RIGHT :
  59. output.write(SendThread.RIGHT);
  60. break;
  61. }
  62. output.flush();
  63. } catch (IOException e1) {
  64. System.out.println(22222);
  65. }
  66. }
  67. });
  68. String text = "1,2,3 - Change view mode.\n";
  69. text += "s - Save image.\n";
  70. text += "l - Show trace.\n";
  71. JOptionPane.showMessageDialog(null, text);
  72. int bytes_valiable = -1;
  73. while(true) {
  74. try {
  75. bytes_valiable = input.available();
  76. } catch (IOException e1) {
  77. // TODO Auto-generated catch block
  78. e1.printStackTrace();
  79. }
  80. if (bytes_valiable >= 0) {
  81. if (input.readByte() != '@') continue;
  82. int angle = input.readByte();
  83. float x = input.readFloat();
  84. int distance = input.readByte();
  85. float y = input.readFloat();
  86. System.out.println(x+" "+y);
  87. }
  88. }
  89. }
  90. public void addPoint(Point3D p) {
  91. map.addPoint(p);
  92. }
  93. public static void main(String[] args) throws NXTCommException, IOException {
  94. // NXTComm nxtComm = NXTCommFactory.createNXTComm(NXTCommFactory.USB);
  95. // NXTInfo[] nxtInfo = nxtComm.search("NXT8"); //find brick with NXT_ID by doing a Bluetooth inquiry
  96. // if (nxtInfo.length == 0) { // failed to find a brick with the ID
  97. // System.err.println("NO NXT found");
  98. // System.exit(1);
  99. // }
  100. // if (!nxtComm.open(nxtInfo[0])) { // the brick was found but a connection could not be establish
  101. // System.err.println("Failed to open NXT");
  102. // System.exit(1);
  103. // }
  104. //
  105. // DataInputStream input = new DataInputStream(nxtComm.getInputStream()); // open data input stream
  106. // DataOutputStream output = new DataOutputStream(nxtComm.getOutputStream()); // open data output stream
  107. // Map map = new Map(input, output);
  108. Map map = new Map(null, null);
  109. }
  110. }