一般会使用状态机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;
}
...
}