带玩具逛街时突然按下按钮的故事,丰满的妺妺3伦理播放,新婚人妻不戴套国产精品,大肉大捧一进一出好爽视频百度

手摸手帶你完成智慧路燈構建及避坑

轉載 收藏 評論
舉報 2022-08-12

【摘要】 彥祖你好,我是程序員龍哥,物聯網如今發展如火如荼,并且不管是政策還是市場都很鼓勵,所以咱們依托云平臺集成特有優勢來手把手完成智慧路燈構建,其中我也把踩過坑告訴你不要再踩,干貨很多其中插入涉及到應該掌握的小知識,還不忘老爺們點個贊再走吧?

本文的主要內容有:

一 先完成準備任務

二 然后構建并歸檔軟件包

三 實現消息通知服務(SMN)

四 云服務器部署初步上線

五 設備接入及模擬器連接

一 ????? 先完成準備任務

前面登錄,賬號密碼哪些略過,直接下載要用到資源先,回到桌面雙擊“Xfce終端”打開Terminal,輸入以下命令下載保存“HubSimulator.jar”到自己的云桌面上面

cd Desktop/wget https://sandbox-experiment-resource-north-4.obs.cn-north-4.myhuaweicloud.com/internet-wisdom-lamp/HubSimulator.jar

然后輸以下命令保存“SmartStreetLight.zip”壓縮包

wget https://sandbox-experiment-resource-north-4.obs.cn-north-4.myhuaweicloud.com/internet-wisdom-lamp/SmartStreetLight.zip

1.1新建項目

然后選擇“服務列表”->“開發與運維”->“項目管理”,進入軟件開發云,如下圖這樣

敲黑板?。翰贿^先知道什軟件開發平臺是啥?

它是集華為近30年研發實踐、前沿研發理念、先進研發工具為一體的一站式云端DevOps平臺,面向開發者提供的云服務,即開即用,隨時隨地在云端進行項目管理、代碼托管、流水線、代碼檢查、編譯構建、部署、測試、發布等,從而給開發者快速而又輕松地開啟云端開發之旅。

手摸手1.png

點擊“立即使用”按鈕,跳轉到DevCloud操作界面,它是企業級軟件協作一體化DevOps平臺,如下圖這樣

手摸手2.png

DevCloud操作界面如下圖:

手摸手3.png

點擊上圖紅圈標注“新建項目”按鈕,開始創建項目,如下圖所示:

手摸手4.png

點擊標注的“Scrum”區域,創建“Scrum”類型項目,參數如下:
項目設置模板:Scrum
項目名稱:QuickStart

手摸手5.png

參數填寫完畢,點擊確定按鈕即可完成項目創建。

1.2創建代碼倉庫

1.2.1新建倉庫

選擇導航欄“代碼 > 代碼托管”,進入管理頁面,展開右上角“普通新建”下拉菜單,點擊“按模板新建”

手摸手6.png

1.2.2選擇模板
在搜索框中輸入“IoT_Streetlight_New_Demo”,如下圖所示選擇“華北-北京四”,選中該模板,單擊“下一步”。

手摸手7.png

1.2.3然后填倉庫基本信息
基本信息參數如下:
①代碼倉庫名稱:自定義,如:IoT_Streetlight_New_Demo ②選擇gitignore:Java 其他選項保持默認
單擊“確定”,完成倉庫創建。

手摸手8.png

創建成功后,可單擊倉庫名稱進入倉庫,查看倉庫文件

二 ? 然后構建并歸檔軟件包

2.1新建編譯構建任務

點擊導航欄“構建&發布 > 編譯構建”,進入管理頁面,點擊“新建任務”,參數如下
①源碼源:CodeHub;
②源碼倉庫:默認選擇1.2步創建的代碼倉庫;
③分支:master;
點擊“下一步”進入“選擇構建模板”

手摸手9.png

2.2選擇構建模板


