/// <summary>Main tick method. Call it from Program.Main().</summary> public void Update(string argument, UpdateType source) { try { if ((source & UpdateType.Once) != 0) { Action <UpdateFrequency> once = OnOnce; OnOnce = null; updateFrequency &= ~UpdateFrequency.Once; once?.Invoke(UpdateFrequency.Once); } if ((source & UpdateType.Update1) != 0) { OnTick1?.Invoke(UpdateFrequency.Update1); } if ((source & UpdateType.Update10) != 0) { OnTick10?.Invoke(UpdateFrequency.Update10); } if ((source & UpdateType.Update100) != 0) { OnTick100?.Invoke(UpdateFrequency.Update100); } if ((source & (UpdateType.Terminal | UpdateType.Script | UpdateType.Trigger)) != 0) { ExecuteCommand(argument); } PB.Runtime.UpdateFrequency = updateFrequency; } catch (Exception e) { Fault?.Invoke(e); throw; } }
protected virtual void OnFault() { IsActive = false; Fault?.Invoke(); }