LinearOpMode与OpMode#
FTC® SDK中有两个OpMode类: OpMode
和 LinearOpMode
。你使用的类会影响你编写程序的方式。有关如何使用OpMode和LinearOpMode的示例, 请参阅SDK中的OpModes示例 。
LinearOpMode方法#
runOpMode()
:按下INIT按钮后,此方法中的代码将只运行一次。这是你应该放置OpMode的所有代码的地方。waitForStart()
:此方法暂停操作模式,直到你按下驱动程序站上的START按钮。isStarted()
:如果按下了START按钮,则返回true
,否则返回false
。isStopRequest()
:如果按下了STOP按钮,则返回true
,否则返回false
。idle()
:调用Thread.yield
,允许相同优先级的其他线程运行。opModeIsActive()
:返回isStarted() && ! isStopRequest()
并调用idle()
。opModeInit()
:返回!isStarted() && ! isStopRequest()
并且不调用idle()
。
OpMode方法#
init()
:在你按下驱动程序站上的INIT按钮后,此方法中的代码将只运行一次。init_loop()
:运行init()
中的代码后,此方法中的代码将持续运行,直到驱动程序站上按下START按钮。start()
:此方法中的代码将在你按下驱动程序站上的START按钮后运行一次。loop()
:一旦运行start()
中的代码,此方法中的代码将连续运行,直到驱动程序站上按下STOP按钮。stop()
:此方法中的代码将在你按下驱动程序站上的STOP按钮后运行一次。
备注
从SDK版本8.1开始,当执行 OpMode
时,调用 loop()
之间的延迟可以忽略不计。以前,它有不可预测的延迟,但是从8.1开始,它的性能类似于 LinearOpMode
。
结论#
总的来说,使用 LinearOpMode
或 OpMode
取决于偏好。 Game Manual 0 在任何地方都使用 LinearOpMode
以保持一致性。