无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

個人適用的單片機長距離通訊方法(PC-20230910-Wingman)

2023-09-11 00:59 作者:季風(fēng)蒲靈  | 我要投稿

方法由四大部份構(gòu)成: 上位單片機

Air780E

frp

Godot服務(wù)器

Air780E可以事先刷入AT固件,只作為聯(lián)網(wǎng)和通訊之用。其默認(rèn)開啟聯(lián)網(wǎng)功能,常用的聯(lián)網(wǎng)指令如下: AT+CIPSTART=TCP,domain.name,port

AT+CIPSEND

> XX XX XX XX XX XX XX XX XX 1A

上述3條指令由單片機通過串口向Air780E發(fā)送,分別意為: 建立TCP連接

準(zhǔn)備傳送一段數(shù)據(jù)

在串口返回 “>” 符號后,以 十六進(jìn)制 開始像串口輸入數(shù)據(jù),最后以十六進(jìn)制 1A 結(jié)尾表示數(shù)據(jù)傳輸完畢

frp用于獲取在公網(wǎng)上的域名并將本地服務(wù)器端口映射到該公網(wǎng)域名上 Godot可以用于搭建一個簡易的服務(wù)器和圖形界面,其啟用TCP服務(wù)的腳本可參照如下:

extends Node

const HOST := "127.0.0.1"

const PORT := 114

var server := TCPServer.new()

var clientSet:Dictionary

func _ready():

if server.listen(PORT, HOST) == OK:

print("地面站網(wǎng)絡(luò)服務(wù)啟動")

else:

print_debug("地面站網(wǎng)絡(luò)服務(wù)",HOST,PORT,"啟動失敗")

func _process(delta):

for client in clientSet.keys():

client.poll()

# 處理數(shù)據(jù)

var dataLength:int = client.get_available_bytes()

if dataLength:

match client.get_data(dataLength):

[var err, var data]:

if err == OK and dataLength:

handle_data(client, data)

# 清理無效連接

if client.get_status() == StreamPeerTCP.STATUS_NONE:

clientSet.erase(client)

print("TCP連接數(shù):", clientSet.size())

continue

# 處理新增連接

if server.is_connection_available():

var client := server.take_connection()

clientSet[client] = client

print("TCP連接數(shù):", clientSet.size())

func handle_data(client:StreamPeerTCP, data:PackedByteArray):

print("<",data)

func put_data(client:StreamPeerTCP, data:PackedByteArray):

client.put_data(data)

print(">",data)

效果如下圖所示:

個人適用的單片機長距離通訊方法(PC-20230910-Wingman)的評論 (共 條)

分享到微博請遵守國家法律
凤庆县| 海伦市| 三都| 黔江区| 东乡族自治县| 平泉县| 常山县| 鹰潭市| 樟树市| 芜湖县| 桦川县| 新河县| 怀仁县| 积石山| 察雅县| 彭山县| 宜都市| 丹寨县| 株洲县| 集安市| 卢湾区| 彰化市| 昭平县| 穆棱市| 平利县| 虞城县| 延庆县| 汉寿县| 永和县| 岑溪市| 霍林郭勒市| 长泰县| 墨竹工卡县| 台中县| 方正县| 蒙自县| 周至县| 逊克县| 普兰店市| 郴州市| 皋兰县|