diff --git a/car_fmw/src/echo.kt b/car_fmw/src/echo.kt index 7cea2dacc45..da8ba527f7e 100644 --- a/car_fmw/src/echo.kt +++ b/car_fmw/src/echo.kt @@ -40,17 +40,3 @@ fun writeRoute(route: RouteRequest) { sendByteArray(buffer) } -fun go(request: RouteRequest) { - val times = request.distances - var j = 0 - - while (j < times.size) { - val time = times[j] - - engine_forward() - wait(time) - engine_stop() - j++ - } - -} diff --git a/car_fmw/src/rcControl.kt b/car_fmw/src/rcControl.kt index 8e9cc326606..f6cc3669aa9 100644 --- a/car_fmw/src/rcControl.kt +++ b/car_fmw/src/rcControl.kt @@ -1,3 +1,30 @@ -fun rcControl() { +enum class RouteType(val id: Int) { + FORWARD(0), + BACKWARD(1), + LEFT(2), + RIGHT(3); +} + +fun go(request: RouteRequest) { + val times = request.distances + val actions = request.angles + var j = 0 + + while (j < times.size) { + val time = times[j] + val action = actions[j] + + when (action) { + RouteType.FORWARD.id -> engine_forward() + RouteType.BACKWARD.id -> engine_backward() + RouteType.LEFT.id -> engine_turn_left() + RouteType.RIGHT.id -> engine_turn_right() + } + + wait(time) + engine_stop() + j++ + } + } \ No newline at end of file