Remove pointless code and add print commands.
[3501/2017steamworks] / src / org / usfirst / frc / team3501 / robot / CameraFeeds.java
index c6cd477e7b159b61039437f8dd7d7c3cf9603f1d..07cf52e6a4e445150b7eb2d59c6637f475dd2b3c 100755 (executable)
@@ -1,71 +1,68 @@
 package org.usfirst.frc.team3501.robot;
 
-import com.ni.vision.NIVision;
-import com.ni.vision.NIVision.Image;
+import edu.wpi.cscore.AxisCamera;
+import edu.wpi.cscore.UsbCamera;
+import edu.wpi.cscore.VideoSource;
 import edu.wpi.first.wpilibj.CameraServer;
 
 public class CameraFeeds {
-  private final int intakeCam;
-  private final int climberCam;
-  private int curCam;
-  private Image frame;
+  // private final int intakeCam;
+  // private final int climberCam;
+  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;
 
-  public CameraFeeds() {
-    // Get camera ids by supplying camera name ex 'cam0', found on roborio web
-    // interface
-    intakeCam = NIVision.IMAQdxOpenCamera(Config.CameraFeeds.camNameCenter,
-        NIVision.IMAQdxCameraControlMode.CameraControlModeController);
-    climberCam = NIVision.IMAQdxOpenCamera(Config.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
+  @SuppressWarnings("deprecation")
+  private CameraFeeds(/* Joystick Button */) {
+    System.out.println("Enter CameraFeeds constructor");
     server = CameraServer.getInstance();
-    server.setQuality(Config.CameraFeeds.imgQuality);
+    climberCam = server.addAxisCamera("AxisCamera", "10.35.1.11");
+    intakeCam = server.startAutomaticCapture();
+    usbCamName = intakeCam.getName();
+    axisCamName = climberCam.getName();
+    curCam = climberCam;
+    changeCam(curCam);
+    System.out.println("Leaving CameraFeeds constructor");
   }
 
-  public void init() {
-    changeCam(intakeCam);
+  public static CameraFeeds getCameraFeeds() {
+    System.out.println("Enter CameraFeeds.getCameraFeeds");
+    if (cameraFeeds == null) {
+      cameraFeeds = new CameraFeeds();
+    }
+    System.out.println("Leaving CameraFeeds.getCameraFeeds");
+    return cameraFeeds;
   }
 
-  public void run()
-  {
-    if()
-      changeCam(intakeCam);
-
-    if()
-      changeCam(climberCam);
-
-    updateCam();
+  public void init() {
+    System.out.println("Initializing...");
   }
 
-  /**
-   * Stop aka close camera stream
-   */
-  public void end() {
-    NIVision.IMAQdxStopAcquisition(curCam);
+  public void toggleCamera() {
+    System.out.println("enter toggleCamera");
+    if (curCam.equals(intakeCam)) {
+      changeCam(climberCam);
+      curCam = climberCam;
+      System.out.println("Switching to climber camera.");
+    } else if (curCam.equals(climberCam)) {
+      changeCam(intakeCam);
+      curCam = intakeCam;
+      System.out.println("Switching to intake camera.");
+    }
   }
 
   /**
-   * Change the camera to get imgs from to a different one
    *
-   * @param newId
-   *          for camera
-   */
-  public void changeCam(int newId) {
-    NIVision.IMAQdxStopAcquisition(curCam);
-    NIVision.IMAQdxConfigureGrab(newId);
-    NIVision.IMAQdxStartAcquisition(newId);
-    curCam = newId;
-  }
-
-  /**
-   * Get the img from current camera and give it to the server
+   * Change the camera to get image from to a different one
+   *
+   * newId for camera
    */
-  public void updateCam() {
-    NIVision.IMAQdxGrab(curCam, frame, 1);
-    server.setImage(frame);
+  public void changeCam(VideoSource cam) {
+    System.out.println("Changing cameras...");
+    server.getVideo(cam);
   }
 }