增加G90G91批量fixture验证
结论:新增 modal_incremental fixture,覆盖 G90/G91 距离模式切换、G1 模态继承和回到绝对模式;验证脚本改为批量执行所有 G-code fixture 并匹配 expected canonical events。检查:git diff --check 通过;wasm-port/tests/native/verify_native_probes.sh 通过。
This commit is contained in:
@@ -351,27 +351,40 @@ bool Interp::is_any_m_code_remapped(block_pointer, setup_pointer) { return false
|
||||
int Interp::convert_m(block_pointer, setup_pointer) { return INTERP_OK; }
|
||||
int Interp::convert_g(block_pointer block, setup_pointer settings)
|
||||
{
|
||||
const int distance_mode = block->g_modes[GM_DISTANCE_MODE];
|
||||
if (distance_mode == G_90) {
|
||||
settings->distance_mode = DISTANCE_MODE::ABSOLUTE;
|
||||
} else if (distance_mode == G_91) {
|
||||
settings->distance_mode = DISTANCE_MODE::INCREMENTAL;
|
||||
}
|
||||
|
||||
if (block->f_flag) {
|
||||
settings->feed_rate = block->f_number;
|
||||
SET_FEED_RATE(block->f_number);
|
||||
}
|
||||
|
||||
const bool incremental = settings->distance_mode == DISTANCE_MODE::INCREMENTAL;
|
||||
if (block->x_flag) {
|
||||
settings->current_x = block->x_number;
|
||||
settings->current_x = incremental ? settings->current_x + block->x_number
|
||||
: block->x_number;
|
||||
}
|
||||
if (block->y_flag) {
|
||||
settings->current_y = block->y_number;
|
||||
settings->current_y = incremental ? settings->current_y + block->y_number
|
||||
: block->y_number;
|
||||
}
|
||||
if (block->z_flag) {
|
||||
settings->current_z = block->z_number;
|
||||
settings->current_z = incremental ? settings->current_z + block->z_number
|
||||
: block->z_number;
|
||||
}
|
||||
|
||||
if (block->motion_to_be == G_0) {
|
||||
settings->motion_mode = G_0;
|
||||
STRAIGHT_TRAVERSE(block->line_number,
|
||||
settings->current_x, settings->current_y, settings->current_z,
|
||||
settings->AA_current, settings->BB_current, settings->CC_current,
|
||||
settings->u_current, settings->v_current, settings->w_current);
|
||||
} else if (block->motion_to_be == G_1) {
|
||||
settings->motion_mode = G_1;
|
||||
STRAIGHT_FEED(block->line_number,
|
||||
settings->current_x, settings->current_y, settings->current_z,
|
||||
settings->AA_current, settings->BB_current, settings->CC_current,
|
||||
|
||||
Reference in New Issue
Block a user