mirror of
https://github.com/PhotonVision/photonvision
synced 2026-06-20 00:51:41 +00:00
initial pipeline update
This commit is contained in:
@@ -38,10 +38,7 @@ public class Main {
|
||||
|
||||
if (CameraManager.initializeCameras()) {
|
||||
SettingsManager.initialize();
|
||||
for (var camSet : CameraManager.getAllCamerasByName().entrySet()) {
|
||||
new Thread(new VisionProcess(camSet.getValue())).start();
|
||||
}
|
||||
|
||||
CameraManager.initializeThreads();
|
||||
NetworkTableInstance.getDefault().startClientTeam(SettingsManager.GeneralSettings.team_number);
|
||||
// NetworkTableInstance.getDefault().startClient("localhost");
|
||||
System.out.println("Starting WebServer At Port:" + port);
|
||||
|
||||
@@ -3,7 +3,9 @@ package com.chameleonvision.vision.camera;
|
||||
import com.chameleonvision.CameraException;
|
||||
import com.chameleonvision.FileHelper;
|
||||
import com.chameleonvision.settings.SettingsManager;
|
||||
import com.chameleonvision.vision.GeneralSettings;
|
||||
import com.chameleonvision.vision.Pipeline;
|
||||
import com.chameleonvision.vision.process.VisionProcess;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import edu.wpi.cscore.UsbCamera;
|
||||
@@ -22,6 +24,7 @@ public class CameraManager {
|
||||
private static final Path CamConfigPath = Paths.get(SettingsManager.SettingsPath.toString(), "cameras");
|
||||
|
||||
private static HashMap<String, Camera> AllCamerasByName = new HashMap<>();
|
||||
private static HashMap<String, VisionProcess> AllVisionProcessesByName = new HashMap<>();
|
||||
|
||||
static HashMap<String, UsbCameraInfo> AllUsbCameraInfosByName = new HashMap<>() {{
|
||||
var suffix = 0;
|
||||
@@ -67,6 +70,14 @@ public class CameraManager {
|
||||
return true;
|
||||
}
|
||||
|
||||
public static void initializeThreads(){
|
||||
for (var camSet : AllCamerasByName.entrySet()) {
|
||||
VisionProcess visionProcess = new VisionProcess(camSet.getValue());
|
||||
AllVisionProcessesByName.put(camSet.getKey(),visionProcess);
|
||||
new Thread(visionProcess).start();
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean addCamera(Camera camera, String cameraName) {
|
||||
if (AllCamerasByName.containsKey(cameraName)) return false;
|
||||
for (int i = 0; i < 10;i++){
|
||||
@@ -115,6 +126,12 @@ public class CameraManager {
|
||||
}
|
||||
throw new CameraException(CameraException.CameraExceptionType.NO_CAMERA);
|
||||
}
|
||||
public static VisionProcess getCurrentCameraProcess() throws CameraException{
|
||||
if (!SettingsManager.GeneralSettings.curr_camera.equals("")){
|
||||
return AllVisionProcessesByName.get(SettingsManager.GeneralSettings.curr_camera);
|
||||
}
|
||||
throw new CameraException(CameraException.CameraExceptionType.NO_CAMERA);
|
||||
}
|
||||
|
||||
public static void saveCameras() {
|
||||
for (var entry : AllCamerasByName.entrySet()) {
|
||||
|
||||
@@ -20,8 +20,8 @@ public class VisionProcess implements Runnable {
|
||||
private final String cameraName;
|
||||
private final CameraProcess cameraProcess;
|
||||
// NetworkTables
|
||||
private NetworkTableEntry ntPipelineEntry;
|
||||
private NetworkTableEntry ntDriverModeEntry;
|
||||
public NetworkTableEntry ntPipelineEntry;
|
||||
public NetworkTableEntry ntDriverModeEntry;
|
||||
private NetworkTableEntry ntYawEntry;
|
||||
private NetworkTableEntry ntPitchEntry;
|
||||
private NetworkTableEntry ntDistanceEntry;
|
||||
|
||||
@@ -103,7 +103,8 @@ public class ServerHandler {
|
||||
var pipelineNumber = Integer.parseInt(newPipeline.replace("pipeline", ""));
|
||||
System.out.printf("Changing pipeline to %s\n", newPipeline);
|
||||
CameraManager.setCurrentPipeline(pipelineNumber);
|
||||
// broadcastMessage(allFieldsToMap(CameraManager.getCurrentPipeline()));
|
||||
var Proccess = CameraManager.getCurrentCameraProcess();
|
||||
Proccess.ntPipelineEntry.setString(newPipeline);
|
||||
broadcastMessage(allFieldsToMap(CameraManager.getCurrentPipeline()));
|
||||
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user