📄 gsmtask.c
字号:
/****************************************************************
** *
** FILE : GsmTask.C *
** COPYRIGHT : (c) 2001 .Xiamen Yaxon NetWork CO.LTD *
** *
** *
** By : CCH 2002.1.15 *
****************************************************************/
#define GSMTASK_GLOBALS
#include "includes.h"
#include "bsp.h"
#include "message.h"
#include "tools.h"
#include "stream.h"
#include "portdrv.h"
#include "public.h"
#include "systask.h"
#include "gsmtask.h"
#include "dlcs.h"
#include "at_core.h"
#include "at_recv.h"
#include "at_trans.h"
#include "at_set.h"
#include "at_sm.h"
#include "at_voice.h"
#include "sm_list.h"
#include "sm_recv.h"
#include "phonedrv.h"
#include "monitor.h"
#include "rx_frame.h"
#include "autodial.h"
#include "callrht.h"
#include "gprsdrv.h"
#include "position.h"
#include "watchdog.h"
#include "systask.h"
#if EN_HANDSET > 0
#include "handset.h"
#endif
#include "zprint.h"
#define SIZE_MSGBUF 20
static OS_QMSG MsgBuf[SIZE_MSGBUF];
static OS_STK GsmTaskStack[STACK_GSMTASK];
static INT8U wdgid;
/*
********************************************************************************
* Function: ScheduleATCmd
********************************************************************************
*/
static void ScheduleATCmd(void)
{
if (IsSendingSM()) {
AT_SMEntry();
AT_SetEntry();
} else if (AT_CoreHaveTask()) {
AT_CoreEntry();
} else {
AT_SetEntry();
AT_VoiceEntry();
AT_SMEntry();
}
}
/*
********************************************************************************
* Handler: MSG_ATTRANS_FREE
********************************************************************************
*/
static void HdlMsg_ATTRANS_FREE(void)
{
ScheduleATCmd();
}
/*
********************************************************************************
* Handler: MSG_ATVOICE_TSK
********************************************************************************
*/
static void HdlMsg_ATVOICE_TSK(void)
{
ScheduleATCmd();
}
/*
********************************************************************************
* Handler: MSG_ATSET_TSK
********************************************************************************
*/
static void HdlMsg_ATSET_TSK(void)
{
ScheduleATCmd();
}
/*
********************************************************************************
* Handler: MSG_ATSM_TSK
********************************************************************************
*/
static void HdlMsg_ATSM_TSK(void)
{
ScheduleATCmd();
}
/*
********************************************************************************
* Handler: MSG_ATSM_RESULT
********************************************************************************
*/
static void HdlMsg_ATSM_RESULT(void)
{
#if DEBUG_UARTNo_GSMSTATUS <= 3
if (GsmCurMsg.LMsgPara == _SUCCESS) {
PrintFromUART(DEBUG_UARTNo_GSMSTATUS, "<send SM success>\n");
} else {
PrintFromUART(DEBUG_UARTNo_GSMSTATUS, "<send SM error>\n");
}
#endif
}
/*
********************************************************************************
* Handler: MSG_ATSM_SENDSHORTMSG
********************************************************************************
*/
static void HdlMsg_ATSM_SENDSHORTMSG(void)
{
StartFlashPort(PORT_LEDGREEN, 7, 3, 3, 0); /* indicate sending short message */
}
/*
********************************************************************************
* Handler: MSG_ATCORE_TSK
********************************************************************************
*/
static void HdlMsg_ATCORE_TSK(void)
{
ScheduleATCmd();
}
/*
********************************************************************************
* Handler: MSG_ATCORE_RESET
********************************************************************************
*/
static void HdlMsg_ATCORE_RESET(void)
{
ResetDLCS();
ResetAT_Recv();
ResetAT_SM();
ResetAT_Voice();
ResetPhoneDrv();
RemovePermnentPort(PORT_LEDGREEN);
InstallPermnentPort(PORT_LEDRED, 2, 20);
}
/*
********************************************************************************
* Handler: MSG_ATCORE_INIT
********************************************************************************
*/
static void HdlMsg_ATCORE_INIT(void)
{
ScheduleATCmd();
}
/*
********************************************************************************
* Handler: MSG_ATCORE_ENDINIT
********************************************************************************
*/
static void HdlMsg_ATCORE_ENDINIT(void)
{
ScheduleATCmd();
#if DEBUG_UARTNo_GSMSTATUS <= 3
PrintFromUART(DEBUG_UARTNo_GSMSTATUS, "<init gsm is over>\n");
#endif
}
static void Hdl_Phone_InitPara(void)
{
InitPhoneCOMPara();
}
/*
********************************************************************************
* Handler: MSG_ATCORE_SIGNAL
********************************************************************************
*/
static void HdlMsg_ATCORE_SIGNAL(void)
{
#if EN_HANDSET > 0
if (ComType == USE_HST) {
OSQPost(HandsetMsgQue, MSG_HANDSET_SIGNAL, 0, 0);
}
#endif
}
/*
********************************************************************************
* Handler: MSG_ATCORE_DETECTSIM
********************************************************************************
*/
static void HdlMsg_ATCORE_DETECTSIM(void)
{
#if DEBUG_UARTNo_GSMSTATUS <= 3
PrintFromUART(DEBUG_UARTNo_GSMSTATUS, "<detect SIM card>\n");
#endif
#if EN_HANDSET > 0
if (ComType == USE_HST) {
OSQPost(HandsetMsgQue, MSG_HANDSET_SIMCARD, 0, 0);
}
#endif
}
/*
********************************************************************************
* Handler: MSG_ATCORE_POWERDOWNGSM
********************************************************************************
*/
static void HdlMsg_ATCORE_POWERDOWNGSM(void)
{
#if DEBUG_UARTNo_GSMSTATUS <= 3
PrintFromUART(DEBUG_UARTNo_GSMSTATUS, "<power down gsm>\n");
#endif
}
/*
********************************************************************************
* Handler: MSG_ATCORE_POWERUPGSM
********************************************************************************
*/
static void HdlMsg_ATCORE_POWERUPGSM(void)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -