Fix small bug in toggle.
[3501/2017steamworks] / src / org / usfirst / frc / team3501 / robot / CameraFeeds.java
CommitLineData
409d6878
ME
1package org.usfirst.frc.team3501.robot;
2
2ada01fd
RH
3import edu.wpi.cscore.AxisCamera;
4import edu.wpi.cscore.UsbCamera;
b7b608d6 5import edu.wpi.cscore.VideoSource;
409d6878
ME
6import edu.wpi.first.wpilibj.CameraServer;
7
8public class CameraFeeds {
50a075d8
RH
9 // private final int intakeCam;
10 // private final int climberCam;
4dff9cc3 11 private VideoSource curCam;
409d6878 12 private CameraServer server;
50a075d8
RH
13 private static UsbCamera intakeCam;
14 private static AxisCamera climberCam;
4dff9cc3
RH
15 private static String usbCamName;
16 private static String axisCamName;
4bc0cb18 17 private static CameraFeeds cameraFeeds = null;
409d6878 18
fbc1210e 19 @SuppressWarnings("deprecation")
50a075d8 20 public CameraFeeds(/* Joystick Button */) {
7638f542
RH
21 // Get camera id by supplying camera name example 'cam0', found on roborio
22 // web
409d6878 23 // interface
50a075d8
RH
24 /*
25 * intakeCam =
26 * NIVision.IMAQdxOpenCamera(Constants.CameraFeeds.camNameCenter,
27 * NIVision.IMAQdxCameraControlMode.CameraControlModeController); climberCam
28 * = NIVision.IMAQdxOpenCamera(Constants.CameraFeeds.camNameRight,
29 * NIVision.IMAQdxCameraControlMode.CameraControlModeController); curCam =
4bc0cb18 30 * intakeCam; // Image that will contain camera image frame =
50a075d8 31 * NIVision.imaqCreateImage(NIVision.ImageType.IMAGE_RGB, 0); // Server that
4bc0cb18 32 * we'll give the image to server = CameraServer.getInstance();
50a075d8
RH
33 * server.setSize(Constants.CameraFeeds.imgQuality);
34 */
4dff9cc3 35
409d6878 36 server = CameraServer.getInstance();
50a075d8 37 climberCam = server.addAxisCamera("axisCamera", "10.35.1.11");
4dff9cc3
RH
38 intakeCam = server.startAutomaticCapture();
39 curCam = intakeCam;
40 usbCamName = intakeCam.getName();
41 axisCamName = climberCam.getName();
2ada01fd
RH
42
43 // server = CameraServer.getInstance();
44 // axisCamera = cameraServer2.addAxisCamera("axisCamera", "10.35.1.11");
45 // cameraFeeds = new CameraFeeds();
409d6878 46 }
7638f542 47
4bc0cb18 48 public static CameraFeeds getCameraFeeds() {
7638f542
RH
49 if (cameraFeeds == null) {
50 cameraFeeds = new CameraFeeds();
51 }
52 return cameraFeeds;
53
4bc0cb18 54 }
409d6878
ME
55
56 public void init() {
7638f542 57 changeCam(climberCam);
409d6878
ME
58 }
59
4dff9cc3
RH
60 public void toggleCamera() {
61 if (curCam.equals(intakeCam)) {
409d6878 62 changeCam(climberCam);
4dff9cc3 63 curCam = climberCam;
7638f542
RH
64 System.out.println("Switching to climber camera.");
65 return;
4dff9cc3 66 }
409d6878 67
4dff9cc3
RH
68 if (curCam.equals(climberCam)) {
69 changeCam(intakeCam);
70 curCam = intakeCam;
7638f542
RH
71 System.out.println("Switching to intake camera.");
72 return;
4dff9cc3 73 }
409d6878
ME
74 }
75
76 /**
50a075d8 77 *
4bc0cb18 78 * Change the camera to get image from to a different one
409d6878 79 *
7638f542 80 * newId for camera
409d6878 81 */
4dff9cc3
RH
82 public void changeCam(VideoSource cam) {
83 server.removeCamera(axisCamName);
84 server.removeCamera(usbCamName);
85 server.addCamera(cam);
409d6878
ME
86 }
87}