{
  "targetUrl": "https://82.156.24.101:8095/app/virtual-controller.html",
  "chrome": "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe",
  "initial": {
    "title": "ABB120 Virtual Controller",
    "state": "ready",
    "program": "W2_60_IOWaitPulse",
    "wait": "none",
    "log": "W2-JOB-latest ready",
    "reports": "W2-JOB-20260628082622-51484d62 report",
    "storage": "cache h0/n1/w0/e0 network demo-manifest.json",
    "joints": "[0, 0, 0, 0, 0, 0]",
    "tcp": "pos [0.374, 0, 0.63] q [0, 0.707107, 0, 0.707107]",
    "frame": "1 / 6",
    "frameCurrent": 1,
    "frameTotal": 6,
    "frameRows": 4,
    "frameTime": "t=0 / 0.24 s, step=0.05 s, source 1/4 (4 trajectory frames)",
    "parser": "idle",
    "parserProgress": 1,
    "stepStatus": "11/12 Path Point line 8 t=0 s",
    "stepRows": 12,
    "activeStepRows": 1,
    "activeStepText": "110-0.24 s8Path Pointpoint p0 movej homeMOVEJ / home1-6 @50ms",
    "programOptions": [
      "W2_00_MinimalModule",
      "W2_10_DataTargetToolFrame",
      "W2_20_ExpressionMath",
      "W2_30_MotionAllTypes",
      "W2_40_PathEvents",
      "W2_50_OperationProcess",
      "W2_60_IOWaitPulse",
      "W2_70_ControlFlow",
      "W2_80_ProcFuncCall",
      "W2_90_ExceptionAlarm",
      "W2_99_FullSpecExample",
      "W2_E10_ExpressionDiagnostics",
      "W2_E20_SemanticDiagnostics",
      "W2_E30_MotionDiagnostics",
      "W2_E40_ControlFlowDiagnostics",
      "W2_E50_RuntimeTimeout",
      "W2_P10_BrandHints",
      "W2_P20_CrossBrandMotion",
      "W2_P30_Roundtrip"
    ],
    "running": false,
    "playbackTime": 0,
    "samplePeriodSec": 0.05,
    "sampleIndex": 0,
    "sourceFrameIndex": 0,
    "sourceFrameTotal": 4,
    "storageState": {
      "mode": "OPFS",
      "hits": 0,
      "network": 1,
      "writes": 1,
      "errors": 0,
      "last": "OPFS saved demo-manifest.json"
    },
    "parseStream": {
      "active": false,
      "timer": false,
      "programId": "",
      "cursorLine": 0,
      "totalLines": 0,
      "linesPerTick": 1,
      "startedAt": 0,
      "completedProgramId": "",
      "lastSummary": "idle"
    },
    "errors": []
  },
  "afterLoadClick": {
    "title": "ABB120 Virtual Controller",
    "state": "load",
    "program": "W2_60_IOWaitPulse",
    "wait": "none",
    "log": "W2_60_IOWaitPulse loading from OPFS h0/n1/w1/e0",
    "reports": "W2-JOB-20260628082622-51484d62 report",
    "storage": "OPFS h0/n1/w1/e0 OPFS saved demo-manifest.json",
    "joints": "[0, 0, 0, 0, 0, 0]",
    "tcp": "pos [0.374, 0, 0.63] q [0, 0.707107, 0, 0.707107]",
    "frame": "1 / 6",
    "frameCurrent": 1,
    "frameTotal": 6,
    "frameRows": 4,
    "frameTime": "t=0 / 0.24 s, step=0.05 s, source 1/4 (4 trajectory frames)",
    "parser": "idle",
    "parserProgress": 1,
    "stepStatus": "11/12 Path Point line 8 t=0 s",
    "stepRows": 12,
    "activeStepRows": 1,
    "activeStepText": "110-0.24 s8Path Pointpoint p0 movej homeMOVEJ / home1-6 @50ms",
    "programOptions": [
      "W2_00_MinimalModule",
      "W2_10_DataTargetToolFrame",
      "W2_20_ExpressionMath",
      "W2_30_MotionAllTypes",
      "W2_40_PathEvents",
      "W2_50_OperationProcess",
      "W2_60_IOWaitPulse",
      "W2_70_ControlFlow",
      "W2_80_ProcFuncCall",
      "W2_90_ExceptionAlarm",
      "W2_99_FullSpecExample",
      "W2_E10_ExpressionDiagnostics",
      "W2_E20_SemanticDiagnostics",
      "W2_E30_MotionDiagnostics",
      "W2_E40_ControlFlowDiagnostics",
      "W2_E50_RuntimeTimeout",
      "W2_P10_BrandHints",
      "W2_P20_CrossBrandMotion",
      "W2_P30_Roundtrip"
    ],
    "running": false,
    "playbackTime": 0,
    "samplePeriodSec": 0.05,
    "sampleIndex": 0,
    "sourceFrameIndex": 0,
    "sourceFrameTotal": 4,
    "storageState": {
      "mode": "OPFS",
      "hits": 0,
      "network": 6,
      "writes": 6,
      "errors": 0,
      "last": "OPFS saved trace.json"
    },
    "parseStream": {
      "active": false,
      "timer": false,
      "programId": "",
      "cursorLine": 0,
      "totalLines": 0,
      "linesPerTick": 1,
      "startedAt": 0,
      "completedProgramId": "",
      "lastSummary": "idle"
    },
    "errors": []
  },
  "afterRun": {
    "title": "ABB120 Virtual Controller",
    "state": "running",
    "program": "W2_60_IOWaitPulse",
    "wait": "waiting di[1]",
    "log": "W2_60_IOWaitPulse running sample 2 t=0.05s",
    "reports": "W2-JOB-20260628082622-51484d62 report",
    "storage": "OPFS h0/n10/w10/e0 OPFS saved roundtrip.json",
    "joints": "[0, 0, 0, 0, 0, 0]",
    "tcp": "pos [0.376083, 0, 0.63] q [0, 0.707107, 0, 0.707107]",
    "frame": "2 / 6",
    "frameCurrent": 2,
    "frameTotal": 6,
    "frameRows": 4,
    "frameTime": "t=0.05 / 0.24 s, step=0.05 s, source 1/4 (4 trajectory frames)",
    "parser": "parsed 24 lines, 4 frames",
    "parserProgress": 1,
    "stepStatus": "11/12 Path Point line 8 t=0.05 s",
    "stepRows": 12,
    "activeStepRows": 1,
    "activeStepText": "110-0.24 s8Path Pointpoint p0 movej homeMOVEJ / home1-6 @50ms",
    "programOptions": [
      "W2_00_MinimalModule",
      "W2_10_DataTargetToolFrame",
      "W2_20_ExpressionMath",
      "W2_30_MotionAllTypes",
      "W2_40_PathEvents",
      "W2_50_OperationProcess",
      "W2_60_IOWaitPulse",
      "W2_70_ControlFlow",
      "W2_80_ProcFuncCall",
      "W2_90_ExceptionAlarm",
      "W2_99_FullSpecExample",
      "W2_E10_ExpressionDiagnostics",
      "W2_E20_SemanticDiagnostics",
      "W2_E30_MotionDiagnostics",
      "W2_E40_ControlFlowDiagnostics",
      "W2_E50_RuntimeTimeout",
      "W2_P10_BrandHints",
      "W2_P20_CrossBrandMotion",
      "W2_P30_Roundtrip"
    ],
    "running": true,
    "playbackTime": 0.05,
    "samplePeriodSec": 0.05,
    "sampleIndex": 1,
    "sourceFrameIndex": 0,
    "sourceFrameTotal": 4,
    "storageState": {
      "mode": "OPFS",
      "hits": 0,
      "network": 10,
      "writes": 10,
      "errors": 0,
      "last": "OPFS saved roundtrip.json"
    },
    "parseStream": {
      "active": false,
      "timer": false,
      "programId": "W2_60_IOWaitPulse",
      "cursorLine": 24,
      "totalLines": 24,
      "linesPerTick": 1,
      "startedAt": 615.1000001430511,
      "completedProgramId": "W2_60_IOWaitPulse",
      "lastSummary": "parsed 24 lines, 4 frames"
    },
    "errors": []
  },
  "afterPause": {
    "title": "ABB120 Virtual Controller",
    "state": "paused",
    "program": "W2_60_IOWaitPulse",
    "wait": "waiting di[1]",
    "log": "W2_60_IOWaitPulse paused",
    "reports": "W2-JOB-20260628082622-51484d62 report",
    "storage": "OPFS h0/n10/w10/e0 OPFS saved roundtrip.json",
    "joints": "[0, 0, 0, 0, 0, 0]",
    "tcp": "pos [0.384, 0, 0.63] q [0, 0.707107, 0, 0.707107]",
    "frame": "6 / 6",
    "frameCurrent": 6,
    "frameTotal": 6,
    "frameRows": 4,
    "frameTime": "t=0.24 / 0.24 s, step=0.05 s, source 4/4 (4 trajectory frames)",
    "parser": "parsed 24 lines, 4 frames",
    "parserProgress": 1,
    "stepStatus": "11/12 Path Point line 8 t=0.24 s",
    "stepRows": 12,
    "activeStepRows": 1,
    "activeStepText": "110-0.24 s8Path Pointpoint p0 movej homeMOVEJ / home1-6 @50ms",
    "programOptions": [
      "W2_00_MinimalModule",
      "W2_10_DataTargetToolFrame",
      "W2_20_ExpressionMath",
      "W2_30_MotionAllTypes",
      "W2_40_PathEvents",
      "W2_50_OperationProcess",
      "W2_60_IOWaitPulse",
      "W2_70_ControlFlow",
      "W2_80_ProcFuncCall",
      "W2_90_ExceptionAlarm",
      "W2_99_FullSpecExample",
      "W2_E10_ExpressionDiagnostics",
      "W2_E20_SemanticDiagnostics",
      "W2_E30_MotionDiagnostics",
      "W2_E40_ControlFlowDiagnostics",
      "W2_E50_RuntimeTimeout",
      "W2_P10_BrandHints",
      "W2_P20_CrossBrandMotion",
      "W2_P30_Roundtrip"
    ],
    "running": false,
    "playbackTime": 0.24,
    "samplePeriodSec": 0.05,
    "sampleIndex": 5,
    "sourceFrameIndex": 3,
    "sourceFrameTotal": 4,
    "storageState": {
      "mode": "OPFS",
      "hits": 0,
      "network": 10,
      "writes": 10,
      "errors": 0,
      "last": "OPFS saved roundtrip.json"
    },
    "parseStream": {
      "active": false,
      "timer": false,
      "programId": "W2_60_IOWaitPulse",
      "cursorLine": 24,
      "totalLines": 24,
      "linesPerTick": 1,
      "startedAt": 615.1000001430511,
      "completedProgramId": "W2_60_IOWaitPulse",
      "lastSummary": "parsed 24 lines, 4 frames"
    },
    "errors": []
  },
  "afterStep": {
    "title": "ABB120 Virtual Controller",
    "state": "paused",
    "program": "W2_60_IOWaitPulse",
    "wait": "waiting di[1]",
    "log": "W2_60_IOWaitPulse stepped sample 6 t=0.24s",
    "reports": "W2-JOB-20260628082622-51484d62 report",
    "storage": "OPFS h0/n10/w10/e0 OPFS saved roundtrip.json",
    "joints": "[0, 0, 0, 0, 0, 0]",
    "tcp": "pos [0.384, 0, 0.63] q [0, 0.707107, 0, 0.707107]",
    "frame": "6 / 6",
    "frameCurrent": 6,
    "frameTotal": 6,
    "frameRows": 4,
    "frameTime": "t=0.24 / 0.24 s, step=0.05 s, source 4/4 (4 trajectory frames)",
    "parser": "parsed 24 lines, 4 frames",
    "parserProgress": 1,
    "stepStatus": "11/12 Path Point line 8 t=0.24 s",
    "stepRows": 12,
    "activeStepRows": 1,
    "activeStepText": "110-0.24 s8Path Pointpoint p0 movej homeMOVEJ / home1-6 @50ms",
    "programOptions": [
      "W2_00_MinimalModule",
      "W2_10_DataTargetToolFrame",
      "W2_20_ExpressionMath",
      "W2_30_MotionAllTypes",
      "W2_40_PathEvents",
      "W2_50_OperationProcess",
      "W2_60_IOWaitPulse",
      "W2_70_ControlFlow",
      "W2_80_ProcFuncCall",
      "W2_90_ExceptionAlarm",
      "W2_99_FullSpecExample",
      "W2_E10_ExpressionDiagnostics",
      "W2_E20_SemanticDiagnostics",
      "W2_E30_MotionDiagnostics",
      "W2_E40_ControlFlowDiagnostics",
      "W2_E50_RuntimeTimeout",
      "W2_P10_BrandHints",
      "W2_P20_CrossBrandMotion",
      "W2_P30_Roundtrip"
    ],
    "running": false,
    "playbackTime": 0.24,
    "samplePeriodSec": 0.05,
    "sampleIndex": 5,
    "sourceFrameIndex": 3,
    "sourceFrameTotal": 4,
    "storageState": {
      "mode": "OPFS",
      "hits": 0,
      "network": 10,
      "writes": 10,
      "errors": 0,
      "last": "OPFS saved roundtrip.json"
    },
    "parseStream": {
      "active": false,
      "timer": false,
      "programId": "W2_60_IOWaitPulse",
      "cursorLine": 24,
      "totalLines": 24,
      "linesPerTick": 1,
      "startedAt": 615.1000001430511,
      "completedProgramId": "W2_60_IOWaitPulse",
      "lastSummary": "parsed 24 lines, 4 frames"
    },
    "errors": []
  },
  "afterStop": {
    "title": "ABB120 Virtual Controller",
    "state": "stopped",
    "program": "W2_60_IOWaitPulse",
    "wait": "none",
    "log": "W2_60_IOWaitPulse stopped",
    "reports": "W2-JOB-20260628082622-51484d62 report",
    "storage": "OPFS h0/n10/w10/e0 OPFS saved roundtrip.json",
    "joints": "[0, 0, 0, 0, 0, 0]",
    "tcp": "pos [0.384, 0, 0.63] q [0, 0.707107, 0, 0.707107]",
    "frame": "6 / 6",
    "frameCurrent": 6,
    "frameTotal": 6,
    "frameRows": 4,
    "frameTime": "t=0.24 / 0.24 s, step=0.05 s, source 4/4 (4 trajectory frames)",
    "parser": "parsed 24 lines, 4 frames",
    "parserProgress": 1,
    "stepStatus": "11/12 Path Point line 8 t=0.24 s",
    "stepRows": 12,
    "activeStepRows": 1,
    "activeStepText": "110-0.24 s8Path Pointpoint p0 movej homeMOVEJ / home1-6 @50ms",
    "programOptions": [
      "W2_00_MinimalModule",
      "W2_10_DataTargetToolFrame",
      "W2_20_ExpressionMath",
      "W2_30_MotionAllTypes",
      "W2_40_PathEvents",
      "W2_50_OperationProcess",
      "W2_60_IOWaitPulse",
      "W2_70_ControlFlow",
      "W2_80_ProcFuncCall",
      "W2_90_ExceptionAlarm",
      "W2_99_FullSpecExample",
      "W2_E10_ExpressionDiagnostics",
      "W2_E20_SemanticDiagnostics",
      "W2_E30_MotionDiagnostics",
      "W2_E40_ControlFlowDiagnostics",
      "W2_E50_RuntimeTimeout",
      "W2_P10_BrandHints",
      "W2_P20_CrossBrandMotion",
      "W2_P30_Roundtrip"
    ],
    "running": false,
    "playbackTime": 0.24,
    "samplePeriodSec": 0.05,
    "sampleIndex": 5,
    "sourceFrameIndex": 3,
    "sourceFrameTotal": 4,
    "storageState": {
      "mode": "OPFS",
      "hits": 0,
      "network": 10,
      "writes": 10,
      "errors": 0,
      "last": "OPFS saved roundtrip.json"
    },
    "parseStream": {
      "active": false,
      "timer": false,
      "programId": "W2_60_IOWaitPulse",
      "cursorLine": 24,
      "totalLines": 24,
      "linesPerTick": 1,
      "startedAt": 615.1000001430511,
      "completedProgramId": "W2_60_IOWaitPulse",
      "lastSummary": "parsed 24 lines, 4 frames"
    },
    "errors": []
  },
  "afterReset": {
    "title": "ABB120 Virtual Controller",
    "state": "ready",
    "program": "W2_60_IOWaitPulse",
    "wait": "none",
    "log": "controller reset",
    "reports": "W2-JOB-20260628082622-51484d62 report",
    "storage": "OPFS h0/n10/w10/e0 OPFS saved roundtrip.json",
    "joints": "[0, 0, 0, 0, 0, 0]",
    "tcp": "pos [0.374, 0, 0.63] q [0, 0.707107, 0, 0.707107]",
    "frame": "1 / 6",
    "frameCurrent": 1,
    "frameTotal": 6,
    "frameRows": 4,
    "frameTime": "t=0 / 0.24 s, step=0.05 s, source 1/4 (4 trajectory frames)",
    "parser": "parsed 24 lines, 4 frames",
    "parserProgress": 1,
    "stepStatus": "11/12 Path Point line 8 t=0 s",
    "stepRows": 12,
    "activeStepRows": 1,
    "activeStepText": "110-0.24 s8Path Pointpoint p0 movej homeMOVEJ / home1-6 @50ms",
    "programOptions": [
      "W2_00_MinimalModule",
      "W2_10_DataTargetToolFrame",
      "W2_20_ExpressionMath",
      "W2_30_MotionAllTypes",
      "W2_40_PathEvents",
      "W2_50_OperationProcess",
      "W2_60_IOWaitPulse",
      "W2_70_ControlFlow",
      "W2_80_ProcFuncCall",
      "W2_90_ExceptionAlarm",
      "W2_99_FullSpecExample",
      "W2_E10_ExpressionDiagnostics",
      "W2_E20_SemanticDiagnostics",
      "W2_E30_MotionDiagnostics",
      "W2_E40_ControlFlowDiagnostics",
      "W2_E50_RuntimeTimeout",
      "W2_P10_BrandHints",
      "W2_P20_CrossBrandMotion",
      "W2_P30_Roundtrip"
    ],
    "running": false,
    "playbackTime": 0,
    "samplePeriodSec": 0.05,
    "sampleIndex": 0,
    "sourceFrameIndex": 0,
    "sourceFrameTotal": 4,
    "storageState": {
      "mode": "OPFS",
      "hits": 0,
      "network": 10,
      "writes": 10,
      "errors": 0,
      "last": "OPFS saved roundtrip.json"
    },
    "parseStream": {
      "active": false,
      "timer": false,
      "programId": "W2_60_IOWaitPulse",
      "cursorLine": 24,
      "totalLines": 24,
      "linesPerTick": 1,
      "startedAt": 615.1000001430511,
      "completedProgramId": "W2_60_IOWaitPulse",
      "lastSummary": "parsed 24 lines, 4 frames"
    },
    "errors": []
  },
  "afterExport": {
    "title": "ABB120 Virtual Controller",
    "state": "ready",
    "program": "W2_60_IOWaitPulse",
    "wait": "none",
    "log": "delivery package exported",
    "reports": "W2-JOB-20260628082622-51484d62 report exported",
    "storage": "OPFS h0/n10/w10/e0 OPFS saved roundtrip.json",
    "joints": "[0, 0, 0, 0, 0, 0]",
    "tcp": "pos [0.374, 0, 0.63] q [0, 0.707107, 0, 0.707107]",
    "frame": "1 / 6",
    "frameCurrent": 1,
    "frameTotal": 6,
    "frameRows": 4,
    "frameTime": "t=0 / 0.24 s, step=0.05 s, source 1/4 (4 trajectory frames)",
    "parser": "parsed 24 lines, 4 frames",
    "parserProgress": 1,
    "stepStatus": "11/12 Path Point line 8 t=0 s",
    "stepRows": 12,
    "activeStepRows": 1,
    "activeStepText": "110-0.24 s8Path Pointpoint p0 movej homeMOVEJ / home1-6 @50ms",
    "programOptions": [
      "W2_00_MinimalModule",
      "W2_10_DataTargetToolFrame",
      "W2_20_ExpressionMath",
      "W2_30_MotionAllTypes",
      "W2_40_PathEvents",
      "W2_50_OperationProcess",
      "W2_60_IOWaitPulse",
      "W2_70_ControlFlow",
      "W2_80_ProcFuncCall",
      "W2_90_ExceptionAlarm",
      "W2_99_FullSpecExample",
      "W2_E10_ExpressionDiagnostics",
      "W2_E20_SemanticDiagnostics",
      "W2_E30_MotionDiagnostics",
      "W2_E40_ControlFlowDiagnostics",
      "W2_E50_RuntimeTimeout",
      "W2_P10_BrandHints",
      "W2_P20_CrossBrandMotion",
      "W2_P30_Roundtrip"
    ],
    "running": false,
    "playbackTime": 0,
    "samplePeriodSec": 0.05,
    "sampleIndex": 0,
    "sourceFrameIndex": 0,
    "sourceFrameTotal": 4,
    "storageState": {
      "mode": "OPFS",
      "hits": 0,
      "network": 10,
      "writes": 10,
      "errors": 0,
      "last": "OPFS saved roundtrip.json"
    },
    "parseStream": {
      "active": false,
      "timer": false,
      "programId": "W2_60_IOWaitPulse",
      "cursorLine": 24,
      "totalLines": 24,
      "linesPerTick": 1,
      "startedAt": 615.1000001430511,
      "completedProgramId": "W2_60_IOWaitPulse",
      "lastSummary": "parsed 24 lines, 4 frames"
    },
    "errors": []
  },
  "afterProgramSwitch": {
    "title": "ABB120 Virtual Controller",
    "state": "ready",
    "program": "W2_99_FullSpecExample",
    "wait": "none",
    "log": "W2_99_FullSpecExample parsed (32 frames, 40 samples @50ms)",
    "reports": "W2-JOB-20260628082622-51484d62 report exported",
    "storage": "OPFS h0/n19/w19/e0 OPFS saved roundtrip.json",
    "joints": "[0, 0, 0, 0, 0, 0]",
    "tcp": "pos [0.374, 0, 0.63] q [0, 0.707107, 0, 0.707107]",
    "frame": "1 / 40",
    "frameCurrent": 1,
    "frameTotal": 40,
    "frameRows": 32,
    "frameTime": "t=0 / 1.92 s, step=0.05 s, source 1/32 (32 trajectory frames)",
    "parser": "parsed 81 lines, 32 frames",
    "parserProgress": 1,
    "stepStatus": "4/16 Path Point line 39 t=0 s",
    "stepRows": 16,
    "activeStepRows": 1,
    "activeStepText": "40-0.2 s39Path Pointpoint approach movej home speed v_fast zone fineMOVEJ / home1-5 @50ms",
    "programOptions": [
      "W2_00_MinimalModule",
      "W2_10_DataTargetToolFrame",
      "W2_20_ExpressionMath",
      "W2_30_MotionAllTypes",
      "W2_40_PathEvents",
      "W2_50_OperationProcess",
      "W2_60_IOWaitPulse",
      "W2_70_ControlFlow",
      "W2_80_ProcFuncCall",
      "W2_90_ExceptionAlarm",
      "W2_99_FullSpecExample",
      "W2_E10_ExpressionDiagnostics",
      "W2_E20_SemanticDiagnostics",
      "W2_E30_MotionDiagnostics",
      "W2_E40_ControlFlowDiagnostics",
      "W2_E50_RuntimeTimeout",
      "W2_P10_BrandHints",
      "W2_P20_CrossBrandMotion",
      "W2_P30_Roundtrip"
    ],
    "running": false,
    "playbackTime": 0,
    "samplePeriodSec": 0.05,
    "sampleIndex": 0,
    "sourceFrameIndex": 0,
    "sourceFrameTotal": 32,
    "storageState": {
      "mode": "OPFS",
      "hits": 0,
      "network": 19,
      "writes": 19,
      "errors": 0,
      "last": "OPFS saved roundtrip.json"
    },
    "parseStream": {
      "active": false,
      "timer": false,
      "programId": "W2_99_FullSpecExample",
      "cursorLine": 81,
      "totalLines": 81,
      "linesPerTick": 4,
      "startedAt": 3098,
      "completedProgramId": "W2_99_FullSpecExample",
      "lastSummary": "parsed 81 lines, 32 frames"
    },
    "errors": []
  },
  "offlineCache": {
    "program": "W2_99_FullSpecExample",
    "mode": "OPFS",
    "hitsBefore": 0,
    "hitsAfter": 9,
    "frame": "1 / 40",
    "storage": "OPFS h9/n19/w19/e9 network roundtrip.json TypeError"
  }
}
