SmartLogic 支持数学运算方式,严格的来说这种支持是完全的自定义,相当于调用一个普通函数一样。那为什么还需要额外引进这个概念了,首先是和时间相关的变量都需要周期性运算,这种普通函数的调用在系统模型中且认为是不占时间片的。所以这种普通函数也不普通,起自由定义,完全能满足不同需求,在.NET中,数学运算可以用开源软件Math.Net来完成,当然还有其他选择。
当前支持数学运算包括:
1.活动对象自身拥有一个自定义函数。
2.变量可以拥有自己的自定义函数(这类函数必须有返回值,通常为double类型,以赋值给相应状态变量)。
3.状态图中任意状态可以在变为活跃的时候拥有一个自定义函数。
从以上之3可以得到结论:SmartLogic支持连续变化和离散变化(状态图即为离散变化)的混合开发,而且二者可以相互影响。
以上自定义函数可以制定唯一ID,以及运算次数(0表示不执行,1.2.3...表示相应次数,负数表示无限次)。