linuxcnc 源码解读01
sim 下面的源码
编译之后源码目录 bin 会多出文件
axis 是由tk/tcl 写的界面
gmoccapy 是gtk 写的界面
当安装好linuxcnc 之后,会在
/usr/share/linuxcnc 文件
这里边有界面 文件
gscreen2.glade
gscreen.glade
gscreen2.glade
gscreen.glade
是界面文件
用glade 打开 gscreen.glade
也是gtk界面也是可以二次开发的,
运行文件是python 文件
在/usr/bin 目录下面
这两个文件对界面二次开发有帮助,
配置文件,
主要文件是ini 初始化文件
hal 是对硬件操作的文件,
hal 有点类似电路图风格
tbl 也是文本内容,也是做配置用的,
源码编译好之后,lib 目录会出现之下文件
lib 之下是python 目录,这个目录是c/c++和python 交互
在submakefile 文件能看c/c++ 和python 相互连接
rs274ngc 是gcode读和写主要功能,
编译成gcode.so
pyhton 可以 直接引用gcode
gcodemodule.cc 这份文件就是rs274 gcode 解析器和python 交互模块
linuxcnc.so 的文件生成
emcmodule.cc 生成python 交互文件
动力学代码
rotarydeltakins.cc 和python 交互
int rtapi_app_main(void)
通过rtapi_app_main 可以单独运行, 通过命令可以运行里代码
总共有这几种动力学代码,corexy 如果做过3d 打印一看就知道这个跟机器结构设计有关的
每种机器都不同的结构,动力学和运动学都不一样。
motion.c是电机,,, 电机的运行,是通过gcode 解析,做插补,动力学,最后加减速,实现
RTAPI_MP_INT
RTAPI_MP_LONG
RTAPI_MP_ARRAY_STRING
这些都是可以通过命令行传参数的
最跑到rtapi_app_main 解析参数,实现功能代码,
从上面的代码,有些是传递 给了python 和自已生成库调用,有些是生成能和外部shell 交互的,代码流程比较难理解,也难读懂
机器配置文件 ini tbl 文件 读取代码, ini 和tooldata
机器运行主体界面之前有读取ini 和tbl 和hal 和界面文件和python 代码,但是gui 的python 代码文件是没有.py 的、、、
hal 是硬件交互的代码
classicadder 是软plc
大部分时间会花在驱动
这两个文件是树莓派的gpio 引脚 引出来,就是pin
hal_pi_gpio.c
参数传入
参数 dir 这个参数传入的是10进制,主要控制 gpio 输入还是输出的, exclude 是控制使能那个gpio 引脚 能使用
shell
打开一个终端
输入
halrun
然后输入
loadrt hal_pi_gpio dir=78855 exclude=32918520
dir exclude 是代码有关,可以参考代码,也可以看hal 文件,、
2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 (gpio1& 0 not used ) bcm 引脚 编号
0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 dir mask (0 means in 1 means out) dec 78855 //dec 78855 是10进制,由上面0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1=78855 ,0代表输入,1代表输出
0 1 1 1 1 1 0 1 1 0 0 1 0 0 1 0 1 1 1 1 1 1 1 0 0 0 exclude mask (0 means use 1 means dont use) //dec 32918520 10进制 也是二进制转成10进制
0代表使能 1代表不使用
如果不懂那个引脚可以查询,
更多推荐
所有评论(0)