無論是客戶端還是服務器程序,
發送的底層都是發送AT指令:1)發送命令到串口;2)阻塞等待返回結果
接收的底層都是1)阻塞等待;2)被喚醒后拷貝處理數據
兩者均由后臺任務喚醒,后臺平時:1)讀UART; 2)分辨:a.AT回應?那么喚醒命令發送者;b.網絡數據?解析屬于哪個socket, 存入對應socket的buff, 喚醒接收者。
實現socket源碼:詳見Third_Party的at_socket文件夾
自定義AT_Device結構體,里面有多個socket(至于支持多少個socket要看芯片手冊),后臺線程將解析的數據分發給多個socket。client線程通過socket讀取數據。
w800.c是最核心的文件,里面實現了w800相關的函數和創建后臺線程。
后臺線程是通信的核心,在后臺線程的幫助下,APP才能發送AT命令,才能接收到網絡數據。