shcom.cc

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

CC
1,402
字号
    EMC_SPINDLE_BRAKE_RELEASE emc_spindle_brake_release_msg;    emc_spindle_brake_release_msg.serial_number = ++emcCommandSerialNumber;    emcCommandBuffer->write(emc_spindle_brake_release_msg);    if (emcWaitType == EMC_WAIT_RECEIVED) {	return emcCommandWaitReceived(emcCommandSerialNumber);    } else if (emcWaitType == EMC_WAIT_DONE) {	return emcCommandWaitDone(emcCommandSerialNumber);    }    return 0;}int sendAbort(){    EMC_TASK_ABORT task_abort_msg;    task_abort_msg.serial_number = ++emcCommandSerialNumber;    emcCommandBuffer->write(task_abort_msg);    if (emcWaitType == EMC_WAIT_RECEIVED) {	return emcCommandWaitReceived(emcCommandSerialNumber);    } else if (emcWaitType == EMC_WAIT_DONE) {	return emcCommandWaitDone(emcCommandSerialNumber);    }    return 0;}int sendHome(int axis){    EMC_AXIS_HOME emc_axis_home_msg;    emc_axis_home_msg.serial_number = ++emcCommandSerialNumber;    emc_axis_home_msg.axis = axis;    emcCommandBuffer->write(emc_axis_home_msg);    if (emcWaitType == EMC_WAIT_RECEIVED) {	return emcCommandWaitReceived(emcCommandSerialNumber);    } else if (emcWaitType == EMC_WAIT_DONE) {	return emcCommandWaitDone(emcCommandSerialNumber);    }    return 0;}int sendFeedOverride(double override){    EMC_TRAJ_SET_SCALE emc_traj_set_scale_msg;    if (override < 0.0) {	override = 0.0;    }    emc_traj_set_scale_msg.serial_number = ++emcCommandSerialNumber;    emc_traj_set_scale_msg.scale = override;    emcCommandBuffer->write(emc_traj_set_scale_msg);    if (emcWaitType == EMC_WAIT_RECEIVED) {	return emcCommandWaitReceived(emcCommandSerialNumber);    } else if (emcWaitType == EMC_WAIT_DONE) {	return emcCommandWaitDone(emcCommandSerialNumber);    }    return 0;}int sendSpindleOverride(double override){    EMC_TRAJ_SET_SPINDLE_SCALE emc_traj_set_spindle_scale_msg;    if (override < 0.0) {	override = 0.0;    }    emc_traj_set_spindle_scale_msg.serial_number = ++emcCommandSerialNumber;    emc_traj_set_spindle_scale_msg.scale = override;    emcCommandBuffer->write(emc_traj_set_spindle_scale_msg);    if (emcWaitType == EMC_WAIT_RECEIVED) {	return emcCommandWaitReceived(emcCommandSerialNumber);    } else if (emcWaitType == EMC_WAIT_DONE) {	return emcCommandWaitDone(emcCommandSerialNumber);    }    return 0;}int sendTaskPlanInit(){    EMC_TASK_PLAN_INIT task_plan_init_msg;    task_plan_init_msg.serial_number = ++emcCommandSerialNumber;    emcCommandBuffer->write(task_plan_init_msg);    if (emcWaitType == EMC_WAIT_RECEIVED) {	return emcCommandWaitReceived(emcCommandSerialNumber);    } else if (emcWaitType == EMC_WAIT_DONE) {	return emcCommandWaitDone(emcCommandSerialNumber);    }    return 0;}// saved value of last program openedstatic char lastProgramFile[LINELEN] = "";int sendProgramOpen(char *program){    EMC_TASK_PLAN_OPEN emc_task_plan_open_msg;    // save this to run again    strcpy(lastProgramFile, program);    emc_task_plan_open_msg.serial_number = ++emcCommandSerialNumber;    strcpy(emc_task_plan_open_msg.file, program);    emcCommandBuffer->write(emc_task_plan_open_msg);    if (emcWaitType == EMC_WAIT_RECEIVED) {	return emcCommandWaitReceived(emcCommandSerialNumber);    } else if (emcWaitType == EMC_WAIT_DONE) {	return emcCommandWaitDone(emcCommandSerialNumber);    }    return 0;}int sendProgramRun(int line){    EMC_TASK_PLAN_RUN emc_task_plan_run_msg;    if (emcUpdateType == EMC_UPDATE_AUTO) {	updateStatus();    }    // first reopen program if it's not open    if (0 == emcStatus->task.file[0]) {	// send a request to open last one	sendProgramOpen(lastProgramFile);    }    // save the start line, to compare against active line later    programStartLine = line;    emc_task_plan_run_msg.serial_number = ++emcCommandSerialNumber;    emc_task_plan_run_msg.line = line;    emcCommandBuffer->write(emc_task_plan_run_msg);    if (emcWaitType == EMC_WAIT_RECEIVED) {	return emcCommandWaitReceived(emcCommandSerialNumber);    } else if (emcWaitType == EMC_WAIT_DONE) {	return emcCommandWaitDone(emcCommandSerialNumber);    }    return 0;}int sendProgramPause(){    EMC_TASK_PLAN_PAUSE emc_task_plan_pause_msg;    emc_task_plan_pause_msg.serial_number = ++emcCommandSerialNumber;    emcCommandBuffer->write(emc_task_plan_pause_msg);    if (emcWaitType == EMC_WAIT_RECEIVED) {	return emcCommandWaitReceived(emcCommandSerialNumber);    } else if (emcWaitType == EMC_WAIT_DONE) {	return emcCommandWaitDone(emcCommandSerialNumber);    }    return 0;}int sendProgramResume(){    EMC_TASK_PLAN_RESUME emc_task_plan_resume_msg;    emc_task_plan_resume_msg.serial_number = ++emcCommandSerialNumber;    emcCommandBuffer->write(emc_task_plan_resume_msg);    if (emcWaitType == EMC_WAIT_RECEIVED) {	return emcCommandWaitReceived(emcCommandSerialNumber);    } else if (emcWaitType == EMC_WAIT_DONE) {	return emcCommandWaitDone(emcCommandSerialNumber);    }    return 0;}int sendSetOptionalStop(bool state){    EMC_TASK_PLAN_SET_OPTIONAL_STOP emc_task_plan_set_optional_stop_msg;    emc_task_plan_set_optional_stop_msg.state = state;    emc_task_plan_set_optional_stop_msg.serial_number = ++emcCommandSerialNumber;    emcCommandBuffer->write(emc_task_plan_set_optional_stop_msg);    if (emcWaitType == EMC_WAIT_RECEIVED) {	return emcCommandWaitReceived(emcCommandSerialNumber);    } else if (emcWaitType == EMC_WAIT_DONE) {	return emcCommandWaitDone(emcCommandSerialNumber);    }    return 0;}int sendProgramStep(){    EMC_TASK_PLAN_STEP emc_task_plan_step_msg;    // clear out start line, if we had a verify before it would be -1    programStartLine = 0;    emc_task_plan_step_msg.serial_number = ++emcCommandSerialNumber;    emcCommandBuffer->write(emc_task_plan_step_msg);    if (emcWaitType == EMC_WAIT_RECEIVED) {	return emcCommandWaitReceived(emcCommandSerialNumber);    } else if (emcWaitType == EMC_WAIT_DONE) {	return emcCommandWaitDone(emcCommandSerialNumber);    }    return 0;}int sendMdiCmd(char *mdi){    EMC_TASK_PLAN_EXECUTE emc_task_plan_execute_msg;    strcpy(emc_task_plan_execute_msg.command, mdi);    emc_task_plan_execute_msg.serial_number = ++emcCommandSerialNumber;    emcCommandBuffer->write(emc_task_plan_execute_msg);    if (emcWaitType == EMC_WAIT_RECEIVED) {	return emcCommandWaitReceived(emcCommandSerialNumber);    } else if (emcWaitType == EMC_WAIT_DONE) {	return emcCommandWaitDone(emcCommandSerialNumber);    }    return 0;}int sendLoadToolTable(const char *file){    EMC_TOOL_LOAD_TOOL_TABLE emc_tool_load_tool_table_msg;    strcpy(emc_tool_load_tool_table_msg.file, file);    emc_tool_load_tool_table_msg.serial_number = ++emcCommandSerialNumber;    emcCommandBuffer->write(emc_tool_load_tool_table_msg);    if (emcWaitType == EMC_WAIT_RECEIVED) {	return emcCommandWaitReceived(emcCommandSerialNumber);    } else if (emcWaitType == EMC_WAIT_DONE) {	return emcCommandWaitDone(emcCommandSerialNumber);    }    return 0;}int sendToolSetOffset(int tool, double length, double diameter){    EMC_TOOL_SET_OFFSET emc_tool_set_offset_msg;    emc_tool_set_offset_msg.tool = tool;    emc_tool_set_offset_msg.length = length;    emc_tool_set_offset_msg.diameter = diameter;    emc_tool_set_offset_msg.serial_number = ++emcCommandSerialNumber;    emcCommandBuffer->write(emc_tool_set_offset_msg);    if (emcWaitType == EMC_WAIT_RECEIVED) {	return emcCommandWaitReceived(emcCommandSerialNumber);    } else if (emcWaitType == EMC_WAIT_DONE) {	return emcCommandWaitDone(emcCommandSerialNumber);    }    return 0;}int sendAxisSetBacklash(int axis, double backlash){    EMC_AXIS_SET_BACKLASH emc_axis_set_backlash_msg;    emc_axis_set_backlash_msg.axis = axis;    emc_axis_set_backlash_msg.backlash = backlash;    emc_axis_set_backlash_msg.serial_number = ++emcCommandSerialNumber;    emcCommandBuffer->write(emc_axis_set_backlash_msg);    if (emcWaitType == EMC_WAIT_RECEIVED) {	return emcCommandWaitReceived(emcCommandSerialNumber);    } else if (emcWaitType == EMC_WAIT_DONE) {	return emcCommandWaitDone(emcCommandSerialNumber);    }    return 0;}int sendAxisSetOutput(int axis, double output){    EMC_AXIS_SET_OUTPUT emc_axis_set_output_msg;    emc_axis_set_output_msg.axis = axis;    emc_axis_set_output_msg.output = output;    emc_axis_set_output_msg.serial_number = ++emcCommandSerialNumber;    emcCommandBuffer->write(emc_axis_set_output_msg);    if (emcWaitType == EMC_WAIT_RECEIVED) {	return emcCommandWaitReceived(emcCommandSerialNumber);    } else if (emcWaitType == EMC_WAIT_DONE) {	return emcCommandWaitDone(emcCommandSerialNumber);    }    return 0;}int sendAxisEnable(int axis, int val){    EMC_AXIS_ENABLE emc_axis_enable_msg;    EMC_AXIS_DISABLE emc_axis_disable_msg;    if (val) {	emc_axis_enable_msg.axis = axis;	emc_axis_enable_msg.serial_number = ++emcCommandSerialNumber;	emcCommandBuffer->write(emc_axis_enable_msg);    } else {	emc_axis_disable_msg.axis = axis;	emc_axis_disable_msg.serial_number = ++emcCommandSerialNumber;	emcCommandBuffer->write(emc_axis_disable_msg);    }    if (emcWaitType == EMC_WAIT_RECEIVED) {	return emcCommandWaitReceived(emcCommandSerialNumber);    } else if (emcWaitType == EMC_WAIT_DONE) {	return emcCommandWaitDone(emcCommandSerialNumber);    }    return 0;}int sendAxisLoadComp(int axis, const char *file, int type){    EMC_AXIS_LOAD_COMP emc_axis_load_comp_msg;    strcpy(emc_axis_load_comp_msg.file, file);    emc_axis_load_comp_msg.type = type;    emc_axis_load_comp_msg.serial_number = ++emcCommandSerialNumber;    emcCommandBuffer->write(emc_axis_load_comp_msg);    if (emcWaitType == EMC_WAIT_RECEIVED) {	return emcCommandWaitReceived(emcCommandSerialNumber);    } else if (emcWaitType == EMC_WAIT_DONE) {	return emcCommandWaitDone(emcCommandSerialNumber);    }    return 0;}int sendSetTeleopEnable(int enable){    EMC_TRAJ_SET_TELEOP_ENABLE emc_set_teleop_enable_msg;    emc_set_teleop_enable_msg.enable = enable;    emc_set_teleop_enable_msg.serial_number = ++emcCommandSerialNumber;    emcCommandBuffer->write(emc_set_teleop_enable_msg);    if (emcWaitType == EMC_WAIT_RECEIVED) {	return emcCommandWaitReceived(emcCommandSerialNumber);    } else if (emcWaitType == EMC_WAIT_DONE) {	return emcCommandWaitDone(emcCommandSerialNumber);    }    return 0;}int sendClearProbeTrippedFlag(){    EMC_TRAJ_CLEAR_PROBE_TRIPPED_FLAG emc_clear_probe_tripped_flag_msg;    emc_clear_probe_tripped_flag_msg.serial_number =	++emcCommandSerialNumber;    emcCommandBuffer->write(emc_clear_probe_tripped_flag_msg);    if (emcWaitType == EMC_WAIT_RECEIVED) {	return emcCommandWaitReceived(emcCommandSerialNumber);    } else if (emcWaitType == EMC_WAIT_DONE) {	return emcCommandWaitDone(emcCommandSerialNumber);    }    return 0;}int sendProbe(double x, double y, double z){    EMC_TRAJ_PROBE emc_probe_msg;    emc_probe_msg.pos.tran.x = x;    emc_probe_msg.pos.tran.y = y;    emc_probe_msg.pos.tran.z = z;    emc_probe_msg.serial_number = ++emcCommandSerialNumber;    emcCommandBuffer->write(emc_probe_msg);    if (emcWaitType == EMC_WAIT_RECEIVED) {	return emcCommandWaitReceived(emcCommandSerialNumber);    } else if (emcWaitType == EMC_WAIT_DONE) {	return emcCommandWaitDone(emcCommandSerialNumber);    }    return 0;}int iniLoad(const char *filename){    IniFile inifile;    const char *inistring;    char displayString[LINELEN] = "";    int t;    int i;    // open it    if (inifile.Open(filename) == false) {	return -1;    }    if (NULL != (inistring = inifile.Find("DEBUG", "EMC"))) {	// copy to global	if (1 != sscanf(inistring, "%i", &EMC_DEBUG)) {	    EMC_DEBUG = 0;	}    } else {	// not found, use default	EMC_DEBUG = 0;    }    if (NULL != (inistring = inifile.Find("NML_FILE", "EMC"))) {	// copy to global	strcpy(EMC_NMLFILE, inistring);    } else {	// not found, use default    }    for (t = 0; t < EMC_AXIS_MAX; t++) {	jogPol[t] = 1;		// set to default	sprintf(displayString, "AXIS_%d", t);	if (NULL != (inistring =		     inifile.Find("JOGGING_POLARITY", displayString)) &&	    1 == sscanf(inistring, "%d", &i) && i == 0) {	    // it read as 0, so override default	    jogPol[t] = 0;	}    }    if (NULL != (inistring = inifile.Find("LINEAR_UNITS", "DISPLAY"))) {	if (!strcmp(inistring, "AUTO")) {	    linearUnitConversion = LINEAR_UNITS_AUTO;	} else if (!strcmp(inistring, "INCH")) {	    linearUnitConversion = LINEAR_UNITS_INCH;	} else if (!strcmp(inistring, "MM")) {	    linearUnitConversion = LINEAR_UNITS_MM;	} else if (!strcmp(inistring, "CM")) {	    linearUnitConversion = LINEAR_UNITS_CM;	}    } else {	// not found, leave default alone    }    if (NULL != (inistring = inifile.Find("ANGULAR_UNITS", "DISPLAY"))) {	if (!strcmp(inistring, "AUTO")) {	    angularUnitConversion = ANGULAR_UNITS_AUTO;	} else if (!strcmp(inistring, "DEG")) {	    angularUnitConversion = ANGULAR_UNITS_DEG;	} else if (!strcmp(inistring, "RAD")) {	    angularUnitConversion = ANGULAR_UNITS_RAD;	} else if (!strcmp(inistring, "GRAD")) {	    angularUnitConversion = ANGULAR_UNITS_GRAD;	}    } else {	// not found, leave default alone    }    // close it    inifile.Close();    return 0;}

⌨️ 快捷键说明

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