成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

跟著小白一起學鴻蒙—簡析 OpenHarmony 的 WiFi 能力

系統(tǒng) OpenHarmony
Wi-Fi(發(fā)音: /?wa?fa?/),又稱“無線網(wǎng)路”,是Wi-Fi聯(lián)盟的商標,一個基于IEEE 802.11標準的無線局域網(wǎng)技術。

??想了解更多關于開源的內容,請訪問:??

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

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

WiFi功能是無線短距的重要能力,在工作、生活中我們已經(jīng)離不開WiFi設備了,比如家里的路由,手機,各種智能家居設備。Wi-Fi(發(fā)音: /?wa?fa?/),又稱“無線網(wǎng)路”,是Wi-Fi聯(lián)盟的商標,一個基于IEEE 802.11標準的無線局域網(wǎng)技術。“Wi-Fi”常被寫成“WiFi”或“Wifi”,但是這些寫法并沒有被Wi-Fi聯(lián)盟認可。1999年,幾家富有遠見的公司聯(lián)合起來組成了一個全球性非營利性協(xié)會——無線以太網(wǎng)兼容性聯(lián)盟(Wireless Ethernet Compatibility Alliance, WECA),其目標是使用一種新的無線網(wǎng)絡技術,無論品牌如何,都能帶來最佳的用戶體驗。在2000年,該小組采用術語“Wi-Fi”作為其技術工作的專有名稱,并宣布了正式名稱:Wi-Fi Alliance。Wi-Fi以IEEE 802.11為標準,Wi-Fi聯(lián)盟在2018年發(fā)起“Generational Wi-Fi”行銷計畫,基于主要的Wi-Fi技術(PHY)版本,引入了更容易讓消費者了解的“Wi-Fi世代名稱”(Wi-Fi generation names),格式為“Wi-Fi”后跟一個整數(shù),并鼓勵采用世代名稱作為行業(yè)術語。

  • 第一代,以IEEE 802.11原始標準為準,工作頻段為2.4GHz,最高速率半雙工2 Mbit/s。
  • 第二代,以IEEE 802.11b為準,工作頻段為2.4GHz,最高速率半雙工11 Mbit/s,認證計畫為“Wi-Fi CERTIFIED b”。
  • 第三代,以IEEE 802.11a為準,工作頻段為5GHz,最高速率54 Mbit/s,認證計畫為“Wi-Fi CERTIFIED a”。基于IEEE_802.11g、2.4GHz工作頻段、最高速率半雙工54 Mbit/s,認證計畫為“Wi-Fi CERTIFIED g”。
  • 第四代,以IEEE 802.11n為準,世代名稱為“Wi-Fi 4”,信道寬度20MHz、40MHz,工作頻段為2.4GHz和5GHz,最高4條空間流,最大副載波調制64-QAM,最高速率半雙工600 Mbit/s,認證計畫為“Wi-Fi CERTIFIED n”。
  • 第五代,以IEEE 802.11ac為準,世代名稱為“Wi-Fi 5”,信道寬度20MHz、40MHz、80MHz、80+ 80MHz、160MHz,工作頻段為5GHz,最高8條空間流,最大副載波調制256-QAM,最高速率半雙工6.9 Gbit/s,認證計畫為“Wi-Fi CERTIFIED ac”。
  • 第六代,以IEEE 802.11ax為準,世代名稱為“Wi-Fi 6”,信道寬度20MHz、40MHz、80MHz、80+ 80MHz、160MHz,工作頻段為2.4GHz和5GHz,最高8條空間流,最大副載波調制1024-QAM,最高速率半雙工[29][30]9.6 Gbit/s,認證計畫為“Wi-Fi CERTIFIED 6”。

注意:Wi-Fi與??IEEE 802.11??常常被混淆,兩者的區(qū)別可以概述為IEEE 802.11是一種無線局域網(wǎng)標準,而Wi-Fi是IEEE 802.11標準的一種實現(xiàn)。

