外设工作时序图frontendfrontendrouter_peripheralrouter_peripheralPeripheralHandManagerPeripheralHandManagerPeripheralHandFactoryPeripheralHandFactory具体外设类具体外设类webappswebapps数据库数据库如 RuishouClientwebapps/trains/router_trains:create_train外设初始化fetch: xxx/peripheral/hand/init (hand_init())新建训练页面:选择设备点击初始化机械手(部分设备要额外选择参数)初始化manager初始化factorycreate_client()初始化具体外设类(client)clientinit()init()连接状态连接状态连接状态显示连接状态,按钮设置可用外设设备状态更新form请求post: xxx/trains点击创建训练 (TODO: 选中外设且未连接可提示?)为选中设备新增数据跳转至准备训练页loop[设备状态监听, 1s一次]fetch: xxx/peripheral/hand/status (hand_status())获取设备状态status()status()连接状态连接状态连接状态更新连接状态指示灯(TODO: 断开时弹窗?)外设触发反馈fetch: xxx/peripheral/hand/start (hand_start())用户被判定想象成功读取对应设备参数start()start()设备反馈设备反馈设备反馈