Here it is. Two parts of my m6 macro.
I get the handle of my outputs in the beginning of the macro; but here is a rundown of what is going on.
--Move the POT down.
mc.mcSignalSetState(POTUp, 0)
mc.mcSignalSetState(POTDown, 1)
rc = mc.mcSignalWait(inst, mc.ISIG_INPUT24, mc.WAIT_MODE_HIGH, ErrorWaitTime)
if rc ~= 0 then
mc.mcCntlSetLastError(inst, "There was a problem moving POT down.")
mc.mcSignalSetState(Alarm, 1)
return
end--POT down error check.
--Move the arm to the spindle.
mc.mcSignalSetState(ArmToHome, 0)
mc.mcSignalSetState(ArmToSpindle, 1)
rc = mc.mcSignalWait(inst, mc.ISIG_INPUT26, mc.WAIT_MODE_HIGH, ErrorWaitTime)
if rc ~= 0 then
mc.mcCntlSetLastError(inst, "There was a problem moving the arm to the spindle.")
mc.mcSignalSetState(Alarm, 1)
return
end--Arm to spindle error check.
rc = mc.mcSignalWait(inst, mc.ISIG_INPUT#, mc.WAIT_MODE_HIGH, ErrorWaitTime)
The "ErrorWaitTime" on the end of the call is a variable I have declared at the top of my macro. It is read in seconds. You can make it a variable or just put in an integer. That is how long it waits before it continues on with the macro. If it is left at 0 then it will wait indefinitely.