Project

General

Profile

Revision 503

Added by Greg Tress about 16 years ago

Clicking on a robot automatically selects its XBee ID for controlling

View differences:

trunk/code/projects/colonet/client/Colonet.java
564 564
	// KeyListener methods
565 565
	//
566 566
	public void keyPressed (KeyEvent e) {
567
		int code = e.getKeyCode();
568
		if (code == KeyEvent.VK_UP) {
569
			vectorController.setMaxForward();
570
			vectorController.sendToServer();
571
		} else if (code == KeyEvent.VK_DOWN) {
572
			vectorController.setMaxReverse();
573
			vectorController.sendToServer();
574
		} else if (code == KeyEvent.VK_LEFT) {
575
			vectorController.setMaxLeft();
576
			vectorController.sendToServer();
577
		} else if (code == KeyEvent.VK_RIGHT) {
578
			vectorController.setMaxRight();
579
			vectorController.sendToServer();
580
		} else if (code == KeyEvent.VK_S) {
581
			vectorController.setZero();
582
			vectorController.sendToServer();
583
		}
567
		//Start a new Thread to handle the KeyEvent
568
	    SwingUtilities.invokeLater(new KeyHandler(e));
584 569
	}
585 570
	public void keyReleased (KeyEvent e) {
586 571
	}
587 572
	public void keyTyped (KeyEvent e) {
588 573
	}
589 574
	
590
	
591 575
	//
592 576
	// ActionListener method
593 577
	//
......
657 641
		        if (r.contains(e.getX(), e.getY())) {
658 642
		            selectedBot = i;
659 643
		            lblSelected.setText(" " + r.id);
644
					// Try to select the clicked bot, if its XBee ID is detected.
645
					for (int j = 1; j < cmbRobotNum.getItemCount(); j++) {
646
						if (Integer.parseInt(cmbRobotNum.getItemAt(j).toString()) == selectedBot)
647
							cmbRobotNum.setSelectedIndex(j);
648
					}
649
					return;
660 650
		        }
661 651
		    }
662 652
		    
......
664 654
	    }
665 655
	}
666 656
	
657
	class KeyHandler extends Thread {
658
	
659
		KeyEvent e;
660
		
661
		public KeyHandler (KeyEvent event) {
662
			super("KeyHandler");
663
			this.e = event;
664
		}
665
		
666
		public void run () {
667
			int code = e.getKeyCode();
668
			if (code == KeyEvent.VK_UP) {
669
				vectorController.setMaxForward();
670
				vectorController.sendToServer();
671
			} else if (code == KeyEvent.VK_DOWN) {
672
				vectorController.setMaxReverse();
673
				vectorController.sendToServer();
674
			} else if (code == KeyEvent.VK_LEFT) {
675
				vectorController.setMaxLeft();
676
				vectorController.sendToServer();
677
			} else if (code == KeyEvent.VK_RIGHT) {
678
				vectorController.setMaxRight();
679
				vectorController.sendToServer();
680
			} else if (code == KeyEvent.VK_S) {
681
				vectorController.setZero();
682
				vectorController.sendToServer();
683
			}
684
		}
685
	}
686
	
667 687
	class ActionHandler extends Thread {
668 688
	
669 689
	    ActionEvent e;
......
1355 1375
	        g2d.setColor(Color.BLACK);
1356 1376
	        g2d.drawRect((int)(x + width*.3), y + 2, (int)(width*.4), height - 4);
1357 1377
	        //battery life rectangle
1358
	        g2d.setColor(Color.GREEN);
1378
			if (level > 50)
1379
				g2d.setColor(Color.GREEN);
1380
			else if (level > 25)
1381
				g2d.setColor(Color.YELLOW);
1382
			else
1383
				g2d.setColor(Color.RED);
1359 1384
	        int greenX = (int)(x + 1 + width*.3);
1360 1385
	        int greenY = (int)((y+3) + Math.abs(level-100.0)*(height-6)/(100));
1361 1386
	        int greenWidth = (int)(width*.4 - 2)+1;
trunk/code/projects/colonet/client/Makefile
32 32
$(DIR)/ColonetServerInterface.class: ColonetServerInterface.java
33 33
	$(JC) $(JCWARN) $(JCFLAGS) ColonetServerInterface.java
34 34

  
35
# Install into the local computer's www directory.
36
# The user should use sudo when running make install.
37

  
35 38
install:
36 39
	@echo --- Copying files to /var/www/colonet ---
37 40
	rm -rf /var/www/colonet/

Also available in: Unified diff