使用 Espressif(樂鑫) ESP8266 的 SDK 編寫無線網路時,需要使用到註冊回調函數(Registered Callback Function)和回調函數(Callback Function),註冊回調函數用作無線網路的註冊或指定呼叫回調函數,回調函數則作為指定動作的事件處理,所以在初始化時註冊了回調函數,當事件發生時,便可以呼叫回調函數來處理事情。
回調函數(Callback Function) |
- espconn_regist_connectcb
- espconn_regist_reconcb
- espconn_regist_disconcb
- espconn_regist_sentcb
- espconn_regist_recvc
espconn_regist_connectcb
|
|
功能
|
註冊連接函數,成功連接時回調
|
函數定義
|
sint int8
espconn_regist_connectcb
(struct espconn
*espconn, espconn_connect_callback connect_cb)
|
輸入參數
|
struct espconn
*espconn - 相應連接的控制塊結構
espconn_connect_callback
connect_cb - 註冊的回調函數
|
返回
|
0 -
succeed,#define
ESPCONN_OK 0
非 0 - Erro,詳見 espconn.h
|
espconn_regist_reconcb
|
|
功能
|
註冊重連函數,出錯收到重連時回調
|
函數定義
|
s int int8
espconn_regist_reconcb
(struct espconn
*espconn, espconn_connect_callback recon_cb)
|
輸入參數
|
struct espconn
*espconn - 相應連接的控制塊結構
espconn_connect_callback
recon_cb - 註冊的回調函數
|
返回
|
0 -
succeed,#define
ESPCONN_OK 0
非 0 - Erro,詳見 espconn.h
|
espconn_regist_disconcb
|
|
功能
|
註冊斷開連接函數,斷開連接成功時回調
|
函數定義
|
s int int8
espconn_regist_disconcb
(struct espconn
*espconn, espconn_connect_callback discon_cb)
|
輸入參數
|
struct espconn *espconn
- 相應連接的控制塊結構
espconn_connect_callback
discon_cb - 註冊的回調函數
|
返回
|
0 -
succeed,#define
ESPCONN_OK 0
非 0 - Erro,詳見 espconn.h
|
espconn_regist_sentcb
|
|
功能
|
註冊數據資料發送函,數據發送成功後回調
|
函數定義
|
sint int8
espconn_regist_sentcb
(struct espconn
*espconn, espconn_sent_callback sent_cb)
|
輸入參數
|
struct espconn
*espconn - 相應連接的控制塊結構
espconn_sent_callback
cb - 註冊的回調函數 註冊的回調函數
|
返回
|
0 -
succeed,#define
ESPCONN_OK 0
非 0 - Erro,詳見 espconn.h
|
espconn_regist_recvcb
|
|
功能
|
註冊數據資料接收函數,收到數據時回調
|
函數定義
|
s int int8
espconn_regist_recvcb
(struct espconn
*espconn, espconn_recv_callback recv_cb)
|
輸入參數
|
struct espconn
*espconn - 相應連接的控制塊結構
espconn_recv_callback
recv_cb - 註冊的回調函數
|
返回
|
0 -
succeed,#define
ESPCONN_OK 0
非 0 - Erro,詳見 espconn.h
|
ESP8266 註冊回調函數程式:
espconn_regist_connectcb(pespconn, server_listen_cb);
//註冊連接回調函數
espconn_regist_disconcb(pespconn, server_discon_cb);
//註冊斷開連接回調函數
espconn_regist_sentcb(pespconn, server_sent-cb); //註冊發送資料成功回調函數
espconn_regist_recvcb(pespconn, server_recv_cb); //註冊接收資料回調函數
|
回調函數(Callback Function):
- espconn_connect_callback
- espconn_sent_callback
- espconn_recv_callback
espconn_connect_callback
|
|
功能
|
偵聽或連接成回調
|
函數定義
|
void espconn_connect_callback
(void *arg)
|
輸入參數
|
void *arg - 回調函數參數
|
返回
|
無
|
espconn_sent_callback
|
|
功能
|
數據發送結束回調
|
函數定義
|
void
espconn_sent_callback (void *arg)
|
輸入參數
|
void *arg - 回調函數參數
|
返回
|
無
|
espconn_recv_callback
|
|
功能
|
數據發送結束回調
|
函數定義
|
void espconn_recv_callback
(void *arg, char *pdata, unsigned short len)
|
輸入參數
|
void *arg - 回調函數參數
char *pdata –接收數據入口參數
unsigned short len
- 接收數據長度
|
返回
|
無
|
ESP8266回調函數程式:
// Callback for Reconnect
static void ICACHE_FLASH_ATTR
server_recon_cb(void *arg, sint8 err)
{}
// Callback for Disconnect
static void ICACHE_FLASH_ATTR
server_discon_cb(void *arg)
{}
// Callback for Sending Data Success
static void ICACHE_FLASH_ATTR
server _sent_cb(void *arg)
{}
// Callback for Receiving Data Success
static void ICACHE_FLASH_ATTR
server _recv_cb(void *arg, char *pdata, unsigned
short len)
{}
|