/**
 *@file    sr_netdev_wifi.c
 *@brief   wifi基础功能抽象接口
 *@details 提供wifiscan等基本功能的具体实现
 *@copyright Copyright (c) 2024 lierda. All rights reserved.
 *@author  Lierda-RDC
 *@date    2024-04-01
 *@example ZhaoyangSDK\example\pal\hal\netdev_wifi_example.c
 */


#include "sr_netdev_wifi.h"




int SR_HalWifiScan(SR_NETDEV_T *dev, SR_WIFI_SCAN_CFG_T *cfg,SR_WIFI_SCAN_RES_T *result)
{

    if((SR_NULL == dev) || (SR_NULL == result)) return SR_INVALID;
    SR_ASSERT(IS_SCAN_CFG(cfg));
	
	SR_WIFI_OPS_T *ops = (SR_WIFI_OPS_T *)dev->wifiOps;

    if ((SR_NULL == ops) || (SR_NULL == ops->get_scan_info))
    {
        return SR_NOIMPT;
    }

    return ops->get_scan_info(dev,cfg, result);
}

int SR_HalWifiScanAsync(SR_NETDEV_T *dev, SR_WIFI_SCAN_CFG_T *cfg)
{

    if(SR_NULL == dev) return SR_INVALID;
    SR_ASSERT(IS_SCAN_CFG(cfg));
	
	SR_WIFI_OPS_T *ops = (SR_WIFI_OPS_T *)dev->wifiOps;

    if ((SR_NULL == ops) || (SR_NULL == ops->get_scan_info_async))
    {
        return SR_NOIMPT;
    }

    return ops->get_scan_info_async(dev,cfg);
}


int SR_HalWifiSetEvtCb(SR_NETDEV_T *dev,WifiEvtCb cb,void *args)
{
   
	if(SR_NULL == dev || SR_NULL==cb) return SR_INVALID;
	dev->wifiEvtCb = cb;
	dev->wifiEvtArgs = args;

	return SR_OK;
}


