【转】MT7688学习笔记(14)——C++编程配置WiFi的SSID和密码

一、无线配置语法

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

三、查看编译后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'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 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服务进程,使配置生效
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55

执行wifi函数,重启网络。


• 由 Leung 写于 2019 年 6 月 21 日

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值