2014-10-06 77 views
0

我正在使用一个C#库(Monobrick),它具有打开和关闭我机器人手臂的方法。我无法查看该方法是如何编写的,因为它位于.dll中。C#方法不执行或立即跳过

我的代码看起来是这样的:

for(int i = 0; i < 5; i++) 
{ 
    //true means to open, false means to close them 
    MoveArms(true); 
    MoveArms(false); 
    ...WriteLine("Output"); 
} 

的结果是,手臂打开一次,关闭一次,然后将其输出“输出” 5倍瞬间,它只是忽略了MoveArms()方法...

任何想法是什么导致这个?或者我可以选择哪些解决方案?我如何解决问题?我不知道如何使用EV3砖调试我的程序...

类我使用:

http://www.monobrick.dk/MonoBrickFirmwareDocumentation/class_mono_brick_firmware_1_1_movement_1_1_motor.html

+0

它发生得太快吗?那么在它有机会完成开放之前,你开放然后关闭? – DavidG 2014-10-06 16:31:40

+9

我对这个库没有特别的了解。但我只是猜测,当你告诉机器人移动它的手臂时,你应该等待移动完成,然后再发出有关手臂的命令。 – mason 2014-10-06 16:31:56

+0

我不确定是什么导致了这种情况,但您可以尝试使用像ILSpy这样的程序来查看此功能在做什么。 @ilspy.net/ – tarun713 2014-10-06 16:33:18

回答

1

您使用回报WaitHandleMSDN)的SpeedProfileTime方法。您必须等待“电机”才能完成任务,然后再请求其他电源。例如,您可以使用WaitHandle.WaitAll()MSDN)打包来电。