RT-Thread提供的网络世界入口 -net组件
作为一款在RTOS领域对网络支持很丰富的RT-Thread,对设备联网功能的支持的工具就是net组件。
位于/rt-thread/components/net路劲下,作为一款基础组件,env与Studio的工程配置项界面的配置项都依赖该目录下的Kconfig。
我们对网络功能的选择,或者其配置都属于该Kconfig的管理范畴。

从图片中的信息可以了解到,AT,Lwip,netdev,sal这些我们相对熟悉的功能也位于该目录中。
这四个基础组件,可以驱动的网络设备的种类多到各个方面。
从有线网络的各种 ETH 的方式,带 PHY 的 enc28j60,纯接口的 RJ45,还有自带网络协议栈的 W5500都可以直接经过配置,通过我们的 net 组件实现设备联网的需求;除了有线网络的接入方式,无线网络的接入方式则更多,2G模块,3G模块,4G模块,Cat-1模块,Cat-4模块,NB-IOT模块,乃至 5G 模块这些依赖基站运营商的入网方式,例如 SIM800,EC20,AIR720,L610,N58,M5311 等,这些不同厂家,不同工作频率的模组均可以通过 NET 组件入网;WIFI 这种无需运营商直接提供的网络的入网方式,例如 ESP8266,W60x,rw007 等。
通过上面的简单介绍,大家可以基本了解Net组件的作用,即为使用RT-Thread的设备提供上网能力。
上面的联网设备,品类繁多,方式各异,但其实追踪到依赖的基础net能力其实也没有多复杂。实际上大部分的功能依赖的基础能力,只有两组而已,即AT,Lwip;而用户,也就是开发者层面,大部分就只用到SAL这一个概念。

通过SAL接口大家可以实现MQTT,NTP,TFTP,TCP Client,TCP Server,webclient,UDP Client,UDP Server,webnet 等这些大家经常会使用的工具。像浏览器一样访问网站,webclient;模拟一个网站,webnet;连接各种云平台,Mqtt;获取准确授时,NTP;通过网络传输文件,TFTP;诸如此类功能,SAL提供了轻松访问网络的一把钥匙。可以理解这把钥匙是向上的。
总概
对于一个给定的模组,它的联网方式有时并不是单一的;以常见的Cat-4(4G)模块为例,一方面它可以使用AT命令这种经典的方式来实现网络连接;另一方面又可以通过PPP拨号,使用lwip的方式实现网络连接。
或者在以 W60x 为例,一方面可以使用 AT 的方式来实现联网功能;另一方面又可以使用裸 IP 包的方式来实现网络连接。
在选取上网模块时,应当考虑片上资源的情况,以及网络质量的问题,选择比较适合的联网方式。
AT

AT命令一开始并没有那么丰富,一开始用作拨号的功能,也就是电话业务方面的内容。
后来随着时间发展,AT命令的范围也一步步进行了扩展,而逐渐支持了网络的一些功能,例如TCP,UDP的功能;而到现在,有些模块甚至直接使用AT命令扩展的方式,实现了诸如MQTT,HTTP,HTTPS之类的功能。
这些使用扩展AT命令方式实现的上层应用堆模块依赖度高。在RT-Thread的IOT Package的栏目中,可以留意到这样的软件包,例如:bc28_mqtt。
RT-Thread 的AT socket功能,则是更接近底层,实现TCP UDP这样的接口,通过SAL来实现MQTT这种上层应用。
AT组件设计目的就是使设备能发送和解析AT命令。
- 对于AT Client来说,是由MCU向Modem发送AT命令,由Modem响应命令,并给出回复。这种方式是我们常用的,通过支持AT的模组上网的常用方式。
- 对于AT Server来说,是由MCU作为类似Modem的功能,由其它MCU向这个MCU发送AT命令,由这个MCU响应AT命令并做出回复。
Lwip
大家基本都是看过这个TCP/IP模型的,在嵌入式的网络协议栈入口中,Lwip就是很重要的一个入口;Lwip是开源的一个协议栈,得到验证和肯定的嵌入式TCP/IP网络协议栈,Lwip的全称a lightweight TCP/IP stack,一个轻量级的TCP/IP协议栈。
所以可以知道:lwip 并不是嵌入式上唯一的 TCP/IP 协议栈,但 lwip 是经过验证的,能胜任工作的 TCP/IP 协议栈。在 RT-Thread 中,提供了三个 lwip 的版本供用户使用: lwip1.4.1,lwip2.0.2,lwip2.1.2 ;通常大家在使用有线连接的方式使用网络时,一部分是使用的 lwip 协议栈,而另一部分则是使用了 w5500 这种方式来实现。
相关文章:
RT-Thread提供的网络世界入口 -net组件
作为一款在RTOS领域对网络支持很丰富的RT-Thread,对设备联网功能的支持的工具就是net组件。 位于/rt-thread/components/net路劲下,作为一款基础组件,env与Studio的工程配置项界面的配置项都依赖该目录下的Kconfig。 我们对网络功能的选择&am…...
分享一些有趣的MATLAB提示音(代码可直接复制)
先做一个声明:文章是由我的个人公众号中的推送直接复制粘贴而来,因此对智能优化算法感兴趣的朋友,可关注我的个人公众号:启发式算法讨论。我会不定期在公众号里分享不同的智能优化算法,经典的,或者是近几年…...
软件测试|selenium执行js脚本
JavaScript是运行在客户端(浏览器)和服务器端的脚本语言,允许将静态网页转换为交互式网页。可以通过 Python Selenium WebDriver 执行 JavaScript 语句,在Web页面中进行js交互。那么js能做的事,Selenium应该大部分也能…...
【源码复现】图神经网络之PPNP/APPNH
目录 1、论文简介2、论文核心介绍2.1、现有方法局限2.2、PageRank&Personalized PageRank2.3、PPNP&APPNP 3、源码复现3.1、模型总体框架3.2、PPNP3.3、APPNP3.4、MLP(两层) 1、论文简介 论文题目——《PREDICT THEN PROPAGATE: GRAPH NEURAL NETWORKS MEET PERSONALI…...
【算法与数据结构】131、LeetCode分割回文串
文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析:本题仍然使用回溯算法的一般结构。加入了一个判断是否是回文串的函数,利用起始和终止索引进…...
网络编程学习笔记
参考: 套接字通信部分 《TCP/IP 网络编程》以及《TCP/IP网络编程》学习笔记 socket 编程 1. 字节序 字节序,顾名思义字节的顺序,就是大于一个字节类型的数据在内存中的存放顺序,也就是说对于单字符来说是没有字节序问题的&…...
腾讯待办停运后怎么办呢?导出的ics文件怎么打开查看
待办类工具在日常工作中的应用是比较广泛的,很多人会选择使用待办软件记录备忘事项,其中一些提醒类的工具是比较广泛使用的。腾讯待办属于一款待办事项和日程管理工具,它通常是以微信小程序的形式,为大家提供时间管理规划…...
家长群如何发成绩?
老师们是否经常被家长们追问:“老师,我孩子的成绩出来了吗?”、“老师,我孩子考了多少分?”等等。要想解决这个问题,看完这篇文章你就可以让家长们能够自助查询孩子的成绩了。 一、什么是成绩查询系统&…...
数组区域检索的优化 --- 分块,线段树,树状数组
思考 首先让我们来思考一个问题,给定一个数组,和left与right的值,让你求这个数组中left到right之间元素的和,你会怎么计算?最简单的当然是遍历。如果有人问你这个问题的时候,他决对是会让你优化的ÿ…...
若依侧边栏添加计数标记效果
2023.11.13今天我学习了如何对若依的侧边栏添加技术标记的效果,如图: 我们需要用到两个页面: 先说子组件实现计数标记效果 1.item.vue <script> export default {name: MenuItem,functional: true,props: {icon: {type: String,defau…...
WebSocket技术解析:实现Web实时双向通信的利器
当今互联网的发展中,实时性成为了越来越重要的需求,特别是在Web应用程序中。传统的HTTP协议在处理实时性方面存在一些局限性,因此WebSocket技术的出现填补了这一空白。WebSocket是一种在单个TCP连接上进行全双工通信的协议,它允许…...
深圳联强优创手持PDA身份证阅读器 身份证核验手持机
身份证手持机外观比较小巧,方便携带,支持条码识别、人脸识别、NFC卡刷卡、内置二代证加密模块,可离线采集和识别二代身份证,进行身份识别。信息读取更便捷、安全高效。采用IP65高防护等级,1.5M防摔,可以适应…...
力扣labuladong——一刷day31
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、力扣226. 翻转二叉树二、力扣116. 填充每个节点的下一个右侧节点指针三、力扣114. 二叉树展开为链表 二叉树解题的思维模式分两类: 1、是否可以…...
里氏代换原则
package com.jmj.principles.dmeo2.after;/*** 四边形接口*/ public interface Quadrilateral {double getLength();double getWidth();}package com.jmj.principles.dmeo2.after;/*** 长方形类*/ public class Rectangle implements Quadrilateral{private double length;priv…...
Illumination Adaptive Transformer
Abstract. 现实世界中具有挑战性的照明条件(低光、曝光不足和曝光过度)不仅会产生令人不快的视觉外观,还会影响计算机视觉任务。现有的光自适应方法通常单独处理每种情况。更重要的是,它们中的大多数经常在 RAW 图像上运行或过度…...
【教3妹学编程-算法题】给小朋友们分糖果 II
3妹:1 8得8,2 816, 3 8妇女节… 2哥 : 3妹,在干嘛呢 3妹:双11不是过了嘛, 我看看我这个双十一买了多少钱, 省了多少钱。 2哥 : 我可是一分钱没买。 3妹:我买了不少东西, …...
应急响应练习2
目录 1. 请提交攻击者的ip与系统版本 2. 攻击者通过某个组件漏洞获得服务器权限,请提交该组件的名称 3. 请提交攻击者首次攻击成功的时间 4. 请提交攻击者上传的webshell文件绝对路径 5. 请提交攻击者使用的webshell管理工具 6. 攻击者进一步留下的免杀的webs…...
JS算法练习 11.13
leetcode 2625 扁平化嵌套数组 请你编写一个函数,它接收一个 多维数组 arr 和它的深度 n ,并返回该数组的 扁平化 后的结果。 多维数组 是一种包含整数或其他 多维数组 的递归数据结构。 数组 扁平化 是对数组的一种操作,定义是将原数组部…...
js升序排序
function sortByKey(array, key) {return array.sort(function(a, b) {var x Number(a[key]);var y Number(b[key]);return x < y ? -1 : x > y ? 1 : 0; //或者 return x-y});}...
2023亚太杯数学建模C题思路
文章目录 0 赛题思路1 竞赛信息2 竞赛时间3 建模常见问题类型3.1 分类问题3.2 优化问题3.3 预测问题3.4 评价问题 4 建模资料5 最后 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 竞赛信息 2023年第十三…...
装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...
STM32F4基本定时器使用和原理详解
STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...
蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
拉力测试cuda pytorch 把 4070显卡拉满
import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试,通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小,增大可提高计算复杂度duration: 测试持续时间(秒&…...
微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...
今日科技热点速览
🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
