feat(k1): complete canonical control lifecycle
This commit is contained in:
@@ -366,6 +366,23 @@ def _validate_acquisition_control(profile: dict[str, Any]) -> None:
|
||||
if control.get("mode") != "operator-manual" or control.get("write_enabled") is not False:
|
||||
raise CompatibilityProfileError("acquisition control must remain operator-manual")
|
||||
|
||||
acceptance_transport = _object(
|
||||
control.get("software_acceptance_transport"),
|
||||
"$.acquisition_control.software_acceptance_transport",
|
||||
)
|
||||
if acceptance_transport != {
|
||||
"status": "installed-operator-present",
|
||||
"default_authority": "disabled",
|
||||
"profile_gate": "live-device-info-exact-match",
|
||||
"dialogue": "single-socket-canonical-start-to-stop",
|
||||
"automatic_retry": False,
|
||||
"supported_mount_type": "handheld",
|
||||
"supported_gnss_mode": "none",
|
||||
}:
|
||||
raise CompatibilityProfileError(
|
||||
"software acceptance transport differs from the reviewed operator-present contract"
|
||||
)
|
||||
|
||||
device_control = _object(
|
||||
control.get("verified_device_control"),
|
||||
"$.acquisition_control.verified_device_control",
|
||||
@@ -497,6 +514,8 @@ def validate_compatibility_profile(profile: Any) -> dict[str, Any]:
|
||||
scope = _object(root.get("scope"), "$.scope")
|
||||
if scope.get("vendor") != "XGRIDS" or scope.get("model") != "LixelKity K1":
|
||||
raise CompatibilityProfileError("profile vendor/model must remain XGRIDS LixelKity K1")
|
||||
if scope.get("platform_type") != "A4":
|
||||
raise CompatibilityProfileError("profile platform type must remain the observed A4")
|
||||
firmware = _object(scope.get("firmware"), "$.scope.firmware")
|
||||
if firmware != {"match": "exact", "version": "3.0.2"}:
|
||||
raise CompatibilityProfileError("profile must match firmware 3.0.2 exactly")
|
||||
|
||||
Reference in New Issue
Block a user