{ // 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" } }, { // List the devices (address-space branches) of the configured // server — one level, with per-device tag counts. "name": "opcda-diagnozer: list-devices", "type": "debugpy", "request": "launch", "python": "${workspaceFolder}/.venv/Scripts/python.exe", "module": "opcda_diagnozer", "args": ["list-devices", "--config", "config.example.yaml"], "cwd": "${workspaceFolder}", "console": "integratedTerminal", "justMyCode": false, "env": { "PYTHONUNBUFFERED": "1" } }, { // List the tags of one device (whole subtree) as JSON — the // item_id values are what go into config `tags:`. Adjust the // device path to the server your config points at. "name": "opcda-diagnozer: list-tags (recursive, JSON)", "type": "debugpy", "request": "launch", "python": "${workspaceFolder}/.venv/Scripts/python.exe", "module": "opcda_diagnozer", "args": [ "list-tags", "--config", "config.example.yaml", "Simulation Items.Bucket Brigade", "--recursive", "--json" ], "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" } ] }