- 博客(1913)
- 资源 (19)
- 问答 (2)
- 收藏
- 关注
原创 【华为 OD】 字符串拼接(Pyhon/Java/JS/C/C++)
字符数量 ( M ) 满足 ( 0 < M \leq 30 )),从中选取字符(每个字符只能使用一次)拼接成长度为 ( N )(满足 ( 0 < N \leq 5 ))的字符串。要求拼接的字符串中,相同的字符不能相邻。计算给定的字符列表能拼接出多少种满足条件的字符串。我们需要从给定的字符列表中选取字符,生成长度为 ( N ) 的字符串,且相邻字符不能相同。所有实现均通过回溯算法生成满足条件的字符串,时间复杂度为 ( O(M^N) ),适用于题目中的最大数据规模。给定一个字符列表(字符范围为。
2025-03-06 17:30:40
28
原创 【华为 OD】 发广播(Pyhon/Java/JS/C/C++)
广播的传播规则是:如果一个站点收到广播,它会将广播发送给所有与之连接的站点。现在需要发送一条广播,问最少需要初始发送给多少个广播站,才能确保所有广播站都收到消息。可以将广播站视为图中的节点,连接关系视为边。问题转化为:在图中找到最少的节点集合,使得这些节点能够覆盖整个图的所有连通分量。某地有 ( N ) 个广播站,站点之间通过连接互相发送广播。给定一个 ( N \times N ) 的二维矩阵。所有实现均通过DFS找到连通分量,时间复杂度为 ( O(N^2) ),适用于题目中的最大数据规模。
2025-03-06 15:46:21
35
原创 【华为 OD】工单调度策略(Pyhon/Java/JS)
华为工单调度系统需要调度外线工程师(FME)处理工单。每个工单有一个SLA时间(完成修复的最长时间)和一个积分值。如果在SLA时间内完成工单,则获得对应的积分;否则不获得积分,但必须完成该工单。目标是设计一种调度策略,使得外线工程师在完成所有工单的情况下,获得的总积分最大。所有实现均通过贪心算法确保获得最大积分,时间复杂度为 ( O(N \log N) ),适用于题目中的最大数据规模。我们需要在有限的时间内(SLA时间)选择积分最大的工单进行处理。
2025-03-06 15:38:26
28
原创 【华为 OD】最优资源分配(JS)
芯片容量:每块芯片的容量为M × 1.25G,资源编号为1, 2, …, M。配置类型A:占用1.25G(1 个资源)。B:占用2.5G(2 个资源)。C:占用10G(8 个资源)。分配规则按芯片编号从小到大分配资源。如果某个配置超过芯片剩余容量,则丢弃该配置。输出:输出每块芯片的资源占用情况,占用标记为1,未占用标记为0。
2025-03-06 15:32:22
27
原创 【华为 OD】最优资源分配(Java)
芯片容量:每块芯片的容量为M × 1.25G,资源编号为1, 2, …, M。配置类型A:占用1.25G(1 个资源)。B:占用2.5G(2 个资源)。C:占用10G(8 个资源)。分配规则按芯片编号从小到大分配资源。如果某个配置超过芯片剩余容量,则丢弃该配置。输出:输出每块芯片的资源占用情况,占用标记为1,未占用标记为0。
2025-03-06 15:26:57
21
原创 【华为 OD】最优资源分配(python)
芯片容量:每块芯片的容量为M × 1.25G,资源编号为1, 2, …, M。配置类型A:占用1.25G(1 个资源)。B:占用2.5G(2 个资源)。C:占用10G(8 个资源)。分配规则按芯片编号从小到大分配资源。如果某个配置超过芯片剩余容量,则丢弃该配置。输出:输出每块芯片的资源占用情况,占用标记为1,未占用标记为0。
2025-03-06 15:17:45
19
原创 【ubuntu】解决 ubuntu 与 windows 文件拖拽复制功能实现(亲测有效)
【代码】【ubuntu】解决 ubuntu 与 windows 文件拖拽复制功能实现(亲测有效)
2025-02-06 15:54:21
290
原创 【nRF】第6篇 GPIO 配置
在这种方法中,一旦引脚的状态发生变化,硬件就会通知CPU。这是读取输入引脚的推荐方法,因为它使 CPU 免于重复轮询引脚状态的负担。从性能和功耗的角度来看,这通常不是最佳的,因为它需要 CPU 的持续关注。要读取引脚的当前状态,所需要做的就是调用该函数。是一种设备树的别名获取方式,通常与设备树中的节点定义一致。是该节点的 GPIO 引脚配置,它告诉系统如何配置和控制与 LED 相关的 GPIO 引脚。读取配置为输入的引脚并不像写入配置为输出的引脚那么简单。只能在配置为输入的 GPIO 引脚上配置中断。
2025-01-24 15:07:37
45
原创 【nRF】第5篇 添加构建配置参数介绍
在第3步选择模板时,你将看到至少一个基础应用程序配置文件prj.conf。prj.conf如果模板中包含多个配置文件,它们的具体说明会在模板的文档中找到。以blinky模板为例,它只有一个配置文件选项。这个配置选项相当于在west中的(以及CONF_FILE。
2025-01-24 09:26:53
35
原创 【ESP32-S3】第19篇 LCD的 MCU 接口和 SPI 接口详解
当D/CX信号拉低时,接口上的输入数据被认为是command地址信息。当D/CX信号拉高时,接口上的数据是SRAM数据或command 参数信息。当D/CX信号拉低时,接口上的输入数据被认为是command地址信息。目前最常用的连接模式,主要用于单片机领域里,因此得名MCU接口,现在很多中低端的手机,或手表有在使用,价格较为便宜。当然还有其他接口,比如LVDS接口、DSI接口、EDP接口、RGB接口、MIPI接口等,其中很多接口并不常用,有些安排下篇文章分享,所以在这里就不在详述。
2025-01-17 13:49:51
234
原创 【nRF】第0篇 在 ubuntu 上安装 nRF Connect SDK (vscode)
Zephyr系统是Linux基金会维护的一个项目,除了一个基本的Zephyr RTOS之外,还有很多方便的第三方软件库,像是MCUBoot、TCP/UDP/MQTT/TLS等网络库等等。nRF Connect SDK是Nordic最新的SDK平台,该平台支持Nordic所有产品线的所有技术,包括BLE,AoA,NFC,蜂窝网与GPS,Wi-Fi,2.4G,蓝牙Mesh,Zigbee,Thread,Matter, Homekit, FindMy等。通过网盘分享的文件:v2.7.0.tar.gz。
2025-01-16 13:56:46
92
原创 【ESP32-S3】第18篇 配置工程常用命令
这样做会导致在每个终端会话中都激活 IDF 虚拟环境(包括无需使用 ESP-IDF 的会话)。这违背了使用虚拟环境的目的,还可能影响其他软件的使用。运行以上命令可以编译应用程序和所有 ESP-IDF 组件,接着生成引导加载程序、分区表和应用程序二进制文件。此时,就可以在启动日志和诊断日志之后,看到打印的 “Hello world!ESP-IDF 支持擦除 flash。现在,请将 ESP32-S3 开发板连接到 PC,并查看开发板使用的串口。擦除 flash 需要一段时间,在擦除过程中,请勿断开设备连接。
2025-01-07 11:27:11
108
原创 【ESP32-S3】第17篇 ESP 系列芯片和模组
ESP32-S3-DevKitM-1 是一款入门级开发板,搭载的是 Wi-Fi+蓝牙 LE 模组 ESP32-S3-MINI-1 或 ESP32-S3-MINI-1U,该款模组因小尺寸而得名。通常能够加速产品的上市速度,因为预先集成了无线功能(如Wi-Fi、蓝牙)并具备相关认证。: ESP32-S3-DevKitM-1 是一款入门级开发板,可以用来烧录和体验 IDF 中的 examples。ESP32-S3-DevKitM-1 - ESP32-S3 - — esp-dev-kits latest 文档。
2024-12-23 16:03:14
139
原创 【C语言】14:ec:6a:50:7b:58 字符串拆分并存入 uint8_t arr[6] 中
可以使用sscanf()函数来解析这些 16 进制数字并存入数组。
2024-11-15 15:27:24
95
原创 【ESP32】第15篇 OTA(Over-The-Air)升级
OTA 功能启动后,向当前未用于启动的 OTA 应用分区写入新的应用固件镜像。要运行 OTA 机制,需配置设备的分区表,该分区表至少包括两个 OTA 应用程序分区(即 OTA0 和 OTA1)和一个 OTA 数据分区。步骤 3:固件升级成功,OTA Data 分区已更新,并指示 OTA 1 现在是活动分区。下次启动时,固件将从此分区启动。步骤 0:OTA 0 为活动固件,该信息储存在 OTA Data 分区(如图所示)。步骤 1:固件升级开始,识别并擦除非活动分区,新的固件将写入 OTA 1 分区。
2024-11-01 14:22:06
353
原创 【ESP32】第14篇 ESP-Bluedroid 接口说明
esp_err_t esp_ble_gattc_open(esp_gatt_if_t gattc_if, esp_bd_addr_t remote_bda, esp_ble_addr_type_t remote_addr_type, bool is_direct):打开连接。esp_err_t esp_ble_gap_read_rssi(esp_bd_addr_t remote_addr):读取RSSI信号强度,结果通过 ESP_GAP_BLE_READ_RSSI_COMPLETE_EVT 事件触发返回。
2024-11-01 14:11:25
121
原创 【ESP32】第13篇 ESP-NimBLE 实用技巧与案例
conn_handle, 连接句柄,用于确定访问哪一个 GATT 服务器;cb,自定义的收到响应时调用回调函数,主服务发现回调函数;cb_arg, 自定义的回调函数参数。
2024-11-01 14:09:52
517
原创 【ESP32】第12篇 Bluetooth LE 协议软件架构
应用层即以 Bluetooth LE 为底层通信技术所构建的应用,依赖于主机层向上提供的 API 接口。
2024-11-01 13:39:23
70
原创 【ESP32】第11篇 解决***ERROR*** A stack overflow in task Tmr Svc has been detected.
A stack overflow in task Tmr Svc has been detected” 这个错误消息表示 FreeRTOS 的定时器服务任务(Timer Service Task)发生了堆栈溢出。定时器服务任务的堆栈大小可能设置得不够大。如果你在定时器的回调函数中执行了复杂的操作,使用了大量的局部变量或递归调用,这可能会导致堆栈溢出。虽然错误提示是关于定时器服务任务,但其他任务如果使用了过多的堆栈,也可能间接影响到定时器服务任务。
2024-11-01 11:01:04
331
原创 【ESP32】第10篇 GATT 客户端多连接示例演练(一主多从)
本文档介绍了 ESP32 的多连接 BLE GATT 客户端示例。在此实现中,单个 ESP32 作为 GATT 客户端同时连接到三个不同的 GATT 服务器。此设置说明了 ESP32 设备的用例,该设备以某种方式运行,以便从不同的 BLE 传感器接收数据。IDF为每个BLE服务创建一个单独的配置文件,应用配置文件以ID号单独定义。
2024-10-25 10:23:50
135
原创 【ESP32】第9篇 认识蓝牙 GATT 协议
ATT 的全称是属性协议 (Attribute Protocol, ATT),定义了一种称为属性 (Attribute) 的基本数据结构,以及基于服务器/客户端架构的数据访问方式。GATT 的全称是通用属性规范 (Generic Attribute Profile),在 ATT 的基础上,定义了以下三个概念特征数据 (Characteristic)服务 (Service)规范 (Profile)特征数据和服务都是以属性为基本数据结构的复合数据结构。一个特征数据往往由两个以上的属性描述,包括。
2024-10-24 15:02:15
108
原创 【ESP32】第8篇 使用 OpenSSL 生成 RSA 密钥对并对固件进行签名
使用 OpenSSL 生成 RSA 密钥对并对固件进行签名的过程可以分为几个步骤。以下是详细的说明,包括生成密钥对、对固件进行签名以及验证签名的步骤。
2024-10-17 14:54:44
162
原创 【ESP32】第7篇 使用 app_update 组件提供的原生API 升级 OTA
【ESP32】第7篇 使用 app_update 组件提供的原生API 升级 OTA。
2024-10-15 13:34:18
127
原创 【ESP32】第6篇 要使用 Python 的 http.server 模块构建一个 HTTPS 服务器
要使用 Python 的模块构建一个 HTTPS 服务器,需要使用ssl模块为 HTTP 服务器添加 SSL/TLS 支持。
2024-10-14 11:31:23
123
原创 【ESP32】第5篇 提供的日志信息分析ESP32成功连接到了Wi-Fi网络
从你提供的日志信息来看,ESP32成功连接到了Wi-Fi网络。通过这些信息,你可以确认ESP32已经正常连接到Wi-Fi网络,并获得了有效的IP地址。设备成功获取到IPv4地址(192.168.118.75),子网掩码和网关信息。日志显示设备状态从初始化状态变为认证、关联,然后进入运行状态。成功连接到Wi-Fi网络,并显示了相关信息如信道和BSSID。设备检测到密码长度符合WPA2标准,自动调整连接模式。设备开始尝试连接到名为“fjf”的Wi-Fi网络。设备也成功获取到一个链接本地的IPv6地址。
2024-10-14 11:13:42
186
原创 【ESP32】第4篇 OTA 流程概览 与 OTA 数据分区
工厂启动设置下,OTA 数据分区中应没有数据(所有字节擦写成 0xFF)。如果分区表中没有工厂应用程序,则启动第一个可用的 OTA 分区(通常是。OTA 数据分区的容量是 2 个 flash 扇区的大小(0x2000 字节),防止写入时电源故障引发问题。OTA 功能启动后,向当前未用于启动的 OTA 应用分区写入新的应用固件镜像。镜像验证后,OTA 数据分区更新,指定在下一次启动时使用该镜像。第一次 OTA 升级后,OTA 数据分区更新,指定下一次启动哪个 OTA 应用程序分区。
2024-10-14 09:49:15
192
原创 【ESP32】第3篇 Single factory app, no OTA 与 Factory app, two OTA definitions 的含义
分区表中定义了三个应用程序分区,这三个分区的类型都被设置为 “app”,但具体 app 类型不同。其中,位于 0x10000 偏移地址处的为出厂应用程序 (factory),其余两个为 OTA 应用程序(ota_0,ota_1)。新增了一个名为 “otadata” 的数据分区,用于保存 OTA 升级时需要的数据。flash 的 0x10000 (64 KB) 偏移地址处存放一个标记为 "factory" 的二进制应用程序,且启动加载器将默认加载这个应用程序。
2024-10-14 09:42:43
365
原创 【ESP32】第2篇 ESP32分区表概述
分区表的长度为 0xC00 字节,最多可以保存 95 条分区表条目。MD5 校验和附加在分区表之后,用于在运行时验证分区表的完整性。每片 ESP32 的 flash 可以包含多个应用程序,以及多种不同类型的数据(例如校准数据、文件系统数据、参数存储数据等)。分区表中的每个条目都包括以下几个部分:Name(标签)、Type(app、data 等)、SubType 以及在 flash 中的偏移量(分区的加载地址)。在以上两种选项中,出厂应用程序均将被烧录至 flash 的 0x10000 偏移地址处。
2024-10-14 09:35:30
275
原创 【ESP32】第1篇 设置 idf.py 为全局命令
要确保的 alias 在每个新的终端会话中有效,可以将其添加到。注意:要使用自己电脑esp-idf目录。
2024-10-14 09:07:52
220
原创 【Qt】QTabWidget 中使用 removeTab() 方法时,索引会随标签页的移除而发生变化
在QTabWidget中使用方法时,索引会随标签页的移除而发生变化。这意味着当从QTabWidget中移除某些标签页后,后续标签页的索引也会被调整。因此,如果先移除索引为 1 的标签页,原本索引为 2 的标签页将会变为索引 1。
2024-10-10 09:37:24
219
原创 【Modbus】01 10 00 00 00 0A 14 00 01 00 02 00 03 00 04 00 05 00 06 00 00 00 00 00 00 00 00 9B 8B
该数据包是一个写多个寄存器的请求,主站向从站地址为 1 的设备写入了 10 个寄存器的值,从寄存器 0 开始,每个寄存器的值依次为 1 到 6(其他寄存器的值为 0)。
2024-09-26 14:26:11
281
原创 【Modbus】modbus中的线圈与寄存器的区别与联系
Modbus 协议中,线圈(Coils)和寄存器(Registers)是两种不同的数据类型,它们在功能和使用上有一些显著的区别和联系。
2024-09-26 14:22:27
1707
原创 【Modbus】公共功能码定义(示例演示)
从站地址 - 功能码 - 起始地址 - 寄存器数量 - CRC 校验码 - 从站地址 - 功能码 - 字节计数 - 数据部分 - CRC 校验码。
2024-09-26 13:40:16
442
原创 【Modbus】Modbus 概述
Modbus是一种广泛使用的通信协议,主要用于工业自动化和控制系统中。它由 Modicon(现为施耐德电气的一部分)在 1979 年开发,最初用于其可编程逻辑控制器(PLC)。由于其简单性和开放性,Modbus 已成为不同设备之间通信的事实标准。Modbus 是一款功能强大且灵活的通信协议,凭借其简单性和广泛的应用,在工业自动化领域占据了重要地位。无论是在新系统的设计还是旧系统的升级中,Modbus 都是一个可靠的选择。
2024-09-26 10:24:51
492
原创 行为型设计模式—模板方法模式
模板方法模式是一种行为型设计模式,它定义了一个操作的骨架,而将一些步骤延迟到子类中实现。通过这种方式,模板方法允许子类在不改变操作整体结构的情况下重新定义某些特定步骤。
2024-09-20 11:17:49
212
原创 【ubuntu】scp命令使用
r:递归复制整个目录。-P:指定 SSH 端口(注意是大写的-P-p:保留文件的修改时间、访问时间和权限。-q:静默模式,不显示传输进度。-v:详细模式,显示调试信息。
2024-09-10 16:22:37
899
1
原创 行为型设计模式—观察者模式(Observer Pattern)
观察者模式(Observer Pattern)是一种行为型设计模式,用于建立一种一对多的依赖关系,以便当一个对象的状态发生变化时,所有依赖于它的对象都会得到通知并自动更新。这个模式通常用于实现发布-订阅系统。:客户端代码创建了一个具体主题和两个具体观察者,将观察者注册到主题中,并在主题状态变化时通知观察者。最后,它演示了如何从主题中注销观察者。接口,并维护一个观察者列表。它在状态改变时会通知所有观察者。方法,用于管理观察者列表和通知观察者。接口,并在接收到更新时进行处理。方法,用于接收主题的更新。
2024-09-10 15:58:31
314
nRF52840DK-DW3-QM33-SDK-UCI-FreeRTOS-0-1-1
2024-05-31
C语言源码及文档系统编程
2024-05-31
使用PSO的固定特征选择
2023-12-27
使用SA和ACO的固定特征选择
2023-12-27
使用GA的二进制特征选择
2023-12-27
数据处理分组法 (GMDH) 在 MATLAB 中的实现
2023-12-27
使用遗传算法和粒子群算法实现训练ANFIS
2023-12-27
在 MATLAB 和 Simulink 中实现 PID 控制器模糊增益调度
2023-12-27
使用ANFIS的非线性回归
2023-12-27
二进制遗传算法python实现
2023-12-27
实数编码遗传算法(Real-coded Genetic Algorithm)
2023-12-27
二进制遗传算法(Binary Genetic Algorithm)
2023-12-27
使用SPEA2进行投资组合优化(圣诞节)
2023-12-27
使用NSGA-II的投资组合优化
2023-12-27
使用ICA的投资组合优化
2023-12-27
使用PSO的投资组合优化
2023-12-27
使用经典方法进行投资组合优化
2023-12-27
校园帮项目,毕业设计/课程设计/javaWeb/SSM
2023-03-26
最接近原生APP体验的高性能前端框架(电商)
2023-03-26
基于AdaBoost算法的情感分析研究
2023-03-26
灰色预测模型 GM(1,1)
2023-03-26
基于matlab程序的各种回归、分类算法实现
2023-03-26
各行各业程序员简历模板列表
2023-03-26
微慕WordpPress小程序开源版 前端
2023-03-26
Python教程大全入门到实战
2023-03-26
学生宿舍管理系统(SSM/Layui框架)
2023-03-26
数据分析,数据分析是单验的一个重要部分,主要是对外场测试的 LOG 进行分析,撰 写单验报告等。 本章将介绍后台分析软件的使用。
2022-04-03
一个基站单验,一般包含以下几种业务: ATTACH(附着)、 DETACH(去附着)、 上传、下载、 ping、 DT 路测等。
2022-04-03
单验常用软件介绍,通常需要用到的软件有 CDS 软件
2022-04-03
单站验证概述通信网络由众多基站组成, 这些基站在初始建立完成
2022-04-03
TE预认证录像拍摄指导书
2022-04-03
基站是移动通信中组成蜂窝小区的基本单元,主要完成移动通信网和移动通信用户之间的通信和管理功能,从狭义上就可以把基站理解成一种无线
2022-04-03
根据LTE站点双工方式的不同,对TDD和FDD站点配置进行分类介绍。
2022-04-03
LTE基站类型根据不同的划分方式,有不同的分类。根据基站覆盖的环境和模型不同,可以分为宏站和室分站;根据LTE采用的双工方式不同
2022-04-03
LTE基站概述,基站不是孤立存在的,它仅仅属于网络架构中的一部分,它是连接移动通信网和用户终端的桥梁。
2022-04-03
C语言之趣味游戏项目设计.rar
2022-03-17
本地redis客户端订阅EdgeX中的消息总线获取数据(没有成功获取数据)
2022-04-11
怎样给Qlist容器赋初始化值?
2021-11-30
TA创建的收藏夹 TA关注的收藏夹
TA关注的人