Try to understand why axis camera does turn on while toggling.
[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 public CameraFeeds(/* Joystick Button */) {
21 // Get camera id by supplying camera name example 'cam0', found on roborio
22 // web
23 // interface
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 =
30 * intakeCam; // Image that will contain camera image frame =
31 * NIVision.imaqCreateImage(NIVision.ImageType.IMAGE_RGB, 0); // Server that
32 * we'll give the image to server = CameraServer.getInstance();
33 * server.setSize(Constants.CameraFeeds.imgQuality);
34 */
35
36 usbCamName = intakeCam.getName();
37 axisCamName = climberCam.getName();
38 server = CameraServer.getInstance();
39 climberCam = server.addAxisCamera(axisCamName, "10.35.1.11");
40 intakeCam = server.startAutomaticCapture();
41 curCam = intakeCam;
42
43 // server = CameraServer.getInstance();
44 // axisCamera = cameraServer2.addAxisCamera("axisCamera", "10.35.1.11");
45 // cameraFeeds = new CameraFeeds();
46 }
47
48 public static CameraFeeds getCameraFeeds() {
49 if (cameraFeeds == null) {
50 cameraFeeds = new CameraFeeds();
51 }
52 return cameraFeeds;
53
54 }
55
56 public void init() {
57 changeCam(intakeCam);
58 }
59
60 public void toggleCamera() {
61 if (curCam.equals(intakeCam)) {
62 // changeCam(climberCam);
63 curCam = climberCam;
64 // System.out.println("Switching to climber camera.");
65 } else if (curCam.equals(climberCam)) {
66 // changeCam(intakeCam);
67 curCam = intakeCam;
68 // System.out.println("Switching to intake camera.");
69 }
70 changeCam(curCam);
71 }
72
73 /**
74 *
75 * Change the camera to get image from to a different one
76 *
77 * newId for camera
78 */
79 public void changeCam(VideoSource cam) {
80 server.removeCamera(curCam.getName());
81 if (curCam.equals(intakeCam)) {
82 server.addCamera(intakeCam);
83 System.out.println("Switching to climber camera.");
84 return;
85 }
86
87 if (curCam.equals(climberCam)) {
88 server.addAxisCamera(axisCamName, "10.35.1.11");
89 // server.addCamera(climberCam);
90 System.out.println("Switching to intake camera.");
91 return;
92 }
93 }
94 }