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代表不使用
在这里插入图片描述
如果不懂那个引脚可以查询,

  • 5
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值