C# 如何使用外部信号触发计时器

C# 如何使用外部信号触发计时器,c#,timer,triggers,event-handling,arduino,C#,Timer,Triggers,Event Handling,Arduino,说到电子产品,我完全是个门外汉。我想做一个定时器,可以使用来自接近传感器的外部信号触发。比方说,当我的输送机上没有产品时,我的计时器会触发,直到产品在输送机上(该信号可以从接近传感器获取)。我想所有的时间显示在实时和记录以及。有谁能指导我如何做到这一点?我脑子里有C#,但我需要这个项目的入门指南。谢谢。既然您已经将arduino列为标签,并且希望使用c#我假设您希望将其用于netduino类型的设备。您的prox传感器将有一个中断(或者用c#术语称为“事件”)。当此中断触发时,您可以通过使计时器

说到电子产品,我完全是个门外汉。我想做一个定时器,可以使用来自接近传感器的外部信号触发。比方说,当我的输送机上没有产品时,我的计时器会触发,直到产品在输送机上(该信号可以从接近传感器获取)。我想所有的时间显示在实时和记录以及。有谁能指导我如何做到这一点?我脑子里有C#,但我需要这个项目的入门指南。谢谢。

既然您已经将arduino列为标签,并且希望使用c#我假设您希望将其用于netduino类型的设备。您的prox传感器将有一个中断(或者用c#术语称为“事件”)。当此中断触发时,您可以通过使计时器的enable属性为true来启动计时器。计时器间隔到期后,它将调用连接到已用事件的方法。发生这种情况时,您可以关闭计时器,使其在传感器激活之前不会再次运行

class Program
{
    static Timer timer;

    static void Main(string[] args)
    {
        //set timer interval of 3 seconds
        timer = new Timer(interval: 3000);
        timer.Elapsed += Timer_Elapsed;

        InterruptPort sensor = new InterruptPort(/* sensor port information */);
        sensor.OnInterrupt += new NativeEventHandler(sensor_OnInterrupt);
    }

    private static void sensor_OnInterrupt(uint data1,uint data2,DateTime time)
    {
        Console.WriteLine(DateTime.Now);
        timer.Enabled = true;
    }

    private static void Timer_Elapsed(object sender, ElapsedEventArgs e)
    {
        Console.WriteLine(DateTime.Now); 
        timer.Enabled = false;
        //do work
    }
}
有关日志和计时器的更多信息,我将查看以下链接


谢谢你的帮助,但我真的不知道用C#编写代码。这只是一个想法,用户应用程序可以用C#制作,而接近传感器可以连接到adruino(与PC用户应用程序接口)。我需要一个关于学习材料和方法的begginer指南,我应该使用它来实现这一点。谢谢