X-Git-Url: http://challenge-bot.com/repos/?a=blobdiff_plain;f=src%2Forg%2Fusfirst%2Ffrc%2Fteam3501%2Frobot%2FCameraFeeds.java;h=15ea3695efe43ba65a1743d32568fb9898c5ebda;hb=7638f542e1317fc20c57cc76f3196bfe3411d68b;hp=c354594529961f38b6b252a003885bc4f740c830;hpb=1cac6c82d7cd42d210d46ae0edb59bc10f44ba26;p=3501%2F2017steamworks diff --git a/src/org/usfirst/frc/team3501/robot/CameraFeeds.java b/src/org/usfirst/frc/team3501/robot/CameraFeeds.java index c354594..15ea369 100755 --- a/src/org/usfirst/frc/team3501/robot/CameraFeeds.java +++ b/src/org/usfirst/frc/team3501/robot/CameraFeeds.java @@ -1,71 +1,87 @@ 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); + */ + server = CameraServer.getInstance(); - server.setQuality(Config.CameraFeeds.imgQuality); - } + climberCam = server.addAxisCamera("axisCamera", "10.35.1.11"); + intakeCam = server.startAutomaticCapture(); + curCam = intakeCam; + usbCamName = intakeCam.getName(); + axisCamName = climberCam.getName(); - public void init() { - changeCam(intakeCam); + // server = CameraServer.getInstance(); + // axisCamera = cameraServer2.addAxisCamera("axisCamera", "10.35.1.11"); + // cameraFeeds = new CameraFeeds(); } - public void run() - { - if(/*add test for toggle*/) - changeCam(intakeCam); - - if(/*add test for toggle*/) - changeCam(climberCam); + public static CameraFeeds getCameraFeeds() { + if (cameraFeeds == null) { + cameraFeeds = new CameraFeeds(); + } + return cameraFeeds; - updateCam(); } - /** - * Stop aka close camera stream - */ - public void end() { - NIVision.IMAQdxStopAcquisition(curCam); + public void init() { + changeCam(climberCam); } - /** - * 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; + public void toggleCamera() { + if (curCam.equals(intakeCam)) { + changeCam(climberCam); + curCam = climberCam; + System.out.println("Switching to climber camera."); + return; + } + + if (curCam.equals(climberCam)) { + changeCam(intakeCam); + curCam = intakeCam; + System.out.println("Switching to intake camera."); + return; + } } /** - * 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) { + server.removeCamera(axisCamName); + server.removeCamera(usbCamName); + server.addCamera(cam); } }