/** * 测试结果说明: * 在未规划出路径时action.getRemainingPath()不是返回null。 * 判断路径是否完成规划需要调用action.getRemainingPath().getPoints().isEmpty(), * 看返回路径的点是否空来判断 */ package com.slamtec.movetospot; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.widget.TextView; import com.slamtec.slamware.AbstractSlamwarePlatform; import com.slamtec.slamware.action.ActionStatus; import com.slamtec.slamware.action.IMoveAction; import com.slamtec.slamware.action.Path; import com.slamtec.slamware.discovery.DeviceManager; import com.slamtec.slamware.exceptions.ConnectionFailException; import com.slamtec.slamware.exceptions.ConnectionTimeOutException; import com.slamtec.slamware.exceptions.InvalidArgumentException; import com.slamtec.slamware.exceptions.OperationFailException; import com.slamtec.slamware.exceptions.ParseInvalidException; import com.slamtec.slamware.exceptions.RequestFailException; import com.slamtec.slamware.exceptions.UnauthorizedRequestException; import com.slamtec.slamware.exceptions.UnsupportedCommandException; import com.slamtec.slamware.robot.Location; import com.slamtec.slamware.robot.MoveOption; import java.util.Vector; import static java.lang.Thread.sleep; public class MainActivity extends AppCompatActivity { private static final String TAG = "MainActivity"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView textView = (TextView) findViewById(R.id.text_view); final AbstractSlamwarePlatform robotPlatform = DeviceManager.connect("10.0.130.71", 1445); Path path; try { IMoveAction action; MoveOption moveOption = new MoveOption(); moveOption.setPrecise(true); moveOption.setMilestone(true); Log.d(TAG, "=============================================="); Log.d(TAG, "Move To"); action = robotPlatform.moveTo(new Location(1, -3, 0), moveOption, 0); while(action.getRemainingPath().getPoints().isEmpty()) { Log.d(TAG, "remaining path is null"); System.out.println("remaining path is null"); sleep(1); } Log.d(TAG, "create path successful ..."); Vector vactor = action.getRemainingPath().getPoints(); Log.d(TAG, "vactor.size() = " + vactor.size()); Log.d(TAG, "vactor.isEmpty() = " + vactor.isEmpty()); Log.d(TAG, "=============================================="); action.waitUntilDone(); if (action.getStatus() == ActionStatus.ERROR) { Log.d(TAG, "Action Failed: " + action.getReason()); } } catch (ConnectionTimeOutException e) { e.printStackTrace(); } catch (UnsupportedCommandException e) { e.printStackTrace(); } catch (InvalidArgumentException e) { e.printStackTrace(); } catch (ParseInvalidException e) { e.printStackTrace(); } catch (ConnectionFailException e) { e.printStackTrace(); } catch (RequestFailException e) { e.printStackTrace(); } catch (UnauthorizedRequestException e) { e.printStackTrace(); } catch (OperationFailException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } } }