# focas-mock — vendored snapshot Source: `C:\Users\dohertj2\Desktop\focas` (sibling project in this dev environment). **Snapshot date:** 2026-04-24 (second refresh — pulled the native FOCAS2 Ethernet responder work in). ## Why vendored OtOpcUa's FOCAS integration fixture runs against the Python mock server. The upstream lives in its own repo; this directory is a verbatim snapshot so CI can build the Docker image without network access to the source repo and so OtOpcUa's test matrix pins a known-good revision. The managed `WireFocasClient` speaks the mock's native FOCAS2 Ethernet binary protocol directly — there's no longer a companion shim DLL. ## What's here | Path | Purpose | |------|---------| | `src/focas_mock/` | Python package — TCP JSON/line-delimited mock server with 6 Fanuc CNC profiles | | `pyproject.toml` | Package metadata; installs `focas-mock` CLI | | `Dockerfile` | `python:3.11-slim` image built by the parent `docker-compose.yml` | | `README.md` | Upstream README | | `LICENSE` | MIT — permissive, vendoring allowed | ## Refreshing the snapshot When upstream ships changes worth pulling: ```powershell $src = "C:\Users\dohertj2\Desktop\focas" $dest = "$PWD" Remove-Item -Recurse -Force "$dest\src" 2>$null Copy-Item -Recurse "$src\src" "$dest\src" Copy-Item "$src\pyproject.toml" "$dest\" Copy-Item "$src\README.md" "$dest\" Copy-Item "$src\LICENSE" "$dest\" Copy-Item "$src\Dockerfile" "$dest\" ``` Update the snapshot date at the top of this file afterward. No other files belong here — the Docker build context is just the Python package and its metadata.