{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "plc.schema.json", "title": "PLC & UDP Configuration", "description": "Esquema para editar plc_config.json", "type": "object", "additionalProperties": false, "properties": { "plc_config": { "type": "object", "title": "PLC Configuration", "additionalProperties": false, "properties": { "ip": { "type": "string", "title": "PLC IP", "pattern": "^.+$" }, "rack": { "type": "integer", "minimum": 0, "maximum": 7, "default": 0 }, "slot": { "type": "integer", "minimum": 0, "maximum": 31, "default": 2 } }, "required": [ "ip", "rack", "slot" ] }, "udp_config": { "type": "object", "title": "UDP Configuration", "additionalProperties": false, "properties": { "host": { "type": "string", "title": "UDP Host", "pattern": "^.+$", "default": "127.0.0.1" }, "port": { "type": "integer", "minimum": 1, "maximum": 65535, "default": 9870 } }, "required": [ "host", "port" ] }, "sampling_interval": { "type": "number", "minimum": 0.01, "title": "Sampling Interval (s)", "default": 0.1 }, "csv_config": { "type": "object", "title": "CSV Recording", "additionalProperties": false, "properties": { "records_directory": { "type": "string", "title": "Records Directory", "default": "records" }, "rotation_enabled": { "type": "boolean", "title": "Rotation", "default": true, "x-ui": { "toggleLabels": [ "Activate", "Deactivate" ] } }, "max_size_mb": { "type": [ "integer", "null" ], "minimum": 1, "title": "Max Size (MB)", "default": 1000 }, "max_days": { "type": [ "integer", "null" ], "minimum": 1, "title": "Max Days", "default": 30 }, "max_hours": { "type": [ "integer", "null" ], "minimum": 1, "title": "Max Hours", "default": null }, "cleanup_interval_hours": { "type": "integer", "minimum": 1, "title": "Cleanup Interval (h)", "default": 24 }, "last_cleanup": { "type": [ "string", "null" ], "title": "Last Cleanup" } }, "required": [ "records_directory", "rotation_enabled", "cleanup_interval_hours" ] } }, "required": [ "plc_config", "udp_config", "sampling_interval", "csv_config" ] }