自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

HarmonyOS Connect設(shè)備開發(fā)之南向開發(fā)-設(shè)備配網(wǎng)

系統(tǒng) OpenHarmony
本節(jié)我們完成了smart_fan設(shè)備側(cè)的配網(wǎng)開發(fā),目前能實(shí)現(xiàn)配網(wǎng)。

??想了解更多關(guān)于開源的內(nèi)容,請(qǐng)?jiān)L問:??

??51CTO 開源基礎(chǔ)軟件社區(qū)??

??https://ost.51cto.com??

一、分析模板demo-winder

回到設(shè)備側(cè)開發(fā)指導(dǎo),winder案例工程結(jié)構(gòu)如下:

├── BUILD.gn
├── include
├── code_tab.h // 字母和漢字編碼
├── common.h // 設(shè)備初始化相關(guān)接口
├── defines.h // 通用宏及調(diào)試宏定義
├── keypad.h // 按鍵相關(guān)接口
├── led.h // LED等控制相關(guān)接口
├── netcfg.h // 無感配網(wǎng)注冊(cè)相關(guān)接口
├── network_config_service.h //無感配網(wǎng)相關(guān)頭文件。
├── oled.h // OLED 相關(guān)接口
├── pwm.h // PWM 相關(guān)接口
├── sensor.h // 傳感器相關(guān)接口
└── winder.h // 風(fēng)扇相關(guān)宏定義
├── libs
├── libhilinkadapter_3861.a // 無感配網(wǎng)相關(guān)庫(kù)文件。
└── libnetcfgdevicesdk.a // 無感配網(wǎng)相關(guān)庫(kù)文件。
└── src
├── common.c // 設(shè)備相關(guān)初始化操作
├── keypad.c // 按鍵驅(qū)動(dòng)模塊
├── led.c // LED燈相關(guān)控制實(shí)現(xiàn)
├── netcfg.c // NAN相關(guān)操作和聯(lián)網(wǎng)動(dòng)作
├── oled.c // 與OLED 模塊相關(guān)
├── pwm.c // PWM相關(guān)控制實(shí)現(xiàn)
├── sensor.c // 傳感器相關(guān)
└── winder.c // 風(fēng)扇主函數(shù)入口,及相關(guān)控制邏輯的實(shí)現(xiàn)

找出設(shè)備配網(wǎng)依賴,總結(jié)如下:

include:
├── netcfg.h // 無感配網(wǎng)注冊(cè)相關(guān)接口
├── network_config_service.h //無感配網(wǎng)相關(guān)頭文件。
libs:
├── libs
├── libhilinkadapter_3861.a // 無感配網(wǎng)相關(guān)庫(kù)文件。
└── libnetcfgdevicesdk.a // 無感配網(wǎng)相關(guān)庫(kù)文件。
src:
├── netcfg.c // NAN相關(guān)操作和聯(lián)網(wǎng)動(dòng)作

二、配網(wǎng)函數(shù)API

我們分析配網(wǎng)相關(guān)的幾個(gè)文件。

① network_config_service.h文件_StartNetCfg()函數(shù):開始配網(wǎng)入口。

DevInfo是配網(wǎng)信息,在netcfg.c中引用如下:

const char *g_ssid = "SmartFan     ";
const char *g_pinCode = "11111111";
const char *g_productId = "1";
const char *g_sn = "0123/.,.,4567890123450123456789012345";
···
devInfo[0].key = "productId";
devInfo[1].key = "sn";
devInfo[0].value = g_productId;
devInfo[1].value = g_sn;
ret = StartNetCfg(devInfo, DEVICE_INFO_NUM, NETCFG_SOFTAP_NAN); //SoftAP and NAN模式

② netcfg.h文件 -NetCfgRegister()函數(shù): 進(jìn)入配網(wǎng)狀態(tài)并注冊(cè)網(wǎng)絡(luò)監(jiān)聽事件,在主函數(shù)入口調(diào)用。

在winder工程調(diào)用如下:

③ netcfg.c RecvRawData()函數(shù)-接收數(shù)據(jù)。

在winder工程中,使用注冊(cè)回調(diào)函數(shù)的形式接收數(shù)據(jù)。如下:

三、新建smart_fan工程

分析完winder demo設(shè)備側(cè)代碼,我們新建一個(gè)smart_fan工程,引入配網(wǎng)依賴,新建業(yè)務(wù)代碼。

1、依賴庫(kù)拷貝

在app目錄下新建一個(gè)文件夾smart_fan,將winder工程中的BUILD.gn、libs、include、src拷貝到該目錄下,只保留需要的幾個(gè)文件,同新建smart_fan.c文件,工程架構(gòu)如下:

