/*******************************************************************************
|
* File Name : MT571XTEMP.c
|
* Description :
|
* Author : hido.ltd
|
*******************************************************************************/
|
|
/*******************************************************************************
|
* Include Files *
|
*******************************************************************************/
|
#include "MT571XTEMP.h"
|
|
#include "string.h"
|
#include "stdlib.h"
|
#include "Module.h"
|
#include "Module.h"
|
#include "MT571XDriver.h"
|
#include "MT571XFSM.h"
|
#include "HIDO_Util.h"
|
#include "HIDO_FSM.h"
|
#include "HIDO_Timer.h"
|
#include "HIDO_ATLite.h"
|
#include "HIDO_Debug.h"
|
#include "ATConfig.h"
|
|
/*******************************************************************************
|
* Macro *
|
*******************************************************************************/
|
|
/*******************************************************************************
|
* Type Definition *
|
*******************************************************************************/
|
|
/*******************************************************************************
|
* Local Variable *
|
*******************************************************************************/
|
HIDO_FSM_DETACHED_STATE(MT571XTEMP)
|
|
/*******************************************************************************
|
* Local Function Declaration *
|
*******************************************************************************/
|
|
/*******************************************************************************
|
* Local Function *
|
*******************************************************************************/
|
/*******************************************************************************
|
* State Name : MT571XTEMP
|
* Parent State :
|
* Description :
|
* Author : hido.ltd
|
*******************************************************************************/
|
HIDO_FSM_DETACHED_STATE_IMPLEMENT(MT571XTEMP, HIDO_NULL, HIDO_NULL)
|
{
|
static const HIDO_StateStruct *l_pstAfterState = HIDO_NULL;
|
HIDO_ATLiteDeviceStruct *_pstATDevice = (HIDO_ATLiteDeviceStruct *) _pstFSM->m_pPrivateData;
|
|
switch (_u32Event)
|
{
|
case HIDO_EVENT_ENTRY:
|
{
|
HIDO_StateArgStruct *pstStateArg = (HIDO_StateArgStruct *)_pArg;
|
|
l_pstAfterState = pstStateArg->m_pstAfterState;
|
|
HIDO_ATLiteCmdSend(_pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+QTEMP\r\n");
|
break;
|
}
|
case HIDO_EVENT_EXIT:
|
{
|
HIDO_ATLiteCmdSendOver(_pstATDevice);
|
break;
|
}
|
case HIDO_AT_EVENT_OK:
|
case HIDO_AT_EVENT_ERROR:
|
{
|
HIDO_FSMStateChange(_pstFSM, l_pstAfterState, HIDO_NULL);
|
break;
|
}
|
case MT571X_EVENT_QTEMP:
|
{
|
/* +TEMP: 0,31 */
|
HIDO_UINT32 u32TEMPResult = 0;
|
HIDO_DataStruct *pstData = (HIDO_DataStruct *) _pArg;
|
|
if (HIDO_UtilParseFormat((HIDO_UINT8 *) pstData->m_pData, pstData->m_u32Len, "+QTEMP: \"soc-thermal\",\"%d\"\r\n",
|
&u32TEMPResult)!= 1)
|
{
|
break;
|
}
|
|
Module_SocTempResult(u32TEMPResult);
|
|
break;
|
}
|
default:
|
{
|
return HIDO_EVENT_NO_PROC;
|
}
|
}
|
|
return HIDO_EVENT_OK;
|
}
|
|
/*******************************************************************************
|
* Global Function *
|
*******************************************************************************/
|
|
/*******************************************************************************
|
* Function Name : MT571XTEMP_Poll
|
* Description :
|
* Input :
|
* Output :
|
* Return :
|
* Author : hido.ltd
|
*******************************************************************************/
|
HIDO_INT32 MT571XTEMP_Poll(HIDO_ATLiteDeviceStruct *_pstATDevice)
|
{
|
if (Module_SocTempNeedRequest() == HIDO_TRUE)
|
{
|
return MT571XTEMP_Get(_pstATDevice);
|
}
|
|
return HIDO_ERR;
|
}
|
|
/*******************************************************************************
|
* Function Name : MT571XTEMP_Get
|
* Description :
|
* Input :
|
* Output :
|
* Return :
|
* Author : hido.ltd
|
*******************************************************************************/
|
HIDO_INT32 MT571XTEMP_Get(HIDO_ATLiteDeviceStruct *_pstATDevice)
|
{
|
HIDO_StateArgStruct stStateArg;
|
|
stStateArg.m_pArg = HIDO_NULL;
|
stStateArg.m_pstAfterState = _pstATDevice->m_pstFSM->m_pstCurrentState;
|
HIDO_FSM_DETACHED_STATE_SETTLE(MT571XTEMP, _pstATDevice->m_pstFSM->m_pstCurrentState->m_pstParent, HIDO_NULL);
|
HIDO_FSMStateChange(_pstATDevice->m_pstFSM, HIDO_FSM_STATE(MT571XTEMP), &stStateArg);
|
|
return HIDO_OK;
|
}
|