最近做一个项目,电力RTU通信管理主板,CPU选用流行的AM335X。公司之前的RTU监视采用LCD,LCD有主要三个缺陷,1、功耗大;2、容易损坏;3、操作不是很方便。后来公司决定采用WEB方案来开发监视界面,通过WIFI发布,手机接入热点后访问,那么手机/PAD就当HMI来使用。WIFI模块相对LCD成本低,手机/PAD操作也方便。

但是遇到这样一个问题,电力设备现场调试完后,WIFI安全性就需要重视,当工作人员离场后,必须关闭WIFI,提高安全性。

后来查资料,通过linux的 down/up 命令可以实现wifi的开关功能,实现代码如下:

//============================================================================
//Function: ifconfig_ethx_down_API
//Description: 关闭本地指定网卡 - eg: ifconfig eth0 down
//Input:
//Output:
//Return:
//Others: None
//============================================================================
int8_t ifconfig_ethx_down(const u_int8_t *interface_name)
{
int sock_fd;
struct ifreq ifr;
int selector;

//传入参数合法性检测
if(interface_name == NULL)
{
return -1;
}

//禁止关闭回环
if(strncmp((char *)interface_name, (char *)"lo", 2) == 0)
{
return 0;
}

sock_fd = socket(AF_INET, SOCK_DGRAM, 0);
if(sock_fd < 0)
{
return -2;
}

sprintf(ifr.ifr_name, "%s", interface_name);

if(ioctl(sock_fd, SIOCGIFFLAGS, &ifr) < 0)
{
return -3;
}

selector = IFF_UP;
ifr.ifr_flags &= ~selector;
if(ioctl(sock_fd, SIOCSIFFLAGS, &ifr) < 0)
{
return -4;
}

close( sock_fd );

return 0;
}

//============================================================================
//Function: ifconfig_ethx_up_API
//Description: 打开本地指定网卡 - eg: ifconfig eth0 up
//Input:
//Output:
//Return:
//Others: None
//============================================================================
int8_t ifconfig_ethx_up(const u_int8_t *interface_name)
{
int sock_fd;
struct ifreq ifr;
int selector;

//传入参数合法性检测
if(interface_name == NULL)
{
return -1;
}

sock_fd = socket(AF_INET, SOCK_DGRAM, 0);
if(sock_fd < 0)
{
return -2;
}

sprintf(ifr.ifr_name, "%s", interface_name);
if(ioctl(sock_fd, SIOCGIFFLAGS, &ifr) < 0)
{
return -3;
}

selector = (IFF_UP | IFF_RUNNING);
ifr.ifr_flags |= selector;
if(ioctl(sock_fd, SIOCSIFFLAGS, &ifr) < 0)
{
return -4;
}

close( sock_fd );

return 0;
}

转载于:https://www.cnblogs.com/citroen/p/9149572.html

嵌入式linux系统,给WIFI模块增加一个开关相关推荐

  1. 构建一个适合stm32mp157系列开发板的嵌入式Linux系统

    在线课堂:https://www.100ask.net/index(课程观看) 论  坛:http://bbs.100ask.net/(学术答疑) 开 发 板:https://100ask.taoba ...

  2. 龙尚3G、4G模块嵌入式Linux系统使用说明【转】

    本文转载自;http://blog.csdn.net/zqixiao_09/article/details/52506812 驱动部分: 1.kernle/drivers/usb/serial/opt ...

  3. 龙尚3G、4G模块嵌入式Linux系统使用说明

    驱动部分: 1.kernle/drivers/usb/serial/option.c的结构体数组 static struct usb_device_id option_ids[]中增加加入产品的VID ...

  4. 基于Linux下嵌入式网关,基于嵌入式Linux系统的无线网络网关设计

    嵌入式网关.嵌入式web服务器(boa).嵌入式sqlite数据库.通用网关接口 1.概述 传统网关在功能上主要完成协议转换及部分系统管理功能,而采用嵌入式无线网关作为无线网络设备接入有线网络的接入部 ...

  5. YAFFS2文件系统在嵌入式LINUX系统中的应用

    YAFFS2文件系统在嵌入式LINUX系统中的应用 2011-03-31 19:59 181人阅读 评论(0) 收藏 举报 1.文件系统简述 随着32位CPU价格不断下跌,片上存储设备的容量相比越来越 ...

  6. 嵌入式Linux 系统的优化策略和方法

    嵌入式Linux 系统启动优化的那些事儿 嵌入式Linux 系统优化的那些儿事之系统启动时间的优化方法.. 嵌入式Linux 系统时间测量工具以及用法 Printk Times – 用于显示每个 pr ...

  7. 嵌入式Linux系统移植的四大步骤

    最近在学习系统移植的相关知识,在学习和调试过程中,发现了很多问题,也解决了很多问题,但总是对于我们的开发结果有一种莫名其妙的感觉,纠其原因,主要对于我们的开发环境没有一个深刻的认识,有时候几个简单的命 ...

  8. 嵌入式Linux系统移植的四大步骤(详细长文,慎入!)

    关注.星标公众号,直达精彩内容 来源:网路素材 最近在学习系统移植的相关知识,在学习和调试过程中,发现了很多问题,也解决了很多问题,但总是对于我们的开发结果有一种莫名其妙的感觉,纠其原因,主要对于我们 ...

  9. 外网访问arm嵌入式linux系统_嵌入式Linux系统移植的四大步骤

    最近在学习系统移植的相关知识,在学习和调试过程中,发现了很多问题,也解决了很多问题,但总是对于我们的开发结果有一种莫名其妙的感觉,纠其原因,主要对于我们的开发环境没有一个深刻的认识,有时候几个简单的命 ...

最新文章

  1. linux定义别名出错,Linux自定义别名alias重启失效问题
  2. spring @order控制对象的顺序
  3. python瀑布图怎么做_利用Python绘制数据的瀑布图的教程
  4. git 只commit不push 会有影响吗_规范化团队 git 提交信息
  5. php mysql 菜鸟_PHP 和 MySQL 基础教程(四)
  6. 小程序影视APP/追剧吧/脱离微擎/可用火车头采集小程序影视
  7. 运行linux在de1soc,在DE1-SOC上运行Linux
  8. Mac :谷歌浏览器 NET::ERR_CERT_INVALID 此证书已被撤消。网络错误和攻击行为通常是暂时的,因此,此网页稍后可能会恢复正常
  9. 一个随机数发生器(一)
  10. 如何设置 Notification 中PendingIntent 的 Intent
  11. 微信小程序:强大的多功能图片处理器
  12. 基于matlab深度学习的水果图像识别算法
  13. Windows驱动之电源管理
  14. 不要在意别人的目光,走自己的路
  15. html+字体有白色的重影+重影字体设置,LCD显示器显示模糊与字体有重影是什么原因...
  16. PMP-37项目采购管理
  17. Magisk使用记录
  18. java 控制台类_Java Console类(控制台)
  19. Origin ##外推法作图求斜率##两组数据绘图到同一个坐标系
  20. eap wifi 证书_WIFI用户EAP-TLS认证.pdf

热门文章

  1. Linux内核的同步机制---自旋锁
  2. C#面试题汇总(未完成)
  3. 【转】C# typeof()实例详解
  4. Linux从零到高手的进阶心得
  5. 网站在线访问人数统计并计算停留时间
  6. 使 IDEA 的 termina l可以使用 Linux 下的终端命令
  7. 同步、异步、阻塞、非阻塞、BIO、NIO、AIO
  8. Ubuntu下浏览Json文件
  9. 房地产萧条的两个标志
  10. 1.8 简单的文件输入输出