本項目是一個Java Maven項目,所以搜索選擇“Maven”模板, 單擊“確定”,進入“構建步驟”頁面

手摸手10.jpeg

2.3然后構建步驟

使用系統模板中提供的兩個默認步驟、以及每個步驟中的默認配置,即可完成本例的構建。點擊“新建并執行”即可完成步驟的配置并啟動構建任務,如下圖所示

手摸手11.jpeg

敲黑板:構建需要2-3分鐘,請耐心等待...............

當出現上面圖片表示的頁面時,表示構建任務執行成功。若執行失敗,就查看日志信息排查問題,或通過編譯構建-常見問題查找解決方法。

2.4驗證構建任務執行結果

點擊導航欄“發布”,進入“軟件發布庫”頁面,點擊進入“IoT_Streetlight...”下的“202…”日期命名的文件夾,即可看到生成的軟件包“huawei-0.0.1-SNAPSHOT.jar”

手摸手12.jpeg

2.5創建主題并訂閱 SMN

在華為云控制臺,展開左側目錄,選擇【服務列表】->【管理與監管】 -> 【消息通知服務SMN】,或在服務列表搜索框中搜索“SMN”。

什么是消息通知服務?

手摸手13.png

注意:若提示無權限,請確認左上角區域是否在“華北-北京四”即可

在左側導航欄,選擇“主題管理 > 主題”,單擊“創建主題”,輸入“主題名稱”(自定義,例如:StreetLight)后單擊“確定”完成主題創建

手摸手14.png

三 ???? 實現消息通知服務(SMN)

主題創建成功后,系統會自動生成主題URN,主題URN是主題的唯一資源標識,不可修改,后續步驟將會用到該URN

手摸手15.png

點擊主題“StreetLight”右側操作“添加訂閱”,可采用短信或者郵件任意一種協議完成訂閱。
“短信協議”參數如下:
①協議:短信
②訂閱終端:用戶手機號碼(需填寫您的手機號完成此步)
單擊“確定”后,請查看手機接收短信,點擊短信中的鏈接進行訂閱確認

手摸手16.jpeg

“郵件協議”參數如下:
①協議:郵件
②訂閱終端:用戶郵箱地址(需填寫您的郵箱完成此步)
單擊“確定”后,請查收郵件,點擊郵件中的鏈接進行訂閱確認

手摸手17.jpeg

四 ???? 云服務器部署初步上線

4.1網絡配置

點擊“前往控制臺創建”,就能跳轉到虛擬私有云控制臺頁面

手摸手18.png

在虛擬私有云控制臺,點擊“創建虛擬私有云”,區域選擇“華北-北京四”,名稱自定義(如:vpc-iot),默認子網名稱自定義(如:subnet-iot),其他參數均可默認,點擊“立即創建”完成后,即可返回網絡配置頁面;

手摸手19.png

返回網絡配置頁面,刷新后,選擇剛創建的虛擬私有云VPC(如:vpc-iot)和子網(如:subnet-iot),自動分配IP地址,如下圖所示

手摸手21.png

②擴展網卡:默認配置
③安全組:默認配置
④彈性公網IP:現在購買
⑤線路:默認配置
⑥公網帶寬:按帶寬計費
⑦帶寬大?。?Mbit/s

手摸手22.png

4.2 高級配置


完成網絡配置后單擊“下一步:高級配置”,參數如下:
①云服務器名稱:自定義,如:ecs-iot
②登錄憑證:密碼
③密碼/確認密碼:自定義,如:SM1$b9Zs1#
⑥其他參數:默認配置

手摸手23.png

完成高級配置后點擊“下一步:確認配置”,閱讀并勾選同意協議,單擊“立即購買”后,點擊返回云服務器列表。當狀態為“運行中”表示已創建完成;

手摸手24.png

4.3 主機授信配置

創建的彈性云服務器ECS的“彈性公網IP”信息將在后續步驟4.1添加授信主機的配置中用到;