├── BUILD.gn
├── include
├── defines.h // 通用宏及調(diào)試宏定義
├── netcfg.h // 無感配網(wǎng)注冊(cè)相關(guān)接口
├── network_config_service.h //無感配網(wǎng)相關(guān)頭文件。
├── libs
├── libhilinkadapter_3861.a // 無感配網(wǎng)相關(guān)庫(kù)文件。
└── libnetcfgdevicesdk.a // 無感配網(wǎng)相關(guān)庫(kù)文件。
└── src
├── netcfg.c // NAN相關(guān)操作和聯(lián)網(wǎng)動(dòng)作
└── smart_fan.c // 風(fēng)扇主函數(shù)入口,及相關(guān)控制邏輯的實(shí)現(xiàn)

復(fù)制

2、業(yè)務(wù)代碼

接下來我們?cè)趕mart_fan.c中編寫業(yè)務(wù)代碼,實(shí)現(xiàn)配網(wǎng)、接收數(shù)據(jù)。

//接收數(shù)據(jù)
char app_msg[20] = {0};
static void WinderProcessAppMessage(const char *data, int data_len)
{
if (strcpy(app_msg, data) != 0)
{
WINERR("strncpy_s failed! \n");
return;
}
printf("app_msg %s\r\n",app_msg);
}
//NetEvent回調(diào)函數(shù)
static int WinderNetEventHandler(NET_EVENT_TYPE event, void *data)
{
switch (event)
{
case NET_EVENT_CONNECTTED: // 網(wǎng)絡(luò)連接成功
printf("connect net successful"); // 顯示網(wǎng)絡(luò)已連接
break;
case NET_EVENT_RECV_DATA: // 接收到網(wǎng)絡(luò)信息(FA發(fā)送的消息)
WinderProcessAppMessage((const char *)data, strlen(data)); // 處理對(duì)應(yīng)的信息
break;
default:
break;
}
return 0;
}

static void *WinderTask(const char *arg)
{
(void)arg;
WINDBG("WinderTask Enter! \n");
NetCfgRegister(WinderNetEventHandler); // 進(jìn)入配網(wǎng)狀態(tài)并注冊(cè)網(wǎng)絡(luò)監(jiān)聽事件
}

3、編譯燒錄

修改BUILD.gn文件,正常編譯燒錄即可。

四、配網(wǎng)測(cè)試

燒錄成功后,碰一碰進(jìn)行配網(wǎng),串口會(huì)輸出北向開發(fā)APP發(fā)出的對(duì)應(yīng)數(shù)據(jù)。如下:

小結(jié)

本節(jié)我們完成了smart_fan設(shè)備側(cè)的配網(wǎng)開發(fā),目前能實(shí)現(xiàn)配網(wǎng)。下一節(jié)我們編寫業(yè)務(wù)代碼,并演示【HarmonyOS Connect設(shè)備開發(fā)-個(gè)人】最終的成果。

??想了解更多關(guān)于開源的內(nèi)容,請(qǐng)?jiān)L問:??

??51CTO 開源基礎(chǔ)軟件社區(qū)??

??https://ost.51cto.com??。

責(zé)任編輯:jianghua 來源: 鴻蒙社區(qū)
相關(guān)推薦

2022-05-19 15:33:42

JS通信接口鴻蒙

2022-05-18 16:17:31

設(shè)備開發(fā)鴻蒙

2022-05-19 15:47:24

碰一碰連接設(shè)備開發(fā)鴻蒙

2022-05-17 10:33:58

設(shè)備開發(fā)鴻蒙操作系統(tǒng)

2022-02-11 13:49:42

Linux系統(tǒng)鴻蒙

2020-12-30 11:08:50

鴻蒙HarmonyOShelloWorld

2022-08-15 22:20:46

應(yīng)用開發(fā)華為IoT平臺(tái)

2022-11-18 15:42:36

2022-08-15 22:09:37

設(shè)備開發(fā)開發(fā)筆記

2020-11-05 10:05:25

App

2022-02-21 15:38:57

Openharmon操作系統(tǒng)鴻蒙

2022-09-07 15:35:49

設(shè)備開發(fā)鴻蒙

2010-07-19 10:05:52

ibmdwLinux

2022-11-29 16:29:50

設(shè)備開發(fā)UDP

2022-07-29 14:29:24

設(shè)備開發(fā)鴻蒙

2022-09-22 15:23:40

設(shè)備開發(fā)鴻蒙

2021-02-02 15:40:36

鴻蒙HarmonyOS應(yīng)用開發(fā)

2021-02-24 15:20:38

鴻蒙HarmonyOS嵌入式開發(fā)

2022-10-24 14:54:29

LWIP協(xié)議鴻蒙

2021-12-28 16:10:20

鴻蒙HarmonyOS應(yīng)用
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)