Toggle between cameras (Untested).
authorRayan Hirech <ramine411@gmail.com>
Sat, 4 Feb 2017 23:48:05 +0000 (15:48 -0800)
committerRayan Hirech <ramine411@gmail.com>
Tue, 7 Feb 2017 03:46:46 +0000 (19:46 -0800)
src/org/usfirst/frc/team3501/robot/CameraFeeds.java

index 3ca36b32a355f839baee3ff82c2da49ec1121ce2..50ee60697a732766dcc6aff9ce7f37db7fa03a3d 100755 (executable)
@@ -1,6 +1,5 @@
 package org.usfirst.frc.team3501.robot;
 
-import com.ni.vision.NIVision;
 import com.ni.vision.NIVision.Image;
 
 import edu.wpi.cscore.AxisCamera;
@@ -12,10 +11,12 @@ public class CameraFeeds {
   // private final int intakeCam;
   // private final int climberCam;
   private Image frame;
-  private String curCam = "intake";
+  private VideoSource curCam;
   private CameraServer server;
   private static UsbCamera intakeCam;
   private static AxisCamera climberCam;
+  private static String usbCamName;
+  private static String axisCamName;
 
   @SuppressWarnings("deprecation")
   public CameraFeeds(/* Joystick Button */) {
@@ -32,10 +33,13 @@ public class CameraFeeds {
      * we'll give the img to server = CameraServer.getInstance();
      * server.setSize(Constants.CameraFeeds.imgQuality);
      */
-    intakeCam = CameraServer.getInstance().startAutomaticCapture();
-    CameraServer.getInstance().startAutomaticCapture();
+
     server = CameraServer.getInstance();
     climberCam = server.addAxisCamera("axisCamera", "10.35.1.11");
+    intakeCam = server.startAutomaticCapture();
+    curCam = intakeCam;
+    usbCamName = intakeCam.getName();
+    axisCamName = climberCam.getName();
 
     // server = CameraServer.getInstance();
     // axisCamera = cameraServer2.addAxisCamera("axisCamera", "10.35.1.11");
@@ -46,22 +50,16 @@ public class CameraFeeds {
     changeCam(intakeCam);
   }
 
-  public void run()
-  {
-    if(/*add test for toggle*/)
-      changeCam(intakeCam);
-
-    if(/*add test for toggle*/)
+  public void toggleCamera() {
+    if (curCam.equals(intakeCam)) {
       changeCam(climberCam);
+      curCam = climberCam;
+    }
 
-    updateCam();
-  }
-
-  /**
-   * Stop aka close camera stream
-   */
-  public void end() {
-    // NIVision.IMAQdxStopAcquisition(curCam);
+    if (curCam.equals(climberCam)) {
+      changeCam(intakeCam);
+      curCam = intakeCam;
+    }
   }
 
   /**
@@ -71,27 +69,9 @@ public class CameraFeeds {
    * @param newId
    *          for camera
    */
-  public void changeCam(/* int newId */) {
-    if (curCam == "climber") {
-      server.removeCamera(/* Axis Camera name */);
-      server.addCamera(intakeCam);
-      curCam = "intake";
-    } else if (curCam == "intake") {
-      server.removeCamera(/* Usb Camera name */);
-      server.addCamera(climberCam);
-      curCam = "climber";
-    }
-    // NIVision.IMAQdxStopAcquisition(curCam);
-    // NIVision.IMAQdxConfigureGrab(newId);
-    // NIVision.IMAQdxStartAcquisition(newId);
-    // curCam = newId;
-  }
-
-  /**
-   * Get the img from current camera and give it to the server
-   */
-  public void updateCam() {
-    // NIVision.IMAQdxGrab(curCam, frame, 1);
-    // server.setImage(frame);
+  public void changeCam(VideoSource cam) {
+    server.removeCamera(axisCamName);
+    server.removeCamera(usbCamName);
+    server.addCamera(cam);
   }
 }