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
+ @SuppressWarnings("deprecation")
+ public CameraFeeds(/* Joystick Button */) {
+ // Get camera id by supplying camera name example '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
+ /*
+ * intakeCam =
+ * NIVision.IMAQdxOpenCamera(Constants.CameraFeeds.camNameCenter,
+ * NIVision.IMAQdxCameraControlMode.CameraControlModeController); climberCam
+ * = NIVision.IMAQdxOpenCamera(Constants.CameraFeeds.camNameRight,
+ * NIVision.IMAQdxCameraControlMode.CameraControlModeController); curCam =
+ * intakeCam; // Image that will contain camera image frame =
+ * NIVision.imaqCreateImage(NIVision.ImageType.IMAGE_RGB, 0); // Server that
+ * we'll give the image to server = CameraServer.getInstance();
+ * server.setSize(Constants.CameraFeeds.imgQuality);
+ */
+
+ usbCamName = intakeCam.getName();
+ axisCamName = climberCam.getName();
server = CameraServer.getInstance();
- server.setQuality(Config.CameraFeeds.imgQuality);
- }
+ climberCam = server.addAxisCamera(axisCamName, "10.35.1.11");
+ intakeCam = server.startAutomaticCapture();
+ curCam = intakeCam;
- public void init() {
- changeCam(intakeCam);
+ // server = CameraServer.getInstance();
+ // axisCamera = cameraServer2.addAxisCamera("axisCamera", "10.35.1.11");
+ // cameraFeeds = new CameraFeeds();
}
- public void run()
- {
- if()
- changeCam(intakeCam);
+ public static CameraFeeds getCameraFeeds() {
+ if (cameraFeeds == null) {
+ cameraFeeds = new CameraFeeds();
+ }
+ return cameraFeeds;
- if()
- changeCam(climberCam);
+ }
- updateCam();
+ public void init() {
+ changeCam(intakeCam);
}
- /**
- * Stop aka close camera stream
- */
- public void end() {
- NIVision.IMAQdxStopAcquisition(curCam);
+ public void 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.");
+ }
+ changeCam(curCam);
}
/**
- * Change the camera to get imgs from to a different one
*
- * @param newId
- * for camera
+ * Change the camera to get image from to a different one
+ *
+ * newId for camera
*/
- public void changeCam(int newId) {
- NIVision.IMAQdxStopAcquisition(curCam);
- NIVision.IMAQdxConfigureGrab(newId);
- NIVision.IMAQdxStartAcquisition(newId);
- curCam = newId;
- }
+ public void changeCam(VideoSource cam) {
+ server.removeCamera(curCam.getName());
+ if (curCam.equals(intakeCam)) {
+ server.addCamera(intakeCam);
+ System.out.println("Switching to climber camera.");
+ return;
+ }
- /**
- * Get the img from current camera and give it to the server
- */
- public void updateCam() {
- NIVision.IMAQdxGrab(curCam, frame, 1);
- server.setImage(frame);
+ if (curCam.equals(climberCam)) {
+ server.addAxisCamera(axisCamName, "10.35.1.11");
+ // server.addCamera(climberCam);
+ System.out.println("Switching to intake camera.");
+ return;
+ }
}
}