A library for the SIM900 module to enable calling, answering, sending and receiving SMS messages
Dependents: Seeed_GPRS_Shield_GSM BluetoothNONIN HealthCare_Graduation
Fork of GSM by
Diff: GPRS.h
- Revision:
- 10:24671d8aa0c9
- Parent:
- 9:2f5445178940
--- a/GPRS.h Tue May 13 14:32:33 2014 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,221 +0,0 @@ -/* - 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 -#define SMS_MAX_LENGTH 16 - - -enum GPRS_MESSAGE { - MESSAGE_RING = 0, - MESSAGE_SMS = 1, - MESSAGE_ERROR -}; - - -/** 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; - }; - - int powerCheck(void); - /** init GPRS module including SIM card check & signal strength & network check - * @returns - * 0 on success, - * -1 on error - */ - int init(void); - - /** 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); - - /** Set SMS format and processing mode - * @returns - * 0 on success, - * -1 on error - */ - int settingSMS(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 by index - * @param *message buffer used to get SMS message - * @param index which SMS message to read - * @returns - * 0 on success, - * -1 on error - */ - int readSMS(char *message, int index); - - /** 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); - - /** Read SMS when coming a message,it will be store in messageBuffer. - * @param message buffer used to get SMS message - */ - int getSMS(char* message); - - /** 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 loopHandle(void); - - /** GPRS network init - * @param *apn Access Point Name to connect network - * @param *userName general is empty - * @param *passWord general is empty - */ - - int networkInit(char* apn, char* userName = NULL, char* passWord = NULL); - /** 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); - - Serial gprsSerial; - //USBSerial pc; - -private: - /** 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); - - Timer timeCnt; - char *phoneNumber; - char messageBuffer[SMS_MAX_LENGTH]; -}; - -#endif -