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

📄 at_cmd.c

📁 在ARM7和UC/OSII的平台上实现了GPS自动报站的功能,涉及GPS模块LEA_4S的驱动,位置速寻算法,语音芯片ISD4004的录放音驱动,LED页面管理等等.从启动代码到操作系统的移植以及到业
💻 C
📖 第 1 页 / 共 4 页
字号:
ATCMDPARA_STRUCT AT_DATE_PARA            =      { 0,                4,      1,      2,      Handler_Common      };
ATCMDPARA_STRUCT AT_R_DATE_PARA          =      { 0,                4,      1,      2,      Handler_AT_R_DATE   };
ATCMDPARA_STRUCT AT_TIME_PARA            =      { 0,                4,      1,      2,      Handler_Common      };
ATCMDPARA_STRUCT AT_R_TIME_PARA          =      { 0,                4,      1,      2,      Handler_AT_R_TIME   };

ATCMDPARA_STRUCT AT_COLP_PARA            =      { 0,                4,      1,      1,      Handler_Common      };
//ATCMDPARA_STRUCT AT_GDT_PARA             =      { 0,                4,      1,      1,      Handler_Common      };
ATCMDPARA_STRUCT AT_AULEVELMAX_PARA      =      { 0,                4,      1,      1,      Handler_Common      };
ATCMDPARA_STRUCT AT_AUVAD_PARA           =      { 0,                4,      1,      1,      Handler_Common      };
ATCMDPARA_STRUCT AT_AUABS_PARA           =      { 0,                4,      1,      1,      Handler_Common      };

//ATCMDPARA_STRUCT AT_X4_PARA              =      { 0,                4,      1,      1,      Handler_Common      };
//ATCMDPARA_STRUCT AT_W_PARA               =      { 0,                4,      1,      1,      Handler_Common      };

//ATCMDPARA_STRUCT AT_CGQREQ_PARA          =      { 0,                4,      1,      1,      Handler_Common   };
//ATCMDPARA_STRUCT AT_R_CGQREQ_PARA        =      { 0,                4,      1,      2,      Handler_Common   };
//ATCMDPARA_STRUCT AT_CGQMIN_PARA          =      { 0,                4,      1,      1,      Handler_Common   };
//ATCMDPARA_STRUCT AT_R_CGQMIN_PARA        =      { 0,                4,      1,      2,      Handler_Common   };

#else
ATCMDPARA_STRUCT AT_CMUX_PARA            =      { 0,                4,      1,      1,      Handler_Common      };
ATCMDPARA_STRUCT AT_CCLK_PARA            =      { 0,                4,      1,      1,      Handler_Common      };
ATCMDPARA_STRUCT AT_R_CCLK_PARA          =      { 0,                4,      1,      2,      Handler_AT_R_CCLK   };
#endif
ATCMDPARA_STRUCT AT_CMEE_PARA            =      { 0,                4,      1,      1,      Handler_Common      };
ATCMDPARA_STRUCT AT_CLCC_PARA            =      { ATCMD_INSANT,     4,      1,      0,      Handler_AT_CLCC     };


/*
********************************************************************************
* AT Commands originating from GSM 07.05 for SMS
********************************************************************************
*/
ATCMDPARA_STRUCT AT_CMGF_PARA            =      { 0,                4,      1,      1,      Handler_Common      };
ATCMDPARA_STRUCT AT_CSCA_PARA            =      { 0,                4,      1,      1,      Handler_Common      };
ATCMDPARA_STRUCT AT_CSMS_PARA            =      { ATCMD_INSANT,     4,      1,      0,      Handler_AT_CSMS     };
ATCMDPARA_STRUCT AT_CNMI_PARA            =      { 0,                4,      1,      1,      Handler_Common      };
#if GSM_BENQ
//ATCMDPARA_STRUCT AT_CNMA_PARA            =      { 0,                18,      1,      1,      Handler_Common                  };
//ATCMDPARA_STRUCT AT_CNMA_PDU_PARA        =      { 0,                8,      1,      1,     Handler_Common      };
#else
//ATCMDPARA_STRUCT AT_CNMA_PARA            =      { 0,                4,      1,      1,      Handler_Common      };

