[
{
"id": "tab-scxml-cascade",
"type": "tab",
"label": "SCXML 级联测试床",
"disabled": false,
"info": "三机级联:Supervisor <-> Cell / Job。事件走 Hub 输出 2,按 cell.* / job.* 路由。"
},
{
"id": "cascade-help",
"type": "comment",
"z": "tab-scxml-cascade",
"name": "测试床说明",
"info": "三机级联:\n Supervisor(层级/守卫/超时/final)\n ├─ cell.* -> Cell(并行/浅深历史/延时)\n └─ job.* -> Job(嵌套/并行/深历史/done.state)\n\n事件总线:\n Supervisor.out2 -> switch -> Cell.in / Job.in\n Cell.out2 / Job.out2 -> Supervisor.in\n out1 -> global context scxml_Cell / scxml_Supervisor / scxml_Job\n out2 -> global context scxml_events\n\n推荐顺序:\n 1) sys.ready\n 2) cmd.start(自动跑完 Cell.ready -> Job.create -> Job.accepted -> Job.start)\n 3) job.step x2, quality.ok(观察 Job -> archived -> empty,Supervisor -> idle)\n 4) 重新 cmd.start,测 power/conveyor/历史/overheat/estop\n 5) 可用 reset 按钮复位各机器\n",
"x": 60,
"y": 20,
"wires": []
},
{
"id": "cascade-sup-label",
"type": "comment",
"z": "tab-scxml-cascade",
"name": "Supervisor 输入",
"info": "sys.ready / cmd.* / reset / set cellTemp",
"x": 110,
"y": 60,
"wires": []
},
{
"id": "cascade-cell-label",
"type": "comment",
"z": "tab-scxml-cascade",
"name": "Cell 输入",
"info": "cell.* / power.* / conveyor.* / safety.* / sensor.temp",
"x": 110,
"y": 470,
"wires": []
},
{
"id": "cascade-job-label",
"type": "comment",
"z": "tab-scxml-cascade",
"name": "Job 输入",
"info": "job.* / quality.*",
"x": 110,
"y": 1130,
"wires": []
},
{
"id": "cascade-conf-cell",
"type": "statechart-machine",
"z": "tab-scxml-cascade",
"name": "Cell (parallel+history)",
"doc": "",
"source": "\n\n \n \n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n \n\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n\n \n \n \n\n",
"engine": "sandboxed",
"scriptTimeoutMs": 500,
"maxMicrosteps": 10000,
"monitorShowVars": true,
"persistVars": false,
"updateEvent": "update",
"x": 140,
"y": 1900
},
{
"id": "cascade-conf-sup",
"type": "statechart-machine",
"z": "tab-scxml-cascade",
"name": "Supervisor (hierarchy+timeout)",
"doc": "",
"source": "\n\n \n \n \n \n \n\n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n\n \n \n \n\n",
"engine": "sandboxed",
"scriptTimeoutMs": 500,
"maxMicrosteps": 10000,
"monitorShowVars": true,
"persistVars": false,
"updateEvent": "update",
"x": 140,
"y": 2050
},
{
"id": "cascade-conf-job",
"type": "statechart-machine",
"z": "tab-scxml-cascade",
"name": "Job (nested+deep history)",
"doc": "",
"source": "\n\n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n",
"engine": "sandboxed",
"scriptTimeoutMs": 500,
"maxMicrosteps": 10000,
"monitorShowVars": true,
"persistVars": false,
"updateEvent": "update",
"x": 140,
"y": 2200
},
{
"id": "cascade-cell-out",
"type": "statechart-hub",
"z": "tab-scxml-cascade",
"name": "Cell state/events",
"machine": "cascade-conf-cell",
"includeVars": true,
"emitInitial": true,
"includeInternalSends": true,
"stateTopic": "",
"eventTopic": "statechart/{machine}/evt/{event}",
"x": 560,
"y": 560,
"wires": [
[
"cascade-rec-state"
],
[
"cascade-sup-out",
"cascade-evt-log"
],
[]
]
},
{
"id": "cascade-sup-out",
"type": "statechart-hub",
"z": "tab-scxml-cascade",
"name": "Supervisor state/events",
"machine": "cascade-conf-sup",
"includeVars": true,
"emitInitial": true,
"includeInternalSends": true,
"stateTopic": "",
"eventTopic": "statechart/{machine}/evt/{event}",
"x": 560,
"y": 260,
"wires": [
[
"cascade-rec-state"
],
[
"cascade-router",
"cascade-evt-log"
],
[]
]
},
{
"id": "cascade-job-out",
"type": "statechart-hub",
"z": "tab-scxml-cascade",
"name": "Job state/events",
"machine": "cascade-conf-job",
"includeVars": true,
"emitInitial": true,
"includeInternalSends": true,
"stateTopic": "",
"eventTopic": "statechart/{machine}/evt/{event}",
"x": 560,
"y": 1260,
"wires": [
[
"cascade-rec-state"
],
[
"cascade-sup-out",
"cascade-evt-log"
],
[]
]
},
{
"id": "cascade-router",
"type": "switch",
"z": "tab-scxml-cascade",
"name": "event router",
"property": "event",
"propertyType": "msg",
"rules": [
{
"t": "regex",
"v": "^cell\\.",
"vt": "str"
},
{
"t": "regex",
"v": "^job\\.",
"vt": "str"
},
{
"t": "else",
"v": "",
"vt": "str"
}
],
"checkall": "false",
"repair": false,
"outputs": 3,
"x": 780,
"y": 260,
"wires": [
[
"cascade-cell-out"
],
[
"cascade-job-out"
],
[
"cascade-dbg-unrouted"
]
]
},
{
"id": "cascade-rec-state",
"type": "function",
"z": "tab-scxml-cascade",
"name": "record state",
"func": "const key = 'scxml_' + String(msg.machine || 'unknown').split(' ')[0].replace(/[^A-Za-z0-9_]/g, '_');\nglobal.set(key, {\n states: msg.states || [],\n vars: msg.vars || {},\n changed: !!msg.changed,\n event: msg.event ?? null,\n ts: Date.now()\n});\nreturn msg;",
"outputs": 1,
"timeout": 0,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 800,
"y": 80,
"wires": [
[
"cascade-dbg-state"
]
]
},
{
"id": "cascade-evt-log",
"type": "function",
"z": "tab-scxml-cascade",
"name": "record events",
"func": "const arr = global.get('scxml_events') || [];\narr.push({\n event: msg.event ?? null,\n payload: msg.payload,\n machine: msg.machine ?? null,\n topic: msg.topic ?? null,\n ts: Date.now()\n});\nif (arr.length > 300) { arr.splice(0, arr.length - 300); }\nglobal.set('scxml_events', arr);\nreturn msg;",
"outputs": 1,
"timeout": 0,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 800,
"y": 140,
"wires": [
[
"cascade-dbg-events"
]
]
},
{
"id": "cascade-dbg-state",
"type": "debug",
"z": "tab-scxml-cascade",
"name": "state",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "true",
"targetType": "msg",
"statusVal": "",
"statusType": "auto",
"x": 1060,
"y": 80,
"wires": []
},
{
"id": "cascade-dbg-events",
"type": "debug",
"z": "tab-scxml-cascade",
"name": "events",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "true",
"targetType": "msg",
"statusVal": "",
"statusType": "auto",
"x": 1060,
"y": 140,
"wires": []
},
{
"id": "cascade-dbg-unrouted",
"type": "debug",
"z": "tab-scxml-cascade",
"name": "unrouted",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "true",
"targetType": "msg",
"statusVal": "",
"statusType": "auto",
"x": 1060,
"y": 300,
"wires": []
},
{
"id": "cascade-dbg-error",
"type": "debug",
"z": "tab-scxml-cascade",
"name": "error",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "true",
"targetType": "msg",
"statusVal": "",
"statusType": "auto",
"x": 1060,
"y": 1700,
"wires": []
},
{
"id": "cascade-catch",
"type": "catch",
"z": "tab-scxml-cascade",
"name": "catch",
"scope": null,
"uncaught": false,
"x": 800,
"y": 1700,
"wires": [
[
"cascade-dbg-error"
]
]
},
{
"id": "cascade-inj-sys-ready",
"type": "inject",
"z": "tab-scxml-cascade",
"name": "sys.ready",
"props": [
{
"p": "topic",
"v": "sys.ready",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "str",
"x": 140,
"y": 100,
"wires": [
[
"cascade-sup-out"
]
]
},
{
"id": "cascade-inj-cmd-start",
"type": "inject",
"z": "tab-scxml-cascade",
"name": "cmd.start",
"props": [
{
"p": "topic",
"v": "cmd.start",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "str",
"x": 140,
"y": 134,
"wires": [
[
"cascade-sup-out"
]
]
},
{
"id": "cascade-inj-cmd-stop",
"type": "inject",
"z": "tab-scxml-cascade",
"name": "cmd.stop",
"props": [
{
"p": "topic",
"v": "cmd.stop",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "str",
"x": 140,
"y": 168,
"wires": [
[
"cascade-sup-out"
]
]
},
{
"id": "cascade-inj-cmd-maintain",
"type": "inject",
"z": "tab-scxml-cascade",
"name": "cmd.maintain",
"props": [
{
"p": "topic",
"v": "cmd.maintain",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "str",
"x": 140,
"y": 202,
"wires": [
[
"cascade-sup-out"
]
]
},
{
"id": "cascade-inj-cmd-resume",
"type": "inject",
"z": "tab-scxml-cascade",
"name": "cmd.resume",
"props": [
{
"p": "topic",
"v": "cmd.resume",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "str",
"x": 140,
"y": 236,
"wires": [
[
"cascade-sup-out"
]
]
},
{
"id": "cascade-inj-cmd-reset",
"type": "inject",
"z": "tab-scxml-cascade",
"name": "cmd.reset",
"props": [
{
"p": "topic",
"v": "cmd.reset",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "str",
"x": 140,
"y": 270,
"wires": [
[
"cascade-sup-out"
]
]
},
{
"id": "cascade-inj-cmd-shutdown",
"type": "inject",
"z": "tab-scxml-cascade",
"name": "cmd.shutdown",
"props": [
{
"p": "topic",
"v": "cmd.shutdown",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "str",
"x": 140,
"y": 304,
"wires": [
[
"cascade-sup-out"
]
]
},
{
"id": "cascade-inj-sup-reset",
"type": "inject",
"z": "tab-scxml-cascade",
"name": "reset Supervisor",
"props": [
{
"p": "command",
"v": "reset",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "str",
"x": 140,
"y": 338,
"wires": [
[
"cascade-sup-out"
]
]
},
{
"id": "cascade-inj-sup-set-celltemp",
"type": "inject",
"z": "tab-scxml-cascade",
"name": "set cellTemp=90",
"props": [
{
"p": "command",
"v": "set",
"vt": "str"
},
{
"p": "payload",
"v": "{\"cellTemp\": 90}",
"vt": "json"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "str",
"x": 140,
"y": 372,
"wires": [
[
"cascade-sup-out"
]
]
},
{
"id": "cascade-inj-cell-start",
"type": "inject",
"z": "tab-scxml-cascade",
"name": "cell.start",
"props": [
{
"p": "topic",
"v": "cell.start",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "str",
"x": 140,
"y": 520,
"wires": [
[
"cascade-cell-out"
]
]
},
{
"id": "cascade-inj-cell-stop",
"type": "inject",
"z": "tab-scxml-cascade",
"name": "cell.stop",
"props": [
{
"p": "topic",
"v": "cell.stop",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "str",
"x": 140,
"y": 554,
"wires": [
[
"cascade-cell-out"
]
]
},
{
"id": "cascade-inj-cell-pause",
"type": "inject",
"z": "tab-scxml-cascade",
"name": "cell.pause",
"props": [
{
"p": "topic",
"v": "cell.pause",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "str",
"x": 140,
"y": 588,
"wires": [
[
"cascade-cell-out"
]
]
},
{
"id": "cascade-inj-cell-resume-shallow",
"type": "inject",
"z": "tab-scxml-cascade",
"name": "cell.resumeShallow",
"props": [
{
"p": "topic",
"v": "cell.resumeShallow",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "str",
"x": 140,
"y": 622,
"wires": [
[
"cascade-cell-out"
]
]
},
{
"id": "cascade-inj-cell-resume-deep",
"type": "inject",
"z": "tab-scxml-cascade",
"name": "cell.resumeDeep",
"props": [
{
"p": "topic",
"v": "cell.resumeDeep",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "str",
"x": 140,
"y": 656,
"wires": [
[
"cascade-cell-out"
]
]
},
{
"id": "cascade-inj-power-on",
"type": "inject",
"z": "tab-scxml-cascade",
"name": "power.on",
"props": [
{
"p": "topic",
"v": "power.on",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "str",
"x": 140,
"y": 690,
"wires": [
[
"cascade-cell-out"
]
]
},
{
"id": "cascade-inj-power-off",
"type": "inject",
"z": "tab-scxml-cascade",
"name": "power.off",
"props": [
{
"p": "topic",
"v": "power.off",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "str",
"x": 140,
"y": 724,
"wires": [
[
"cascade-cell-out"
]
]
},
{
"id": "cascade-inj-conveyor-start",
"type": "inject",
"z": "tab-scxml-cascade",
"name": "conveyor.start",
"props": [
{
"p": "topic",
"v": "conveyor.start",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "str",
"x": 140,
"y": 758,
"wires": [
[
"cascade-cell-out"
]
]
},
{
"id": "cascade-inj-conveyor-stop",
"type": "inject",
"z": "tab-scxml-cascade",
"name": "conveyor.stop",
"props": [
{
"p": "topic",
"v": "conveyor.stop",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "str",
"x": 140,
"y": 792,
"wires": [
[
"cascade-cell-out"
]
]
},
{
"id": "cascade-inj-conveyor-fault",
"type": "inject",
"z": "tab-scxml-cascade",
"name": "conveyor.fault",
"props": [
{
"p": "topic",
"v": "conveyor.fault",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "str",
"x": 140,
"y": 826,
"wires": [
[
"cascade-cell-out"
]
]
},
{
"id": "cascade-inj-conveyor-reset",
"type": "inject",
"z": "tab-scxml-cascade",
"name": "conveyor.reset",
"props": [
{
"p": "topic",
"v": "conveyor.reset",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "str",
"x": 140,
"y": 860,
"wires": [
[
"cascade-cell-out"
]
]
},
{
"id": "cascade-inj-safety-estop",
"type": "inject",
"z": "tab-scxml-cascade",
"name": "safety.estop",
"props": [
{
"p": "topic",
"v": "safety.estop",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "str",
"x": 140,
"y": 894,
"wires": [
[
"cascade-cell-out"
]
]
},
{
"id": "cascade-inj-safety-reset",
"type": "inject",
"z": "tab-scxml-cascade",
"name": "safety.reset",
"props": [
{
"p": "topic",
"v": "safety.reset",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "str",
"x": 140,
"y": 928,
"wires": [
[
"cascade-cell-out"
]
]
},
{
"id": "cascade-inj-temp-85",
"type": "inject",
"z": "tab-scxml-cascade",
"name": "sensor.temp 85",
"props": [
{
"p": "topic",
"v": "sensor.temp",
"vt": "str"
},
{
"p": "payload",
"v": "{\"value\": 85}",
"vt": "json"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "str",
"x": 140,
"y": 962,
"wires": [
[
"cascade-cell-out"
]
]
},
{
"id": "cascade-inj-temp-55",
"type": "inject",
"z": "tab-scxml-cascade",
"name": "sensor.temp 55",
"props": [
{
"p": "topic",
"v": "sensor.temp",
"vt": "str"
},
{
"p": "payload",
"v": "{\"value\": 55}",
"vt": "json"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "str",
"x": 140,
"y": 996,
"wires": [
[
"cascade-cell-out"
]
]
},
{
"id": "cascade-inj-cell-decommission",
"type": "inject",
"z": "tab-scxml-cascade",
"name": "cell.decommission",
"props": [
{
"p": "topic",
"v": "cell.decommission",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "str",
"x": 140,
"y": 1030,
"wires": [
[
"cascade-cell-out"
]
]
},
{
"id": "cascade-inj-cell-reset",
"type": "inject",
"z": "tab-scxml-cascade",
"name": "reset Cell",
"props": [
{
"p": "command",
"v": "reset",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "str",
"x": 140,
"y": 1064,
"wires": [
[
"cascade-cell-out"
]
]
},
{
"id": "cascade-inj-cell-set-temp",
"type": "inject",
"z": "tab-scxml-cascade",
"name": "set temp=90",
"props": [
{
"p": "command",
"v": "set",
"vt": "str"
},
{
"p": "payload",
"v": "{\"temp\": 90}",
"vt": "json"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "str",
"x": 140,
"y": 1098,
"wires": [
[
"cascade-cell-out"
]
]
},
{
"id": "cascade-inj-job-start",
"type": "inject",
"z": "tab-scxml-cascade",
"name": "job.start",
"props": [
{
"p": "topic",
"v": "job.start",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "str",
"x": 140,
"y": 1200,
"wires": [
[
"cascade-job-out"
]
]
},
{
"id": "cascade-inj-job-step",
"type": "inject",
"z": "tab-scxml-cascade",
"name": "job.step",
"props": [
{
"p": "topic",
"v": "job.step",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "str",
"x": 140,
"y": 1234,
"wires": [
[
"cascade-job-out"
]
]
},
{
"id": "cascade-inj-quality-ok",
"type": "inject",
"z": "tab-scxml-cascade",
"name": "quality.ok",
"props": [
{
"p": "topic",
"v": "quality.ok",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "str",
"x": 140,
"y": 1268,
"wires": [
[
"cascade-job-out"
]
]
},
{
"id": "cascade-inj-quality-fail",
"type": "inject",
"z": "tab-scxml-cascade",
"name": "quality.fail",
"props": [
{
"p": "topic",
"v": "quality.fail",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "str",
"x": 140,
"y": 1302,
"wires": [
[
"cascade-job-out"
]
]
},
{
"id": "cascade-inj-quality-retry",
"type": "inject",
"z": "tab-scxml-cascade",
"name": "quality.retry",
"props": [
{
"p": "topic",
"v": "quality.retry",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "str",
"x": 140,
"y": 1336,
"wires": [
[
"cascade-job-out"
]
]
},
{
"id": "cascade-inj-job-pause",
"type": "inject",
"z": "tab-scxml-cascade",
"name": "job.pause",
"props": [
{
"p": "topic",
"v": "job.pause",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "str",
"x": 140,
"y": 1370,
"wires": [
[
"cascade-job-out"
]
]
},
{
"id": "cascade-inj-job-resume",
"type": "inject",
"z": "tab-scxml-cascade",
"name": "job.resume",
"props": [
{
"p": "topic",
"v": "job.resume",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "str",
"x": 140,
"y": 1404,
"wires": [
[
"cascade-job-out"
]
]
},
{
"id": "cascade-inj-job-reset",
"type": "inject",
"z": "tab-scxml-cascade",
"name": "job.reset",
"props": [
{
"p": "topic",
"v": "job.reset",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "str",
"x": 140,
"y": 1438,
"wires": [
[
"cascade-job-out"
]
]
},
{
"id": "cascade-inj-job-reset-cmd",
"type": "inject",
"z": "tab-scxml-cascade",
"name": "reset Job",
"props": [
{
"p": "command",
"v": "reset",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "str",
"x": 140,
"y": 1472,
"wires": [
[
"cascade-job-out"
]
]
},
{
"id": "cascade-inj-job-create-invalid",
"type": "inject",
"z": "tab-scxml-cascade",
"name": "job.create id=0",
"props": [
{
"p": "topic",
"v": "job.create",
"vt": "str"
},
{
"p": "payload",
"v": "{\"id\": 0, \"priority\": \"low\"}",
"vt": "json"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "str",
"x": 140,
"y": 1506,
"wires": [
[
"cascade-job-out"
]
]
},
{
"id": "cascade-inj-job-create-valid",
"type": "inject",
"z": "tab-scxml-cascade",
"name": "job.create id=1",
"props": [
{
"p": "topic",
"v": "job.create",
"vt": "str"
},
{
"p": "payload",
"v": "{\"id\": 1, \"priority\": \"normal\"}",
"vt": "json"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "str",
"x": 140,
"y": 1540,
"wires": [
[
"cascade-job-out"
]
]
}
]