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.
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]public interface IInterruptSource
{
event EventHandler OnInterrupt;
void EnableInterrupts();
void DisableInterrupts();
}
[/code]
... und eine simulierte (ungetestetes Konzept) Implementierung:
[code]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]
... mit diesen Interrupt-Typen:
[code]public enum InterruptType
{
Timer,
Keyboard,
Network,
// Add more as needed
}
[/code]
Ich versuche herauszufinden, ob etwas bereits existiert oder ob ich mein eigenes drehe.