3 接口说明

3.1 设备控制接口

public interface ICommandController {

    /**
     * 添加设备状态回调
     *
     * @param callback OnDeviceStateCallback 设备状态回调
     */
    void addOnDeviceStateCallback(OnDeviceStateCallback callback);

    /**
     * 移除设备状态回调
     *
     * @param callback OnDeviceStateCallback 设备状态回调
     */
    void removeOnDeviceStateCallback(OnDeviceStateCallback callback);

    /**
     * 发送命令
     *
     * @param command     Command 命令对象
     * @param timeout     long 超时时间、单位是毫秒
     * @param reSendLimit int 重发次数限制
     * @param callback    CommandCallback 命令操作结果回调
     */
    <C extends Command<?, ?>> void sendCommand(@NonNull C command, long timeout, int reSendLimit, CommandCallback<C> callback);

    /**
     * 释放资源
     */
    void release();
}

Important

  1. 设备状态回调, 3.1.1   设备状态回调

  2. 命令结果回调, 3.1.2   命令结果回调

3.1.1 设备状态回调

public abstract class OnDeviceStateCallback implements DeviceStateCallback {

    /**
     * 回调设备连接状态
     *
     * @param mac    String 设备地址
     * @param status int 设备状态
     */
    @Override
    public void onConnection(@NonNull String mac, @DeviceState int status) {

    }

    /**
     * 回调接收到数据
     *
     * @param mac                String 设备地址
     * @param serviceUUID        UUID 主服务UUID
     * @param characteristicUUID UUID 特征UUID
     * @param data               byte[] 数据
     */
    @Override
    public void onDataReceive(@NonNull String mac, @NonNull UUID serviceUUID, @NonNull UUID characteristicUUID, @NonNull byte[] data) {

    }

    /**
     * 回调设备状态
     *
     * @param mac   String 设备地址
     * @param state int  设备状态
     */
    @Override
    public void onDeviceState(@NonNull String mac, int state) {

    }

    /**
     * 回调接收到的命令
     *
     * @param device  Device 设备信息
     * @param command Command 命令对象
     */
    @Override
    public void onReceiveCommand(@NonNull Device device, @NonNull Command<?, ?> command) {

    }
}

3.1.2 命令结果回调

public interface CommandCallback<C extends Command<?, ?>> {

    /**
     * 回调命令发送成功
     *
     * @param device  Device 设备信息
     * @param command Command 命令对象
     */
    void onSuccess(@NonNull Device device, @NonNull C command);

    /**
     * 回调命令操作失败
     *
     * @param device  Device 设备信息
     * @param code    int 错误码
     * @param message String 描述信息
     */
    void onFailed(@NonNull Device device, int code, String message);

}

3.2 文件传输接口

public interface IFileTransferApi {

    /**
     * 是否正在文件传输
     *
     * @return boolean 结果
     */
    boolean isFileTransferring();

    /**
     * 创建文件
     *
     * @param param    CreateFileParam 创建文件参数
     * @param listener FileTransferListener 文件传输监听器
     */
    void createFile(@NonNull CreateFileParam param, @NonNull FileTransferListener listener);

    /**
     * 取消文件传输
     *
     * @param callback ResultCallback<Boolean> 操作结果
     */
    void cancelFileTransfer(ResultCallback<Boolean> callback);

    /**
     * 释放资源
     */
    void destroy();
}

Important

  1. 创建文件参数, 2.2.2.1   CreateFileParam

  2. 文件传输监听器, 3.2.1   FileTransferListener

  3. 结果回调, 1.3.2.2   ResultCallback

3.2.1 FileTransferListener

public interface FileTransferListener {

     /**
      * 开始升级回调
      *
      * @param param CreateFileParam 创建文件参数
      */
     void onStart(@NonNull CreateFileParam param);

     /**
      * 升级进度回调
      *
      * @param progress int 进度
      */
     void onProgress(int progress);

     /**
      * 升级完成回调
      */
     void onStop();

     /**
      * 升级被中止回调
      *
      * @param reason int 原因码
      */
     void onCancel(int reason);

     /**
      * 升级失败回调
      *
      * @param code    int 错误码
      * @param message String 错误描述
      */
     void onError(int code, String message);
 }

Note

  1. 创建文件参数, 2.2.2.1   CreateFileParam

3.3 Mesh DFU接口

public interface IMeshDfuApi {

    /**
     * 正在DFU升级
     *
     * @return Boolean 结果
     */
    boolean isDfuUpgrading();

    /**
     * 升级状态
     *
     * @return DfuState 升级状态
     */
    @NonNull
    DfuState getDfuState();

    /**
     * 缓存的DFU升级文件信息
     *
     * @return DfuFileMsg DFU升级文件信息
     */
    DfuFileMsg getDfuFileMsg();

    /**
     * 添加设备DFU状态监听器
     *
     * @param callback 升级状态回调
     */
    void addDfuStateCallback(DfuStateCallback callback);

    /**
     * 移除设备DFU状态监听
     *
     * @param callback 升级状态回调
     */
    void removeDfuStateCallback(DfuStateCallback callback);

    /**
     * 读取DFU配置信息
     *
     * @param callback ResultCallback<DfuFileMsg> 结果回调
     */
    void readDfuCfgInfo(ResultCallback<DfuFileMsg> callback);

    /**
     * 读取DFU状态
     *
     * @param callback ResultCallback<DfuState> 操作结果
     */
    void readDfuState(ResultCallback<DfuState> callback);

    /**
     * 读取目标设备DFU状态
     *
     * @param callback ResultCallback<List<TargetStatus>> 结果回调
     */
    void readTargetDfuState(ResultCallback<List<TargetStatus>> callback);

    /**
     * 开始DFU
     *
     * @param dfuCfgInfo DfuCfgInfo DFU配置信息
     * @param callback   DfuStateCallback 升级状态回调
     */
    void startDFU(@NonNull DfuCfgInfo dfuCfgInfo, @NonNull DfuStateCallback callback);

    /**
     * 取消DFU
     *
     * @param callback ResultCallback<Boolean> 结果回调
     */
    void cancelDFU(ResultCallback<Boolean> callback);

    /**
     * 释放资源
     */
    void destroy();

}

Important

  1. DFU状态回调, 3.3.1   DfuStateCallback

  2. 分发器DFU状态, 2.3.5.2   DfuState

  3. 分发器DFU配置信息, 2.3.2.1   DfuFileMsg

  4. DFU配置信息, 2.3.5.1   DfuCfgInfo

  5. 结果回调, 1.3.2.2   ResultCallback

3.3.1 DfuStateCallback

public interface DfuStateCallback {
    /**
     * DFU升级状态回调
     *
     * @param state DfuState DFU升级状态
     */
    void onDfuState(@NonNull DfuState state);

    /**
     * 目标设备的升级状态回调
     *
     * @param targetStatus TargetStatus 目标设备状态
     */
    void onTargetDfuState(@NonNull TargetStatus targetStatus);
}

Note

  1. 分发器DFU状态, 2.3.5.2   DfuState

  2. 目标设备DFU状态, 2.3.5.3   TargetStatus