722 lines
32 KiB
C
722 lines
32 KiB
C
![]() |
#include "usercmd.h"
|
|||
|
#include "flash.h"
|
|||
|
#include "usart.h"
|
|||
|
#include "sysport.h"
|
|||
|
#include "user_tcp.h"
|
|||
|
#include "userapp.h"
|
|||
|
#include "osPort.h"
|
|||
|
#include "logflash.h"
|
|||
|
#include "key.h"
|
|||
|
#include "ec20tcp.h"
|
|||
|
#include "user_tcp.h"
|
|||
|
|
|||
|
/******************************************************************************
|
|||
|
*<EFBFBD><EFBFBD><EFBFBD>ⲿʹ<EFBFBD>õij<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
*******************************************************************************/
|
|||
|
FrameQueue_s sUsercmdQueue ; //<2F><><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FLASH<53>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ*/
|
|||
|
IAPFlash_u uIapFlash ; //<2F><><EFBFBD><EFBFBD>IAPFlash_u<5F><75><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
APPFlash_u uAppFlash ; //<2F><><EFBFBD><EFBFBD>APPFlash_u<5F><75><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
/*<2A><><EFBFBD><EFBFBD><EEB4A6><EFBFBD>쳣*/
|
|||
|
char *noCmdErr = "<EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><EFBFBD>" ;
|
|||
|
char *paramErr = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD>!" ;
|
|||
|
char *formErr = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>!" ;
|
|||
|
|
|||
|
/*********************************************************************************************************************
|
|||
|
* <EFBFBD><EFBFBD> <EFBFBD>ƣ<EFBFBD>void InitIapFlashConfig( IAPFlash_u *config )
|
|||
|
* <EFBFBD><EFBFBD> <EFBFBD>ܣ<EFBFBD><EFBFBD>ȴ<EFBFBD>FLASH<EFBFBD><EFBFBD><EFBFBD><EFBFBD>IAPFlash<EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>IAPFlash_u<EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>ȫ<EFBFBD>ֱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD>FLASH<EFBFBD><EFBFBD>
|
|||
|
* ˵ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡRunAppNum<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FLASH<EFBFBD>е<EFBFBD>RunAppNum<EFBFBD><EFBFBD>־λ
|
|||
|
*********************************************************************************************************************/
|
|||
|
void InitIapFlashConfig( IAPFlash_u *config )
|
|||
|
{
|
|||
|
InitQueueMem(&sUsercmdQueue) ; //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>sUsercmdQueue
|
|||
|
Get_uIapFlash(config) ; //<2F><>FLASH<53>ж<EFBFBD>ȡIAP<41><50>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>uIapFlash<73><68>
|
|||
|
config->sIapFlash.Head = '[' ; //֡ͷ<D6A1><CDB7>ʼ<EFBFBD><CABC>
|
|||
|
config->sIapFlash.IapFlag = 0x30 ; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־λ<D6BE><CEBB>ʼ<EFBFBD><CABC>
|
|||
|
#if defined APP0_CODE
|
|||
|
config->sIapFlash.RunAppNum =0x30 ; //<2F><>ǰAPPΪAPP0
|
|||
|
strcpy((char*)config->sIapFlash.BootVers, "No Boot") ;
|
|||
|
#elif defined APP1_CODE
|
|||
|
config->sIapFlash.RunAppNum =0x31 ; //<2F><>ǰAPPΪAPP1
|
|||
|
#elif defined APP2_CODE
|
|||
|
config->sIapFlash.RunAppNum =0x32 ; //<2F><>ǰAPPΪAPP2
|
|||
|
#elif defined APP3_CODE
|
|||
|
config->sIapFlash.RunAppNum =0x33 ; //<2F><>ǰAPPΪAPP3
|
|||
|
#endif
|
|||
|
config->sIapFlash.JumpResult = 0x31 ; //ϵͳ<CFB5><CDB3>boot<6F><74>ת<EFBFBD><D7AA>APP<50>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>JumpResultλ<74><CEBB><EFBFBD><EFBFBD>Ϊtrue<75><65>д<EFBFBD><D0B4>FLASH<53><48>//<2F><><EFBFBD><EFBFBD>BOOT<4F><54><EFBFBD><EFBFBD><EFBFBD>жϸ<D0B6>ΪΪfalse<73><65><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>APP<50><50><EFBFBD><EFBFBD><EFBFBD>⣬ֱ<E2A3AC><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>APP1
|
|||
|
if((uint8_t)config->sIapFlash.FtpFolder[0] == 0xFF ) /*δ<><CEB4><EFBFBD>ù<EFBFBD>FtpFolder*/
|
|||
|
{
|
|||
|
memset( config->sIapFlash.FtpFolder, 0, FOLDER_MAXLEN) ;
|
|||
|
strcpy( config->sIapFlash.FtpFolder, "/ABM") ; //<2F><><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD>FtpFolder<65><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>/ABM<42><4D>
|
|||
|
}
|
|||
|
if( (uint8_t)config->sIapFlash.FtpUsername[0] == 0xFF ) /*FLASH<53>д洢ftp<74>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD>Ч*/
|
|||
|
{
|
|||
|
memset( config->sIapFlash.FtpUsername, 0, USERNAME_MAXLEN) ;
|
|||
|
strcpy( config->sIapFlash.FtpUsername, "ABM") ; //<2F><><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD>FtpUsername<6D><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FTPĬ<50><C4AC><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ABM<42><4D>
|
|||
|
}
|
|||
|
if( (uint8_t)config->sIapFlash.FtpPassword[0] == 0xFF ) /*FLASH<53>д洢ftp<74>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD>Ч*/
|
|||
|
{
|
|||
|
memset( config->sIapFlash.FtpPassword, 0, PASSWORD_MAXLEN) ;
|
|||
|
strcpy( config->sIapFlash.FtpPassword, "Shop344794749") ; //<2F><><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD>FtpUsername<6D><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FTPĬ<50><C4AC><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>Shop344794749
|
|||
|
}
|
|||
|
if( (uint8_t)config->sIapFlash.FtpIP[0] == 0xFF ) /*FLASH<53>д洢FtpIP<49>ֶ<EFBFBD><D6B6><EFBFBD>Ч*/
|
|||
|
{
|
|||
|
memset( config->sIapFlash.FtpIP, 0, MAX_IP_LEN) ;
|
|||
|
strcpy( config->sIapFlash.FtpIP, "121.41.79.87") ; //<2F><><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD>FtpIP<49><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FTP<54><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP<49><50><EFBFBD><EFBFBD>Ϊ"121.41.79.87"
|
|||
|
}
|
|||
|
if( ((uint8_t)config->sIapFlash.TcpIP[0] == 0xFF) ||
|
|||
|
((uint8_t)config->sIapFlash.TcpIP[0] == 0x00)) /*FLASH<53>д洢FtpIP<49>ֶ<EFBFBD><D6B6><EFBFBD>Ч*/
|
|||
|
{
|
|||
|
memset( config->sIapFlash.TcpIP, 0, MAX_IP_LEN) ;
|
|||
|
strcpy( config->sIapFlash.TcpIP, TCP_CONNECTID0_SERVERIP0) ;//<2F><><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD>FtpIP<49><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FTP<54><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP<49><50><EFBFBD><EFBFBD>ΪTCP_CONNECTID0_SERVERIP0
|
|||
|
}
|
|||
|
else /*FLASH<53>д洢FtpIP<49>ֶ<EFBFBD><D6B6><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>s_Channal0ȱʡIP<49><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>IP*/
|
|||
|
{
|
|||
|
SetAppTcpIP(&sChannal0, uIapFlash.sIapFlash.TcpIP ) ; //<2F><><EFBFBD><EFBFBD>TCP<43><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP
|
|||
|
}
|
|||
|
if( ((uint8_t)config->sIapFlash.TcpPort[0] == 0xFF) ||
|
|||
|
((uint8_t)config->sIapFlash.TcpPort[0] == 0x00) ) /*FLASH<53>д洢FtpIP<49>ֶ<EFBFBD><D6B6><EFBFBD>Ч*/
|
|||
|
{
|
|||
|
memset( config->sIapFlash.TcpPort, 0, PORT_MAXLEN) ;
|
|||
|
char port[PORT_MAXLEN] = {0} ;
|
|||
|
itoa(TCP_CONNECTID0_SERVERPORT0, port, 10);
|
|||
|
strcpy( config->sIapFlash.TcpPort, port) ; //<2F><><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD>TcpPort<72><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FTP<54><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP<49><50><EFBFBD><EFBFBD>ΪTCP_CONNECTID0_SERVERPORT0
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
SetAppTcpPort(&sChannal0, uIapFlash.sIapFlash.TcpPort ) ; //<2F><><EFBFBD><EFBFBD>TCP<43><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>port
|
|||
|
}
|
|||
|
|
|||
|
config->sIapFlash.Tail = ']' ; //֡β<D6A1><CEB2>ʼ<EFBFBD><CABC>
|
|||
|
Set_uIapFlash(config) ; //<2F><><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>д<EFBFBD><D0B4>FLASH<53><48>
|
|||
|
}
|
|||
|
|
|||
|
/**************************************************************************************************
|
|||
|
* <EFBFBD><EFBFBD> <EFBFBD>ƣ<EFBFBD> void Get_uIapFlash(IAPFlash_u *config)
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD>flash<EFBFBD><EFBFBD>IAPCONFIG_AREA_ADDR<EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD>ȡһҳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡFLASH<EFBFBD>е<EFBFBD>IAP<EFBFBD><EFBFBD>Ϣ
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param1 *uIapInfo IAPFlash_u<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>
|
|||
|
**************************************************************************************************/
|
|||
|
void Get_uIapFlash(IAPFlash_u *config)
|
|||
|
{
|
|||
|
memset( config->iapFlashBuffer , 0, IAPFLASHCONFIGLEN) ;
|
|||
|
Read_Flash_Byte(IAPCONFIG_AREA_ADDR, uIapFlash.iapFlashBuffer, IAPFLASHCONFIGLEN) ;
|
|||
|
}
|
|||
|
|
|||
|
/**************************************************************************************************
|
|||
|
* <EFBFBD><EFBFBD> <EFBFBD>ƣ<EFBFBD> void Set_uIapFlash(IAPFlash_u *config)
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>IAP<EFBFBD><EFBFBD>Ϣд<EFBFBD><EFBFBD>FLASH
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param1 *uIapInfo IAPFlash_u<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>
|
|||
|
**************************************************************************************************/
|
|||
|
void Set_uIapFlash(IAPFlash_u *config)
|
|||
|
{
|
|||
|
Write_Flash_OnePage(IAPCONFIG_AREA_ADDR, config->iapFlashBuffer, IAPFLASHCONFIGLEN) ;
|
|||
|
}
|
|||
|
|
|||
|
/*********************************************************************************************************************
|
|||
|
* <EFBFBD><EFBFBD> <EFBFBD>ƣ<EFBFBD>void InitAppFlashConfig( APPFlash_u *config )
|
|||
|
* <EFBFBD><EFBFBD> <EFBFBD>ܣ<EFBFBD><EFBFBD>ȴ<EFBFBD>FLASH<EFBFBD><EFBFBD><EFBFBD><EFBFBD>APPFlash<EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>APPFlash_u<EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>ȫ<EFBFBD>ֱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD>FLASH<EFBFBD><EFBFBD>
|
|||
|
* ˵ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȶ<EFBFBD>ȡFLASH<EFBFBD>д洢<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD>飬<EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD><EFBFBD>ı<EFBFBD>־λȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>ΪĬ<EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD>FLASH
|
|||
|
*********************************************************************************************************************/
|
|||
|
void InitAppFlashConfig( APPFlash_u *config )
|
|||
|
{
|
|||
|
Get_uAppFlash(config) ; //<2F><>FLASH<53>ж<EFBFBD>ȡIAP<41><50>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>uAppFlash<73><68>
|
|||
|
|
|||
|
Set_uAppFlash(config) ;
|
|||
|
}
|
|||
|
|
|||
|
/**************************************************************************************************
|
|||
|
* <EFBFBD><EFBFBD> <EFBFBD>ƣ<EFBFBD> void Get_uIapFlash(APPFlash_u *config)
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD>flash<EFBFBD><EFBFBD>APPFLASHCONFIGLEN<EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD>ȡһҳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡFLASH<EFBFBD>е<EFBFBD>APP<EFBFBD><EFBFBD>Ϣ
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param1 *uIapInfo IAPFlash_u<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>
|
|||
|
**************************************************************************************************/
|
|||
|
void Get_uAppFlash(APPFlash_u *config)
|
|||
|
{
|
|||
|
memset( config->appFlashBuffer, 0, APPFLASHCONFIGLEN) ;
|
|||
|
Read_Flash_Byte(APPCONFIG_AREA_ADDR, config->appFlashBuffer, APPFLASHCONFIGLEN ) ;
|
|||
|
}
|
|||
|
|
|||
|
/**************************************************************************************************
|
|||
|
* <EFBFBD><EFBFBD> <EFBFBD>ƣ<EFBFBD> Set_uIapFlash(APPFlash_u *config)
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>IAP<EFBFBD><EFBFBD>Ϣд<EFBFBD><EFBFBD>FLASH
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param1 *uIapInfo IAPFlash_u<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>
|
|||
|
**************************************************************************************************/
|
|||
|
void Set_uAppFlash(APPFlash_u *config)
|
|||
|
{
|
|||
|
Write_Flash_OnePage(APPCONFIG_AREA_ADDR, config->appFlashBuffer, APPFLASHCONFIGLEN) ;
|
|||
|
}
|
|||
|
|
|||
|
/****************************************************************************
|
|||
|
* <EFBFBD><EFBFBD> <EFBFBD>ƣ<EFBFBD>void Cmd_Process( char *cmdBuf, int bufLen )
|
|||
|
* <EFBFBD><EFBFBD> <EFBFBD>ܣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param1 cmdBuf ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>
|
|||
|
* @param2 bufLen <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵij<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* ˵ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҽ<EFBFBD><EFBFBD>µIJ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>浽<EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD>FLASH<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD> ʽ<EFBFBD><EFBFBD>(L0072MAC:31FFD405524E353728902251;10&CMD_RST$X)
|
|||
|
****************************************************************************/
|
|||
|
void Cmd_Process( char *cmdBuf, int bufLen )
|
|||
|
{
|
|||
|
TcpFrame_S *psBuf = (TcpFrame_S*)cmdBuf ;
|
|||
|
char state ;
|
|||
|
switch( psBuf->cmdCode[1] ) /*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD>ֽ<EFBFBD>*/
|
|||
|
{
|
|||
|
case 0x30: //<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
|||
|
{
|
|||
|
state = RestartCmdProcess( cmdBuf, bufLen ) ;
|
|||
|
break ;
|
|||
|
}
|
|||
|
case 0x31: //Configָ<67><D6B8>
|
|||
|
{
|
|||
|
state = GetConfigCmdProcess( cmdBuf, bufLen ) ;
|
|||
|
break ;
|
|||
|
}
|
|||
|
case 0x32: //IapFlagָ<67><D6B8>
|
|||
|
{
|
|||
|
state = IapFlagCmdProcess( cmdBuf, bufLen ) ;
|
|||
|
break ;
|
|||
|
}
|
|||
|
case 0x33: //RunAppNumָ<6D><D6B8>
|
|||
|
{
|
|||
|
state = RunAppNumCmdProcess( cmdBuf, bufLen) ;
|
|||
|
break ;
|
|||
|
}
|
|||
|
case 0x34: //FtpFolderָ<72><D6B8>
|
|||
|
{
|
|||
|
state = FtpFolderCmdProcess( cmdBuf, bufLen) ;
|
|||
|
break ;
|
|||
|
}
|
|||
|
case 0x35: //FtpUsernameָ<65><D6B8>
|
|||
|
{
|
|||
|
state = FtpUsernameCmdProcess( cmdBuf, bufLen) ;
|
|||
|
break ;
|
|||
|
}
|
|||
|
case 0x36: //FtpPasswordָ<64><D6B8>
|
|||
|
{
|
|||
|
state = FtpPasswordCmdProcess( cmdBuf, bufLen) ;
|
|||
|
break ;
|
|||
|
}
|
|||
|
case 0x37: //FtpIPָ<50><D6B8>
|
|||
|
{
|
|||
|
state = FtpIPCmdProcess( cmdBuf, bufLen) ;
|
|||
|
break ;
|
|||
|
}
|
|||
|
case 0x38: //TcpIPָ<50><D6B8>
|
|||
|
{
|
|||
|
state = TcpIPCmdProcess( cmdBuf, bufLen) ;
|
|||
|
break ;
|
|||
|
}
|
|||
|
case 0x39: //TcpIPָ<50><D6B8>
|
|||
|
{
|
|||
|
state = TcpPortCmdProcess( cmdBuf, bufLen) ;
|
|||
|
break ;
|
|||
|
}
|
|||
|
case 0x40: //<2F><><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>ָ<EFBFBD><D6B8>
|
|||
|
{
|
|||
|
state = VolumeRankCmdProcess() ;
|
|||
|
break ;
|
|||
|
}
|
|||
|
default : //ָ<><D6B8><EFBFBD>Ų<EFBFBD><C5B2>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD>ָ<EFBFBD><D6B8>
|
|||
|
{
|
|||
|
state = 'N' ;
|
|||
|
break ;
|
|||
|
}
|
|||
|
}
|
|||
|
if( state == 'P' ) //ָ<><EFBFBD><EEB8BA><EFBFBD>в<EFBFBD><D0B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD>
|
|||
|
{
|
|||
|
CmdResponse( cmdBuf, paramErr) ;
|
|||
|
}
|
|||
|
else if(state == 'I') //ָ<><D6B8><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
CmdResponse( cmdBuf, formErr) ;
|
|||
|
}
|
|||
|
else if(state == 'N')
|
|||
|
{
|
|||
|
CmdResponse( cmdBuf, noCmdErr) ;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/**************************************************************************************************
|
|||
|
* <EFBFBD><EFBFBD> <EFBFBD>ƣ<EFBFBD> char RestartCmdProcess( char *cmdBuf, int bufLen )
|
|||
|
* ˵ <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param1 *cmdBuf: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ֡<EFBFBD><EFBFBD>
|
|||
|
* @param2 bufLen <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param1 state: ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>S<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>P<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>I<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD> (c0072MAC:31FFD405524E353728902251;10&CMD_RST$X)
|
|||
|
************************************************************************************************/
|
|||
|
char RestartCmdProcess( char *cmdBuf, int bufLen )
|
|||
|
{
|
|||
|
char state ;
|
|||
|
TcpFrame_S *psBuf = (TcpFrame_S*)cmdBuf ;
|
|||
|
if( kmp((&(psBuf->loadHead)+1), "CMD_RST") == 0 ) //LOAD:CMD_RST
|
|||
|
{
|
|||
|
state = 'S' ; //<2F><>־ָ<D6BE><EFBFBD><EEB4A6><EFBFBD>ɹ<EFBFBD>
|
|||
|
CmdResponse( cmdBuf, "*SET* User control device restart!") ; //ͨ<><CDA8>TCP<43>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EEB4A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
vTaskDelay(2*configTICK_RATE_HZ) ; //<2F>ȴ<EFBFBD>2S
|
|||
|
if( pdTRUE == xSemaphoreTake(ec20MutexSemaphore, (TickType_t)5*1000) ) //<2F><><EFBFBD>ܴ<EFBFBD>ʱEC20<32><30>Դ<EFBFBD><D4B4><EFBFBD>ڱ<EFBFBD>ռ<EFBFBD><D5BC>״̬<D7B4><CCAC> 5S<35><53>û<EFBFBD>л<EFBFBD>ȡ<EFBFBD><C8A1>EC20<32><30>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>ǿ<EFBFBD><C7BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
TcpDisconnetc() ;
|
|||
|
//Close_Socket(TCP_CONNECTID0) ; //<2F>Ͽ<EFBFBD>Socket<65><74><EFBFBD><EFBFBD>
|
|||
|
//Deact_Context(TCP_CONTEXTID) ;
|
|||
|
EC20_CLOSE() ;
|
|||
|
}
|
|||
|
RELESE_EC20() ; //<2F>ͷ<EFBFBD>EC20<32><30>Դ
|
|||
|
WriteLogToFlash("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!") ;
|
|||
|
SystemSoftReset() ;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
state = 'P' ; //ָ<><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD>
|
|||
|
}
|
|||
|
return state ;
|
|||
|
}
|
|||
|
|
|||
|
/**************************************************************************************************
|
|||
|
* <EFBFBD><EFBFBD> <EFBFBD>ƣ<EFBFBD> char GetConfigCmdProcess( char *cmdBuf, int bufLen )
|
|||
|
* ˵ <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>GET_IAP<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:<EFBFBD><EFBFBD>ȡ<EFBFBD>洢<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD>flash<EFBFBD><EFBFBD>IAPCONFIG_AREA_ADDR<EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD>IAP<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param1 *cmdBuf: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ֡<EFBFBD><EFBFBD>
|
|||
|
* @param2 bufLen <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param1 state: ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>S<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>P<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>I<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD> (c0072MAC:31FFD405524E353728902251;01&GET_IAP$X)
|
|||
|
************************************************************************************************/
|
|||
|
char GetConfigCmdProcess(char *cmdBuf, int bufLen)
|
|||
|
{
|
|||
|
char state ;
|
|||
|
TcpFrame_S *psBuf = (TcpFrame_S*)cmdBuf ;
|
|||
|
Read_Flash_Byte(IAPCONFIG_AREA_ADDR, uIapFlash.iapFlashBuffer, IAPFLASHCONFIGLEN ) ; //<2F><>uIapFlash<73><68><EFBFBD><EFBFBD>
|
|||
|
if( kmp((&(psBuf->loadHead)+1), "GET_IAP") == 0 ) //LOAD:GET_IAP
|
|||
|
{
|
|||
|
char *backBuf = portMalloc(512) ;
|
|||
|
Query_AppVersion((char*)gateApp.appVers) ;
|
|||
|
snprintf(backBuf, 512, "*GET* IapFlag:[%c]! RunAppNum:[APP%c]! JumpResult:[%c]! BootVers:[%s]! AppVers:[%s]! Csq:[%s]! Ec20Vol:[%s]! \
|
|||
|
SimIccid:[%s]! FtpUsername:[%s]! FtpPassword:[%s]! FtpFolder:[%s]! FtpIP:[%s]! TcpIP:[%s]! TcpPort:[%s]!",
|
|||
|
uIapFlash.sIapFlash.IapFlag, uIapFlash.sIapFlash.RunAppNum, uIapFlash.sIapFlash.JumpResult, uIapFlash.sIapFlash.BootVers, gateApp.appVers,\
|
|||
|
sEc20Param.csq, sEc20Param.ec20Voltage, sEc20Param.simICCID, uIapFlash.sIapFlash.FtpUsername,uIapFlash.sIapFlash.FtpPassword,\
|
|||
|
uIapFlash.sIapFlash.FtpFolder, uIapFlash.sIapFlash.FtpIP, uIapFlash.sIapFlash.TcpIP, uIapFlash.sIapFlash.TcpPort) ;
|
|||
|
CmdResponse( cmdBuf, backBuf) ; //ͨ<><CDA8>TCP<43>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EEB4A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
state = 'S' ; //ָ<><D6B8>ִ<EFBFBD>гɹ<D0B3>
|
|||
|
portFree(backBuf) ;
|
|||
|
}
|
|||
|
else //<2F><><EFBFBD>أ<EFBFBD><D8A3><EFBFBD><EFBFBD>س<EFBFBD><D8B3>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>Ϸ<EFBFBD>
|
|||
|
{
|
|||
|
state = 'I' ; //ָ<><EFBFBD><EEB8BA><EFBFBD>в<EFBFBD><D0B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD>
|
|||
|
}
|
|||
|
return state ;
|
|||
|
}
|
|||
|
|
|||
|
/**************************************************************************************************
|
|||
|
* <EFBFBD><EFBFBD> <EFBFBD>ƣ<EFBFBD> char IapFlagCmdProcess( char *cmdBuf, int bufLen )
|
|||
|
* ˵ <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IapFlag<EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param1 *cmdBuf: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ֡<EFBFBD><EFBFBD>
|
|||
|
* @param2 bufLen<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param1 state: ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>S<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>P<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>I<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD> (c0012MAC:31FFD405524E353728902251;12&1$X)
|
|||
|
************************************************************************************************/
|
|||
|
char IapFlagCmdProcess(char *cmdBuf, int bufLen)
|
|||
|
{
|
|||
|
char state ;
|
|||
|
TcpFrame_S *psBuf = (TcpFrame_S*)cmdBuf ;
|
|||
|
Read_Flash_Byte(IAPCONFIG_AREA_ADDR, uIapFlash.iapFlashBuffer, IAPFLASHCONFIGLEN ) ; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
char *backBuf = (char*)portMalloc(256) ;
|
|||
|
int len = snprintf(backBuf, 256, "*GET* IapFlag:[%c]! ", uIapFlash.sIapFlash.IapFlag) ;
|
|||
|
if((psBuf->cmdCode[0] == 0x31) && (kmp(psBuf->loadLen, "001") == 0) ) //SET<45><54><EFBFBD><EFBFBD>&&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>س<EFBFBD><D8B3><EFBFBD>Ϊ1<CEAA>ֽ<EFBFBD>
|
|||
|
{
|
|||
|
if( IS_IapFlag_ALL_PERIPH( *(&(psBuf->loadHead)+1)) ) //<2F><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD><EFBFBD>Ϸ<EFBFBD>У<EFBFBD><D0A3>
|
|||
|
{
|
|||
|
uIapFlash.sIapFlash.IapFlag = *(&(psBuf->loadHead)+1) ; //<2F><><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>ֵ<EFBFBD><D6B5>uIapFlash.sIapFlash.IapFlag
|
|||
|
Write_Flash_OnePage(IAPCONFIG_AREA_ADDR, uIapFlash.iapFlashBuffer, IAPFLASHCONFIGLEN ) ; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
snprintf((backBuf+len), 256-len, "*SET* IapFlag:[%c]!", uIapFlash.sIapFlash.IapFlag ) ;
|
|||
|
state = 'S' ; //ָ<><D6B8>ִ<EFBFBD>гɹ<D0B3>
|
|||
|
CmdResponse( cmdBuf, backBuf) ; //ͨ<><CDA8>TCP<43>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EEB4A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
state = 'P' ; //ָ<><EFBFBD><EEB8BA><EFBFBD>в<EFBFBD><D0B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD>
|
|||
|
}
|
|||
|
}
|
|||
|
else if((psBuf->cmdCode[0] == 0x30) && (kmp(psBuf->loadLen, "001") == 0) ) //GET<45><54><EFBFBD><EFBFBD>&&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>س<EFBFBD><D8B3><EFBFBD>Ϊ1<CEAA>ֽ<EFBFBD>
|
|||
|
{
|
|||
|
state = 'S' ; //<2F><>ָ<EFBFBD><D6B8>ִ<EFBFBD>гɹ<D0B3>
|
|||
|
CmdResponse( cmdBuf, backBuf) ; //ͨ<><CDA8>TCP<43>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EEB4A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
else //<2F><><EFBFBD>أ<EFBFBD><D8A3><EFBFBD><EFBFBD>س<EFBFBD><D8B3>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>Ϸ<EFBFBD>
|
|||
|
{
|
|||
|
state = 'I' ; //ָ<><EFBFBD><EEB8BA><EFBFBD>в<EFBFBD><D0B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD>
|
|||
|
}
|
|||
|
portFree(backBuf) ;
|
|||
|
return state ;
|
|||
|
}
|
|||
|
|
|||
|
/**************************************************************************************************
|
|||
|
* <EFBFBD><EFBFBD> <EFBFBD>ƣ<EFBFBD> char RunAppNumCmdProcess( char *cmdBuf, int bufLen )
|
|||
|
* ˵ <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>RunAppNum<EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param1 *cmdBuf: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ֡<EFBFBD><EFBFBD>
|
|||
|
* @param2 bufLen<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param1 state: ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>S<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>P<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>I<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD> (c0012MAC:31FFD405524E353728902251;13&1$X)
|
|||
|
************************************************************************************************/
|
|||
|
char RunAppNumCmdProcess( char *cmdBuf, int bufLen )
|
|||
|
{char state ;
|
|||
|
TcpFrame_S *psBuf = (TcpFrame_S*)cmdBuf ;
|
|||
|
Read_Flash_Byte(IAPCONFIG_AREA_ADDR, uIapFlash.iapFlashBuffer, IAPFLASHCONFIGLEN ) ; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
char *backBuf = (char*)portMalloc(256) ;
|
|||
|
Query_AppVersion((char*)gateApp.appVers) ;
|
|||
|
int len = snprintf(backBuf, 256, "*GET* RunAppNum:[APP%c] ! *GET* AppVersion:[%s] !", uIapFlash.sIapFlash.RunAppNum, gateApp.appVers) ;
|
|||
|
if((psBuf->cmdCode[0] == 0x31) && (kmp(psBuf->loadLen, "001") == 0) ) //SET<45><54><EFBFBD><EFBFBD>&&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>س<EFBFBD><D8B3><EFBFBD>Ϊ1<CEAA>ֽ<EFBFBD>
|
|||
|
{
|
|||
|
if( IS_RunAppNum_ALL_PERIPH( *(&(psBuf->loadHead)+1) ) ) //<2F><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD><EFBFBD>Ϸ<EFBFBD>
|
|||
|
{
|
|||
|
uIapFlash.sIapFlash.RunAppNum = *(&(psBuf->loadHead)+1) ; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
Write_Flash_OnePage(IAPCONFIG_AREA_ADDR, uIapFlash.iapFlashBuffer, IAPFLASHCONFIGLEN ) ; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
snprintf((backBuf+len), 256-len, "*SET* RunAppNum:[APP%c]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч!", uIapFlash.sIapFlash.RunAppNum ) ;
|
|||
|
state = 'S' ; //ָ<><D6B8>ִ<EFBFBD>гɹ<D0B3>
|
|||
|
CmdResponse( cmdBuf, backBuf) ; //ͨ<><CDA8>TCP<43>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EEB4A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
else //<2F><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD>
|
|||
|
{
|
|||
|
state = 'P' ; //ָ<><EFBFBD><EEB8BA><EFBFBD>в<EFBFBD><D0B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD>
|
|||
|
}
|
|||
|
}
|
|||
|
else if((psBuf->cmdCode[0] == 0x30) && (kmp(psBuf->loadLen, "001") == 0) ) //GET<45><54><EFBFBD><EFBFBD>&&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>س<EFBFBD><D8B3><EFBFBD>Ϊ1<CEAA>ֽ<EFBFBD>
|
|||
|
{
|
|||
|
state = 'S' ; //<2F><>ָ<EFBFBD><D6B8>ִ<EFBFBD>гɹ<D0B3>
|
|||
|
CmdResponse( cmdBuf, backBuf) ; //ͨ<><CDA8>TCP<43>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EEB4A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
else //<2F><><EFBFBD>أ<EFBFBD><D8A3><EFBFBD><EFBFBD>س<EFBFBD><D8B3>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>Ϸ<EFBFBD>
|
|||
|
{
|
|||
|
state = 'I' ; //ָ<><EFBFBD><EEB8BA><EFBFBD>в<EFBFBD><D0B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD>
|
|||
|
}
|
|||
|
portFree(backBuf) ;
|
|||
|
return state ;
|
|||
|
}
|
|||
|
|
|||
|
/**************************************************************************************************
|
|||
|
* <EFBFBD><EFBFBD> <EFBFBD>ƣ<EFBFBD> char FtpFolderCmdProcess( char *cmdBuf, int bufLen )
|
|||
|
* ˵ <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FtpFolder<EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param1 *cmdBuf: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ֡<EFBFBD><EFBFBD>
|
|||
|
* @param2 bufLen<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param1 state: ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>S<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>P<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>I<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD> (c0042MAC:31FFD405524E353728902251;14&/ftp$X)
|
|||
|
************************************************************************************************/
|
|||
|
char FtpFolderCmdProcess( char *cmdBuf, int bufLen )
|
|||
|
{
|
|||
|
char state ;
|
|||
|
TcpFrame_S *psBuf = (TcpFrame_S*)cmdBuf ;
|
|||
|
unsigned int loadLen = (psBuf->loadLen[0]-0x30)*100 + (psBuf->loadLen[1]-0x30)*10 + (psBuf->loadLen[2]-0x30) ;
|
|||
|
Read_Flash_Byte(IAPCONFIG_AREA_ADDR, uIapFlash.iapFlashBuffer, IAPFLASHCONFIGLEN ) ; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
char *backBuf = (char*)portMalloc(256) ;
|
|||
|
|
|||
|
int len = snprintf(backBuf, 256, "*GET* FtpFolder:[%s]!", uIapFlash.sIapFlash.FtpFolder) ;
|
|||
|
if((psBuf->cmdCode[0] == 0x31) && ( *(&(psBuf->loadHead)+loadLen+1) == '$' ) ) //SET<45><54><EFBFBD><EFBFBD>&&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>س<EFBFBD><D8B3><EFBFBD>У<EFBFBD><D0A3><EFBFBD>ɹ<EFBFBD>
|
|||
|
{
|
|||
|
memset(uIapFlash.sIapFlash.FtpFolder, 0, FOLDER_MAXLEN ) ;
|
|||
|
strncpy(uIapFlash.sIapFlash.FtpFolder, (&(psBuf->loadHead)+1), loadLen) ; //<2F><><EFBFBD>µ<EFBFBD>FtpFolder<65><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD>uIapFlash.sIapFlash.FtpFolder<65><72>
|
|||
|
Write_Flash_OnePage(IAPCONFIG_AREA_ADDR, uIapFlash.iapFlashBuffer, IAPFLASHCONFIGLEN ) ; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
snprintf((backBuf+len), 256-len, "*SET* FtpFolder:[%s]!", uIapFlash.sIapFlash.FtpFolder ) ;
|
|||
|
state = 'S' ; //ָ<><D6B8>ִ<EFBFBD>гɹ<D0B3>
|
|||
|
CmdResponse( cmdBuf, backBuf) ; //ͨ<><CDA8>TCP<43>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EEB4A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
else if((psBuf->cmdCode[0] == 0x30) && ( *(&(psBuf->loadHead)+loadLen+1) == '$' ) ) //GET<45><54><EFBFBD><EFBFBD>&&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>س<EFBFBD><D8B3><EFBFBD>У<EFBFBD><D0A3><EFBFBD>ɹ<EFBFBD>
|
|||
|
{
|
|||
|
state = 'S' ; //<2F><>ָ<EFBFBD><D6B8>ִ<EFBFBD>гɹ<D0B3>
|
|||
|
CmdResponse( cmdBuf, backBuf) ; //ͨ<><CDA8>TCP<43>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EEB4A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
else //<2F><><EFBFBD>أ<EFBFBD><D8A3><EFBFBD><EFBFBD>س<EFBFBD><D8B3>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>Ϸ<EFBFBD>
|
|||
|
{
|
|||
|
state = 'I' ; //ָ<><EFBFBD><EEB8BA><EFBFBD>в<EFBFBD><D0B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD>
|
|||
|
}
|
|||
|
portFree(backBuf) ;
|
|||
|
return state ;
|
|||
|
}
|
|||
|
|
|||
|
/**************************************************************************************************
|
|||
|
* <EFBFBD><EFBFBD> <EFBFBD>ƣ<EFBFBD> char FtpUsernameCmdProcess( char *cmdBuf, int bufLen )
|
|||
|
* ˵ <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FtpUsername<EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param1 *cmdBuf: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ֡<EFBFBD><EFBFBD>
|
|||
|
* @param2 bufLen<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param1 state: ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>S<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>P<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>I<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD> (c0032MAC:31FFD405524E353728902251;15&ABM$X)
|
|||
|
************************************************************************************************/
|
|||
|
char FtpUsernameCmdProcess( char *cmdBuf, int bufLen )
|
|||
|
{
|
|||
|
char state ;
|
|||
|
TcpFrame_S *psBuf = (TcpFrame_S*)cmdBuf ;
|
|||
|
unsigned int loadLen = (psBuf->loadLen[0]-0x30)*100 + (psBuf->loadLen[1]-0x30)*10 + (psBuf->loadLen[2]-0x30) ;
|
|||
|
Read_Flash_Byte(IAPCONFIG_AREA_ADDR, uIapFlash.iapFlashBuffer, IAPFLASHCONFIGLEN ) ; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
char *backBuf = (char*)portMalloc(256) ;
|
|||
|
|
|||
|
int len = snprintf(backBuf, 256, "*GET* FtpUsername:[%s]!", uIapFlash.sIapFlash.FtpUsername) ;
|
|||
|
if((psBuf->cmdCode[0] == 0x31) && ( *(&(psBuf->loadHead)+loadLen+1) == '$' ) ) //SET<45><54><EFBFBD><EFBFBD>&&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>س<EFBFBD><D8B3><EFBFBD>У<EFBFBD><D0A3><EFBFBD>ɹ<EFBFBD>
|
|||
|
{
|
|||
|
memset(uIapFlash.sIapFlash.FtpUsername, 0, USERNAME_MAXLEN ) ;
|
|||
|
strncpy(uIapFlash.sIapFlash.FtpUsername, (&(psBuf->loadHead)+1), loadLen) ; //<2F><><EFBFBD>µ<EFBFBD>FtpUsername<6D><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>uIapFlash.sIapFlash.FtpUsername<6D><65>
|
|||
|
Write_Flash_OnePage(IAPCONFIG_AREA_ADDR, uIapFlash.iapFlashBuffer, IAPFLASHCONFIGLEN ) ; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
snprintf((backBuf+len), 256-len, "*SET* FtpUsername:[%s]!", uIapFlash.sIapFlash.FtpUsername ) ;
|
|||
|
state = 'S' ; //ָ<><D6B8>ִ<EFBFBD>гɹ<D0B3>
|
|||
|
CmdResponse( cmdBuf, backBuf) ; //ͨ<><CDA8>TCP<43>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EEB4A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
else if((psBuf->cmdCode[0] == 0x30) && ( *(&(psBuf->loadHead)+loadLen+1) == '$' ) ) //GET<45><54><EFBFBD><EFBFBD>&&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>س<EFBFBD><D8B3><EFBFBD>У<EFBFBD><D0A3><EFBFBD>ɹ<EFBFBD>
|
|||
|
{
|
|||
|
state = 'S' ; //<2F><>ָ<EFBFBD><D6B8>ִ<EFBFBD>гɹ<D0B3>
|
|||
|
CmdResponse( cmdBuf, backBuf) ; //ͨ<><CDA8>TCP<43>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EEB4A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
else //<2F><><EFBFBD>أ<EFBFBD><D8A3><EFBFBD><EFBFBD>س<EFBFBD><D8B3>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>Ϸ<EFBFBD>
|
|||
|
{
|
|||
|
state = 'I' ; //ָ<><EFBFBD><EEB8BA><EFBFBD>в<EFBFBD><D0B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD>
|
|||
|
}
|
|||
|
portFree(backBuf) ;
|
|||
|
return state ;
|
|||
|
}
|
|||
|
|
|||
|
/**************************************************************************************************
|
|||
|
* <EFBFBD><EFBFBD> <EFBFBD>ƣ<EFBFBD> char FtpPasswordCmdProcess( char *cmdBuf, int bufLen )
|
|||
|
* ˵ <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FtpPassword<EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param1 *cmdBuf: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ֡<EFBFBD><EFBFBD>
|
|||
|
* @param2 bufLen<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param1 state: ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>S<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>P<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>I<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD> (c0130MAC:35FFDC054D52323238780843;16&Shop344794749$X)
|
|||
|
************************************************************************************************/
|
|||
|
char FtpPasswordCmdProcess( char *cmdBuf, int bufLen )
|
|||
|
{
|
|||
|
char state ;
|
|||
|
TcpFrame_S *psBuf = (TcpFrame_S*)cmdBuf ;
|
|||
|
unsigned int loadLen = (psBuf->loadLen[0]-0x30)*100 + (psBuf->loadLen[1]-0x30)*10 + (psBuf->loadLen[2]-0x30) ;
|
|||
|
Read_Flash_Byte(IAPCONFIG_AREA_ADDR, uIapFlash.iapFlashBuffer, IAPFLASHCONFIGLEN ) ; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
char *backBuf = (char*)portMalloc(256) ;
|
|||
|
|
|||
|
int len = snprintf(backBuf, 256, "*GET* FtpPassword:[%s]!", uIapFlash.sIapFlash.FtpPassword) ;
|
|||
|
if((psBuf->cmdCode[0] == 0x31) && ( *(&(psBuf->loadHead)+loadLen+1) == '$' ) ) //SET<45><54><EFBFBD><EFBFBD>&&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>س<EFBFBD><D8B3><EFBFBD>У<EFBFBD><D0A3><EFBFBD>ɹ<EFBFBD>
|
|||
|
{
|
|||
|
memset(uIapFlash.sIapFlash.FtpPassword, 0, PASSWORD_MAXLEN ) ;
|
|||
|
strncpy(uIapFlash.sIapFlash.FtpPassword, (&(psBuf->loadHead)+1), loadLen) ; //<2F><><EFBFBD>µ<EFBFBD>FtpPassword<72><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD>uIapFlash.sIapFlash.FtpPassword<72><64>
|
|||
|
Write_Flash_OnePage(IAPCONFIG_AREA_ADDR, uIapFlash.iapFlashBuffer, IAPFLASHCONFIGLEN ) ; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
snprintf((backBuf+len), 256-len, "*SET* FtpPassword:[%s]!", uIapFlash.sIapFlash.FtpPassword ) ;
|
|||
|
state = 'S' ; //ָ<><D6B8>ִ<EFBFBD>гɹ<D0B3>
|
|||
|
CmdResponse( cmdBuf, backBuf) ; //ͨ<><CDA8>TCP<43>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EEB4A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
else if((psBuf->cmdCode[0] == 0x30) && ( *(&(psBuf->loadHead)+loadLen+1) == '$' ) ) //GET<45><54><EFBFBD><EFBFBD>&&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>س<EFBFBD><D8B3><EFBFBD>У<EFBFBD><D0A3><EFBFBD>ɹ<EFBFBD>
|
|||
|
{
|
|||
|
state = 'S' ; //<2F><>ָ<EFBFBD><D6B8>ִ<EFBFBD>гɹ<D0B3>
|
|||
|
CmdResponse( cmdBuf, backBuf) ; //ͨ<><CDA8>TCP<43>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EEB4A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
else //<2F><><EFBFBD>أ<EFBFBD><D8A3><EFBFBD><EFBFBD>س<EFBFBD><D8B3>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>Ϸ<EFBFBD>
|
|||
|
{
|
|||
|
state = 'I' ; //ָ<><EFBFBD><EEB8BA><EFBFBD>в<EFBFBD><D0B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD>
|
|||
|
}
|
|||
|
portFree(backBuf) ;
|
|||
|
return state ;
|
|||
|
}
|
|||
|
|
|||
|
/**************************************************************************************************
|
|||
|
* <EFBFBD><EFBFBD> <EFBFBD>ƣ<EFBFBD> char FtpIPCmdProcess( char *cmdBuf, int bufLen )
|
|||
|
* ˵ <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FtpIP<EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param1 *cmdBuf: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ֡<EFBFBD><EFBFBD>
|
|||
|
* @param2 bufLen<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param1 state: ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>S<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>P<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>I<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD> (c0120MAC:35FFDC054D52323238780843;17&121.41.79.87$X)
|
|||
|
************************************************************************************************/
|
|||
|
char FtpIPCmdProcess( char *cmdBuf, int bufLen )
|
|||
|
{
|
|||
|
char state ;
|
|||
|
TcpFrame_S *psBuf = (TcpFrame_S*)cmdBuf ;
|
|||
|
unsigned int loadLen = (psBuf->loadLen[0]-0x30)*100 + (psBuf->loadLen[1]-0x30)*10 + (psBuf->loadLen[2]-0x30) ;
|
|||
|
Read_Flash_Byte(IAPCONFIG_AREA_ADDR, uIapFlash.iapFlashBuffer, IAPFLASHCONFIGLEN ) ; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
char *backBuf = (char*)portMalloc(256) ;
|
|||
|
|
|||
|
int len = snprintf(backBuf, 256, "*GET* FtpIP:[%s]!", uIapFlash.sIapFlash.FtpIP) ;
|
|||
|
if((psBuf->cmdCode[0] == 0x31) && ( *(&(psBuf->loadHead)+loadLen+1) == '$' ) ) //SET<45><54><EFBFBD><EFBFBD>&&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>س<EFBFBD><D8B3><EFBFBD>У<EFBFBD><D0A3><EFBFBD>ɹ<EFBFBD>
|
|||
|
{
|
|||
|
memset(uIapFlash.sIapFlash.FtpIP, 0, MAX_IP_LEN ) ;
|
|||
|
strncpy(uIapFlash.sIapFlash.FtpIP, (&(psBuf->loadHead)+1), loadLen) ; //<2F><><EFBFBD>µ<EFBFBD>FtpIP<49><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>uIapFlash.sIapFlash.FtpIP<49><50>
|
|||
|
Write_Flash_OnePage(IAPCONFIG_AREA_ADDR, uIapFlash.iapFlashBuffer, IAPFLASHCONFIGLEN ) ; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
snprintf((backBuf+len), 256-len, "*SET* FtpIP:[%s]!", uIapFlash.sIapFlash.FtpIP ) ;
|
|||
|
state = 'S' ; //ָ<><D6B8>ִ<EFBFBD>гɹ<D0B3>
|
|||
|
CmdResponse( cmdBuf, backBuf) ; //ͨ<><CDA8>TCP<43>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EEB4A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
else if((psBuf->cmdCode[0] == 0x30) && ( *(&(psBuf->loadHead)+loadLen+1) == '$' ) ) //GET<45><54><EFBFBD><EFBFBD>&&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>س<EFBFBD><D8B3><EFBFBD>У<EFBFBD><D0A3><EFBFBD>ɹ<EFBFBD>
|
|||
|
{
|
|||
|
state = 'S' ; //<2F><>ָ<EFBFBD><D6B8>ִ<EFBFBD>гɹ<D0B3>
|
|||
|
CmdResponse( cmdBuf, backBuf) ; //ͨ<><CDA8>TCP<43>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EEB4A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
else //<2F><><EFBFBD>أ<EFBFBD><D8A3><EFBFBD><EFBFBD>س<EFBFBD><D8B3>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>Ϸ<EFBFBD>
|
|||
|
{
|
|||
|
state = 'I' ; //ָ<><EFBFBD><EEB8BA><EFBFBD>в<EFBFBD><D0B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD>
|
|||
|
}
|
|||
|
portFree(backBuf) ;
|
|||
|
return state ;
|
|||
|
}
|
|||
|
|
|||
|
/**************************************************************************************************
|
|||
|
* <EFBFBD><EFBFBD> <EFBFBD>ƣ<EFBFBD> char TcpIPCmdProcess( char *cmdBuf, int bufLen )
|
|||
|
* ˵ <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>TcpIP<EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param1 *cmdBuf: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ֡<EFBFBD><EFBFBD>
|
|||
|
* @param2 bufLen<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param1 state: ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>S<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>P<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>I<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD> (c0120MAC:35FFDC054D52323238780843;18&121.41.79.87$X)
|
|||
|
************************************************************************************************/
|
|||
|
char TcpIPCmdProcess( char *cmdBuf, int bufLen )
|
|||
|
{
|
|||
|
char state ;
|
|||
|
TcpFrame_S *psBuf = (TcpFrame_S*)cmdBuf ;
|
|||
|
unsigned int loadLen = (psBuf->loadLen[0]-0x30)*100 + (psBuf->loadLen[1]-0x30)*10 + (psBuf->loadLen[2]-0x30) ;
|
|||
|
Read_Flash_Byte(IAPCONFIG_AREA_ADDR, uIapFlash.iapFlashBuffer, IAPFLASHCONFIGLEN ) ; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
char *backBuf = (char*)portMalloc(256) ;
|
|||
|
|
|||
|
int len = snprintf(backBuf, 256, "*GET* TcpIP:[%s]!", uIapFlash.sIapFlash.TcpIP) ;
|
|||
|
if((psBuf->cmdCode[0] == 0x31) && ( *(&(psBuf->loadHead)+loadLen+1) == '$' ) ) //SET<45><54><EFBFBD><EFBFBD>&&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>س<EFBFBD><D8B3><EFBFBD>У<EFBFBD><D0A3><EFBFBD>ɹ<EFBFBD>
|
|||
|
{
|
|||
|
memset(uIapFlash.sIapFlash.TcpIP, 0, MAX_IP_LEN ) ;
|
|||
|
strncpy(uIapFlash.sIapFlash.TcpIP, (&(psBuf->loadHead)+1), loadLen) ; //<2F><><EFBFBD>µ<EFBFBD>TcpIP<49><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>uIapFlash.sIapFlash.TcpIP<49><50>
|
|||
|
Write_Flash_OnePage(IAPCONFIG_AREA_ADDR, uIapFlash.iapFlashBuffer, IAPFLASHCONFIGLEN ) ; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
snprintf((backBuf+len), 256-len, "*SET* TcpIP:[%s]!", uIapFlash.sIapFlash.TcpIP ) ;
|
|||
|
state = 'S' ; //ָ<><D6B8>ִ<EFBFBD>гɹ<D0B3>
|
|||
|
CmdResponse( cmdBuf, backBuf) ; //ͨ<><CDA8>TCP<43>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EEB4A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
else if((psBuf->cmdCode[0] == 0x30) && ( *(&(psBuf->loadHead)+loadLen+1) == '$' ) ) //GET<45><54><EFBFBD><EFBFBD>&&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>س<EFBFBD><D8B3><EFBFBD>У<EFBFBD><D0A3><EFBFBD>ɹ<EFBFBD>
|
|||
|
{
|
|||
|
state = 'S' ; //<2F><>ָ<EFBFBD><D6B8>ִ<EFBFBD>гɹ<D0B3>
|
|||
|
CmdResponse( cmdBuf, backBuf) ; //ͨ<><CDA8>TCP<43>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EEB4A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
else //<2F><><EFBFBD>أ<EFBFBD><D8A3><EFBFBD><EFBFBD>س<EFBFBD><D8B3>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>Ϸ<EFBFBD>
|
|||
|
{
|
|||
|
state = 'I' ; //ָ<><EFBFBD><EEB8BA><EFBFBD>в<EFBFBD><D0B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD>
|
|||
|
}
|
|||
|
portFree(backBuf) ;
|
|||
|
return state ;
|
|||
|
}
|
|||
|
|
|||
|
/**************************************************************************************************
|
|||
|
* <EFBFBD><EFBFBD> <EFBFBD>ƣ<EFBFBD> char TcpPortCmdProcess( char *cmdBuf, int bufLen )
|
|||
|
* ˵ <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>TcpPort<EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param1 *cmdBuf: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ֡<EFBFBD><EFBFBD>
|
|||
|
* @param2 bufLen<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param1 state: ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>S<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>P<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>I<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD> (c0040MAC:35FFDC054D52323238780843;19&7000$X)
|
|||
|
************************************************************************************************/
|
|||
|
char TcpPortCmdProcess( char *cmdBuf, int bufLen )
|
|||
|
{
|
|||
|
char state ;
|
|||
|
TcpFrame_S *psBuf = (TcpFrame_S*)cmdBuf ;
|
|||
|
unsigned int loadLen = (psBuf->loadLen[0]-0x30)*100 + (psBuf->loadLen[1]-0x30)*10 + (psBuf->loadLen[2]-0x30) ;
|
|||
|
Read_Flash_Byte(IAPCONFIG_AREA_ADDR, uIapFlash.iapFlashBuffer, IAPFLASHCONFIGLEN ) ; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
char *backBuf = (char*)portMalloc(256) ;
|
|||
|
|
|||
|
int len = snprintf(backBuf, 256, "*GET* TcpPort:[%s]!", uIapFlash.sIapFlash.TcpPort) ;
|
|||
|
if((psBuf->cmdCode[0] == 0x31) && ( *(&(psBuf->loadHead)+loadLen+1) == '$' ) ) //SET<45><54><EFBFBD><EFBFBD>&&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>س<EFBFBD><D8B3><EFBFBD>У<EFBFBD><D0A3><EFBFBD>ɹ<EFBFBD>
|
|||
|
{
|
|||
|
memset(uIapFlash.sIapFlash.TcpPort, 0, MAX_IP_LEN ) ;
|
|||
|
strncpy(uIapFlash.sIapFlash.TcpPort, (&(psBuf->loadHead)+1), loadLen) ; //<2F><><EFBFBD>µ<EFBFBD>TcpPort<72><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD>uIapFlash.sIapFlash.TcpPort<72><74>
|
|||
|
Write_Flash_OnePage(IAPCONFIG_AREA_ADDR, uIapFlash.iapFlashBuffer, IAPFLASHCONFIGLEN ) ; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
snprintf((backBuf+len), 256-len, "*SET* TcpPort:[%s]!", uIapFlash.sIapFlash.TcpPort ) ;
|
|||
|
state = 'S' ; //ָ<><D6B8>ִ<EFBFBD>гɹ<D0B3>
|
|||
|
CmdResponse( cmdBuf, backBuf) ; //ͨ<><CDA8>TCP<43>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EEB4A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
else if((psBuf->cmdCode[0] == 0x30) && ( *(&(psBuf->loadHead)+loadLen+1) == '$' ) ) //GET<45><54><EFBFBD><EFBFBD>&&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>س<EFBFBD><D8B3><EFBFBD>У<EFBFBD><D0A3><EFBFBD>ɹ<EFBFBD>
|
|||
|
{
|
|||
|
state = 'S' ; //<2F><>ָ<EFBFBD><D6B8>ִ<EFBFBD>гɹ<D0B3>
|
|||
|
CmdResponse( cmdBuf, backBuf) ; //ͨ<><CDA8>TCP<43>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EEB4A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
else //<2F><><EFBFBD>أ<EFBFBD><D8A3><EFBFBD><EFBFBD>س<EFBFBD><D8B3>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>Ϸ<EFBFBD>
|
|||
|
{
|
|||
|
state = 'I' ; //ָ<><EFBFBD><EEB8BA><EFBFBD>в<EFBFBD><D0B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD>
|
|||
|
}
|
|||
|
portFree(backBuf) ;
|
|||
|
return state ;
|
|||
|
}
|
|||
|
|
|||
|
char VolumeRankCmdProcess(void)
|
|||
|
{
|
|||
|
return 'S' ;
|
|||
|
}
|
|||
|
|
|||
|
/**************************************************************************************************
|
|||
|
* <EFBFBD><EFBFBD> <EFBFBD>ƣ<EFBFBD> RunResult CmdResponse(char *cmdBuf, char *format, ...)
|
|||
|
* ˵ <EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ӳ<EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><EFBFBD>յ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param1 pCmdcode: <EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param2 char *format,... <EFBFBD>ɱ<EFBFBD><EFBFBD>α<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param3 ... <EFBFBD><EFBFBD><EFBFBD>ɱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param1 status: RunResultö<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD>(R0193MAC:35FFDC054D52323238780843;00&*GET* IapFlag:[0]! $X)
|
|||
|
* ע <EFBFBD>⣺ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>س<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>TCP_LOADBUF_MAXLEN
|
|||
|
************************************************************************************************************/
|
|||
|
RunResult CmdResponse(char *cmdBuf, char *backBuf)
|
|||
|
{
|
|||
|
RunResult status = RUNOK ;
|
|||
|
TcpFrame_S *psBuf = (TcpFrame_S*)cmdBuf ;
|
|||
|
static uint8_t counter = 0x30 ;
|
|||
|
char *upDataBuf = (char*)portMalloc(TCP_LOADBUF_MAXLEN+sizeof(TcpFrame_S)+32) ; //<2F><><EFBFBD><EFBFBD><EFBFBD>ڴ泤<DAB4><E6B3A4>Ϊ<EFBFBD><CEAA><EFBFBD>س<EFBFBD><D8B3><EFBFBD>+TcpFrame_S<5F>ṹ<EFBFBD>峤<EFBFBD><E5B3A4>
|
|||
|
TcpFrame_S *sTcpFrameData = (TcpFrame_S *)upDataBuf ; //tcp<63><70><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD>
|
|||
|
int outLen = snprintf(&(sTcpFrameData->loadHead)+1 , TCP_LOADBUF_MAXLEN, "%s", backBuf ) ; //<2F><><EFBFBD><EFBFBD>Ϊֹ<CEAA><D6B9><EFBFBD><EFBFBD><EFBFBD>еIJ<D0B5><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD>ܵ<EFBFBD>upDataBuf<75><66>
|
|||
|
if((outLen<=0)||( outLen > TCP_LOADBUF_MAXLEN))
|
|||
|
{
|
|||
|
ErrorLogPrintf("%s,%d:upDataBuf spillover<65><72>",__FILE__, __LINE__) ;
|
|||
|
portFree(upDataBuf) ;
|
|||
|
return RUNERR ;
|
|||
|
}
|
|||
|
sTcpFrameData->head = '(' ;
|
|||
|
sTcpFrameData->loadLen[0] = outLen/100 + 0x30;
|
|||
|
sTcpFrameData->loadLen[1] = outLen%100/10 + 0x30 ;
|
|||
|
sTcpFrameData->loadLen[2] = outLen%10 + 0x30;
|
|||
|
sTcpFrameData->frameNum = counter ;
|
|||
|
counter ++ ;
|
|||
|
if( counter > 0x39 ) //<2F><>ֹcounter<65>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
counter = 0x30 ;
|
|||
|
}
|
|||
|
strncpy(sTcpFrameData->macHead, "MAC:", 4) ;
|
|||
|
GetDeviceMacAddress(sTcpFrameData->macid, STRMACID) ;
|
|||
|
sTcpFrameData->macTail = ';' ;
|
|||
|
memcpy(sTcpFrameData->cmdCode, psBuf->cmdCode, 2) ;
|
|||
|
sTcpFrameData->loadHead = '&' ;
|
|||
|
|
|||
|
if( psBuf->frameType == TCPCMDFRAME ) //TCP server<65>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
sTcpFrameData->frameType = TCPCMDBACKFRAME ;
|
|||
|
strncat(upDataBuf, "$X)", 3) ; //TcpFrame_S<5F>ṹ<EFBFBD><E1B9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD>ƴ<EFBFBD>ӵ<EFBFBD> upDataBufβ<66><CEB2>
|
|||
|
if( RW_OK != InsertQueueMemData(&sTcp0Queue, upDataBuf, strlen(upDataBuf)))
|
|||
|
{
|
|||
|
ErrorLogPrintf("%s,%d:sTcp0Queue spillover<65><72>", __FILE__, __LINE__) ;
|
|||
|
}
|
|||
|
}
|
|||
|
else //COM<4F><4D>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
sTcpFrameData->frameType = COMCMDBACKFRAME ;
|
|||
|
strncat(upDataBuf, "$X)", 3) ; //TcpFrame_S<5F>ṹ<EFBFBD><E1B9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD>ƴ<EFBFBD>ӵ<EFBFBD> upDataBufβ<66><CEB2>
|
|||
|
//UARTx_SendData(UART_DEBUG, upDataBuf, strlen(upDataBuf)+1) ;
|
|||
|
AppLogPrintf(upDataBuf) ;
|
|||
|
}
|
|||
|
portFree(upDataBuf) ;
|
|||
|
|
|||
|
return (status) ;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|