#endif
ATCMDPARA_STRUCT AT_R_CNMI_PARA          =      { ATCMD_INSANT,     4,      1,      0,      Handler_AT_R_CNMI   };
ATCMDPARA_STRUCT AT_CMGS_PARA            =      { 0,                6,      1,      0,      0                   };
ATCMDPARA_STRUCT AT_CMGS_PDU_PARA        =      { 0,               30,      1,      1,      Handler_AT_CMGS_PDU };
ATCMDPARA_STRUCT AT_ESCAPE_PARA          =      { 0,                4,      1,      1,      Handler_Common      };
ATCMDPARA_STRUCT AT_CMGD_PARA            =      { 0,                4,      1,      1,      Handler_Common      };
ATCMDPARA_STRUCT AT_CMGL_PARA            =      { 0,                4,      1,      1,      Handler_Common      };
ATCMDPARA_STRUCT AT_CMGR_PARA            =      { 0,                4,      1,      1,      Handler_Common      };


/*
********************************************************************************
* Siemens defined AT Commands for enhanced functions
********************************************************************************
*/
ATCMDPARA_STRUCT AT_R_SCKS_PARA          =      { 0,                4,      1,      2,      Handler_AT_R_SCKS   };

#if GSM_BENQ
#else
ATCMDPARA_STRUCT AT_SNFS_PARA            =      { 0,                4,      1,      1,      Handler_Common      };
ATCMDPARA_STRUCT AT_SNFO_PARA            =      { 0,                4,      1,      1,      Handler_Common      };
ATCMDPARA_STRUCT AT_SNFI_PARA            =      { 0,                4,      1,      1,      Handler_Common      };
ATCMDPARA_STRUCT AT_SNFD_PARA            =      { 0,                4,      1,      1,      Handler_Common      };
ATCMDPARA_STRUCT AT_ATI_PARA            =       { 0,                4,      1,      4,       Handler_AT_R_ATI       };
#endif
/*
********************************************************************************
* BENQ defined AT Commands for enhanced functions
********************************************************************************
*/
ATCMDPARA_STRUCT AT_MUXINIT_PARA         =       {0,                 4,      1,      1,      Handler_Common};

ATCMDPARA_STRUCT AT_AUPATH_PARA          =       {0,                 4,      1,      2,      Handler_Common};
ATCMDPARA_STRUCT AT_AUGAIN_PARA          =       {0,                 4,      1,      2,      Handler_Common};
ATCMDPARA_STRUCT AT_AUVOL_PARA           =       {0,                 4,      1,      2,      Handler_Common};
ATCMDPARA_STRUCT AT_AUAEC_PARA           =       {0,                 4,      1,      1,      Handler_Common};
ATCMDPARA_STRUCT AT_CHUP_PARA            =       {0,                 4,      1,      1,      Handler_Common};
ATCMDPARA_STRUCT AT_NOSLEEP_PARA         =       {0,                 4,      1,      1,      Handler_Common};

ATCMDPARA_STRUCT AT_AUTOCAMPON_PARA      =       {0,                 4,      1,      1,      Handler_Common};
ATCMDPARA_STRUCT AT_SATC_PARA            =       {0,                 4,      1,      1,      Handler_Common};
ATCMDPARA_STRUCT AT_COPS_PARA            =       {0,                 14,      1,      1,     Handler_Common};
ATCMDPARA_STRUCT AT_CFUN_PARA            =       {0,                 4,      1,      1,      Handler_Common};
ATCMDPARA_STRUCT AT_R_AUTOCAMPON_PARA    = 	 {0,                 4,      1,      2,      Handler_R_Autocampon};




/*********************************************************************************
**                                                                               *
**                                                                               *
**                 Standard V.25ter AT Commands                                  *
**                                                                               *
**                                                                               *
*********************************************************************************/

/*
********************************************************************************
* AT    Test communication
********************************************************************************
*/
INT16U AT_TEST(INT8U *ptr)
{
    InitStrm(&tmpstrm, ptr, 1024);
    WriteSTR_Strm(&tmpstrm, "AT");
    WriteCR_Strm(&tmpstrm);
    return GetStrmLen(&tmpstrm);
}

/*
********************************************************************************
* ATE    Enable command echo
********************************************************************************
*/
INT16U AT_ECHO(INT8U *ptr, BOOLEAN echo)
{
    InitStrm(&tmpstrm, ptr, 1024);
    WriteSTR_Strm(&tmpstrm, "ATE");
    if (echo) WriteBYTE_Strm(&tmpstrm, '1');
    else WriteBYTE_Strm(&tmpstrm, '0');
    WriteCR_Strm(&tmpstrm);
    return GetStrmLen(&tmpstrm);
}

/*
********************************************************************************
* ATH    Disconnect existing connection
********************************************************************************
*/
INT16U AT_ATH(INT8U *ptr)
{
    InitStrm(&tmpstrm, ptr, 1024);
    WriteSTR_Strm(&tmpstrm, "ATH");
    WriteCR_Strm(&tmpstrm);
    return GetStrmLen(&tmpstrm);
}

