2017年5月22日 星期一

DIY - ESP8266:ESP8266 模塊 Soft-AP TCP Server 程式(二十八)

DIY - ESP8266:ESP8266 模塊 Soft-AP TCP Server 程式(二十八):

完成 ESP8266 Soft-AP TCP Server 配置的初始化程式後,便需要編寫回調函數(Callback)及偵聽(Listen)程式,當程式初始化後,TCP Server 成功連接,便會利用偵聽程式作監測 Server 的狀態,並利用回調函數(Callback)作出不同的操作,例如 recon_cb、discon_cb、sent_cb、recv_cb、write_cb。

ESP8266 模塊 WiFi Soft-AP TCP Server 模式製作
WiFi Soft-AP TCP Server 模式:
ESP8266 工作在 Soft-AP 模式下,可以直接啟動 server 偵聽,然後加入回調函數(Callback)。
 
ESP8266 Soft-AP模式偵聽程式:
/*************************************************************************
 * FunctionName : trans_server_listen(void *arg)
 * Description  : Trans Server Listen
 * Parameters   : none
 * Returns      : none
*************************************************************************/
static void ICACHE_FLASH_ATTR
trans_server_listen(void *arg)
{
     // Registed Callback Subroutines
    espconn_regist_recvcb(pespconn, trans_tcpclient_recv_cb);
    espconn_regist_reconcb(pespconn, trans_tcpclient_recon_cb);
    espconn_regist_disconcb(pespconn, trans_tcpclient_discon_cb);
    espconn_regist_sentcb(pespconn, trans_tcpclient_sent_cb);///////
    espconn_regist_write_finish(pespconn, trans_tcpclient_write_cb);
    espconn_set_opt(pespconn,ESPCONN_COPY);
system_os_post(TRANS_TASK_PROI,TRANS_CLIENT_CONNECTED,(ETSParam)pespconn);
    return;
}

WiFi Soft-AP TCP Server 模式配置流程:
1. 根據 TCP 工作協定初始化 espconn 參數
2. 註冊連接成功的回調函數和連接失敗重新連接的回調函數(調用 espconn_regist_connectcb 和 espconn_regist_reconcb)
3. 調用 espconn_accept 偵聽 TCP 連接
4. TCP 連接成功後,在連接成功的回調函數(espconn_connect_callback)中,註冊接收資料的回調函數,發送資料成功的回調函數和斷開連接的回調函數(調用espconn_regist_recvcb,espconn_regist_sentcb 和 espconn_regist_disconcb) 
 
ESP8266 Soft-AP模式回調函數程式:
static void ICACHE_FLASH_ATTR
trans_tcpclient_recon_cb(void *arg, sint8 err)
{

}

// Callback for Disconnect TCP
static void ICACHE_FLASH_ATTR
trans_tcpclient_discon_cb(void *arg)
{

}

// Callback for Sending TCP Data Success
static void ICACHE_FLASH_ATTR
trans_tcpclient_sent_cb(void *arg)
{

}

// Callback for Receiving TCP Data Success
static void ICACHE_FLASH_ATTR
trans_tcpclient_recv_cb(void *arg, char *pdata, unsigned short len)
{

}

// Callback for Writing TCP Data
static void ICACHE_FLASH_ATTR
trans_tcpclient_write_cb(void *arg)
{

}

編程和燒錄程式到 ESP8266 ESP-12 的開發板後,再啓動電源,用電腦 PC 或手機啓動無線連接,便會發現 ESP8266 的網絡名稱,祇要連接這網絡名稱,便可以接收和傳送資料到 ESP8266 開發板。

手機啓動無線連接
手機無線連接資料
而電腦 PC 按無線網絡的 ICON,便會發現 ESP8266 的網絡名稱,祇要連接這網絡名稱,便可以用其他程式接收和傳送資料到 ESP8266 開發板。

電腦 PC 啓動無線網絡
用 EXCEL VBA 接收和傳送資料到 ESP8266 開發板
ESP8266 程式 :DIY - ESP8266 - 006 TCP Server UART TXCMD+RX -20170517

※ Coolpad (酷派)8190 Android 智能手機截圖鍵(Screen Capture)是同時按下音量下鍵+電源鍵。
 
2017年 5月 22日 天氣報告
氣溫:25.5@ 22:20
相對濕度:百分之 93%
天氣:微雨

沒有留言:

張貼留言