手摸手25.png

4.4 添加安全組入方向規則


點擊新創建的彈性云服務器ECS的名稱進入詳情頁,選擇“安全組”頁簽,點擊Sys-WebServer安全組右側的【配置規則】進入規則配置頁面。

手摸手26.png

在新打開的安全組控制界面,選擇“入方向規則”,單擊“添加規則”,如下圖所示:
① 優先級:1
② 策略:允許
③ 協議端口:8080;
④ IP地址設為0.0.0.0/0。
點擊“確定”。

手摸手27.png

敲黑板:SSH協議端口(22)的入方向TCP協議默認開放,無需修改。將智慧路燈應用端口(8080)的入方向放開限制,用于后續訪問智慧路燈應用。出方向規則默認不做限制,無需修改;

4.5 配置系統防火墻規則


返回實驗桌面雙擊“Xfce終端”打開Terminal,輸入以下命令,并按照操作說明執行,登錄云服務器:
操作說明:
①使用彈性云服務器ECS的彈性公網IP替換命令中的[EIP]
說明:云服務器的彈性公網IP地址可以通過點擊“控制臺”->“服務列表”->“計算”->“彈性云服務器ECS”進入服務器列表,進行查看并復制

手摸手29.png

ssh root@EIP

②接受秘鑰輸入“yes”,回車;
③輸入密碼:SM1$b9Zs1#(輸入密碼時,命令行窗口不會顯示密碼,輸完之后直接鍵入回車)。成功登錄云服務器之后如下圖所示

手摸手30.png

④執行sudo ufw enable開啟ufw服務,輸入“y”確認。

sudo ufw enable

⑤執行sudo ufw allow 22/tcp啟用22端口。

sudo ufw allow 22/tcp

⑥執行sudo ufw allow 8080/tcp啟用8080端口。

sudo ufw allow 8080/tcp


4.6 部署智慧路燈應用

添加授信主機

“智慧路燈”是一個Web項目,需要部署到服務器上才可以運行,本例采用部署服務器是華為云彈性云服務器
DevCloud在使用彈性云服務器之前需要先對其授信
回到軟件開發平臺DevCloud,這個開頭我介紹過 若不知道到開頭熟悉先,點擊已創建的項目,如QuickStart,如下圖所示

單擊導航欄“更多 > 設置 > 通用設置”,選擇左側欄“主機組管理”,然后點擊“新建主機組”,參數如下:
①主機組名:自定義,如:iot
②操作系統:Linux
點擊“保存”完成主機組的創建,并進入該主機組。

在創建的主機組內,點擊“添加主機”,參數如下:
①主機名:自定義,可與創建的ECS名稱保持一致,如:ecs-iot
②IP:創建彈性云服務器ECS的彈性公網IP(見步驟3.2)
③認證方式:密碼
④用戶名:root
⑤密碼:填創建彈性云服務器ECS的用戶密碼;如:SM1$b9Zs1#
⑥ssh端口:22
勾選閱讀并同意聲明,點擊“添加”完成主機的添加。當主機連通性驗證顯示“驗證成功”時,說明主機成功添加

新建部署任務

點擊導航欄“構建&發布 > 部署”進入,然后點擊“新建任務”,輸入任務名稱(可使用默認值),單擊“下一步”進入“選擇部署模板”。

選擇模板“SpringBoot應用部署”,單擊“下一步”,進入“部署步驟”頁面

4.3配置部署步驟并執行

SpringBoot應用部署模板默認包含以下步驟:安裝JDK、停止SpringBoot服務、選擇部署來源、啟動SpringBoot服務、URL健康測試
4.3.1刪除“停止SpringBoot服務”和“URL健康測試”;
4.3.2選中“安裝JDK”,主機組:選擇添加授信主機是創建的主機組(如:iot),彈框提示點擊“確定”,jdk版本:openjdk-1.8.0;

