Check offline updates for incompatibility (#2361)

This commit is contained in:
Sam Freund
2026-02-18 01:24:46 -06:00
committed by GitHub
parent c91df33b63
commit 5474e28826
8 changed files with 132 additions and 6 deletions

View File

@@ -23,32 +23,38 @@ import org.photonvision.common.configuration.NeuralNetworkModelsSettings;
public class UIGeneralSettings {
public UIGeneralSettings(
String version,
String imageVersion,
String gpuAcceleration,
boolean mrCalWorking,
NeuralNetworkModelsSettings.ModelProperties[] availableModels,
List<String> supportedBackends,
String hardwareModel,
String hardwarePlatform,
String wpilibArch,
boolean conflictingHostname,
String conflictingCameras) {
this.version = version;
this.imageVersion = imageVersion;
this.gpuAcceleration = gpuAcceleration;
this.mrCalWorking = mrCalWorking;
this.availableModels = availableModels;
this.supportedBackends = supportedBackends;
this.hardwareModel = hardwareModel;
this.hardwarePlatform = hardwarePlatform;
this.wpilibArch = wpilibArch;
this.conflictingHostname = conflictingHostname;
this.conflictingCameras = conflictingCameras;
}
public String version;
public String imageVersion;
public String gpuAcceleration;
public boolean mrCalWorking;
public NeuralNetworkModelsSettings.ModelProperties[] availableModels;
public List<String> supportedBackends;
public String hardwareModel;
public String hardwarePlatform;
public String wpilibArch;
public boolean conflictingHostname;
public String conflictingCameras;
}

View File

@@ -24,6 +24,7 @@ import org.photonvision.common.LoadJNI.JNITypes;
import org.photonvision.common.configuration.NeuralNetworkModelManager;
import org.photonvision.common.configuration.PhotonConfiguration;
import org.photonvision.common.dataflow.networktables.NetworkTablesManager;
import org.photonvision.common.hardware.OsImageData;
import org.photonvision.common.hardware.Platform;
import org.photonvision.common.networking.NetworkManager;
import org.photonvision.common.networking.NetworkUtils;
@@ -52,6 +53,9 @@ public class UIPhotonConfiguration {
!c.getHardwareConfig().ledPins.isEmpty()),
new UIGeneralSettings(
PhotonVersion.versionString,
OsImageData.IMAGE_METADATA.isPresent()
? OsImageData.IMAGE_METADATA.get().commitTag()
: "",
// TODO add support for other types of GPU accel
LoadJNI.hasLoaded(JNITypes.LIBCAMERA) ? "Zerocopy Libcamera Working" : "",
LoadJNI.hasLoaded(JNITypes.MRCAL),
@@ -61,6 +65,7 @@ public class UIPhotonConfiguration {
? Platform.getHardwareModel()
: c.getHardwareConfig().deviceName,
Platform.getPlatformName(),
Platform.getNativePlatform(),
NetworkTablesManager.getInstance().conflictingHostname,
NetworkTablesManager.getInstance().conflictingCameras),
c.getApriltagFieldLayout()),

View File

@@ -38,8 +38,11 @@ public class OsImageData {
private static Path imageVersionFile = Path.of("/opt/photonvision/image-version");
private static Path imageMetadataFile = Path.of("/opt/photonvision/image-version.json");
/** The OS image version string, if available. This is legacy, use {@link ImageMetadata}. */
public static final Optional<String> IMAGE_VERSION = getImageVersion();
/**
* The OS image version string, if available. This is legacy, use {@link ImageMetadata}.
* Deprecated for removal in 2027.
*/
@Deprecated public static final Optional<String> IMAGE_VERSION = getImageVersion();
private static Optional<String> getImageVersion() {
if (!imageVersionFile.toFile().exists()) {