一般會使用狀態機switch case 來處理, 例如下面Run運行后...
void Run(void)
{
....
switch( step )
{
case 0:
if( IsRunning() ) break; //檢測所有運動結束,否則繼續檢測
MoveXYZ( data[I].x, data[I].y, data[I].z …… );
Step ++;
Break;
Case 1:
If( IsRunning() ) break; // 同上
I++; // 準備下一段數據,之所以放在此處,是需要考慮在運行過程中,有外部的暫停和繼續操作。
Step = 0; // 準備運行新的數據
Break;
}
...
}