package com.o3dr.android.client.apis.solo; import android.os.Bundle; import com.o3dr.android.client.Drone; import com.o3dr.android.client.apis.Api; import com.o3dr.services.android.lib.drone.companion.solo.tlv.TLVPacket; import com.o3dr.services.android.lib.model.AbstractCommandListener; import com.o3dr.services.android.lib.model.action.Action; import static com.o3dr.services.android.lib.drone.companion.solo.action.SoloActions.ACTION_SEND_MESSAGE; import static com.o3dr.services.android.lib.drone.companion.solo.action.SoloActions.EXTRA_MESSAGE_DATA; /** * Created by Fredia Huya-Kouadio on 7/31/15. */ public abstract class SoloApi extends Api { protected final Drone drone; protected SoloApi(Drone drone){ this.drone = drone; } /** * Sends a message to the solo vehicle. * @param messagePacket TLV message data. * @param listener Register a callback to receive update of the command execution status. */ protected void sendMessage(TLVPacket messagePacket, AbstractCommandListener listener){ Bundle params = new Bundle(); params.putParcelable(EXTRA_MESSAGE_DATA, messagePacket); drone.performAsyncActionOnDroneThread(new Action(ACTION_SEND_MESSAGE, params), listener); } }