【RT摩拳擦掌】RT云端测试之百度天工物接入构建(设备型)
【RT摩拳擦掌】RT云端测试之百度天工物接入构建(设备型)
- 一, 文档介绍
- 二, 物接入IOT Hub物影子构建
- 2.1 创建设备型项目
- 2.2 创建物模型
- 2.3 创建物影子
- 三, MQTT fx客户端连接云端
- 3.1 MQTT fx配置
- 3.2 MQTT fx订阅
- 3.3 MQTT fx发布
- 3.4 发布数据测试结果
- 四, RT1060-EVK客户端连接云端
- 4.1 代码修改点
- 4.2 RT1060-EVK开发板测试结果
一, 文档介绍
随着科技的进一步发展,物联网广泛应用于各行各业,比如工业,农业,环境,交通,物流,安防等基础设施,物联网的使用使我们的生活变得更加丰富多彩并且智能化。而爆发式发展的物联网,首先离不开物联网平台云端,目前市场上的云服务也是种类繁多,比如Amazone的AWS,微软的azure, google clould iot, 国内的阿里云,百度物接入IOT hub, 移动的oneNet等。
百度云作为中国一款流行的云,在物联网这块也推出了针对物接入云的平台。百度天工物接入是一个全托管的云服务,可以建立设备与云端之间的双向通信,同时可以支撑海量设备的数据手机,监控,故障预测等物种物联网场景,百度云物接入支持MQTT协议,使用发布和订阅模式实现机器与云端的数据交互。
本文主要讲如何构建一个百度云设备型,使用物影子方式,实现云端服务器与设备端MQTT fx以及NXP 跨界处理器RT作为另外一个设备端点通过以太网的方式实现数据沟通。本文的云端拓扑结构如下:
二, 物接入IOT Hub物影子构建
首先进入百度智能云物联网物接入IoT Hub:
https://cloud.baidu.com/product/iot.html
点击立即使用
2.1 创建设备型项目
创建项目,选择设备型,输入项目名称。设备型可以使用物影子作为设备在云端的映像,可以直接查看数据的变化情况。创建好后会生成一个endpoint,以及对应的地址:
2.2 创建物模型
物模型主要是建立物影子中所需要的各种属性,比如温度,湿度,其他变量,并且给与值的类型,其实也是构成实际MQTT通信中json格式的表项。
点进刚刚新建的设备型项目,这里可以新建物模型或者物影子:
我们这里建立三个属性:LEDstatus,humid,temp
分别用以表示LED灯的状态,湿度,温度等,便于实现云端与RT开发板的通信与控制。创建之后,会得到如下图中情况:
2.3 创建物影子
同样是在设备型项目里面,可以选择物影子,构建自己的物影子平台,输入名称,并且选择物模型为刚刚新建的包含三个属性的物模型,新建之后可以得到物影子的详情:
同时还会生成该物影子相关的链接,名称以及密钥,我这里的测试平台情况如下:
TCP Address: tcp://rndrjc9.mqtt.iot.gz.baidubce.com:1883
SSL Address: ssl://rndrjc9.mqtt.iot.gz.baidubce.com:1884
WSS Address: wss://rndrjc9.mqtt.iot.gz.baidubce.com:443
name: rndrjc9/RT1060BTCDShadow
key: y92ewvgjz23nzhgn
端口1883,不支持传输数据加密
端口1884, 支持SSL/TLS加密传输
端口8884, 支持wesockets方式连接,同样包含SSL加密。
本篇文章作为第一篇简单的百度云物联网文章,先使用无传输数据加密的1883端口。
到目前为止,已经完成了百度云设备型云端物影子的构建,下面可以使用MQTTfx工具去连接测试
三, MQTT fx客户端连接云端
MQTT.fx 是一款基于EclipsePaho,使用Java 语言编写的MQTT 客户端工具,支持通过Topic 订阅和发布消息。可以到如下连接下载:
http://mqttfx.jensd.de/index.php/download
目前最新版本是1.7.1.
3.1 MQTT fx配置
下载安装之后,可以打开,首先需要配置下,点击edit connection:
Profile name:connect的名称,我们这里取名和云端影子一致,便于后面更多云测试的时候识别。
Profile type: MQTT broker
Broker address: 新建设备型项目的时候,产生的链接,这里使用1883无加密传输方式。
Broker port:1883无加密方式
Client ID: 这里同样配置为影子设备的名称RT1060BTCDShadow,注意,这么配置的原因是如果不一致,那么不能直接看到云端影子已经上线,如果配置和影子名字一致,则一旦MQTT FX连接成功,就能够看到云端影子也已经上线。
User credentials, 这里有User name和password,填入刚刚生成影子的时候界面给出的文件中的用户名和密钥。
到次,已经配置好相关选项,可以点击连接,并且刷新物影子网页:
连接前:
连接后:
3.2 MQTT fx订阅
涉及到订阅发布,那么发布订阅的主题是怎样的呢?
这里可以打开自己新建的物影子,选择交互,可以看到页面已经给出对应的主题情况:
所以,我们这里选择订阅的主题为:
$baidu/iot/shadow/RT1060BTCDShadow/update/accepted
发布的主题为:
$baidu/iot/shadow/RT1060BTCDShadow/update
点击subscribe,可以发现已经可以订阅。
3.3 MQTT fx发布
Publish这边需要输入发布的主题为:
$baidu/iot/shadow/RT1060BTCDShadow/update
当然,还要输入发布的内容,这里要注意下,物影子并不像数据型设备那样,可以实现数据的透传,这里发布的数据需要是满足物影子物模型的json格式,有人可能想,那么我到底应该发什么数据呢?
其实格式可以在物影子的原始数据里面,已经给出了格式:
我们这里可以不写desired,直接给出reported的json数据:
{"reported" : {"LEDstatus" : true,"humid" : 88,"temp" : 11}
}
其实这个json数据也可以通过网页版工具查看:
https://www.bejson.com/jsonviewernew/
输入发布数据,并且点击发布按钮:
3.4 发布数据测试结果
发布之前,清空并查看网页物模型数据:
MQTT fx发布数据,并查看订阅数据以及网页情况:
可以看到,发布的数据以及完全可以显示在物影子以及客户端订阅的地方。说明整个百度云的物影子已经连接成功。
四, RT1060-EVK客户端连接云端
本章主要使用NXP MIMXRT1060-EVK开发板的MQTT例程,通过以太网方式连接百度云物影子,并实现数据的订阅与发布,具体温度采集和led控制,后续会在百度云数据型测试中添加进去,这里给出物影子方式,RT开发板数据的发布与订阅打印,已经查看云端是否能够接受到RT1060板子发出的数据。
代码使用官方SDK_2.8.0_EVK-MIMXRT1060,下载链接为:
https://mcuxpresso.nxp.com/
SDK_2.8.0_EVK-MIMXRT1060\boards\evkmimxrt1060\lwip_examples\lwip_mqtt
4.1 代码修改点
要实现和百度云物影子的链接,需要注意如下几个点:
客户端ID:EXAMPLE_MQTT_CLIENT_ID
服务器主机:
MQTT服务器端口号
用户名:
密码:
订阅主题:
发布主题与数据:
本文使用的是MCUXPresso IDE,导入lwip_mqtt_freertos工程之后,主要修改lwip_mqtt_freertos.c
#define EXAMPLE_MQTT_CLIENT_ID "RT1060BTCDShadow_evk"//
#define EXAMPLE_MQTT_SERVER_HOST "rndrjc9.mqtt.iot.gz.baidubce.com"
#define EXAMPLE_MQTT_USER "rndrjc9/RT1060BTCDShadow"
#define EXAMPLE_MQTT_PASS "y92ewvgjz23nzhgn"
#define EXAMPLE_MQTT_SERVER_PORT 1883static const struct mqtt_connect_client_info_t mqtt_client_info = {.client_id = EXAMPLE_MQTT_CLIENT_ID,//(const char *)&client_id[0],.client_user = EXAMPLE_MQTT_USER,.client_pass = EXAMPLE_MQTT_PASS,.keep_alive = 100,.will_topic = NULL,.will_msg = NULL,.will_qos = 0,.will_retain = 0,
#if LWIP_ALTCP && LWIP_ALTCP_TLS.tls_config = NULL,
#endif
};static void mqtt_subscribe_topics(mqtt_client_t *client)
{static const char *topics[] = {"$baidu/iot/shadow/RT1060BTCDShadow/update/accepted", "$baidu/iot/shadow/RT1060BTCDShadow/update"};int qos[] = {0, 1};err_t err;int i=0;mqtt_set_inpub_callback(client, mqtt_incoming_publish_cb, mqtt_incoming_data_cb,LWIP_CONST_CAST(void *, &mqtt_client_info));// for (i = 0; i < ARRAY_SIZE(topics); i++){err = mqtt_subscribe(client, topics[i], qos[i], mqtt_topic_subscribed_cb, LWIP_CONST_CAST(void *, topics[i]));if (err == ERR_OK){PRINTF("Subscribing to the topic \"%s\" with QoS %d...\r\n", topics[i], qos[i]);}else{PRINTF("Failed to subscribe to the topic \"%s\" with QoS %d: %d.\r\n", topics[i], qos[i], err);}}
}static void publish_message(void *ctx)
{static const char *topic = "$baidu/iot/shadow/RT1060BTCDShadow/update";static const char *message = "{\"reported\" : { \"LEDstatus\" : true , \"humid\" : 66, \"temp\" : 32 } }";mqtt_publish(mqtt_client, topic, message, strlen(message), 1, 0, mqtt_message_published_cb, (void *)topic);
}
发布内容不能直接给成json格式,需要使用https://www.bejson.com/实现json压缩转义:
{“reported” : { “LEDstatus” : true, “humid” : 88, “temp” : 11 } }
下面就可以编译代码,并且烧录测试了。
4.2 RT1060-EVK开发板测试结果
测试结果如下,可以看到代码一共发布5次,而MQTT fx订阅的也收到了5次,并且网页版物影子数据已经刷成RT1060-EVK 开发板的数据,并且开发板串口也打印出自己订阅的数据,从结果可以发现,RT1060-evk开发板也成功实现了百度云端的物影子数据发布与订阅,下面就可以进一步开发自己嵌入式对接数据的控制情况了。
打印结果如下:
Initializing PHY...************************************************MQTT client example
************************************************
Getting IP address from DHCP...IPv4 Address : 192.168.43.200
IPv4 Subnet mask : 255.255.255.0
IPv4 Gateway : 192.168.43.1Resolving "rndrjc9.mqtt.iot.gz.baidubce.com"...
Connecting to MQTT broker at 183.240.93.18...
MQTT client "RT1060BTCDShadow_evk" connected.
Subscribing to the topic "$baidu/iot/shadow/RT1060BTCDShadow/update/accepted" with QoS 0...
Subscribed to the topic "$baidu/iot/shadow/RT1060BTCDShadow/update/accepted".
Published to the topic "$baidu/iot/shadow/RT1060BTCDShadow/update".
Received 250 bytes from the topic "$baidu/iot/shadow/RT1060BTCDShadow/update/accepted": "{"requestId":"30f56100-68ba-4466-9477-a365535d900c","reported":{"LEDstatus":true,"humid":66,"temp":32},"desired":{},"lastUpdatedTime":{"reported":{"LEDstatus":1595853248732,"humid":1595853248732,"temp":1595853248732},"desired":{}},"profileVersion":2}"
Published to the topic "$baidu/iot/shadow/RT1060BTCDShadow/update".
Received 250 bytes from the topic "$baidu/iot/shadow/RT1060BTCDShadow/update/accepted": "{"requestId":"86e3e1bd-ffad-4576-bc76-bab8f75cfa06","reported":{"LEDstatus":true,"humid":66,"temp":32},"desired":{},"lastUpdatedTime":{"reported":{"LEDstatus":1595853249735,"humid":1595853249735,"temp":1595853249735},"desired":{}},"profileVersion":3}"
Published to the topic "$baidu/iot/shadow/RT1060BTCDShadow/update".
Received 250 bytes from the topic "$baidu/iot/shadow/RT1060BTCDShadow/update/accepted": "{"requestId":"2b37aa8c-7cd4-4dcf-bcfa-a89529314329","reported":{"LEDstatus":true,"humid":66,"temp":32},"desired":{},"lastUpdatedTime":{"reported":{"LEDstatus":1595853250715,"humid":1595853250715,"temp":1595853250715},"desired":{}},"profileVersion":4}"
Published to the topic "$baidu/iot/shadow/RT1060BTCDShadow/update".
Received 250 bytes from the topic "$baidu/iot/shadow/RT1060BTCDShadow/update/accepted": "{"requestId":"ebf596d7-74e3-4799-8d61-35460a0fae18","reported":{"LEDstatus":true,"humid":66,"temp":32},"desired":{},"lastUpdatedTime":{"reported":{"LEDstatus":1595853251966,"humid":1595853251966,"temp":1595853251966},"desired":{}},"profileVersion":5}"
Published to the topic "$baidu/iot/shadow/RT1060BTCDShadow/update".
Received 250 bytes from the topic "$baidu/iot/shadow/RT1060BTCDShadow/update/accepted": "{"requestId":"39164f97-51c8-4ead-9b92-7b8ff5d0c0b6","reported":{"LEDstatus":true,"humid":66,"temp":32},"desired":{},"lastUpdatedTime":{"reported":{"LEDstatus":1595853252721,"humid":1595853252721,"temp":1595853252721},"desired":{}},"profileVersion":6}"
相关文章:
![](https://img-blog.csdnimg.cn/direct/e2c543954a454745b45a0d3b4485c5cc.jpeg)
【RT摩拳擦掌】RT云端测试之百度天工物接入构建(设备型)
【RT摩拳擦掌】RT云端测试之百度天工物接入构建(设备型) 一, 文档介绍二, 物接入IOT Hub物影子构建2.1 创建设备型项目2.2 创建物模型2.3 创建物影子 三, MQTT fx客户端连接云端3.1 MQTT fx配置3.2 MQTT fx订阅3.3 MQT…...
![](https://img-blog.csdnimg.cn/direct/2c0ed663a34b4a83af2d5347eebb9e95.png)
Mysql和ES使用汇总
一、mysql和ES在业务上的配合使用 一般使用时使用ES 中存储全文检索的关键字与获取的商品详情的id,通过ES查询获取查询商品的列表中展示的数据,通过展示id 操作去获取展示商品的所有信息。mysql根据id去查询数据库数据是很快的; 为什么ES一般…...
![](https://www.ngui.cc/images/no-images.jpg)
Android中使用performClick触发点击事件
Android中使用performClick触发点击事件 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将探讨在Android开发中如何使用 performClick() 方法来触发点击…...
![](https://www.ngui.cc/images/no-images.jpg)
重生之我要学后端01--后端语言选择和对应框架选择
编程语言 后端开发通常需要掌握至少一种编程语言。以下几种语言在后端开发中非常流行: Java:广泛用于企业级应用程序。Python:因其易学性和强大的库支持(如Django和Flask)而受欢迎。Node.js(JavaScript&a…...
![](https://img-blog.csdnimg.cn/direct/aa4888e56b754e54933fe2157345147b.png)
C语言 | Leetcode C语言题解之第206题反转链表
题目: 题解: struct ListNode* reverseList(struct ListNode* head) {if (head NULL || head->next NULL) {return head;}struct ListNode* newHead reverseList(head->next);head->next->next head;head->next NULL;return newHea…...
![](https://www.ngui.cc/images/no-images.jpg)
Flink Window DEMO 学习
该文档演示了fink windows的操作DEMO 环境准备: kafka本地运行:kafka部署自动生成名字代码:随机名自动生成随机IP代码:随机IPFlink 1.18 测试数据 自动向kafka推送数据 import cn.hutool.core.date.DateUtil; import com.alibab…...
![](https://img-blog.csdnimg.cn/direct/dc13caebec1849d08df697cb7e9c7bdb.png#pic_center)
library source does not match the bytecode for class SpringApplication
library source does not match the bytecode for class SpringApplication 问题描述:springboot源码点进去然后download source后提示标题内容。spring版本5.2.8.RELEASE,springboot版本2.7.18 解决方法:把spring版本改为与boot版本对应的6.…...
![](https://img-blog.csdnimg.cn/direct/0ec32c83239844ff9711341133333fd2.png)
Linux基础指令介绍与详解——原理学习
前言:本节内容标题虽然为指令,但是并不只是讲指令, 更多的是和指令相关的一些原理性的东西。 如果友友只想要查一查某个指令的用法, 很抱歉, 本节不是那种带有字典性质的文章。但是如果友友是想要来学习的,…...
![](https://www.ngui.cc/images/no-images.jpg)
【代码随想录算法训练Day52】LeetCode 647. 回文子串、LeetCode 516.最长回文子串
Day51 动态规划第十三天 LeetCode 647. 回文子串 dp数组的含义:i到j的子串是否是回文的,是的话dp[i][j]1 递推公式:if(s[i]s[j]) i j 一个元素 是回文的 |i-j|1 两个元素 是回文的 j-i>1 判断dp[i1][j-1] 初始化:全部初始化成…...
![](https://img-blog.csdnimg.cn/direct/b11a0037dd9d4f68aa5299df5e68624c.png)
VUE项目安全漏洞扫描和修复
npm audit 1、npm audit是npm 6 新增的一个命令,可以允许开发人员分析复杂的代码并查明特定的漏洞。 2、npm audit名称执行,需要包package.json和package-lock.json文件。它是通过分析 package-lock.json 文件,继而扫描我们的包分析是否包含漏洞的。 …...
![](https://img-blog.csdnimg.cn/direct/f38caa9b58844021a416557dae8a6206.png)
Nginx主配置文件---Nginx.conf
nginx主配置文件的模块介绍 全局块: 全局块是配置文件从开始到 events 块之间的部分,其中指令的作用域是 Nginx 服务器全局。主要指令包括: user:指定可以运行 Nginx 服务的用户和用户组,只能在全局块配置。例如&…...
![](https://www.ngui.cc/images/no-images.jpg)
IOS Swift 从入门到精通:写入 Firestore数据库
文章目录 FirestoreManager 类创建文档更新文档更新 Firestore 权限规则现在,我们想要在 Firestore 中添加或更新文档。如果您还没有,我建议您阅读有关设置 Firebase Auth 和从 Firestore 读取的部分。您必须在应用程序中启用 Firebase,并在项目中启用 Firestore 数据库,才…...
![](https://img-blog.csdnimg.cn/direct/8597ad53dd624ab7a9c19a673dd5652a.png)
维克日记 v0.4.2:开发者友好的数字化笔记工具
维克日记,专为技术开发者和笔记爱好者设计的数字化笔记工具,以其强大的功能和灵活的配置赢得了用户的好评。软件采用Markdown语法,提供实时预览功能,让您的笔记编辑更加高效和直观。维克日记的用户界面简洁而功能齐全,…...
![](https://img-blog.csdnimg.cn/direct/5d4ce96510e642fe99324dc5a42de922.png)
语音房平台交友,语聊APP系统开发线上语音交友平台成熟案例源码出售
随着移动互联网的快速发展,人们对于社交方式的需求也在不断变化,语音房平台交友语助APP作为一种新兴的社交方式,以其独特的语音交流模式和实时互动的特点,受到了越来越多用户的喜爱本文将详细介绍语音房平台交友语聊APP系统的开发…...
![](https://img-blog.csdnimg.cn/direct/99bfdde61aef4fa0818641e712c66772.png#pic_center)
VMamba: Visual State Space Model论文笔记
文章目录 VMamba: Visual State Space Model摘要引言相关工作Preliminaries方法网络结构2D-Selective-Scan for Vision Data(SS2D) VMamba: Visual State Space Model 论文地址: https://arxiv.org/abs/2401.10166 代码地址: https://github.com/MzeroMiko/VMamba 摘要 卷积神…...
![](https://img-blog.csdnimg.cn/img_convert/22d8fcf4ebc9cfc96a39ae12f94757e2.jpeg)
探索哈希函数:数据完整性的守护者
引言 银行在处理数以百万计的交易时,如何确保每一笔交易都没有出错?快递公司如何跟踪成千上万的包裹,确保每个包裹在运输过程中没有丢失或被替换?医院和诊所为庞大的患者提供有效的医疗保健服务,如何确保每个患者的医疗…...
![](https://www.ngui.cc/images/no-images.jpg)
解析Kotlin中的Unit【笔记摘要】
1. Kotlin的Unit 和 Java的void 的区别 // Java public void sayHello() {System.out.println("Hello!") }// Kotlin fun sayHello(): Unit {println("Hello!") }Unit 和 Java 的 void 真正的区别在于,void 是真的表示什么都不返回,…...
![](https://img-blog.csdnimg.cn/direct/2b66a075c0754d26b28095e1dade994a.png)
仿论坛项目--初识Spring Boot
1. 技术准备 技术架构 • Spring Boot • Spring、Spring MVC、MyBatis • Redis、Kafka、Elasticsearch • Spring Security、Spring Actuator 开发环境 • 构建工具:Apache Maven • 集成开发工具:IntelliJ IDEA • 数据库:MySQL、Redi…...
![](https://img-blog.csdnimg.cn/direct/df5c5de2f9034e6d91d1e623dc8bc4f2.png)
Spring boot 更改启动LOGO
在resources目录下创建banner.txt文件,然后编辑对应的图案即可 注释工具 Spring Boot Version: ${spring-boot.version},-.___,---.__ /|\ __,---,___,- \ -.____,- | -.____,- // -., | ~\ /~ | …...
![](https://www.ngui.cc/images/no-images.jpg)
python变成几个小程序
专家系统 需要建立‘capital_data.txt’ 空文件 from tkinter import Tk, simpledialog, messageboxdef read_from_file():with open(capital_data.txt) as file:for line in file:line line.rstrip(\n)country, city line.split(/)the_world[country] citydef write_to_fi…...
![](https://www.ngui.cc/images/no-images.jpg)
nginx配置stream代理
项目中遇到某些服务在内网,需要外网访问的情况,需要配置代理访问。可用nginx搭建代理服务。 TCP代理 通过nginx的stream模块可以直接代理TCP服务,步骤如下: 在/etc/nginx/下新建proxy文件夹,用于存放代理配置。此处…...
![](https://img-blog.csdnimg.cn/direct/4c0e76564d994feabef0b7a30ebcf2ad.png)
【瑞吉外卖 | day01】项目介绍+后台登录退出功能
文章目录 瑞吉外卖 — day011. 所需知识2. 软件开发整体介绍2.1 软件开发流程2.2 角色分工2.3 软件环境 3. 瑞吉外卖项目介绍3.1 项目介绍3.2 产品原型展示3.3 技术选型3.4 功能架构3.5 角色 4. 开发环境搭建4.1 数据库环境搭建4.2 Maven项目构建 5. 后台系统登录功能5.1 创建需…...
![](https://img-blog.csdnimg.cn/direct/a30cfb7e272b4789875e025567d48d06.png)
关于批量采集1688商品主图及链接的方式:软件采集/1688官方API接口数据采集
关于批量采集,我们通常用到的是软件 采集,或者通过1688官方API数据采集的形式:用户输入一组1688商品ID,一行一个,流程会自动逐个打开对应的1688商品详情页,采集主图的所有链接。 结果保存为表格的一行&…...
![](https://www.ngui.cc/images/no-images.jpg)
Shell 获取Hive表的location 信息
用shell 获取建表语句: hive -e "show create table ods_job.ods_job_tb"得到结果: CREATE TABLE ods_job.ods_job_tb(id bigint COMMENT id, auto int COMMENT job开启/关闭:0-关闭;1-开启, ....timeout_kill string…...
![](https://www.ngui.cc/images/no-images.jpg)
从零搭建教育管理系统:Java + Vue.js 教学-02
第三步:创建实体类和 Mapper 接口 现在我们已经设计好了数据库表,接下来使用 MyBatis-Plus 将这些表映射到 Java 对象,以便在代码中轻松地进行操作。 1. 创建实体类 在 src/main/java/<your_package>/entity 目录下 (如果没有该目录,请手动创建),创建与数据库表对应…...
![](https://img-blog.csdnimg.cn/direct/bb6cdae1aa8242babc10a080ed2d03a3.png#pic_center)
VSCode + GDB + J-Link 单片机程序调试实践
VSCode GDB J-Link 单片机程序调试实践 本文介绍如何创建VSCode的调试配置,如何控制调试过程,如何查看修改各种变量。 安装调试插件 在 VSCode 扩展窗口搜索安装 Cortex-Debug插件 创建调试配置 在 Run and Debug 窗口点击 create a launch.json …...
![](https://img-blog.csdnimg.cn/direct/e11bdd8ebc2047fe942df918130eb728.png#pic_center)
grpc学习golang版( 五、多proto文件示例 )
系列文章目录 第一章 grpc基本概念与安装 第二章 grpc入门示例 第三章 proto文件数据类型 第四章 多服务示例 第五章 多proto文件示例 第六章 服务器流式传输 第七章 客户端流式传输 第八章 双向流示例 文章目录 一、前言二、定义proto文件2.1 公共proto文件2.2 语音唤醒proto文…...
![](https://www.ngui.cc/images/no-images.jpg)
LeetCode 106 从中序与后序遍历序列构造二叉树
根据中序遍历和后序遍历的性质,还原二叉树,详细见注释 TreeNode* buildTree(vector<int>& inorder, vector<int>& postorder) {//空,直接返回nullif(inorder.size() 0) return nullptr;//一个,返回一个nod…...
![](https://www.ngui.cc/images/no-images.jpg)
Vue Router的深度解析
引言 在现代Web应用开发中,客户端路由已成为实现流畅用户体验的关键技术。与传统的服务器端路由不同,客户端路由通过JavaScript在浏览器中控制页面内容的更新,避免了页面的全量刷新。Vue Router作为Vue.js官方的路由解决方案,以其…...
![](https://img-blog.csdnimg.cn/direct/f7c9ebdc6335496e8d770dca247bdb0e.png)
YOLO-V2
一、V2版本细节升级 1、YOLO-V2: 更快!更强 1.1 做的改进内容 1. YOLO-V2-Batch Normalization V2版本舍弃Dropout,卷积后每一层全部加入Batch Normalization网络的每一层的输入都做了归一化,收敛相对更容易经过Batch Norma…...
![](https://img-blog.csdnimg.cn/img_convert/7f0e252e3b9d9c71ff5abd5cbecb6e13.jpeg)
pmp考试的通过标准是什么?
PMP考试的是否通过并不是依据类似其他考试的数值成绩,是通过考生收到邮件通知后去主动查询具体的页面得知的。查询页除了电子证书的下载方式,还有成绩报告单的选项以及成绩饼状图,具体如下: 页面中显示“PASS”表示考试通过。 显…...
![](https://img-blog.csdnimg.cn/direct/92bd729c19a54ed4878b5071a33f3780.png)
不懂PyQt5垂直布局?只需3分钟即可学会
PyQt5中实现垂直布局,主要使用QVBoxLayout类。该布局管理器将子控件垂直排列,并可以根据需要自动调整大小。使用QVBoxLayout可以方便地构建从上到下排列的界面元素。 import sys from PyQt5.QtWidgets import QApplication, QVBoxLayout, QWidget, QPus…...
![](https://img-blog.csdnimg.cn/direct/31d65b8211d44e1094ce705b858c0db8.png#pic_center)
从零开始实现大语言模型(二):文本数据处理
1. 前言 神经网络不能直接处理自然语言文本,文本数据处理的核心是做tokenization,将自然语言文本分割成一系列tokens。 本文介绍tokenization的基本原理,OpenAI的GPT系列大语言模型使用的tokenization方法——字节对编码(BPE, byte pair en…...
![](https://img-blog.csdnimg.cn/direct/b860da2b49c74559bae913d1bad27cdf.png)
生物分子生物学实验过程的自动化与智能监控系统设计
开题报告:生物分子生物学实验过程的自动化与智能监控系统设计 一、引言 随着生物科学技术的飞速发展,生物分子生物学实验在科研、医疗、农业等领域的应用日益广泛。然而,传统的生物分子生物学实验过程大多依赖于人工操作,存在操…...
![](https://www.ngui.cc/images/no-images.jpg)
linux的shell脚本编程详解
Shell 脚本是一种用于自动化任务的脚本语言,在 Linux 和其他类 Unix 操作系统中非常流行。它通常用于任务自动化、系统管理和批处理。编写 Shell 脚本并使其自动化编译过程(例如使用 gcc 编译 C/C 程序)是一种常见的任务。 以下是一个详细的…...
![](https://img-blog.csdnimg.cn/direct/658fdfd8fcf84de089a69b07c82ddef6.png#pic_center)
Redis 7.x 系列【11】数据类型之位图(Bitmap)
有道无术,术尚可求,有术无道,止于术。 本系列Redis 版本 7.2.5 源码地址:https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. 概述2. 基本命令2.1 SETBIT2.2 GETBIT2.3 BITCOUNT2.4 BITPOS2.5 BITFIELD2.6 BITF…...
![](https://www.ngui.cc/images/no-images.jpg)
如何评定旅游卡的品质与服务?
评定旅游卡的品质与服务,可以从以下几个关键方面进行综合考量: 公司实力与资质:选择有实力、资质齐全的公司发行的旅游卡。查看公司背景,确认其是否长期稳定运营,是否具有旅游行业的专业资质,如旅行社许可证…...
![](https://img-blog.csdnimg.cn/img_convert/5778657dc247ab3d1c5406661158b700.jpeg)
适合学生暑假适用的护眼大路灯有哪些?五款好用护眼灯分享!
在护眼领域,护眼大路灯已经成为越来越多人的选择。这种具备实力的工具可以有效地缓解用眼疲劳、改善光线环境,是学生党和办公族的必备神器。然而,市面上的护眼大路灯品牌众多,如何选择一款性价比高、品质优良的产品呢?…...
![](https://www.ngui.cc/images/no-images.jpg)
linux服务器 部署jenkins
在 Linux 服务器上部署 Jenkins 通常包括以下几个步骤: 更新系统软件包: sudo apt update sudo apt upgrade 安装 Java: Jenkins 需要 Java 运行时环境。推荐使用 OpenJDK 11。 sudo apt install openjdk-11-jdk 添加 Jenkins 软件源并导入…...
![](https://img-blog.csdnimg.cn/img_convert/92fb174df2b2789a321166d88012d912.jpeg)
电商控价:系统监测的必要性与优势
在品牌的发展进程中,会遭遇各种各样的渠道问题,控价乃是其中颇为关键的一环。品牌进行控价的目的无疑是为了妥善治理低价链接,低价链接的发现途径可以是人工,也可以是系统。力维网络在为上百个品牌提供服务的过程中察觉到…...
![](https://www.ngui.cc/images/no-images.jpg)
港股下半年能恢复上涨趋势吗?
今日港股两大指数涨跌不一,早盘盘初恒指冲高,涨幅一度扩大至1%。截至收盘,香港恒生指数涨0.57%。板块方面,电力、航空、石油、内险股、燃料电池、环保等板块涨幅居前;互动媒体与服务、生物科技、汽车零部件、新经济概念…...
![](https://www.ngui.cc/images/no-images.jpg)
软件测试项目实战:银行贷款业务测试介绍-2
1、利息计算 正常利息贷款本金*借款天数*贷款年利率/360 罚息逾期本金*逾期天数*逾期年利率/360 复利逾期利息*逾期天数*逾期年利率/360 2、贷款五级分类 正常贷款:正常及逾期60天以内 关注贷款:逾期60天及以上,不足90天 次级贷款࿱…...
![](https://img-blog.csdnimg.cn/direct/b726a21dc58c4501a4615be0eb0d41a1.gif#pic_center)
如何将Hive表的分区字段插入PG表对应的时间戳字段?
文章目录 1、背景描述2、场景分析 1、背景描述 数据仓库的建设通常是为业务和决策服务的。在数仓开发的应用层阶段,BI可以直接从主题层/业务层取数,而前端需要根据具体的作图需求通过后端查询数据库 作图的指标需要根据主题层/业务层做查询计算…...
![](https://www.ngui.cc/images/no-images.jpg)
Spring Boot与MyBatis的集成应用
Spring Boot与MyBatis的集成应用 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们来聊聊Spring Boot与MyBatis的集成应用。MyBatis是一款优秀的持久层框…...
![](https://img-blog.csdnimg.cn/direct/08e29ccb3e4645bd9608397fdbd4cc68.png)
在昇腾服务器上使用llama-factory对baichuan2-13b模型进行lora微调
什么是lora微调 LoRA 提出在预训练模型的参数矩阵上添加低秩分解矩阵来近似每层的参数更新,从而减少适配下游任务所需要训练的参数。 环境准备 这次使用到的微调框架是llama-factory。这个框架集成了对多种模型进行各种训练的代码,少量修改就可使用。 …...
![](https://www.ngui.cc/images/no-images.jpg)
Kafka 管理TCP连接
生产者管理TCP连接 Kafka生产者程序概览 Kafka的Java生产者API主要的对象就是KafkaProducer。通常我们开发一个生产者的步骤有4步: 第1步:构造生产者对象所需的参数对象。 第2步:利用第1步的参数对象,创建KafkaProducer对象实例…...
![](https://img-blog.csdnimg.cn/direct/09b76d2772fd4df7b2c8e302133dd539.png)
electron教程(一)创建项目
一、方式① 根据官网描述将electron/electron-quick-start项目克隆下来并启动 electron/electron-quick-start地址: GitHub - electron/electron-quick-start: Clone to try a simple Electron app git clone https://github.com/electron/electron-quick-start…...
![](https://img-blog.csdnimg.cn/img_convert/cd1fca55bc31fd5c8641ce6b82c95719.png)
如何在Oracle、MySQL、PostgreSQL上终止会话或取消SQL查询
How to Kill session or Cancel SQL query on Oracle , MySQL, PostgreSQL 数据库维护过程中难免会遇到一些不正常的SQL或会话进程正在占用系统大量资源,临时需要终止查询或kill会话,在Oracle, MySQL, Postgresql数据库中不同的操作。 Oracle KILL会话…...
![](https://img-blog.csdnimg.cn/direct/199401723f97477dac0e22350b8051e7.png)
3、FTL基本工作过程
上文描述了FTL的四大功能,这里简述一下每个功能的含义。 地址转换简述 FTL要维护一个地址转换表,这个转换表是主机读/写硬盘的逻辑地址到硬盘实际物理地址的转换关系。 假如SSD的容量是128G,SSD逻辑块的大小是4KB,那SSD的逻辑块…...
![](https://www.ngui.cc/images/no-images.jpg)
微信小程序的跳转页面
在微信小程序中,要实现从当前页面返回到指定页面的功能,通常不直接使用“返回上一页”的逻辑,而是利用小程序的页面栈管理和navigateBack或者重新定向到目标页面的API。下面我将介绍两种主要的方法: 方法一:使用 navi…...
![](https://i-blog.csdnimg.cn/direct/a6c6708ab0294cde8f6d13ffb24fdc28.png)
WACV2023论文速览域迁移Domain相关
Paper1 CellTranspose: Few-Shot Domain Adaptation for Cellular Instance Segmentation 摘要原文: Automated cellular instance segmentation is a process utilized for accelerating biological research for the past two decades, and recent advancements have produc…...
![](https://i-blog.csdnimg.cn/direct/0621a2f4b63c48b1bc2696c5bd33e1c5.png)
笔记本休眠后自动关闭所有程序
关于主动进入休眠后,笔记本过一晚第二天会关闭所有程序,开始还以为,笔记本没电了,或者公司停电了导致笔记本没电关机,排查后发现不是。。。 原因是笔记本电脑默认设置休眠20分钟后自动关闭硬盘。 解决方案:…...
![](https://img-blog.csdnimg.cn/direct/2d759487c6e14fb893b97337561ff081.png)
layui-按钮
1.用法 使用 用button标签 type"button" class"layui-button" 效果: 2.主题设置 前面都要加上layui-bin 3.尺寸设置 可以叠加使用! 4.圆角设置 加一个layui-bin-radius 5.按钮图标设置 里面加一个i标签 加class"layui-…...
![](https://img-blog.csdnimg.cn/direct/ee37220c6e284184b034e77c76dfae59.png)
mac 安装nvm的教程
在macOS上切换Node.js版本,可以使用nvm(Node Version Manager)。以下是安装nvm和切换Node.js版本的步骤: 安装nvm 下载方式 终端复制输入: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.…...
![](https://img-blog.csdnimg.cn/direct/88a8525a551b4055a253ef2425e1ade6.png)
基于jeecgboot-vue3的Flowable流程-集成仿钉钉流程(一)图标svgicon的使用
因为这个项目license问题无法开源,更多技术支持与服务请加入我的知识星球。 1、lowflow这里使用了tsx的动态图标,如下: import ./index.scss import type { CSSProperties, PropType } from vue import { computed, defineComponent, resolv…...
![](https://img-blog.csdnimg.cn/direct/27c88bb4be3d4b43beb24363a0fd02ae.png)
【数据结构与算法】堆排序算法原理与实现:基于堆实现的高效排序算法
💓 博客主页:倔强的石头的CSDN主页 📝Gitee主页:倔强的石头的gitee主页 ⏩ 文章专栏:《数据结构与算法》 期待您的关注 目录 一、引言 堆排序的简介 堆排序的特点 二、堆的概念 三、堆排序算法的原理 四、堆…...
![](https://www.ngui.cc/images/no-images.jpg)
卷出花来!比亚迪海狮07首搭天神之眼五月新车个个有看点
五月虽然不是传统的车市旺季,但仍然有多款重磅新车即将上市,包括比亚迪全新SUV海狮07 EV、智己L6、沃尔沃EX30,三款全新新能源车型要颜值有颜值,要性能有性能,近期想要入手新车的准车主们值得关注。比亚迪海狮07上市日期:5月10日4月25日,比亚迪旗下全新中型SUV——海狮07…...
![](https://www.ngui.cc/images/no-images.jpg)
竞争问界M7?东风奕派eπ008将于6月上市
作为东风奕派品牌旗下的第二款量产车型,东风奕派eπ008定位中大型SUV,已在2024北京车展期间开启预售,预售价格为20万-25万元。而日前笔者从相关渠道获悉,东风奕派eπ008将于今年6月完成上市。结合实车图来看,东风奕派eπ008拥有宽大饱满的车头造型,同时前包围两侧集成熏黑…...
![](https://www.ngui.cc/images/no-images.jpg)
Unix环境高级编程--8-进程控制---8.1-8.2进程标识-8.3fork函数-8.4 vfork函数
1、进程控制几个过程 创建进程--》执行进程---》终止进程 2、进程标识 (1)专用进程:ID为0的进程是调度进程,常常被称为交换进程,也称为系统进程; ID为1通常是init进程,在自举结束时由内核调用…...
![](https://img-blog.csdnimg.cn/direct/6761b66868f0485383f36a4dbb2e9257.jpeg)
深入解析Web前端三大主流框架:Angular、React和Vue
Web前端三大主流框架分别是Angular、React和Vue。下面我将为您详细介绍这三大框架的特点和使用指南。 Angular 核心概念: 组件(Components): 组件是Angular应用的构建块,每个组件由一个带有装饰器的类、一个HTML模板、一个CSS样式表组成。组件通过输入(@Input)和输出(…...
![](https://img-blog.csdnimg.cn/direct/bb6a9d9627b647389753ab039affe5b3.png)
服务器内存与CPU要占用多少才合理?
一 通常服务器内存占用多少合理?cpu占用多少才合理? 1 通常配置范围建议: 建议CPU使用率不高于80%;内存使用率不高于80%; 注意:具体情况还需要根据服务器的实际负载和应用场景来判断。 2 内存使用率&…...
![](https://img-blog.csdnimg.cn/direct/c9eba9c31e4647b7ad505234a33a0ddb.png)
【开源三方库】Aki:一行代码极简体验JSC++跨语言交互
一、简介 OpenAtom OpenHarmony(以下简称“OpenHarmony”)的前端开发语言是ArkTS,在TypeScript(简称TS)生态基础上做了进一步扩展,继承了TS的所有特性,是JavaScript(简称JS…...