/*
********************************************************************************
* ATA    Answer a call
********************************************************************************
*/
INT16U AT_ATA(INT8U *ptr)
{
    InitStrm(&tmpstrm, ptr, 1024);
    WriteSTR_Strm(&tmpstrm, "ATA");
    WriteCR_Strm(&tmpstrm);
    return GetStrmLen(&tmpstrm);
}

/*
********************************************************************************
* ATD    Mobile originated call to dial a number
********************************************************************************
*/
INT16U AT_ATD(INT8U *ptr, INT8U *telptr, INT8U tellen, INT8U callmode)
{
    InitStrm(&tmpstrm, ptr, 1024);
    WriteSTR_Strm(&tmpstrm, "ATD");
    WriteDATA_Strm(&tmpstrm, telptr, tellen);
    if (callmode == MODE_VOICE) WriteBYTE_Strm(&tmpstrm, ';');
    WriteCR_Strm(&tmpstrm);
    return GetStrmLen(&tmpstrm);
}

/*
********************************************************************************
* AT+IPR    Set fixed local rate
********************************************************************************
*/
INT16U AT_IPR(INT8U *ptr, char *rate)
{
    InitStrm(&tmpstrm, ptr, 1024);
    WriteSTR_Strm(&tmpstrm, "AT+IPR=");
    WriteSTR_Strm(&tmpstrm, rate);
    WriteCR_Strm(&tmpstrm);
    return GetStrmLen(&tmpstrm);
}



/*********************************************************************************
**                                                                               *
**                                                                               *
**                 AT Commands originating from GSM 07.07                        *
**                                                                               *
**                                                                               *
*********************************************************************************/

/*
********************************************************************************
* AT+VTS    DTMF and tone generation (<Tone> in {0-9, *, #, A, B, C, D})
********************************************************************************
*/
INT16U AT_VTS(INT8U *ptr, char dtmfchar)
{
    InitStrm(&tmpstrm, ptr, 1024);
    WriteSTR_Strm(&tmpstrm, "AT+VTS=");
    WriteBYTE_Strm(&tmpstrm, dtmfchar);
    //WriteSTR_Strm(&tmpstrm, ",2");
    WriteCR_Strm(&tmpstrm);
    return GetStrmLen(&tmpstrm);
}

/*
********************************************************************************
* AT+CLIP    Calling line identification presentation
********************************************************************************
*/
INT16U AT_CLIP(INT8U *ptr, INT8U mode)
{
    InitStrm(&tmpstrm, ptr, 1024);
    WriteSTR_Strm(&tmpstrm, "AT+CLIP=");
    if (mode == CLIP_DISABLE)
        WriteBYTE_Strm(&tmpstrm, '0');                  /* suppress CLIP */
    else
        WriteBYTE_Strm(&tmpstrm, '1');                  /* display CLIP */
    WriteCR_Strm(&tmpstrm);
    return GetStrmLen(&tmpstrm);
}

/*
********************************************************************************
* AT+CSQ    Signal Quality
********************************************************************************
*/
INT16U AT_CSQ(INT8U *ptr)
{
    InitStrm(&tmpstrm, ptr, 1024);
    WriteSTR_Strm(&tmpstrm, "AT+CSQ");
    WriteCR_Strm(&tmpstrm);
    return GetStrmLen(&tmpstrm);
}

/*
********************************************************************************
* AT+CREG    config NetWork Registration
********************************************************************************
*/
INT16U AT_CREG(INT8U *ptr, INT8U mode)
{
    InitStrm(&tmpstrm, ptr, 1024);
    WriteSTR_Strm(&tmpstrm, "AT+CREG=");
    WriteBYTE_Strm(&tmpstrm, mode);
    WriteCR_Strm(&tmpstrm);
    return GetStrmLen(&tmpstrm);
}

/*
********************************************************************************
* AT+CREG?    NetWork Registration Query
********************************************************************************
*/
INT16U AT_R_CREG(INT8U *ptr)
{
    InitStrm(&tmpstrm, ptr, 1024);
    WriteSTR_Strm(&tmpstrm, "AT+CREG?");
    WriteCR_Strm(&tmpstrm);
    return GetStrmLen(&tmpstrm);
}

