- 博客(88)
- 收藏
- 关注
原创 MFC对话框添加菜单栏
2.资源视图——右击**.rc——添加资源——Menu——新建——图形化界面编辑。1.解决方案资源管理器——资源文件——**.rc双击(转至资源视图)
2025-07-03 11:10:53
170
原创 MFC制作动态波形图( ChartCtrl)
首先第一步,创建工程,这里我简单制作一个界面,主要用于展示效果,并将 ChartCtrl 所有的源码添加进工程当中。这里我们添加自定义控件“CustomCtrl”,并修改 style、class、ID 值。先在 xxDlg.h 中引入头文件路径。
2025-06-26 15:52:17
289
原创 设备管理-Udev(一)
配置使用udev通常涉及创建和编辑udev规则,这些规则定义了设备在系统中行为。在使用udev之前,了解一些基本概念,例如subsystem、KERNEL、ACTION等。替换/sys/path/to/device为实际设备的路径。对udev的配置更改可能会影响设备的命名和系统的行为,因此在进行更改之前,请确保了解其影响。目录下,有一些默认的udev规则文件。可通过创建新的规则文件或编辑已有的规则文件来定义udev规则。规则文件的命名约定是以。可以根据自己的需求添加其他规则。
2025-06-13 19:05:26
943
原创 Ubuntu18.04安装ros
Ubuntu18.04对应的ros版本为:Melodic,安装时要注意(Ubuntu20.04安装ros只需要将下列终端命令中的所有 Melodic 改为 noetic,因为Ubuntu20.04对应的Ros版本为 noetic)
2025-05-22 16:03:04
611
原创 GStreamer (四)交叉编译
编译Gstreamer需要依赖其他的链接库,比如:zlib,libffi,libxml,orc,x264,glib,gettext,openssl。路径:gst-build/subprojects/glib/meson_options.txt。pkg_config_libdir为交叉编译工具链pkgconfig路径。编译成功后会有如下信息。
2025-05-21 20:15:11
790
原创 meson(一)安装使用
通过 --prefix 可以指定项目安装的根目录。然后在编译和安装后,所有生成的文件都会安装在 /home/user/custom_install 路径下的相应目录中。
2025-05-21 17:53:17
950
原创 GStreamer (三)常⽤插件
服务端测试2:同样使用v4l2src,但输入的是JPEG格式的图像,通过解码后再转换成NV12格式,并进行H.264编码,然后通过rtph264pay封装成RTP数据包,最后使用udpsink将数据推送到指定的地址(127.0.0.1:1234)。接收端,命令通过udpsrc从指定的端口(1234)接收RTP数据流,使用rtph264depay解封装RTP数据,接着通过decodebin解码视频流,最后将解码后的视频输出到自动选择的视频窗口(autovideosink)。
2025-05-19 19:02:32
1290
原创 GStreamer (二)常⽤命令
gst-play-1.0是GStreamer的一个简单媒体播放器工具,旨在快速播放音频和视频文件。gst-inspect-1.0 是 GStreamer 的一个工具,用于查看 GStreamer 中可用的插件、元素和它们的属性。通过这个工具,用户可以获取有关特定插件的信息,例如支持的格式、属性、信号和功能。gst-launch-1.0是GStreamer框架中的一个命令行工具,用于快速创建和测试多媒体管道。它允许用户构建数据流管道,以处理音频和视频数据,进行实时流处理、编码、解码、转码等操作。
2025-05-19 18:40:39
279
原创 EtherCAT(四) 从站XML文件描述
XML Device描述里没有包含关于TxPDO(发送过程数据对象)和RxPDO(接收过程数据对象)的固定配置信息,因为从站采用了动态分配的策略。这一做法的目的是为了适应从站设备可能工作在不同模式下的灵活性。对于同一个从站设备,例如本从站,它支持多电机控制,但并非所有情况下都需要传输所有电机的过程数据。Id = 0xE00004D8,Name=XXXXX,ImageData16x14是一张图片信息,TwinCAT读取XML文件后,会用该图片当做标志。Fmmu:Fmmu的使用情况。
2025-02-19 16:32:07
1145
原创 EtherCAT(一)
EtherCAT(Ethernet for Control Automation Technology)是一种高性能、实时的工业以太网通信协议。它被广泛应用于自动化、控制和工业设备之间的数据传输,尤其是在需要快速响应和高精度的场合。
2024-12-20 16:37:43
1719
原创 Linux udev介绍使用
有些发行版本,比如Fedora,采用了外部脚本来修改某些特定设备的属组,组关系和权限。假设修改floppy设备的所在组,还准备创建一个信的符号连接/dev/floppy,下面可能有好几个udev规则文件,这些文件一部分是udev包安装的,另外一部分则是可能是别的硬件或者软件包生成的。下创建一个信的规则文件。确定你给出的文件的后缀是rules文件名给出的数字序列应该比 标准配置文件高。RUN:设备插入后去执行哪个程序%k是传入这个程序的参数,这里%k=KERNEL的值也就是sda1等。
2024-12-19 19:56:02
1094
原创 libdrm(一)交叉编译移植
库放到我们根文件系统对应的库文件存放目录即可,注意软链接,最好压缩成包的形式拷贝到系统中,再解压后复制,使用。将include和lib文件夹移植到自己的项目中,并且在Makefile中添加路径即可使用DRM库。编译完成之后,会在install目录下生成三个文件夹。将build目录下的。
2024-12-12 18:25:33
1195
原创 linuxCNC(五)HAL驱动的指令介绍
从终端进入到HAL命令行,执行halrun,即可进入halcmd命令行。LinuxCNC关于HAL的指导链接。
2024-12-07 19:58:34
655
原创 VSCode(四)CMake调试
例: “program”: “${workspaceFolder}/bin/test_cmake”,项目文件内会自动创建“CMakeLists.txt” 和 “main.cpp”修改“launch.json”的“program”的参数为要调试的程序。在“CMakeLists.txt”中添加增加bin文件的指定输出目录。按钮,选择“(gdb) Launch”,点击左侧的。,开始debug程序。
2024-12-07 15:55:50
1150
原创 VSCode(三)C++编译、调试
tasks.json的作用是告诉VSCode如何编译程序在本文中是调用g++编译器从cpp源代码创建一个可执行文件从tasks.json的"command其中,${file}:当前活动文件(就是vscode当前查看的文件),这里是hello.cpp${fileDirname}/${fileBasenameNoExtension}:在这里就是当前目录下的hello在 tasks.json 中调用 g++ 生成一个可执行二进制文件。
2024-12-07 12:04:12
1184
原创 linuxCNC(四)G代码
代码描述G0坐标运动,以快速速度进行。G1坐标运动,以进给速度进行。G2、G3以进给速度进行协调螺旋运动。G4停顿。G5三次样条插值。G5.1二次B样条。G5.2NURBS,添加控制点。G7直径模式(车床)。G8半径模式(车床)。G10 L0重新加载刀具表数据。G10 L1设置刀具表条目。G10 L10设置刀具表,计算的,工件。G10 L11设置刀具表,计算的,夹具。G10 L2
2024-11-27 16:06:06
666
原创 python(三)GUI Tkinter
另外,这个文本中的一个字母可以有下划线,例如标明一个快捷键。Text是tkinter类中提供的的一个多行文本区域,显示多行文本,可用来收集(或显示)用户输入的文字(类似 HTML 中的 textarea),格式化文本显示,允许你用不同的样式和属性来显示和编辑文本,同时支持内嵌图象和窗口。编写一个用户登录界面,用户可以登录账户信息,如果账户已经存在,可以直接登录,登录名或者登录密码输入错误会提示,如果账户不存在,提示用户注册,点击注册进去注册页面,输入注册信息,确定后便可以返回登录界面进行登录。
2024-11-25 15:24:48
714
原创 python(二)关键字
关键字描述and逻辑与运算符。or逻辑或运算符。not逻辑非运算符。True表示真值。False表示假值。None表示空值或无。if用于条件语句。elif用在条件语句中,表示“否定的else”(如果条件不满足,则执行此分支)。else用在条件语句中,表示当条件不满足时执行的块。as用于别名和导入模块。assert用于调试目的,测试一个条件是否为真。class用于定义类。def用于定义函数。
2024-11-25 14:38:25
181
原创 linuxCNC(一)目录结构
主要位于 scripts 目录下。linuxcnc: 该脚本用于启动 LinuxCNC 系统,可以通过命令行参数指定配置文件和其他选项。realtime: 该脚本用于配置和启用实时内核,以确保 LinuxCNC 系统的实时性能。sim: 该脚本用于启动模拟模式,允许用户在没有实际硬件的情况下测试和开发。配置文件主要位于 etc 和 ini 目录下。rs274ngc: 该文件包含 G-code 解释器的配置参数,如坐标系、速度和加速度等。
2024-11-15 11:39:22
490
原创 Ubuntu20.04 安装build-essential问题
安装 aptitude,参考给出的solution选一个合适的。给出的第一个方案如果没有安装build-essential,继续输入no直到出现安装build-essential的方案。
2024-11-08 16:05:58
563
原创 GNU构建系统和Autotool
经常使用Linux的开发人员或者运维人员,可能对configure->make->make install相当熟悉。事实上,这叫GNU构建系统,利用脚本和make程序在特定平台上构建软件。这种方式成为一种习惯,被广泛使用。本文从用户视角和开发者视角详细说明,这种构建方式的细节,以及开发者如何利用autoconf和automake等工具(autotools)创建兼容GNU构建系统的项目。为了简化可移植构建的难度,在早期有一套autotools工具帮助程序员构建软件。
2024-11-08 10:49:05
1374
原创 Linux内核配置机制
内核配置系统由以下三个部分组成:(1)Makefile:分布在内核源代码根目录及各层目录中,定义了内核编译的规则;(2)配置文件:一般在/kernel/arch/$ARCH/configs中,/kernel/arch目录下的每个架构都有对应的默认配置文件;(3)配置工具:包括配置命令解释器(对配置脚本中使用的配置命令进行解析)、配置用户界面(字符界面、Ncurses图形界面、Xwindows图形界面,各自对应make config、make menuconfig、make xconfig)
2024-10-24 11:12:38
890
原创 CMake的使用(二)
如果只给出了一个 loop_var,那么它将一系列的 loop_var_N变量来存储对应列表中的当前项,也就是说 loop_var_0 对应第一个列表,loop_var_1 对应第二个列表,以此类推…在这个例子中关于列表数据的添加是通过list来实现的。在上面的例子中,遍历过程中将关键字LISTS改成了ITEMS,后边跟的还是一个或者多个列表,只不过此时需要通过${}将列表中的值取出。loop_var:存储每次循环取出的值,可以根据要遍历的列表的数量指定多个变量,用于存储对应的列表当前取出的那个值。
2024-10-22 16:13:02
1186
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人