//////////////////////////////////////////////////////////////// // Technomaint 2004 (c) SofTech di Germinara Francesco 2000,2004 // www.germinara.it info@germinara.it // Story: // //////////////////////////////////////////////////////////////// // Checked Version: 6/5/2004 //////////////////////////////////////////////////////////////// #if !defined(_INCLUDED_AT_GSMCOMMAND_) #define _INCLUDED_AT_GSMCOMMAND_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #define _AT_MAX_TX_BUFFER 1024 #define _AT_MAX_RX_BUFFER 1024 class CGsmAtCommand{ private: int m_nNumOfParm; int m_nNumOfRetCode; CString m_strCmdName; //Name of the AT command CString m_strCmdCode; //AT command CString m_strCmdParm1; //1st parameter of AT command CString m_strCmdParm2; //2nd parameter of AT command CString m_strCmdParm3; //3th parameter of AT command CString m_strCmdParm4; //4th parameter of AT command CString m_strCmdRetCode1; //1st return code parameter CString m_strCmdRetCode2; //2nd return code parameter CString m_strCmdRetCode3; //3th return code parameter CString m_strCmdRetCode4; //4th return code parameter CString m_strCmdDelimiter; //Parameter delimiter Default= , CString m_strCmdEnd; //End Code Sequence Default= CRLF in RECEIVE CString m_strCmdEndSend; //End Code Sequenze Default= CR in SEND public: // Construction CGsmAtCommand(); CGsmAtCommand(CString name,CString code,CString parm1=_T(""),CString m_strCmdRetCode1=_T("")); CGsmAtCommand(CString name,CString code,CString parm1,CString parm2,CString parm3,CString parm4,CString m_strCmdRetCode1,CString m_strCmdRetCode2,CString m_strCmdRetCode3,CString m_strCmdRetCode4); ~CGsmAtCommand();//Destructor void Init(); public: //Data Buffers char m_txBuf[_AT_MAX_TX_BUFFER]; char m_rxBuf[_AT_MAX_RX_BUFFER]; CString GetResponse(); BOOL CheckError(CString &error); public: //Operation int SetCmd(CString name,CString code,CString parm1,CString m_strCmdRetCode1); //Set a AT command info short format int SetCmd(CString name,CString code,CString parm1,CString parm2,CString parm3,CString parm4,CString m_strCmdRetCode1,CString m_strCmdRetCode2,CString m_strCmdRetCode3,CString m_strCmdRetCode4); //Set a AT command info complete format void SetDelimiter(CString s){m_strCmdDelimiter=s;}; //Set command delimiter default is comma void SetEndCode(CString s){m_strCmdEnd=s;}; //Set End of command senquence default is CRLF in RECEIVE void SetSendEndCode(CString s){m_strCmdEndSend=s;}; //Set End of command senquence default is CR in SEND //Access data member function int GetNumOfParm(){ return m_nNumOfParm; }; //Return number of valid parameters of this command int GetNumOfRetCode(){ return m_nNumOfRetCode; }; //Return number of valid return code of this command CString GetCode(){return m_strCmdCode;}; //Return AT command code CString GetName(){return m_strCmdName;}; //Return AT command description CString GetParm1(){return m_strCmdParm1;}; //Return 1st parameter CString GetParm2(){return m_strCmdParm2;}; //Return 2nd parameter CString GetParm3(){return m_strCmdParm3;}; //Return 3th parameter CString GetParm4(){return m_strCmdParm4;}; //Return 4th parameter CString GetRetCode1(){return m_strCmdRetCode1;}; //Return 1st return code CString GetRetCode2(){return m_strCmdRetCode2;}; //Return 2nd return code CString GetRetCode3(){return m_strCmdRetCode3;}; //Return 3nd return code CString GetRetCode4(){return m_strCmdRetCode4;}; //Return 4nd return code CString GetDelimiter(){ return m_strCmdDelimiter;}; //Return the char used to delimiter parameters and/or return code CString GetEndCode(){ return m_strCmdEnd;}; //Return char sequence used to end a AT cmmand string in RECEIVE CString GetSendEndCode(){ return m_strCmdEndSend;}; //Return char sequence used to end a AT cmmand string in SEND ////////////////////////////////////////////////////////////////// //For enhanced use only //IMPORTANT: If you set manually a new command remember to // match m_nNumOfParm and m_nNumOfRetCode with the // effective parameters and return code. //Normally use the SetCmd() function to set new command. ///////////////////////////////////////////////////////////////// void SetNumOfParm(int n){ m_nNumOfParm=n; }; void SetNumOfRetCode(int n){ m_nNumOfRetCode=n; }; void SetCode(CString s){m_strCmdCode=s;}; void SetName(CString s){m_strCmdName=s;}; void SetParm1(CString s){m_strCmdParm1=s;}; //remember to match m_nNumOfParm void SetParm2(CString s){m_strCmdParm2=s;}; //remember to match m_nNumOfParm void SetParm3(CString s){m_strCmdParm3=s;}; //remember to match m_nNumOfParm void SetParm4(CString s){m_strCmdParm4=s;}; //remember to match m_nNumOfParm void SetRetCode1(CString s){m_strCmdRetCode1=s;}; //remember to match m_nNumOfRetCode void SetRetCode2(CString s){m_strCmdRetCode2=s;}; //remember to match m_nNumOfRetCode void SetRetCode3(CString s){m_strCmdRetCode3=s;}; //remember to match m_nNumOfRetCode void SetRetCode4(CString s){m_strCmdRetCode4=s;}; //remember to match m_nNumOfRetCode }; #endif