增加当前位置参数fixture验证

结论:新增 position_params fixture,覆盖 Z 轴运动与 #5420/#5421/#5422 当前坐标参数同步;最小 harness 输出当前位置参数,runtime 在直线运动后刷新相对位置参数。检查:git diff --check 通过;wasm-port/tests/native/verify_native_probes.sh 通过。
This commit is contained in:
cnc
2026-06-06 22:55:50 +08:00
parent 1827b7dd47
commit 7d71e3bc6d
5 changed files with 40 additions and 2 deletions

View File

@@ -101,6 +101,9 @@ int main(int argc, char **argv)
std::cout << "setup.current_x=" << interp._setup.current_x << "\n";
std::cout << "setup.current_y=" << interp._setup.current_y << "\n";
std::cout << "setup.current_z=" << interp._setup.current_z << "\n";
std::cout << "setup.parameter_5420=" << interp._setup.parameters[5420] << "\n";
std::cout << "setup.parameter_5421=" << interp._setup.parameters[5421] << "\n";
std::cout << "setup.parameter_5422=" << interp._setup.parameters[5422] << "\n";
std::cout << "setup.feed_rate=" << interp._setup.feed_rate << "\n";
std::cout << "close_and_downcase=" << downcase_rc << "\n";
std::cout << "normalized_line=" << line << "\n";

View File

@@ -349,6 +349,24 @@ bool Interp::is_pycallable(setup_pointer, const char *, const char *) { return f
bool Interp::is_user_defined_g_code(int) { return false; }
bool Interp::is_any_m_code_remapped(block_pointer, setup_pointer) { return false; }
int Interp::convert_m(block_pointer, setup_pointer) { return INTERP_OK; }
namespace {
void update_relative_position_parameters(setup_pointer settings)
{
settings->parameters[5420] = settings->current_x;
settings->parameters[5421] = settings->current_y;
settings->parameters[5422] = settings->current_z;
settings->parameters[5423] = settings->AA_current;
settings->parameters[5424] = settings->BB_current;
settings->parameters[5425] = settings->CC_current;
settings->parameters[5426] = settings->u_current;
settings->parameters[5427] = settings->v_current;
settings->parameters[5428] = settings->w_current;
}
} // namespace
int Interp::convert_g(block_pointer block, setup_pointer settings)
{
const int distance_mode = block->g_modes[GM_DISTANCE_MODE];
@@ -376,6 +394,7 @@ int Interp::convert_g(block_pointer block, setup_pointer settings)
settings->current_z = incremental ? settings->current_z + block->z_number
: block->z_number;
}
update_relative_position_parameters(settings);
if (block->motion_to_be == G_0) {
settings->motion_mode = G_0;