1# IWlanInterface 2 3 4## **概述** 5 6WLAN模块向上层WLAN服务提供了统一接口。 7 8上层服务调用相关的接口,可以建立/关闭WLAN热点,扫描/关联/去关联WLAN热点,设置国家码,管理网络设备等。 9 10**Since:** 11 123.2 13 14**Version:** 15 161.0 17 18**相关模块:** 19 20[WLAN](wlan.md) 21 22 23## **汇总** 24 25 26### Public 成员函数 27 28 | 名称 | 描述 | 29| -------- | -------- | 30| [Start](#start) () | 创建HAL和驱动之间的通道及获取驱动网卡信息,该函数调用在创建IWiFi实体后进行。 | 31| [Stop](#stop) () | 销毁HAL和驱动之间的通道,该函数调用在销毁IWiFi实体前进行。 | 32| [CreateFeature](#createfeature) ([in] int type, [out] struct [HdfFeatureInfo](_hdf_feature_info.md) ifeature) | 根据输入类型创建对应的feature对象。 | 33| [DestroyFeature](#destroyfeature) ([in] struct [HdfFeatureInfo](_hdf_feature_info.md) ifeature) | 销毁feature对象。 | 34| [GetAsscociatedStas](#getasscociatedstas) ([in] struct [HdfFeatureInfo](_hdf_feature_info.md) ifeature, [out] struct [HdfStaInfo](_hdf_sta_info.md)[] staInfo, [out] unsigned int num) | 获取与AP连接的所有STA的信息(目前只包含MAC地址)。 | 35| [GetChipId](#getchipid) ([in] struct [HdfFeatureInfo](_hdf_feature_info.md) ifeature, [out] unsigned char chipId) | 获得当前驱动的芯片ID。 | 36| [GetDeviceMacAddress](#getdevicemacaddress) ([in] struct [HdfFeatureInfo](_hdf_feature_info.md) ifeature, [out] unsigned char[] mac, [in] unsigned char len) | 获取设备的MAC地址。 | 37| [GetFeatureByIfName](#getfeaturebyifname) ([in] String ifName, [out] struct [HdfFeatureInfo](_hdf_feature_info.md) ifeature) | 通过网卡名称获取对应的feature对象。 | 38| [GetFeatureType](#getfeaturetype) ([in] struct [HdfFeatureInfo](_hdf_feature_info.md) ifeature, [out] int featureType) | 获取feature对象的类型。 | 39| [GetFreqsWithBand](#getfreqswithband) ([in] struct [HdfFeatureInfo](_hdf_feature_info.md) ifeature, [in] struct [HdfWifiInfo](_hdf_wifi_info.md) wifiInfo, [out] int[] freq) | 获取指定频段(2.4G或者5G)下支持的频率。 | 40| [GetIfNamesByChipId](#getifnamesbychipid) ([in] unsigned char chipId, [out] String ifName, [out] unsigned int num) | 通过芯片ID获得当前芯片所有的网卡名称。 | 41| [GetNetworkIfaceName](#getnetworkifacename) ([in] struct [HdfFeatureInfo](_hdf_feature_info.md) ifeature, [out] String ifName) | 根据feature对象获取网卡名称。 | 42| [GetSupportCombo](#getsupportcombo) ([out] unsigned long combo) | 获取多网卡共存情况。 | 43| [GetSupportFeature](#getsupportfeature) ([out] unsigned char[] supType) | 获取该设备支持的WLAN特性(不考虑当前的使用状态)。 | 44| [RegisterEventCallback](#registereventcallback) ([in] [IWlanCallback](interface_i_wlan_callback.md) cbFunc, [in] String ifName) | 注册IWiFi的回调函数,监听异步事件。 | 45| [UnregisterEventCallback](#unregistereventcallback) ([in] [IWlanCallback](interface_i_wlan_callback.md) cbFunc, [in] String ifName) | 去注册IWiFi的回调函数。 | 46| [ResetDriver](#resetdriver) ([in] unsigned char chipId, [in] String ifName) | 重启指定芯片ID的WLAN驱动程序。 | 47| [SetCountryCode](#setcountrycode) ([in] struct [HdfFeatureInfo](_hdf_feature_info.md) ifeature, [in] String code, [in] unsigned int len) | 设置国家码(表示AP射频所在的国家,规定了AP射频特性,包括AP的发送功率、支持的信道等。其目的是为了使AP的射频特性符合不同国家或区域的法律法规要求)。 | 48| [SetMacAddress](#setmacaddress) ([in] struct [HdfFeatureInfo](_hdf_feature_info.md) ifeature, [in] unsigned char[] mac) | 根据传入参数设置对应网卡的MAC地址。 | 49| [SetScanningMacAddress](#setscanningmacaddress) ([in] struct [HdfFeatureInfo](_hdf_feature_info.md) ifeature, [in] unsigned char[] scanMac) | 设置扫描单个MAC地址。 | 50| [SetTxPower](#settxpower) ([in] struct [HdfFeatureInfo](_hdf_feature_info.md) ifeature, [in] int power) | 设置发射功率。 | 51| [GetNetDevInfo](#getnetdevinfo) ([out] struct [HdfNetDeviceInfoResult](_hdf_net_device_info_result.md) netDeviceInfoResult) | 获取网络设备信息(设备索引、网卡名字、MAC等信息)。 | 52| [StartScan](#startscan) ([in] struct [HdfFeatureInfo](_hdf_feature_info.md) ifeature, [in] struct [HdfWifiScan](_hdf_wifi_scan.md) scan) | 启动扫描。 | 53| [GetPowerMode](#getpowermode) ([in] struct [HdfFeatureInfo](_hdf_feature_info.md) ifeature, [out] unsigned char mode) | 获取正在使用的功率模式。 | 54| [SetPowerMode](#setpowermode) ([in] struct [HdfFeatureInfo](_hdf_feature_info.md) ifeature, [in] unsigned char mode) | 设置功率模式。 | 55| [StartChannelMeas](#startchannelmeas) ([in] String ifName, [in] struct [MeasChannelParam](_meas_channel_param.md) measChannelParam) | 启动信道测量。 | 56| [GetChannelMeasResult](#getchannelmeasresult) ([in] String ifName, [out] struct [MeasChannelResult](_meas_channel_result.md) measChannelResult) | 获取信道测量结果。 | 57| [SetProjectionScreenParam](#setprojectionscreenparam) ([in] String ifName, [in] struct [ProjectionScreenCmdParam](_projection_screen_cmd_param.md) param) | 设置投屏参数。 | 58| [WifiSendCmdIoctl](#wifisendcmdioctl) ([in] String ifName, [in] int cmdId, [in] byte[] paramBuf) | 向驱动发送IO控制命令。 | 59| [GetStaInfo](#getstainfo) ([in] String ifName, [out] struct [WifiStationInfo](_wifi_station_info.md) info, [in] unsigned char[] mac) | 获取指定网卡的STA的信息。 | 60 61 62## **成员函数说明** 63 64 65### CreateFeature() 66 67 68``` 69IWlanInterface::CreateFeature ([in] int type, [out] struct HdfFeatureInfo ifeature ) 70``` 71 72**描述:** 73 74根据输入类型创建对应的feature对象。 75 76**参数:** 77 78 | 名称 | 描述 | 79| -------- | -------- | 80| type | 创建的feature类型。 | 81| ifeature | 获取创建的feature对象。 | 82 83**返回:** 84 85如果操作成功,则返回0。 86 87如果操作失败,则返回负值。 88 89 90### DestroyFeature() 91 92 93``` 94IWlanInterface::DestroyFeature ([in] struct HdfFeatureInfo ifeature) 95``` 96 97**描述:** 98 99销毁feature对象。 100 101**参数:** 102 103 | 名称 | 描述 | 104| -------- | -------- | 105| ifeature | 销毁的feature对象。 | 106 107**返回:** 108 109如果操作成功,则返回0。 110 111如果操作失败,则返回负值。 112 113 114### GetAsscociatedStas() 115 116 117``` 118IWlanInterface::GetAsscociatedStas ([in] struct HdfFeatureInfo ifeature, [out] struct HdfStaInfo[] staInfo, [out] unsigned int num ) 119``` 120 121**描述:** 122 123获取与AP连接的所有STA的信息(目前只包含MAC地址)。 124 125**参数:** 126 127 | 名称 | 描述 | 128| -------- | -------- | 129| ifeature | feature对象。 | 130| staInfo | 保存与AP连接的STA的基本信息。 | 131| num | 实际连接的STA的个数。 | 132 133**返回:** 134 135如果操作成功,则返回0。 136 137如果操作失败,则返回负值。 138 139 140### GetChannelMeasResult() 141 142 143``` 144IWlanInterface::GetChannelMeasResult ([in] String ifName, [out] struct MeasChannelResult measChannelResult ) 145``` 146 147**描述:** 148 149获取信道测量结果。 150 151**参数:** 152 153 | 名称 | 描述 | 154| -------- | -------- | 155| ifName | 网卡名称。 | 156| measChannelResult | 信道测量结果(信道号、信道负载、信道噪声)。 | 157 158**返回:** 159 160如果操作成功,则返回0。 161 162如果操作失败,则返回负值。 163 164 165### GetChipId() 166 167 168``` 169IWlanInterface::GetChipId ([in] struct HdfFeatureInfo ifeature, [out] unsigned char chipId ) 170``` 171 172**描述:** 173 174获得当前驱动的芯片ID。 175 176**参数:** 177 178 | 名称 | 描述 | 179| -------- | -------- | 180| ifeature | feature对象。 | 181| chipId | 获得的芯片ID。 | 182 183**返回:** 184 185如果操作成功,则返回0。 186 187如果操作失败,则返回负值。 188 189 190### GetDeviceMacAddress() 191 192 193``` 194IWlanInterface::GetDeviceMacAddress ([in] struct HdfFeatureInfo ifeature, [out] unsigned char[] mac, [in] unsigned char len ) 195``` 196 197**描述:** 198 199获取设备的MAC地址。 200 201**参数:** 202 203 | 名称 | 描述 | 204| -------- | -------- | 205| ifeature | feature对象。 | 206| mac | 获得的MAC地址。 | 207| len | mac数组的长度。 | 208 209**返回:** 210 211如果操作成功,则返回0。 212 213如果操作失败,则返回负值。 214 215 216### GetFeatureByIfName() 217 218 219``` 220IWlanInterface::GetFeatureByIfName ([in] String ifName, [out] struct HdfFeatureInfo ifeature ) 221``` 222 223**描述:** 224 225通过网卡名称获取对应的feature对象。 226 227**参数:** 228 229 | 名称 | 描述 | 230| -------- | -------- | 231| ifName | 网卡名称。 | 232| ifeature | 获取该网卡的feature对象。 | 233 234**返回:** 235 236如果操作成功,则返回0。 237 238如果操作失败,则返回负值。 239 240 241### GetFeatureType() 242 243 244``` 245IWlanInterface::GetFeatureType ([in] struct HdfFeatureInfo ifeature, [out] int featureType ) 246``` 247 248**描述:** 249 250获取feature对象的类型。 251 252**参数:** 253 254 | 名称 | 描述 | 255| -------- | -------- | 256| ifeature | feature对象。 | 257| featureType | feature对象的类型。 | 258 259**返回:** 260 261如果操作成功,则返回0。 262 263如果操作失败,则返回负值。 264 265 266### GetFreqsWithBand() 267 268 269``` 270IWlanInterface::GetFreqsWithBand ([in] struct HdfFeatureInfo ifeature, [in] struct HdfWifiInfo wifiInfo, [out] int[] freq ) 271``` 272 273**描述:** 274 275获取指定频段(2.4G或者5G)下支持的频率。 276 277**参数:** 278 279 | 名称 | 描述 | 280| -------- | -------- | 281| ifeature | feature对象。 | 282| wifiInfo | 频段信息。 | 283| freq | 保存支持的频率。 | 284 285**返回:** 286 287如果操作成功,则返回0。 288 289如果操作失败,则返回负值。 290 291 292### GetIfNamesByChipId() 293 294 295``` 296IWlanInterface::GetIfNamesByChipId ([in] unsigned char chipId, [out] String ifName, [out] unsigned int num ) 297``` 298 299**描述:** 300 301通过芯片ID获得当前芯片所有的网卡名称。 302 303**参数:** 304 305 | 名称 | 描述 | 306| -------- | -------- | 307| chipId | 需要获取网卡名称的芯片ID。 | 308| ifNames | 网卡名称。 | 309| num | 网卡的数量。 | 310 311**返回:** 312 313如果操作成功,则返回0。 314 315如果操作失败,则返回负值。 316 317 318### GetNetDevInfo() 319 320 321``` 322IWlanInterface::GetNetDevInfo ([out] struct HdfNetDeviceInfoResult netDeviceInfoResult) 323``` 324 325**描述:** 326 327获取网络设备信息(设备索引、网卡名字、MAC等信息)。 328 329**参数:** 330 331 | 名称 | 描述 | 332| -------- | -------- | 333| netDeviceInfoResult | 输出参数,得到的网络设备信息。 | 334 335**返回:** 336 337如果操作成功,则返回0。 338 339如果操作失败,则返回负值。 340 341 342### GetNetworkIfaceName() 343 344 345``` 346IWlanInterface::GetNetworkIfaceName ([in] struct HdfFeatureInfo ifeature, [out] String ifName ) 347``` 348 349**描述:** 350 351根据feature对象获取网卡名称。 352 353**参数:** 354 355 | 名称 | 描述 | 356| -------- | -------- | 357| ifeature | feature对象。 | 358| ifName | 网卡名称。 | 359 360**返回:** 361 362如果操作成功,则返回0。 363 364如果操作失败,则返回负值。 365 366 367### GetPowerMode() 368 369 370``` 371IWlanInterface::GetPowerMode ([in] struct HdfFeatureInfo ifeature, [out] unsigned char mode ) 372``` 373 374**描述:** 375 376获取正在使用的功率模式。 377 378**参数:** 379 380 | 名称 | 描述 | 381| -------- | -------- | 382| ifeature | feature对象。 | 383| mode | 功率模式,包括睡眠模式(待机状态运行)、一般模式(正常额定功率运行)、穿墙模式(最大功率运行,提高信号强度和覆盖面积)。 | 384 385**返回:** 386 387如果操作成功,则返回0。 388 389如果操作失败,则返回负值。 390 391 392### GetStaInfo() 393 394 395``` 396IWlanInterface::GetStaInfo ([in] String ifName, [out] struct WifiStationInfo info, [in] unsigned char[] mac ) 397``` 398 399**描述:** 400 401获取指定网卡的STA的信息。 402 403**参数:** 404 405 | 名称 | 描述 | 406| -------- | -------- | 407| ifName | 网卡名称。 | 408| info | 获取的STA的信息,详情请参考[WifiStationInfo](_wifi_station_info.md)。 | 409| mac | STA的MAC地址。 | 410 411**返回:** 412 413如果操作成功,则返回0。 414 415如果操作失败,则返回负值。 416 417 418### GetSupportCombo() 419 420 421``` 422IWlanInterface::GetSupportCombo ([out] unsigned long combo) 423``` 424 425**描述:** 426 427获取多网卡共存情况。 428 429**参数:** 430 431 | 名称 | 描述 | 432| -------- | -------- | 433| combo | 基于芯片的能力保存当前所有支持的多网卡共存情况(比如支持AP、STA、P2P等不同组合的共存)。 | 434 435**返回:** 436 437如果操作成功,则返回0。 438 439如果操作失败,则返回负值。 440 441 442### GetSupportFeature() 443 444 445``` 446IWlanInterface::GetSupportFeature ([out] unsigned char[] supType) 447``` 448 449**描述:** 450 451获取该设备支持的WLAN特性(不考虑当前的使用状态)。 452 453**参数:** 454 455 | 名称 | 描述 | 456| -------- | -------- | 457| supType | 保存当前设备支持的特性。 | 458 459**返回:** 460 461如果操作成功,则返回0。 462 463如果操作失败,则返回负值。 464 465 466### RegisterEventCallback() 467 468 469``` 470IWlanInterface::RegisterEventCallback ([in] IWlanCallback cbFunc, [in] String ifName ) 471``` 472 473**描述:** 474 475注册IWiFi的回调函数,监听异步事件。 476 477**参数:** 478 479 | 名称 | 描述 | 480| -------- | -------- | 481| cbFunc | 注册的回调函数。 | 482| ifName | 网卡名称。 | 483 484**返回:** 485 486如果操作成功,则返回0。 487 488如果操作失败,则返回负值。 489 490 491### ResetDriver() 492 493 494``` 495IWlanInterface::ResetDriver ([in] unsigned char chipId, [in] String ifName ) 496``` 497 498**描述:** 499 500重启指定芯片ID的WLAN驱动程序。 501 502**参数:** 503 504 | 名称 | 描述 | 505| -------- | -------- | 506| chipId | 需要进行重启驱动的芯片ID。 | 507| ifName | 网卡名称。 | 508 509**返回:** 510 511如果操作成功,则返回0。 512 513如果操作失败,则返回负值。 514 515 516### SetCountryCode() 517 518 519``` 520IWlanInterface::SetCountryCode ([in] struct HdfFeatureInfo ifeature, [in] String code, [in] unsigned int len ) 521``` 522 523**描述:** 524 525设置国家码(表示AP射频所在的国家,规定了AP射频特性,包括AP的发送功率、支持的信道等。其目的是为了使AP的射频特性符合不同国家或区域的法律法规要求)。 526 527**参数:** 528 529 | 名称 | 描述 | 530| -------- | -------- | 531| ifeature | feature对象。 | 532| code | 设置的国家码。 | 533| len | 国家码长度。 | 534 535**返回:** 536 537如果操作成功,则返回0。 538 539如果操作失败,则返回负值。 540 541 542### SetMacAddress() 543 544 545``` 546IWlanInterface::SetMacAddress ([in] struct HdfFeatureInfo ifeature, [in] unsigned char[] mac ) 547``` 548 549**描述:** 550 551根据传入参数设置对应网卡的MAC地址。 552 553**参数:** 554 555 | 名称 | 描述 | 556| -------- | -------- | 557| ifeature | feature对象。 | 558| mac | 设置的MAC地址。 | 559 560**返回:** 561 562如果操作成功,则返回0。 563 564如果操作失败,则返回负值。 565 566 567### SetPowerMode() 568 569 570``` 571IWlanInterface::SetPowerMode ([in] struct HdfFeatureInfo ifeature, [in] unsigned char mode ) 572``` 573 574**描述:** 575 576设置功率模式。 577 578**参数:** 579 580 | 名称 | 描述 | 581| -------- | -------- | 582| ifeature | feature对象。 | 583| mode | 功率模式,包括睡眠模式(待机状态运行)、一般模式(正常额定功率运行)、穿墙模式(最大功率运行,提高信号强度和覆盖面积)。 | 584 585**返回:** 586 587如果操作成功,则返回0。 588 589如果操作失败,则返回负值。 590 591 592### SetProjectionScreenParam() 593 594 595``` 596IWlanInterface::SetProjectionScreenParam ([in] String ifName, [in] struct ProjectionScreenCmdParam param ) 597``` 598 599**描述:** 600 601设置投屏参数。 602 603**参数:** 604 605 | 名称 | 描述 | 606| -------- | -------- | 607| ifName | 网卡名称。 | 608| param | 投屏参数。 | 609 610**返回:** 611 612如果操作成功,则返回0。 613 614如果操作失败,则返回负值。 615 616 617### SetScanningMacAddress() 618 619 620``` 621IWlanInterface::SetScanningMacAddress ([in] struct HdfFeatureInfo ifeature, [in] unsigned char[] scanMac ) 622``` 623 624**描述:** 625 626设置扫描单个MAC地址。 627 628**参数:** 629 630 | 名称 | 描述 | 631| -------- | -------- | 632| ifeature | feature对象。 | 633| scanMac | 设置STA扫描的MAC地址。 | 634 635**返回:** 636 637如果操作成功,则返回0。 638 639如果操作失败,则返回负值。 640 641 642### SetTxPower() 643 644 645``` 646IWlanInterface::SetTxPower ([in] struct HdfFeatureInfo ifeature, [in] int power ) 647``` 648 649**描述:** 650 651设置发射功率。 652 653**参数:** 654 655 | 名称 | 描述 | 656| -------- | -------- | 657| ifeature | feature对象。 | 658| power | 设置的发射功率。 | 659 660**返回:** 661 662如果操作成功,则返回0。 663 664如果操作失败,则返回负值。 665 666 667### Start() 668 669 670``` 671IWlanInterface::Start () 672``` 673 674**描述:** 675 676创建HAL和驱动之间的通道及获取驱动网卡信息,该函数调用在创建IWiFi实体后进行。 677 678**返回:** 679 680如果操作成功,则返回0。 681 682如果操作失败,则返回负值。 683 684 685### StartChannelMeas() 686 687 688``` 689IWlanInterface::StartChannelMeas ([in] String ifName, [in] struct MeasChannelParam measChannelParam ) 690``` 691 692**描述:** 693 694启动信道测量。 695 696**参数:** 697 698 | 名称 | 描述 | 699| -------- | -------- | 700| ifName | 网卡名称。 | 701| measChannelParam | 信道测量参数(信道号、测量时间)。 | 702 703**返回:** 704 705如果操作成功,则返回0。 706 707如果操作失败,则返回负值。 708 709 710### StartScan() 711 712 713``` 714IWlanInterface::StartScan ([in] struct HdfFeatureInfo ifeature, [in] struct HdfWifiScan scan ) 715``` 716 717**描述:** 718 719启动扫描。 720 721**参数:** 722 723 | 名称 | 描述 | 724| -------- | -------- | 725| ifeature | feature对象。 | 726| scan | 扫描参数。 | 727 728**返回:** 729 730如果操作成功,则返回0。 731 732如果操作失败,则返回负值。 733 734 735### Stop() 736 737 738``` 739IWlanInterface::Stop () 740``` 741 742**描述:** 743 744销毁HAL和驱动之间的通道,该函数调用在销毁IWiFi实体前进行。 745 746**返回:** 747 748如果操作成功,则返回0。 749 750如果操作失败,则返回负值。 751 752 753### UnregisterEventCallback() 754 755 756``` 757IWlanInterface::UnregisterEventCallback ([in] IWlanCallback cbFunc, [in] String ifName ) 758``` 759 760**描述:** 761 762去注册IWiFi的回调函数。 763 764**参数:** 765 766 | 名称 | 描述 | 767| -------- | -------- | 768| cbFunc | 去注册的回调函数。 | 769| ifName | 网卡名称。 | 770 771**返回:** 772 773如果操作成功,则返回0。 774 775如果操作失败,则返回负值。 776 777 778### WifiSendCmdIoctl() 779 780 781``` 782IWlanInterface::WifiSendCmdIoctl ([in] String ifName, [in] int cmdId, [in] byte[] paramBuf ) 783``` 784 785**描述:** 786 787向驱动发送IO控制命令。 788 789**参数:** 790 791 | 名称 | 描述 | 792| -------- | -------- | 793| ifName | 网卡名称。 | 794| cmdId | 命令ID。 | 795| paramBuf | 命令内容。 | 796 797**返回:** 798 799如果操作成功,则返回0。 800 801如果操作失败,则返回负值。 802