前端功能
- 功能 1: 节点组合、生成任务。向后端发送执行任务指令或者终止某一任务指令。
每个任务分为两部分,我们使用 config 和 task 去称呼他们。其中 config 在每次实验中是唯一的,而 task 在每次任务中是唯一的。每次重新执行实验需要后端系统重新运行,而每次任务只需要向后端发送 task 即可,后端会自动将其加入到任务堆中,并执行。
config 描述的是实验的基本信息,如实验名称、实验时间、实验备注、实验设备等。其中最重要的是实验设备,包含两种 robot 和 sensor。robot 和 sensor 各有很多种类型, 我们用两种不同颜色的圆角方块代表不同的 robot 和 sensor。 task 描述的是实验任务。task 之间存在依赖关系,后端的任务堆只会取出依赖入度为0的节点并执行。每个 task 使用一个淡色的虚线框表示,task 之间的依赖关系使用实线箭头表示。 每个 task 内主要包括三部分,目标、节点、节点的组合关系,用 target、node、edge 称呼。target 和 node 都有很多种,使用圆角矩形表示,每个圆角矩形上面写 target 或者 node 的类型。edge 用来描述节点之间的关系,使用实线箭头表示。
每个方块都可以拖动,拖动的时候会显示一个虚线框,表示拖动的目标位置。拖动的时候会自动吸附到其他方块上,吸附的时候会显示一个虚线箭头,表示吸附的目标位置。拖动的时候会自动调整节点之间的关系,使得节点之间的关系更加清晰。
每个方块都可以双击编辑。可编辑的选项随着方块的类型不同而不同。
robot 和 sensor 块是特殊的。他们可以被拖动到 config 中。然后再从 config 拖动到 node 中嵌入,此时 config 中的块不会被删除,而 node 呈现出一个圆角矩形包含圆角矩形的样式。
很多 target 之间只存在一种树状关系,会随着 target 的增加而增加。而 node 之间的关系是任意的,每个 node 都可以有很多个输入和很多个输出。