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

修改ESP32CAM的示例CameraWebServer里的camera_index.h的方法

在这里,默认你已经会使用Arduino IDE或者PlatformIO通过烧录底座对ESP32CAM(如下图)进行烧录,并能通过浏览器对其进行访问。
ESP32CAM及其底座
我们访问到下图的界面时,不禁有个疑问,这个界面是如何生成的,如果我要修改这个界面要怎么办?本文就是提供了修改这个访问界面的方法
访问界面

1. ESP32CAM的访问界面是如何产生的

这个界面是HTML页面,Arduino IDE通过对下图中的camera_index.h的编译而生成的。
在这里插入图片描述

2. camera_index.h为什么我们常见的html页面代码不一样

当我们打开camera_index.h时,发现其内容如下,三个数组分别对应的是三种不同型号摄像头不同的设置界面。其中的数组部分就是html代码部分,这部分代码与app_httpd.cpp交互来实现对摄像头的各种设置的。只不过在此处,为了方便ESP32等单片机访问,html代码通过gzip压缩成了16进制的数据。


#define index_ov2640_html_gz_len 6787
const uint8_t index_ov2640_html_gz[] = {0x1F, 0x8B, 0x08, 0x08, 0x23, 0xFC, 0x69, 0x5E, 0x00, 0x03, 0x69, 0x6E, 0x64, 0x65, 0x78, 0x5F, 0x6F, 0x76, 0x32, 0x36, 0x34, 0x30, 0x2E, 0x68, 0x74, 0x6D,0x6C, 0x00, 0xED, 0x3D, 0x6B, 0x73, 0xDB, 0x46, 0x92, 0xDF, 0xFD, 0x2B, 0x60, 0x24, 0x6B, 0x92, 0x25, 0x92, 0x22, 0x29, 0x4A, 0x96, 0x15, 0x89, 0x3E, 0x5B,......
};//File: index_ov3660.html.gz, Size: 8887
#define index_ov3660_html_gz_len 8887
const uint8_t index_ov3660_html_gz[] = {0x1F, 0x8B, 0x08, 0x08, 0xA3, 0xFA, 0x69, 0x5E, 0x00, 0x03, 0x69, 0x6E, 0x64, 0x65, 0x78, 0x5F, 0x6F, 0x76, 0x33, 0x36, 0x36, 0x30, 0x2E, 0x68, 0x74, 0x6D,0x6C, 0x00, 0xED, 0x3D, 0x69, 0x73, 0xDB, 0x46, 0xB2, 0xDF, 0xFD, 0x2B, 0x60, 0x24, 0x6B, 0x51, 0x65, 0x91, 0xE2, 0xAD, 0x23, 0x12, 0xFD, 0x6C, 0x59, 0xB1,......
};//File: index_ov5640.html.gz, Size: 9124
#define index_ov5640_html_gz_len 9124
const uint8_t index_ov5640_html_gz[] = {0x1F, 0x8B, 0x08, 0x08, 0xD9, 0x6C, 0x6A, 0x5E, 0x00, 0x03, 0x69, 0x6E, 0x64, 0x65, 0x78, 0x5F, 0x6F, 0x76, 0x35, 0x36, 0x34, 0x30, 0x2E, 0x68, 0x74, 0x6D,0x6C, 0x00, 0xED, 0x3D, 0x6B, 0x77, 0xDB, 0xB6, 0x92, 0xDF, 0xF3, 0x2B, 0x18, 0xF5, 0x6E, 0x24, 0x9F, 0x58, 0xB6, 0xA8, 0x97, 0x1F, 0xB1, 0x95, 0x4D, 0x1C,......
};

3. 怎么对html界面进行修改

我们应该可以想到基本思路,就是:

  • 把camera_index.h十六进制数组部分的内容转换成html
  • 对html代码进行编辑
  • 再把编辑后的html代码转换成十六进制数组
  • 把修改的部分替换掉原来的数组

