【MiCOKit试用体验】+ 如何扫描附近WiFi热点 - 问答 - 电子技术论坛 - 最好最受欢迎电子论坛!

【MiCOKit试用体验】+ 如何扫描附近WiFi热点

GalaIO ( 楼主 ) 2015-11-8 20:03:46  只看该作者 倒序浏览
    在上一节中,我们学会了如何给MicoKit的Cli的工具中添加命令,对于我们来说,这是为了我们扩展源程序,来开发更灵活的功能。在这一节我们将会添加一个扫描附近WiFi热点的命令,来提供给开发者调试。
' ~2 F! h( @7 ~4 \   在标准的SDK中的Demo中有给出,SDK_MiCO_v2.3.0DemosCOM.MXCHIP.BASICwifiscan相对目录,主要的原理就是想mico中注册 一个回调函数,当wifi核扫描完热点信息后,会通过回调函数来传递数据给用户层,注册函数原型如下:. u9 ^6 I$ A2 \" y

* v" w9 K/ S8 C
  1. ! |& A5 Y' x$ i* d  f2 n) j
/**
  * @brief  Register a user function to a MiCO notification.
  * @param  notify_type: The type of MiCO notification.
  * @param  functionAddress: The address of user function.
  * @param  arg: The address of argument, which will be called by registered user function.
  * @retval kNoErr is returned on success, otherwise, kXXXErr is returned.
  */
OSStatus mico_system_notify_register( mico_notify_types_t notify_type, void* functionAddress, void* arg );
复制代码

6 d5 W4 C  t1 T) Z3 z5 Y! T8 ^  ]( \. s7 e
  c/ ]: i) B7 Q/ p* S! E
   回调函数定义如下:! g$ x4 S6 Y/ t9 H+ X( o6 F. m7 W( }

9 c  c3 R) q) n; h  d

  1. # J) j- a! u% G$ D1 z4 d
static void micoNotify_ApListCallback(ScanResult *pApList)
{
  int i=0;
  wifi_scan_log("got %d AP", pApList->ApNum);
  for(i=0; iApNum; i++)
  {
    wifi_scan_log("ap%d: name = %s  | strenth=%d",  
                  i,pApList->ApList[i].ssid, pApList->ApList[i].ApPower);
) Q6 B4 @+ [( T9 z! @
  •   }
    }
    复制代码" `: g  H! F$ t

    7 ]9 X& h! d  |$ U! d+ O- f8 \& e0 n. G8 h) I

    2 d  H1 l% z+ q" t2 n  ]   当注册了回调函数后,现在需要使能系统的扫描功能,函数原型如下:. |4 r0 [2 J! n9 p# D$ Q, ~1 ~& Y

    ; P; I# B: I5 K+ N
    1. - A+ Q* x  C2 f
    /** @brief  Start a wlan scanning in 2.4GHz in MICO backfround.
    *  
    *  [url=home.php?mod=space&uid=512752]@detail[/url] Once the scan is completed, MICO sends a notify:
    *          mico_notify_WIFI_SCAN_COMPLETED, with callback function:
    *          void (*function)(ScanResult *pApList, mico_Context_t * const inContext)
    *          Register callback function using [url=home.php?mod=space&uid=1352397]@ref[/url] mico_add_notification() before scan.
    */
    void micoWlanStartScan(void);
    复制代码
    & d# V8 _6 F( _1 y7 \) S2 H8 [6 z" t6 m6 j, q- Q

    2 q  E1 r" \2 k) n4 w9 H   现在只需要等待,回调函数返回结果就好了,在这里我们直接在回调函数中打印输出结果。对于有些应用为了同步数据,所以需要设置信号量来等待回调函数返回结果,由于我们在这里并不需要同步,因为我们都是手动操作的嘛~~~结果如下:
    " ^0 w1 P  {# p! `9 g 1 t  o3 u4 g6 V/ k/ f

    5 `8 e$ n3 h& O8 V5 p- |0 c
    / e$ w" y* M; u

    1个回复

    micolover 发表于 2015-11-9 11:52:22
    感谢楼主的分享!
    回复 1

    举报 使用道具

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则


    关闭

    站长推荐上一条 /6 下一条

    小黑屋|手机版|Archiver|电子发烧友 ( 湘ICP备2023018690号 )

    GMT+8, 2024-4-19 22:30 , Processed in 0.455262 second(s), Total 46, Slave 34 queries .

    Powered by 电子发烧友网

    © 2015 bbs.elecfans.com

    微信扫描
    快速回复 返回顶部 返回列表