Tasks Question

Iv got a task running and i have a problem.

I cant control anything that isnt static, like solenoids and such. Any way around this?

I’m not exactly positive what you’re asking, but this thread might help you out: http://www.chiefdelphi.com/forums/showthread.php?t=82398&highlight=task+tutorial

Thanks, that helped quite a bit.

Though now im having a separate problem with it. When i declate the task:


Task scissorLiftTask("Scissor Lift Task", (FUNCPTR)scissorMovePos);

I get the error


error: argument of type `void (BuiltinDefaultCode::)(int)' does not match `int (*)(...)'

My function for the task is as follows:


void scissorMovePos(int argPtr)
	{
		ScissorsLiftTaskStruct* args = (ScissorsLiftTaskStruct*)argPtr;
		while(true)
		{
			if(curPOS != POS)
			{
				switch(POS)
				{
					case 0: // DOWN
						args->solenoids[1]->Set(true);
						break;
						
					case 1: // SIDE HIGH
						
						break;
						
					case 2: // SIDE MID
						
						break;
						
					case 3: // SIDE LOW
						
						break;
						
					case 4: // MID LOW
						
						break;
						
					case 5: // MID MID	
						
						break;
						
					case 6: // MID HIGH
						
						break;
						
					default: // DOWN
						
						break;
				}
				curPOS = POS;
			}
		}
	}

EDIT:;

Also, im getting this error:


error: incompatible types in assignment of `Solenoid* (*)[9]' to `Solenoid*[9]'

with this line:


scissorLiftTaskArgs.solenoids = &m_solenoids;

Declarations of the two objects involved in the above error:


struct ScissorsLiftTaskStruct
	{
	     Solenoid *solenoids(NUM_SOLENOIDS+1)];
	};

Solenoid *m_solenoids(NUM_SOLENOIDS+1)];