接下来就按照上面的方法对,html界面进行修改,我想在界面上加上OTA上传固件的几个按钮

  1. 因为我使用的摄像头是OV2640,我只对camera_index.h的第一段数组进行修改,其它两段保持不变,下面要用到一个重要的工具CyberChef,它可以把十六进制数组形式存储的gzip内容转换成html,把数组部分的内容复制到Input文本框,再Output文本框已经可以看到html代码,注意只复制十六位数组数据,数组名之类的内容不要复制。
    在这里插入图片描述
  2. 把html代码内容保存为一个html文件,这里已经可以通过浏览器看到这个文件的页面和前面的图片“访问界面”一模一样,这里就不做重复。
    因为我要再这个界面里加上传固件,我要加上两个按键和一个文本框,其中两个按键是“打开文件”,“Update",文本框内容是:点update上传固件。其html代码如下,再刚才保存的html文件内找位置加上就可以了。
<div><div class="toggle-section-label">Firmware</div><button type="button">Select File</button><button type="button">Update</button><div>点update上传固件</div>
</div>	

修改后的html文件已经上传,想参考的可以下载

  1. 接下面还要再利用一次CyberChel,直接点这个链接CyberChef html to hex会直接进入转换成十六进制的配置,你也可以按照下图自己配置
    HTML to h

  2. 复制Output文本框的内容(除了第一个逗号),放到一个txt文件里,将它命名为array.txt. 接下来对这个文件进行处理,主要处理内容:
    求出元素个数
    按原来的camera_index.h的数组把数据格式美化一下。

    用下面的python代码处理,把array.txt和python代码放到一个目录里

def process_hex_file(input_file, output_file):try:# 打开输入文件并读取内容with open(input_file, 'r') as f:hex_data = f.read()# 去掉文件中的空格、换行符和逗号hex_data = hex_data.replace(' ', '').replace('\n', '').replace(',', '')# 删除 0x 前缀以正确计算元素个数hex_data_cleaned = hex_data.replace('0x', '')element_count = len(hex_data_cleaned) // 2  # 每两个字符表示一个字节# 将数据分组为每个字节(两个字符为一组),并添加 0x 前缀,确保字母为大写bytes_data = [f"0x{hex_data_cleaned[i:i+2].upper()}" for i in range(0, len(hex_data_cleaned), 2)]# 每16个字节换行,并用逗号分隔,确保每行第一个元素前加空格formatted_data = '\n'.join([' ' + ', '.join(bytes_data[i:i+16]) + ',' for i in range(0, len(bytes_data), 16)])# 删除整个数组的最后一个逗号if formatted_data.endswith(','):formatted_data = formatted_data[:-1]# 将格式化后的数据写入新文件with open(output_file, 'w') as f:f.write(formatted_data)# 打印十六进制数据元素个数print(f"十六进制数据元素个数: {element_count}")print(f"已保存到文件: {output_file}")except Exception as e:print(f"处理文件时出错: {e}")# 输入文件和输出文件路径
input_file = 'array.txt'  # 替换为实际文件路径
output_file = 'copytocameraindex.txt'# 调用函数
process_hex_file(input_file, output_file)

运行python代码里会出现如下内容:

十六进制数据元素个数: 7006
已保存到文件: copytocameraindex.txt

对camera_index.h进行修改,注意只修改对应摄像头型号的内容,其它摄像头的内容保持不变。

  1. 将原来的camera_index.h里的 #define index_ov2640_html_gz_len 6787数字替换为打印出来的的元素个数7006。
  2. 最后会生成一个文件copytocameraindex.txt,用这个文件里的内容替换掉原来的camera_index.h内OV2640数组的相应的内容。

修改后内容如下。

//File: index_ov2640.html.gz, Size: 7006
#define index_ov2640_html_gz_len 7006
const uint8_t index_ov2640_html_gz[] = {0x1F, 0x8B, 0x08, 0x00, 0x0C, 0xCB, 0xF8, 0x67, 0x00, 0xFF, 0xED, 0x5D, 0x5B, 0x73, 0xDB, 0x46,0x96, 0x7E, 0x9E, 0xA9, 0x9A, 0xFF, 0x00, 0x33, 0x19, 0x93, 0x2A, 0x93, 0x94, 0x48, 0x29, 0xB2,0xA3, 0x91, 0xE8, 0xF5, 0x45, 0xB6, 0x53, 0x1B, 0x27, 0x99, 0x38, 0xB7, 0xA9, 0xA9, 0x29, 0x07,0x24, 0x9B, 0x24, 0x62, 0x10, 0xE0, 0x00, 0xA0, 0x44, 0x25, 0xA5, 0x97, 0xDD, 0xB7, 0xFD, 0x03,0xFB, 0xB0, 0x2F, 0xFB, 0x2B, 0xB6, 0xF6, 0xF6, 0xB4, 0xFB, 0x57, 0x66, 0x6B, 0xFF, 0xC6, 0x7C,0xA7, 0x2F, 0x40, 0x03, 0x68, 0x5C, 0x48, 0xCA, 0x94, 0x26, 0x33, 0x24, 0x8B, 0x04, 0x1B, 0xDD,0xA7, 0x4F, 0x9F, 0x5B, 0x9F, 0x3E, 0x7D, 0xC1, 0xE9, 0xBD, 0xB1, 0x3F, 0x8A, 0xAE, 0x16, 0xCC,0x9A, 0x45, 0x73, 0x77, 0xF0, 0xAB, 0x5F, 0x9E, 0xCA, 0x5F, 0x0B, 0xAF, 0xD3, 0x19, 0xB3, 0xC7,.....
};

