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

📄 at_cmd.c

📁 在ARM7和UC/OSII的平台上实现了GPS自动报站的功能,涉及GPS模块LEA_4S的驱动,位置速寻算法,语音芯片ISD4004的录放音驱动,LED页面管理等等.从启动代码到操作系统的移植以及到业
💻 C
📖 第 1 页 / 共 4 页
字号:
********************************************************************************
* AT+CCLK    Set Real Time Clock
********************************************************************************
*/
INT16U AT_CCLK(INT8U *ptr, DATE_STRUCT *date, TIME_STRUCT *time)
{
    INT8U len;

    InitStrm(&tmpstrm, ptr, 1024);
    WriteSTR_Strm(&tmpstrm, "AT+CCLK=");
    WriteBYTE_Strm(&tmpstrm, '"');
    len = DecToAscii(GetStrmPtr(&tmpstrm), date->year, 2);
    MovStrmPtr(&tmpstrm, len);
    WriteBYTE_Strm(&tmpstrm, '/');
    len = DecToAscii(GetStrmPtr(&tmpstrm), date->month, 2);
    MovStrmPtr(&tmpstrm, len);
    WriteBYTE_Strm(&tmpstrm, '/');
    len = DecToAscii(GetStrmPtr(&tmpstrm), date->day, 2);
    MovStrmPtr(&tmpstrm, len);
    WriteBYTE_Strm(&tmpstrm, ',');
    len = DecToAscii(GetStrmPtr(&tmpstrm), time->hour, 2);
    MovStrmPtr(&tmpstrm, len);
    WriteBYTE_Strm(&tmpstrm, ':');
    len = DecToAscii(GetStrmPtr(&tmpstrm), time->minute, 2);
    MovStrmPtr(&tmpstrm, len);
    WriteBYTE_Strm(&tmpstrm, ':');
    len = DecToAscii(GetStrmPtr(&tmpstrm), time->second, 2);
    MovStrmPtr(&tmpstrm, len);
    WriteBYTE_Strm(&tmpstrm, '"');
    WriteCR_Strm(&tmpstrm);
    return GetStrmLen(&tmpstrm);
}

/*
********************************************************************************
* AT+CCLK?    Read Real Time Clock
********************************************************************************
*/
INT16U AT_R_CCLK(INT8U *ptr)
{
    InitStrm(&tmpstrm, ptr, 1024);
    WriteSTR_Strm(&tmpstrm, "AT+CCLK?");
    WriteCR_Strm(&tmpstrm);
    return GetStrmLen(&tmpstrm);
}
#endif
/*
********************************************************************************
* AT+CLCC    List current calls of ME
********************************************************************************
*/
INT16U AT_CLCC(INT8U *ptr)
{
    InitStrm(&tmpstrm, ptr, 1024);
    WriteSTR_Strm(&tmpstrm, "AT+CLCC");
    WriteCR_Strm(&tmpstrm);
    return GetStrmLen(&tmpstrm);
}


/*********************************************************************************
**                                                                               *
**                                                                               *
**                 AT Commands originating from GSM 07.05 for SMS                *
**                                                                               *
**                                                                               *
*********************************************************************************/

/*
********************************************************************************
* AT+CMGF    Select SMS message format
********************************************************************************
*/
INT16U AT_CMGF(INT8U *ptr, INT8U mode)
{
    InitStrm(&tmpstrm, ptr, 1024);
    WriteSTR_Strm(&tmpstrm, "AT+CMGF=");
    if (mode == MODE_PDU)
        WriteBYTE_Strm(&tmpstrm, '0');                  /* select PDU mode */
    else
        WriteBYTE_Strm(&tmpstrm, '1');                  /* select TEXT mode */
    WriteCR_Strm(&tmpstrm);
    return GetStrmLen(&tmpstrm);
}

/*
********************************************************************************
* AT+CSCA    SMS service centre address
********************************************************************************
*/
INT16U AT_CSCA(INT8U *ptr, INT8U *telptr, INT8U tellen)
{
    InitStrm(&tmpstrm, ptr, 1024);
    WriteSTR_Strm(&tmpstrm, "AT+CSCA=");
    WriteBYTE_Strm(&tmpstrm, '"');
    WriteDATA_Strm(&tmpstrm, telptr, tellen);
    WriteBYTE_Strm(&tmpstrm, '"');
    WriteCR_Strm(&tmpstrm);
    return GetStrmLen(&tmpstrm);
}

