如果您的机器需要某些特殊功能,Grbl_ESP32 中有一些钩子可以为您的机器调用自定义函数。您需要编写这些函数。Atari 1020 机器就是一个很好的例子。请参阅现有源代码文件中的参考(atari_1020.h 和 atari_1020.cpp)。
注意:如果您使用包含自定义文件夹中文件的机器定义,则必须使用PlatformIO进行编译。
您应该为您的机器创建一个自定义的 .h 和 .cpp 文件,例如 atari_1020.h 和 atari_1020.cpp。将 .h 文件放在Machines 文件夹中,将 .cpp 文件放在Custom 文件夹中。在 cpu_map.h 中的 cpu_map 定义中放置一个包含文件,例如 #include “atari_1020.h”。尝试仅使用这两个文件完成所有操作。
如果您的机器需要一些初始设置,例如定义一些 I/O 或启动后台任务,您可以在头文件中放入#define USE_MACHINE_INIT。它将调用您必须提供的函数void machine_init() 。
如果正常归位对您不起作用,或者您需要在归位之前做一些特殊的事情,您可以编写自己的函数。将#define USE_CUSTOM_HOMING放入头文件中。Grbl_ESP32 在归位机器时将看到此信息。它将调用您必须提供的函数 **bool user_defined_homing() **。如果您从此函数返回true,它会告诉 Grbl_ESP32 您正在处理所有归位。如果您返回false,Grbl_ESP32 将运行其正常归位序列。
用户定义宏按钮
通常,Grbl_ESP32 会忽略工具变化。它只跟踪当前工具编号。如果您在头文件中放入#define USE_TOOL_CHANGE ,当它看到 M6 gcode 命令时,它将调用函数void user_tool_change(uint8_t new_tool) 。
M30 gcode 命令表示文件结束。通常 Grbl 会忽略 M30 命令。如果您在头文件中放入#define USE_M30,它将调用函数void user_m30(),当它看到 M30 命令时,您必须提供该函数。