修改完成后的界面

可以看到最下面的两个按键和一个文本框。具体的上传的代码和界面修改无关,这里就不展示了。

最后生成界面

相关文章:

修改ESP32CAM的示例CameraWebServer里的camera_index.h的方法

在这里&#xff0c;默认你已经会使用Arduino IDE或者PlatformIO通过烧录底座对ESP32CAM&#xff08;如下图&#xff09;进行烧录&#xff0c;并能通过浏览器对其进行访问。 我们访问到下图的界面时&#xff0c;不禁有个疑问&#xff0c;这个界面是如何生成的&#xff0c;如果我…...

Python学习笔记(二)(字符串)

文章目录 编写简单的程序一、标识符 (Identifiers)及关键字命名规则&#xff1a;命名惯例&#xff1a;关键字 二、变量与赋值 (Variables & Assignment)变量定义&#xff1a;多重赋值&#xff1a;变量交换&#xff1a;&#xff08;很方便哟&#xff09; 三、输入与输出 (In…...

ViewModel vs AndroidViewModel:核心区别与使用场景详解

在 Android 的 MVVM 架构中&#xff0c;ViewModel 和 AndroidViewModel 都是用于管理 UI 相关数据的组件&#xff0c;但二者有一些关键区别&#xff1a; 1. ViewModel 基本用途&#xff1a;用于存储和管理与 UI 相关的数据&#xff0c;生命周期与 Activity/Fragment 解耦&…...

Windows环境下 全屏显示某个字符串

