Complete XYZAC LinuxCNC WASM parity and smooth 3D preview
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user