mirror of
https://github.com/PhotonVision/photonvision
synced 2026-06-20 00:51:41 +00:00
changed general settings naming and added general settings save in ui
This commit is contained in:
@@ -148,7 +148,7 @@ public class Main {
|
||||
if (ntClientModeServer != null) {
|
||||
NetworkTableInstance.getDefault().startClient(ntClientModeServer);
|
||||
} else {
|
||||
NetworkTableInstance.getDefault().startClientTeam(SettingsManager.GeneralSettings.team_number);
|
||||
NetworkTableInstance.getDefault().startClientTeam(SettingsManager.GeneralSettings.teamNumber);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.chameleonvision.network;
|
||||
|
||||
|
||||
import com.chameleonvision.settings.ConnectionType;
|
||||
import com.chameleonvision.settings.NetworkSettings;
|
||||
import com.chameleonvision.settings.Platform;
|
||||
import com.chameleonvision.settings.SettingsManager;
|
||||
@@ -46,7 +47,7 @@ public class NetworkManager {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
var teamBytes = NetworkSettings.GetTeamNumberIPBytes(SettingsManager.GeneralSettings.team_number);
|
||||
var teamBytes = NetworkSettings.GetTeamNumberIPBytes(SettingsManager.GeneralSettings.teamNumber);
|
||||
|
||||
if (interfaces.size() > 0) {
|
||||
for (var inetface : interfaces) {
|
||||
@@ -85,7 +86,7 @@ public class NetworkManager {
|
||||
}
|
||||
|
||||
var genSettings = SettingsManager.GeneralSettings;
|
||||
boolean isStatic = genSettings.connection_type.toLowerCase().equals("static");
|
||||
boolean isStatic = genSettings.connectionType.equals(ConnectionType.Static);
|
||||
|
||||
if (isStatic) {
|
||||
var splitIPAddr = genSettings.ip.split("\\.");
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.chameleonvision.settings;
|
||||
|
||||
public enum ConnectionType {
|
||||
DHCP,Static
|
||||
}
|
||||
@@ -1,12 +1,12 @@
|
||||
package com.chameleonvision.settings;
|
||||
|
||||
public class GeneralSettings {
|
||||
public int team_number = 1577;
|
||||
public String connection_type = "DHCP";
|
||||
public int teamNumber = 1577;
|
||||
public ConnectionType connectionType = ConnectionType.DHCP;
|
||||
public String ip = "";
|
||||
public String gateway = "";
|
||||
public String netmask = "";
|
||||
public String hostname = "Chameleon-vision";
|
||||
public String curr_camera = "";
|
||||
public Integer curr_pipeline = null;
|
||||
public String currentCamera = "";
|
||||
public Integer currentPipeline = null;
|
||||
}
|
||||
|
||||
@@ -32,10 +32,10 @@ public class SettingsManager {
|
||||
// netSettings.run();
|
||||
// }
|
||||
var allCameras = CameraManager.getAllCamerasByName();
|
||||
if (!allCameras.containsKey(GeneralSettings.curr_camera) && allCameras.size() > 0) {
|
||||
if (!allCameras.containsKey(GeneralSettings.currentCamera) && allCameras.size() > 0) {
|
||||
var cam = allCameras.entrySet().stream().findFirst().get().getValue();
|
||||
GeneralSettings.curr_camera = cam.name;
|
||||
GeneralSettings.curr_pipeline = cam.getCurrentPipelineIndex();
|
||||
GeneralSettings.currentCamera = cam.name;
|
||||
GeneralSettings.currentPipeline = cam.getCurrentPipelineIndex();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,12 +49,12 @@ public class SettingsManager {
|
||||
}
|
||||
|
||||
public static void updateCameraSetting(String cameraName, int pipelineNumber) {
|
||||
GeneralSettings.curr_camera = cameraName;
|
||||
GeneralSettings.curr_pipeline = pipelineNumber;
|
||||
GeneralSettings.currentCamera = cameraName;
|
||||
GeneralSettings.currentPipeline = pipelineNumber;
|
||||
}
|
||||
|
||||
public static void updatePipelineSetting(int pipelineNumber) {
|
||||
GeneralSettings.curr_pipeline = pipelineNumber;
|
||||
GeneralSettings.currentPipeline = pipelineNumber;
|
||||
}
|
||||
|
||||
public static void saveSettings() {
|
||||
|
||||
@@ -118,6 +118,7 @@ public class Camera {
|
||||
cvSource = cs.putVideo(name, newVideoMode.width, newVideoMode.height);
|
||||
}
|
||||
ServerHandler.sendFullSettings();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -92,7 +92,7 @@ public class CameraManager {
|
||||
|
||||
public static Camera getCurrentCamera() throws CameraException {
|
||||
if (AllCamerasByName.size() == 0) throw new CameraException(CameraException.CameraExceptionType.NO_CAMERA);
|
||||
var curCam = AllCamerasByName.get(SettingsManager.GeneralSettings.curr_camera);
|
||||
var curCam = AllCamerasByName.get(SettingsManager.GeneralSettings.currentCamera);
|
||||
if (curCam == null) throw new CameraException(CameraException.CameraExceptionType.BAD_CAMERA);
|
||||
return curCam;
|
||||
}
|
||||
@@ -100,7 +100,7 @@ public class CameraManager {
|
||||
public static void setCurrentCamera(String cameraName) throws CameraException {
|
||||
if (!AllCamerasByName.containsKey(cameraName))
|
||||
throw new CameraException(CameraException.CameraExceptionType.BAD_CAMERA);
|
||||
SettingsManager.GeneralSettings.curr_camera = cameraName;
|
||||
SettingsManager.GeneralSettings.currentCamera = cameraName;
|
||||
SettingsManager.updateCameraSetting(cameraName, getCurrentCamera().getCurrentPipelineIndex());
|
||||
}
|
||||
|
||||
@@ -116,15 +116,15 @@ public class CameraManager {
|
||||
}
|
||||
|
||||
public static List<String> getResolutionList() throws CameraException {
|
||||
if (!SettingsManager.GeneralSettings.curr_camera.equals("")) {
|
||||
return Arrays.stream(CameraManager.getCamera(SettingsManager.GeneralSettings.curr_camera).getAvailableVideoModes())
|
||||
if (!SettingsManager.GeneralSettings.currentCamera.equals("")) {
|
||||
return Arrays.stream(CameraManager.getCamera(SettingsManager.GeneralSettings.currentCamera).getAvailableVideoModes())
|
||||
.map(res -> String.format("%s X %s at %s fps using %s ", res.width, res.height, res.fps, res.pixelFormat.toString())).collect(Collectors.toList());
|
||||
}
|
||||
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);
|
||||
if (!SettingsManager.GeneralSettings.currentCamera.equals("")){
|
||||
return AllVisionProcessesByName.get(SettingsManager.GeneralSettings.currentCamera);
|
||||
}
|
||||
throw new CameraException(CameraException.CameraExceptionType.NO_CAMERA);
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.chameleonvision.settings.SettingsManager;
|
||||
import com.chameleonvision.vision.Orientation;
|
||||
import com.chameleonvision.vision.Pipeline;
|
||||
import com.chameleonvision.vision.camera.Camera;
|
||||
import com.chameleonvision.vision.camera.CameraException;
|
||||
import com.chameleonvision.web.ServerHandler;
|
||||
import edu.wpi.cscore.VideoException;
|
||||
import edu.wpi.first.networktables.*;
|
||||
@@ -88,12 +89,13 @@ public class VisionProcess implements Runnable {
|
||||
System.err.println(e.toString());
|
||||
}
|
||||
camera.setBrightness(pipeline.brightness);
|
||||
if (SettingsManager.GeneralSettings.curr_camera.equals(cameraName)){
|
||||
SettingsManager.GeneralSettings.curr_pipeline = ntPipelineIndex;
|
||||
if (SettingsManager.GeneralSettings.currentCamera.equals(cameraName)){
|
||||
SettingsManager.GeneralSettings.currentPipeline = ntPipelineIndex;
|
||||
HashMap<String, Object> pipeChange = new HashMap<>();
|
||||
pipeChange.put("curr_pipeline", ntPipelineIndex);
|
||||
pipeChange.put("currentPipeline", ntPipelineIndex);
|
||||
ServerHandler.broadcastMessage(pipeChange);
|
||||
ServerHandler.sendFullSettings();
|
||||
|
||||
}
|
||||
} else {
|
||||
ntPipelineEntry.setNumber(camera.getCurrentPipelineIndex());
|
||||
@@ -222,25 +224,27 @@ public class VisionProcess implements Runnable {
|
||||
// get vision data
|
||||
var pipelineResult = runVisionProcess(cameraInputMat, streamOutputMat);
|
||||
updateNetworkTables(pipelineResult);
|
||||
if (cameraName.equals(SettingsManager.GeneralSettings.curr_camera)) {
|
||||
if (cameraName.equals(SettingsManager.GeneralSettings.currentCamera)) {
|
||||
HashMap<String, Object> WebSend = new HashMap<>();
|
||||
HashMap<String, Object> point = new HashMap<>();
|
||||
HashMap<String, Object> calculated = new HashMap<>();
|
||||
List<Double> center = new ArrayList<>();
|
||||
if (pipelineResult.IsValid) {
|
||||
center.add(pipelineResult.RawPoint.center.x);
|
||||
center.add(pipelineResult.RawPoint.center.y);
|
||||
point.put("pitch", pipelineResult.Pitch);
|
||||
point.put("yaw", pipelineResult.Yaw);
|
||||
calculated.put("pitch", pipelineResult.Pitch);
|
||||
calculated.put("yaw", pipelineResult.Yaw);
|
||||
} else {
|
||||
center.add(0.0);
|
||||
center.add(0.0);
|
||||
point.put("pitch", 0);
|
||||
point.put("yaw", 0);
|
||||
calculated.put("pitch", 0);
|
||||
calculated.put("yaw", 0);
|
||||
}
|
||||
point.put("fps", uiFps);
|
||||
point.put("calculated",calculated);
|
||||
point.put("rawPoint",center);
|
||||
WebSend.put("point", point);
|
||||
WebSend.put("raw_point", center);
|
||||
// ServerHandler.broadcastMessage(WebSend);
|
||||
ServerHandler.broadcastMessage(WebSend);
|
||||
}
|
||||
|
||||
cameraProcess.updateFrame(streamOutputMat);
|
||||
|
||||
@@ -48,8 +48,9 @@ public class ServerHandler {
|
||||
try {
|
||||
switch (entry.getKey()) {
|
||||
case "generalSettings": {
|
||||
System.out.println("asdds");
|
||||
//change general settings using a general settings object
|
||||
for (HashMap.Entry<String,Object> e : ((HashMap<String,Object>)entry.getValue()).entrySet()){
|
||||
setField(SettingsManager.GeneralSettings,e.getKey(),e.getValue());
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "cameraSettings": {
|
||||
@@ -133,7 +134,7 @@ public class ServerHandler {
|
||||
broadcastMessage(obj, null);//Broadcasts the message to every user
|
||||
}
|
||||
|
||||
public static HashMap<String,Object> getOrdinalPipeline() throws CameraException, IllegalAccessException {
|
||||
private static HashMap<String,Object> getOrdinalPipeline() throws CameraException, IllegalAccessException {
|
||||
HashMap<String,Object> tmp = new HashMap<>();
|
||||
|
||||
for (Field f : Pipeline.class.getFields()){
|
||||
@@ -146,12 +147,22 @@ public class ServerHandler {
|
||||
}
|
||||
return tmp;
|
||||
}
|
||||
private static HashMap<String,Object> getOrdinalSettings() throws IllegalAccessException {
|
||||
HashMap<String,Object> tmp = new HashMap<>();
|
||||
tmp.put("teamNumber",SettingsManager.GeneralSettings.teamNumber);
|
||||
tmp.put("connectionType",SettingsManager.GeneralSettings.connectionType.ordinal());
|
||||
tmp.put("ip",SettingsManager.GeneralSettings.ip);
|
||||
tmp.put("gateway",SettingsManager.GeneralSettings.gateway);
|
||||
tmp.put("netmask",SettingsManager.GeneralSettings.netmask);
|
||||
tmp.put("hostname",SettingsManager.GeneralSettings.hostname);
|
||||
return tmp;
|
||||
}
|
||||
public static void sendFullSettings() {
|
||||
//General settings
|
||||
Map<String, Object> fullSettings = new HashMap<String, Object>();
|
||||
fullSettings.put("settings", SettingsManager.GeneralSettings);
|
||||
fullSettings.put("cameraList", CameraManager.getAllCamerasByName().keySet());
|
||||
Map<String, Object> fullSettings = new HashMap<>();
|
||||
try {
|
||||
fullSettings.put("settings", getOrdinalSettings());
|
||||
fullSettings.put("cameraList", CameraManager.getAllCamerasByName().keySet());
|
||||
var currentCamera = CameraManager.getCurrentCamera();
|
||||
fullSettings.put("pipeline", getOrdinalPipeline());
|
||||
fullSettings.put("pipelineList", currentCamera.getPipelines().keySet());
|
||||
|
||||
Reference in New Issue
Block a user