4e1d919dac54204bfa4f3adfc10de0c7697b22fa
[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 server = CameraServer.getInstance();
37 climberCam = server.addAxisCamera("axisCamera", "10.35.1.11");
38 intakeCam = server.startAutomaticCapture();
39 curCam = intakeCam;
40 usbCamName = intakeCam.getName();
41 axisCamName = climberCam.getName();
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(climberCam);
58 }
59
60 public void toggleCamera() {
61 System.out.println("enter toggleCamer");
62 if (curCam.equals(intakeCam)) {
63 changeCam(climberCam);
64 curCam = climberCam;
65 System.out.println("Switching to climber camera.");
66 return;
67 }
68
69 if (curCam.equals(climberCam)) {
70 changeCam(intakeCam);
71 curCam = intakeCam;
72 System.out.println("Switching to intake camera.");
73 return;
74 }
75 }
76
77 /**
78 *
79 * Change the camera to get image from to a different one
80 *
81 * newId for camera
82 */
83 public void changeCam(VideoSource cam) {
84 System.out.println("change camera");
85 server.removeCamera(axisCamName);
86 server.removeCamera(usbCamName);
87 server.addCamera(cam);
88 }
89 }