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.