/*
********************************************************************************
* AT+CSMS    Select Message Service
********************************************************************************
*/
INT16U AT_CSMS(INT8U *ptr, INT8U service)
{
    InitStrm(&tmpstrm, ptr, 1024);
    WriteSTR_Strm(&tmpstrm, "AT+CSMS=");
    if (service == SERVICE_PHASE2)
        WriteBYTE_Strm(&tmpstrm, '0');
    else
        WriteBYTE_Strm(&tmpstrm, '1');
    WriteCR_Strm(&tmpstrm);
    return GetStrmLen(&tmpstrm);
}

/*
********************************************************************************
* AT+CNMI    New SMS message indications
********************************************************************************
*/
INT16U AT_CNMI(INT8U *ptr)
{
    InitStrm(&tmpstrm, ptr, 1024);
    WriteSTR_Strm(&tmpstrm, "AT+CNMI=1,2");
    WriteCR_Strm(&tmpstrm);
    return GetStrmLen(&tmpstrm);
}

/*
********************************************************************************
* AT+CNMI?    Query New SMS message indications
********************************************************************************
*/
INT16U AT_R_CNMI(INT8U *ptr)
{
    InitStrm(&tmpstrm, ptr, 1024);
    WriteSTR_Strm(&tmpstrm, "AT+CNMI?");
    WriteCR_Strm(&tmpstrm);
    return GetStrmLen(&tmpstrm);
}

/*
********************************************************************************
* AT+CNMA    New SMS message acknowledge to ME/TE, only phase 2+
********************************************************************************
*/
INT16U AT_CNMA(INT8U *ptr,INT8U *DataPtr,INT8U Len)
{
    #if GSM_BENQ
    InitStrm(&tmpstrm, ptr, 1024);
    WriteSTR_Strm(&tmpstrm, "AT+CNMA=1,");
    WriteDATA_Strm(&tmpstrm, DataPtr, Len);
    WriteCR_Strm(&tmpstrm);
    return GetStrmLen(&tmpstrm);
    #else
    DataPtr=DataPtr;
    Len=Len;
    InitStrm(&tmpstrm, ptr, 1024);
    WriteSTR_Strm(&tmpstrm, "AT+CNMA=0");
    WriteCR_Strm(&tmpstrm);
    return GetStrmLen(&tmpstrm);
    #endif
}

/*
********************************************************************************
* AT+CMGS    Send SMS message
********************************************************************************
*/
INT16U AT_CMGS(INT8U *ptr, INT16U pdulen)
{
    INT16U len;

    InitStrm(&tmpstrm, ptr, 1024);
    WriteSTR_Strm(&tmpstrm, "at+cmgs=");
    len = DecToAscii(GetStrmPtr(&tmpstrm), pdulen, 0);
    MovStrmPtr(&tmpstrm, len);
    WriteCR_Strm(&tmpstrm);
    return GetStrmLen(&tmpstrm);
}

/*
********************************************************************************
* ESCAPE    Abort message
********************************************************************************
*/
INT16U AT_ESCAPE(INT8U *ptr)
{
    *ptr = ESC;
    return 1;
}

/*
********************************************************************************
* AT+CMGD    Delete SMS Message
********************************************************************************
*/
INT16U AT_CMGD(INT8U *ptr, INT8U index)
{
    INT8U len;

    InitStrm(&tmpstrm, ptr, 1024);
    WriteSTR_Strm(&tmpstrm, "AT+CMGD=");
    len = DecToAscii(GetStrmPtr(&tmpstrm), index, 0);
    MovStrmPtr(&tmpstrm, len);
    WriteCR_Strm(&tmpstrm);
    return GetStrmLen(&tmpstrm);
}

/*
********************************************************************************
* AT+CMGR    Read SMS Message
********************************************************************************
*/
INT16U AT_CMGR(INT8U *ptr, INT8U index)
{
    INT8U len;

    InitStrm(&tmpstrm, ptr, 1024);
    WriteSTR_Strm(&tmpstrm, "AT+CMGR=");
    len = DecToAscii(GetStrmPtr(&tmpstrm), index, 0);
    MovStrmPtr(&tmpstrm, len);
    WriteCR_Strm(&tmpstrm);
    return GetStrmLen(&tmpstrm);
}

/*
********************************************************************************
* AT+CMGL    List SMS Message
********************************************************************************
*/
INT16U AT_CMGL(INT8U *ptr)
{
    InitStrm(&tmpstrm, ptr, 1024);
    WriteSTR_Strm(&tmpstrm, "AT+CMGL=4");
    WriteCR_Strm(&tmpstrm);
    return GetStrmLen(&tmpstrm);
}

