Code:
bool first_axis = true;
for (axis_num=0; axis_num < EMCMOT_MAX_AXIS ; axis_num++) {
if ( !(axis_mask & (1 << axis_num)) ) { continue; }
char c = "xyzabcuvw"[axis_num];
retval = hal_pin_bit_newf(HAL_OUT, &(halui_data->axis_is_selected[axis_num]), comp_id, "halui.axis.%c.is-selected", c);
if (retval < 0) return retval;
retval = hal_pin_float_newf(HAL_OUT, &(halui_data->axis_pos_commanded[axis_num]), comp_id, "halui.axis.%c.pos-commanded", c);
if (retval < 0) return retval;
retval = hal_pin_float_newf(HAL_OUT, &(halui_data->axis_pos_feedback[axis_num]), comp_id, "halui.axis.%c.pos-feedback", c);
if (retval < 0) return retval;
retval = hal_pin_float_newf(HAL_OUT, &(halui_data->axis_pos_relative[axis_num]), comp_id, "halui.axis.%c.pos-relative", c);
if (retval < 0) return retval;
if (first_axis) {
// at startup, indicate [0] item is selected:
*halui_data->joint_is_selected[0] = 1;
*halui_data->axis_is_selected[axis_num] = 1;
}
first_axis = false;
}
Seems to work in my testing.