Lib SIM5320 avec SMS

Dependents:   0-sim5320e-L432KC-relais-0

Revision:
0:d63231e47571
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sim800l.h	Sun May 01 06:28:05 2022 +0000
@@ -0,0 +1,70 @@
+#ifndef _sim800l_
+#define _sim800l_
+#include "mbed.h"
+#include "MySerial.h"
+#ifndef maxdata
+#define maxdata 99   // taille des phrasers de dialogues.
+#endif
+#define timeoutdefaut 1
+#define timeoutsendsms 60
+#define timeoutreadsms 5
+#define timewaitCallready 10
+#define timewaitSmsready 60
+#define timewaitSmsallclear 25
+#define timewaitCCID 2
+
+extern MySerial pc;
+
+class Sim800l
+{
+public:
+    /*
+    * Constructor
+    *
+    * @param tx mbed pin to use for tx line of Serial interface
+    * @param rx mbed pin to use for rx line of Serial interface
+    * @param reset reset pin of the wifi module ()
+    */
+    Sim800l(PinName tx, PinName rx, PinName resetpin, int baudrate=9600);
+    bool init();
+    bool smsready(void);
+    bool sendsms(const char *phonenumber,const char *data);
+    bool readsms(int index);
+    bool smsclearall(void);
+    int IndexSmsRecu(void);
+    char *readtextesms();
+
+protected:
+    RawSerial serial;
+    DigitalOut reset;
+    /*    char *_DataTmp; // tableau de donnees pour stocker pendant reception
+        char *_Data; // tableau de donnees lorsque toutes les donnees sont recues
+        char *_DataSms; // tableau de donnees lorsque toutes les donnees sont recues
+        char *_Phrase; // pour convertir en phrase avant envoi
+        */
+
+    char _DataTmp[maxdata + 1]; // stocker pendant reception sur rxd en evenement
+    char _Data[maxdata + 1]; // stocke les donnees lorsqu'une phrase complete est recu 
+    char _DataSms[maxdata + 1]; // stocke donnee lorsquun sms est recu
+    char _Phrase[maxdata + 1]; // phrase temporaire pour convertir en phrase avant envoi fprintf
+
+    volatile int _DataPtr = 0; // position de stockage de la prochaine donnee a recevoir
+    volatile bool _DataReady = false;  // des donnees complete ont ete recus
+    volatile bool _SmsReady = false;  // un sms est recu
+    volatile int _IndexSms;   // contient lindex du sms
+    Timeout _timeout; // permet deviter blocage en attente
+    volatile bool FinTimeOut;  // 
+    
+    bool dataready(void);  // renvoi letat xe _dataready
+    char * read(void);
+    void receive();
+    void Ftimeout();
+    void SetTimeout(float delay);
+// attente r eponse dans *reponse
+    bool waitreponse(const char *reponse,float timeout);
+// envoi commande et attend reponse
+    bool writecmdandwaitreponse(const char *data, const char *reponse,float timeout);
+// attente reponse dans *reponse
+    bool waitsmsreponse(const char *reponse,float timeout);
+};
+#endif
\ No newline at end of file