/*********************************************************************************
**                                                                               *
**                                                                               *
**                 Siemens defined AT Commands for enhanced functions            *
**                                                                               *
**                                                                               *
*********************************************************************************/
#if GSM_BENQ
#else
/*
********************************************************************************
* AT^SNFS    Select audio hardware set
********************************************************************************
*/
INT16U AT_SNFS(INT8U *ptr, char audmode)
{
    InitStrm(&tmpstrm, ptr, 1024);
    WriteSTR_Strm(&tmpstrm, "AT^SNFS=");
    WriteBYTE_Strm(&tmpstrm, audmode);
    WriteCR_Strm(&tmpstrm);
    return GetStrmLen(&tmpstrm);
}

/*
********************************************************************************
* AT^SNFO    Set audio output(=louderspeaker path) parameter
********************************************************************************
*/
INT16U AT_SNFO(INT8U *ptr, char audmode, char gain, char step)
{
    InitStrm(&tmpstrm, ptr, 1024);
    WriteSTR_Strm(&tmpstrm, "AT^SNFO=");
    WriteBYTE_Strm(&tmpstrm, gain);
    switch (audmode)
    {
        case '1':
            WriteSTR_Strm(&tmpstrm, ",16384,16384,16384,16384,16384,");
            WriteBYTE_Strm(&tmpstrm, step);
            WriteSTR_Strm(&tmpstrm, ",4096");
            break;
        case '2':
            WriteSTR_Strm(&tmpstrm, ",4685,6301,8500,11205,15115,");
            WriteBYTE_Strm(&tmpstrm, step);
            WriteSTR_Strm(&tmpstrm, ",0");
            break;
        case '3':
            WriteSTR_Strm(&tmpstrm, ",1253,2452,4891,9759,16383,");
            WriteBYTE_Strm(&tmpstrm, step);
            WriteSTR_Strm(&tmpstrm, ",1365");
            break;
        case '4':
            WriteSTR_Strm(&tmpstrm, ",10337,11598,13014,14602,16384,");
            WriteBYTE_Strm(&tmpstrm, step);
            WriteSTR_Strm(&tmpstrm, ",4096");
            break;
        case '5':
            WriteSTR_Strm(&tmpstrm, ",16384,16384,16384,16384,16384,");
            WriteBYTE_Strm(&tmpstrm, step);
            WriteSTR_Strm(&tmpstrm, ",0");
            break;
        case '6':
            WriteSTR_Strm(&tmpstrm, ",16384,16384,16384,16384,16384,");
            WriteBYTE_Strm(&tmpstrm, step);
            WriteSTR_Strm(&tmpstrm, ",0");
            break;
        default:
            WriteSTR_Strm(&tmpstrm, ",16384,16384,16384,16384,16384,");
            WriteBYTE_Strm(&tmpstrm, step);
            WriteSTR_Strm(&tmpstrm, ",0");
    }
    WriteCR_Strm(&tmpstrm);
    return GetStrmLen(&tmpstrm);
}

/*
********************************************************************************
* AT^SNFI    Set microphone path parameters
********************************************************************************
*/
INT16U AT_SNFI(INT8U *ptr, char gain)
{
    InitStrm(&tmpstrm, ptr, 1024);
    WriteSTR_Strm(&tmpstrm, "AT^SNFI=");
    WriteBYTE_Strm(&tmpstrm, gain);
    WriteSTR_Strm(&tmpstrm, ",17767");
    WriteCR_Strm(&tmpstrm);
    return GetStrmLen(&tmpstrm);
}

/*
********************************************************************************
* AT^SNFD    Set audio parameters to manufacturer default values
********************************************************************************
*/
INT16U AT_SNFD(INT8U *ptr)
{
    InitStrm(&tmpstrm, ptr, 1024);
    WriteSTR_Strm(&tmpstrm, "AT^SNFD");
    WriteCR_Strm(&tmpstrm);
    return GetStrmLen(&tmpstrm);
}
#endif
/*
********************************************************************************
* AT^SCKS?    Quuery SIM connection status
********************************************************************************
*/
INT16U AT_R_SCKS(INT8U *ptr)
{
    #if GSM_BENQ
    InitStrm(&tmpstrm, ptr, 1024);
    WriteSTR_Strm(&tmpstrm, "AT+CPIN?");
    WriteCR_Strm(&tmpstrm);
    return GetStrmLen(&tmpstrm);
    #else
    InitStrm(&tmpstrm, ptr, 1024);
    WriteSTR_Strm(&tmpstrm, "AT^SCKS?");
    WriteCR_Strm(&tmpstrm);
    return GetStrmLen(&tmpstrm);
    #endif
}
#if GSM_BENQ
#else
/*
********************************************************************************
* ATI版本显示模式
********************************************************************************
*/

static BOOLEAN VarIsMC35i;
BOOLEAN IsMC35i(void)
{
   if(VarIsMC35i) return TRUE;
   else return FALSE;
}

⌨️ 快捷键说明

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