rhr
Diff: gprs.h
- Revision:
- 2:16985da3a446
- Parent:
- 1:642a8dbe076c
- Child:
- 3:48ee24a4b0f3
diff -r 642a8dbe076c -r 16985da3a446 gprs.h --- a/gprs.h Fri Nov 15 03:40:35 2013 +0000 +++ b/gprs.h Mon Nov 18 06:05:17 2013 +0000 @@ -24,39 +24,173 @@ #define __GPRS_H__ #include "mbed.h" - -class gprs +/** GPRS class. + * Used for mobile communication. attention that GPRS module communicate with MCU in serial protocol + */ +class GPRS { - public: - gprs(PinName tx, PinName rx, int baudrate,char *Number) : gprsSerial(tx, rx) { - gprsSerial.baud(baudrate); - phoneNumber = Number; + /** Create GPRS instance + * @param tx uart transmit pin to communicate with GPRS module + * @param rx uart receive pin to communicate with GPRS module + * @param baudRate baud rate of uart communication + * @param number default phone number during mobile communication + */ + GPRS(PinName tx, PinName rx, int baudRate,char *number) : gprsSerial(tx, rx) { + gprsSerial.baud(baudRate); + phoneNumber = number; }; + + /** init GPRS module including SIM card check & signal strength & network check + * @returns + * 0 on success + * -1 on error + */ int init(void); + + /** read from GPRS module and save to buffer array + * @param *buffer buffer array to save what read from GPRS module + * @param *count the maximal bytes number read from GPRS module + * @returns + * 0 on success + * -1 on error + */ int readBuffer(char *buffer,int count); + + /** send AT command to GPRS module + * @param *cmd command array which will be send to GPRS module + */ void sendCmd(char *cmd); + + /** check GPRS module response before timeout + * @param *resp correct response which GPRS module will return + * @param *timeout waiting seconds till timeout + * @returns + * 0 on success + * -1 on error + */ int waitForResp(char *resp, int timeout); + + /** send AT command to GPRS module and wait for correct response + * @param *cmd AT command which will be send to GPRS module + * @param *resp correct response which GPRS module will return + * @param *timeout waiting seconds till timeout + * @returns + * 0 on success + * -1 on error + */ int sendCmdAndWaitForResp(char *cmd, char *resp, int timeout); + + /** check SIM card' Status + * @returns + * 0 on success + * -1 on error + */ int checkSIMStatus(void); + + /** check signal strength + * @returns + * signal strength in number(ex 3,4,5,6,7,8...) on success + * -1 on error + */ int checkSignalStrength(void); + + /** check network is ok or not + * @returns + * 0 on success + * -1 on error + */ int networkInit(void); + + /** send text SMS + * @param *number phone number which SMS will be send to + * @param *data message that will be send to + * @returns + * 0 on success + * -1 on error + */ int sendSMS(char *number, char *data); + + /** read SMS if get a SMS + * @param *buffer buffer that get from GPRS module(when getting a SMS, GPRS module will return a buffer array) + * @param *message buffer used to get SMS message + * @param check whether to check phone number(we may only want to read SMS from specified phone number) + * @returns + * 0 on success + * -1 on error + */ int readSMS(char *buffer, char *message, bool check); + + /** delete SMS message on SIM card + * @param *index the index number which SMS message will be delete + * @returns + * 0 on success + * -1 on error + */ int deleteSMS(int index); + + /** call someone + * @param *number the phone number which you want to call + * @returns + * 0 on success + * -1 on error + */ int callUp(char *number); + + /** auto answer if coming a call + * @returns + * 0 on success + * -1 on error + */ int answer(void); + + /** a loop to wait for some event. if a call comes in, it will auto answer it and if a SMS message comes in, it will read the message + * @param *check whether to check phone number when get event + * @returns + * 0 on success + * -1 on error + */ int loop(bool check); + + /** build TCP connect + * @param *ip ip address which will connect to + * @param *port TCP server' port number + * @returns + * 0 on success + * -1 on error + */ int connectTCP(char *ip, char *port); + + /** send data to TCP server + * @param *data data that will be send to TCP server + * @returns + * 0 on success + * -1 on error + */ int sendTCPData(char *data); + + /** close TCP connection + * @returns + * 0 on success + * -1 on error + */ int closeTCP(void); + + /** close TCP service + * @returns + * 0 on success + * -1 on error + */ int shutTCP(void); + + /** used for serial debug, you can specify tx and rx pin and then communicate with GPRS module with common AT commands + */ void serialDebug(PinName tx, PinName rx); + private: Serial gprsSerial; Timer timeCnt; char *phoneNumber; }; -//extern gprs GPRS; #endif