⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gsmtask.c

📁 在ARM7和UC/OSII的平台上实现了GPS自动报站的功能,涉及GPS模块LEA_4S的驱动,位置速寻算法,语音芯片ISD4004的录放音驱动,LED页面管理等等.从启动代码到操作系统的移植以及到业
💻 C
📖 第 1 页 / 共 2 页
字号:
    #if DEBUG_UARTNo_GSMSTATUS <= 3
    PrintFromUART(DEBUG_UARTNo_GSMSTATUS, "<power up gsm>\n");
    #endif
}

/*
********************************************************************************
* Handler:  MSG_ATCORE_NOSIMCARD
********************************************************************************
*/
static void HdlMsg_ATCORE_NOSIMCARD(void)
{
    #if DEBUG_UARTNo_GSMSTATUS <= 3
    PrintFromUART(DEBUG_UARTNo_GSMSTATUS, "<please insert SIM card>\n");
    #endif
    OSQPost(SysTaskMsgQue, MSG_GSMTASK_NOSIMCARD, 0, 0);

#if EN_HANDSET > 0
	if (ComType == USE_HST) {
    	OSQPost(HandsetMsgQue, MSG_HANDSET_SIMCARD, 0, 0);
    }
#endif
}

/*
********************************************************************************
* Handler:  MSG_ATCORE_NONETWORK
********************************************************************************
*/
static void HdlMsg_ATCORE_NONETWORK(void)
{
    #if DEBUG_UARTNo_GSMSTATUS <= 3
    PrintFromUART(DEBUG_UARTNo_GSMSTATUS, "<no searching network>\n");
    #endif
    OSQPost(SysTaskMsgQue, MSG_GSMTASK_NONETWORK, 0, 0);
    
    InstallPermnentPort(PORT_LEDRED, 2, 20);            /* indicate no network */
    RemovePermnentPort(PORT_LEDGREEN);
}

/*
********************************************************************************
* Handler:  MSG_ATCORE_SEARCHNETWORK
********************************************************************************
*/
static void HdlMsg_ATCORE_SEARCHNETWORK(void)
{
    #if DEBUG_UARTNo_GSMSTATUS <= 3
    PrintFromUART(DEBUG_UARTNo_GSMSTATUS, "<network is searched>\n");
    #endif
    OSQPost(SysTaskMsgQue, MSG_GSMTASK_SEARCHNETWORK, 0, 0);
    SM_ListEntry();
    
    InstallPermnentPort(PORT_LEDGREEN, 2, 20);          /* indicate search network */
    RemovePermnentPort(PORT_LEDRED);
}

/*
********************************************************************************
* Handler:  MSG_ATCORE_VOICEDISCONNECT
********************************************************************************
*/
static void HdlMsg_ATCORE_VOICEDISCONNECT(void)
{
    GPRSSendEntry();
    SM_ListEntry();
}

/*
********************************************************************************
* Handler:  MSG_ATRECV_RECVSHORTMSG
********************************************************************************
*/
static void HdlMsg_ATRECV_RECVSHORTMSG(void)
{
    StartFlashPort(PORT_LEDRED, 7, 3, 3, 0);               /* indicate receive short message */
}

/*
********************************************************************************
* Handler:  HdlMsg_TCPDRV_LOG
********************************************************************************
*/
static void HdlMsg_TCPDRV_LOG(void)
{
    STREAM *wstrm;
    
    SM_ListEntry();
    if (OnlinePrompt.prompttype == 0x02) {
        wstrm = GetSYSFrameStream();
        ASMSYSFrameHead_MODE2(wstrm, EgCode.egcode, 0x0151);
        WriteBYTE_Strm(wstrm, 0x03);
        MovStrmPtr(wstrm, QueryPosition(GetStrmPtr(wstrm)));
        SendSYSFrame_MODE2(wstrm, 0, 0, SM_ATTR_TCP | SM_ATTR_COMMON, 0);
    }

}


