public NRF52840_Timer(Machine machine, int numberOfEvents) : base(machine) { IRQ = new GPIO(); if (numberOfEvents > MaxNumberOfEvents) { throw new ConstructionException($"Cannot create {nameof(NRF52840_Timer)} with {numberOfEvents} events (must be less than {MaxNumberOfEvents})"); } this.numberOfEvents = numberOfEvents; this.eventCompareEnabled = new IFlagRegisterField[numberOfEvents]; innerTimers = new ComparingTimer[numberOfEvents]; for (var i = 0u; i < innerTimers.Length; i++) { var j = i; innerTimers[j] = new ComparingTimer(machine.ClockSource, InitialFrequency, this, $"compare{j}", eventEnabled: true); innerTimers[j].CompareReached += () => { this.Log(LogLevel.Noisy, "Compare Reached on CC{0} is {1}", j, innerTimers[j].Compare); eventCompareEnabled[j].Value = true; EventTriggered?.Invoke((uint)Register.Compare0EventPending + 0x4u * j); UpdateInterrupts(); }; } DefineRegisters(); }
/// <summary> /// Trigger this action. /// This method is usually invoked by an IEventScheduler and shouldn't be called manually. /// </summary> /// <param name="scheduler">The scheduler which triggered the event</param> public virtual void Trigger(IEventScheduler scheduler) { var args = new SchedulerEventArgs(scheduler); EventTriggered?.Invoke(this, args); _action?.Invoke(); }
protected virtual void OnEventTriggered(InterpreterEvents interpreterEvent, string message = null) { EventTriggered?.Invoke(this, new InterpreterEventArgs() { InterpreterEvent = interpreterEvent, Message = message }); }
public NRF52840_RTC(Machine machine, int numberOfEvents) { IRQ = new GPIO(); if (numberOfEvents > MaxNumberOfEvents) { throw new ConstructionException($"Cannot create {nameof(NRF52840_Timer)} with {numberOfEvents} events (must be less than {MaxNumberOfEvents})"); } this.numberOfEvents = numberOfEvents; compareEventEnabled = new IFlagRegisterField[numberOfEvents]; compareReached = new IFlagRegisterField[numberOfEvents]; compareInterruptEnabled = new IFlagRegisterField[numberOfEvents]; innerTimers = new ComparingTimer[numberOfEvents]; for (var i = 0u; i < innerTimers.Length; i++) { var j = i; innerTimers[i] = new ComparingTimer(machine.ClockSource, InitialFrequency, this, $"compare{i}", eventEnabled: true); innerTimers[i].CompareReached += () => { compareReached[j].Value = true; if (compareEventEnabled[j].Value) { EventTriggered?.Invoke((uint)Register.Compare0EventPending + j * 4); } UpdateInterrupts(); }; } DefineRegisters(); }
private void F_MyTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { if (f_SendDataItems != null && f_SendDataItems.Count > 0) { T data = f_SendDataItems.Dequeue(); MyEventDo <T> sendData = new MyEventDo <T>(data); EventTriggered?.Invoke(sendData); } }
public virtual bool TriggerEvent(BaseEvent evnt) { if (evnt == null) { return(false); } EventTriggered?.Invoke(this, new BaseEventArgs(evnt)); return(true); }
private void Update() { var value = started.Value && interruptEnabled.Value; if (value) { this.Log(LogLevel.Noisy, "Generated new interrupt for RNG"); EventTriggered?.Invoke(0); } IRQ.Set(value); if (started.Value && readyToStopShortEnabled.Value) { started.Value = false; IRQ.Set(false); } }
private void OnTriggerEnter(Collider other) { if (!_UseTags) { EventTriggered?.Invoke(); return; } if (!_TriggeringTags.Contains(other.tag)) { return; } EventTriggered?.Invoke(); if (_DisableWhenTriggered) { gameObject.SetActive(false); } }
private void TriggerReset() { if (!interruptEnabled || readyToReset) { this.Log(LogLevel.Info, "Reseting machine"); machine.RequestReset(); return; } ; this.Log(LogLevel.Info, "Timeout triggered with interrupt enabled, waiting 2 cycles to reset"); EventTriggered?.Invoke((uint)Register.Timeout); eventTimeoutEnabled.Value = true; IRQ.Set(true); readyToReset = true; Value = 2; Enabled = true; }
private void CloudManagerOnAnchorLocated(object sender, AnchorLocatedEventArgs args) { if (args.Status == LocateAnchorStatus.Located) { feedbackBox.text = $"Found anchor: {args.Anchor.Identifier}"; var currentCloudAnchor = args.Anchor; UnityDispatcher.InvokeOnAppThread(() => { Pose anchorPose = Pose.identity; #if UNITY_ANDROID || UNITY_IOS anchorPose = currentCloudAnchor.GetPose(); #endif // HoloLens: The position will be set based on the unityARUserAnchor that was located. //SpawnOrMoveCurrentAnchoredObject(anchorPose.position, anchorPose.rotation); GameObject spawned = gameObject.GetComponent <ModelSpawnerScript>() .SpawnAnchoredObject(args.Anchor.Identifier, anchorPose.position, anchorPose.rotation); EventTriggered?.Invoke(spawned); }); } }
private void DefineRegisters() { Registers.Start.Define(this) .WithFlag(0, FieldMode.Write, name: "TASKS_START", writeCallback: (_, __) => { RunEncryption(); eventEnd.Value = true; EventTriggered?.Invoke((uint)Registers.EventEnd); UpdateInterrupts(); }) .WithReservedBits(1, 31) ; Registers.EventEnd.Define(this, name: "EVENTS_ENDECB") .WithFlag(0, out eventEnd, name: "ENDECB") .WithReservedBits(1, 31) .WithWriteCallback((_, __) => UpdateInterrupts()) ; Registers.InterruptEnableSet.Define(this, name: "INTENSET") .WithFlag(0, out endInterruptEnabled, FieldMode.Set | FieldMode.Read, name: "ENDECB") .WithReservedBits(1, 31) .WithWriteCallback((_, __) => UpdateInterrupts()) ; Registers.InterruptEnableClear.Define(this, name: "INTENCLR") .WithFlag(0, writeCallback: (_, value) => endInterruptEnabled.Value &= !value, valueProviderCallback: _ => endInterruptEnabled.Value, name: "ENDECB") .WithReservedBits(1, 31) .WithWriteCallback((_, __) => UpdateInterrupts()) ; Registers.DataPtr.Define(this) .WithValueField(0, 32, out dataPointer, name: "ECBDATAPTR") ; }
private void BezierSpline_TriggerEvent(Trigger obj) { EventTriggered?.Invoke(obj); }
/// <summary> /// The Flyout can decide to handle events from the outside /// </summary> public virtual void PushEvent(AdminShellEvents.AasEventMsgEnvelope ev) { // default behavior: trigger event EventTriggered?.Invoke(ev); }
protected virtual void OnEventTriggered(int num1, int num2) { EventTriggered?.Invoke(num1, num2); }
private void SplineBase_TriggerEvent(Trigger obj) { EventTriggered?.Invoke(obj); }
private void SetEvent(Events @event) { interruptManager.SetInterrupt(@event); events[(int)@event].Value = true; EventTriggered?.Invoke((uint)@event * 4 + 0x100); }