package com.dronecontrol.droneapi.commands.composed; import com.dronecontrol.droneapi.commands.Command; import com.dronecontrol.droneapi.commands.simple.SetConfigValueATCommand; import com.dronecontrol.droneapi.data.DroneConfiguration; import com.dronecontrol.droneapi.data.LoginData; import com.dronecontrol.droneapi.data.enums.LedAnimation; import static com.dronecontrol.droneapi.helpers.BinaryDataHelper.getNormalizedIntValue; public class PlayLedAnimationCommand extends SetConfigValueCommand { private final LedAnimation animation; private final float frequency; private final int durationSeconds; public PlayLedAnimationCommand(LoginData loginData, LedAnimation animation, float frequency, int durationSeconds) { super(loginData); this.animation = animation; this.frequency = frequency; this.durationSeconds = durationSeconds; } @Override protected Command getConfigValueCommand() { return new SetConfigValueATCommand(getLoginData(), DroneConfiguration.LED_ANIMATION_KEY, getAnimationValuesText()); } private String getAnimationValuesText() { return String.format("%d,%d,%d", animation.getAnimationCode(), getNormalizedIntValue(frequency), durationSeconds); } }