Lib SIM5320 avec SMS

Dependents:   0-sim5320e-L432KC-relais-0

Committer:
schnf30
Date:
Sun May 01 06:28:05 2022 +0000
Revision:
0:d63231e47571
New 1-5-2022

Who changed what in which revision?

UserRevisionLine numberNew contents of line
schnf30 0:d63231e47571 1 #ifndef _sim800l_
schnf30 0:d63231e47571 2 #define _sim800l_
schnf30 0:d63231e47571 3 #include "mbed.h"
schnf30 0:d63231e47571 4 #include "MySerial.h"
schnf30 0:d63231e47571 5 #ifndef maxdata
schnf30 0:d63231e47571 6 #define maxdata 99 // taille des phrasers de dialogues.
schnf30 0:d63231e47571 7 #endif
schnf30 0:d63231e47571 8 #define timeoutdefaut 1
schnf30 0:d63231e47571 9 #define timeoutsendsms 60
schnf30 0:d63231e47571 10 #define timeoutreadsms 5
schnf30 0:d63231e47571 11 #define timewaitCallready 10
schnf30 0:d63231e47571 12 #define timewaitSmsready 60
schnf30 0:d63231e47571 13 #define timewaitSmsallclear 25
schnf30 0:d63231e47571 14 #define timewaitCCID 2
schnf30 0:d63231e47571 15
schnf30 0:d63231e47571 16 extern MySerial pc;
schnf30 0:d63231e47571 17
schnf30 0:d63231e47571 18 class Sim800l
schnf30 0:d63231e47571 19 {
schnf30 0:d63231e47571 20 public:
schnf30 0:d63231e47571 21 /*
schnf30 0:d63231e47571 22 * Constructor
schnf30 0:d63231e47571 23 *
schnf30 0:d63231e47571 24 * @param tx mbed pin to use for tx line of Serial interface
schnf30 0:d63231e47571 25 * @param rx mbed pin to use for rx line of Serial interface
schnf30 0:d63231e47571 26 * @param reset reset pin of the wifi module ()
schnf30 0:d63231e47571 27 */
schnf30 0:d63231e47571 28 Sim800l(PinName tx, PinName rx, PinName resetpin, int baudrate=9600);
schnf30 0:d63231e47571 29 bool init();
schnf30 0:d63231e47571 30 bool smsready(void);
schnf30 0:d63231e47571 31 bool sendsms(const char *phonenumber,const char *data);
schnf30 0:d63231e47571 32 bool readsms(int index);
schnf30 0:d63231e47571 33 bool smsclearall(void);
schnf30 0:d63231e47571 34 int IndexSmsRecu(void);
schnf30 0:d63231e47571 35 char *readtextesms();
schnf30 0:d63231e47571 36
schnf30 0:d63231e47571 37 protected:
schnf30 0:d63231e47571 38 RawSerial serial;
schnf30 0:d63231e47571 39 DigitalOut reset;
schnf30 0:d63231e47571 40 /* char *_DataTmp; // tableau de donnees pour stocker pendant reception
schnf30 0:d63231e47571 41 char *_Data; // tableau de donnees lorsque toutes les donnees sont recues
schnf30 0:d63231e47571 42 char *_DataSms; // tableau de donnees lorsque toutes les donnees sont recues
schnf30 0:d63231e47571 43 char *_Phrase; // pour convertir en phrase avant envoi
schnf30 0:d63231e47571 44 */
schnf30 0:d63231e47571 45
schnf30 0:d63231e47571 46 char _DataTmp[maxdata + 1]; // stocker pendant reception sur rxd en evenement
schnf30 0:d63231e47571 47 char _Data[maxdata + 1]; // stocke les donnees lorsqu'une phrase complete est recu
schnf30 0:d63231e47571 48 char _DataSms[maxdata + 1]; // stocke donnee lorsquun sms est recu
schnf30 0:d63231e47571 49 char _Phrase[maxdata + 1]; // phrase temporaire pour convertir en phrase avant envoi fprintf
schnf30 0:d63231e47571 50
schnf30 0:d63231e47571 51 volatile int _DataPtr = 0; // position de stockage de la prochaine donnee a recevoir
schnf30 0:d63231e47571 52 volatile bool _DataReady = false; // des donnees complete ont ete recus
schnf30 0:d63231e47571 53 volatile bool _SmsReady = false; // un sms est recu
schnf30 0:d63231e47571 54 volatile int _IndexSms; // contient lindex du sms
schnf30 0:d63231e47571 55 Timeout _timeout; // permet deviter blocage en attente
schnf30 0:d63231e47571 56 volatile bool FinTimeOut; //
schnf30 0:d63231e47571 57
schnf30 0:d63231e47571 58 bool dataready(void); // renvoi letat xe _dataready
schnf30 0:d63231e47571 59 char * read(void);
schnf30 0:d63231e47571 60 void receive();
schnf30 0:d63231e47571 61 void Ftimeout();
schnf30 0:d63231e47571 62 void SetTimeout(float delay);
schnf30 0:d63231e47571 63 // attente r eponse dans *reponse
schnf30 0:d63231e47571 64 bool waitreponse(const char *reponse,float timeout);
schnf30 0:d63231e47571 65 // envoi commande et attend reponse
schnf30 0:d63231e47571 66 bool writecmdandwaitreponse(const char *data, const char *reponse,float timeout);
schnf30 0:d63231e47571 67 // attente reponse dans *reponse
schnf30 0:d63231e47571 68 bool waitsmsreponse(const char *reponse,float timeout);
schnf30 0:d63231e47571 69 };
schnf30 0:d63231e47571 70 #endif