Ignore:
Timestamp:
Mar 28, 2016, 2:12:01 PM (8 years ago)
Author:
ertl-honda
Message:

実装と乖離してきたため削除.

File:
1 edited

Legend:

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

    r143 r177  
    2626#include "Arduino.h"
    2727
    28 
    2928//#define ESP8266_USE_SOFTWARE_SERIAL
    3029
     30#define ESP8266_SUPPORT_VERSION "AT version:0.25"
     31
     32#define ESP8266_NUM_CONNECTION 5
    3133
    3234#ifdef ESP8266_USE_SOFTWARE_SERIAL
    3335#include "SoftwareSerial.h"
    34 #endif
    35 
     36#endif /* ESP8266_USE_SOFTWARE_SERIAL */
     37
     38#define ESP8266_CONNECTION_OPEN     0x01
     39#define ESP8266_CONNECTION_CLOSE    0x02
     40
     41#define ESP8266_CONNECTION_TCP      0x01
     42#define ESP8266_CONNECTION_UDP      0x02
     43
     44#define ESP8266_CONNECTION_CLIENT   0x01
     45#define ESP8266_CONNECTION_SERVER   0x02
     46
     47#define ESP8266_STATUS_GOTIP        0x02
     48#define ESP8266_STATUS_CONNECTED    0x03
     49#define ESP8266_STATUS_DISCONNECTED 0x04
     50
     51#define ESP8266_WMODE_STATION       0x01
     52#define ESP8266_WMODE_SOFTAP        0x02
     53#define ESP8266_WMODE_AP_STATION    0x03
     54
     55struct esp8266_connection_status
     56{
     57    uint8_t connection_type;
     58    uint8_t protocol_type;
     59};
     60
     61#define ESP8266_RINGBUFFER_SIZE  512
     62
     63class ESP8266_RingBuffer
     64{
     65  public:
     66    ESP8266_RingBuffer(void);
     67    void init(void);
     68    void free(void) {len = head = tail = 0;};
     69    bool write(uint8_t c);
     70    uint8_t read(void);
     71    uint32_t copy(uint8_t *pdata, uint32_t size);
     72    uint8_t peek(void);
     73    bool available(void) {return (len > 0);};
     74    bool isFull(void) {return (len == ESP8266_RINGBUFFER_SIZE);};
     75    uint32_t length(void) {return len;};
     76   
     77  private:
     78    uint8_t *buffer;
     79    uint32_t head;
     80    uint32_t tail;
     81    uint32_t len;
     82};
    3683
    3784/**
     
    4188 public:
    4289
    43 #ifdef ESP8266_USE_SOFTWARE_SERIAL
    4490    /*
    4591     * Begin.
     
    4894     * @param baud - the buad rate to communicate with ESP8266(default:115200).
    4995     *
    50      * @warning parameter baud depends on the AT firmware. 115200 is an common value.
    51      */
    52     void begin(SoftwareSerial &uart, uint32_t baud = 115200);
     96     * @retval 0 : Success
     97     * @retval 1 : Can not communicate ESP8266
     98     * @retval 2 : Firmware Version mismatch.
     99     *     
     100     * @warning parameter baud depends on the AT firmware. 115200 is an common value.
     101     */
     102#ifdef ESP8266_USE_SOFTWARE_SERIAL   
     103    int begin(SoftwareSerial &uart, uint32_t baud = 115200);
    53104#else /* HardwareSerial */
    54     /*
    55      * Begin.
    56      *
    57      * @param uart - an reference of HardwareSerial object.
    58      * @param baud - the buad rate to communicate with ESP8266(default:115200).
    59      *
    60      * @warning parameter baud depends on the AT firmware. 115200 is an common value.
    61      */
    62     void begin(HardwareSerial &uart, uint32_t baud = 115200);
    63 #endif
    64    
     105    int begin(HardwareSerial &uart, uint32_t baud = 115200);
     106#endif /* ESP8266_USE_SOFTWARE_SERIAL */
    65107   
    66108    /**
     
    176218     */
    177219    String getLocalIP(void);
    178    
     220
    179221    /**
    180222     * Enable IP MUX(multiple connection mode).
     
    390432     */
    391433    uint32_t recv(uint8_t mux_id, uint8_t *buffer, uint32_t buffer_size, uint32_t timeout = 1000);
    392    
     434
    393435    /**
    394436     * Receive data from all of TCP or UDP builded already in multiple mode.
     
    404446     */
    405447    uint32_t recv(uint8_t *coming_mux_id, uint8_t *buffer, uint32_t buffer_size, uint32_t timeout = 1000);
    406 
    407     /**
    408      * Check data is available.
    409      *
    410      * @return 1 : data is available, 0 : data is not available
    411      */
    412     int dataAvailable(void);
    413 
     448   
     449    /**
     450     * Check data is available in specific connection.
     451     *
     452     * @param mux_id - the identifier of this TCP(available value: 0 - 4).     
     453     * @return true - data is available.
     454     * @return false - data is not available.
     455     */
     456    bool isDataAvailable(uint8_t mux_id);
     457
     458    /**
     459     * Check data is available in any connection.
     460     *
     461     * @return true - data is available.
     462     * @return false - data is not available.
     463     */
     464    bool isDataAvailable(void);
     465
     466    /**
     467     * Check connection is opned in single mode.
     468     *
     469     * @return true  - opend.
     470     * @return false - closed.
     471     */
     472    bool isConnected(void);
     473
     474    /**
     475     * Check specific connection is opned in multiple mode.
     476     *
     477     * @return true  - opend.
     478     * @return false - closed.
     479     */
     480    bool isConnected(uint8_t mux_id);
     481
     482    /**
     483     * Get connection link status
     484     *
     485     * @return true  - success.
     486     * @return false - error.
     487     */   
     488    bool getMuxCStatus(uint8_t *mux_id_ptn);
     489
     490    /**
     491     * 
     492     */
     493    ESP8266_RingBuffer rx_buffer[ESP8266_NUM_CONNECTION];
     494   
    414495 private:
    415496
     
    418499     */
    419500    void rx_empty(void);
    420  
     501
    421502    /*
    422      * Recvive data from uart. Return all received data if target found or timeout.
    423      */
    424     String recvString(String target, uint32_t timeout = 1000);
    425    
    426     /*
    427      * Recvive data from uart. Return all received data if one of target1 and target2 found or timeout.
    428      */
    429     String recvString(String target1, String target2, uint32_t timeout = 1000);
    430    
     503     * Read all data in UART RX.
     504     */
     505    void rx_update(void);   
     506     
    431507    /*
    432508     * Recvive data from uart. Return all received data if one of target1, target2 and target3 found or timeout.
    433509     */
    434     String recvString(String target1, String target2, String target3, uint32_t timeout = 1000);
     510    int recvString(String target1, String target2, String target3, uint32_t timeout = 1000);
    435511   
    436512    /*
     
    440516   
    441517    /*
    442      * Recvive data from uart and search first target and cut out the substring between begin and end(excluding begin and end self).
     518     * Recvive data from uart and search first target and cut out the substring between begin and end(excluding begin and end self). a
    443519     * Return true if target found, false for timeout.
    444520     */
     
    454530     * @param coming_mux_id - in single connection mode, should be NULL and not NULL in multiple.
    455531     */
    456     uint32_t recvPkg(uint8_t *buffer, uint32_t buffer_size, uint32_t *data_len, uint32_t timeout, uint8_t *coming_mux_id);
    457    
     532    uint32_t recvPkg(uint8_t *buffer, uint32_t buffer_size, uint32_t timeout, uint8_t mux_id, uint8_t *coming_mux_id);
    458533   
    459534    bool eAT(void);
     
    461536    bool eATGMR(String &version);
    462537   
    463     bool qATCWMODE(uint8_t *mode);
    464     bool sATCWMODE(uint8_t mode);
    465     bool sATCWJAP(String ssid, String pwd);
     538    bool qATCWMODE_CUR(uint8_t *mode);
     539    bool sATCWMODE_CUR(uint8_t mode);
     540    bool sATCWJAP_CUR(String ssid, String pwd);
    466541    bool eATCWLAP(String &list);
    467542    bool eATCWQAP(void);
    468     bool sATCWSAP(String ssid, String pwd, uint8_t chl, uint8_t ecn);
     543    bool sATCWSAP_CUR(String ssid, String pwd, uint8_t chl, uint8_t ecn);
    469544    bool eATCWLIF(String &list);
    470545   
     
    482557    bool sATCIPSERVER(uint8_t mode, uint32_t port = 333);
    483558    bool sATCIPSTO(uint32_t timeout);
    484    
    485     /*
    486      * +IPD,len:data
    487      * +IPD,id,len:data
    488      */
     559
     560    void initialize_status(void);
     561   
     562    uint32_t recvIPD(uint32_t timeout, uint8_t *buffer = NULL, uint32_t buffer_size = 0,
     563                     uint8_t mux_id = 0, uint8_t *coming_mux_id = NULL);
     564
     565    void recvAsyncdata(uint32_t timeout = 0);
    489566   
    490567#ifdef ESP8266_USE_SOFTWARE_SERIAL
     
    494571#endif
    495572    uint32_t m_baud;
     573
     574    uint8_t wifi_status;
     575    bool    mux_mode;
     576    uint8_t connection_bitmap;
     577    esp8266_connection_status connection_status[ESP8266_NUM_CONNECTION];
     578
     579    String rx_cmd;
    496580};
    497581
Note: See TracChangeset for help on using the changeset viewer.