当前位置: 首页 > news >正文

STM32+ESP8266+ONENET+微信小程序上传数据下发指令避坑指南

之前只做过类似的但是以为这种烂大街的功能应该不难结果还是踩了不少坑,记录几个需要注意的点

1、创建产品的时候选择onejson,自定义方案。这样选择的就是物模型,之后可以去使用物模型的API调试。

2、设置物模型

大概有以下几种比较常用的,int32,float,enum。enum设置的属性都是到时候用来做指令下发的,其余是上传传感器数据的。要注意onenet平台接受的是json格式数据,而且上传的数据格式必须与你设置的对应上。下面给了个OneNet_FillBuf示例。id不用改,主要是temper标识符和value后面的格式 %d 需要和你设置的物模型对应上

unsigned char OneNet_FillBuf(char *buf)
{char text[48];strcpy(buf,"{\"id\":\"1124\",\"params\":{");memset(text,0,sizeof(text));sprintf(text,"\"temper\":{\"value\":%d},",sensorData.temp);strcat(buf,text);memset(text,0,sizeof(text));sprintf(text,"\"humidity\":{\"value\":%.2f},",sensorData.humidity);strcat(buf,text);memset(text,0,sizeof(text));sprintf(text,"\"tvoc\":{\"value\":%d},",sensorData.tvoc);strcat(buf,text);memset(text,0,sizeof(text));sprintf(text,"\"light\":{\"value\":%d},",sensorData.light);strcat(buf,text);memset(text,0,sizeof(text));sprintf(text,"\"water_level\":{\"value\":%.2f}",sensorData.water_level);strcat(buf,text);strcat(buf,"}}");return strlen(buf);}//==========================================================
//	函数名称:	OneNet_SendData
//
//	函数功能:	上传数据到平台
//
//	入口参数:	type:发送数据的格式
//
//	返回参数:	无
//
//	说明:		
//==========================================================
void OneNet_SendData(void)
{MQTT_PACKET_STRUCTURE mqttPacket = {NULL, 0, 0, 0};												//协议包char buf[256];short body_len = 0, i = 0;memset(buf, 0, sizeof(buf));//清空数组内容body_len = OneNet_FillBuf(buf);	//获取当前需要发送的数据流的总长度//printf("%s\r\n",buf);if(body_len){if(MQTT_PacketSaveData(DEVICE_NAME, body_len, NULL, 5, &mqttPacket) == 0)							//封包{for(; i < body_len; i++){mqttPacket._data[mqttPacket._len++] = buf[i];}ESP8266_SendData(mqttPacket._data, mqttPacket._len);									//上传数据到平台MQTT_DeleteBuffer(&mqttPacket);															//删包}else;
//			//printf(  "WARN:EDP_NewBuffer Failed\r\n");}}

3、微信小程序实现传感器数据的同步显示和指令下发

这里主要用了这两个API,可以现在onenet云平台上调试一下,看正确的返回格式是什么样。

设备属性最新数据查询示例代码如下:

//OneNet接入信息配置
const MQTT_Product_Id = "";
const MQTT_Device_Name = "";// MQTT API配置
const MQTT_GET_URL = "https://iot-api.heclouds.com/thingmodel/query-device-property?product_id=" + MQTT_Product_Id + "&device_name=" + MQTT_Device_Name;const MQTT_POST_URL = "https://iot-api.heclouds.com/thingmodel/set-device-desired-property";//使用token工具生成
const MQTT_Authorization = "";onLoad: function() {// 页面加载时立即获取一次数据this.getinfo();// 设置定时器,每5秒获取一次数据this.setData({timer: setInterval(() => {this.getinfo();}, 5000)});},getinfo: function() {var that = this;wx.request({url: MQTT_GET_URL,header: {"authorization": MQTT_Authorization},method: "GET",success: function(res) {console.log("获取成功", res);if (res.data && res.data.code === 0) {// 解析设备数据const deviceData = {};res.data.data.forEach(item => {if (item && item.identifier) {deviceData[item.identifier] = item.value;}});// 更新页面数据that.setData({soilHumidity: deviceData['humidity'] + '%',waterLevel: deviceData['water_level'] + 'm',lightIntensity: deviceData['light'] + 'lux',airQuality: deviceData['tvoc'],envTemper: deviceData['temper'] + '℃',lastUpdateTime: new Date().toLocaleTimeString()});}},fail: function(err) {console.error('获取数据失败:', err);}});}

指令下发的示例代码如下:

toggleMode() {const newMode = !this.data.autoMode;const modeValue = newMode ? 0 : 2;wx.request({url: MQTT_POST_URL,method: 'POST',header: {"authorization": MQTT_Authorization},data: {"product_id": MQTT_Product_Id,"device_name": MQTT_Device_Name,"params": {"mode": modeValue}},success: res => {console.log("模式切换成功:", res);this.setData({autoMode: newMode});},fail: err => {console.error("模式切换失败:", err);wx.showToast({title: '模式切换失败',icon: 'none'});}});},

4、微信小程序指令下发之后,单片机那边进行数据解析

单片机收到的数据是json格式的,所以只需要去寻找目标字段,然后读取后面的数值即可

void OneNet_RevPro(unsigned char *cmd)
{char *req_payload = NULL;char *cmdid_topic = NULL;unsigned short topic_len = 0;unsigned short req_len = 0;unsigned char qos = 0;static unsigned short pkt_id = 0;unsigned char type = 0;short result = 0;type = MQTT_UnPacketRecv(cmd);switch(type){case MQTT_PKT_PUBLISH:																//接收的Publish消息result = MQTT_UnPacketPublish(cmd, &cmdid_topic, &topic_len, &req_payload, &req_len, &qos, &pkt_id);if(result == 0){//				printf(  "topic: %s, topic_len: %d, payload: %s, payload_len: %d\r\n",
//																	cmdid_topic, topic_len, req_payload, req_len);				}case MQTT_PKT_PUBACK:														//发送Publish消息,平台回复的Ackif(MQTT_UnPacketPublishAck(cmd) == 0){//printf(  "Tips:	MQTT Publish Send OK\r\n");}break;case MQTT_PKT_SUBACK:																//发送Subscribe消息的Ackif(MQTT_UnPacketSubscribe(cmd) == 0){//printf(  "Tips:	MQTT Subscribe OK\r\n");}else{//printf(  "Tips:	MQTT Subscribe Err\r\n");}break;default:result = -1;break;}ESP8266_Clear();									//清空缓存if(result == -1)return;//解析req_payload数组中的值即可char *pump_ptr = strstr(req_payload, "\"pump\":");if (pump_ptr != NULL) {}if(type == MQTT_PKT_CMD || type == MQTT_PKT_PUBLISH){MQTT_FreeBuffer(cmdid_topic);MQTT_FreeBuffer(req_payload);}}

相关文章:

STM32+ESP8266+ONENET+微信小程序上传数据下发指令避坑指南

之前只做过类似的但是以为这种烂大街的功能应该不难结果还是踩了不少坑&#xff0c;记录几个需要注意的点 1、创建产品的时候选择onejson&#xff0c;自定义方案。这样选择的就是物模型&#xff0c;之后可以去使用物模型的API调试。 2、设置物模型 大概有以下几种比较常用的&…...

不同消息队列保证高可用实现方案

消息队列的高可用性&#xff08;High Availability, HA&#xff09;是分布式系统中的核心需求&#xff0c;不同消息队列通过多种技术手段实现高可用。以下是主流消息队列的高可用实现方案及对比&#xff1a; 一、Apache Kafka 副本机制&#xff08;Replication&#xff09; 每个…...

Android 蓝牙开发 - 蓝牙相关权限(蓝牙基本权限、Android 12 蓝牙新增权限、位置权限)

蓝牙基本权限 1、基本介绍 <uses-permission android:name"android.permission.BLUETOOTH" />BLUETOOTH&#xff1a;允许应用连接配对的蓝牙设备 <uses-permission android:name"android.permission.BLUETOOTH_ADMIN" />BLUETOOTH_ADMIN&am…...

【Linux】第二十一章 管理存储堆栈

1. 分别说明LVM中物理卷、物理区块、卷组、逻辑卷的概念以及它们之间的关系。 在 LVM (Logical Volume Management) 中&#xff0c;硬盘的管理变得更加灵活&#xff0c;允许动态地调整磁盘空间的分配。 物理卷&#xff08;PV&#xff09;&#xff1a;LVM使用底层物理设备&…...

OpenCV 人脸识别:从基础到实践全解析

在人工智能与计算机视觉蓬勃发展的今天&#xff0c;人脸识别技术已深入我们生活的方方面面&#xff0c;从手机解锁到安防监控&#xff0c;其应用无处不在。而 OpenCV 作为计算机视觉领域最受欢迎的开源库之一&#xff0c;为开发者提供了一套高效且易用的人脸识别解决方案。本文…...

【HTML-2】HTML 标题标签:构建网页结构的基础

在网页开发中&#xff0c;标题标签(<h1>到<h6>)是构建内容层次结构和语义化标记的基础元素。这些标签不仅影响内容的视觉呈现&#xff0c;更对网页的可访问性和SEO有着深远影响。 1. 标题标签的基本用法 HTML提供了六个级别的标题标签&#xff1a; <h1>这…...

vue3前端后端地址可配置方案

在开发vue3项目过程中&#xff0c;需要切换不同的服务器部署&#xff0c;代码中配置的服务需要可灵活配置&#xff0c;不随着run npm build把网址打包到代码资源中&#xff0c;不然每次切换都需要重新run npm build。需要一个配置文件可以修改服务地址&#xff0c;而打包的代码…...

HTML应用指南:利用POST请求获取全国申通快递服务网点位置信息

申通快递&#xff08;STO Express&#xff09;作为中国领先的综合物流服务商&#xff0c;自1993年创立以来&#xff0c;始终秉持“正道经营、长期主义”的发展理念&#xff0c;深耕快递物流领域&#xff0c;开创了行业加盟制先河。经过30余年的发展&#xff0c;申通已成长为国家…...

《医院运营管理典型应用数据资源建设指南2025》全面分析

引言:医院数据资源建设的时代背景与意义 医院运营管理数据资源建设正迎来前所未有的发展机遇与挑战。在深化支付改革与公立医院高质量发展政策驱动下,医院亟需建立智慧化运营管理体系,而数据资源作为关键要素,其建设水平直接关系到医院管理的科学性与效率。《医院运营管理…...

.NET外挂系列:3. 了解 harmony 中灵活的纯手工注入方式

一&#xff1a;背景 1. 讲故事 上一篇我们讲到了 注解特性&#xff0c;harmony 在内部提供了 20个 HarmonyPatch 重载方法尽可能的让大家满足业务开发&#xff0c;那时候我也说了&#xff0c;特性虽然简单粗暴&#xff0c;但只能解决 95% 的问题&#xff0c;言外之意还有一些…...

taro 小程序 CoverImage Image src无法显示图片的问题

目录 一、问题描述 二、解决方案 一、问题描述 使用taro开发的微信小程序图片无法正常显示&#xff0c;并报如下错误&#xff1a; [渲染层网络层错误] Failed to load local image resource /assets/icon/message.png the server responded with a status of 500 (HTTP/1.…...

05_核支持向量机

描述 核支持向量机&#xff08;通常简称为SVM&#xff09;可以推广到更复杂模型的扩展&#xff0c;这些模型无法被输入空间的超平面定义。 SVM 的核心思想是找到一个最优的超平面&#xff0c;将不同类别的数据分开。这个超平面不仅要能够正确分类数据&#xff0c;还要使得两个…...

[解决方案] Word转PDF

背景&#xff1a; 之前做过一些pdf导出&#xff0c; 客户提了一个特别急的需求&#xff0c; 要求根据一个模版跟一个csv的数据源&#xff0c; 批量生成PDF&#xff0c; 因为之前用过FOP&#xff0c; 知道调整样式需要特别长的时间&#xff0c; 这个需求又特别急&#xff0c; 所…...

Oracle 11g post PSU Oct18 设置ssl连接(使用wallets)

说明 oracle 11g 从PSU 2018Oct&#xff08;含&#xff09;及之后的补丁不支持MD5. 要使用JDBC SSL要使用TSL1.2. 有两种方法&#xff0c;一种使用wallet, 一种使用JKS. 本文档使用wallets. 1. 为什么用TSL 1.2 https://blogs.oracle.com/developers/post/ssl-connection-to…...

linux关闭某端口暂用的进程

查看是哪个端口暂用 sudo netstat -tulpn | grep :80根据图片 显示 80端口暂用的 进程id是 3002 结束进程id为3002的进程 sudo kill -9 3002...

web开发全过程总结

目录 利用pnpm创建vue3的文件 使用pnpm创建项目 项目配置 在idea中创建Spring Boot项目 配置基础项目架构(三层架构) 利用pnpm创建vue3的文件 1.打开cmd,以管理员的身份运行 2.切换到自己想要建立项目的文件的目录下或者直接在文件中以cmd的形式打开 输入指令安装pnpm n…...

经典Java面试题的答案——Java 基础

大家好&#xff0c;我是九神。这是互联网技术岗的分享专题&#xff0c;废话少说&#xff0c;进入正题&#xff1a; 1.JDK 和 JRE 有什么区别&#xff1f; JDK&#xff1a;Java Development Kit 的简称&#xff0c;java 开发工具包&#xff0c;提供了 java 的开发环境和运行环境…...

Fiddler 指定链接断点

问题背景 在使用Fiddler进行抓包和mock数据时&#xff0c;由于前端页面通常依赖多个前置接口&#xff08;如JS、CSS、登录态等&#xff09;&#xff0c;导致抓包过程中难以精准定位到目标接口。这种复杂性增加了调试和mock数据的难度。 常见挑战 前置接口过多&#xff1a;页…...

C# 语法篇:字段的定义和运算

对于字段来说&#xff0c;是在对象创建时就被初始化了&#xff1b;而构造函数的运行是在这之后。 因此&#xff0c;不能对字段进行需要用到“构造函数赋值的变量”的运算&#xff0c;因为此时这些变量的值都为0或者随机值&#xff0c;编译器不允许这时候做运算。 因此&#xf…...

音频应用的MediaSession冲突

前提条件 系统级应用&#xff0c;使用了sharedUserId 应用在AndroidManifest.xml中声明了系统级UID&#xff1a;android:sharedUserId"android.uid.system"该配置使应用具有系统级权限&#xff0c;可以访问系统级API和资源 使用MediaSession框架 应用通过MediaSessi…...

【QT】类A接收TCP数据并通过信号通知类B解析

以下是基于Qt的完整示例代码&#xff0c;包含类A接收TCP数据并通过信号通知类B解析的实现&#xff1a; ------------------ ClassA.h 网络数据接收类 ------------------ #pragma once#include <QTcpServer> #include <QTcpSocket> #include <QObject>class…...

【Jitsi Meet】(腾讯会议的平替)Docker安装Jitsi Meet指南-使用内网IP访问

Docker安装Jitsi Meet指南-使用内网IP访问 下载官方代码配置环境变量复制示例环境文件并修改配置&#xff1a;编辑 .env 文件&#xff1a; 修改 docker-compose.yml 文件生成自签名证书启动服务最终验证 腾讯会议的平替。我们是每天开早晚会的&#xff0c;都是使用腾讯会议。腾…...

微服务架构中的多进程通信--内存池、共享内存、socket

目录 1 引言 2 整体架构简介 3 疑问 3.1 我们的共享内存消息机制是用的posix还是system V 3.2 rmmt中&#xff0c;不同线程之间的比如访问同一个内存&#xff0c;用的什么锁控制的 3.3 疑问&#xff1a;假如一个进程发送给了另外两个进程&#xff0c;然后另外两个进程都同…...

使用 adb 命令截取 Android 设备的屏幕截图

使用 adb 命令截取 Android 设备的屏幕截图。以下是两种常见的方法&#xff1a; 方法一&#xff1a;截屏后保存到电脑 adb shell screencap -p /sdcard/screenshot.png adb pull /sdcard/screenshot.png解释&#xff1a; adb shell screencap -p /sdcard/screenshot.png&…...

Jenkins服务器配置密钥对

1. 在 Jenkins 服务器上执行以下命令 # 生成 SSH 密钥对 ssh-keygen -t rsa -b 2048 -f ~/.ssh/id_rsa -N ""# 查看公钥内容 cat ~/.ssh/id_rsa.pub 2. 将显示的公钥内容复制&#xff0c;然后在目标服务器上执行 # 在目标服务器上执行 mkdir -p /root/.ssh chmod …...

Docker中部署Alertmanager

在 Docker 中部署 Alertmanager&#xff08;通常与 Prometheus 告警系统配合使用&#xff09;的步骤如下&#xff1a; 一、拉取镜像prom/alertmanager docker pull prom/alertmanager二、 创建 Alertmanager 配置文件 首先准备Alertmanager的配置文件 alertmanager.yml(如存…...

Keil软件中STM32(ARM)与C51兼容方法

推荐其他UP主&#xff1a;Keil5安装教程&#xff08;包含C51与MDK共存&#xff09; - Kojull - 博客园 我已经实现了&#xff01;...

青少年编程与数学 02-019 Rust 编程基础 19课题、项目发布

青少年编程与数学 02-019 Rust 编程基础 19课题、项目发布 一、准备工作1. 创建和配置项目2. 编写代码和测试3. 文档注释 二、构建发布版本1. 构建优化后的可执行文件2. 静态链接&#xff08;可选&#xff09; 三、发布到 crates.io1. Crates.io核心功能使用方法特点最新动态 2…...

一洽小程序接入说明

接入说明 文档以微信小程序作为示例介绍&#xff0c;其他小程序接入操作与此类似 1、添加校验文件 开发者使用微信小程序提供的 webview 组件可以实现打开一洽的H5对话 小程序的“域名配置”中添加一洽的对话域名地址&#xff0c;需要获取校验文件提供给一洽放在域名根目录下…...

RabbitMQ的基本使用

RabbitMQ 是一个非常流行的消息中间件&#xff0c;用于实现生产者与消费者之间的异步通信。它基于 AMQP 协议&#xff08;高级消息队列协议&#xff09;&#xff0c;支持多种编程语言和平台。 以下是 RabbitMQ 的基本使用说明&#xff0c;包括安装、核心概念、基本操作和 Pyth…...

CSS专题之常见布局

前言 石匠敲击石头的第 13 次 作为一名前端开发&#xff0c;在日常开发中&#xff0c;写页面是必不可少的工作&#xff0c;但有时候发现很多的页面结构都是类似的&#xff0c;所以打算写一篇文章来梳理一下日常开发中常见的布局&#xff0c;如果哪里写的有问题欢迎指出。 单列…...

CentOS 7连接公司网络配置指南

在物理主机上安装了一个CentOS 7&#xff0c;需要连接公司的网络&#xff0c;但是公司的网络需要输入用户名密码才能连接 解决方案 需要 同时设置 wifi-sec.key-mgmt 和 802-1x 参数。以下是分步操作&#xff1a; 1. 创建基础 Wi-Fi 连接 sudo nmcli con add con-name &quo…...

RustDesk CentOS自建中继节点

一、需开放端口 TCP: 21115, 21116, 21117, 21118, 21119 UDP: 21116 二、安装docker 1.使用 root 权限登录 CentOS。确保 yum 包更新到最新 yum update 2. 卸载旧版本 yum remove docker 3. 安装 Docker 所需依赖 yum -y install yum-utils device-mapper-persistent-d…...

CentOS 7上部署BIND9 DNS服务器指南

场景假设&#xff1a; 我们要为内部网络 192.168.1.0/24 搭建一个权威 DNS 服务器。 域名&#xff1a;mylab.localDNS 服务器 IP&#xff1a;192.168.1.10我们将配置正向解析 (hostname -> IP) 和反向解析 (IP -> hostname)。 一、安装 BIND9 更新系统并安装 BIND 及工…...

面试突击:消息中间件之RabbitMQ

一&#xff1a;你们项目中哪里用到了RabbitMQ ? 难易程度&#xff1a;☆☆☆ 出现频率&#xff1a;☆☆☆☆ 我们项目中很多地方都使用了RabbitMQ , RabbitMQ 是我们项目中服务通信的主要方式之一 , 我们项目中服务通信主要有两种方式实现 : 通过Feign实现服务调用通过MQ实现服…...

基于 ESP32 与 AWS 全托管服务的 IoT 架构:MQTT + WebSocket 实现设备-云-APP 高效互联

目录 一、总体架构图 二、设备端(ESP32)低功耗设计(适配 AWS IoT) 1.MQTT 设置(ESP32 连接 AWS IoT Core) 2.低功耗策略总结(ESP32) 三、云端架构(基于 AWS Serverless + IoT Core) 1.AWS IoT Core 接入 2.云端 → APP:WebSocket 推送方案 流程: 3.数据存…...

将 /dev/vdb1 的空间全部合并到 /dev/mapper/centos-root(即扩展 CentOS 的根分区)

要将 /dev/vdb1 的 1TB 空间合并到 /dev/mapper/centos-root&#xff08;即扩展 CentOS 的根分区&#xff09;&#xff0c;可以采用 LVM&#xff08;逻辑卷管理&#xff09; 的方式。以下是详细步骤&#xff1a; 步骤 1&#xff1a;检查当前磁盘和 LVM 情况 1.1 确认 /dev/vdb…...

CentOS Stream安装MinIO教程

1. 下载 MinIO 二进制文件 # 进入 MinIO 安装目录 sudo cd /usr/local/bin/# 下载 MinIO 二进制文件&#xff08;替换为最新版本链接&#xff09; wget https://dl.min.io/server/minio/release/linux-amd64/minio chmod x minio2. 创建专用用户和存储目录 # 创建 minio 用户…...

游戏引擎学习第299天:改进排序键 第二部分

回顾并为当天内容做准备 我们会现场编写完整的游戏代码。回顾上周发现自己对游戏中正确的排序规则并没有清晰的理解。主要原因是我们更擅长三维游戏开发&#xff0c;缺乏二维游戏和二维游戏技术的经验&#xff0c;对于二维精灵排序、模拟三维效果的最佳方案等没有太多技巧和经…...

设计模式----软考中级软件设计师(自用学习笔记)

目录 1、设计模式的要素 2、设计模式的分类 3、简单工厂模式 4、工厂方法 5、抽象工厂 6、生成器 7、原型 8、单例模式 9、适配器 10、桥接 11、组合模式 12、装饰 13、外观 14、享元 15、代理 16、责任链 17、命令 18、解释器 19、迭代器 20、中介者 21、…...

uniapp如何设置uni.request可变请求ip地址

文章目录 简介方法一&#xff1a;直接在请求URL中嵌入变量方法二&#xff1a;使用全局变量方法三&#xff1a;使用环境变量方法四&#xff1a;服务端配置方法五&#xff1a;使用配置文件&#xff08;如config.js&#xff09;:总结 简介 在uni-app中&#xff0c;uni.request 用…...

Centos上搭建 OpenResty

一、OpenResty简介 OpenResty 是基于 Nginx 的扩展平台&#xff0c;完全兼容 Nginx 的核心功能&#xff08;如 HTTP 服务和反向代理&#xff09;&#xff0c;同时通过内嵌 LuaJIT 支持&#xff0c;允许开发者用 Lua 脚本灵活扩展业务逻辑。它简化了动态逻辑的实现。 二、安装…...

Kotlin与物联网(IoT):Android Things开发探索

在物联网&#xff08;IoT&#xff09;领域&#xff0c;Kotlin 凭借其简洁性、安全性和与 Java 生态的无缝兼容性&#xff0c;逐渐成为 Android Things 开发的有力工具。尽管 Google 已于 2022 年宣布停止对 Android Things 的官方支持&#xff0c;但其技术思想仍值得探索&#…...

WIFI信号状态信息 CSI 深度学习篇之CNN(Python)

本博客是一篇非新手导向的CNN处理CSI图像帧的教程&#xff0c;基于tensorflow框架构建CNN模型进行训练&#xff0c;训练对象依然是前述博客中所提到的CSI图像帧&#xff08;500 x 90 x 1&#xff09;。代码里用到了深度可分离卷积&#xff0c;这种结构在减少计算量和参数数量方…...

深度学习实战 04:卷积神经网络之 VGG16 复现三(训练)

在后续的系列文章中&#xff0c;我们将逐步深入探讨 VGG16 相关的核心内容&#xff0c;具体涵盖以下几个方面&#xff1a; 卷积原理篇&#xff1a;详细剖析 VGG 的 “堆叠小卷积核” 设计理念&#xff0c;深入解读为何 332 卷积操作等效于 55 卷积&#xff0c;以及 333 卷积操作…...

欧拉系统离线部署docker

https://www.cnblogs.com/hsh96/p/18150538 Docker 离线安装指南 本文介绍了如何在 Linux 系统上进行 Docker 的离线安装。首先&#xff0c;确保欧拉系统安装的是server版本&#xff0c;否则没有tar工具。 您需要下载 Docker 的离线安装包。您可以从以下链接获取所需的安装包&a…...

Java 中 final 与 static 的区别

Java 中 final 与 static 的区别 在 Java 中&#xff0c;final 和 static 是两个不同的关键字&#xff0c;它们的核心作用和不可变性特性有本质区别&#xff1a; 一、final 的核心作用 1. 变量&#xff08;不可变引用&#xff09; 不可重新赋值&#xff1a;final 修饰的变量…...

多模态实时交互边界的高效语音语言模型 VITA-Audio 介绍

介绍 VITA-Audio是由Zuwei Long等研究者提出的端到端大型语音语言模型&#xff0c;其核心目标是通过跨模态令牌生成技术&#xff0c;解决传统语音交互系统中首音频令牌生成延迟高的问题。该模型的创新点主要体现在&#xff1a; 低延迟&#xff1a;VITA-Audio 是首个能够在初次…...

LLM | 论文精读 | NAACL 2025 | Clarify When Necessary:教语言模型何时该“问一句”再答!

&#x1f50d; 解读 NAACL 2025 重磅论文《Clarify When Necessary》&#xff1a;教语言模型何时该“问一句”再答&#xff01; &#x1f9e9; 一、现实问题&#xff1a;大模型“看不懂装懂”有多危险&#xff1f; 我们每天用的 ChatGPT、Claude 等大型语言模型&#xff08;LL…...

MySQL 8.0 OCP 英文题库解析(七)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题51~60 试题51:…...