/*
********************************************************************************
* Handler:  HdlMsg_UDPDRV_LOG
********************************************************************************
*/
static void HdlMsg_UDPDRV_LOG(void)
{
    STREAM *wstrm;
    
    SM_ListEntry();
    if (OnlinePrompt.prompttype == 0x02) {
        wstrm = GetSYSFrameStream();
        ASMSYSFrameHead_MODE2(wstrm, EgCode.egcode, 0x0151);
        WriteBYTE_Strm(wstrm, 0x03);
        MovStrmPtr(wstrm, QueryPosition(GetStrmPtr(wstrm)));
        SendSYSFrame_MODE2(wstrm, 0, 0, SM_ATTR_UDP | SM_ATTR_COMMON, 0);
    }

}



static FUNCENTRY_STRUCT functionentry[] = { 
                                            MSG_ATTRANS_TSK,                HdlATCmdTrans,
                                            MSG_ATTRANS_FREE,               HdlMsg_ATTRANS_FREE,
                                            MSG_ATRECV_RECVSHORTMSG,        HdlMsg_ATRECV_RECVSHORTMSG,
                                            MSG_ATVOICE_TSK,                HdlMsg_ATVOICE_TSK,
                                            MSG_ATSET_TSK,                  HdlMsg_ATSET_TSK,
                                            MSG_ATSM_TSK,                   HdlMsg_ATSM_TSK,
                                            MSG_ATSM_FREE,                  SM_ListEntry,
                                            MSG_ATSM_UNCLOGSM,              SM_ListEntry,
                                            MSG_ATSM_RESULT,                HdlMsg_ATSM_RESULT,
                                            MSG_ATSM_SENDSHORTMSG,          HdlMsg_ATSM_SENDSHORTMSG,
                                            MSG_ATCORE_TSK,                 HdlMsg_ATCORE_TSK,
                                            MSG_ATCORE_RESET,               HdlMsg_ATCORE_RESET,
                                            MSG_ATCORE_INIT,                HdlMsg_ATCORE_INIT,
                                            MSG_ATCORE_ENDINIT,             HdlMsg_ATCORE_ENDINIT,
                                            MSG_ATCORE_SIGNAL,              HdlMsg_ATCORE_SIGNAL,
                                            MSG_ATCORE_DETECTSIM,           HdlMsg_ATCORE_DETECTSIM,
                                            MSG_ATCORE_POWERDOWNGSM,        HdlMsg_ATCORE_POWERDOWNGSM,
                                            MSG_ATCORE_POWERUPGSM,          HdlMsg_ATCORE_POWERUPGSM,
                                            MSG_ATCORE_NOSIMCARD,           HdlMsg_ATCORE_NOSIMCARD,
                                            MSG_ATCORE_NONETWORK,           HdlMsg_ATCORE_NONETWORK,
                                            MSG_ATCORE_SEARCHNETWORK,       HdlMsg_ATCORE_SEARCHNETWORK,
                                            MSG_ATCORE_VOICEDISCONNECT,     HdlMsg_ATCORE_VOICEDISCONNECT,
                                            MSG_ATCORE_UNPROHIBITSM,        SM_ListEntry,
                                            MSG_SMLIST_TSK,                 SM_ListEntry,
                                            MSG_SMLIST_FREE,                MonitorTskEntry,
                                            MSG_MONITOR_TSK,                MonitorTskEntry,
                                            MSG_MONITOR_ALLOW,              0,
                                            MSG_MONITOR_ADDAUTOMONITOR,     AddAutoMonitor,
                                            
                                            MSG_PHONEDRV_MODEMREQ,          HdlMsg_modem_req,
                                            
                                            MSG_GPRSDRV_PPPESTABLISH,       HdlMsg_PPPESTABLISH,
                                            MSG_GPRSDRV_PPPBROKEN,          HdlMsg_PPPBROKEN,
                                            
                                            MSG_GPRSSEND_TSK,               GPRSSendEntry,
                                            MSG_GPRSSEND_FREE,              SM_ListEntry,
                                            MSG_GPRSRECV_TSK,               GPRSRecvEntry,
                                            
                                            MSG_TCPDRV_CONNECTERR,          HdlMsg_GPRSComERR,
                                            MSG_TCPDRV_LOGERR,              HdlMsg_GPRSComERR,
                                            MSG_TCPDRV_LOG,                 HdlMsg_TCPDRV_LOG,
                                            
                                            MSG_SOCKTASK_OPEN,              InformMsg_SocketOpen,
                                            MSG_SOCKTASK_CLOSE,             InformMsg_SocketClose,
                                            MSG_SOCKTASK_FREE,              GPRSSendEntry,
                                            MSG_SOCKTASK_SENDFLOW,          HdlMsg_GPRSComERR,
                                            
                                            MSG_UDPTASK_CLOSE,              InformMsg_UDPComClose,
                                            MSG_UDPTASK_OPEN,               InformMsg_UDPComOpen,
                                            MSG_UDPTASK_FREE,               GPRSSendEntry,
                                            
                                            MSG_IVUDPTSK_CLOSE,             InformMsg_IVUDPComClose,
                                            MSG_IVUDPTSK_OPEN,              InformMsg_IVUDPComOpen,
                                            MSG_IVUDPTSK_FREE,              GPRSSendEntry,
                                            
                                            MSG_UDPDRV_CONNECTERR,          HdlMsg_GPRSComERR,
                                            MSG_UDPDRV_LOGERR,              HdlMsg_GPRSComERR,
                                            MSG_UDPDRV_LOG,                 HdlMsg_UDPDRV_LOG,

                                            MSG_IVUDPDRV_CONNECTERR,        HdlMsg_GPRSComERR,
                                            MSG_IVUDPDRV_LOGERR,            HdlMsg_GPRSComERR,
                                            MSG_IVUDPDRV_LOG,               SM_ListEntry,
                                            
                                            MSG_DCLS_SENDTSK,               DLCSEntry,
                                            
                                            MSG_RXFRANE_RECV,               RX_FrameEntry,
					                        #if GSM_BENQ
					                        MSG_ATCORE_PHONEINIT,            Hdl_Phone_InitPara
					                        #endif
                                          };
                                          

