{ "general": { "name": { "default": "gate group control Machine", "rules": { "type": "string", "description": "A human-readable name or label for this machine configuration." } }, "id": { "default": null, "rules": { "type": "string", "nullable": true, "description": "A unique identifier for this configuration. If not provided, defaults to null." } }, "unit": { "default": "m3/h", "rules": { "type": "string", "description": "The default measurement unit for this configuration (e.g., 'meters', 'seconds', 'unitless')." } }, "logging": { "logLevel": { "default": "info", "rules": { "type": "enum", "values": [ { "value": "debug", "description": "Log messages are printed for debugging purposes." }, { "value": "info", "description": "Informational messages are printed." }, { "value": "warn", "description": "Warning messages are printed." }, { "value": "error", "description": "Error messages are printed." } ] } }, "enabled": { "default": true, "rules": { "type": "boolean", "description": "Indicates whether logging is active. If true, log messages will be generated." } } } }, "functionality": { "softwareType": { "default": "gateGroupControl", "rules": { "type": "string", "description": "Specified software type for this configuration." } }, "role": { "default": "gate controller", "rules": { "type": "string", "description": "Indicates the role this configuration plays within the system." } } }, "asset": { "uuid": { "default": null, "rules": { "type": "string", "nullable": true, "description": "A universally unique identifier for this asset. May be null if not assigned." } }, "geoLocation": { "default": {}, "rules": { "type": "object", "description": "An object representing the asset's physical coordinates or location.", "schema": { "x": { "default": 0, "rules": { "type": "number", "description": "X coordinate of the asset's location." } }, "y": { "default": 0, "rules": { "type": "number", "description": "Y coordinate of the asset's location." } }, "z": { "default": 0, "rules": { "type": "number", "description": "Z coordinate of the asset's location." } } } } } }, "mode": { "current": { "default": "auto", "rules": { "type": "enum", "values": [ { "value": "auto", "description": "Machine accepts setpoints from a parent controller and runs autonomously." }, { "value": "virtualControl", "description": "Controlled via GUI setpoints; ignores parent commands." }, { "value": "fysicalControl", "description": "Controlled via physical buttons or switches; ignores external automated commands." }, { "value": "maintenance", "description": "No active control from auto, virtual, or fysical sources." } ], "description": "The operational mode of the machine." } }, "allowedActions":{ "default":{}, "rules": { "type": "object", "schema":{ "auto": { "default": ["statusCheck", "execMovement", "execSequence", "emergencyStop"], "rules": { "type": "set", "itemType": "string", "description": "Actions allowed in auto mode." } }, "virtualControl": { "default": ["statusCheck", "execMovement", "execSequence", "emergencyStop"], "rules": { "type": "set", "itemType": "string", "description": "Actions allowed in virtualControl mode." } }, "fysicalControl": { "default": ["statusCheck", "emergencyStop"], "rules": { "type": "set", "itemType": "string", "description": "Actions allowed in fysicalControl mode." } }, "maintenance": { "default": ["statusCheck"], "rules": { "type": "set", "itemType": "string", "description": "Actions allowed in maintenance mode." } } }, "description": "Information about valid command sources recognized by the machine." } }, "allowedSources":{ "default": {}, "rules": { "type": "object", "schema":{ "auto": { "default": ["parent", "GUI", "fysical"], "rules": { "type": "set", "itemType": "string", "description": "Sources allowed in auto mode." } }, "virtualControl": { "default": ["GUI", "fysical"], "rules": { "type": "set", "itemType": "string", "description": "Sources allowed in virtualControl mode." } }, "fysicalControl": { "default": ["fysical"], "rules": { "type": "set", "itemType": "string", "description": "Sources allowed in fysicalControl mode." } } }, "description": "Information about valid command sources recognized by the machine." } } }, "sequences":{ "default":{}, "rules": { "type": "object", "schema": { "open2gates": { "default": ["openGate1","openGate2"], "rules": { "type": "set", "itemType": "string", "description": "Sequence of states for starting up the machine." } }, "open1gate": { "default": ["openGate1"], "rules": { "type": "set", "itemType": "string", "description": "Sequence of states for shutting down the machine." } }, "stop2gates": { "default": ["stopGate1","stopGate2"], "rules": { "type": "set", "itemType": "string", "description": "Sequence of states for stopping the machine." } }, "close2gates": { "default": ["closeGate2","closeGate1"], "rules": { "type": "set", "itemType": "string", "description": "Sequence of states for closing the gates." } } } }, "description": "Predefined sequences of states for the machine." }, "settings": { "moveDelay": { "default": 3, "rules": { "type": "number", "description": "delay between opening first and second linear actuator in seconds" } }, "autoClose": { "default": 30, "rules": { "type": "number", "description": "When auto close is enabled, the gate will close automatically after this time in seconds" } }, "retryDelay": { "default": 5, "rules": { "type": "number", "description": "Delay in seconds before retrying a failed command." } }, "maxRetries": { "default": 5, "rules": { "type": "number", "description": "Maximum number of retries for a failed command." } }, "groundLoopOpen": { "default": 10, "rules": { "type": "number", "description": "Time before ground loop triggers opening of the gate in seconds" } } } }