GRBL分析:gcode解释器(二)

本文详细介绍了GCode解释器中的关键函数gc_execute_line,该函数负责G代码的解析,将接收到的G代码转化为内部结构进行处理。内容包括函数功能描述、参数说明、返回值解释及部分G代码处理流程。通过对G00、G01、G02和$J=G21G91等命令的解析流程描述,揭示了函数内部的工作原理。

GCode解释器 - gc_execute_line函数解析

更新记录

2021-8-23
  • 添加函数功能描述
2021-8-24
  • 添加简单的流程绘制

函数功能描述

函数原型

uint8_t gc_execute_line(char *line);
参数 char* line
  • 在 protocol.c 文件的 protocol_main_loop 函数中,主循环内部会处理串口接收到的字符串,将接收的字符串进行过滤处理后,得到的是G代码则会在循环中调用 gc_execute_line 函数进行G代码的解析。
  • line指针指向的为 protocol.c 中声明的数组,该数组存储的为从串口中提取的有效数据信息。
static char line[LINE_BUFFER_SIZE]; // Line to be executed. Zero-terminated.
返回值

返回该条G代码的处理结果
在 report.h 文件中定义了相关的返回结果

定义宏返回值描述
STATUS_OK0G代码处理完成,无错误
STATUS_EXPECTED_COMMAND_LETTER1G代码中出现了非法字符
STATUS_BAD_NUMBER_FORMAT2数值格式无效或缺少预期值
STATUS_INVALID_STATEMENT3无法识别或支持 Grbl ‘$’ 系统命令
STATUS_NEGATIVE_VALUE4收到的预期正值的负值
STATUS_SETTING_DISABLED5
STATUS_SETTING_STEP_PULSE_MIN6
STATUS_SETTING_READ_FAIL7EEPROM 读取失败。重置并恢复为默认值
STATUS_IDLE_ERROR8
STATUS_SYSTEM_GC_LOCK9
STATUS_SOFT_LIMIT_ERROR10
STATUS_OVERFLOW11
STATUS_MAX_STEP_RATE_EXCEEDED12
STATUS_CHECK_DOOR13
STATUS_LINE_LENGTH_EXCEEDED14
STATUS_TRAVEL_EXCEEDED15
STATUS_INVALID_JOG_COMMAND16
STATUS_SETTING_DISABLED_LASER17
STATUS_GCODE_UNSUPPORTED_COMMAND20
STATUS_GCODE_MODAL_GROUP_VIOLATION21
STATUS_GCODE_UNDEFINED_FEED_RATE22
STATUS_GCODE_COMMAND_VALUE_NOT_INTEGER23
STATUS_GCODE_AXIS_COMMAND_CONFLICT24
STATUS_GCODE_WORD_REPEATED25
STATUS_GCODE_NO_AXIS_WORDS26
STATUS_GCODE_INVALID_LINE_NUMBER27
STATUS_GCODE_VALUE_WORD_MISSING28
STATUS_GCODE_UNSUPPORTED_COORD_SYS29
STATUS_GCODE_G53_INVALID_MOTION_MODE30
STATUS_GCODE_AXIS_WORDS_EXIST31
STATUS_GCODE_NO_AXIS_WORDS_IN_PLANE32
STATUS_GCODE_INVALID_TARGET33
STATUS_GCODE_ARC_RADIUS_ERROR34
STATUS_GCODE_NO_OFFSETS_IN_PLANE35
STATUS_GCODE_UNUSED_WORDS36
STATUS_GCODE_G43_DYNAMIC_AXIS_ERROR37
STATUS_GCODE_MAX_VALUE_EXCEEDED38

函数功能

  • 该函数会处理G代码,将G代码转化为一个 gc_block 结构,之后再将 gc_block 交给后面的结构进行处理。
  • 该函数仅负责G代码的解析,仅提取G代码中的数据,形成相关结构,不会对数据进行任何的处理。

内部处理流程

由于对部分G代码不是特别清楚,该部分仅描述G00,G01,G02,$J=G21G91 四种命令的处理流程

在这里插入图片描述

为了查找与测绘遥感相关的SCI期刊列表,可以通过学术搜索引擎或访问特定的数据库来获得最新的信息。通常这些资源会定期更新以反映最新收录情况。 些常用的搜索方式包括: 查阅Web of Science (WOS) 数据库 这是最直接的方法之,因为Science Citation Index(SCI)正是由该数据库维护。可以在其中设置关键词为"remote sensing", "surveying and mapping" 或者更具体的主题术语,并选择仅显示被SCI索引的文章和期刊。 利用Google Scholar 虽然不是专门针对SCI期刊,但可以找到很多高影响力的测绘遥感类文章及其发表刊物的信息。从这里也可以了解到哪些是活跃且受认可的研究领域内的出版物。 参考Journal Citation Reports (JCR) 这是个评估科学和技术期刊影响力的重要工具。通过查看影响因子和其他指标,可以帮助确定哪些测绘遥感领域的期刊最具权威性并且属于SCI范畴。 咨询图书馆员或专业人士 大学或研究机构的专业人员能够提供指导和支持,帮助定位最适合需求的具体期刊名称及详情。 订阅行业通讯和服务 某些服务如Elsevier's Scopus也会报告关于各个学科顶级期刊的消息,保持关注可以获得及时的通知。 以下是几个知名的测绘遥感相关SCI期刊的例子: - Remote Sensing of Environment - IEEE Transactions on Geoscience and Remote Sensing - ISPRS Journal of Photogrammetry and Remote Sensing - International Journal of Applied Earth Observation and Geoinformation 请注意,实际的SCI期刊名单可能会随着时间而变化,因此建议总是使用最新的在线资源来进行确认。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值