static void GsmTask(void *pd)
{
    pd = pd;
    
#if DEBUG_UARTNo_GSMSTATUS <= 3
    InitUART(DEBUG_UARTNo_GSMSTATUS, DEBUG_UART_BAUD);       /* initialize debug uart */
#endif
    InitDLCS();
    InitAT_Trans();
    InitAT_Recv();
    InitAT_Core();
    InitAT_Set();
    InitAT_Voice();
    InitAT_SM();
    InitSM_List();
    InitRX_Frame();
    InitPhoneDrv();
    InitMonitor();
    InitAutoDial();
    InitCallRHT();
    InitGprsDrv();

    InitPosition();
   
    wdgid = ApplyWatchDogID();
    
    for(;;) {
        if (OSQPend(GsmTaskMsgQue, 20, &GsmCurMsg) == OS_NO_ERR) {
	   FindProcEntry(GsmCurMsg.MsgID, functionentry, sizeof(functionentry)/sizeof(functionentry[0]));
        }
        ResetWatchDog(wdgid);
    }
}

void CreateGsmTask(void)
{
    GsmTaskMsgQue = OSQCreate(MsgBuf, sizeof(MsgBuf)/sizeof(MsgBuf[0]));
    OSTaskCreate(GsmTask, (void *)0, &GsmTaskStack[STACK_GSMTASK], PRIO_GSMTASK);
}

void HdlMsg_ATCMD_RECV(INT8U id, INT8U *sptr, INT16U len)
{
    if (SuspendATRecv(id)) {
        if (!HdlATCmdAck(id, sptr, len)) 
            AT_RecvEntry(id, sptr, len);
    } else if (!AT_RecvEntry(id, sptr, len)) {
        HdlATCmdAck(id, sptr, len);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -