NB模組TCP連線不穩定原因及使用詳解

2021-10-05 03:13:53 字數 2948 閱讀 7697

使用nb模組建立tcp連線傳送資料,受蜂窩網路波動的影響,tcp連線不穩定,時常容易斷開,但是模組存在無法感知連線狀態的情況,導致較長時間的資料中斷(模組沒有上報斷開連線指示,傳送資料沒有報錯,但是資料沒有傳送到伺服器)。以下對nb模組tcp\udp的使用做總結,並針對tcp資料中斷的情況給出了解決方案。

適用於m5310-a、bc28等海思模組。

nb模組會自動註冊平台,使用前最好關閉平台註冊功能。當然不關閉也是可以使用的。

at+mlwm2menable=0 //0-禁止lwm2m   1-使能
at+qregswt=2
at+nsocr="dgram",17,6003,0
返回建立的socket id。

6003表示監聽埠,可設定為0,表示任意埠;

正常傳送

at+nsost=0,121.36.7.137,1990,3,303132
帶rai傳送
at+nsostf=0,121.36.7.137,1990,0x200,3,303132
傳送完成後模組馬上進入idle狀態,否則會等到20s的不活動定時器超時後才進入idle。

如:

[16:36:13.873]發→◇at+nsostf=0,121.36.7.137,1990,0x200,3,303132

[16:36:13.936]收←◆

0,3ok

[16:36:14.837]收←◆

+cscon:1

[16:36:15.040]收←◆

+cscon:0 //馬上進入了idle

at+nsorf=0,255
模組會將收到的資料逐條快取在記憶體中,傳送該指令後,模組返回快取在記憶體中的第一條資料;繼續傳送,則繼續返回剩下的資料。

0表示socke id,255表示讀取的訊息長度;

若建立socket時設定接收提醒

模組收到資料時主動上報: +nsonmi:0,2;

若模組中已經快取有資料還未讀取,則收到新的下發資料後,模組並不會上報+nsonmi:0,2指示;

//1.傳送at+nsorf=0,255 返回第一條訊息

at+nsorf=0,255 //傳送

+nsorf:0,121.36.7.137,1990,2,1133,2

ok+nsonmi:0,2 //表示還有2位元組資料可讀

//2.繼續傳送at+nsorf=0,255

at+nsorf=0,255

+nsorf:0,121.36.7.137,1990,2,1133,0

ok//3.繼續傳送at+nsorf=0,255

at+nsorf=0,255

ok//只返回了ok,說明已經沒有資料可讀了

建立socket時設定無接收提醒

模組收到下發資料時無任何指示資訊

//1.傳送at+nsorf=0,255 返回第一條訊息

at+nsorf=0,255 //傳送

+nsorf:0,121.36.7.137,1990,2,1133,2

ok//2.繼續傳送at+nsorf=0,255

at+nsorf=0,255

+nsorf:0,121.36.7.137,1990,2,1133,2

ok//3.繼續傳送at+nsorf=0,255

at+nsorf=0,255

ok //沒有資料可讀,只返回了ok

at+nsocr="stream",6,0,0
同建立udp時一樣,第乙個0表示監聽任意埠,也可指定埠;

最後乙個0設定無接收提醒,1則表示有接收提醒。

建立成功,返回socket id

0

ok

at+nsoco=1,121.36.7.137,22
連線成功後返回:

connect ok
正常傳送,不指定傳送序號
at+nsosd=0,4,fefefefe
模組返回:

0,4

ok

0-socket id;4-傳送的資料長度

帶序號傳送

傳送時指定傳送序號,模組會返回資料傳送狀態

+nsostr:,,//status:0表示錯誤,1表示已傳送
傳送格式如下:

at+nsosd=0,4,01020304,0,66

//引數為:socket id,長度,內容,flag(固定值0),序號(可為固定值)

模組返回:

0,4

ok+nsostr:0,66,1 //模組上報傳送狀態

說明:

在上述tcp連線斷開的情況下,需要關閉socket、重新建立、連線才可。

tcp傳送帶rai的方式目前不生效。

同udp時一樣

建立socket時設定無接收提醒

//第一條資料

+nsorf:0,121.36.7.137,22,5,6461666473,5

ok//第二天資料

+nsorf:0,121.36.7.137,22,5,6461666473,0

ok//沒有資料可讀取了,僅返回ok

ok

另外:新版本的海思韌體中加入了nsostatus指令,可以查詢socket的狀態,推測該指令應該也可以解決連線斷開的情況,需要測試驗證(2020-4-5)。

GAN訓練不穩定原因

1 很難使得g和d同時收斂 大多深度模型的訓練都使用優化演算法尋找損失函式比較低的值。優化演算法通常是個可靠的 下山 過程。生成對抗神經網路要求雙方在博弈的過程中達到勢均力敵 均衡 每個模型在更新的過程中 比如生成器 成功的 下山 但同樣的更新可能會造成博弈的另乙個模型 比如判別器 上山 甚至有時候...

著手查出牛頓法不穩定的原因

今天把測試hessian的 加進去了,但是發現hessian並無大的問題。測試例子 一根圓柱向指定方向彎曲。下面對比,在有彎曲方向引數,與無方向引數 該引數被被乘以0 的情況下,各幀迭代的函式值。無方向引數 幀號1 2345 第1次迭代 073777.396480 615269.331763 156...

網路不穩定是什麼原因 液壓站壓力不穩定的原因

液壓站壓力不穩定主要表現在以下三個方面 第 一 沒有壓力 通常的檢查排除法就是,開啟油幫浦與管路連線處,開機看看有沒有油幫浦出,正常的話,電機和幫浦就是好的,排除,否則拆幫浦檢查 接著把溢流閥 單向閥 節流閥等開度調整到中間位置,換向看看,換向閥倆燈不是同時亮的,若沒有只是一閃,換一頭的電磁繼電器,...