Software architecture
Application
├─ DobotCtrl ── DobotTcp ── DobotApiExt ── vendor dobot_api.py
│ ├─ Dashboard TCP 29999
│ ├─ Motion TCP 30003
│ └─ Feedback TCP 30004
└─ SyncDobotClient / AsyncDobotClient / DeviceProxy
│ HTTP / JSON
FastApiServer + DeviceRouter
│ automatic dispatch
DobotCtrl
DobotCtrl is a thin delegation layer that defines the public interface. DobotTcp implements MG400-specific conversions, state access, and communication. dobot_api.py is the vendor API; subclasses in dobot_api_ext.py add logging and connection checks.
DobotTcp receives 1440-byte feedback frames from port 30004 in a dedicated thread. DobotErrorManager handles errors. RobotVarManager persists local P/J/I/F/IO variables; these must not be confused with controller-resident robot variables.