public abstract void SetupInterrupt(Int32 factor, MulticastDelegate EventAddr, object[] EventArg, ref InterruputSetup someinterr);
// void SetupInterrupt( Int32 item, Int32 factor, MulticastDelegate EventAddr, ref InterruputSetup someinterr) // Motion Interrupt setup function //Parameters: // item: the selected axis. // Factor: type of interrupt(when to interrupt) // EventAddr: Delegate function. It is action after interrupt. // EventArg : Argument for interrupt function: EventAddr // someinterr: record setup /// <summary> /// Setups the interrupt. /// </summary> /// <param name="factor">Type of interrupt(when to interrupt).</param> /// <param name="EventAddr">Delegate function. It is action after interrupt.</param> /// <param name="EventArg">Argument for interrupt function: EventAddr.</param> /// <param name="someinterr">record setup.</param> public override void SetupInterrupt(Int32 factor, MulticastDelegate EventAddr, object[] EventArg, ref InterruputSetup someinterr) { someinterr.board_id = this.mCardPara.boardID_InBits; someinterr.item = mCardPara.AxisID; someinterr.factor = factor; someinterr.int_no = APS168.APS_set_int_factor(/*someinterr.board_id*/ 0, someinterr.item, someinterr.factor, 1); someinterr.EventAddr = EventAddr; int argNum = EventArg.Length; someinterr.EventArgs = new object[argNum]; for (int i = 0; i < argNum; i++) { someinterr.EventArgs[i] = EventArg[i]; } APS168.APS_int_enable(0, 1); }