wifisp1

Committer:
schnf30
Date:
Sun May 23 13:26:59 2021 +0000
Revision:
0:5339903aacbc
Child:
1:227c9c991c1b
Wifi esp8266 - esp10 module prog. SF

Who changed what in which revision?

UserRevisionLine numberNew contents of line
schnf30 0:5339903aacbc 1 #include "mbed.h"
schnf30 0:5339903aacbc 2 #include "wifiesp8266.h"
schnf30 0:5339903aacbc 3
schnf30 0:5339903aacbc 4 /*WifiEsp8266::WifiEsp8266(PinName Txd, PinName Rxd) : RawSerial(Txd,Rxd)
schnf30 0:5339903aacbc 5 {
schnf30 0:5339903aacbc 6 baud(Baud);
schnf30 0:5339903aacbc 7 _DataPtr = 0;
schnf30 0:5339903aacbc 8 _DataReady = false;
schnf30 0:5339903aacbc 9 // attach(this,&WifiEsp8266::receive, RawSerial::RxIrq);
schnf30 0:5339903aacbc 10 }*/
schnf30 0:5339903aacbc 11
schnf30 0:5339903aacbc 12 WifiEsp8266::WifiEsp8266(PinName Txd, PinName Rxd, PinName En) : RawSerial(Txd,Rxd), _En(En)
schnf30 0:5339903aacbc 13 {
schnf30 0:5339903aacbc 14 baud(Baud);
schnf30 0:5339903aacbc 15 _En = 1;
schnf30 0:5339903aacbc 16 _DataPtr = 0;
schnf30 0:5339903aacbc 17 _DataReady = false;
schnf30 0:5339903aacbc 18 attach(this,&WifiEsp8266::receive, RawSerial::RxIrq);
schnf30 0:5339903aacbc 19 }
schnf30 0:5339903aacbc 20 char * WifiEsp8266::read(void)
schnf30 0:5339903aacbc 21 {
schnf30 0:5339903aacbc 22 _DataReady = false;
schnf30 0:5339903aacbc 23 return _Data;
schnf30 0:5339903aacbc 24 }
schnf30 0:5339903aacbc 25
schnf30 0:5339903aacbc 26 bool WifiEsp8266::dataready(void)
schnf30 0:5339903aacbc 27 {
schnf30 0:5339903aacbc 28 return _DataReady;
schnf30 0:5339903aacbc 29 }
schnf30 0:5339903aacbc 30
schnf30 0:5339903aacbc 31 // reception phrase de type '$' "....' "\r\n"
schnf30 0:5339903aacbc 32 void WifiEsp8266::receive(void)
schnf30 0:5339903aacbc 33 {
schnf30 0:5339903aacbc 34 bool _PhraseComplete = false;
schnf30 0:5339903aacbc 35 char inChar;
schnf30 0:5339903aacbc 36 while (readable() && (_PhraseComplete == false)) {
schnf30 0:5339903aacbc 37 inChar = getc();
schnf30 0:5339903aacbc 38 switch (inChar) {
schnf30 0:5339903aacbc 39 case '$' :
schnf30 0:5339903aacbc 40 _DataPtr = 0;
schnf30 0:5339903aacbc 41 _DataTmp[_DataPtr++] = inChar;
schnf30 0:5339903aacbc 42 _DataTmp[_DataPtr] = 0;
schnf30 0:5339903aacbc 43 break;
schnf30 0:5339903aacbc 44 case '\n' :
schnf30 0:5339903aacbc 45 if (_DataPtr > 1) {
schnf30 0:5339903aacbc 46 strcpy(_Data,_DataTmp);
schnf30 0:5339903aacbc 47 _PhraseComplete = true;
schnf30 0:5339903aacbc 48 }
schnf30 0:5339903aacbc 49 _DataTmp[0] = 0;
schnf30 0:5339903aacbc 50 _DataPtr = 0;
schnf30 0:5339903aacbc 51 break;
schnf30 0:5339903aacbc 52 case '\r' :
schnf30 0:5339903aacbc 53 break;
schnf30 0:5339903aacbc 54 default :
schnf30 0:5339903aacbc 55 if (_DataPtr > 0) {
schnf30 0:5339903aacbc 56 _DataTmp[_DataPtr++] = inChar;
schnf30 0:5339903aacbc 57 _DataTmp[_DataPtr] = 0;
schnf30 0:5339903aacbc 58 }
schnf30 0:5339903aacbc 59 }
schnf30 0:5339903aacbc 60 if (_DataPtr >= maxdata) { // si phrase trop longue vide phrase
schnf30 0:5339903aacbc 61 _DataTmp[0] = 0;
schnf30 0:5339903aacbc 62 _DataPtr = 0;
schnf30 0:5339903aacbc 63 _PhraseComplete = false;
schnf30 0:5339903aacbc 64 }
schnf30 0:5339903aacbc 65 }
schnf30 0:5339903aacbc 66 _DataReady = _PhraseComplete;
schnf30 0:5339903aacbc 67 }