敲黑板啊:部署失敗怎么辦?

答案:請根據實驗步驟逐步檢查: 1、主機是否添加成功并完成了連通性驗證 2、所有步驟的參數是否配置正確,手動輸入的參數是否多了個空格,少了個符號等等。 3、不用的步驟和參數是否都已刪除。

選中“選擇部署來源”,參數如下:
①選擇源類型:軟件包;
②選擇軟件包:點擊右側“…”,選擇構建包,路徑如下圖所示;

③下載到主機的部署目錄:按需填寫,如/usr/local

選中“啟動SpringBoot服務”,參數如下:
①服務操作類型:保持默認值
②服務對應的絕對路徑:由“下載到主機的部署目錄”和軟件包包名組成,如/usr/local/huawei-0.0.1-SNAPSHOT.jar
③組件監控:去掉勾選

切換到“參數設置”頁簽,逐一刪除全部參數

點擊“保存并執行”,完成部署任務的配置,并執行部署任務;
頁面顯示“部署成功”,表示任務執行完畢。若任務執行失敗,可通過頁面中的原因提示及鏈接來排查解決;

五 ???? 設備接入及模擬器連接

5.1創建產品

在華為云控制臺,展開左側導航,選擇“服務列表”-> “物聯網”->“設備接入IoTDA”,如下圖所示

敲黑板?。涸O備接入服務是什么?

它是華為云的物聯網平臺,提供海量設備連接上云、設備和云端雙向消息通信、批量設備管理、遠程控制和監控、OTA升級、設備聯動規則等能力,并可將設備數據靈活流轉到華為云其他服務。物聯網平臺中,某一類具有相同能力或特征的設備的合集被稱為一款產品。您可為產品定義產品模型,產品模型用于描述設備具備的能力和特性。定義產品模型,即在物聯網平臺構建一款設備的抽象模型,使平臺理解該款設備支持的服務、屬性、命令等信息;

在左側欄中選擇“產品”,點擊“創建產品”,參數如下

①所屬資源空間:Default_APP_Sandbox_user_iot
②產品名稱:自定義,如:StreetLight
③協議類型:MQTT
④數據格式:JSON
⑤廠商名稱:自定義,如:Huawei_IoT
⑥設備類型:自定義,如:StreetLight
填寫完成,點擊“立即創建”,產品創建成功,請記錄“產品ID”信息,并查看“詳情”

5.2 上傳模型文件

點擊創建的產品進入詳情,然后點擊“上傳模型文件”,選擇SmartStreetLight.zip文件,點擊“確認”完成上傳

5.3 訪問智慧路燈Web界面


新建瀏覽器標簽頁,輸入http://EIP:8080/index.html(使用步驟3.2中彈性云服務器的彈性公網IP替換地址中的“EIP”),訪問智慧路燈Web頁面。
6.2參數設置
在彈出的“參數設置”窗口,參數填寫如下:
①數據來源:參數設置頁面下拉框選擇“訂閱推送”;
②本機IP:“控制臺”->“服務列表”->“計算”->“彈性云服務器ECS”進入服務器列表,進行查看并復制彈性公網IP;

敲黑板?。簽槭裁匆渲眠@些參數?

智慧路燈應用通過API方式和華為云對接,注冊設備、獲取設備數據和下發命令,這些參數在調用API時才用;

③主題URN:“控制臺”->“服務列表”->“管理與監管”->“消息通知服務SMN”進入主題列表,進行查看并復制主題URN

④APPID:“控制臺”->“服務列表”-> “物聯網”->“設備接入IoTDA”,在左側導航欄選擇“資源空間”,復制獲取產品所需的“APPID”

⑤賬號名:系統為您分配的華為云實驗賬號名
⑥IAM用戶名:系統為您分配的華為云實驗用戶名
⑦IAM用戶密碼:系統為您分配的華為云實驗密碼

