开源改变世界!!

SETTING_INDEX_NCOORD 定义不正确? #1386

推推 grbl 2年前 (2023-01-24) 79次浏览

打开
J-Dunn 打开了这个问题 2018 年 4 月 16 日 · 0 条评论
打开

SETTING_INDEX_NCOORD 定义不正确?#1386

J-Dunn 打开了这个问题 2018 年 4 月 16 日 · 0 条评论

注释

SETTING_INDEX_NCOORD 定义不正确? #1386

嗨,
支持的工作坐标系数量(从索引 1 开始)定义为 6,很好。
但是为什么 SETTING_INDEX_NCOORD(来自索引 0)定义为多一而不是少一?

使用它的地方似乎表明它应该 5:
settings.c:120: for (idx=0; idx <= SETTING_INDEX_NCOORD; idx++)

这是错字还是存储了另外两个坐标系:?

此定义的注释似乎也不正确:“存储的系统总数(从索引 0 开始)”
如果它是基于零的索引,则它不是“…的总数”。正如经常发生的那样,这些冗长但不透明的宏几乎没有帮助,并且增加了更多的混乱而不是代码的清晰度。

像下面这样的东西会更清楚:

#define NUM_COORD_SYSTEMS 6
#define MAX_COORD_SETTING_INDEX  NUM_COORD_SYSTEMS -1 


// Define EEPROM address indexing for coordinate parameters
#define N_COORDINATE_SYSTEM 6  // Number of supported work coordinate systems (from index 1)
#define SETTING_INDEX_NCOORD N_COORDINATE_SYSTEM+1 // Total number of system stored (from index 0)
// NOTE: Work coordinate indices are (0=G54, 1=G55, ... , 6=G59)
#define SETTING_INDEX_G28    N_COORDINATE_SYSTEM    // Home position 1
#define SETTING_INDEX_G30    N_COORDINATE_SYSTEM+1  // Home position 2

也在报道中。C

      case 6: printPgmString(PSTR("28")); break;
      case 7: printPgmString(PSTR("30")); break;

为了保持一致,这些行应该使用定义的宏 SETTING_INDEX_G28 、 SETTING_INDEX_G28 。显然这不会改变二进制文件。

喜欢 (0)