ghrh
gprs.h
- Committer:
- lawliet
- Date:
- 2014-01-10
- Revision:
- 3:48ee24a4b0f3
- Parent:
- 2:16985da3a446
- Child:
- 4:63a2619b423b
File content as of revision 3:48ee24a4b0f3:
/* gprs.h 2013 Copyright (c) Seeed Technology Inc. All right reserved. Author:lawliet.zou@gmail.com 2013-11-14 This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef __GPRS_H__ #define __GPRS_H__ #include <stdio.h> #include "mbed.h" #define DEFAULT_TIMEOUT 5 /** GPRS class. * Used for mobile communication. attention that GPRS module communicate with MCU in serial protocol */ class GPRS { public: /** 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; }; #endif