📄 at_cmd.c
字号:
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 + -