美文网首页物联网loT从业者物联网相关技术研究
MT7688学习笔记(14)——C++编程配置WiFi的SSID

MT7688学习笔记(14)——C++编程配置WiFi的SSID

作者: Leung_ManWah | 来源:发表于2019-06-21 11:03 被阅读2次

一、无线配置语法

wireless.@wifi-iface[0]选项参数说明:

选项 说明 可选值及说明 必填
device 关联无线设备 radio0
network 关联网络设备类型 lan:表示桥接到LAN网上
wwan:表示启用无线中继
mode 无线工作模式 ap:访问点模式
sta:客户端模式
ssid 无线的名称,尽量用英文 字符串
hidden 隐藏无线名称 0:禁用
1:启用
wmm 无线多媒体优先支持 0:禁用
1:启用
encryption 无线加密方式,推荐使用psk-mixed模式 none:不加密
psk:WPA-PSK模式
psk2:WPA-PSK2模式
psk-mixed:WPA-PSK/WPA-PSK2混合
key 无线密钥,只有设置了无线加密才有效 字符串,长度为8~64个ASCII字符

二、修改编译前Wireless配置文件

2.1 在openwrt-hiwooya无线驱动中

MT7688学习笔记(2)——添加WiFi驱动
配置文件位置/work/openwrt/package/hiwooya-wifi/ralink-wifi-mt7688/files/lib/wifi/ralink.sh
输入/config wifi-iface找到

config wifi-iface
        option device   ra${i}
        option network  lan
        option mode     ap
        option key      12345678
        option ssid     TM_${i#0}$(cat /sys/class/net/eth0/address|awk -F ":" '{print $4""$5""$6 }'| tr a-z A-Z)
        option encryption psk-mixed

三、查看编译后Wireless配置文件

root@hi-wooya:/etc/config# vim network

config wifi-device 'ra0'
        option type 'ralink'
        option mode '9'
        option channel 'auto'
        option txpower '100'
        option ht '20'
        option country 'US'
        option disabled '0'

config wifi-iface
        option device 'ra0'
        option network 'lan'
        option mode 'ap'
        option key '12345678'
        option encryption 'psk-mixed'
        option ssid 'TM_E17629'
  • key 位于14行
  • encryption 位于15行
  • ssid 位于16行

四、C++程序

/**
 @brief 修改文件某行内容
 @param pFileName   -[in] 文件名
 @param lineNum     -[in] 行号 
 @param content     -[in] 修改的内容
 @return 无
*/
static void modifyContentInFile(char *pFileName, int lineNum, string content)
{
    if(!pFileName)
    {
        return ;
    }
    ifstream in;
    char line[1024] = {'\0'};
    in.open(pFileName);
    int i = 0;
    string tempStr;
    while(in.getline(line, sizeof(line)))
    {
        i++;
        if(lineNum != i)
        {
            tempStr += Char2Str(line);
        }
        else
        {
           tempStr += content;
        }
        tempStr += '\n';
    }
    in.close();
    ofstream out;
    out.open(pFileName);
    out.flush();
    out<<tempStr;
    out.close(); 
}

void wifi(void)
{
    string key = "\toption key 12345678";
    string encryption = "\toption encryption psk2";
    string ssid = "\toption ssid TNT";
    unsigned char keyLine = 14;                                                     // 在文件中第14行
    unsigned char encryptionLine = 15;                                                      // 在文件中第12行
    unsigned char ssidLine = 16;                                                        // 在文件中第16行
    char fileName[] = "/etc/config/wireless";

    modifyContentInFile(fileName, keyLine, key);
    modifyContentInFile(fileName, encryptionLine, encryption);
    modifyContentInFile(fileName, ssidLine, ssid);

    system("/etc/init.d/network restart");                              // 重启network服务进程,使配置生效
}

执行wifi函数,重启网络。


• 由 Leung 写于 2019 年 6 月 21 日

• 参考:OpenWrt智能路由器系统开发——跟hoowa学智能路由

相关文章

网友评论

    本文标题:MT7688学习笔记(14)——C++编程配置WiFi的SSID

    本文链接:https://www.haomeiwen.com/subject/iyieqctx.html