Files
2026-10-07 17:57:30 +02:00

177 lines
7.0 KiB
JSON

{
// Debug configurations for the OPC DA Diagnozer CLI.
// All configs run `python -m opcda_diagnozer` with the 32-bit venv
// interpreter — the bitness that matches the 32-bit OPC DA wrapper DLLs
// (SPECIFICATION §11). Pick one from the Run and Debug view (Ctrl+Shift+D).
//
// NOTE: `run` / `probe` are Phase 1 stubs until the core engine lands
// (docs/IMPLEMENTATION_PLAN.md §4) — the configs are ready for that day.
"version": "0.2.0",
"configurations": [
{
// Basic use: foreground monitoring run (the normal way to run the tool).
// Currently prints the Phase 1 stub message; becomes live with the
// core engine. Set breakpoints in main.py / monitor/ to debug it.
"name": "opcda-diagnozer: run (foreground)",
"type": "debugpy",
"request": "launch",
"python": "${workspaceFolder}/.venv/Scripts/python.exe",
"module": "opcda_diagnozer",
"args": ["run", "--config", "config.example.yaml"],
"cwd": "${workspaceFolder}",
"console": "integratedTerminal",
"justMyCode": false,
"env": {
"PYTHONUNBUFFERED": "1"
}
},
{
// One-shot read of every configured tag — the pre-deployment check.
"name": "opcda-diagnozer: probe",
"type": "debugpy",
"request": "launch",
"python": "${workspaceFolder}/.venv/Scripts/python.exe",
"module": "opcda_diagnozer",
"args": ["probe", "--config", "config.example.yaml"],
"cwd": "${workspaceFolder}",
"console": "integratedTerminal",
"justMyCode": false,
"env": {
"PYTHONUNBUFFERED": "1"
}
},
{
// Basic use: validate the example config without connecting.
"name": "opcda-diagnozer: check-config",
"type": "debugpy",
"request": "launch",
"python": "${workspaceFolder}/.venv/Scripts/python.exe",
"module": "opcda_diagnozer",
"args": ["check-config", "--config", "config.example.yaml"],
"cwd": "${workspaceFolder}",
"console": "integratedTerminal",
"justMyCode": false,
"env": {
"PYTHONUNBUFFERED": "1"
}
},
{
// Show all available OPC DA servers (auto: Automation Wrapper over
// COM, falls back to the local registry scan).
"name": "opcda-diagnozer: list-servers",
"type": "debugpy",
"request": "launch",
"python": "${workspaceFolder}/.venv/Scripts/python.exe",
"module": "opcda_diagnozer",
"args": ["list-servers"],
"cwd": "${workspaceFolder}",
"console": "integratedTerminal",
"justMyCode": false,
"env": {
"PYTHONUNBUFFERED": "1"
}
},
{
// Show all available OPC DA servers via the no-COM registry scan,
// with full metadata (CLSID, description, DA versions) as JSON.
"name": "opcda-diagnozer: list-servers (registry, JSON)",
"type": "debugpy",
"request": "launch",
"python": "${workspaceFolder}/.venv/Scripts/python.exe",
"module": "opcda_diagnozer",
"args": ["list-servers", "--source", "registry", "--json"],
"cwd": "${workspaceFolder}",
"console": "integratedTerminal",
"justMyCode": false,
"env": {
"PYTHONUNBUFFERED": "1"
}
},
{
// Show OPC DA servers on a remote DCOM host — prompts for the host
// name at launch. Needs Launch+Activation permissions for your user
// on the target host (README "DCOM troubleshooting").
"name": "opcda-diagnozer: list-servers (remote host…)",
"type": "debugpy",
"request": "launch",
"python": "${workspaceFolder}/.venv/Scripts/python.exe",
"module": "opcda_diagnozer",
"args": ["list-servers", "--host", "${input:dcomHost}"],
"cwd": "${workspaceFolder}",
"console": "integratedTerminal",
"justMyCode": false,
"env": {
"PYTHONUNBUFFERED": "1"
}
},
{
// Full structure tree of the configured server: every branch
// AND every tag in place, whole subtree.
"name": "opcda-diagnozer: list-items (whole tree)",
"type": "debugpy",
"request": "launch",
"python": "${workspaceFolder}/.venv/Scripts/python.exe",
"module": "opcda_diagnozer",
"args": ["list-items", "all", "--depth", "0", "--config", "config.example.yaml"],
"cwd": "${workspaceFolder}",
"console": "integratedTerminal",
"justMyCode": false,
"env": {
"PYTHONUNBUFFERED": "1"
}
},
{
// Flat ItemID list of one subtree as JSON — the item_id values
// are what go into config `tags:`. Adjust the branch path to the
// server your config points at.
"name": "opcda-diagnozer: list-items tags (JSON)",
"type": "debugpy",
"request": "launch",
"python": "${workspaceFolder}/.venv/Scripts/python.exe",
"module": "opcda_diagnozer",
"args": [
"list-items",
"tags",
"--branch", "Simulation Items.Bucket Brigade",
"--json",
"--config", "config.example.yaml"
],
"cwd": "${workspaceFolder}",
"console": "integratedTerminal",
"justMyCode": false,
"env": {
"PYTHONUNBUFFERED": "1"
}
},
{
// One-shot read of tags with a --server override — no config
// file needed. Adjust the tags (and optionally the ProgID) to
// whichever server is registered on your machine.
"name": "opcda-diagnozer: read (--server override)",
"type": "debugpy",
"request": "launch",
"python": "${workspaceFolder}/.venv/Scripts/python.exe",
"module": "opcda_diagnozer",
"args": [
"read",
"--server", "Matrikon.OPC.Simulation.1",
"Bucket Brigade.Int1",
"Bucket Brigade.Real8"
],
"cwd": "${workspaceFolder}",
"console": "integratedTerminal",
"justMyCode": false,
"env": {
"PYTHONUNBUFFERED": "1"
}
}
],
"inputs": [
{
"id": "dcomHost",
"type": "promptString",
"description": "Remote host to enumerate OPC DA servers from (via DCOM)",
"default": "CONTROL-HOST01"
}
]
}