shcom.cc

来自「CNC 的开放码,EMC2 V2.2.8版」· CC 代码 · 共 1,402 行 · 第 1/3 页

CC
1,402
字号
int sendEstop(){    EMC_TASK_SET_STATE state_msg;    state_msg.state = EMC_TASK_STATE_ESTOP;    state_msg.serial_number = ++emcCommandSerialNumber;    emcCommandBuffer->write(state_msg);    if (emcWaitType == EMC_WAIT_RECEIVED) {	return emcCommandWaitReceived(emcCommandSerialNumber);    } else if (emcWaitType == EMC_WAIT_DONE) {	return emcCommandWaitDone(emcCommandSerialNumber);    }    return 0;}int sendEstopReset(){    EMC_TASK_SET_STATE state_msg;    state_msg.state = EMC_TASK_STATE_ESTOP_RESET;    state_msg.serial_number = ++emcCommandSerialNumber;    emcCommandBuffer->write(state_msg);    if (emcWaitType == EMC_WAIT_RECEIVED) {	return emcCommandWaitReceived(emcCommandSerialNumber);    } else if (emcWaitType == EMC_WAIT_DONE) {	return emcCommandWaitDone(emcCommandSerialNumber);    }    return 0;}int sendMachineOn(){    EMC_TASK_SET_STATE state_msg;    state_msg.state = EMC_TASK_STATE_ON;    state_msg.serial_number = ++emcCommandSerialNumber;    emcCommandBuffer->write(state_msg);    if (emcWaitType == EMC_WAIT_RECEIVED) {	return emcCommandWaitReceived(emcCommandSerialNumber);    } else if (emcWaitType == EMC_WAIT_DONE) {	return emcCommandWaitDone(emcCommandSerialNumber);    }    return 0;}int sendMachineOff(){    EMC_TASK_SET_STATE state_msg;    state_msg.state = EMC_TASK_STATE_OFF;    state_msg.serial_number = ++emcCommandSerialNumber;    emcCommandBuffer->write(state_msg);    if (emcWaitType == EMC_WAIT_RECEIVED) {	return emcCommandWaitReceived(emcCommandSerialNumber);    } else if (emcWaitType == EMC_WAIT_DONE) {	return emcCommandWaitDone(emcCommandSerialNumber);    }    return 0;}int sendManual(){    EMC_TASK_SET_MODE mode_msg;    mode_msg.mode = EMC_TASK_MODE_MANUAL;    mode_msg.serial_number = ++emcCommandSerialNumber;    emcCommandBuffer->write(mode_msg);    if (emcWaitType == EMC_WAIT_RECEIVED) {	return emcCommandWaitReceived(emcCommandSerialNumber);    } else if (emcWaitType == EMC_WAIT_DONE) {	return emcCommandWaitDone(emcCommandSerialNumber);    }    return 0;}int sendAuto(){    EMC_TASK_SET_MODE mode_msg;    mode_msg.mode = EMC_TASK_MODE_AUTO;    mode_msg.serial_number = ++emcCommandSerialNumber;    emcCommandBuffer->write(mode_msg);    if (emcWaitType == EMC_WAIT_RECEIVED) {	return emcCommandWaitReceived(emcCommandSerialNumber);    } else if (emcWaitType == EMC_WAIT_DONE) {	return emcCommandWaitDone(emcCommandSerialNumber);    }    return 0;}int sendMdi(){    EMC_TASK_SET_MODE mode_msg;    mode_msg.mode = EMC_TASK_MODE_MDI;    mode_msg.serial_number = ++emcCommandSerialNumber;    emcCommandBuffer->write(mode_msg);    if (emcWaitType == EMC_WAIT_RECEIVED) {	return emcCommandWaitReceived(emcCommandSerialNumber);    } else if (emcWaitType == EMC_WAIT_DONE) {	return emcCommandWaitDone(emcCommandSerialNumber);    }    return 0;}int sendOverrideLimits(int axis){    EMC_AXIS_OVERRIDE_LIMITS lim_msg;    lim_msg.axis = axis;	// neg means off, else on for all    lim_msg.serial_number = ++emcCommandSerialNumber;    emcCommandBuffer->write(lim_msg);    if (emcWaitType == EMC_WAIT_RECEIVED) {	return emcCommandWaitReceived(emcCommandSerialNumber);    } else if (emcWaitType == EMC_WAIT_DONE) {	return emcCommandWaitDone(emcCommandSerialNumber);    }    return 0;}static int axisJogging = -1;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 (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);	if (emcWaitType == EMC_WAIT_RECEIVED) {	    return emcCommandWaitReceived(emcCommandSerialNumber);	} else if (emcWaitType == EMC_WAIT_DONE) {	    return emcCommandWaitDone(emcCommandSerialNumber);	}	axisJogging = -1;    }    else {	emc_set_teleop_vector.serial_number = ++emcCommandSerialNumber;	emc_set_teleop_vector.vector.tran.x = 0;	emc_set_teleop_vector.vector.tran.y = 0;	emc_set_teleop_vector.vector.tran.z = 0;	emc_set_teleop_vector.vector.a = 0;	emc_set_teleop_vector.vector.b = 0;	emc_set_teleop_vector.vector.c = 0;	emcCommandBuffer->write(emc_set_teleop_vector);	if (emcWaitType == EMC_WAIT_RECEIVED) {	    return emcCommandWaitReceived(emcCommandSerialNumber);	} else if (emcWaitType == EMC_WAIT_DONE) {	    return emcCommandWaitDone(emcCommandSerialNumber);	}	// \todo FIXME - should remember a list of jogging axes, and remove the last one	axisJogging = -1;	    }    return 0;}int sendJogCont(int axis, double speed){    EMC_AXIS_JOG emc_axis_jog_msg;    EMC_TRAJ_SET_TELEOP_VECTOR emc_set_teleop_vector;    if (axis < 0 || axis >= EMC_AXIS_MAX) {	return -1;    }    if (emcStatus->motion.traj.mode != EMC_TRAJ_MODE_TELEOP) {	if (0 == jogPol[axis]) {	    speed = -speed;	}	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;	emc_set_teleop_vector.vector.tran.x = 0.0;	emc_set_teleop_vector.vector.tran.y = 0.0;	emc_set_teleop_vector.vector.tran.z = 0.0;	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);    }    axisJogging = axis;    if (emcWaitType == EMC_WAIT_RECEIVED) {	return emcCommandWaitReceived(emcCommandSerialNumber);    } else if (emcWaitType == EMC_WAIT_DONE) {	return emcCommandWaitDone(emcCommandSerialNumber);    }    return 0;}int sendJogIncr(int axis, double speed, double incr){    EMC_AXIS_INCR_JOG emc_axis_incr_jog_msg;    if (axis < 0 || axis >= EMC_AXIS_MAX) {	return -1;    }    if (0 == jogPol[axis]) {	speed = -speed;    }    emc_axis_incr_jog_msg.serial_number = ++emcCommandSerialNumber;    emc_axis_incr_jog_msg.axis = axis;    emc_axis_incr_jog_msg.vel = speed / 60.0;    emc_axis_incr_jog_msg.incr = incr;    emcCommandBuffer->write(emc_axis_incr_jog_msg);    if (emcWaitType == EMC_WAIT_RECEIVED) {	return emcCommandWaitReceived(emcCommandSerialNumber);    } else if (emcWaitType == EMC_WAIT_DONE) {	return emcCommandWaitDone(emcCommandSerialNumber);    }    axisJogging = -1;    return 0;}int sendMistOn(){    EMC_COOLANT_MIST_ON emc_coolant_mist_on_msg;    emc_coolant_mist_on_msg.serial_number = ++emcCommandSerialNumber;    emcCommandBuffer->write(emc_coolant_mist_on_msg);    if (emcWaitType == EMC_WAIT_RECEIVED) {	return emcCommandWaitReceived(emcCommandSerialNumber);    } else if (emcWaitType == EMC_WAIT_DONE) {	return emcCommandWaitDone(emcCommandSerialNumber);    }    return 0;}int sendMistOff(){    EMC_COOLANT_MIST_OFF emc_coolant_mist_off_msg;    emc_coolant_mist_off_msg.serial_number = ++emcCommandSerialNumber;    emcCommandBuffer->write(emc_coolant_mist_off_msg);    if (emcWaitType == EMC_WAIT_RECEIVED) {	return emcCommandWaitReceived(emcCommandSerialNumber);    } else if (emcWaitType == EMC_WAIT_DONE) {	return emcCommandWaitDone(emcCommandSerialNumber);    }    return 0;}int sendFloodOn(){    EMC_COOLANT_FLOOD_ON emc_coolant_flood_on_msg;    emc_coolant_flood_on_msg.serial_number = ++emcCommandSerialNumber;    emcCommandBuffer->write(emc_coolant_flood_on_msg);    if (emcWaitType == EMC_WAIT_RECEIVED) {	return emcCommandWaitReceived(emcCommandSerialNumber);    } else if (emcWaitType == EMC_WAIT_DONE) {	return emcCommandWaitDone(emcCommandSerialNumber);    }    return 0;}int sendFloodOff(){    EMC_COOLANT_FLOOD_OFF emc_coolant_flood_off_msg;    emc_coolant_flood_off_msg.serial_number = ++emcCommandSerialNumber;    emcCommandBuffer->write(emc_coolant_flood_off_msg);    if (emcWaitType == EMC_WAIT_RECEIVED) {	return emcCommandWaitReceived(emcCommandSerialNumber);    } else if (emcWaitType == EMC_WAIT_DONE) {	return emcCommandWaitDone(emcCommandSerialNumber);    }    return 0;}int sendLubeOn(){    EMC_LUBE_ON emc_lube_on_msg;    emc_lube_on_msg.serial_number = ++emcCommandSerialNumber;    emcCommandBuffer->write(emc_lube_on_msg);    if (emcWaitType == EMC_WAIT_RECEIVED) {	return emcCommandWaitReceived(emcCommandSerialNumber);    } else if (emcWaitType == EMC_WAIT_DONE) {	return emcCommandWaitDone(emcCommandSerialNumber);    }    return 0;}int sendLubeOff(){    EMC_LUBE_OFF emc_lube_off_msg;    emc_lube_off_msg.serial_number = ++emcCommandSerialNumber;    emcCommandBuffer->write(emc_lube_off_msg);    if (emcWaitType == EMC_WAIT_RECEIVED) {	return emcCommandWaitReceived(emcCommandSerialNumber);    } else if (emcWaitType == EMC_WAIT_DONE) {	return emcCommandWaitDone(emcCommandSerialNumber);    }    return 0;}int sendSpindleForward(){    EMC_SPINDLE_ON emc_spindle_on_msg;    if (emcStatus->task.activeSettings[2] != 0) {	emc_spindle_on_msg.speed = fabs(emcStatus->task.activeSettings[2]);    } else {	emc_spindle_on_msg.speed = +500;    }    emc_spindle_on_msg.serial_number = ++emcCommandSerialNumber;    emcCommandBuffer->write(emc_spindle_on_msg);    if (emcWaitType == EMC_WAIT_RECEIVED) {	return emcCommandWaitReceived(emcCommandSerialNumber);    } else if (emcWaitType == EMC_WAIT_DONE) {	return emcCommandWaitDone(emcCommandSerialNumber);    }    return 0;}int sendSpindleReverse(){    EMC_SPINDLE_ON emc_spindle_on_msg;    if (emcStatus->task.activeSettings[2] != 0) {	emc_spindle_on_msg.speed =	    -1 * fabs(emcStatus->task.activeSettings[2]);    } else {	emc_spindle_on_msg.speed = -500;    }    emc_spindle_on_msg.serial_number = ++emcCommandSerialNumber;    emcCommandBuffer->write(emc_spindle_on_msg);    if (emcWaitType == EMC_WAIT_RECEIVED) {	return emcCommandWaitReceived(emcCommandSerialNumber);    } else if (emcWaitType == EMC_WAIT_DONE) {	return emcCommandWaitDone(emcCommandSerialNumber);    }    return 0;}int sendSpindleOff(){    EMC_SPINDLE_OFF emc_spindle_off_msg;    emc_spindle_off_msg.serial_number = ++emcCommandSerialNumber;    emcCommandBuffer->write(emc_spindle_off_msg);    if (emcWaitType == EMC_WAIT_RECEIVED) {	return emcCommandWaitReceived(emcCommandSerialNumber);    } else if (emcWaitType == EMC_WAIT_DONE) {	return emcCommandWaitDone(emcCommandSerialNumber);    }    return 0;}int sendSpindleIncrease(){    EMC_SPINDLE_INCREASE emc_spindle_increase_msg;    emc_spindle_increase_msg.serial_number = ++emcCommandSerialNumber;    emcCommandBuffer->write(emc_spindle_increase_msg);    if (emcWaitType == EMC_WAIT_RECEIVED) {	return emcCommandWaitReceived(emcCommandSerialNumber);    } else if (emcWaitType == EMC_WAIT_DONE) {	return emcCommandWaitDone(emcCommandSerialNumber);    }    return 0;}int sendSpindleDecrease(){    EMC_SPINDLE_DECREASE emc_spindle_decrease_msg;    emc_spindle_decrease_msg.serial_number = ++emcCommandSerialNumber;    emcCommandBuffer->write(emc_spindle_decrease_msg);    if (emcWaitType == EMC_WAIT_RECEIVED) {	return emcCommandWaitReceived(emcCommandSerialNumber);    } else if (emcWaitType == EMC_WAIT_DONE) {	return emcCommandWaitDone(emcCommandSerialNumber);    }    return 0;}int sendSpindleConstant(){    EMC_SPINDLE_CONSTANT emc_spindle_constant_msg;    emc_spindle_constant_msg.serial_number = ++emcCommandSerialNumber;    emcCommandBuffer->write(emc_spindle_constant_msg);    if (emcWaitType == EMC_WAIT_RECEIVED) {	return emcCommandWaitReceived(emcCommandSerialNumber);    } else if (emcWaitType == EMC_WAIT_DONE) {	return emcCommandWaitDone(emcCommandSerialNumber);    }    return 0;}int sendBrakeEngage(){    EMC_SPINDLE_BRAKE_ENGAGE emc_spindle_brake_engage_msg;    emc_spindle_brake_engage_msg.serial_number = ++emcCommandSerialNumber;    emcCommandBuffer->write(emc_spindle_brake_engage_msg);    if (emcWaitType == EMC_WAIT_RECEIVED) {	return emcCommandWaitReceived(emcCommandSerialNumber);    } else if (emcWaitType == EMC_WAIT_DONE) {	return emcCommandWaitDone(emcCommandSerialNumber);    }    return 0;}int sendBrakeRelease(){

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?