- Timestamp:
- Mar 28, 2016, 2:28:23 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
rtos_arduino/trunk/arduino_lib/libraries/Milkcocoa_Arduino_SDK/Client_ESP8266.h
r170 r180 23 23 #include "ESP8266.h" 24 24 25 #define ESP8266CLIENT_BUFFER_LEN 51226 27 25 class ESP8266Client: public Client, public ESP8266 { 28 29 26 public: 27 ESP8266Client(void) { 28 pbuffer = &rx_buffer[0]; 29 } 30 30 31 /* 31 32 * @retval 0 : faild … … 34 35 int connect(IPAddress ip, uint16_t port) { 35 36 String ip_str; 36 bufferlen= 0; 37 ip_str.concat(ip[0]); 38 ip_str.concat("."); 39 ip_str.concat(ip[1]); 40 ip_str.concat("."); 41 ip_str.concat(ip[2]); 42 ip_str.concat("."); 37 ip_str.concat(ip[0]); ip_str.concat("."); 38 ip_str.concat(ip[1]); ip_str.concat("."); 39 ip_str.concat(ip[2]); ip_str.concat("."); 43 40 ip_str.concat(ip[3]); 44 _connected = (createTCP(ip_str, port))? 1 : 0; 45 return (int)_connected; 41 return (createTCP(ip_str, port))? 1 : 0; 46 42 }; 47 43 48 44 int connect(const char *host, uint16_t port) { 49 45 String ip_str(host); 50 bufferlen= 0; 51 _connected = (createTCP(ip_str, port))? 1 : 0; 52 return (int)_connected; 46 return (createTCP(ip_str, port))? 1 : 0; 53 47 }; 54 48 … … 56 50 if(send(&data, 1)){ 57 51 return 1; 58 } 59 else { 60 return 0; 61 } 52 } 53 return 0; 62 54 }; 55 63 56 size_t write(const uint8_t *buf, size_t size){ 64 57 if(send(buf, size)){ 65 58 return size; 66 59 } 67 else {68 return 0;69 }70 };71 int available(){72 if (bufferlen > 0) {73 return 1;74 }75 if (dataAvailable()) {76 bufferlen = recv(buffer, ESP8266CLIENT_BUFFER_LEN);77 pbuffer = buffer;78 //In case of that data is available but it is not valid data(not +IPD,...),79 //connection is closed by server.(send "CLOSED")80 if(bufferlen == 0){81 _connected = 0;82 releaseTCP();83 return 0;84 }85 return 1;86 }87 60 return 0; 88 61 }; 62 63 int available(){ 64 return isDataAvailable(); 65 }; 66 89 67 int read(){ 90 if (bufferlen == 0) {91 bufferlen = recv(buffer, ESP8266CLIENT_BUFFER_LEN);92 pbuffer = buffer;68 uint8_t data; 69 if(recv(&data, 1) == 1) { 70 return data; 93 71 } 94 if (bufferlen > 0){ 95 bufferlen--; 96 return *pbuffer++; 97 } 98 else { 99 return (int)-1; 100 } 72 return (int)-1; 101 73 }; 102 int read(uint8_t *buf, size_t size){return recv(buf, size);}; 103 int peek(){return 1;}; 74 75 int read(uint8_t *buf, size_t size){ 76 return recv(buf, size); 77 }; 78 79 int peek(){ 80 return pbuffer->peek(); 81 }; 82 104 83 void flush(){}; 105 84 void stop(){releaseTCP();}; 106 uint8_t connected(){return _connected;};107 operator bool(){return (bool)(_connected == 1);};85 uint8_t connected(){return (isConnected())? 1 : 0;}; 86 operator bool(){return isConnected();}; 108 87 private: 109 uint8_t _connected; 110 uint8_t buffer[ESP8266CLIENT_BUFFER_LEN]; 111 uint8_t bufferlen; 112 uint8_t *pbuffer; 88 ESP8266_RingBuffer *pbuffer; 113 89 }; 114 90
Note:
See TracChangeset
for help on using the changeset viewer.