清洗组件

清洗组件主要是用来给容器和部分非容器做药品残留物判定的规则使用,残留物分四个状态:空,水,溶液,固体,油状物,容器分为三个状态:干净状态,污染状态,清洗状态,非容器分为四个状态:干净状态,亚干净状态,污染状态,清洗状态。

1.首先通过组件基类注册清洗组件

2.设置一个初始化方法,将所需要的字段信息和方法进行初始化

(1)残留物字段信息,各种对应物质的化学式信息

(2)利用基类注册药品变化回调,传入药品信息

3.利用上方注册的药品变化回调,在内部判断容器的药品状态,更新残留物和容器状态

其中油状物和硬脂酸根需要通过药品内部的isGrease和isDetergent两个字段来判断,它们都属于液体药品

4.因为在两次不同的药品变化回调中有可能变化的是同一种不同类型的药品,根据策划案规则,同一种类型的残留物保留其中量较大的那个,所以还需要一个更新药品成分的方法

通过此方法获取对应状态的药品化学式表

遍历此表,如果残留物信息是溶液,则在表中去掉“水”之后再进行遍历,获取其中量最大的成分,如果是固体或者油状物,则直接 遍历获取成分,存入初始化的残留物信息表中

5.干净状态更新

根据策划案规则,当容器为清洗状态时,且15秒内没有发生状态变化,则将容器状态更新为干净状态,在OnUpdate方法中判断
如果内部没有药品,且状态为清洗状态,将残留物信息表更新为空。

6.为便于容器方做判定,设置一个状态判定方法,通过获取的残留物信息表中的信息来判断,在上方的药品变化回调和干净状态更新中调用此方法


具体判定信息如下

7.容器方注册示例

以250ml烧杯为例,在烧杯初始化方法中注册清洗组件,并执行清洗组件的初始化方法