⑧項目ID:控制臺在右上角用戶名下拉框中選擇“我的憑證->API憑證”頁面復制獲取所屬區域為“華北-北京四”的項目ID。

⑨產品ID:“控制臺”->“服務列表”-> “物聯網”->“設備接入IoTDA”,在左側導航欄選擇“產品”,復制獲取產品所需的“產品ID”。

填寫完成后點擊“確定”,彈窗提示如下,表示參數設置成功

5.4 注冊設備

輸入設備標識(自定義,如123456789f),點擊“注冊設備”

敲黑板?。簭棿疤崾救缦?,表示注冊設備成功。請記錄“設備Id”和“密鑰”信息,用于后續驗證,請記錄設備id以及密鑰,便于后期使用!

設備注冊成功后是“未激活”狀態,請選擇“服務列表”-> “物聯網”->“設備接入服務”,在左側欄選擇“設備 > 所有設備”,點擊設備標識碼進入,查看設備Id,或修改密鑰。

結果驗證(設備屬性上報/訂閱/設備命令下發);

5.5 模擬器與平臺建立連接

7.1.1打開MQTT設備模擬器
在實驗桌面雙擊“Xfce終端”打開Terminal,執行以下命令打開設備接入模擬器(HubSimulator.jar),然后切換到MQTT設備模擬器頁簽

敲黑板?。篐ubSimulator.jar是什么工具?

HubSimulator.jar是設備接入服務提供的多功能模擬器,本實驗中我們用它來模擬MQTT設備接入;連接失敗怎辦呢,請檢查服務IP(域名),設備ID和設備秘鑰的填寫是否都正確,有無多余的空格基本就可以解決了哈;

cd Desktop//usr/local/share/jre1.8.0_181/bin/java -jar HubSimulator.jar

5.6 建立連接

在MQTT設備模擬器頁簽下,填寫參數如下:
①服務IP:進入“服務列表”-> “物聯網”->“設備接入IoTDA”,在左側欄選擇“總覽”,點擊“平臺接入地址”

復制使用MQTT/MQTTS接入信息的域名。

②設備ID:配置智慧路燈應用,注冊設備成功后返回的設備Id
③設備密鑰:配置智慧路燈應用,注冊設備成功后返回的密鑰
配置好以上參數后,點擊“建立連接”按鈕。

建立連接成功后,右側日志顯示MQTT服務連接成功,如下圖所示:

若無法建立連接,請打開“命令提示符”窗口,輸入“ping 服務IP”查看您的主機是否能和華為云物聯網平臺正常通信,若無法正常通信,請更換主機的網絡環境

5.7 查看設備狀態

回到物聯網所有設備列表( “服務列表”-> “物聯網”->“設備”→“所有設備”),設備狀態變更為“在線”,如下圖所示

5.8 模擬器設備屬性上報

7.2.1模擬器發送消息,上報設備屬性
①在模擬器窗口中的Topic欄中輸入以下代碼:$oc/devices/{device_id}/sys/properties/report,其中的{device_id}需要替換成實際設備ID

敲黑板啊:應用界面不顯示上報的數據怎么辦?

首先檢查上報數據的Topic填寫是否正確,然后檢查上報數據是否符合JSON格式。如果以上兩點都檢查沒問題,再檢查之前參數設置的是否都正確

$oc/devices/{device_id}/sys/properties/report

②消息內容:
其中,光感強度可自定義,燈狀態建議為OFF。
在模擬器窗口中的消息編輯欄中輸入以下代碼:

{"services":[{"service_id":"Sensor","properties":{"luminance":"200","light_state":"OFF"}}]}

發送消息成功后,右側日志顯示信息推送成功(圖片僅為示意,請以你上報實際數據為準哈)


5.9 查看應用界面變化

返回智慧路燈Web界面,此時顯示“環境亮度”為200LUX,“燈狀態”為關。

