...

View Full Version : C# No Overload problem C#



perkunas
12-07-2012, 08:05 PM
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


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
12-07-2012, 10:00 PM
Never mind figured it out



EZ Archive Ads Plugin for vBulletin Copyright 2006 Computer Help Forum