tx-nx设置wifi和接口
前言
针对嵌入式开发,有时候通过QT或PAD跨网络对设备设置WIFI,在此记录下,方便后续的查阅。
基础知识点
1.创建和删除一个wifi连接
创建WIFI 连接
nmcli device wifi connect "SSID" password "passwd"
每次创建在/etc/NetworkManager/system-connections/目录下TR106-4文件多个,分别为"TR106" “TR106-4 1” TR106-4 2 …为什么有多个,笔者可能觉得是因为存在相同的SSID,不同的PASSWD的原因吧!
删除wifi连接
p.s:不允许手动rm删除,删除依然会保留到nmcli con show中
nmcli con del "SSID"
2. 启动连接和关闭连接
启动
nmcli connection up "TR106"或 nmcli device con wlan0
nmcli device con wlan0
关闭wifi连接
nmcli connection down "TR106"或nmcli device dis wlan0
- 创建热点 暂不描述,后续如增加再做记录。
代码和调试
1. 代码展示
#ifndef WIFI_MANAGE_H__
#define WIFI_MANAGE_H__
#include <vector>
#include <string>
#ifndef NMCCLI_CON_SHOW_ACTIVE
#define NMCCLI_CON_SHOW_ACTIVE "nmcli con show -active |grep wifi |grep wlan"
#endif
#define OUT //param out
#define IN //param in
#define MAX_STRING (1024)
#define MIN_STRING (128)
namespace NMV
{
};
class CWifiManage
{
public:
static CWifiManage *inst()
{
static CWifiManage wm;
return &wm;
}
/**获取设备WIFI扫描的列表*/
int getWifiSSIDScanf();
const std::vector<std::string> &getSsidList()const {return m_ssid_list;}
/**获取当前wlanx已连接的WIFI ssid和passwd,当前只有wlan0,如果有多个wlan,需要做修改*/
int getSystemWlanxInfo(std::string &rhs_ssid, std::string &rhs_passwd);
/**获取当前的SSID和PASSWD*/
int getWifiInfo(std::string &rhs_ssid, std::string &rhs_passwd)const {rhs_ssid = m_WifiSsid; rhs_passwd = m_WifiPasswd;}
/**设置一个wifi信息到系统,切换WIFI的操作*/
int setWifiInfo2SystemNetwork(const std::string &rhs_ssid, const std::string &rhs_passwd,
OUT char *sys_response);
/**外部接口,设置WIFI*/
int setWifiInfo(const std::string &rhs_ssid, const s

文章介绍了在嵌入式开发中如何使用nmcli命令来创建、删除、启动和关闭WiFi连接,包括通过QT或PAD进行远程设置。同时,展示了相关C++代码示例,用于获取WiFi扫描列表、连接信息,并设置了设置WiFi连接的函数。在调试部分提到了可能出现的问题,如SSID不存在或密码错误。
最低0.47元/天 解锁文章
1307

被折叠的 条评论
为什么被折叠?



