Complete XYZAC LinuxCNC WASM parity and smooth 3D preview

This commit is contained in:
2026-08-28 06:24:50 +08:00
parent e8fe323aab
commit 1a7995fa9b
181 changed files with 36854 additions and 215 deletions

View File

@@ -174,6 +174,17 @@ int32_t sim_hal_set_pin(const char *name, sim_hal_value value) {
return SIM_HAL_OK;
}
int32_t sim_hal_set_pin_scalar(const char *name, uint32_t type, double value) {
sim_hal_value scalar = {0};
scalar.type = type;
if (type == SIM_HAL_BIT) scalar.value.bit = value != 0.0;
else if (type == SIM_HAL_S32) scalar.value.s32 = (int32_t)value;
else if (type == SIM_HAL_U32) scalar.value.u32 = (uint32_t)value;
else if (type == SIM_HAL_FLOAT) scalar.value.real = (float)value;
else return SIM_HAL_ERR_TYPE;
return sim_hal_set_pin(name, scalar);
}
int32_t sim_hal_get_pin(const char *name, sim_hal_value *out) {
int index = find_pin(name);
if (index < 0 || out == NULL) return index < 0 ? SIM_HAL_ERR_NOT_FOUND : SIM_HAL_ERR_ARGUMENT;
@@ -191,6 +202,17 @@ int32_t sim_hal_set_param(const char *name, sim_hal_value value) {
return SIM_HAL_OK;
}
int32_t sim_hal_set_param_scalar(const char *name, uint32_t type, double value) {
sim_hal_value scalar = {0};
scalar.type = type;
if (type == SIM_HAL_BIT) scalar.value.bit = value != 0.0;
else if (type == SIM_HAL_S32) scalar.value.s32 = (int32_t)value;
else if (type == SIM_HAL_U32) scalar.value.u32 = (uint32_t)value;
else if (type == SIM_HAL_FLOAT) scalar.value.real = (float)value;
else return SIM_HAL_ERR_TYPE;
return sim_hal_set_param(name, scalar);
}
int32_t sim_hal_get_param(const char *name, sim_hal_value *out) {
int index = find_param(name);
if (index < 0 || out == NULL) return index < 0 ? SIM_HAL_ERR_NOT_FOUND : SIM_HAL_ERR_ARGUMENT;