概述

在開源鴻蒙的源碼里和系統(tǒng)功能相關的部分大多都放在foundation這個文件夾里,而通訊相關的部分則是在communication這個文件夾內。我們本篇要分析的WiFi功能就是在foundation/communication/wifi路徑下,具體目錄結構如下:

.
├── dhcp //dhcp: 動態(tài)主機設置協(xié)議(Dynamic Host Configuration Protocol)是IP網(wǎng)絡的網(wǎng)絡協(xié)議,在應用層使用UDP協(xié)議工作,主要用途為:1,自動分配IP地址;2,對所有電腦做中央管理;
├── BUILD.gn
├── bundle.json
├── dhcp.gni
├── dhcp_lite.gni
├── interfaces
├── services
└── test
└── wifi //wifi實現(xiàn)部分
├── application
├── BUILD.gn
├── bundle.json
├── frameworks
├── hisysevent.yaml
├── interfaces
├── services
├── test
├── utils
├── wifi.gni
└── wifi_lite.gni

在開源鴻蒙的源碼里還有兩個和wifi相關的目錄,都是針對小型開發(fā)板的。

  • wifi_aware (僅支持Hi3861開發(fā)板)

.
├── BUILD.gn
├── bundle.json
├── frameworks
│ └── source
├── hals
│ └── hal_wifiaware.h
├── interfaces
│ └── kits
├── LICENSE
├── README.md
└── README_zh.md

  • wifi_lite (wifi-iot開發(fā)板)

.
├── BUILD.gn
├── bundle.json
├── interfaces
│ ├── README.md
│ └── wifiservice
├── LICENSE
├── README.md
└── README_zh.md

架構簡析

  • 根據(jù)目錄結構和內部文件及編譯框架總結架構如下:

#盲盒+碼# #跟著小白一起學鴻蒙#簡析OpenHarmony的WiFi能力-開源基礎軟件社區(qū)

  • 應用層:提供WiFi Direct接口使用DEMO,使用@ohos.wifi接口提供的p2p相關接口,實現(xiàn)一個WLAN直連的Setting界面。
  • 接口層:提供兩個dts接口(@ohos.wifi.d.ts, @ohos.wifiext.d.ts)和NativeC接口(軟總線會使用這些接口實現(xiàn)分布式通信能力)。
  • 框架層:分兩個子層,NAPI框架實現(xiàn)層,為wifi,wifiext和wifi_native_js,其中wifi_native_js已經(jīng)被淘汰;Native SDK層,實現(xiàn)所有js層代碼接口適配并調用innerapi的實現(xiàn);WiFi接口實現(xiàn)層,使用IPC架構同WiFi服務層通信(WIFI_DEVICE_ABILITY_ID:1120;WIFI_HOTSPOT_ABILITY_ID:1121;WIFI_P2P_ABILITY_ID:1123;WIFI_SCAN_ABILITY_ID:1124)將從NAPI收到的命令,或者別的子系統(tǒng)收到的命令經(jīng)由IPC架構發(fā)送給服務層,并注冊服務層observer,收聽由服務層上報的事件。
  • 服務層:分三個子部分,能力部分,管理部分,硬件部分,分別如下:
  • 能力集部分,對上提供應用接口支持,采用systemability能力框架,分以下幾個功能模塊:
  • wifi_standard_sa_profile: wifi能力配置(1120:wifi_device_ability;1121:wifi_hotspot_ability;1123:wifi_p2p_ability;1124:wifi_scan_ability)
  • wifi_device_ability: wifi設備能力,如開關wifi,配置(ssid,加密方式等),連接情況。
  • wifi_hotspot_ability: wifi熱點能力,如wifi熱點配置,開關,設置黑名單,電源模式。
  • wifi_p2p_ability: p2p能力,如wifi直連的開關,設備發(fā)現(xiàn),創(chuàng)建群組,p2p連接,獲取連接信息,狀態(tài),hid2d。
  • wifi_scan_ability: 掃描能力,如wifi掃描的開關。
  • 管理部分,對上對接能力集的功能,對下調用idl_client接口調用硬件能力,分以下幾個功能模塊:
  • wifi_manager_service.so: 提供service的管理能力,管理serviceDllMap,通過load對應的so提供sta,ap(根據(jù)wifi_feature_with_ap_num配置決定),p2p,scan服務實例獲取接口; 同時提供wifi服務的管理能力,比如權限,wifi的配置,network supplier。
  • wifi_common_service.so: 提供wifi芯片的能力配置,主要服務是ChipCapability(IsSupportDbdc, Csa, RadarDetect, DfsChannel, IndoorChannel),通過idlclient請求驅動數(shù)據(jù)。
  • wifi_sta_service: wifi station(無線客戶端)服務,對接實現(xiàn)sta能力集能力。
  • wifi_ap_service: wifi ap(無線接入點)服務,對接實現(xiàn)ap能力集能力。
  • wifi_p2p_service: wifi p2p(無線直連)服務,對接實現(xiàn)p2p能力集能力。
  • wifi_scan_service: wifi掃描服務,對接實現(xiàn)掃描能力集能力。
  • wifi_idl_client: wifi硬件適配層客戶端,提供cRPC調用wifi設備的硬件抽象層。
  • wifi_toolkit: wifi工具簇,包括ifconfig,iptools,arp,dhcp,mac,rawsocket,ipv4,ipv6,wifisetting,wificonfig等工具。
  • 硬件抽象部分,分以下功能模塊:
  • wifi_hal_service: 獨立進程,wifi硬件抽象服務,采用cRPC架構,集成wpa_supplicant-2.9的標準能力,調用hdi接口。
  • 硬件驅動:HDF:

