亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? emctask.cc

?? Source code for an Numeric Cmputer
?? CC
字號(hào):
/********************************************************************* Description: emctask.cc*   Mode and state management for EMC_TASK class**   Derived from a work by Fred Proctor & Will Shackleford** Author:* License: GPL Version 2* System: Linux*    * Copyright (c) 2004 All rights reserved.** Last change:* $Revision: 1.16.2.1 $* $Author: jepler $* $Date: 2006/04/20 16:17:52 $********************************************************************/#include <stdlib.h>#include <string.h>		// strncpy()#include <sys/stat.h>		// struct stat#include <unistd.h>		// stat()#include "rcs.hh"		// INIFILE#include "emc.hh"		// EMC NML#include "emcglb.h"		// EMC_INIFILE#include "interpl.hh"		// NML_INTERP_LIST, interp_list#include "canon.hh"		// CANON_VECTOR, GET_PROGRAM_ORIGIN()#include "rs274ngc.hh"		// the interpreter#include "interp_return.hh"	// INTERP_FILE_NOT_OPEN/* flag for how we want to interpret traj coord mode, as mdi or auto */static int mdiOrAuto = EMC_TASK_MODE_AUTO;Interp interp;// EMC_TASK interface/*  format string for user-defined programs, e.g., "programs/M1%02d" means  user-defined programs are in the programs/ directory and are named  M1XX, where XX is a two-digit string.*/static char user_defined_fmt[EMC_SYSTEM_CMD_LEN] = "nc_files/M1%02d";static void user_defined_add_m_code(int num, double arg1, double arg2){    char fmt[EMC_SYSTEM_CMD_LEN];    EMC_SYSTEM_CMD system_cmd;    strcpy(fmt, user_defined_fmt);    strcat(fmt, " %f %f");    sprintf(system_cmd.string, fmt, num, arg1, arg2);    interp_list.append(system_cmd);}int emcTaskInit(){    int index;    char path[EMC_SYSTEM_CMD_LEN];    struct stat buf;    Inifile inifile;    const char *inistring;    // read out directory where programs are located    inifile.open(EMC_INIFILE);    inistring = inifile.find("PROGRAM_PREFIX", "DISPLAY");    inifile.close();    // if we have a program prefix, override the default user_defined_fmt    // string with program prefix, then "M1%02d", e.g.    // nc_files/M101, where the %%02d means 2 digits after the M code    // and we need two % to get the literal %    if (NULL != inistring) {	sprintf(user_defined_fmt, "%s/M1%%02d", inistring);    }    /* check for programs named programs/M100 .. programs/M199 and add       any to the user defined functions list */    for (index = 0; index < USER_DEFINED_FUNCTION_NUM; index++) {	sprintf(path, user_defined_fmt, index);	if (0 == stat(path, &buf)) {	    if (buf.st_mode & S_IXUSR) {		USER_DEFINED_FUNCTION_ADD(user_defined_add_m_code, index);		if (EMC_DEBUG & EMC_DEBUG_CONFIG) {		    rcs_print			("emcTaskInit: adding user-defined function %s\n",			 path);		}	    } else {		if (EMC_DEBUG & EMC_DEBUG_CONFIG) {		    rcs_print			("emcTaskInit: user-defined function %s found, but not executable, so ignoring\n",			 path);		}	    }	}    }    return 0;}int emcTaskHalt(){    return 0;}int emcTaskAbort(){    emcMotionAbort();    emcIoAbort();    return 0;}int emcTaskSetMode(int mode){    int retval = 0;    switch (mode) {    case EMC_TASK_MODE_MANUAL:	// go to manual mode	emcTrajSetMode(EMC_TRAJ_MODE_FREE);	mdiOrAuto = EMC_TASK_MODE_AUTO;	// we'll default back to here	break;    case EMC_TASK_MODE_MDI:	// go to mdi mode	emcTrajSetMode(EMC_TRAJ_MODE_COORD);	emcTaskPlanSynch();	mdiOrAuto = EMC_TASK_MODE_MDI;	break;    case EMC_TASK_MODE_AUTO:	// go to auto mode	emcTrajSetMode(EMC_TRAJ_MODE_COORD);	emcTaskPlanSynch();	mdiOrAuto = EMC_TASK_MODE_AUTO;	break;    default:	retval = -1;	break;    }    return retval;}int emcTaskSetState(int state){    int t;    int retval = 0;    switch (state) {    case EMC_TASK_STATE_OFF:	// turn the machine servos off-- go into READY state	for (t = 0; t < emcStatus->motion.traj.axes; t++) {	    emcAxisDisable(t);	}	emcTrajDisable();	emcLubeOff();	break;    case EMC_TASK_STATE_ON:	// turn the machine servos on	emcTrajEnable();	for (t = 0; t < emcStatus->motion.traj.axes; t++) {	    emcAxisEnable(t);	}	emcLubeOn();	break;    case EMC_TASK_STATE_ESTOP_RESET:	// reset the estop	emcAuxEstopOff();	emcLubeOff();	break;    case EMC_TASK_STATE_ESTOP:	// go into estop-- do both IO estop and machine servos off	emcAuxEstopOn();	for (t = 0; t < emcStatus->motion.traj.axes; t++) {	    emcAxisDisable(t);	}	emcTrajDisable();	emcLubeOff();	break;    default:	retval = -1;	break;    }    return retval;}// WM access functions/*  determineMode()  Looks at mode of subsystems, and returns associated mode  Depends on traj mode, and mdiOrAuto flag  traj mode   mdiOrAuto     mode  ---------   ---------     ----  FREE        XXX           MANUAL  COORD       MDI           MDI  COORD       AUTO          AUTO  */static int determineMode(){    // if traj is in free mode, then we're in manual mode    if (emcStatus->motion.traj.mode == EMC_TRAJ_MODE_FREE ||	emcStatus->motion.traj.mode == EMC_TRAJ_MODE_TELEOP) {	return EMC_TASK_MODE_MANUAL;    }    // else traj is in coord mode-- we can be in either mdi or auto    return mdiOrAuto;}/*  determineState()  Looks at state of subsystems, and returns associated state  Depends on traj enabled, io estop, and desired task state  traj enabled   io estop      state  ------------   --------      -----  DISABLED       ESTOP         ESTOP  ENABLED        ESTOP         ESTOP  DISABLED       OUT OF ESTOP  ESTOP_RESET  ENABLED        OUT OF ESTOP  ON  */static int determineState(){    if (emcStatus->io.aux.estop) {	return EMC_TASK_STATE_ESTOP;    }    if (!emcStatus->motion.traj.enabled) {	return EMC_TASK_STATE_ESTOP_RESET;    }    return EMC_TASK_STATE_ON;}static int waitFlag = 0;static char interp_error_text_buf[LINELEN];static char interp_stack_buf[LINELEN];static void print_interp_error(int retval){    int index = 0;    if (retval == 0) {	return;    }    if (0 != emcStatus) {	emcStatus->task.interpreter_errcode = retval;    }    interp_error_text_buf[0] = 0;    interp.error_text(retval, interp_error_text_buf, LINELEN);    if (0 != interp_error_text_buf[0]) {	rcs_print_error("interp_error: %s\n", interp_error_text_buf);    }    emcOperatorError(0, interp_error_text_buf);    index = 0;    if (EMC_DEBUG & EMC_DEBUG_INTERP) {	rcs_print("Interpreter stack: \t");	while (index < 5) {	    interp_stack_buf[0] = 0;	    interp.stack_name(index, interp_stack_buf, LINELEN);	    if (0 == interp_stack_buf[0]) {		break;	    }	    rcs_print(" - %s ", interp_stack_buf);	    index++;	}	rcs_print("\n");    }}int emcTaskPlanInit(){    interp.ini_load(EMC_INIFILE);    waitFlag = 0;    int retval = interp.init();    if (retval > INTERP_MIN_ERROR) {	print_interp_error(retval);    } else {	if (0 != RS274NGC_STARTUP_CODE[0]) {	    retval = interp.execute(RS274NGC_STARTUP_CODE);	    if (retval > INTERP_MIN_ERROR) {		print_interp_error(retval);	    }	}    }    return retval;}int emcTaskPlanSetWait(){    waitFlag = 1;    return 0;}int emcTaskPlanIsWait(){    return waitFlag;}int emcTaskPlanClearWait(){    waitFlag = 0;    return 0;}int emcTaskPlanSynch(){    return interp.synch();}int emcTaskPlanExit(){    return interp.exit();}int emcTaskPlanOpen(const char *file){    if (emcStatus != 0) {	emcStatus->task.motionLine = 0;	emcStatus->task.currentLine = 0;	emcStatus->task.readLine = 0;    }    int retval = interp.open(file);    if (retval > INTERP_MIN_ERROR) {	print_interp_error(retval);	return retval;    }    taskplanopen = 1;    return retval;}int emcTaskPlanRead(){    int retval = interp.read();    if (retval == INTERP_FILE_NOT_OPEN) {	if (emcStatus->task.file[0] != 0) {	    retval = interp.open(emcStatus->task.file);	    if (retval > INTERP_MIN_ERROR) {		print_interp_error(retval);	    }	    retval = interp.read();	}    }    if (retval > INTERP_MIN_ERROR) {	print_interp_error(retval);    }    return retval;}int emcTaskPlanExecute(const char *command){    int inpos = emcStatus->motion.traj.inpos;	// 1 if in position, 0 if not.    if (command != 0) {		// Command is 0 if in AUTO mode, non-null if in MDI mode.	// Don't sync if not in position.	if ((*command != 0) && (inpos)) {	    interp.synch();	}    }    int retval = interp.execute(command);    if (retval > INTERP_MIN_ERROR) {	print_interp_error(retval);    }    return retval;}int emcTaskPlanClose(){    int retval = interp.close();    if (retval > INTERP_MIN_ERROR) {	print_interp_error(retval);    }    taskplanopen = 0;    return retval;}int emcTaskPlanLine(){    return interp.line();}int emcTaskPlanCommand(char *cmd){    char buf[LINELEN];    strcpy(cmd, interp.command(buf, LINELEN));    return 0;}int emcTaskUpdate(EMC_TASK_STAT * stat){    stat->mode = (enum EMC_TASK_MODE_ENUM) determineMode();    stat->state = (enum EMC_TASK_STATE_ENUM) determineState();    // execState set in main    // interpState set in main    if (emcStatus->motion.traj.id > 0) {	stat->motionLine = emcStatus->motion.traj.id;    }    // currentLine set in main    // readLine set in main    char buf[LINELEN];    strcpy(stat->file, interp.file(buf, LINELEN));    // command set in main    // update active G and M codes    interp.active_g_codes(&stat->activeGCodes[0]);    interp.active_m_codes(&stat->activeMCodes[0]);    interp.active_settings(&stat->activeSettings[0]);    stat->heartbeat++;    return 0;}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合久久中文综合久久牛| 91原创在线视频| 中文字幕一区二区不卡| 56国语精品自产拍在线观看| av亚洲产国偷v产偷v自拍| 无吗不卡中文字幕| 亚洲男人的天堂在线aⅴ视频| 日韩欧美一区二区视频| 91老师国产黑色丝袜在线| 国产精品1区2区3区| 日日摸夜夜添夜夜添国产精品| 中文字幕免费在线观看视频一区| 欧美一区二区三区的| 色狠狠桃花综合| 春色校园综合激情亚洲| 精品中文字幕一区二区小辣椒| 日韩毛片视频在线看| 久久久久久一二三区| 欧美精品乱码久久久久久按摩| 在线影院国内精品| 91在线免费视频观看| 粉嫩aⅴ一区二区三区四区| 卡一卡二国产精品 | 激情av综合网| 日韩不卡一二三区| 五月天精品一区二区三区| 亚洲自拍偷拍麻豆| 一区二区三区免费看视频| 自拍偷拍欧美精品| 国产精品免费网站在线观看| 欧美国产激情一区二区三区蜜月| 精品国产免费视频| 精品国产一二三| 欧美videossexotv100| 日韩欧美激情四射| 欧美电影免费观看高清完整版在线观看 | 国产精品乱人伦| 国产日韩欧美制服另类| 久久影院视频免费| 国产农村妇女毛片精品久久麻豆 | 国产欧美日韩三区| 久久久久久**毛片大全| 欧美激情在线一区二区三区| 日本一区二区三区高清不卡| 国产日产欧美精品一区二区三区| 欧美国产日韩在线观看| 成人免费一区二区三区在线观看 | 亚洲黄色免费电影| 亚洲宅男天堂在线观看无病毒| 亚洲最大成人综合| 午夜精品视频一区| 午夜精品福利视频网站| 蜜臀av性久久久久蜜臀aⅴ四虎| 另类小说一区二区三区| 国产精品一区二区久久不卡| 国产成人av一区二区三区在线观看| 国产成人精品影视| 97久久久精品综合88久久| 欧美自拍偷拍一区| 日韩一区二区三区免费看 | 国产日韩欧美不卡| 亚洲人成小说网站色在线| 亚洲国产综合在线| 久热成人在线视频| thepron国产精品| 欧美三区在线观看| 精品sm捆绑视频| 国产成人久久精品77777最新版本| 成人久久18免费网站麻豆| 色婷婷av一区二区三区大白胸 | 久久丝袜美腿综合| 亚洲视频你懂的| 日韩高清一区在线| 大胆亚洲人体视频| 欧美日韩和欧美的一区二区| 久久亚洲一级片| 亚洲免费资源在线播放| 蜜桃视频在线观看一区二区| 9色porny自拍视频一区二区| 精品1区2区3区| 国产日韩精品一区二区三区在线| 亚洲国产欧美在线人成| 国产一区久久久| av在线播放成人| 精品国产伦一区二区三区免费 | 中文字幕在线播放不卡一区| 日韩激情在线观看| 国产成人精品aa毛片| 欧美日韩三级视频| 欧美国产精品一区二区三区| 亚洲电影一区二区三区| 床上的激情91.| 日韩免费观看高清完整版在线观看| 国产精品久久久久久久久久免费看 | 国产视频亚洲色图| 亚洲成人在线免费| www.亚洲国产| 久久嫩草精品久久久久| 午夜伦欧美伦电影理论片| 成人精品视频一区二区三区尤物| 欧美精品18+| 亚洲美女屁股眼交| 国产精品资源站在线| 欧美丰满少妇xxxbbb| 中文字幕综合网| 国产一区二区中文字幕| 4438x成人网最大色成网站| 亚洲蜜臀av乱码久久精品蜜桃| 国产黄色精品网站| 精品免费国产二区三区| 日韩高清中文字幕一区| 欧美日韩中字一区| 一区二区三区四区在线播放| av亚洲精华国产精华精华| 国产午夜久久久久| 国产一二精品视频| 久久亚洲影视婷婷| 免费美女久久99| 欧美精品九九99久久| 一区二区日韩电影| 色视频成人在线观看免| 国产精品久久国产精麻豆99网站| 国产麻豆精品theporn| 日韩欧美一区二区视频| 日韩二区三区四区| 欧美人牲a欧美精品| 亚洲成人在线网站| 欧美日韩国产精选| 亚洲va欧美va天堂v国产综合| 在线观看av一区| 一区二区三区不卡在线观看| 亚洲黄色小说网站| 91国产免费看| 一区二区三区在线不卡| 色综合天天综合在线视频| 中文字幕综合网| 色狠狠桃花综合| 亚洲国产综合在线| 制服丝袜av成人在线看| 日本不卡一二三| 2017欧美狠狠色| 成人永久看片免费视频天堂| 国产精品免费人成网站| eeuss鲁一区二区三区| 国产精品久久久久精k8| 99国产欧美久久久精品| 一区二区免费看| 欧美色综合网站| 日本aⅴ免费视频一区二区三区| 日韩一区二区免费视频| 美国精品在线观看| 国产亚洲美州欧州综合国| av亚洲精华国产精华精华| 亚洲一区二区三区四区的| 91精品国产一区二区三区香蕉| 久久疯狂做爰流白浆xx| 国产精品网站一区| 91福利精品第一导航| 日本不卡一区二区| 国产欧美日韩不卡| 欧美怡红院视频| 极品少妇一区二区三区精品视频 | 在线观看网站黄不卡| 天天综合日日夜夜精品| 精品久久国产老人久久综合| 成人免费电影视频| 亚洲成人www| 国产欧美日韩亚州综合| 欧美三级欧美一级| 韩日精品视频一区| 尤物av一区二区| 久久女同精品一区二区| 色国产综合视频| 国产一区二区三区国产| 亚洲精品中文字幕乱码三区| 欧美日韩一级二级三级| 国产九九视频一区二区三区| 夜夜嗨av一区二区三区中文字幕| 精品蜜桃在线看| 欧洲精品中文字幕| 国产乱码精品一区二区三区忘忧草| 亚洲同性同志一二三专区| 日韩精品一区二区三区在线播放| 成人网页在线观看| 美女视频网站久久| 亚洲精品视频在线看| 日韩一区二区不卡| 欧洲另类一二三四区| 懂色av一区二区夜夜嗨| 日韩电影一区二区三区| 亚洲日本在线视频观看| 亚洲精品一区二区三区福利 | 国产乱码字幕精品高清av| 亚洲国产精品一区二区久久恐怖片| 国产欧美日韩综合| 日韩精品一区二区三区在线观看 | 日韩精品一区二区在线| 欧美影院精品一区| 91免费视频观看| 国产经典欧美精品|