Changeset 212


Ignore:
Timestamp:
Apr 2, 2016, 1:16:42 PM (8 years ago)
Author:
ertl-honda
Message:

Clientを標準的な構成に変更.

Location:
rtos_arduino/trunk/arduino_lib/libraries/ESP8266_Arudino_AT
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • rtos_arduino/trunk/arduino_lib/libraries/ESP8266_Arudino_AT/Client_ESP8266.h

    r189 r212  
    2323#include "Client.h"
    2424
    25 class ESP8266Client: public Client, public ESP8266 {
     25class ESP8266Client: public Client {
    2626  public:
    2727    ESP8266Client(void) {
    28         pbuffer = &rx_buffer[0];
     28        mux_id = 0;
     29        mux = false;
     30        pbuffer = &(WiFi.rx_buffer[0]);
    2931    }
     32
     33    ESP8266Client(uint8_t _mux_id) {
     34        mux_id = _mux_id;
     35        mux = true;
     36        pbuffer = &(WiFi.rx_buffer[mux_id]);
     37    }   
    3038   
    3139    /*
     
    3442     */
    3543    int connect(IPAddress ip, uint16_t port) {
    36         if (isConnected()) return 1;
    37         String ip_str;
    38         ip_str.concat(ip[0]); ip_str.concat(".");
    39         ip_str.concat(ip[1]); ip_str.concat(".");
    40         ip_str.concat(ip[2]); ip_str.concat(".");
    41         ip_str.concat(ip[3]);
    42         return (createTCP(ip_str, port))? 1 : 0;
     44        if (mux) {
     45            if (WiFi.isConnected(mux_id)) return 1;
     46            String ip_str;
     47            ip_str.concat(ip[0]); ip_str.concat(".");
     48            ip_str.concat(ip[1]); ip_str.concat(".");
     49            ip_str.concat(ip[2]); ip_str.concat(".");
     50            ip_str.concat(ip[3]);
     51            return (WiFi.createTCP(mux_id, ip_str, port))? 1 : 0;           
     52        }
     53        else {
     54            if (WiFi.isConnected()) return 1;
     55            String ip_str;
     56            ip_str.concat(ip[0]); ip_str.concat(".");
     57            ip_str.concat(ip[1]); ip_str.concat(".");
     58            ip_str.concat(ip[2]); ip_str.concat(".");
     59            ip_str.concat(ip[3]);
     60            return (WiFi.createTCP(ip_str, port))? 1 : 0;
     61        }
    4362    };
    4463   
    4564    int connect(const char *host, uint16_t port) {
    46         if (isConnected()) return 1;
    47         String ip_str(host);
    48         return (createTCP(ip_str, port))? 1 : 0;
     65        if (mux) {
     66            if (WiFi.isConnected(mux_id)) return 1;
     67            String ip_str(host);
     68            return (WiFi.createTCP(mux_id, ip_str, port))? 1 : 0;
     69        }
     70        else {
     71            if (WiFi.isConnected()) return 1;
     72            String ip_str(host);
     73            return (WiFi.createTCP(ip_str, port))? 1 : 0;
     74        }
    4975    };
    5076   
    5177    size_t write(uint8_t data) {
    52         if(send(&data, 1)){
    53             return 1;
    54         }       
    55         return 0;
     78        if (mux) {
     79            if(WiFi.send(mux_id, &data, 1)){
     80                return 1;
     81            }       
     82            return 0;
     83        }
     84        else {
     85            if(WiFi.send(&data, 1)){
     86                return 1;
     87            }       
     88            return 0;
     89        }
    5690    };
    5791
    5892    size_t write(const uint8_t *buf, size_t size){
    59         if(send(buf, size)){
    60             return size;
     93        if (mux) {
     94            if(WiFi.send(mux_id, buf, size)){
     95                return size;
     96            }
     97            return 0;
    6198        }
    62         return 0;
     99        else {
     100            if(WiFi.send(buf, size)){
     101                return size;
     102            }
     103            return 0;           
     104        }
    63105    };
    64106   
    65     int available(){
    66         return isDataAvailable();
     107    int available(void){
     108        if(mux) {
     109            return WiFi.isDataAvailable(mux_id);
     110        }
     111        else {
     112            return WiFi.isDataAvailable();
     113        }
    67114    };
    68115   
    69116    int read(){
    70117        uint8_t data;
    71         if(recv(&data, 1) == 1) {
    72             return data;
     118        if(mux) {
     119            if(WiFi.recv(mux_id, &data, 1) == 1) {
     120                return data;
     121            }
     122            return (int)-1;           
    73123        }
    74         return (int)-1;
     124        else {
     125            if(WiFi.recv(&data, 1) == 1) {
     126                return data;
     127            }
     128            return (int)-1;
     129        }
    75130    };
    76131   
    77132    int read(uint8_t *buf, size_t size){
    78         return recv(buf, size);
     133        if(mux) {
     134            return WiFi.recv(mux_id, buf, size);
     135        }
     136        else {
     137            return WiFi.recv(buf, size);
     138        }
    79139    };
    80140   
    81     int peek(){
     141    int peek(void){
    82142        return pbuffer->peek();
    83143    };
    84144   
    85     void flush(){};
    86     void stop(){ if (isConnected()) { releaseTCP(); }}
    87     uint8_t connected(){return (isConnected())? 1 : 0;};
    88     operator bool(){return isConnected();};
     145    void flush(void){};
     146    void stop(void){
     147        if(mux) {
     148            if (WiFi.isConnected(mux_id)) {
     149                WiFi.releaseTCP(mux_id);
     150            }           
     151        }
     152        else {
     153            if (WiFi.isConnected()) {
     154                WiFi.releaseTCP();
     155            }
     156        }
     157    };
     158    uint8_t connected(void){
     159        if(mux) {
     160            return (WiFi.isConnected(mux_id))? 1 : 0;
     161        }
     162        else {
     163            return (WiFi.isConnected())? 1 : 0;
     164        }
     165    };
     166    operator bool(){
     167        if(mux) {
     168            return WiFi.isConnected(mux_id);
     169        }
     170        else {
     171            return WiFi.isConnected();
     172        }
     173    };
     174
    89175  private:
    90176    ESP8266_RingBuffer *pbuffer;
     177    uint8_t mux_id;
     178    bool    mux;
    91179};
    92180
  • rtos_arduino/trunk/arduino_lib/libraries/ESP8266_Arudino_AT/ESP8266.cpp

    r202 r212  
    12931293}
    12941294
     1295ESP8266 WiFi;
  • rtos_arduino/trunk/arduino_lib/libraries/ESP8266_Arudino_AT/ESP8266.h

    r189 r212  
    487487     */   
    488488    bool getMuxCStatus(uint8_t *mux_id_ptn);
     489
     490    friend class ESP8266Client;
    489491   
    490492 private:
     
    594596};
    595597
     598extern ESP8266 WiFi;
     599
    596600#endif /* #ifndef __ESP8266_H__ */
    597601
Note: See TracChangeset for help on using the changeset viewer.