多存储器操作器 v1.0
概述
有两种用途,一种是对两个存储器进行合并、取交集等操作,下面称之为一般操作;另一种用途是批量初始化多个存储器
一般操作
左右两边各指定一个存储器 ID,按下端输入进行不同操作后,将结果输出到由上端输入指定 ID 的存储器
上左右都应该指定正确的存储器 ID,只有在下端为 1 时允许右端指定 ID 的存储器不存在,否则将不进行任何操作
而复制以外的操作,输出存储器的高度将被设置为 1,宽度被设置为数据总数量,因此推荐输出到可手动设置宽高的一维存储器
端口定义
下端同步操作
电压 | 操作 | 说明 |
---|---|---|
0 或 未指定 | 无 | 当下端输入变化时才会进行操作,不会因其他端口输入电压改变而立即执行操作 |
1 | 合并 /复制 | 将左右两边存储器的所有数据直接合并,左边存储器的数据在前,右边存储器的数据在后 如果右端指定ID的存储器不存在,而左边存在,则相当于复制左边数据 复制时,需要确保左边存储器与输出存储器类型一致(是否是易失版不影响) |
2 | 插入 | 将右边存储器的所有数据插入左边存储器,可使用后端输入指定插入的位置(从 0 开始) 如果指定位置大于左边存储器的数据数量,则会在中间补 0 |
3 | 覆盖 | 将右边存储器的所有数据覆盖到左边存储器,可使用后端输入指定覆盖开始的位置(从 0 开始) 如果指定位置大于左边存储器的数据数量,则会在中间补 0 |
4 | 交集 | 将左边存储器的数据逐一与右边比对,如果右边也存在则保留,否则删除 |
5 | 交集 (去重) | 同上,但还会对结果进行去重 |
6 | 差集 | 将左边存储器的数据逐一与右边比对,如果右边存在则删除,否则保留 |
7 | 差集 (去重) | 同上,但还会对结果进行去重 |
📝 关于指定插入、覆盖开始的位置
例如要将数据插入到第 5、6 个数据之间,则后端应该输入 5;要插入到第 1 个数据之前,则后端应该输入 0
要从第 5 个数据开始覆盖,则后端应该输入 4;要从第 1 个数据开始覆盖,则后端应该输入 0
批量初始化
左边指定作为初始化模板的存储器的 ID,上端指定用于储存初始化结果的存储器的 ID,后端输入起始偏移位置和其他参数,右端输入范围,下端变为 256 V (0x100) 时,范围内和模板相同类型的存储器会被初始化为与模板一致
端口定义
上端输出
作用 |
---|
将结果输出到指定 ID 的存储器(必须指定) |
右端输入
第 n 位 | 作用 | 说明 |
---|---|---|
1 ~ 8 | X 轴范围大小 | 单位格,方向为西 |
9 ~ 16 | Y 轴范围大小 | 单位格,方向为上 |
17 ~ 24 | Z 轴范围大小 | 单位格,方向为北 |
25 | X 轴范围的符号 | 为 1 时,X 轴范围的方向改为向东 |
26 | Y 轴范围的符号 | 为 1 时,Y 轴范围的方向改为向下 |
27 | Z 轴范围的符号 | 为 1 时,Z 轴范围的方向改为向南 |
28 ~ 32 | 空白 | 无作用 |
下端输入
作用 |
---|
变为 256 V (0x100) 时,尝试初始化 |
左端输入
作用 |
---|
指定作为初始化模板的存储器 ID |
后端输入
第 n 位 | 作用 | 说明 |
---|---|---|
1 ~ 8 | X 轴偏移大小 | 单位格,方向为西 |
9 ~ 16 | Y 轴偏移大小 | 单位格,方向为上 |
17 ~ 24 | Z 轴偏移大小 | 单位格,方向为北 |
25 | X 轴偏移的符号 | 为 1 时,X 轴偏移的方向改为向东 |
26 | Y 轴偏移的符号 | 为 1 时,Y 轴偏移的方向改为向下 |
27 | Z 轴偏移的符号 | 为 1 时,Z 轴偏移的方向改为向南 |
28 | 是否不输出结果 | 为 1 时不将结果输出到上端输入指定 ID 的存储器,为 0 时则输出 |
29 | 是否覆盖 | 为 1 时将会覆盖已有数据的存储器,为 0 时不覆盖 |
30 ~ 32 | 空白 | 无作用 |