敲黑板啦:模擬器與Web頁面之間會有短暫延遲,不用刷新頁面,幾秒鐘后可發現頁面會隨之變化!

5.10 模擬器訂閱Topic

切換到“訂閱Topic”頁簽,并在Topic欄中輸入以下代碼:
$oc/devices/{device_id}/sys/commands/#,其中的{device_id}需要替換成實際設備ID。
輸入完畢后,點擊“訂閱”按鈕可完成訂閱。

$oc/devices/{device_id}/sys/commands/#

訂閱成功后,右側日志顯示訂閱Topic成功

5.11 平臺下發設備命令/模擬器響應

7.4.1終端聯控模式配置
返回智慧路燈Web界面,“路燈控制”選擇“終端聯控模式”,開關選擇“開”,單擊“設置”,然后點擊”確認”。
①若當前燈狀態為“關”,開關選擇為“開”,服務后臺會實時下發一條開燈命令,彈窗提示會有5-10秒左右延遲,請耐心等待。
②若當前燈狀態為“關”,開關選擇為“關”,不會觸發命令下發,直接彈窗提示設置成功;
即“燈狀態”與“開關選擇”一致時,不會觸發命令下發;“燈狀態”與“開關選擇”不一致時,會觸發實時命令下發;

收不到命令怎么辦?

5.12 命令接收

因為當前“燈狀態”為關,“開關選擇”為開,查看模擬器日志區域,會收到一條開燈命令。(payload的值經過base64加密,解密后即可得到命令內容)

5.13 模擬器發送消息,上報變更后的設備屬性

①Topic:$oc/devices/{device_id}/sys/properties/report,其中的{device_id}需要替換成實際設備ID。

$oc/devices/{device_id}/sys/properties/report

②消息內容:
其中,光感強度可自定義,燈狀態建議為ON。

{"services":[{"service_id":"Sensor","properties":{"luminance":"110","light_state":"ON"}}]}

5.14 查看應用界面變化

如下圖所示,應該顯示“環境亮度”為110LUX,“燈狀態”為開。

5.15 短信/郵件通知

在模擬器上單擊“斷開連接”后,重復7.4.1,“路燈控制”選擇“終端聯控模式”,開關選擇“關”,單擊“設置”。
因為燈狀態為“開”,開關選擇為“關”,服務后臺會實時下發一條關燈命令;而設備處于離線狀態,導致命令下發失敗
此時,系統會發送短信/郵件通知告知訂閱用戶命令下發失敗;通知內容為命令下發失敗的錯誤信息
通知示例:【華為云】錯誤信息:{"error_code":"IOTDA.014016","error_msg":"Operation not allowed. The device is not online."}
設備變更為“離線”狀態,請登錄華為云控制臺,選擇“物聯網 > 設備接入服務”,在左側導航欄,選擇“設備 > 所有設備”,根據設備標識碼查看設備狀態

5.16(可選)自動調光模式

自動調光模式參數配置

在模擬器上單擊“建立連接”,將設備重新上線。返回智慧路燈Web界面,“路燈控制”選擇“自動調光模式”,設置亮度閾值為100

5.17 模擬器接收反應

因為當前“環境亮度”為110LUX,“燈狀態”為開,查看模擬器日志區域,應該會收到關燈命令。
①若當前“環境亮度”大于“亮度閾值”,且“燈狀態”為“開”,服務后臺會實時下發一條關燈命令,彈窗提示會有5-10秒左右延遲,請耐心等待。
②若當前“環境亮度”小于“亮度閾值”,且“燈狀態”為“開”,不會觸發命令下發,直接彈窗提示設置成功
即“環境亮度”小于“亮度閾值”,且“燈狀態”為“開”或“環境亮度”大于“亮度閾值”,且“燈狀態”為“關”時,不會觸發命令下發;反之,則會觸發實時命令下發

