So interagieren Sie mit Interrupts mithilfe von .net Core (Ubuntu)
Posted: 30 Dec 2024, 17:33
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 ...
... und eine simulierte (ungetestetes Konzept) Implementierung:
... mit diesen Interrupt-Typen:
Ich versuche herauszufinden, ob etwas bereits existiert oder ob ich mein eigenes drehe.
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();
}
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));
}
}
}
Code: Select all
public enum InterruptType
{
Timer,
Keyboard,
Network,
// Add more as needed
}