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 以保持一致性。