功能簡析

NAPI和cadapterWiFi系統(tǒng)能力WiFi服務idl_clientWiFiHalwpa_supplicantIFACE跨進程,IPC調用通過samgr獲取服務Proxy對象鏈接對應服務so,c++調用鏈接對應的idlso,c接口調用cRPC調用鏈接wap_supplicant.so, c接口調用udpNAPI和cadapterWiFi系統(tǒng)能力WiFi服務idl_clientWiFiHalwpa_supplicantIFACE。

  1. WiFi框架能力(NAPI接口,cadapter接口及wifi_sdk)
  • NAPI接口為應用層(ets,js)提供接口,調用WiFi系統(tǒng)層能力。
  • cadapter實現(xiàn)c接口,為其他能力提供接口(比如軟總線),調用WiFi系統(tǒng)能力。
  • wifi_sdk封裝了系統(tǒng)能力調用的框架,通過proxy方式訪問具體的WiFi系統(tǒng)能力,具體如下:
  • #define WIFI_DEVICE_ABILITY_ID 1120。
  • #define WIFI_HOTSPOT_ABILITY_ID 1121。
  • #define WIFI_P2P_ABILITY_ID 1123。
  • #define WIFI_SCAN_ABILITY_ID 1124。
  1. WiFi系統(tǒng)能力
  • WiFi系統(tǒng)能力通過繼承SystemAbility,實現(xiàn)WiFi服務能力并實現(xiàn)IPC進行通信(服務端實現(xiàn)stub實現(xiàn))。
  • WiFi系統(tǒng)能力均為so動態(tài)庫,被SystemAbility同一管理,包括:wifi_device_ability,wifi_hotspot_ability,wifi_p2p_ability,wifi_scan_ability。
  • WiFI系統(tǒng)服務通過調用WiFi服務實現(xiàn)功能。
  1. WiFi服務
  • WiFi服務層包括:wifi_scan_service,wifi_sta_service 和 wifi_ap_service,wifi_p2p_service(后兩個針對標準設備)。
  • 主服務為wifi_manager_service,內部管理一張dll表,定義對應的WiFi服務,通過WiFi能力層調用,加載不同dll,獲得不同服務。
  • WiFi服務層主要通過idl_client同WiFi硬件抽象層進行數(shù)據(jù)交互。
  1. WiFi硬件抽象
  • WiFi硬件抽象層并不是完全意義的硬件抽象,即是WiFi協(xié)議層(wap_supplicant-2.9)之上的適配層,又基于HDF之上使用HDI接口調用驅動能力。
  • WiFi硬件抽象層是獨立的進程,通過cRpc和WiFi服務層交互。
  • 在WiFi硬件層還有etc配置目錄,內部存儲WiFi的默認配置。
  • 目前WiFi主要用的HDI部分集中在ap相關功能,如:WifiSetPowerModel,GetValidFrequenciesForBand。
  1. WiFi協(xié)議層(wap_supplicant-2.9)

