2026-02-27 09:55:36 -06:00
|
|
|
import type { SectionConfigOverrides } from "./types";
|
|
|
|
|
|
|
|
|
|
const lpr: SectionConfigOverrides = {
|
|
|
|
|
base: {
|
|
|
|
|
sectionDocs: "/configuration/license_plate_recognition",
|
2026-03-29 16:25:40 -05:00
|
|
|
messages: [
|
|
|
|
|
{
|
|
|
|
|
key: "global-disabled",
|
|
|
|
|
messageKey: "configMessages.lpr.globalDisabled",
|
|
|
|
|
severity: "warning",
|
|
|
|
|
condition: (ctx) => {
|
|
|
|
|
if (ctx.level !== "camera") return false;
|
|
|
|
|
return ctx.fullConfig.lpr?.enabled === false;
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
key: "vehicle-not-tracked",
|
|
|
|
|
messageKey: "configMessages.lpr.vehicleNotTracked",
|
|
|
|
|
severity: "info",
|
|
|
|
|
condition: (ctx) => {
|
|
|
|
|
if (ctx.level !== "camera" || !ctx.fullCameraConfig) return false;
|
|
|
|
|
if (ctx.fullCameraConfig.type === "lpr") return false;
|
|
|
|
|
const tracked = ctx.fullCameraConfig.objects?.track ?? [];
|
|
|
|
|
return !tracked.some((o) => ["car", "motorcycle"].includes(o));
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
],
|
2026-02-27 09:55:36 -06:00
|
|
|
fieldDocs: {
|
|
|
|
|
enhancement: "/configuration/license_plate_recognition#enhancement",
|
2026-04-20 08:19:09 -05:00
|
|
|
debug_save_plates:
|
|
|
|
|
"/configuration/license_plate_recognition/#how-do-i-debug-lpr-issues",
|
2026-02-27 09:55:36 -06:00
|
|
|
},
|
|
|
|
|
restartRequired: [],
|
2026-03-20 08:24:34 -05:00
|
|
|
fieldOrder: ["enabled", "min_area", "enhancement", "expire_time"],
|
2026-04-20 08:19:09 -05:00
|
|
|
hiddenFields: ["expire_time"],
|
2026-03-20 08:24:34 -05:00
|
|
|
advancedFields: ["expire_time", "enhancement"],
|
2026-02-27 09:55:36 -06:00
|
|
|
overrideFields: ["enabled", "min_area", "enhancement"],
|
|
|
|
|
},
|
|
|
|
|
global: {
|
|
|
|
|
fieldOrder: [
|
|
|
|
|
"enabled",
|
|
|
|
|
"model_size",
|
|
|
|
|
"detection_threshold",
|
|
|
|
|
"min_area",
|
|
|
|
|
"recognition_threshold",
|
|
|
|
|
"min_plate_length",
|
|
|
|
|
"format",
|
|
|
|
|
"match_distance",
|
|
|
|
|
"known_plates",
|
|
|
|
|
"enhancement",
|
|
|
|
|
"debug_save_plates",
|
|
|
|
|
"device",
|
|
|
|
|
"replace_rules",
|
|
|
|
|
],
|
|
|
|
|
advancedFields: [
|
|
|
|
|
"detection_threshold",
|
|
|
|
|
"recognition_threshold",
|
|
|
|
|
"min_plate_length",
|
|
|
|
|
"format",
|
|
|
|
|
"match_distance",
|
|
|
|
|
"known_plates",
|
|
|
|
|
"enhancement",
|
|
|
|
|
"debug_save_plates",
|
|
|
|
|
"device",
|
|
|
|
|
"replace_rules",
|
|
|
|
|
],
|
2026-03-06 14:45:39 -06:00
|
|
|
restartRequired: ["model_size", "enhancement", "device"],
|
2026-05-07 13:23:02 -05:00
|
|
|
fieldMessages: [
|
|
|
|
|
{
|
|
|
|
|
key: "model-size-large",
|
|
|
|
|
field: "model_size",
|
|
|
|
|
messageKey: "configMessages.lpr.modelSizeLarge",
|
|
|
|
|
severity: "info",
|
|
|
|
|
position: "after",
|
|
|
|
|
condition: (ctx) => ctx.formData?.model_size === "large",
|
|
|
|
|
},
|
|
|
|
|
],
|
2026-02-27 09:55:36 -06:00
|
|
|
uiSchema: {
|
|
|
|
|
format: {
|
|
|
|
|
"ui:options": { size: "md" },
|
|
|
|
|
},
|
2026-04-07 08:16:19 -05:00
|
|
|
known_plates: {
|
|
|
|
|
"ui:field": "KnownPlatesField",
|
|
|
|
|
"ui:options": {
|
|
|
|
|
label: false,
|
|
|
|
|
suppressDescription: true,
|
|
|
|
|
},
|
|
|
|
|
},
|
2026-02-27 09:55:36 -06:00
|
|
|
replace_rules: {
|
|
|
|
|
"ui:field": "ReplaceRulesField",
|
|
|
|
|
"ui:options": {
|
|
|
|
|
label: false,
|
|
|
|
|
suppressDescription: true,
|
|
|
|
|
},
|
|
|
|
|
},
|
2026-05-07 08:53:07 -05:00
|
|
|
model_size: {
|
|
|
|
|
"ui:options": { size: "xs" },
|
|
|
|
|
},
|
2026-02-27 09:55:36 -06:00
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export default lpr;
|