62 lines
2.0 KiB
C#
62 lines
2.0 KiB
C#
using System;
|
|
|
|
namespace Testconsole {
|
|
class Program {
|
|
private Boolean RunningProcess = true;
|
|
private System.Threading.Thread sig_thread;
|
|
|
|
public static void Main() => new Program();
|
|
|
|
Program() {
|
|
Console.WriteLine("Start");
|
|
|
|
DispDriver a = new DispDriver("COM3");
|
|
for(Double i = 0; i < 1000; i = i + 0.5) {
|
|
a.DrawDigets(i.ToString().Replace(",", "."), 0x110000);
|
|
a.Write();
|
|
System.Threading.Thread.Sleep(200);
|
|
}
|
|
|
|
//a.DrawLineX(0, 0, 16, 0xFF0000);
|
|
//a.DrawLineY(0, 1, 2, 0x00FF00);
|
|
|
|
this.WaitForShutdown();
|
|
Console.WriteLine("Shutdown");
|
|
}
|
|
|
|
private void WaitForShutdown() {
|
|
this.sig_thread = new System.Threading.Thread(delegate () {
|
|
Console.WriteLine("Mono: Create thread");
|
|
Mono.Unix.UnixSignal[] signals = new Mono.Unix.UnixSignal[] {
|
|
new Mono.Unix.UnixSignal(Mono.Unix.Native.Signum.SIGTERM),
|
|
new Mono.Unix.UnixSignal(Mono.Unix.Native.Signum.SIGINT)
|
|
};
|
|
Console.WriteLine("Mono: Set Signals");
|
|
while (this.RunningProcess) {
|
|
Console.WriteLine("Mono: Wait for Signal");
|
|
Int32 i = Mono.Unix.UnixSignal.WaitAny(signals, -1);
|
|
Console.WriteLine("Mono: Signal Recieved: "+i);
|
|
this.RunningProcess = false;
|
|
}
|
|
});
|
|
if (Type.GetType("Mono.Runtime") != null) {
|
|
this.sig_thread.Start();
|
|
} else {
|
|
Console.CancelKeyPress += new ConsoleCancelEventHandler(this.SetupShutdown);
|
|
}
|
|
Console.WriteLine("Windows: Create Handler");
|
|
Console.WriteLine("Wait");
|
|
while (this.RunningProcess) {
|
|
System.Threading.Thread.Sleep(100);
|
|
}
|
|
Console.WriteLine("After Wait");
|
|
}
|
|
|
|
private void SetupShutdown(Object sender, ConsoleCancelEventArgs e) {
|
|
e.Cancel = true;
|
|
Console.WriteLine("Windows get Signal");
|
|
this.RunningProcess = false;
|
|
}
|
|
}
|
|
}
|