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年第十三…...
Vant4组件避坑指南:Card和Cell样式对齐的那些坑(含解决方案)
Vant4组件深度优化:Card与Cell的样式对齐实战解析 在移动端开发中,Vant4作为主流的Vue组件库,其Card和Cell组件的使用频率极高。但许多开发者在实际项目中都会遇到一个共同的痛点:这两个组件的文本对齐和布局控制问题。本文将深入…...
别再直接kubectl apply了!手把手教你定制化部署Kuboard v3管理面板
深度定制化部署Kuboard v3:从基础配置到企业级实践 在Kubernetes生态中,管理面板的选择往往决定了集群运维的效率和体验。Kuboard作为一款轻量级但功能全面的Kubernetes管理工具,其v3版本提供了比原生Dashboard更丰富的功能集。然而ÿ…...
ai辅助开发新体验:在快马平台上打造会思考的智能成片ppt生成网站
最近在做一个智能PPT生成网站的项目,发现结合AI辅助开发真的能带来不少惊喜。今天就来分享一下如何利用InsCode(快马)平台快速实现一个会思考的PPT生成工具。 项目背景与核心功能 传统PPT制作需要手动整理内容、设计版式,整个过程耗时费力。而智能PPT生成…...
C# 异步编程在 AI 应用中的最佳实践
一、引言 AI 应用开发中的异步需求 在当今的人工智能应用开发领域,异步编程已经成为不可或缺的核心技术。当我们与 AI 大模型进行交互时,网络请求的延迟、流式响应的处理、并发调用多个模型——这些场景无不对程序的响应能力和吞吐量提出了极高要求。传统的同步编程模式在面…...
3个核心功能突破JetBrains IDE试用期限制:2026完全指南
3个核心功能突破JetBrains IDE试用期限制:2026完全指南 【免费下载链接】ide-eval-resetter 项目地址: https://gitcode.com/gh_mirrors/id/ide-eval-resetter 问题引入:破解IDE时间枷锁的开发者困境 作为现代软件开发的基础设施,Je…...
如何用数字记忆守护留住QQ空间的青春足迹?一份让回忆永不褪色的解决方案
如何用数字记忆守护留住QQ空间的青春足迹?一份让回忆永不褪色的解决方案 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 当数字记忆面临消失危机 2023年的一个普通下午&…...
内网开发不求人:保姆级教程搞定Visual Studio 2022与QT 5.12.12离线环境搭建
内网开发不求人:保姆级教程搞定Visual Studio 2022与QT 5.12.12离线环境搭建 在企业内网开发环境中,由于安全规定或网络限制,开发者常常面临无法连接互联网的困境。这种情况下,如何一次性、完整地部署C与QT开发环境成为许多IT支持…...
AnimateDiff问题解决手册:常见生成问题与提示词调整方案
AnimateDiff问题解决手册:常见生成问题与提示词调整方案 1. 常见视频生成问题诊断 1.1 视频卡顿或跳帧问题 当生成的视频出现卡顿或帧间不连贯时,通常与以下因素有关: 显存不足:虽然优化版最低支持8G显存,但复杂场…...
3分钟解锁B站缓存:m4s-converter让视频播放不再受限
3分钟解锁B站缓存:m4s-converter让视频播放不再受限 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否遇到过这样的情况…...
Cursor AI破解免费VIP 2025终极完整教程:轻松解除试用限制,畅享专业功能
Cursor AI破解免费VIP 2025终极完整教程:轻松解除试用限制,畅享专业功能 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro …...
