| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- /**********************************************************************************
- * File Name: Msg.c
- * Function Describe:
- * Relate Module:
- * Explain:
- * Writer: ShiLiangWen
- * Date: 2015.2.10
- **********************************************************************************/
- #include "includes.h"
- SUT_MSG sutMsg;
- unsigned char g_ucTask;
- unsigned char g_ucLastTask;
- unsigned long g_ulTickCt=0;
- unsigned long g_ulTick500Ct=0;
- int g_iPcTaCt=0;
- int g_iPcTaFlag=0;
- /***********************************************************************************
- *NewTask
- ************************************************************************************/
- void NewTask(unsigned char Task)
- {
- g_ucLastTask=g_ucTask;
- g_ucTask=Task;
- sutMsg.TaskStart=1;
- }
- /***********************************************************************************
- *StartMsg
- ************************************************************************************/
- const unsigned char IAP_VERSION[]="HS-IAP-V103\r\n";
- void StartMsg(void)
- {
- g_ulTick500Ct=0;
- g_ulTickCt=0;
- switch(g_ucTask){
- case TASK_WAIT:
- //NewTask(TASK_DL_APP);
- break;
- case TASK_DL_APP:
- IapGetUpdateVersion(PCTA_MAGIC);//启动应用程序下载
- break;
- case TASK_DL_FILES://启动资源文件下载
- DFGetFileList();
- break;
- case TASK_GOTO_APP://运行APP
- //IapTrace("GOTO_APP!\r\n");
- CopyFileHandle();
- IapTrace((char *)IAP_VERSION);
- iap_jump_app_s();
- break;
- }
- }
- /*********************************************************************
- *Tick500Msg
- **********************************************************************/
- void Tick500Msg(void)
- {
- if(g_ulTick500Ct<0xffffffff)g_ulTick500Ct++;
- switch(g_ucTask){
- case TASK_WAIT:
- if(g_ulTick500Ct==1)NewTask(TASK_GOTO_APP);
- break;
- case TASK_DL_APP:
- break;
- case TASK_DL_FILES:
- break;
- case TASK_GOTO_APP:
- if(g_ulTick500Ct<4)return;
- if(g_ulTick500Ct&0x00000001)IapTrace("No App!\r\n");
- break;
- }
- }
- /**********************************************************************************
- SlwStrCmp
- 判断str是否属于msg的字串,且从位置处于str的开头
- ***********************************************************************************/
- int SlwStrCmp(char *msg,char *str)
- {
- char *p1=str;
- char *p2=msg;
- while(*p1!=0){
- if(*p1!=*p2)return 1;
- p1++;
- p2++;
- }
- return 0;
- }
- /***********************************************************************************
- *Use for PC
- ************************************************************************************/
- void Uart1Msg(void)
- {
- int flag;
-
- if(TASK_WAIT==g_ucTask){
- if(0==SlwStrCmp((char *)IapRxBuf,"DOWNLOAD_APP")){
- NewTask(TASK_DL_APP);
- IapTrace("DOWNLOAD_APP\r\n");
- }else if(0==SlwStrCmp((char *)IapRxBuf,"DOWNLOAD_RFILES")){
- NewTask(TASK_DL_FILES);
- IapTrace("DOWNLOAD_RFILES\r\n");
- }else{
- IapTrace("----\r\n");
- }
- return;
- }
- if(TASK_DL_APP!=g_ucTask && TASK_DL_FILES!=g_ucTask)return;
-
- if(IapRxBuf[0]!='P' || IapRxBuf[1]!='C' || IapRxBuf[2]!='T' || IapRxBuf[3]!='A')return;
-
- if(IapRxBuf[4]==UPDATE_PROTOCOL_APP){//-------------
- //PCTA--更新应用程序
- flag=IapRecvMsgHandle(IapRxBuf,IapRxLen);
- if(0==flag){
- IapTrace("Completed!");
- NewTask(TASK_DL_FILES);//启动更新下载资源文件
- return;
- }
-
- if(flag<-2 && flag>-6){
- IapTrace("IAP Stop!\r\n");
- NewTask(TASK_GOTO_APP);
- }
- // g_iPcTaCt=0;
- // g_iPcTaFlag=flag;
-
- }else if(IapRxBuf[4]==UPDATE_PROTOCOL_RFILE){//-------------
- //PCTF--更新资源文件
- flag=DFRecvMsgHandle(IapRxBuf,IapRxLen);
- if(0==flag){
- IapTrace("Completed!");
- NewTask(TASK_GOTO_APP);
- copyFilePara.runFlag =1;
- return;
- }
- if(flag<-2 && flag>-6){
- IapTrace("IAP Stop!\r\n");
- NewTask(TASK_GOTO_APP);
- }
- // g_iPcTaCt=0;
- // g_iPcTaFlag=flag;
- }
-
-
-
- }
- /***********************************************************************************
- *TickMsg
- ************************************************************************************/
- void TickMsg(void)
- {
- }
- /***********************************************************************************/
|