Go Back   CodingForums.com > :: Computing & Sciences > Computer Programming

Before you post, read our: Rules & Posting Guidelines

Reply
 
Thread Tools Rate Thread
Enjoy an ad free experience by logging in. Not a member yet? Register.
Old 12-07-2012, 08:05 PM   PM User | #1
perkunas
New to the CF scene

 
Join Date: Nov 2012
Posts: 4
Thanks: 0
Thanked 0 Times in 0 Posts
perkunas is an unknown quantity at this point
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);

        }

    }
}
perkunas is offline   Reply With Quote
Old 12-07-2012, 10:00 PM   PM User | #2
perkunas
New to the CF scene

 
Join Date: Nov 2012
Posts: 4
Thanks: 0
Thanked 0 Times in 0 Posts
perkunas is an unknown quantity at this point
Never mind figured it out
perkunas is offline   Reply With Quote
Reply

Bookmarks

Jump To Top of Thread


Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 03:55 AM.


Advertisement
Log in to turn off these ads.