北京高端网站建设深圳跨境电商公司排行榜
- 作者: 五速梦信息网
- 时间: 2026年03月21日 10:00
当前位置: 首页 > news >正文
北京高端网站建设,深圳跨境电商公司排行榜,网页在线代理翻墙,网络推广的手段tx-nx设置wifi和接口前言基础知识点1.创建和删除一个wifi连接2. 启动连接和关闭连接代码和调试1. 代码展示2. 调试写到最后前言 针对嵌入式开发#xff0c;有时候通过QT或PAD跨网络对设备设置WIFI#xff0c;在此记录下#xff0c;方便后续的查阅。 基础知识点 1.创建和删… tx-nx设置wifi和接口前言基础知识点1.创建和删除一个wifi连接2. 启动连接和关闭连接代码和调试1. 代码展示2. 调试写到最后前言 针对嵌入式开发有时候通过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 SSID2. 启动连接和关闭连接 启动 nmcli connection up TR106或 nmcli device con wlan0 nmcli device con wlan0关闭wifi连接 nmcli connection down TR106或nmcli device dis wlan0创建热点 暂不描述,后续如增加再做记录。 代码和调试
- 代码展示 #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::vectorstd::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 std::string rhs_passwd); private:CWifiManage();~CWifiManage();std::string m_WifiSsid, m_WifiPasswd;std::vectorstd::string m_ssid_list; };#endif#include unistd.h #include stdlib.h #include stdio.h#include string.h#include string #include iostream #include codecvt#include wifi_manage.hCWifiManage::CWifiManage():m_WifiSsid(), m_WifiPasswd() {m_ssid_list.clear(); }CWifiManage::~CWifiManage() {}int CWifiManage::getSystemWlanxInfo(OUT std::string rhs_ssid, OUT std::string rhs_passwd) {char pipeBuf[MAX_STRING] {0};char tssid[MIN_STRING] {0};FILE * pPipe popen(NMCCLI_CON_SHOW_ACTIVE, r);if(!pPipe){printf(PIPE ERROR\n);return -1;}size_t pipeSiz ftell(pPipe);fseek(pPipe, 0, SEEK_SET);fread(pipeBuf, 1, pipeSiz, pPipe);if(pPipe){pclose(pPipe); pPipe (FILE*)0;}if(!strlen(pipeBuf)){printf(无连接上的WIFI!\n);return -1;}sscanf(pipeBuf, %s, tssid);/根据SSID查看Passwd/char ssidFileConfigure[MIN_STRING] {0};snprintf(ssidFileConfigure, MIN_STRING-1, /etc/NetworkManager/system-connections/%s, tssid);FILE fp fopen(ssidFileConfigure, r);if(!fp){printf(打开%s失败!\n, ssidFileConfigure);return -1;}char line_buf[MIN_STRING] {0};char tpasswd[MIN_STRING] {0};while(!feof(fp)){memset(line_buf, 0, MIN_STRING);fgets(line_buf, MIN_STRING, fp);if(strstr(line_buf, psk)){size_t line_siz strlen(line_buf);if(line_buf[line_siz-1] \n) line_buf[line_siz-1] \0;memcpy(tpasswd, line_bufstrlen(psk), strlen(line_bufstrlen(psk)));printf(passwd:%s, siz:%lu!\n , tpasswd, strlen(tpasswd));}}if(fp){fclose(fp); fp (FILE)0;}if(strlen(tssid) strlen(tpasswd)){rhs_ssid tssid; rhs_passwd tpasswd;}return 0;}int CWifiManage::setWifiInfo2SystemNetwork(const std::string rhs_ssid, const std::string rhs_passwd,char *sys_response) {char cmd_string[MIN_STRING] {0};memset(cmd_string, 0, MIN_STRING);snprintf(cmd_string, MIN_STRING, nmcli device wifi connect %s password %s, rhs_ssid.c_str(), rhs_passwd.c_str());FILE pPipe popen(cmd_string, r); //阻塞if(!pPipe){printf(cmdString: %s, err:%s\n , cmd_string, strerror(errno));memcpy(sys_response, pipe null, strlen(pipe null));return -1;}fread(sys_response, 1, MAX_STRING-1, pPipe);pclose(pPipe); pPipe (FILE)0;if(!strstr(sys_response, successfully)) //如果设置失败{return -2;}printf(SSID:%s 设置成功!\n, rhs_ssid.c_str());/重置wifi为设置的ssid和信息更新 nmcli con show///1. 关闭之前的连接pPipe popen(nmcli device dis wlan0, r);if(pPipe){pclose(pPipe); pPipe (FILE)0;}//2 开启设置的连接memset(cmd_string, 0, MIN_STRING);snprintf(cmd_string, MIN_STRING, nmcli connection up %s, rhs_ssid.c_str());pPipe popen(cmd_string, r);if(pPipe){pclose(pPipe); pPipe (FILE)0;}#if 0 //配置暂先不做处理//3 删除(忘记)不需要的WIFI连接 cmd:nmcli con del SSID,仅保留设置的wifi有效pPipe popen(ls /etc/NetworkManager/system-connections/ |grep -v Wire, r);char ssid[MIN_STRING];if(pPipe){while(!feof(pPipe)){memset(ssid, 0, MIN_STRING);fgets(ssid, MIN_STRING-1, pPipe);if(ssid[strlen(ssid)-1] \n) ssid[strlen(ssid)-1] \0;if(rhs_ssid std::string(ssid)){continue;}comm_sys_cmd(nmcli con del %s, ssid);}} #endifreturn 0; }int CWifiManage::getWifiSSIDScanf() {//扫描WIFI ESSID//do somethingschar cmd_string[MIN_STRING] {0};char sline[MIN_STRING], ssid[MIN_STRING];memset(cmd_string, 0, MIN_STRING);snprintf(cmd_string, MIN_STRING, iw wlan0 scan |grep SSID); FILE pPipe (FILE)0;pPipe popen(cmd_string, r);if(!pPipe){printf(cmdString: %s, err:%s\n , cmd_string, strerror(errno));return -1;}while(!feof(pPipe)){memset(sline, 0, MIN_STRING);memset(ssid, 0 , MIN_STRING);fgets(sline, MIN_STRING, pPipe);int j 0;for(int i 0; i strlen(sline); i){if(sline[i] \t || sline[i] \n || sline[i] ){continue ;}ssid[j] sline[i];j;}//printf(ssid:%s, siz:%lu\n, ssid, strlen(ssid));if(0 strlen(ssid) - strlen(SSID:) || strlen(sline) 0 ){//printf(ssid为空\n);continue;}if(strstr(ssid, x00)){printf(含有x00\n);continue;}static std::wstring_convertstd::codecvt_utf8wchar_t strCnv;// std::wstring test strCnv.from_bytes(ssid);printf(%s\n, test.c_str());m_ssid_list.push_back(ssidstrlen(SSID:));}auto vit m_ssid_list.begin();for(; vit ! m_ssid_list.end();vit){ static int cnt 0;std::cout SSID_siz: (*vit).size() vit std::endl;;}if(pPipe){pclose(pPipe); pPipe (FILE)0;}return 0; }int CWifiManage::setWifiInfo(const std::string rhs_ssid, const std::string rhs_passwd) {char sys_resp[MAX_STRING] {0};if(setWifiInfo2SystemNetwork(rhs_ssid, rhs_passwd, sys_resp)){printf(设置wifi失败!);}std::cout 设置wifi系统提示: sys_resp std::endl;m_WifiSsid rhs_ssid;m_WifiPasswd rhs_passwd;return 0; }int main(int argc, char *argv[]) {int ret 0; #if 0std::string str_ssid , str_passwd ;ret CWifiManage::inst()-getSystemWlanxInfo(str_ssid, str_passwd);if(ret 0){printf(当前wifi已连接成功, ssid:%s, passwd:%s\n, str_ssid.c_str(), str_passwd.c_str());}if(CWifiManage::inst()-setWifiInfo(HONOR-Hello-Ouyang_2.4, woshisunouyangaaaa)){printf(设置wifi失败!\n);} #else CWifiManage::inst()-getWifiSSIDScanf(); #endif }2. 调试 扫描中踢出了空格换行和制表符 获取WIFI扫描 {Jsonrpc: 1.0,Method: GetWifiScan,Result: true,SsidList: [TR106-4,HONOR-Hello-Ouyang_2.4,HUAWEI-WANG,Maxvision-2.4G,HUAWEI-MV_SLAM_02,ymg,fanyiji-ceshi,Tenda_1D0130,cleanRobot,Xiaomi_DESKT,YUN,siweite7wifi,HUAWEI-MV_SLAM_00,HONOR-xunjian-Mast,HONOR-xunjian-Mast,jxkjc,Trans-4G-SanFanTest,TP-LINK_2.4G_D6D088,TR106-4,Maxvision-2.4G,ChinaNet-5pV3-5G,HUAWEI-MV_SLAM_00,HONOR-Hello-Ouyang_5G,HUAWEI-MV_SLAM_02,ROBOT_TEST,HONOR-0J14YA,xunjian] } 设置wifi过程中遇到的问题:
- SSID不存在返回如下错误 {Jsonrpc: 1.0,Method: SetWifiConnect,Params: null,ResponseMsg: ERROR:未扫描到SSID:TR106-41,Result: false } 之前使用PAD对设备设置用的是android的API扫描WIFI SSID可能设备和WIFI处的位置不同以及无线网卡的差异性导致PAD搜索的SSID可能设备网卡搜不到的情况。2.输入的密码错误 {Jsonrpc: 1.0,Method: SetWifiConnect,Params: null,ResponseMsg: ERROR:Error: Connection activation failed: (7) Secrets were required, but not provided.\n,Result: false }写到最后
- 每次设置一个新WIFI将之前的配置都删除掉让设备只连最近更新的WIFI后面考虑合理性以及手机android等 都采用保存配置的情况 该功能就删除了。
- 还有比较多的功能可以实现比如忘记WIFI名称等功能。忘记WIFI名称 pPipe popen(ls /etc/NetworkManager/system-connections/ |grep -v Wire, r);char ssid[128];if(pPipe){while(!feof(pPipe)){memset(ssid, 0, MIN_STRING);fgets(ssid, MIN_STRING-1, pPipe);if(ssid[strlen(ssid)-1] \n) ssid[strlen(ssid)-1] \0;if(rhs_ssid std::string(ssid)){continue;}std::string str_cmd nmcli con del ssid;system(str_cmd.c_str());}}
- 上一篇: 北京附近做网站的公司网站建设要实现的目标
- 下一篇: 北京高端网站建设图片大全石家庄房产网最新楼盘
相关文章
-
北京附近做网站的公司网站建设要实现的目标
北京附近做网站的公司网站建设要实现的目标
- 技术栈
- 2026年03月21日
-
北京附近做网站的公司产品设计优秀作品
北京附近做网站的公司产品设计优秀作品
- 技术栈
- 2026年03月21日
-
北京定制网站开发企业软文
北京定制网站开发企业软文
- 技术栈
- 2026年03月21日
-
北京高端网站建设图片大全石家庄房产网最新楼盘
北京高端网站建设图片大全石家庄房产网最新楼盘
- 技术栈
- 2026年03月21日
-
北京高端网站开发公司1元涨1000粉
北京高端网站开发公司1元涨1000粉
- 技术栈
- 2026年03月21日
-
北京公司网站建设报价如何做网站地图txt
北京公司网站建设报价如何做网站地图txt
- 技术栈
- 2026年03月21日






