``` TODO: 1. 数据库文件是否被破坏检查 2. 数据库文件如果被破坏,自动恢复默认配置 3. 添加归零保护,底层检测,如果电机未归零就执行moveTo,则报错。 坐标XY方向约定: 0 -----------------------> | (X) | | | | | v(Y) 舵机位置约定: 抓手 1.夹紧位置为0 2.最大张开位置为300 3.垂直位置70 水平位置 初始位置为0 2.水平移动舵机初始化位置为200(处于设备最后端) 复位要求: 1. 板夹仓推杆电机需要处于零点位置 2. 光学模组推杆电机需要处于零点位置 3. 试管架通道中没有试管架 4. 出料口没有试管架 5. 进出料位置没有试管 逻辑漏洞 1.高试管如果脱帽,会被识别成低试管。 TODO: 1.想办法解决 4:号仓位退不出 14 ``` ``` 入料: while(true) { } ``` ``` 第一层服务 FrontEndEventRouter 前端事件路由器 用户服务:(OK) 1.添加 2.删除 3.修改 ID卡服务: 1.插入检测,插入事件上报(Service,Fn) 2.删除 3.查询 系统服务: 1.时间修改 2.本机IP 系统配置服务: 1. 设备初始化服务: 设备初始化运行前检查 耗材扫描服务: 样本添加服务: 主运行服务: 入料与预处理控制服务: 滴定 反应 设备运行状态服务: ------------------------------------------------ 第二层服务: 硬件层 光学标定服务: 报表打印服务: 开机---> 设备不动 service core_service event_bus app_service hardware_service setting_service appSettingService TODO: 初始化服务 物料扫描服务 入料服务 预处理服务 孵育服务 取样与反应服务 ``` ``` DO_ENTER_TUBEHOLDER_AND_SCAN(入料) -> 修改试管架状态为READY DO_SWITCH_TO_THE_NEXT_TUBE -> DO_CHECK_TUBE_IS_OK_TO_PROCESS(检查试管是否可以被处理,如果检查不合格,则不切换状态) -> 修改试管状态为PROCESSING DO_SAMPLE_PRE_PROCESS_A(摇匀+脱帽) ->set DO_SAMPLE_PRE_PROCESS_A doneFlag DO_PREPARE_REACTION_PLATE(推入反应板到孵育盘中) ->set DO_PREPARE_REACTION_PLATE doneFlag DO_PREPARE_PREPARE_PROCESS(HBOT为处理样本做准备) ->set DO_PREPARE_PREPARE_PROCESS doneFlag DO_TAKE_SAMPLE_AND_PROCESS(处理样本,取样....) ->set DO_TAKE_SAMPLE_AND_PROCESS doneFlag --> DO_SAMPLE_PRE_PROCESS_B(盖帽,样本复位) ->set DO_SAMPLE_PRE_PROCESS_B doneFlag DO_PUSH_REACTION_PLATE(推出反应板) DO_OPT_SCAN ``` ``` 任务列表: 0. 重新思考整个系统的状态 1. 尽可能完成整个流程的控制,如果中间缺少某些位置参数,则只修改状态,让整个流程执行下去。 2. 支持急诊位置 3. 根据配置,修改对应的动作的细节,使其支持更多的试管架类型,更多的项目类型。 4. 完善日志 3. 完成剩余动作的校准工作。(取样本,取耗材,滴定,光学扫描,结果分析) 5. 添加温度控制。 5. 支持吸空检测。 6. 支持反应板夹类型检测。 ```