中级会员
 
- 积分
- 248
- 金钱
- 248
- 注册时间
- 2011-7-24
- 在线时间
- 37 小时
|
void MainSystem(void)
{ static u8 mainstauts=0;
static u8 first=0;
u8 act=0;
switch(mainstauts)
{ case CheckCommand:
if(DecodeCommand(&My_CommandFormat)==0)break;
if(My_CommandFormat.Window==0x07||My_CommandFormat.Window==0x55)break;//开机指令
act=My_CommandFormat.Window*10+My_CommandFormat.Control;
if(act==KeyEnter)break;
//界面编号*10+控件号
mainstauts=act;///1 2 3 4 5
break;
case CutiingSet://长度设定 刚进入要清一下屏
if(!first)
{ChangeWindow(2); //切到调试面命令
DisplayText(3);//显示一次数据
first=1;
}
if(DecodeCommand(&My_CommandFormat)==0)break;
act=My_CommandFormat.Window*10+My_CommandFormat.Control;
if(act!=KeyEnter) //正常接收字符
{CuttingSet(&OperationRun,&Run_systemflay,My_CommandFormat.Data,1);}
else//按下确定
{CuttingSet(&OperationRun,&Run_systemflay,My_CommandFormat.Data,2);
mainstauts=CheckCommand;
first=0;
}
break;
case SetCutNum: //刚进入要清一下屏
if(!first)
{DisplayText(4);//显示一次数据 这里有问题
ChangeWindow(2); //切到调试面命令
first=1;
}
if((DecodeCommand(&My_CommandFormat))==0)break;
act=My_CommandFormat.Window*10+My_CommandFormat.Control;
if(act!=KeyEnter) //正常接收字符
{SetCutingNum(&OperationRun,My_CommandFormat.Data,1);}
else//按下确定
{SetCutingNum(&OperationRun,My_CommandFormat.Data,2);
mainstauts=CheckCommand;
first=0;
}
act=0;
break;
case RunCutiing://完成一轮要退出
if(Operation(&Run_SesorStatus,&OperationRun)==1)mainstauts=CheckCommand;//运行切割切割操作
if(DecodeCommand(&My_CommandFormat)==0)break;
act=My_CommandFormat.Window*10+My_CommandFormat.Control;
mainstauts=act;///1 2 3 4 跳到 停机 设定 与调式界面
act=0;
break;
case StopCutiing : //停机
//StopRunCuting();
StopMorotPwm();
WarningDispalay(WaitStatus);
CopyImpulseData(&ImpulseNowNum,&OperationRun.NowOperation);//保存当前的数据,perationImpulseLength
mainstauts=CheckCommand;///1 2 3 4 跳到 停机 设定 与调式界面
act=0;
break;
case TestRun ://调式
if(!first)
{ShakedownTest(&Run_systemflay,&OperationRun,0);
first=1;
}
if((DecodeCommand(&My_CommandFormat))==0)break;
act=My_CommandFormat.Window*10+My_CommandFormat.Control;
if(ShakedownTest(&Run_systemflay,&OperationRun,act))
{ChangeWindow(0); //切到调试面命令
first=0;
mainstauts=CheckCommand;
}
break;
default:mainstauts=CheckCommand;
break;
}
}
我串口发送一下命令 在 TestRun 与 CheckCommand 切换!快一下 然后它就是在这两个自动换!ACT也的值也对 但是我就没有发命令 在testRun里要发送几十个的数据要发
然后就这两个换 我想是不是串口接收有问题
|
|