case WM_PAINT: {PAINTSTRUCT ps;HDC hdc BeginPaint(hWnd, &ps);// 获取完整客户区尺寸RECT rc;GetClientRect(hWnd, &rc);// 全屏时&#xff1a;整个窗口作为显示区域RECT displayRect rc;// 纯黑背景FillRect(hdc, &displayRect, (HBRUSH) GetStockObject(BLA…...

禅道MCP Server开发实践与功能全解析

一、简介 1、MCP Server核心定义 MCP Server&#xff08;Meta Command Protocol Server&#xff09;是一种基于客户端-服务器架构的轻量级服务程序&#xff0c;采用统一的mcp协议格式&#xff0c;通过连接多样化数据源和工具为AI应用提供扩展能力。它作为中间层&#xff0c;实…...

Vue.js组件安全开发实战:从架构设计到攻防对抗

目录 开篇总述&#xff1a;安全视角下的Vue组件开发新范式 一、Vue.js组件开发现状全景扫描 二、安全驱动的Vue组件创新架构 三、工程化组件体系构建指南 四、深度攻防对抗实战解析 五、安全性能平衡策略 结语&#xff1a;安全基因注入前端开发的未来展望 下期预告&…...

代发考试战报:4月份最新锐捷RCNA RCNP 考试通过战报

锐捷 RCNA云计算 R4111 考试通过&#xff0c;RCNA 安全 R3111 考试通过&#xff0c;RCNP无线 R5211考试通过&#xff0c;RCNP路由考试通过&#xff0c;等等 成绩单战报...

卫星互联网技术加速发展,遨游卫星电话为生命添一份“保险”

卫星互联网通过高中低轨卫星组网&#xff0c;实现了对海洋、沙漠、极地等“信息盲区”的全域覆盖。据国际电信联盟&#xff08;ITU&#xff09;统计&#xff0c;截至2024年底&#xff0c;全球在轨卫星数量已突破1万颗&#xff0c;其中我国“千帆星座”“GW星座”等低轨计划加速…...

文件IO7(中文字库的原理与应用/目录检索原理与应用/并发编程的原理与应用)

中文字库的原理与应用 ⦁ 基本概念 一般在项目中都会显示汉字&#xff0c;都采用中文简体字符集&#xff0c;计算机早期只有ANSI组织设计的ANSII码&#xff0c;其实也属于字符集&#xff0c;这套字符集并未收录中文&#xff0c;只收录256个字符。 所以后期中国国家标准总局设…...

达梦数据库-学习-16-常用SQL记录(持续更新)

目录 一、环境信息 二、介绍 三、查询SQL 1、数据库的总使用空间大小 2、各个表空间的总大小 3、使用空间最大的50个对象 4、使用率最高的50个sequence 5、使用空间率最高的50个自增列 6、定位锁 7、支持HINT 8、表数据页使用率 9、备份文件相关信息 10、初始化库参…...

使用setTimeout模拟setInterval

const SECOND 1000 const MINUTE 60 * SECOND const HOUR 60 * MINUTE const DAY 24 * HOUR/*** description: 根据传入的毫秒值格式化为时间* param {*} time&#xff1a;毫秒值* returns&#xff1a;{days, hours, minutes, seconds, milliseconds}*/ function parseTime…...

Cesium实现鹰眼图和主地图联动

本文是vuets实现的&#xff0c;想要转为react,只需要修改以下几部分内容 1. 将 reactive 定义的数据直接改写为 let定义 2. 将 watch 监听的内容改成对应的监听写法 3. 将 ref 定义的字段改写为对应的写法 该模块实现的功能&#xff1a; 通过点击鹰眼图的某一位置&#xf…...

文件IO6(开机动画的显示原理/触摸屏的原理与应用)

开机动画的显示原理 ⦁ 基本原理 一般电子产品在开机之后都会加深用户印象&#xff0c;一般开机之后都会播放一段开机动画&#xff08;视频、GIF…&#xff09;&#xff0c;不管哪种采用形式&#xff0c;内部原理都是相同&#xff0c;都是利用人类的眼睛的视觉暂留效应实现的…...

Linux内核分页——线性地址结构

每个进程通过一个指针&#xff08;即进程的mm_struct→pgd&#xff09;指向其专属的页全局目录&#xff08;PGD&#xff09;&#xff0c;该目录本身存储在一个物理页框中。这个页框包含一个类型为pgd_t的数组&#xff0c;该类型是与架构相关的数据结构&#xff0c;定义在<as…...

每日算法-250411

这是我今天的 LeetCode 刷题记录和心得&#xff0c;主要涉及了二分查找的应用。 3143. 正方形中的最多点数 题目简述: 思路 本题的核心思路是 二分查找。 解题过程 为什么可以二分&#xff1f; 我们可以对正方形的半边长 len 进行二分。当正方形的半边长 len 越大时&…...

虚幻基础:碰撞帧运算

能帮到你的话&#xff0c;就给个赞吧 &#x1f618; 文章目录 碰撞碰撞盒线段检测 帧运算&#xff1a;每个程序流就是一帧的计算结果速度过快时(10000)&#xff0c;导致每帧移动过大(83)&#xff0c;从而导致碰撞盒错过而没有碰撞速度快的碰撞要用线段检测 碰撞 碰撞盒 线段检…...

AI反检测如何在TikTok养号中发挥关键作用?

在 TikTok 这个全球性的短视频平台上&#xff0c;账号的养成和管理成为了创作者和品牌不可忽视的一环。随着平台对内容和账号行为的监管越来越严格&#xff0c;传统的养号方法已经难以适应新的挑战。在这一背景下&#xff0c;AI 反检测技术应运而生&#xff0c;它通过模拟人类行…...

鸿蒙案例---生肖抽卡

案例源码&#xff1a; Zodiac_cards: 鸿蒙生肖抽奖卡片 效果演示 初始布局 1. Badge 角标组件 此处为语雀内容卡片&#xff0c;点击链接查看&#xff1a;https://www.yuque.com/kevin-nzthp/lvl039/rccg0o4pkp3v6nua 2. Grid 布局 // 定义接口 interface ImageCount {url:…...

【AI编程技术爆发:从辅助工具到生产力革命】

目录 前言&#xff1a;技术背景与价值当前技术痛点解决方案概述目标读者说明 一、技术原理剖析核心概念图解关键技术模块技术选型对比 二、实战演示环境配置要求核心代码实现运行结果验证 三、性能对比测试方法论量化数据对比&#xff08;2023年数据&#xff09;结果分析 四、最…...

【前后端】npm包mysql2的使用__nodejs mysql包升级版

不定期更新&#xff0c;建议关注收藏点赞。 目录 简介使用说明 还在用mysql包吗&#xff1f;已经过时啦&#xff01; 简介 mysql2 是一个用于 Node.js 的 MySQL 数据库驱动&#xff0c;它是 mysql 包的升级版&#xff0c;性能更好&#xff0c;支持 Promise 和 async/await&…...

基于LangChain的Native RAG简单样例

本文代码: Github 文章目录 1. 概述2. Native RAG 概述3. 实战&#xff1a;基于LangChain实现简单的Native RAG概述环境配置文档分割定义Embedding模型构建向量数据库与LLM交互 参考文献 1. 概述 众所周知&#xff0c; 大模型可以回答它知道的内容。但如果用户问的是它不知道…...

数据结构基础(2)

1.什么是算法&#xff1f; 算法&#xff1a;算法是解决特定问题求解步骤的描述&#xff0c;在计算机中表现为指令的有限序列&#xff0c;并且每条指令表示一个或多个操作。 算法定义中&#xff0c;提到了指令&#xff0c;指令能被人或机器等计算装置执行。它可以是计算机指令&a…...

慢查询解决思路

1. 复现问题 慢查询的出现是常态还是偶尔?是否在业务允许范围内? "不要过早优化,先 Make it work / right,再 Make it fast。" 建议先将查询语句及其触发条件记录下来,便于后续测试、分析和对比。 2. 定位问题 2.1 单机数据库: explain查询执行计划 数据库默…...

前端下载文件时浏览器右上角没有保存弹窗及显示进度,下载完之后才会显示保存弹窗的问题定位及解决方案

需求背景 在开发过程中会发现&#xff0c;有的时候下载后端返回的文件&#xff0c;浏览器右上角不会进行保存弹窗的弹出及下载进度&#xff0c;而是接口响应后文件下载完才会弹出保存并且没有进度条效果&#xff0c;这就导致在点击下载后用户是不知道文件下载到什么进度了&…...

Streamlit在测试领域中的应用:构建自动化测试报告生成器

引言 Streamlit 在开发大模型AI测试工具方面具有显著的重要性&#xff0c;尤其是在简化开发流程、增强交互性以及促进快速迭代等方面。以下是几个关键点&#xff0c;说明了 Streamlit 对于构建大模型AI测试工具的重要性&#xff1a; 1. 快速原型设计和迭代 对于大模型AI测试…...

IP组播技术与internet

1.MAC地址分为三类&#xff1a;广播地址&#xff1b;组播地址&#xff1b;单播地址 2.由一个源向一组主机发送信息的传输方式称为组播。 3.组播MAC地址&#xff0c;第一个字节的最后一位为1&#xff1b; 单播MAC地址&#xff0c;第一个字节的最后一位为0&#xff1b; 4.不能…...

[Java基础]StringBuilder解析

StringBuilder简单总结与源码预览。 之前写StringBuilder对象默认简写为sb&#xff0c;被说是骂人不让用了&#xff0c;现在写成strBuilder了。大家一般写什么呢 StringBuilder预留空间设计 已知Redis的String结构是通过预留空间的形式来避免频繁地分配空间。 那么Java中有没有…...

国内智能外呼系统市场概况及技术发展趋势

根据最新行业报告和用户评价&#xff0c;国内智能外呼系统市场呈现快速增长态势&#xff0c;预计2025年市场规模将达到180亿元人民币&#xff0c;年复合增长率约20%。主要驱动因素包括AI技术成熟、企业降本增效需求以及政策扶持&#xff08;如工信部《智能语音产业发展行动计划…...

小推桌面-一款全新的第三方电视桌面-全网通桌面

你是否渴望更高效、便捷地使用机顶盒桌面&#xff1f;小推桌面、乐看家桌面是绝佳之选&#xff01;它们的界面简洁&#xff0c;操作轻松上手&#xff0c;能快速找到所需应用&#xff0c;大大节省时间。 小推桌面支持个性化定制&#xff0c;可按个人喜好调整布局、添加组件&…...

SQL实战篇,数据库在Kooboo中的实际应用(一)

本文将结合实际操作与代码示例&#xff0c;展示SQL 在 Kooboo 中的实际应用 仅需两步&#xff1a;动态创建表 基础查询&#xff0c;无需复杂配置&#xff0c;快速上手&#xff01; 一、动态创建表&#xff1a;插入数据 Kooboo 支持多种数据库&#xff0c;以 SQLite 为例&…...

Matlab 调制信号和fft变换

1、内容简介 Matlab 194-调制信号和fft变换 可以交流、咨询、答疑 2、内容说明 略 3、仿真分析 略 4、参考论文 略...

2025年的Android NDK 快速开发入门

十年前写过一篇介绍NDK开发的文章《Android实战技巧之二十三&#xff1a;Android Studio的NDK开发》&#xff0c;今天看来已经发生了很多变化&#xff0c;NDK开发变得更加容易了。下面就写一篇当下NDK开发快速入门。 **原生开发套件 (NDK) **是一套工具&#xff0c;使开发者能…...

opensuse Tumbleweed虚拟机上安装

值得一提的是cpu需要给多一点核&#xff0c;不然压力都集中在一个点上温度会比较高&#xff0c;然后就是可能无法正常运行这个安装界面。 前面好像是半自动的&#xff0c;一直到这里选择桌面界面需要手动选择 这边必然选大蜥蜴的kde&#xff0c;那个蜥蜴菜单还是很好看的。 …...

AI避坑:AI生成的文件格式不一定对

今天就碰到了原来正确的文件&#xff0c;AI生成后文件变味UTF-8 BOM文件 导致MAUI解析出错An error occured while parsing Xaml: 根级别上的数据无效。 第 1 行&#xff0c;位置 1 解决方案&#xff1a; 将文件用文本编辑器打开&#xff0c;另存为UTF-8格式文件...

蓝桥杯真题-危险系数DF

抗日战争时期&#xff0c;冀中平原的地道战曾发挥重要作用。 地道的多个站点间有通道连接&#xff0c;形成了庞大的网络。但也有隐患&#xff0c;当敌人发现了某个站点后&#xff0c;其它站点间可能因此会失去联系。 我们来定义一个危险系数DF(x,y)&#xff1a; 对于两个站点x和…...

四、TorchRec的推理优化

四、TorchRec的推理优化 文章目录 四、TorchRec的推理优化前言一、TorchRec 推理优化的两个主要区别是二、TorchRec 提供了以下内容&#xff0c;以将 TorchRec 模型转换为可用于推理的模型总结 前言 推理环境与训练环境不同&#xff0c;它们对性能和模型大小非常敏感。 一、To…...

Linux 系统中从源码编译安装软件

以下是 Linux 系统中 从源码编译安装软件 的详细步骤和注意事项&#xff0c;帮助你掌握这一高级操作技能&#xff1a; 一、编译安装的核心流程 1. 下载源码包&#xff08;通常为 .tar.gz/.tar.bz2/.tar.xz&#xff09; 2. 解压源码包 3. 进入源码目录 4. 配置编译参数&#xf…...

【AI论文】OLMoTrace:将语言模型输出追溯到万亿个训练标记

摘要&#xff1a;我们提出了OLMoTrace&#xff0c;这是第一个将语言模型的输出实时追溯到其完整的、数万亿标记的训练数据的系统。 OLMoTrace在语言模型输出段和训练文本语料库中的文档之间找到并显示逐字匹配。 我们的系统由扩展版本的infini-gram&#xff08;Liu等人&#xf…...

BeautifulSoup 踩坑笔记:SVG 显示异常的真正原因

“这图是不是糊了&#xff1f;”以为是样式缺了&#xff1f;试试手动复制差异在哪&#xff1f;想用对比工具一探究竟……简单到不能再简单的代码&#xff0c;有问题吗&#xff1f;最后的真相&#xff1a;viewBox vs viewbox&#xff0c;preserveAspectRatio vs preserveaspectr…...

ai-warp 开源的Platformatic Stackable 与 AI 服务交互

一、软件介绍 文末提供程序和源码下载学习 ai-warp 开源的Platformatic Stackable 与 AI 服务交互 二、用法 npx create-platformaticlatestSelect Application, then platformatic/ai-warp 选择 Application&#xff08;应用程序 &#xff09;&#xff0c;然后选择 platfor…...

AI比人脑更强,因为被植入思维模型【53】反熵增思维模型

giszz的理解&#xff1a;熵用来形容系统的混乱程度。熵增就是从有序到无序&#xff0c;反熵增就是从无序到有序。其实阴阳二级&#xff0c;世界总是在变化之中。保持清醒的头脑&#xff0c;认识到当前是有序还是无序的&#xff0c;如何改变&#xff0c;让事物向着自己希望的方式…...

408 计算机网络 知识点记忆(8)

前言 本文基于王道考研课程与湖科大计算机网络课程教学内容&#xff0c;系统梳理核心知识记忆点和框架&#xff0c;既为个人复习沉淀思考&#xff0c;亦希望能与同行者互助共进。&#xff08;PS&#xff1a;后续将持续迭代优化细节&#xff09; 往期内容 408 计算机网络 知识…...

DDR管脚违例

管脚验证&#xff0c;出现上述违例 上述警告是IO电平配置存在冲突&#xff0c;主要原因是这里配置没有显示电平特性&#xff0c;那么vivado工具默认是生成IP的底层的代码中自带的XDC的电平&#xff0c;这个就冲突了。 出现这个的主要原因还是vivado某个版本工具存在漏洞&#x…...

25年河南事业单位报名详细流程图解

1.报名时间为2025年4月11日9∶00至4月17日17∶00&#xff1b; 2.网上缴费&#xff1a;2025年4月12日9:00至4月18日17:00&#xff1b; 3.打印准考证&#xff1a;2025年5月12日9∶00至5月18日14∶30&#xff1b; 4.笔试时间&#xff1a;2025年5月18日&#xff1b; 5.报名方式…...

一维差分数组

2.一维差分 - 蓝桥云课 问题描述 给定一个长度为 n 的序列 a。 再给定 m 组操作&#xff0c;每次操作给定 3 个正整数 l, r, d&#xff0c;表示对 a_{l} 到 a_{r} 中的所有数增加 d。 最终输出操作结束后的序列 a。 ​​Update​​: 由于评测机过快&#xff0c;n, m 于 20…...

Windows 录音格式为什么是 M4A?M4A 怎样转为 MP3 格式

M4A 格式凭借其高效的压缩技术和卓越的音质表现脱颖而出&#xff0c;成为了包括 Windows 在内的众多操作系统默认的录音格式选择。然而&#xff0c;尽管 M4A 格式拥有诸多优点&#xff0c;不同的应用场景有时需要将这些文件转换为其他格式以满足特定需求。 本文将探讨 M4A 格式…...

【KWDB 创作者计划】第一卷:基础架构篇

以下是KWDB技术白皮书第一卷&#xff1a;基础架构篇的完整内容展示&#xff0c;包含要求的三个核心章节的深度解析。我们将以技术严谨性结合可读性的方式呈现&#xff0c;实际交付时会进一步扩展示意图和代码示例。 目录 ​KWDB技术白皮书卷一&#xff1a;基础架构篇 ​1. 数…...

分享一些使用DeepSeek的实际案例

文章目录 前言职场办公领域生活领域学习教育领域商业领域技术开发领域 前言 以下是一些使用 DeepSeek 的实际案例&#xff1a; DeepSeek使用手册资源链接&#xff1a;https://pan.quark.cn/s/fa502d9eaee1 职场办公领域 行业竞品分析&#xff1a;刚入职的小李被领导要求一天内…...

华清远见成都中心嵌入式学习总结

一、Linux 基础入门 课程首先介绍了 Linux 系统的六大特性&#xff0c;包括开源、免费、可裁剪等核心优势。重点讲解了文件系统结构&#xff0c;强调根目录&#xff08;/&#xff09;作为唯一入口的树状结构。通过实操学习了 pwd、ls、cd 等基础命令&#xff0c;掌握了绝对路径…...

【13】数据结构之树结构篇章

目录标题 树Tree树的定义树的基本概念树的存储结构双亲表示法孩子表示法孩子兄弟表示法 二叉树二叉树与度不超过&#xff12;的普通树的不同之处二叉树的基本形态二叉树的分类二叉树的性质 二叉树的顺序存储二叉树的链式存储二叉树的链式存储的结点结构树的遍历先序遍历中序遍历…...