Laden...

Methode durch physischen EIN/AUS Schalter starten

Erstellt von prophet2812 vor 10 Jahren Letzter Beitrag vor 10 Jahren 1.622 Views
P
prophet2812 Themenstarter:in
2 Beiträge seit 2014
vor 10 Jahren
Methode durch physischen EIN/AUS Schalter starten

Hallo Leute,
ich bin gerade auf der Suche nach einer Lösung für folgendes Problem:

Ich würde gerne eine Methode in C# starten nachdem man einen Druckschalter gedrückt hat.

Sprich man hat einen Druckschalter (EIN//AUS Schalter wie beim PC) angeschlossen und man drückt drauf dann soll er z.B. "Hallo" am Bildschirm ausgeben. Kann mir einer sagen wie ich das in C# einbinden kann bzw. über welche Schnittstelle kann ich den Knopf ansprechen? Serial? USB (bevorzugt)?

Das man Quasi sagt wenn beim Serial Port an Pin 1 und Pin 2 Kontakt herrscht starte die Methode?

Hoffe ihr könnte mir helfen =)

lg Prophet

2.207 Beiträge seit 2011
vor 10 Jahren

Hallo prophet2812,

bau dir einen Service, der sich auf das Event registriert. Welches Event geschmissen wird, wenn du den Knopf drückst, können wir dir nicht sagen. Das bekommst du mMn über die API des Herstellers raus.
Der Service registriert sich auf das Event und reagiert dann auf das Event.

Basic serial port listening application schaut auch interessant aus

Gruss

Coffeebean

S
322 Beiträge seit 2007
vor 10 Jahren

Hallo,

hier ein Beispiel wie man es machen kann:

VORSICHT: NICHT GETESTET!


namespace ConsoleSerialPort
{
    class Program
    {
        static void Main(string[] args)
        {
            SerialPort port = new SerialPort("COM1");
            port.Open();
            port.PinChanged += new SerialPinChangedEventHandler(port_PinChanged);

            //Ausgangssignal setzen RTS oder DTR (sollten mit Optokoppler entkoppelt sein!)
            port.RtsEnable = true;
            port.DtrEnable = true;
        }

        static void port_PinChanged(object sender, SerialPinChangedEventArgs e)
        {
            SerialPort port = sender as SerialPort;

            //Eingangssignal einlesen
            switch (e.EventType)
            {
                case SerialPinChange.Break:
                    break;
                case SerialPinChange.CDChanged:
                    break;
                case SerialPinChange.CtsChanged:
                    Console.WriteLine("CTS Signal: " + port.CtsHolding.ToString());
                    break;
                case SerialPinChange.DsrChanged:
                    Console.WriteLine("DSR Signal" + port.DsrHolding.ToString());
                    break;
                case SerialPinChange.Ring:
                    break;
                default:
                    break;
            }
        }
    }
}

Gruß
Steffen

P
prophet2812 Themenstarter:in
2 Beiträge seit 2014
vor 10 Jahren

Danke für die Antworten =)