總結

  1. WiFi服務的結構和之前講的藍牙結構略有不同,為了提供更靈活的能力,WiFi實現(xiàn)了更多的SystemAbility,同時通過idl_client,WiFi服務通過調用wap_supplicant實現(xiàn)具體的WiFi能力。
  2. 目前開源鴻蒙用的WiFi協(xié)議站為wpa_supplicant-2.9,提供WiFi的接入和熱點能力。

??想了解更多關于開源的內容,請訪問:??

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

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

責任編輯:jianghua 來源: 51CTO開源基礎軟件社區(qū)
相關推薦

2022-11-28 15:42:39

分布式軟總線鴻蒙

2023-03-30 09:19:54

SELinux安全子系統(tǒng)

2022-12-05 15:02:14

鴻蒙用戶鑒權

2022-11-08 15:43:45

開源鴻蒙藍牙協(xié)議棧

2022-08-19 19:02:20

開源鴻蒙操作系統(tǒng)

2023-01-03 15:09:10

鴻蒙常用工具

2022-12-06 15:39:16

鴻蒙主干代碼

2022-12-02 14:20:09

Tetris鴻蒙

2022-11-29 16:35:02

Tetris鴻蒙

2023-03-30 09:32:27

2022-11-14 17:01:34

游戲開發(fā)畫布功能

2022-10-31 15:35:02

Wi-Fi藍牙子系統(tǒng)

2023-04-04 09:24:11

鴻蒙HiDumper

2022-10-10 14:47:04

藍牙應用鴻蒙

2023-02-27 16:30:32

鴻蒙開源協(xié)議分析

2022-08-29 17:25:19

鴻蒙應用開發(fā)

2022-11-24 14:34:41

Hap程序鴻蒙

2023-03-15 16:19:03

BinderIPC工具

2022-10-09 15:05:50

NAPI框架鴻蒙

2022-10-20 16:40:16

JS應用控制LED鴻蒙
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 九九热在线精品视频 | 国产精品久久久久久久久久久久久 | 天天天久久久 | 一区欧美 | 高清久久久 | 97久久久 | 亚洲国产精品一区二区三区 | 天天天操 | 精品久久久久一区二区国产 | 久久久久亚洲国产| 男人天堂网址 | 欧美一区二区三区在线观看 | 亚洲 中文 欧美 | 中文字幕在线精品 | 成人在线视频免费播放 | 国产日韩av一区二区 | 91精品国产一二三 | 免费三级网| 午夜不卡一区二区 | 久久免费国产 | 久久精品免费 | 精品国产一区二区三区久久久蜜月 | 91人人看| 国产一区二区三区四区 | 国产精品美女一区二区三区 | 玖玖操| 亚洲欧美综合 | 亚洲国产一区二区三区在线观看 | 久久精品国产亚洲 | 91精品国产乱码久久久 | 欧美极品在线播放 | 精品久久久久久久久久久久久 | 日本三级全黄三级三级三级口周 | 毛片免费视频 | 一区二区三区视频在线 | 九九国产 | 天天综合网91| 国产精品成av人在线视午夜片 | 永久精品 | 在线免费中文字幕 | 尤物视频在线免费观看 |