Files
machineGroupControl/dependencies/ggc/ggcConfig.json
znetsixe 33a62674c6 update
2025-05-26 17:43:20 +02:00

297 lines
8.7 KiB
JSON

{
"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"
}
}
}
}