client-c  0.8.1
esp8266.h
Go to the documentation of this file.
1 
17 /*
18  * esp8266.h
19  *
20  * Created on: Mar 18, 2015
21  * Author: Andriy Panasenko <apanasenko@cybervisiontech.com>
22  */
23 
24 #ifndef LIBRARIES_ESP8266_ESP8266_H_
25 #define LIBRARIES_ESP8266_ESP8266_H_
26 
27 #include "esp8266_serial.h"
28 
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32 
34 #define TCP_SEND_MAX_BUFFER 2048
35 
36 struct esp8266_t;
37 typedef struct esp8266_t esp8266_t;
38 
39 typedef enum {
56 
57 typedef enum {
65 
66 typedef struct {
68  char *ssid;
69  uint32_t rssi;
70  uint8_t mac[6];
71  uint32_t channel;
73 
74 typedef void (*on_esp8266_comand_complete_fn)(void *context
75  , const bool result
76  , const bool timeout_expired
77  , const char* command
78  , int index
79  , time_t comand_complete_milis);
80 
81 typedef void (*on_esp8266_tcp_receive_fn)(void *context
82  , int id
83  , const uint8 *buffer
84  , const int receive_size);
85 
86 
87 esp8266_error_t esp8266_create(esp8266_t **controler, esp8266_serial_t *hw_serial, size_t rx_buffer_size);
88 
89 void esp8266_destroy(esp8266_t *controler);
90 
92  on_esp8266_comand_complete_fn command_callback,
93  void *callback_context,
94  const char *command,
95  const char *success, size_t success_size,
96  const char *error, size_t error_size,
97  time_t timeout_milis);
98 
100 
101 esp8266_error_t esp8266_echo(esp8266_t *controler, bool echo_enabled);
102 
103 esp8266_error_t esp8266_scan(esp8266_t *controler, esp8266_wifi_ap_t **ap_array, size_t *ap_array_size);
104 
105 esp8266_error_t esp8266_process(esp8266_t *controler, time_t limit_timeout_milis);
106 
107 esp8266_error_t esp8266_connect_wifi(esp8266_t *controler, const char *SSID, const char *pwd);
108 
109 esp8266_error_t esp8266_mux_mod(esp8266_t *controler, bool mux_mod_enabled);
110 
112 
113 esp8266_error_t esp8266_connect_tcp(esp8266_t *controler, const char* hostname, const size_t hostname_size, const uint16_t port, int *id);
114 
115 esp8266_error_t esp8266_send_tcp(esp8266_t *controler, int id, const uint8* buffer, const size_t size);
116 
117 esp8266_error_t esp8266_tcp_register_receive_callback(esp8266_t *controler, on_esp8266_tcp_receive_fn receive_callback, void *receive_context);
118 
120 
122 
123 /*
124  * Standard error handling macros
125  */
126 #define ESP8266_RETURN_IF_ERR(E) \
127  { if (E) return E; }
128 
129 #define ESP8266_RETURN_IF_NIL(p, E) \
130  { if (!(p)) return E; }
131 
132 #define ESP8266_RETURN_IF_NIL2(p1, p2, E) \
133  { if (!(p1) || !(p2)) return E; }
134 
135 #define ESP8266_RETURN_IF_NIL3(p1, p2, p3, E) \
136  { if (!(p1) || !(p2) || !(p3)) return E; }
137 
138 #define ESP8266_RETURN_IF_NIL4(p1, p2, p3, p4, E) \
139  { if (!(p1) || !(p2) || !(p3) || !(p4)) return E; }
140 
141 #define ESP8266_RETURN_IF_NIL5(p1, p2, p3, p4, p5,E) \
142  { if (!(p1) || !(p2) || !(p3) || !(p4) || !(p5)) return E; }
143 
144 #ifdef __cplusplus
145 } /* extern "C" */
146 #endif
147 #endif /* LIBRARIES_ESP8266_ESP8266_H_ */
struct esp8266_t esp8266_t
Definition: esp8266.h:37
esp8266_error_t esp8266_disconnect_tcp(esp8266_t *controler, int id)
esp8266_error_t esp8266_init(esp8266_t *controler)
esp8266_error_t
Definition: esp8266.h:39
void esp8266_destroy(esp8266_t *controler)
esp8266_error_t esp8266_echo(esp8266_t *controler, bool echo_enabled)
esp8266_error_t esp8266_send_command(esp8266_t *controler, on_esp8266_comand_complete_fn command_callback, void *callback_context, const char *command, const char *success, size_t success_size, const char *error, size_t error_size, time_t timeout_milis)
esp8266_error_t esp8266_check_status(esp8266_t *controler)
void(* on_esp8266_comand_complete_fn)(void *context, const bool result, const bool timeout_expired, const char *command, int index, time_t comand_complete_milis)
Definition: esp8266.h:74
void(* on_esp8266_tcp_receive_fn)(void *context, int id, const uint8 *buffer, const int receive_size)
Definition: esp8266.h:81
esp8266_wifi_ap_type_t ap_type
Definition: esp8266.h:67
esp8266_error_t esp8266_disconnect_wifi(esp8266_t *controler)
esp8266_error_t esp8266_process(esp8266_t *controler, time_t limit_timeout_milis)
uint32_t channel
Definition: esp8266.h:71
esp8266_error_t esp8266_connect_wifi(esp8266_t *controler, const char *SSID, const char *pwd)
struct esp8266_serial_t esp8266_serial_t
esp8266_error_t esp8266_create(esp8266_t **controler, esp8266_serial_t *hw_serial, size_t rx_buffer_size)
esp8266_error_t esp8266_mux_mod(esp8266_t *controler, bool mux_mod_enabled)
esp8266_error_t esp8266_scan(esp8266_t *controler, esp8266_wifi_ap_t **ap_array, size_t *ap_array_size)
esp8266_error_t esp8266_connect_tcp(esp8266_t *controler, const char *hostname, const size_t hostname_size, const uint16_t port, int *id)
uint32_t rssi
Definition: esp8266.h:69
esp8266_wifi_ap_type_t
Definition: esp8266.h:57
esp8266_error_t esp8266_tcp_register_receive_callback(esp8266_t *controler, on_esp8266_tcp_receive_fn receive_callback, void *receive_context)
esp8266_error_t esp8266_send_tcp(esp8266_t *controler, int id, const uint8 *buffer, const size_t size)