条件组

更新记录

版本 日期 修改人 修改内容
1.0.0 2020年3月25日 龚鑫(758116) 新建文档
1.0.1 2020年8月6日 龚鑫(758116) 条件组中支持元器件个数判定
条件组结构

Result: false, 条件组的判定结果,初始默认都是false 。
EqualEntityIDCondition: “ConditionID1*Condition2”, 表示ConditionID1和Condition2条件所关联的元器件,至少有一个是同一个元器件 。

Conditions: “ConditionID1Condition2”,条件组是由哪些条件进行表达式组合的,此处表达式的计算符只支持“”和“+”。它和正常的计算表达式类似,比如:(Condition1+Condition2)*Condition3

ConditionForVisual: “”,编辑器缓存数据,可以不管

Id: “4d066c82-b9e2-4a8d-bc7c-542cd594cd17”,条件组的ID

Description: “【200ml烧杯】【处于非摇晃状态】且 【200ml烧杯】含有200ml的水”, 条件组的描述信息

Type: 0,条件组的类型:0表示持续判定,1表示只判定一次 。1的时候,当Result为true之后就不会再计算这个条件组

NeedEqualEleType: false,当前已经丢弃
KeepTime: 0.0,只有条件组的结果持续了KeepTime之后还是true的话,表示条件组完成判定
TimeCount: 0.0,运行时数据,可以不管
EuqualIDConditionList: [],运行时数据,可以不管
ConditionList: [“213a1257-8997-41ef-b218-d097a2c830b2”],运行时数据,可以不管
NeedDiffEleType: 0,0表示不判断,大于0表示:Conditions中的条件所涉及到的元器件,有多个元器件满足该条件。此时Conditions中有且只能有一个条件。
EqualIDList: [],表示Conditions中的条件所涉及到的元器件哪些是同一个元器件

  • 样例:含有100ml水、含有淀粉的烧杯底部 触碰 含有1g盐、含有酒精的烧杯头部

        * 烧杯1中有水、淀粉
        * 烧杯1底部触碰烧杯2头部
        * 烧杯2 有盐、酒精
        * 烧杯1的条件存储在needFirstCreateConditions中
        * 触碰的条件存储在InterfactConditions中
        * 烧杯2的条件存储在AfterCreateConditions中
        * * ****************************/
    

    此时EqualIDList的数据结构是

    {
    "EqualIDList": [
      {
        "FirstCreateConditions": [
          "ConditionID1",
          "ConditionID2"
        ],
        "FirstEqualElementCount":5,
        "InterfactConditions": "ConditionID3",
        "AfterCreateConditions": [
          "ConditionID4",
          "ConditionID5"
        ],
        "AfterEqualElementCount":4
      }
    ]
    }
    

    ConditionID1:描述的是烧杯1有水
    ConditionID2:描述的是烧杯1有淀粉
    ConditionID4:描述的是烧杯2有盐
    ConditionID5:描述的是烧杯2有酒精
    ConditionID3:描述的是烧杯1底部触碰烧杯2头部

    Condition,123,三个条件描述的是同一个烧杯1
    Condition,345,三个条件描述的是同一个烧杯2

2020年8月6日新增一下两个字段
FirstEqualElementCount:代表了ConditionID1,ConditionID2中涉及相同元器件的个数需要是5个,
AfterEqualElementCount:代表了ConditionID4,ConditionID5中涉及相同元器件的个数需要是4个,

值默认是0,表示不限制个数