模擬器發送消息,上報變更后的設備屬性。
①Topic:$oc/devices/{device_id}/sys/properties/report,其中的{device_id}需要替換成實際設備ID

$oc/devices/{device_id}/sys/properties/report

②消息內容:
其中,光感強度<100,燈狀態為OFF

{"services":[{"service_id":"Sensor","properties":{"luminance":"80","light_state":"OFF"}}]}

5.18 查看Web界面

返回智慧路燈Web界面,單擊“設置”,查看模擬器日志區域,會收到一條開燈命令

5.19(可選)分段定時模式

分段定時模式參數配置
返回智慧路燈Web界面,“路燈控制”選擇“分段定時模式”,設置關燈時間段為06:30-18:30。

敲黑板啦:“關燈時間段”和“亮度曲線”橫軸時間均為彈性云服務器系統時間,即為GMT+0:00時區

結果判定,因為當前“燈狀態”為關,需根據彈性云服務器系統時間(參考“亮度曲線”橫軸時間)判斷結果;
①若系統時間位于“關燈時間段”之外,且“燈狀態”為“關”,服務后臺會實時下發一條開燈命令,彈窗提示會有5-10秒左右延遲,請耐心等待

②若系統時間位于“關燈時間段”之內,且“燈狀態”為“關”,不會觸發命令下發,直接彈窗提示設置成功啦開心

5.20 (可選)如何正確刪除應用服務

首先刪彈性云服務器 ECS

在華為云控制臺,選擇“服務列表”-> “計算”-> “彈性云服務器 ECS”進入,勾選待刪除ECS服務器,如ecs-iot,選擇“更多 > 刪除”,在彈窗中請勾選刪除彈性公網IP和數據盤后,點擊“是”完成刪除

然后刪設備接入服務 IoTDA

在華為云控制臺,選擇“服務列表”->“物聯網”->“設備”→“所有設備”進入所有設備列表,根據設備標識碼刪除設備,如123456789f。然后在左側欄選擇“產品”,刪除產品,如StreetLight

最后刪桌面下載的資源包

桌面雙擊“Xfce終端”打開Terminal,輸入以下命令下載刪除“HubSimulator.jar”文件。

cd Desktop/rm HubSimulator.jar

接下來刪除“SmartStreetLight.zip”壓縮包。命令如下:

rm SmartStreetLight.zip


本文系作者授權數英發表,內容為作者獨立觀點,不代表數英立場。
轉載請在文章開頭和結尾顯眼處標注:作者、出處和鏈接。不按規范轉載侵權必究。
本文系作者授權數英發表,內容為作者獨立觀點,不代表數英立場。
未經授權嚴禁轉載,授權事宜請聯系作者本人,侵權必究。
本內容為作者獨立觀點,不代表數英立場。
本文禁止轉載,侵權必究。
本文系數英原創,未經允許不得轉載。
授權事宜請至數英微信公眾號(ID: digitaling) 后臺授權,侵權必究。

    評論

    文明發言,無意義評論將很快被刪除,異常行為可能被禁言
    DIGITALING
    登錄后參與評論

    評論

    文明發言,無意義評論將很快被刪除,異常行為可能被禁言
    800

    推薦評論

    暫無評論哦,快來評論一下吧!

    全部評論(0條)

    主站蜘蛛池模板: 沅江市| 临潭县| 景洪市| 满城县| 湘潭县| 大埔县| 沾益县| 内乡县| 千阳县| 横山县| 民权县| 定西市| 绥化市| 瑞丽市| 迭部县| 长乐市| 茶陵县| 仲巴县| 远安县| 武汉市| 林口县| 玉树县| 肇庆市| 安塞县| 沂南县| 隆尧县| 城固县| 汝州市| 济源市| 宣武区| 兴文县| 观塘区| 南昌县| 聂拉木县| 虹口区| 大城县| 图木舒克市| 南漳县| 庆云县| 新绛县| 瑞昌市|