Hello and welcome to our community! Is this your first visit?
Register
Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 2 of 2
  1. #1
    New to the CF scene
    Join Date
    Nov 2012
    Posts
    4
    Thanks
    0
    Thanked 0 Times in 0 Posts

    C# No Overload problem C#

    I'm trying to add a glitch filter to my program in method_6 when I get it working will do the same for method_7
    I get an Error "1 No overload for 'Method_6' matches delegate 'System.Threading.ThreadStart'"
    I'm new to programing and can use help
    Thanks

    Code:
    using System;
    using System.Threading;
    using Microsoft.SPOT;
    using Microsoft.SPOT.Hardware;
    using SecretLabs.NETMF.Hardware;
    using SecretLabs.NETMF.Hardware.Netduino;
    
    namespace Hydro
    {
        public class Program
        {
            public const int SecondMs = 1000;
            public const int MinuteMs = 60 * SecondMs;
            public const int HourMs = 60 * MinuteMs;
            public const int DayMs = 24 * HourMs;
            public const int WeekMs = 7 * DayMs;
    
            static bool method_state_6, method_state_7;
    
    
    
            static InterruptPort phcontroller = new InterruptPort(Pins.GPIO_PIN_D0, false, Port.ResistorMode.Disabled, Port.InterruptMode.InterruptEdgeLow);
    
            static InterruptPort nutcontroller = new InterruptPort(Pins.GPIO_PIN_D1, false, Port.ResistorMode.Disabled, Port.InterruptMode.InterruptEdgeLow);
    
            private static DateTime Button1LastPushed;
    
    
            static OutputPort ph = new OutputPort(Pins.GPIO_PIN_D2, true);
            static OutputPort b = new OutputPort(Pins.GPIO_PIN_D3, true);
    
            static OutputPort a = new OutputPort(Pins.GPIO_PIN_D4, true);
            static OutputPort drain = new OutputPort(Pins.GPIO_PIN_D5, true);
            static OutputPort solenoid = new OutputPort(Pins.GPIO_PIN_D6, true);
            static OutputPort heater = new OutputPort(Pins.GPIO_PIN_D7, true);
    
    
            static OutputPort led = new OutputPort(Pins.GPIO_PIN_D11, true);
            static OutputPort FloodDrain = new OutputPort(Pins.GPIO_PIN_D8, true);
    
    
    
            public static void Main()
            {
                phcontroller.OnInterrupt += Method_6;
                // ... main loop
    
    
                try
                {
                    Thread led_proc = new Thread(new ThreadStart(turn_led));
                    led_proc.Start();
                    while (true)
                    {
    
                        Thread FloodDrain_proc = new Thread(new ThreadStart(turn_FloodDrain));
                        FloodDrain_proc.Start();
                        while (true)
                        {
    
                            Method_1();
                            call2_5();
                            call6_8();
                            Method_9();
                            Thread.Sleep(10000);
                        }
    
                    }
                }
    
                catch
                {
                    //Something has gone wrong; reset to a safe condition
                }
            }
    
    
    
            static void turn_led() //turn led for 16 hr and off for 8hr in loop
            {
                while (true)
                {
                    led.Write(false);
                    Thread.Sleep(HourMs * 12);
                    led.Write(true);
                    Thread.Sleep(HourMs * 12);
                }
            }
            static void turn_FloodDrain() //turn Flood and Drain for 1 hr and off loop
            {
                while (true)
                {
                    FloodDrain.Write(false);
                    Thread.Sleep(MinuteMs * 30);
                    FloodDrain.Write(true);
                    Thread.Sleep(HourMs * 1);
                }
            }
    
            public static void call2_5()
            {
                Thread t2 = new Thread(new ThreadStart(Method_2));
                t2.Start();
                Thread t3 = new Thread(new ThreadStart(Method_3));
                t3.Start();
                Thread t4 = new Thread(new ThreadStart(Method_4));
                t4.Start();
                Thread t5 = new Thread(new ThreadStart(Method_5));
                t5.Start();
                #region Wait for finishing 2-5 methods
                t2.Join();
                t3.Join();
                t4.Join();
                t5.Join();
                #endregion
            }
            static void call6_8()
            {
                method_state_6 = method_state_7 = true;
                Thread t6 = new Thread(new ThreadStart(Method_6));
                t6.Start();
                Thread t7 = new Thread(new ThreadStart(Method_7));
                t7.Start();
                Thread t8 = new Thread(new ThreadStart(Method_8));
                t8.Start();
    
                // wait for Method_8 finishing
                t8.Join();
                method_state_6 = method_state_7 = false;
    
            }
            public static void Method_1()
            {
                drain.Write(false);
                Thread.Sleep(16 * MinuteMs);
                drain.Write(true);
            }
            public static void Method_2()
            {
                solenoid.Write(false);
                Thread.Sleep(16 * MinuteMs);
                solenoid.Write(true);
            }
            public static void Method_3()
            {
                a.Write(false);
                Thread.Sleep(182 * SecondMs);
                a.Write(true);
            }
            public static void Method_4()
            {
                b.Write(false);
                Thread.Sleep(100 * SecondMs);
                b.Write(true);
            }
            public static void Method_5()
            {
                ph.Write(false);
                Thread.Sleep(5 * SecondMs);
                ph.Write(true);
            }
    
            private static void Method_6(uint data1, uint data2, DateTime time)
            {
                // glitch filter. events within 50 milliseconds of the first event are discarded
                if (Button1LastPushed.AddMilliseconds(50) > time)
                    return;
                //         Debug.Print("Button 1 Interrupt");
                Button1LastPushed = time;
                ph.Write(false);
                Thread.Sleep(2000);
                ph.Write(true);
                Thread.Sleep(5 * MinuteMs);
            }
    
    
            public static void Method_7()
            {
                Thread.Sleep(5 * MinuteMs);
                while ((!method_state_7) && (!nutcontroller.Read()))  //nutcontroller is just a relay that closes when needed
                {
                    a.Write(false);
                    Thread.Sleep(5454);
                    a.Write(true);
                    b.Write(false);
                    Thread.Sleep(3000);
                    b.Write(true);
                    Thread.Sleep(5 * MinuteMs);
                }
            }
    
    
            public static void Method_8()
            {
                heater.Write(false);
                for (int i = 0; i < 14; i++)
                {
                    Thread.Sleep(1 * DayMs);
                    solenoid.Write(false);
                    Thread.Sleep(20 * SecondMs);
                    solenoid.Write(true);
    
    
                }
                heater.Write(true);
            }
    
            public static void Method_9()
            {
                drain.Write(false);
                Thread.Sleep(16 * MinuteMs);
                drain.Write(true);
                solenoid.Write(false);
                Thread.Sleep(16 * MinuteMs);
                solenoid.Write(true);
                Thread.Sleep(1 * MinuteMs);
    
            }
    
        }
    }

  • #2
    New to the CF scene
    Join Date
    Nov 2012
    Posts
    4
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Never mind figured it out


  •  

    Posting Permissions

    • You may not post new threads
    • You may not post replies
    • You may not post attachments
    • You may not edit your posts
    •