- 博客(741)
- 资源 (4)
- 收藏
- 关注
原创 OpenWRT源码下载
git clone git://github.com/openwrt/openwrt.gitgit clone -b chaos_calmer git://github.com/openwrt/openwrt.gitgit clone -b barrier_breaker git://github.com/openwrt/openwrt.gitgit clone -b attitude_adjustment git://github.com/openwrt/openwrt.gitgit clone -b l
2025-12-25 18:31:07
327
原创 UPnP-Device Architecture
UPnP(Universal Plug and Play)技术是一种屏蔽各种数字设备的硬件和操作系统的通信协议。它是一种数字网络中间件技术,建立在TCP/IP、HTTP协议之上,采用XML来描述设备和控制信息。
2025-12-08 09:37:19
534
原创 UPnP-AVTransport
AVTransport服务是UPnP架构中用于控制音视频流传输的标准服务,兼容UPnP 1.0版本。该服务定义了传输控制的核心状态变量,包括传输状态(TransportState)、播放/录制介质类型(Playback/RecordStorageMedium)、播放模式(CurrentPlayMode)和传输速率(TransportPlaySpeed)等。服务支持对CD播放器、录像机等多种媒体设备的控制,最小实现可支持调谐器功能。状态变量分为必需(R)、可选(O)和未定义(X)三类,设备厂商可根据功能支持情
2025-12-06 19:23:30
920
原创 UPnP-RenderingControl
UPnP渲染控制服务(RenderingControl:1)规范摘要 该服务定义了UPnP设备架构1.0中用于控制音视频渲染属性的标准接口。主要功能包括: 支持查询和调整亮度、对比度、音量等渲染属性 通过InstanceID参数区分多路输入内容(0表示混合输出) 提供预设功能(PresetNameList)快速恢复特定配置 采用LastChange状态变量集中管理事件通知 定义22个标准状态变量(如Brightness、Contrast等)及其数据类型 服务不支持播放控制、内容枚举或设备间内容传输功能。
2025-12-06 18:29:27
544
原创 C++基于jsoncpp开源库json数据操作
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人类阅读和编写,同时便于机器解析和生成。它基于ECMAScript的子集设计,独立于编程语言,广泛应用于Web开发、API通信、配置文件等领域。对象(Object):无序键值对集合,用{}包裹,键为双引号字符串,值可为字符串、数字、布尔值、数组、对象或null。数组(Array):有序值集合,用[]包裹,元素可为任意类型。物联网与移动应用:设备状态传输、用户信息存储等。Json::Value 主要方法。
2025-12-03 20:19:39
862
原创 开源 C 标准库(C Library)
在嵌入式系统、Linux 发行版或资源受限环境中,开源 C 标准库(C Library) 是构建用户空间程序的基础。它们实现了 ISO C 标准(如 malloc, printf, fopen 等)以及 POSIX/Linux 特有接口(如 pthread, socket, dlopen 等)。💡 建议使用 偶数版本(如 2.38、2.40),通常更稳定;• musl:轻量、安全、静态友好,是现代嵌入式/容器首选。• 不要混用 C 库:工具链、目标系统、运行时必须一致。⚙️ 配置与编译(交叉编译示例)
2025-12-02 15:17:15
997
原创 ARM Linux 交叉编译工具链(toolchain)
这些前缀用于区分本地编译器(如 x86_64 的 gcc)和目标平台的编译器。或从 Linaro、ARM 官方工具链 下载预编译版本。
2025-12-02 13:51:48
671
1
原创 C++不同版本特性差异
C++ 自 1998 年首次标准化以来,经历了多次重大更新。每个新标准都引入了语言特性和标准库的增强,显著提升了开发效率、性能和安全性。
2025-12-02 11:33:20
911
原创 C语言不同版本特性差异
C语言自1972年诞生以来,经历了多个标准版本。主要的版本差异如下:K&R C(1978):由Brian Kernighan和Dennis Ritchie在《The C Programming Language》一书中描述,被认为是C语言的第一个标准。函数定义中参数列表和类型分开声明,例如:int foo(a, b) int a;int b;{ … }不支持函数原型,函数声明中没有参数类型。没有void类型,使用int表示无返回值。预处理功能较弱。
2025-12-02 10:03:58
711
原创 UPnP MediaRenderer(媒体渲染)基础知识
upmpdcli 基于 libupnpp(作者自研的 C++ UPnP 库)实现这些服务。
2025-11-25 09:46:19
887
原创 Linux开发常用命令
sudo ldconfig -p | grep upnp # 输出libupnp相关信息。$ whereis libupnpp.so # 查找libupnpp.so动态库所在位置。$ xxd -l 1024 <文件名> # 以16进制查看 文件 开头1024字节数据。sudo kill <进程ID> # 杀掉指定PID的进程。$ sudo ldconfig -p # 输出当前信息。$ whereis ls # 查找ls命令位置。$ ln -s <现有文件> <软链接名>查找库文件是否有指定的内容。
2025-11-22 15:36:27
553
原创 Ubuntu MPD播放器及其相关插件编译安装
测试音频1:http://downsc.chinaz.net/Files/DownLoad/sound1/201906/11582.mp3。测试音频2:http://downsc.chinaz.net/files/download/sound1/201206/1638.mp3。$ sudo meson install -C builddir # 默认安装到/usr/local/$ ./configure --disable-samples # 禁止编译samples模块。用户手册(稳定版本stable)
2025-11-20 18:14:43
796
原创 构建编译系统-meson.build
添加编译参数# 定义预处理器宏# 在源码中包含 config.h 即可使用 #define VERSION "1.0.0"
2025-11-19 18:36:01
1080
原创 构建编译系统-GNU Autotools
官网手册Autotools 是一套功能强大的构建系统工具集,用于自动生成软件项目的构建脚本,解决跨平台兼容性问题。它广泛用于开源项目的开发,特别是在 Linux 和类 Unix 系统中。包括 autoconf、automake、libtool 等命令,由perl语言环境和m4等组成,其主要任务是帮助开发者生成可移植的 configure 脚本和 Makefile 文件,使软件能够在不同的硬件和操作系统环境中顺利编译、安装和运行。
2025-11-18 14:05:05
583
原创 openwrt源码编译环境搭建-安装Luci
OpenWrt是一个基于Linux内核的开源嵌入式操作系统,专为路由器和嵌入式设备设计,具有高度模块化、可定制性和丰富的网络功能。可写文件系统:采用OverlayFS与SquashFS/JFFS2结合,支持软件包自由扩展,无需重新编译固件。路由器:支持IPv6、动态防火墙、多WAN口等高级功能,适用于家用或企业级网络。开源协议:遵循GPL协议,代码基于Linux内核、BusyBox等开源项目。嵌入式设备:广泛用于工控、智能家居、VOIP设备等,提供定制化开发环境。配置开启uhttpd。
2025-11-15 16:41:27
1031
原创 Ubuntu24.04搭建GitLab服务器
为了更高的安全性,建议配置SSL证书启用HTTPS。你可以从Let’s Encrypt获取免费证书,或者使用自己的商业证书。配置需要在/etc/gitlab/gitlab.rb中修改external_url为https://,并配置证书路径。如果在安装配置过程中遇到具体问题,例如端口冲突或邮件发送失败,可以随时提问,我会尽力提供更详细的排错指导。注意:一定要带’http://’ 或安全访问’https://’ 需要安装认证证书。备份文件默认存储在/var/opt/gitlab/backups/目录。
2025-11-15 11:35:01
1699
1
原创 Linux开源代码汇总
MPD Player(Music Player Daemon)是一个开源的音乐播放服务器,支持多种音频格式,可通过网络协议控制,常用于嵌入式系统或家庭自动化场景。
2025-11-11 16:58:55
411
原创 基于RT-Thread Studio的STM32F103开发
本文介绍了基于RT-Thread Studio开发STM32F103的流程。首先提供了RT-Thread官网和文档的链接,指导下载安装RT-Thread Studio。详细说明了创建项目的步骤,包括配置选项设置和项目资源管理窗口找回方法。接着介绍了编译和下载固件的操作步骤,以及通过串口工具或IDE终端查看运行效果。最后展示了添加GPIO控制代码后LED灯周期性闪烁的运行效果。整个过程图文并茂,为开发者提供了完整的STM32开发指南。
2025-11-01 14:25:42
264
原创 TP-LINK TL-WR740N硬改刷机OpenWRT没成功
打开breed下载链接,选择有ar9331的bin文件,本例下载"breed-ar9331-wr710n_wr720n.bin" 和"breed-ar9331.bin"都可以使用。将烧录完成的Norflash焊接到板子,连接好串口(串口设置:115200,8,11N)日后兴致来了在下载openwrt源码编译个固件试试!编程器烧录breed-ar9331.bin。固件是跑起来了,但貌似不能正常工作!
2025-09-30 11:44:14
967
原创 ubuntu24.04 实现DLNA音频推送
手机和ubuntu主机连接到同一个网络,运行$gmediarender -f "My Renderer"手机QQ音乐即可通过设备投放到“My Renderer”设备播放,此时手机QQ音乐播放的音频会投放到ubuntu设备上播放。
2025-09-28 15:39:12
534
原创 RaspberryPi 4B RPi库编程
本文介绍了Raspberry Pi 4B的GPIO编程基础,重点讲解了RPi.GPIO模块的使用方法。主要内容包括:1) 树莓派4B的引脚图及编号方式(BOARD/BCM);2) RPi.GPIO模块的基本函数和属性,如GPIO模式设置、输入输出控制、PWM功能等;3) 提供了GPIO输出控制LED、输入检测按键以及PWM调光等实用代码示例。文章还详细说明了模块的异常处理、引脚初始化、事件检测等高级功能,并强调使用后需调用cleanup()释放资源。这些内容为树莓派GPIO开发提供了全面的参考指南。
2025-09-11 20:05:59
975
原创 ESP32异常现象处理
当电源电压下降到该阈值以下时,BOD会触发,导致ESP32复位,以防止因电压过低而导致的损坏或不稳定运行。增加电容滤波:在ESP32的电源引脚附近增加适当的电容滤波电路,可以平滑电源电压的波动,减少BOD被触发的可能性。电源容量不足:如果电源提供的电流不足以满足ESP32及其外围设备的需求,特别是在高负载情况下,电压可能会下降。电源电压不稳定:如果ESP32的供电电压波动较大,或者电源质量较差,可能会导致电压低于BOD的阈值。更换电源:如果电源质量较差或容量不足,考虑更换更高质量或更大容量的电源。
2025-09-02 14:44:21
850
原创 RaspberryPi 4B 安装中文输入法
本文详细介绍在树莓派4B上安装中文输入法的完整步骤:1)更新系统软件包;2)安装中文字体(推荐文泉驿正黑);3)安装Fcitx框架及中文输入引擎(Google拼音等);4)配置关键环境变量;5)设置默认输入法;6)重启系统;7)图形界面配置输入法;8)使用说明及快捷键设置。重点解决中文显示乱码、输入法切换冲突等问题,最终实现树莓派中文输入功能,适用于远程桌面等使用场景。
2025-08-30 18:21:33
894
原创 WPF应用程序DataGrid数据表格
本文介绍了在WPF中使用MVVM模式实现DataGrid数据绑定的方法。主要内容包括:1)创建Person数据模型类,实现INotifyPropertyChanged接口以支持属性变更通知;2)构建MainViewModel视图模型类,包含ObservableCollection集合用于存储数据和SelectedPerson属性;3)在XAML中配置DataGrid控件,绑定到视图模型的数据源并设置各列绑定。通过这种分层架构,实现了数据与UI的松耦合,支持增删改查操作,并具有良好的可维护性。
2025-08-27 14:46:57
489
原创 WPF基于LiveCharts2图形库,实现:折线图,柱状图,饼状图
文章摘要: 本文介绍了在WPF中使用LiveCharts2图形库实现数据可视化的方法。主要内容包括:创建工程、安装LiveCharts2库,以及实现三种图表视图类。通过ChartBaseViewModel作为基类,派生出折线图(LineChartViewModel)和柱状图(BarChartViewModel)视图类,实现了随机数据生成、动态更新、数据清除等功能。折线图支持平滑度设置,柱状图包含坐标轴配置和标签显示。文章提供了完整的代码实现,展示了如何通过MVVM模式在WPF中集成LiveCharts2图表
2025-08-26 15:57:04
1346
原创 树莓派系统安装
写入时间因所选操作系统文件大小和存储设备读写速度不同有所差异,一般要等一段时间。选择好树莓派设备、操作系统、存储设备点击下一步开始烧写制作启动盘。当前最新版本1.9.4:双击运行一路Next直达安装完成。选择需要的操作系统及版本。
2025-07-16 10:10:03
470
原创 C51 KEIL使用使用问题处理
本文总结了C51 KEIL开发中常见问题的处理方法:1)数值格式化问题,提供uint8_t和uint16_t类型变量的正确打印格式;2)使用REMOVEUNUSED编译选项优化代码空间;3)设置代码SIZE防止占用用户数据区;4)解决模块命名冲突的L7警告。这些技巧有助于提高开发效率,确保代码正确性和空间利用率。(99字)
2025-06-11 18:46:51
498
原创 Windows VS Code Remote-SSH无法通过ssh远程连接
摘要 VSCode连接远程主机失败,提示"远程主机不满足运行VSCode服务器先决条件",原因是服务器端glibc版本过低。解决方法: 完全卸载VSCode(包括插件、用户数据); 删除Ubuntu服务器上的.vscode-server目录; 安装旧版本VSCode v1.96; 设置关闭自动更新,防止版本升级后再次出现兼容性问题。 (98字)
2025-05-28 09:59:55
1001
原创 C# WPF .NET Core和.NET5之后引用System.Windows.Forms的解决方案
本文介绍了如何在.NET项目中添加“Microsoft.WindowsDesktop.App.WindowsForms”引用。首先,双击项目名称打开工程文件(.csporj),然后在项目文件中添加相应的引用代码。具体步骤包括在<ItemGroup>标签内插入<FrameworkReference Include="Microsoft.WindowsDesktop.App.WindowsForms" />,并确保项目配置正确,如<OutputType>设
2025-05-17 15:34:00
878
原创 STC32G12K128程序大于64KB使用128KB用户EEPROM设置
STC32G12K128微控制器提供了灵活的EEPROM设置选项,以优化程序存储空间。当程序固件超过64KB时,用户可以通过调整EEPROM空间来扩展程序区,从而有效利用内部存储资源。这一特性使得开发者能够根据具体应用需求,动态分配存储空间,确保程序的顺利运行和数据的可靠存储。通过合理配置EEPROM,STC32G12K128能够支持更大规模的应用程序,提升系统性能和灵活性。
2025-05-10 10:43:46
642
原创 STC32G12K128-旋转编码器-软件去抖
本文介绍了如何使用STC32G12K128单片机对EC11旋转编码器进行软件去抖和解码。EC11旋转编码器通过A、B、C三个引脚实现旋转检测,D、E引脚用于按键功能。旋转时,A、B引脚的电平变化可以判断旋转方向。解码原理基于A相下降沿触发中断,通过延时去抖后判断B相电平,低电平表示顺时针旋转,高电平表示逆时针旋转。文章提供了详细的代码实现,包括初始化、中断处理和旋转方向判断,确保在不同速度下均能正确解码旋转方向。
2025-05-09 20:03:58
1147
原创 F5-TTS本地部署
注意:第一次启动界面时需要从huggingface下载模型,如果没有科学上网环境可能会报错提示无法访问huggingface.co。(推荐指定虚拟环境目录,默认一般是是创建到anaconda安装目录下的envs文件夹下)启动Gradio Web界面。
2025-04-16 12:04:46
1335
原创 Anaconda笔记
下载Anaconda本文下载:Anaconda3-2024.10-1-Windows-x86_64.exe建议不要安装到C盘,我的安装到D:Anaconda目录。
2025-04-15 17:16:00
975
C# WPF编程实现串口通信燃气报警器历史记录读取
2024-09-06
PyQt5 qtpandas 1.0.4库文件安装包
2022-12-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