Skip to content

多存储器操作器 v1.0

概述

有两种用途,一种是对两个存储器进行合并、取交集等操作,下面称之为一般操作;另一种用途是批量初始化多个存储器

一般操作

左右两边各指定一个存储器 ID,按下端输入进行不同操作后,将结果输出到由上端输入指定 ID 的存储器

上左右都应该指定正确的存储器 ID,只有在下端为 1 时允许右端指定 ID 的存储器不存在,否则将不进行任何操作

而复制以外的操作,输出存储器的高度将被设置为 1,宽度被设置为数据总数量,因此推荐输出到可手动设置宽高的一维存储器

端口定义

上端输出

作用

将结果输出到指定 ID 的存储器

右端输入

作用

指定右边存储器 ID

下端输入

作用

同步操作,详见下表

左端输入

作用

指定左边存储器 ID

后端输入

作用

同步操作的参数

下端同步操作

电压操作说明
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

空白

无作用