Files
generalFunctions/src/state/stateConfig.json
znetsixe 44033da15d Added logging data on menu and distance
Added helper functionality to abort movements in state class and safeguards to NOT be able to abort in protected states.
some caps removal
2025-10-02 17:29:31 +02:00

331 lines
9.2 KiB
JSON

{
"general": {
"name": {
"default": "state configuration",
"rules": {
"type": "string",
"description": "A human-readable name for the state configuration."
}
},
"id": {
"default": null,
"rules": {
"type": "string",
"nullable": true,
"description": "A unique identifier for this configuration, assigned dynamically when needed."
}
},
"unit": {
"default": "unitless",
"rules": {
"type": "string",
"description": "The unit used for the state values (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": "state class",
"rules": {
"type": "string",
"description": "Logical name identifying the software type."
}
},
"role": {
"default": "statecontroller",
"rules": {
"type": "string",
"description": "Functional role within the system."
}
}
},
"time": {
"starting": {
"default": 10,
"rules": {
"type": "number",
"description": "Time in seconds for the starting phase."
}
},
"warmingup": {
"default": 5,
"rules": {
"type": "number",
"description": "Time in seconds for the warming-up phase."
}
},
"stopping": {
"default": 5,
"rules": {
"type": "number",
"description": "Time in seconds for the stopping phase."
}
},
"coolingdown": {
"default": 10,
"rules": {
"type": "number",
"description": "Time in seconds for the cooling-down phase."
}
}
},
"movement": {
"mode": {
"default": "dynspeed",
"rules": {
"type": "enum",
"values": [
{
"value": "staticspeed",
"description": "Linear movement to setpoint."
},
{
"value": "dynspeed",
"description": "Ease-in and ease-out to setpoint."
}
]
}
},
"speed": {
"default": 1,
"rules": {
"type": "number",
"description": "Current speed setting."
}
},
"maxSpeed": {
"default": 10,
"rules": {
"type": "number",
"description": "Maximum speed setting."
}
},
"interval": {
"default": 1000,
"rules": {
"type": "number",
"description": "Feedback interval in milliseconds."
}
}
},
"position": {
"min": {
"default": 0,
"rules": {
"type": "number",
"description": "Minimum position value."
}
},
"max": {
"default": 100,
"rules": {
"type": "number",
"description": "Maximum position value."
}
},
"initial": {
"default": 0,
"rules": {
"type": "number",
"description": "Initial position value."
}
}
},
"state": {
"current": {
"default": "idle",
"rules": {
"type": "enum",
"values": [
{
"value": "idle",
"description": "Machine is idle."
},
{
"value": "starting",
"description": "Machine is starting up."
},
{
"value": "warmingup",
"description": "Machine is warming up."
},
{
"value": "operational",
"description": "Machine is running."
},
{
"value": "accelerating",
"description": "Machine is accelerating."
},
{
"value": "decelerating",
"description": "Machine is decelerating."
},
{
"value": "stopping",
"description": "Machine is stopping."
},
{
"value": "coolingdown",
"description": "Machine is cooling down."
},
{
"value": "off",
"description": "Machine is off."
}
],
"description": "Current state of the machine."
}
},
"allowedTransitions":{
"default": {},
"rules": {
"type": "object",
"schema": {
"idle": {
"default": ["starting", "off","emergencystop"],
"rules":{
"type": "set",
"itemType": "string",
"description": "Allowed transitions from idle state."
}
},
"starting": {
"default": ["starting","warmingup","emergencystop"],
"rules":{
"type": "set",
"itemType": "string",
"description": "Allowed transitions from starting state."
}
},
"warmingup": {
"default": ["operational","emergencystop"],
"rules":{
"type": "set",
"itemType": "string",
"description": "Allowed transitions from warmingup state."
}
},
"operational": {
"default": ["accelerating", "decelerating", "stopping","emergencystop"],
"rules":{
"type": "set",
"itemType": "string",
"description": "Allowed transitions from operational state."
}
},
"accelerating": {
"default": ["operational","emergencystop"],
"rules":{
"type": "set",
"itemType": "string",
"description": "Allowed transitions from accelerating state."
}
},
"decelerating": {
"default": ["operational","emergencystop"],
"rules":{
"type": "set",
"itemType": "string",
"description": "Allowed transitions from decelerating state."
}
},
"stopping": {
"default": ["idle","coolingdown","emergencystop"],
"rules":{
"type": "set",
"itemType": "string",
"description": "Allowed transitions from stopping state."
}
},
"coolingdown": {
"default": ["idle","off","emergencystop"],
"rules":{
"type": "set",
"itemType": "string",
"description": "Allowed transitions from coolingDown state."
}
},
"off": {
"default": ["idle","emergencystop"],
"rules":{
"type": "set",
"itemType": "string",
"description": "Allowed transitions from off state."
}
},
"emergencystop": {
"default": ["idle","off"],
"rules":{
"type": "set",
"itemType": "string",
"description": "Allowed transitions from emergency stop state."
}
}
},
"description": "Allowed transitions between states."
}
},
"activeStates":{
"default": ["operational", "starting", "warmingup", "accelerating", "decelerating"],
"rules": {
"type": "set",
"itemType": "string",
"description": "Active states."
}
}
},
"mode": {
"current": {
"default": "auto",
"rules": {
"type": "enum",
"values": [
{
"value": "auto",
"description": "Automatically tracks and handles delayed commands for setpoints > 0."
},
{
"value": "manual",
"description": "Requires explicit commands to start."
}
],
"description": "Current mode of the machine."
}
}
}
}