- 博客(90)
- 资源 (2)
- 收藏
- 关注
原创 Openwrt21.02应用日志全局开关控制
OpenWRT系统自定义应用日志全局开关控制方案 本文介绍了一种在OpenWRT系统上实现自定义应用日志全局开关控制的方法。通过开发Luci界面,用户可控制应用日志是否写入系统日志。系统日志、内核日志等核心日志不受影响。 实现步骤: 创建UCI配置文件定义日志开关和级别 开发日志管理模块,通过"猴子补丁"技术重写nixio.syslog函数 在系统启动时自动加载日志补丁 增加Luci控制页面,提供开关和日志级别设置 在文件下载功能中集成日志功能,实时检查全局开关状态 该方案实现了: 动态
2026-01-05 16:58:48
315
原创 Openwrt21.02实现文件列表展示并下载文件
本文介绍了在OpenWrt系统上实现文件列表展示和下载功能的Luci开发方法。采用MVC模式,通过创建controller模块注册页面路由和处理函数,实现文件列表获取和下载功能。关键点包括:1) 使用nixio.fs模块安全读取文件信息;2) 实现文件下载的安全检查机制防止目录遍历攻击;3) 采用分块读取方式提高大文件下载性能;4) 在view模板中正确引入自定义controller模块。该方案实现了在/tmp目录下展示文件列表并提供安全下载功能,可作为OpenWrt系统文件管理的基础模块。
2026-01-04 14:58:55
273
原创 Luci操作创龙(Tronlong)T113-i开发板PWM
本文介绍了在嵌入式系统中通过Linux sysfs接口控制PWM(脉宽调制)的详细步骤。首先展示了如何通过命令行直接操作PWM参数,包括导出PWM设备、设置周期和占空比、启用/禁用PWM等操作。然后提供了一个rpcd插件的实现方案,该插件能够接收JSON格式的PWM控制请求,并进行参数验证和PWM参数计算。特别值得注意的是,插件实现了智能的PWM参数更新策略,通过比较新旧周期比例来决定调整顺序,确保PWM信号平滑过渡。整个方案展示了从底层硬件操作到上层服务接口的完整PWM控制实现。
2025-12-22 15:12:19
192
原创 Luci操作创龙(Tronlong)T113-i开发板GPIO
本文介绍了在OpenWrt系统中实现T113 LED控制的完整流程。首先通过shell命令验证GPIO控制功能,然后创建rpcd插件脚本实现LED开关控制,并通过ubus接口提供远程调用能力。接着配置luci页面,使用JavaScript创建控制界面,最后设置rpcd权限控制确保安全访问。整个过程包括:1) GPIO基础测试;2) rpcd插件开发;3) ubus服务验证;4) Web界面开发;5) 权限配置。该方案实现了从底层硬件到Web界面的完整LED控制功能。
2025-12-22 15:08:56
362
原创 用LangChain1.0搭建第一个天气查询智能体
LangChain v1.0发布重大更新:精简架构提升开发效率 2025年10月发布的LangChain v1.0对框架进行了重大重构,将核心功能聚焦于Agent开发,迁移旧功能至langchain-classic包。新版带来三大优势:降低认知负担(模块数量减少)、安装体积缩减60%、运行效率提升。迁移只需简单替换导入路径即可。 文章以天气查询Agent为例,演示如何使用新版本: 基于本地qwen3:1.7b模型 通过百度地图天气API获取数据(需处理行政区划码) 使用SQLite存储地区数据优化查询 实现
2025-11-18 15:19:16
521
原创 pyenv-win更新最新的python安装库使其可以安装最新python版本
摘要:pyenv-win是Windows系统下的Python版本管理工具,通过克隆官方仓库并配置环境变量即可完成安装。文章详细介绍了安装步骤,包括源码拷贝、环境变量配置和版本验证。针对国内用户访问Python官方仓库速度慢的问题,提供了替换为国内镜像源(如阿里云、华为云)的解决方案,通过修改两个关键文件实现加速下载。最后验证通过pyenv install命令即可测试安装是否成功。
2025-11-10 15:51:46
501
原创 Windows10下用WSL2部署Dify1.9,并对接Ollama部署的通义千问qwen3
摘要: 本文介绍了如何在Windows10环境下通过WSL2部署开源LLM应用开发平台Dify 1.9.2,并解决因Windows与Ubuntu用户名不一致导致的PostgreSQL权限问题。通过将项目移至Ubuntu的home目录成功启动后,进一步指导如何将Dify与本地Ollama部署的离线模型对接,包括添加Ollama插件及配置模型参数(如模型名称、服务地址、类型和上下文长度)。文章为开发者提供了从环境搭建到AI模型集成的完整解决方案。
2025-11-06 15:02:54
1034
原创 Windows10下用WSL2部署Ollama同时用docker部署nginx开放外网访问
windows10下用wsl2部署Ollama同时用docker部署nginx开放外网访问,采用docker compose进行启动。
2025-11-04 19:02:55
611
原创 Mybatis-Plus开发问题汇总
本文介绍了SpringBoot项目中枚举类型的自动映射问题及解决方案。作者通过一个TypeEnum枚举类示例,展示了如何实现数据库存储为数值、前端返回为字符串的需求。使用@EnumValue和@JsonValue注解分别处理数据库存储和序列化,但发现Controller返回响应时仍显示枚举字面量而非预期文本。问题根源在于ResultDto使用了FastJson序列化覆盖了Jackson配置。解决方案是在枚举字段上添加@JSONField(serialzeFeatures = SerializerFeatur
2025-10-27 13:54:50
307
原创 感性认识PID中三个参数的作用
PID控制算法由比例(P)、积分(I)、微分(D)三部分组成,通过公式u(t)=k_p e(t)+k_i∫e(t)dt+k_d de(t)/dt实现控制。比例作用与误差成正比,但存在稳态误差;积分作用通过误差累积消除稳态误差,但易超调;微分作用抑制误差变化率,能有效减少超调。实际应用中采用离散化公式,三部分协同工作使系统快速稳定。以温控为例,比例积分可消除稳态误差但易震荡,加入微分后能显著改善响应速度和控制精度。
2025-07-03 11:24:05
1043
原创 工业PID算法在温控器的应用与参数说明
PID算法作为工业控制中的经典方法,具有结构简单、应用广泛的特点。其数学模型包含连续型和离散型两种形式,通过比例、积分、微分三个环节共同作用。实际应用中多采用比例带(δₚ)、积分时间(Tᵢ)、微分时间(T_d)等参数进行调整。离散型模型通过采样周期Δt实现误差的累计和差分计算,输出量由当前误差、历史误差积分及误差变化率共同决定。该算法体现了反馈控制的核心思想,是解决一般控制问题的有效工具。
2025-06-13 16:46:11
1014
原创 Error: L6200E: Symbol __stdout multiply defined 解决方案
摘要:在Keil嵌入式开发中,使用标准I/O函数(如printf/scanf)会导致与重定向的串口打印冲突。解决方法有两种:1)使用条件编译指令(如#define USE_PC_STDIO)选择性编译涉及标准I/O的代码;2)若确认不需要相关功能,可直接删除使用标准I/O的代码。这种方法既保留了代码的PC调试能力,又避免了嵌入式环境下的编译冲突。
2025-06-11 09:05:53
510
原创 C语言中清空缓存区到底写到哪里比较好
这篇文章讨论了C语言中scanf函数处理输入缓冲区时可能出现的问题。重点分析了%c格式符的特殊性:它会读取缓冲区中的空格、回车等字符,而%d则会跳过这些分隔符。文章通过一个报警程序示例展示了该问题导致循环异常执行的现象,并提出了两种解决方案:1)使用额外变量接收无用字符;2)清空输入缓冲区。最后指出方法二更为通用,但实现位置需要特别注意。文章还提到了使用getchar循环清空缓冲区的具体实现方式。
2025-05-27 11:09:34
910
原创 STM32基本定时器的启动和停止
本文介绍了在STM32F407ZGT6微控制器上实现LED灯闪烁报警功能的两种方法:轮询方式和中断方式。推荐使用中断方式,因其高效且易于与业务解耦。具体实现中,选择了基本定时器TIM6,通过定时器的更新中断控制LED灯的闪烁,并通过按键Key0和Key1分别实现报警的解除和再次触发。核心代码包括定时器的初始化、中断服务函数以及定时器的关闭操作。最终效果通过视频展示,验证了该方法的可行性和有效性。
2025-05-23 10:47:26
964
原创 使用正点原子STM32F407ZGT6探索者点亮LED数码管TM1650
我拿到的TM1650数码管是共阴极的,默认接地,只有拉高电平时,对应的码段才会点亮。通讯协议是IIC协议。IIC协议时序图如下:起始信号:在 SCL 为高电平期间, SDA 从高电平变成低电平, 表示起始信号;停止信号:在 SCL 为高电平期间, SDA 从低电平变成高电平, 表示停止信号;写 “1”:保持 SDA 为 “1”,SCL 从 “0” 跳到 “1”,再从 “1” 跳到 “0”;写 “0”:保持 SDA 为 “0”,SCL 从 “0” 跳到 “1”,再从 “1” 跳到 “0”;
2025-04-25 17:30:13
1107
原创 免费使用DeepSeek 617B(满血版)R1大模型搭建联网聊天助手
在腾讯云大模型知识引擎平台,可以创建应用,选择指定的模型,我们就选择DeepSeek R1,然后其余设置保持默认,直接发布,就可以用API的方式进行调用接口。,可以使用腾讯云大模型知识引擎(LLM Knowledge Engine),进行产品体验,新用户有50万token的免费额度,对于日常应用足够了。我们选择JS版本即可,默认提供的版本是不带思维过程的,需要自己进行修改,可喜的是,我们已经修改好了,提供给大家,地址是。DeepSeek作为最快流行的工具(7天破亿用户),使用者众多,所以经常会遇到使用时,
2025-02-19 10:54:27
892
原创 Pygame官方示例跑不通问题解决
Pygame是一个第三方的Python模块,用于游戏开发,支持跨平台(PC、平板、手机)、跨系统(Windows、Linux、Mac),底层基于DSL。
2025-01-17 09:17:25
1197
原创 使用VSCode搭建Ruby on Rails集成开发环境
在windows平台下开发Ruby on Rails,之前使用的IDE是Rubymine,但是发现激活码失效了,于是怀着折腾的心思在VSCode上搭建一下Ruby on Rails集成开发环境,后来搭建好了之后,发现使用起来非常不错,体验不输Rubymine,果断记录一下自己的折腾过程,也给后来者福音。Ruby插件(Shopify公司出品,就是推出YJIT的那个公司),附带两个插件Ruby LSP和Ruby Sorbet(这个插件暂时用不到,可以先装上)下载上面我们提到的插件后,配置基本采用默认就可以了。
2025-01-13 15:51:41
1268
原创 CentOS7下安装Ruby3.2.4的实施路径
安装完成后在 /etc/yum.repos.d 目录下会出现 CentOS-SCLo-scl.repo 和 CentOS-SCLo-scl-rh.repo 两个文件,安装后源默认启用,但是坑也就是在这里被埋下了。是一个linux下的Ruby的多版本管理工具,可以维护多个Ruby版本,切换版本。对于开发Ruby应用程序比较友好。还有个优点就是不需要。修改此部分的baseurl为阿里云源。修改此部分的baseurl为阿里云源。查看RVM使用的当前Ruby版本。,对于国内用户友好。
2024-09-13 13:38:14
1576
1
原创 CTF之MISC题目-简单流量
这是一道关于网络数据包分析的题目,主要是wireshark工具的使用和发现代码、理解代码。同时要了解Linux 的 Shell脚本。
2022-12-30 21:15:27
12052
3
原创 CTF之MISC题目-西游记
CTF中关于MISC(杂项)的题目通常都比较有意思,很考察思维的发散性。下面的这道题就是需要灵活的思考,涉及暴力破解、编码、手动处理文本等多种手段。
2022-12-30 11:06:44
9021
原创 CTF之密码学题目-classical && coding
在CTF比赛中,有关密码学的问题,都是考察思路和工具使用,还有具备良好的编码能力。本篇文章主要讲的是一个关于多种编码和字频解密的内容。
2022-12-28 21:16:54
3356
原创 NodeJS中的UDP通信
UDP通信,适用于实时性要求高的场景,一般作为流媒体应用、语音交流、视频会议所使用的传输层协议,还有许多基于互联网的电话服务使用的VOIP(基于IP的语音)也是基于UDP运行的,实时视频和音频流协议旨在处理偶尔丢失的数据包,因此,如果重新传输丢失的数据包,则只会发生质量略有下降,而不是出现较大的延迟。UDP优点:简单,轻量。UDP缺点:没有流控制,没有应答确认机制,不能解决丢包、重发、错序问题。下面我们使用nodejs16来实现一个简单的UDP通信。客户端运行效果服务端......
2022-07-13 11:03:14
10210
3
原创 理解webpack5文档中的require.cache
引言webpack是基于nodejs开发的一个文件打包工具,在其5.X版本的文档中讲到模块缓存。多处引用同一模块,最终只会产生一次模块执行和一次导出。所以,会在运行时(runtime)中会保存一份缓存。删除此缓存,则会产生新的模块执行和新的导出。 里面有个例子引起了我的注意,代码如下:var d1 = require('dependency');require('dependency') === d1; //truedelete require.cache[require.resolve('depe
2022-05-06 12:10:13
1159
原创 全屏或者退出全屏检测
引言在做监控视频时,一个很重要需求就是视频全屏以及退出。下面就讲讲用JavaScript来检测全屏以及退出。全屏实现全屏有一套Web API已经为我们准备好,见这里,不过有时我们在使用第三方Web SDK时,可能已经提供,比如海康威视、大华、宇视等。但是第三方其实也是基于Web API的二次封装而已,所以本质还是要了解的。export const clickFullScreen = () => { const objElement = document.querySelector('.par
2022-04-26 17:53:26
1551
1
原创 自建gitlab-runner
有时我们的项目依赖内部的CI/CD工具gitlab-ci,但是内部的CI工具处于信息安全的考虑,可能会对互联网的包仓库比如npm,限制访问,只能访问内部的自建仓库。但是我们为了利用互联网的包仓库,就可以通过自建gitlab-runner来实现。自建gitlab-runner在官方文档中有详细的描述,我们可以选择最简单的方式,在UI页面上,在所在项目下点击左侧 setting > CI/CD,在展示页面里展开Runner选项,然后在展开里面点击,如下图所示。然后点击“Show runner ins
2022-04-15 13:56:18
1268
原创 @parcel/transformer-js: Browser scripts cannot have imports or exports报错问题解决
Openlayer6.x Example在本地报错报错如标题所示:@parcel/transformer-js: Browser scripts cannot have imports or exports官方答案见这里解决问题其实parcel2.x版本对浏览器本身做了兼容,现在大部分浏览器都已经原生支持es6语法,只需在<script>标签中加入type="module"即可,以官方simple map为例:<html lang="en"> <head>
2022-04-12 22:10:20
2339
原创 卡尔曼滤波
卡尔曼滤波(kalman filter)算法模型卡尔曼滤波器用于估计离散时间过程的状态变量x∈Rnx\in R^nx∈Rn ,这个离散时间过程由以下离散随机差分方程描述:xk=Axk−1+Buk+wk(1)\tag{1} x_k = Ax_{k-1} + Bu_k + w_kxk=Axk−1+Buk+wk(1)其中 xkx_kxk 表示 kkk 时刻的真实状态值,uku_kuk 表示 kkk 时刻的控制值,wkw_kwk 为过程噪声。定义观测变量z∈Rmz \in R^mz∈R
2021-08-26 11:08:37
235
原创 SSMS连接SqlServer报错18456的解决之道
前置设置我们需要新建一个test用户,设置密码为123456,便于后续用“Sql Server身份验证”连接所以我们需要先用“Windows身份验证模式”连接后,新增登录名,设置密码,如下图所示右键“登录名”,可以新增登录名test,密码设置为123456,如下图所示:设置好之后,点击“确定”即可。报错发生安装SqlServer时,一般默认是“Windows身份验证模式”,所以安装好之后,一般只能通过“Windows身份验证模式”来连接数据库,用“Sql Server身份验证模式”连接会报错,
2021-07-21 20:43:28
4923
1
原创 Fetching submodule xxx(模块名) git@gitee.com: Permission denied (publickey).
git 子模块我们需要在git 仓库中引入另一个git仓库,同时保持这两个仓库各自独立提交和拉取,这就是git子模块可以解决的问题。添加子模块在一个主项目中,添加子模块(一个git仓库),如下:git submodule add git地址/https地址 目录名$ git submodule add git@gitee.com:fredricen/flask-client.git client添加完要提交$ git commit -am "add submodule client"提交
2021-06-30 10:09:22
1064
原创 JupyterLab 执行代码无响应的解决办法
描述有时我们会遇到通过Anaconda.Navigator打开JupyterLab,输入python脚本,执行(shift+enter)时,会出现无响应,或者没有返回执行结果。这个时候打开Jupyter Notebook,会发现一直显示"Kernal starting, please wait…",并最终会出现弹窗"Dead kernal"。解决问题受Stack Overflow的启发,采用命令行方式启动Jupyter Notebook,并采用debug模式:(base) C:\Users\Admi
2021-06-28 13:28:19
4430
原创 flask+vue实现简单的Web应用
简介flask是python在web开发上的一个比较轻量的开发框架,vue是前端视图库,是一个MVVM框架。flask+vue可以实现快速的现代web应用开发,这里我们以简单的读写配置文件为例,做一个示例。项目用到的开发基座有:python 3.8.8flask 1.1.2flask-cors 3.0.10vue 2.6.12vue-cli 4.5.13element-ui 2.15.2...
2021-06-28 13:01:17
27584
2
原创 Python3.8操作RabbitMQ入门
1. 安装RabbitMQ由于项目需求,采用了windows server 2012,所以我们这里描述一下windows下安装步骤:用管理员权限打开PowerShell;输入并运行:Set-ExecutionPolicy AllSigned;输入并运行:Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePo
2021-06-10 13:42:15
419
1
原创 vue2.x中过滤器和方法函数使用场景浅析
过滤器在vue2.x中允许自定义过滤器,可被用于一些常见的文本格式化。过滤器可以用在两个地方:双花括号插值和 v-bind 表达式 (后者从 2.1.0+ 开始支持)。过滤器应该被添加在 JavaScript 表达式的尾部,由“管道”符号指示:<!-- 在双花括号中 -->{{ message | capitalize }}<!-- 在 `v-bind` 中 --><div v-bind:id="rawId | formatId"></div>
2021-04-30 15:05:55
402
原创 3D离线地图的两种实现方式
引言我们一般都是在线地图,比如百度、高德、腾讯地图用的多,在线地图API也非常方便调用,并且可以利用在线地图强大的地图服务,比如路径规划等功能,但是有些特殊的项目需要在内网环境下展示地图,而且是3D地图。这就要求我们能够在离线情况下,实现对3D地图的展示。基石实现离线地图的基础,是地图瓦片的获取,我们需要先有离线的地图瓦片或者地图的合成文件(.tif)。所以依据输入的不同,我们有不同的实现。如果是离线的地图瓦片,我们可以直接利用,至于为啥,我们后面会有说明。如果是离线的地图合成文件(.tif),我们需
2021-03-22 14:45:38
4311
Oracle Spatial空间信息管理(英文原版)
2014-11-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