Minor edit
[3501/2017steamworks] / src / org / usfirst / frc / team3501 / robot / CameraFeeds.java
index 50ee60697a732766dcc6aff9ce7f37db7fa03a3d..b18fbca8cebb663f1f009ff0f4f718346fe77488 100755 (executable)
@@ -1,7 +1,5 @@
 package org.usfirst.frc.team3501.robot;
 
-import com.ni.vision.NIVision.Image;
-
 import edu.wpi.cscore.AxisCamera;
 import edu.wpi.cscore.UsbCamera;
 import edu.wpi.cscore.VideoSource;
@@ -10,68 +8,60 @@ import edu.wpi.first.wpilibj.CameraServer;
 public class CameraFeeds {
   // private final int intakeCam;
   // private final int climberCam;
-  private Image frame;
   private VideoSource curCam;
   private CameraServer server;
   private static UsbCamera intakeCam;
   private static AxisCamera climberCam;
   private static String usbCamName;
   private static String axisCamName;
+  private static CameraFeeds cameraFeeds = null;
 
   @SuppressWarnings("deprecation")
-  public CameraFeeds(/* Joystick Button */) {
-    // Get camera ids by supplying camera name ex 'cam0', found on roborio web
-    // interface
-    /*
-     * intakeCam =
-     * NIVision.IMAQdxOpenCamera(Constants.CameraFeeds.camNameCenter,
-     * NIVision.IMAQdxCameraControlMode.CameraControlModeController); climberCam
-     * = NIVision.IMAQdxOpenCamera(Constants.CameraFeeds.camNameRight,
-     * NIVision.IMAQdxCameraControlMode.CameraControlModeController); curCam =
-     * intakeCam; // Img that will contain camera img frame =
-     * NIVision.imaqCreateImage(NIVision.ImageType.IMAGE_RGB, 0); // Server that
-     * we'll give the img to server = CameraServer.getInstance();
-     * server.setSize(Constants.CameraFeeds.imgQuality);
-     */
-
+  private CameraFeeds(/* Joystick Button */) {
+    System.out.println("Enter CameraFeeds constructor");
     server = CameraServer.getInstance();
-    climberCam = server.addAxisCamera("axisCamera", "10.35.1.11");
-    intakeCam = server.startAutomaticCapture();
-    curCam = intakeCam;
+    climberCam = server.addAxisCamera("ClimberCam", "10.35.1.11");
+    // intakeCam = server.startAutomaticCapture();
     usbCamName = intakeCam.getName();
     axisCamName = climberCam.getName();
+    curCam = climberCam;
+    changeCam(curCam);
+  }
+
+  public static CameraFeeds getCameraFeeds() {
+    if (cameraFeeds == null) {
+      cameraFeeds = new CameraFeeds();
+    }
+    return cameraFeeds;
 
-    // server = CameraServer.getInstance();
-    // axisCamera = cameraServer2.addAxisCamera("axisCamera", "10.35.1.11");
-    // cameraFeeds = new CameraFeeds();
   }
 
   public void init() {
-    changeCam(intakeCam);
+    // changeCam(climberCam);
   }
 
   public void toggleCamera() {
+    System.out.println("enter toggleCamera");
     if (curCam.equals(intakeCam)) {
       changeCam(climberCam);
       curCam = climberCam;
-    }
-
-    if (curCam.equals(climberCam)) {
+      System.out
+          .println("Switching to climber camera, curCam = " + curCam.getName());
+    } else if (curCam.equals(climberCam)) {
       changeCam(intakeCam);
       curCam = intakeCam;
+      System.out
+          .println("Switching to intake camera, curCam = " + curCam.getName());
     }
   }
 
   /**
    *
-   * Change the camera to get imgs from to a different one
+   * Change the camera to get image from to a different one
    *
-   * @param newId
-   *          for camera
+   * newId for camera
    */
   public void changeCam(VideoSource cam) {
-    server.removeCamera(axisCamName);
-    server.removeCamera(usbCamName);
-    server.addCamera(cam);
+    server.removeCamera(curCam.getName());
   }
 }