Toggle cameras only once.
[3501/2017steamworks] / src / org / usfirst / frc / team3501 / robot / CameraFeeds.java
1 package org.usfirst.frc.team3501.robot;
2
3 import edu.wpi.cscore.AxisCamera;
4 import edu.wpi.cscore.UsbCamera;
5 import edu.wpi.cscore.VideoSource;
6 import edu.wpi.first.wpilibj.CameraServer;
7
8 public class CameraFeeds {
9 // private final int intakeCam;
10 // private final int climberCam;
11 private VideoSource curCam;
12 private CameraServer server;
13 private static UsbCamera intakeCam;
14 private static AxisCamera climberCam;
15 private static String usbCamName;
16 private static String axisCamName;
17 private static CameraFeeds cameraFeeds = null;
18
19 @SuppressWarnings("deprecation")
20 private CameraFeeds(/* Joystick Button */) {
21 usbCamName = intakeCam.getName();
22 axisCamName = climberCam.getName();
23 server = CameraServer.getInstance();
24 climberCam = server.addAxisCamera(axisCamName, "10.35.1.11");
25 intakeCam = server.startAutomaticCapture();
26 curCam = climberCam;
27 }
28
29 public static CameraFeeds getCameraFeeds() {
30 if (cameraFeeds == null) {
31 cameraFeeds = new CameraFeeds();
32 }
33 return cameraFeeds;
34
35 }
36
37 public void init() {
38 changeCam(climberCam);
39 }
40
41 public void toggleCamera() {
42 System.out.println("enter toggleCamera");
43 if (curCam.equals(intakeCam)) {
44 changeCam(climberCam);
45 curCam = climberCam;
46 System.out.println("Switching to climber camera.");
47 } else if (curCam.equals(climberCam)) {
48 changeCam(intakeCam);
49 curCam = intakeCam;
50 System.out.println("Switching to intake camera.");
51 }
52 }
53
54 /**
55 *
56 * Change the camera to get image from to a different one
57 *
58 * newId for camera
59 */
60 public void changeCam(VideoSource cam) {
61 server.removeCamera(curCam.getName());
62 server.addCamera(cam);
63 }
64 }