static public class TriggerMarker{...}
查看:MyTool.Dynamic.TriggerMarkerr(标记\累加)器
目录
1.Edge 边缘检测
2.Trigger T触发器
3.Clock 计时器
4.Count 计数器
///
/// 边缘检测:检测Switch是否发生变化,触发标记变成true一次 ; (false/true)用[与]运算过滤上下边缘
///
/// 主判断
/// 标记位
/// return : 触发标记
static public bool Edge(bool Switch ,ref bool bit){
bool T = Switch&&!bit;
bit = Switch;
return T;
}
///
/// T触发器:Switch间隔变成true,可改变触发标记状态(false/true)
///
/// 主判断
/// 标记位
/// 触发标记
/// return : 触发标记
static public bool Trigger(bool Switch,ref bool bit,ref bool trigger){
if(Switch&&!bit)trigger = !trigger;
bit = Switch;
return trigger;
}
///
/// 计时器:计算执行时间,需要手动清零
///
/// 计时位
/// 定时位
/// return : 触发标记
static public bool Clock(ref DateTime LastTime, float Tarseconds)
{
return ((DateTime.Now - LastTime).TotalSeconds > Tarseconds);
}
///
/// 累加计数器:计算执行次数,需要手动清零
///
/// 计数位
/// 设定数
/// return : 触发标记
static public bool Count(ref float count,float Cumulative, float Tarcount)
{
if (count <= Tarcount)
{
count += Cumulative;
return false;
}
else
{
return true;
}
}