?
一、FTP 概述
FTP(File Transfer Protocol,文件傳輸協(xié)議) 是 TCP/IP 協(xié)議組中的協(xié)議之一。
FTP協(xié)議包括兩個(gè)組成部分,其一為FTP服務(wù)器,其二為FTP客戶端。
其中FTP服務(wù)器用來存儲(chǔ)文件,用戶可以使用FTP客戶端通過FTP協(xié)議訪問位于 FTP 服務(wù)器上的資源。在開發(fā)網(wǎng)站的時(shí)候,通常利用FTP協(xié)議把網(wǎng)頁或程序傳到Web服務(wù)器上。此外,由于FTP傳輸效率非常高,在網(wǎng)絡(luò)上傳輸大的文件時(shí),一般也采用該協(xié)議。
默認(rèn)情況下FTP協(xié)議使用TCP端口中的20和21這兩個(gè)端口,其中20用于傳輸數(shù)據(jù),21用于傳輸控制信息。但是,是否使用20作為傳輸數(shù)據(jù)的端口與FTP使用的傳輸模式有關(guān),如果采用主動(dòng)模式,那么數(shù)據(jù)傳輸端口就是20;如果采用被動(dòng)模式,則具體最終使用哪個(gè)端口要服務(wù)器端和客戶端協(xié)商決定。
二、演示功能概述
本文教你合宙4G模組使用LuatOS開發(fā)4G通信中FTP網(wǎng)絡(luò)協(xié)議的應(yīng)用。
本教程實(shí)現(xiàn)的功能定義是:
使用 Air780E核心板下載Air780的LuatOS 示例代碼中ftp的例程進(jìn)行驗(yàn)證,例程流程為:
● 登錄FTP服務(wù)器
● 用 ftp.command 操作 ftp 服務(wù)器目錄
● ftp.pull 下載文件
● ftp.push 上傳文件
● FTP 客戶端關(guān)閉
三、硬件環(huán)境
3.1 Air780E核心板
此核心板的詳細(xì)使用說明參考:Air780E 產(chǎn)品手冊 中的 << 開發(fā)板 Core_Air780E 使用說明 VX.X.X.pdf>>,寫這篇文章時(shí)最新版本的使用說明為:開發(fā)板 Core_Air780E 使用說明 V1.0.5.pdf ;核心板使用過程中遇到任何問題,可以直接參考這份使用說明 pdf 文檔。
3.2 PC電腦
WINDOWS 系統(tǒng),其他暫無特別要求;
3.3 SIM卡
中國大陸環(huán)境下,可以上網(wǎng)的sim卡,一般來說,使用移動(dòng)、電信、聯(lián)通的物聯(lián)網(wǎng)卡或者手機(jī)卡都行;
3.4 數(shù)據(jù)通信線
USB 數(shù)據(jù)線,暫無特別要求;
四、軟件環(huán)境
4.1 Luatools工具
要想燒錄LuatOS固件到4G模組中,需要用到合宙的強(qiáng)大的調(diào)試工具:Luatools
詳細(xì)使用說明參考:
Luatools工具使用說明:
https://docs.openluat.com/Luatools/
Luatools工具集具備以下幾大核心功能:
- 一鍵獲取最新固件:自動(dòng)連接合宙服務(wù)器,輕松下載最新的合宙模組固件。
- 固件與腳本燒錄:便捷地將固件及腳本文件燒錄至目標(biāo)模組中。
- 串口日志管理:實(shí)時(shí)查看模組通過串口輸出的日志信息,并支持保存功能。
- 串口調(diào)試助手:提供簡潔的串口調(diào)試界面,滿足基本的串口通信測試需求。
Luatools下載之后, 無需安裝, 解壓到你的硬盤,點(diǎn)擊 Luatools_v3.exe 運(yùn)行,出現(xiàn)如下界面,就代表 Luatools 安裝成功了.
4.2 準(zhǔn)備需要燒錄的代碼
首先要說明一點(diǎn):腳本代碼, 要和固件的 soc 文件一起燒錄。
4.2.1 燒錄的底層固件文件
底層 core 下載地址:LuatOS 固件版本下載地址
?
Air780E的底層固件在Luatools解壓后目錄的:
LuatOS-SoC_V1112_EC618_FULL.soc
?
4.2.2 燒錄的腳本代碼
首先要下載Air780的LuatOS示例代碼到一個(gè)合適的項(xiàng)目目錄。
示例代碼網(wǎng)站:
https://gitee.com/openLuat/LuatOS-Air780E
下載流程參考下圖:
?
?
下載的文件解壓,找到 LuatOS-Air780E-masterdemoftpmain.lua,如圖:
?
4.3 燒錄步驟
4.3.1 正確連接電腦和4G模組電路板
使用帶有數(shù)據(jù)通信功能的數(shù)據(jù)線,不要使用僅有充電功能的數(shù)據(jù)線;
4.3.2 識(shí)別4G模組的 boot 引腳
在下載之前,要用模組的 boot 引腳觸發(fā)下載, 也就是說,要把4G模組的 boot 引腳拉到 1.8v,或者直接把 boot 引腳和 VDD_EXT 引腳相連。我們要在按下BOOT 按鍵時(shí)讓模塊開機(jī),就可以進(jìn)入下載模式了。
具體到Air780E開發(fā)板:
1、當(dāng)我們模塊沒開機(jī)時(shí),按著 BOOT 鍵然后長按 PWR 開機(jī)。
2、當(dāng)我們模塊開機(jī)時(shí),按著 BOOT 鍵然后點(diǎn)按重啟鍵即可。
?
4.3.3 識(shí)別電腦的正確端口
判斷是否進(jìn)入 BOOT 模式:模塊上電,此時(shí)在電腦的設(shè)備管理器中,查看串口設(shè)備, 會(huì)出現(xiàn)一個(gè)端口表示進(jìn)入了 boot 下載模式,如下圖所示:
?
當(dāng)設(shè)備管理器出現(xiàn)了 3 個(gè)連續(xù)數(shù)字的 com 端口,并且每個(gè)數(shù)字都大于 4,這時(shí)候, 硬件連接上就緒狀態(tài),恭喜你,可以進(jìn)行燒錄了!
4.3.4 用 Luatools 工具燒錄
- 新建項(xiàng)目
首先,確保你的 Luatools 的版本,大于等于 3.0.6 版本的。
在 Luatools 的左上角上有版本顯示的,如圖所示:
?
Luatools 版本沒問題的話, 就點(diǎn)擊 LuaTOols 右上角的“項(xiàng)目管理測試”按鈕,如下圖所示:
?
這時(shí)會(huì)彈出項(xiàng)目管理和燒錄管理的對話框,可以新建一個(gè)項(xiàng)目,如下圖:
?
- 開始燒錄
選擇 780E 板子對應(yīng)的底層 core 和剛改的 main.lua 腳本文件。下載到板子中。
?
點(diǎn)擊下載后,我們需要進(jìn)入 boot 模式才能正常下載。
?
如果沒進(jìn)入 boot 模式會(huì)出現(xiàn)下圖情況:
?
當(dāng)我們模塊沒開機(jī)時(shí),按著 BOOT 鍵然后長按 PWR 開機(jī),進(jìn)入下載。
當(dāng)我們模塊開機(jī)時(shí),按著 BOOT 鍵然后點(diǎn)按重啟鍵即可。可以進(jìn)入下載,如圖:
?
?
五、API 說明
5.1 ftp.pull(local_name,remote_name)
FTP 文件下載
參數(shù)
傳入值類型 | 解釋 |
---|---|
string | local_name 本地文件 |
string | remote_name 服務(wù)器文件 |
返回值
返回值類型 | 解釋 |
---|---|
bool/string | 成功返回 true 失敗返回 string |
例子
ftp.pull("/1222.txt","/1222.txt").wait()
5.2 ftp.push(local_name,remote_name)
FTP 文件上傳
參數(shù)
傳入值類型 | 解釋 |
---|---|
string | local_name 本地文件 |
string | remote_name 服務(wù)器文件 |
返回值
返回值類型 | 解釋 |
---|---|
bool/string | 成功返回 true 失敗返回 string |
例子
ftp.push("/1222.txt","/1222.txt").wait()
5.3 ftp.login(adapter,ip_addr,port,username,password)
FTP 客戶端
參數(shù)
傳入值類型 | 解釋 |
---|---|
int | 適配器序號(hào), 只能是:socket.ETH0, socket.STA, socket.AP如果不填,會(huì)選擇平臺(tái)自帶的方式,然后是最后一個(gè)注冊的適配器 |
string | ip_addr 地址 |
string | port 端口,默認(rèn) 21 |
string | username 用戶名 |
string | password 密碼 |
bool/table | 是否為 ssl 加密連接,默認(rèn)不加密,true 為無證書最簡單的加密,table 為有證書的加密server_cert 服務(wù)器 ca 證書數(shù)據(jù)client_cert 客戶端 ca 證書數(shù)據(jù)client_key 客戶端私鑰加密數(shù)據(jù)client_password 客戶端私鑰口令數(shù)據(jù) |
返回值
返回值類型 | 解釋 |
---|---|
bool/string | 成功返回 true 失敗返回 string |
例子
ftp_login = ftp.login(nil,"xxx")
5.4 ftp.command(cmd)
FTP 命令
參數(shù)
傳入值類型 | 解釋 |
---|---|
string | cmd 命令 目前支持:NOOP SYST TYPE PWD MKDCWD CDUP RMD DELE LIST |
返回值
返回值類型 | 解釋 |
---|---|
string | 成功返回 true 失敗返回 string |
例子
// 空操作,防止連接斷掉
print(ftp.command("NOOP").wait())
// 報(bào)告遠(yuǎn)程系統(tǒng)的操作系統(tǒng)類型
print(ftp.command("SYST").wait())
// 指定文件類型
print(ftp.command("TYPE I").wait())
// 顯示當(dāng)前工作目錄名
print(ftp.command("PWD").wait())
// 創(chuàng)建目錄
print(ftp.command("MKD QWER").wait())
// 改變當(dāng)前工作目錄
print(ftp.command("CWD /QWER").wait())
// 返回上一層目錄
print(ftp.command("CDUP").wait())
// 刪除目錄
print(ftp.command("RMD QWER").wait())
// 獲取當(dāng)前工作目錄下的文件名列表
print(ftp.command("LIST").wait())
// 刪除文件
print(ftp.command("DELE /1/12222.txt").wait())
5.5 ftp.close()
FTP 客戶端關(guān)閉
參數(shù)
無
返回值
返回值類型 | 解釋 |
---|---|
bool/string | 成功返回 true 失敗返回 string |
例子
ftp.close().wait()
5.6 ftp.debug(onoff)
配置是否打開 debug 信息
參數(shù)
傳入值類型 | 解釋 |
---|---|
boolean | 是否打開 debug 開關(guān) |
返回值
返回值類型 | 解釋 |
---|---|
nil | 無返回值 |
例子
無
六、實(shí)現(xiàn)流程
- 打開 FTP 服務(wù)器。記錄地址,端口號(hào),用戶名,密碼等必要信息。
- 改 DEMO,將登錄中的地址,端口號(hào),用戶名,密碼等必要信息修改為自己服務(wù)器的。
- 登錄 ftp 服務(wù)器(ftp 服務(wù)器用 vsftpd)
- 等待登錄成功
- 執(zhí)行自己的命令
6.1 例程
示例代碼如下:
?
七、總結(jié)
本文檔主要介紹4G通信中FTP通信的應(yīng)用。結(jié)合例程講解了FTP基本原理,介紹了FTP主要API,旨在最簡單的上手Air780的LuatOS的 FTP開發(fā)。
八、常見問題
8.1 ftp服務(wù)器用vsftpd
ftp的服務(wù)器用vsftpd。
8.2 關(guān)于不支持主動(dòng)模式
模塊 ftp 默認(rèn)是被動(dòng)模式,不支持主動(dòng)模式,無法設(shè)置主動(dòng)模式,公網(wǎng)下要想模塊正常連接服務(wù)器,服務(wù)器肯定不能設(shè)置為主動(dòng)模式,否則哪家模塊都不能用。
?審核編輯 黃宇
-
數(shù)據(jù)傳輸
+關(guān)注
關(guān)注
9文章
2009瀏覽量
65809 -
FTP
+關(guān)注
關(guān)注
0文章
115瀏覽量
41257 -
核心板
+關(guān)注
關(guān)注
5文章
1127瀏覽量
30689
發(fā)布評(píng)論請先 登錄
Air780E模組LuatOS開發(fā)的位運(yùn)算(bit)教程篇!

Air780E模組的ADC之旅 LuatOS開發(fā)實(shí)例

奇妙的Air780E之UDP應(yīng)用示例大賞!

Air780E如何發(fā)送SMS?一文詳解!

如何使用Air780E開發(fā)板?看這篇就夠了!

選型4G-Cat.1模組Air780E時(shí),我應(yīng)該注意什么?

合宙 Air780E/Air780EP/Air780EQ/Air201模塊遇到死機(jī)問題如何分析

Air780E/Air780EP/Air780EQ/Air201模塊遇到內(nèi)存死機(jī)如何分析

Air780E/Air780EP/Air780EQ/Air201模塊遇到死機(jī)問題如何分析

評(píng)論