https://www.cnblogs.com/yangfengwu/p/10891908.html
ビデオチュートリアル:
https://www.bilibili.com/video/av55663292
独自のコンテンツ基盤を補完してください
https://www.cnblogs.com/yangfengwu/p/6921832.html
https://www.cnblogs.com/yangfengwu/category/1383497.html セクション1-3
このプログラムのセクションとGPRS https://www.cnblogs.com/yangfengwu/p/10875886.html 同じ機能、グローバル関数を行うにはWIFIのこのセクション、あまりにも、マイクロコントローラのアップグレードを自動的にリセット
今テスト
図1は、GPRSがメインGPRS TCP接続プログラムが命令を受信することで、プログラムをダウンロードし、TCP接続を行って、その後、パススルー...
「ソケット」が必要 モジュール(...、package.seeall) - シリアル設定 ローカルglobalSendData1 = nilを ローカルglobalSendData = nilを ローカルUART_ID = 1 --uart1 ローカルuartReadData = ""; ローカルuartReadDataFlage =偽; ローカルIP = nilを ローカルポート= nilを ローカルasyncClient sys.taskInit(関数() 真んが しばらくないsocket.isReady()を行うsys.wait(1000)終了 もし、ポート〜= nilにし、IP〜= nilを asyncClient = socket.tcp() asyncClient場合:(IP、ポート)に接続後、 成功したリンクの送信コマンド - uart.write(1、 "{\" ConnectOK \: "\" datemcu \ "\" \アップデータの\ "\" 状態 "}") 印刷( "{\" datemcu \:アップデータ\ "\" "\ "状態\":\ "ConnectOK \"}")。 他 uart.write(1、 "{\" datemcu \ ":\" アップデータ\ "\ "状態\":\ "ConnectNO \"}") 終わり ポート= nilを; IP = nilを; asyncClientながら:asyncSelect(60、「ピング」)はend--はこれを持っている必要があります、TCPは、バックグラウンドで実行する責任があります asyncClient:クローズ() 終わり sys.wait(1000) 終わり 終わり) - TCP、シリアル送信データを受信 sys.subscribe( "SOCKET_RECV" 機能(ID) その後、asyncClient.id == IDがあれば ローカルデータ= asyncClient:asyncRecv() uart.write(1、データ) 終わり 終わり) 地元jsondata、その結果、errinfo。 - アイドルタイマ割り込み(シリアルデータを受信するアイドル)検出 ローカルTimerFunc4Cnt = 0。 ローカル関数TimerFunc4() uartReadDataFlageは、真==場合 TimerFunc4Cnt = TimerFunc4Cnt + 1。 その後、TimerFunc4Cnt> = 20の場合 TimerFunc4Cnt = 0; uartReadDataFlage = falseは、 globalSendData = uartReadData。 uartReadData = ""; 終わり 終わり globalSendData〜= nilの場合は、 jsondata、その結果、errinfo = json.decode(globalSendData) - 判断是不是JSON その結果と入力した場合(jsondata)== "テーブル" - 是JSON数据 もしjsondata [ "datemcu"]〜= nilを、その後jsondata [ "datemcu"] == "アップデータ" その後、jsondata [ "CMD"]〜= nilのとjsondata [ "CMD"] == "ConnectTCP" であれば jsondata [ "IP"]〜= nilのとjsondata [ "ポート"]〜= nilの場合、その後 IP = jsondata [ "IP"] ポート= jsondata [ "ポート"] 終わり 終わり 終わり 他 asyncClient〜= nilの場合は、 asyncClient:asyncSend(globalSendData) - TCPの送信データ 終わり 終わり globalSendData = nilを; 終わり 終わり sys.timerLoopStart(TimerFunc4,10) - 受信したシリアルデータを読みます ローカルuartdata = "" 読んローカル関数() uartdata = "" 真んが uartdata = uart.read(UART_ID、 "*のL"、0) そうでない場合はuartdataまたはstring.len(uartdata)== 0は、エンドを破ります uartReadData = uartReadData..uartdata。 uartReadDataFlage =真 TimerFunc4Cnt = 0; 終わり 終わり uart.on(UART_IDは、読んで、 "受信") - 設定およびシリアルポートを開きます uart.setup(UART_ID、115200,8、uart.PAR_NONE、uart.STOP_1)
記事への後期の変更、記事のタイトルを見つけるために従っ
SCM IAPプログラムをダウンロードしてください
またはクラウド
テスト
修正版の雲は、マイクロコントローラをリセット