/*
********************************************************************************
* AT+CCFC    Call forwarding number and conditions conrtol
********************************************************************************
*/
INT16U AT_CCFC(INT8U *ptr, char reas, char mode, INT8U *tel, INT8U tellen, INT8U time)
{
    InitStrm(&tmpstrm, ptr, 1024);
    WriteSTR_Strm(&tmpstrm, "AT+CCFC=");
    WriteBYTE_Strm(&tmpstrm, reas);
    WriteBYTE_Strm(&tmpstrm, ',');
    WriteBYTE_Strm(&tmpstrm, mode);
    if (mode != FORWARD_QUERY) {
        WriteBYTE_Strm(&tmpstrm, ',');
        if (tel != 0 && tellen > 0) {
            WriteBYTE_Strm(&tmpstrm, '"');
            WriteDATA_Strm(&tmpstrm, tel, tellen);
            WriteBYTE_Strm(&tmpstrm, '"');
        }
        WriteBYTE_Strm(&tmpstrm, ',');
        WriteBYTE_Strm(&tmpstrm, ',');
        WriteBYTE_Strm(&tmpstrm, '1');                          /* voice class */
        if (reas == REAS_NOREPLY) {
            WriteBYTE_Strm(&tmpstrm, ',');
            MovStrmPtr(&tmpstrm, DecToAscii(GetStrmPtr(&tmpstrm), time, 0));
        }
    } else {
        WriteSTR_Strm(&tmpstrm, ",,,1");                        /* query voice status */
    }
    WriteCR_Strm(&tmpstrm);
    return GetStrmLen(&tmpstrm);
}

/*
********************************************************************************
* AT+CGDCONT    Define PDP Context
********************************************************************************
*/
INT16U AT_CGDCONT(INT8U *ptr, char cid, char *APN, char *PDP_addr)
{
    PDP_addr = PDP_addr;
    InitStrm(&tmpstrm, ptr, 1024);
    WriteSTR_Strm(&tmpstrm, "AT+CGDCONT=");
    #if GSM_BENQ
    WriteBYTE_Strm(&tmpstrm, cid);
    WriteBYTE_Strm(&tmpstrm, ',');

    WriteBYTE_Strm(&tmpstrm, '"');
    WriteSTR_Strm(&tmpstrm, "IP");
    WriteBYTE_Strm(&tmpstrm, '"');
    WriteBYTE_Strm(&tmpstrm, ',');

    WriteBYTE_Strm(&tmpstrm, '"');
    WriteSTR_Strm(&tmpstrm, APN);
    WriteBYTE_Strm(&tmpstrm, '"');
    WriteBYTE_Strm(&tmpstrm, ',');
    WriteBYTE_Strm(&tmpstrm, '"');
    WriteSTR_Strm(&tmpstrm, PDP_addr);
    WriteBYTE_Strm(&tmpstrm, '"');
    WriteBYTE_Strm(&tmpstrm, ',');
    WriteBYTE_Strm(&tmpstrm, '0');
    WriteBYTE_Strm(&tmpstrm, ',');
    WriteBYTE_Strm(&tmpstrm, '0');
    #else
    WriteBYTE_Strm(&tmpstrm, cid);
    WriteSTR_Strm(&tmpstrm, ",IP,");
    WriteBYTE_Strm(&tmpstrm, '"');
    WriteSTR_Strm(&tmpstrm, APN);
    WriteBYTE_Strm(&tmpstrm, '"');
    WriteBYTE_Strm(&tmpstrm, ',');
    WriteSTR_Strm(&tmpstrm, PDP_addr);
    #endif


    WriteCR_Strm(&tmpstrm);
    return GetStrmLen(&tmpstrm);
}

/*
********************************************************************************
* AT+CMUX    Enter mutiplex mode
********************************************************************************
*/
INT16U AT_CMUX(INT8U *ptr)
{
    #if GSM_BENQ
    InitStrm(&tmpstrm, ptr, 1024);
    WriteSTR_Strm(&tmpstrm, "AT+CMUX=1,0,2,128,,0,");
    WriteCR_Strm(&tmpstrm);
    return GetStrmLen(&tmpstrm);
    #else
    InitStrm(&tmpstrm, ptr, 1024);
    WriteSTR_Strm(&tmpstrm, "AT+CMUX=0");
    WriteCR_Strm(&tmpstrm);
    return GetStrmLen(&tmpstrm);
    #endif
}

/*
********************************************************************************
* AT+CMEE    Report mobile equipment error
********************************************************************************
*/
INT16U AT_CMEE(INT8U *ptr, char mode)
{
    InitStrm(&tmpstrm, ptr, 1024);
    WriteSTR_Strm(&tmpstrm, "AT+CMEE=");
    WriteBYTE_Strm(&tmpstrm, mode);
    WriteCR_Strm(&tmpstrm);
    return GetStrmLen(&tmpstrm);
}
#if GSM_BENQ
#else
/*

⌨️ 快捷键说明

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