Page 1 of 1

So interagieren Sie mit Interrupts mithilfe von .net Core (Ubuntu)

Posted: 30 Dec 2024, 17:33
by Guest
Ich benötige einen Wrapper (C#) für eine C-Bibliothek. Ich weiß nur nicht, welches .so ich jage.
Ich habe von etwas von Glib gehört, das möglicherweise Bindungen für .netcore hat, die libudev umschließen.
Mir wurde im Grunde eine Schnittstelle gegeben, die ich erfüllen muss ...

Code: Select all

public interface IInterruptSource
{
event EventHandler OnInterrupt;
void EnableInterrupts();
void DisableInterrupts();
}
... und eine simulierte (ungetestetes Konzept) Implementierung:

Code: Select all

public class SimulatedInterruptSource : IInterruptSource
{
public event EventHandler OnInterrupt;
private System.Timers.Timer _timer;
private bool _interruptsEnabled = false;

public SimulatedInterruptSource()
{
_timer = new System.Timers.Timer(1000); // Example: 1 second interval for timer interrupts
_timer.Elapsed += Timer_Elapsed;
}

public void EnableInterrupts()
{
_interruptsEnabled = true;
_timer.Start();
}

public void DisableInterrupts()
{
_interruptsEnabled = false;
_timer.Stop();
}

private void Timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
if (_interruptsEnabled)
{
OnInterrupt?.Invoke(this, new InterruptEventArgs(SemacorInterruptType.Timer));
}
}
}
... mit diesen Interrupt-Typen:

Code: Select all

public enum InterruptType
{
Timer,
Keyboard,
Network,
// Add more as needed
}
Ich versuche herauszufinden, ob etwas bereits existiert oder ob ich mein eigenes drehe.