what about this part?
> static int sendJogStop(int axis) > { > EMC_AXIS_ABORT emc_axis_abort_msg; > > // in case of TELEOP mode we really need to send an TELEOP_VECTOR message > // not a simple AXIS_ABORT, as more than one axis would be moving > // (hint TELEOP mode is for nontrivial kinematics) > EMC_TRAJ_SET_TELEOP_VECTOR emc_set_teleop_vector; > > if ((emcStatus->task.state != EMC_TASK_STATE_ON) || (emcStatus->task.mode > != EMC_TASK_MODE_MANUAL)) > return -1; > > if (axis < 0 || axis >= EMC_AXIS_MAX) { > return -1; > } > > if (emcStatus->motion.traj.mode != EMC_TRAJ_MODE_TELEOP) { > emc_axis_abort_msg.serial_number = ++emcCommandSerialNumber; > emc_axis_abort_msg.axis = axis; > emcCommandBuffer->write(emc_axis_abort_msg); > > return emcCommandWaitReceived(emcCommandSerialNumber); > } else { > emc_set_teleop_vector.serial_number = ++emcCommandSerialNumber; > ZERO_EMC_POSE(emc_set_teleop_vector.vector); > emcCommandBuffer->write(emc_set_teleop_vector); > > return emcCommandWaitReceived(emcCommandSerialNumber); > } > } > > static int sendJogCont(int axis, double speed) > { > EMC_AXIS_JOG emc_axis_jog_msg; > EMC_TRAJ_SET_TELEOP_VECTOR emc_set_teleop_vector; > > if ((emcStatus->task.state != EMC_TASK_STATE_ON) || (emcStatus->task.mode > != EMC_TASK_MODE_MANUAL)) > return -1; > > if (axis < 0 || axis >= EMC_AXIS_MAX) { > return -1; > } > > if (emcStatus->motion.traj.mode != EMC_TRAJ_MODE_TELEOP) { > emc_axis_jog_msg.serial_number = ++emcCommandSerialNumber; > emc_axis_jog_msg.axis = axis; > emc_axis_jog_msg.vel = speed / 60.0; > emcCommandBuffer->write(emc_axis_jog_msg); > } else { > emc_set_teleop_vector.serial_number = ++emcCommandSerialNumber; > ZERO_EMC_POSE(emc_set_teleop_vector.vector); > > switch (axis) { > case 0: > emc_set_teleop_vector.vector.tran.x = speed / 60.0; > break; > case 1: > emc_set_teleop_vector.vector.tran.y = speed / 60.0; > break; > case 2: > emc_set_teleop_vector.vector.tran.z = speed / 60.0; > break; > case 3: > emc_set_teleop_vector.vector.a = speed / 60.0; > break; > case 4: > emc_set_teleop_vector.vector.b = speed / 60.0; > break; > case 5: > emc_set_teleop_vector.vector.c = speed / 60.0; > break; > } > emcCommandBuffer->write(emc_set_teleop_vector); > } > > return emcCommandWaitReceived(emcCommandSerialNumber); > } Can't understand perfectly what it says at the beginning, can you try to see if there's a problem here? some suggestion? ------------------------------------------------------------------------------ All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity, and more. Splunk takes this data and makes sense of it. IT sense. And common sense. http://p.sf.net/sfu/splunk-novd2d _______________________________________________ Emc-developers mailing list Emc-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-developers