zoukankan      html  css  js  c++  java
  • W800 AP,STA模式共存,并设置连接路由器

    本节我们使用w800建立一个 apsta 共存状态的功能,同时作为 sta 时去连接指定的路由器,而作为 ap 时也允许其它 sta 设备通过指定的密码来连接。
    使用tls_wifi_softap_create API函数创建AP热点:
    static int soft_ap_demo(char *apssid, char *appwd)
    {
    struct tls_softap_info_t apinfo;
    struct tls_ip_info_t ipinfo;
    u8 ret = 0;

    memset(&apinfo, 0, sizeof(apinfo));
    memset(&ipinfo, 0, sizeof(ipinfo));
    
    u8 *ssid = (u8 *)"w800_apsta_demo";
    u8 ssid_len = strlen("w800_apsta_demo");
    
    if (apssid)
    {
        ssid_len = strlen(apssid);
        MEMCPY(apinfo.ssid, apssid, ssid_len);
        apinfo.ssid[ssid_len] = '';
    }
    else
    {
        MEMCPY(apinfo.ssid, ssid, ssid_len);
        apinfo.ssid[ssid_len] = '';
    }
    
    apinfo.encrypt = strlen(appwd) ? IEEE80211_ENCRYT_CCMP_WPA2 : IEEE80211_ENCRYT_NONE;
    apinfo.channel = 11; /*channel*/
    apinfo.keyinfo.format = 1; /*format:0,hex, 1,ascii*/
    apinfo.keyinfo.index = 1;  /*wep index*/
    apinfo.keyinfo.key_len = strlen(appwd); /*key length*/
    MEMCPY(apinfo.keyinfo.key, appwd, strlen(appwd));
    
    /*ip information:ip address,mask, DNS name*/
    ipinfo.ip_addr[0] = 192;
    ipinfo.ip_addr[1] = 168;
    ipinfo.ip_addr[2] = 8;
    ipinfo.ip_addr[3] = 1;
    ipinfo.netmask[0] = 255;
    ipinfo.netmask[1] = 255;
    ipinfo.netmask[2] = 255;
    ipinfo.netmask[3] = 0;
    MEMCPY(ipinfo.dnsname, "local.wm", sizeof("local.wm"));
    
    ret = tls_wifi_softap_create((struct tls_softap_info_t * )&apinfo, (struct tls_ip_info_t * )&ipinfo);
    wm_printf("
    ap create %s ! 
    ", (ret == WM_SUCCESS) ? "Successfully" : "Error");
    
    return ret;
    

    }
    使用tls_wifi_connect API函数连接路由器:
    static int connect_wifi_demo(char *ssid, char *pwd)
    {
    int ret;

    ret = tls_wifi_connect((u8 *)ssid, strlen(ssid), (u8 *)pwd, strlen(pwd));
    if (WM_SUCCESS == ret)
        wm_printf("
    please wait connect net......
    ");
    else
        wm_printf("
    apsta connect net failed, please check configure......
    ");
    
    return ret;
    

    }
    在main函数中初始化wifi,并传入需要连接的路由器wifi,设置AP热点名称,密码。
    void UserMain(void)
    {
    printf(" user task ");
    init_wifi_config();
    connect_wifi_demo("@snail","ss559550");//连接路由器,名称@snail,密码ss559550
    soft_ap_demo("w800_ap","12345678");//创建AP热点,名称w800_ap,密码12345678
    }
    程序编译下载到开发板运行,连接路由器成功打印出IP地址:

  • 相关阅读:
    springboot 整合 memcached l
    文件处理工具类 l
    执行脚本工具类 l
    LRU l
    归并排序 l
    Redis 数据类型 l
    git 常用操作命令 唏嘘
    postmanPOST请求 status 415错误 唏嘘
    MySQL 启动和关闭MySQL服务 唏嘘
    OO和OP
  • 原文地址:https://www.cnblogs.com/doiting/p/13932932.html
Copyright © 2011-2022 走看看