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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? trace.c

?? 非常重要的嵌入式單片機開發語言 是美國德州儀器的MSP430系列的系統語言
?? C
?? 第 1 頁 / 共 4 頁
字號:
                            /***** close CNC program *****/
static void close_CNC_file()
{    int hfile;
     goto_label(0,NULL,0);          /* reset label-table */
     if (CNC_level<0) return;
     hfile = CNC_stack[CNC_level].hfile;
     if ((--CNC_stack[CNC_level].nloop)<=0)
     {    nCycle   =CNC_stack[CNC_level].ncycle;
          nMacro   =CNC_stack[CNC_level].nmacro;
          nData    =CNC_stack[CNC_level].ndata;
          PLC_flag =CNC_stack[CNC_level].nflag;
          CNC_Ocode=CNC_stack[CNC_level].name;
          CNC_Ncode=CNC_stack[CNC_level].ncode;
          if (hfile) _lclose(hfile);
          pop_stack(0);
          if ((--CNC_level)<0) return;
          hfile = CNC_stack[CNC_level].hfile;
     } else
     {    CNC_stack[CNC_level].pfile=0L;
          CNC_Ncode=0;
     }
     if (hfile)
          _llseek(hfile, CNC_stack[CNC_level].pfile, SEEK_SET);
}
                        /***** close all CNC program *****/
static void clear_CNC_file()
{    int hfile;
     goto_label(0,NULL,0);          /* reset label-table */
     for ( ; CNC_level>=0; CNC_level--)
     {    hfile = CNC_stack[CNC_level].hfile;
          if (hfile) _lclose(hfile);
     }
     CNC_level=-1;
}

/*=========================================================
  function about coordinate transformation

  absolute_to_local()   : absolute to local coordinate
  local_to_absolute()   : local to absolute coordinate
  local_to_machine()    : local to machine coordinate
  machine_to_local()    : machine to local coordinate
  absolute_to_machine() : absolute to machine coordinate
  machine_to_absolute() : machine to absolute coordinate
=========================================================*/
                 /***** absolute to local coordinate *****/
static void absolute_to_local(s,d)
LPAXIS s,d;      /* source and destination */
{    *d=*s;
     if (nPolar)  polar_effect(s,d,&CNC_polar);
     if (nUnit)   scaling_effect(s,d,&CNC_unit0,&CNC_unitf);
     if (nRotate) rotate_effect(s,d,&CNC_rotate);
     if (nScale)  scaling_effect(s,d,&CNC_scale0,&CNC_scalef);
}
                 /***** local to absolute coordinate *****/
static void local_to_absolute(s,d)
LPAXIS s,d;      /* source and destination */
{    *d=*s;
     if (nScale)   scaling_backward(s,d,&CNC_scale0,&CNC_scalef);
     if (nRotate)  rotate_backward(s,d,&CNC_rotate);
     if (nUnit)    scaling_backward(s,d,&CNC_unit0,&CNC_unitf);
     if (nPolar)   polar_backward(s,d,&CNC_polar);
}
                  /***** local to machine coordinate *****/
static void local_to_machine(s,d)
LPAXIS s,d;       /* source and destination */
{    shift_effect(s,d,&CNC_local);
     shift_effect(s,d,&(CNC_working[nWork]));
     shift_effect(s,d,&(CNC_working[0]));
}
                  /***** machine to local coordinate *****/
static void machine_to_local(s,d)
LPAXIS s,d;       /* source and destination */
{    shift_backward(s,d,&(CNC_working[0]));
     shift_backward(s,d,&(CNC_working[nWork]));
     shift_backward(s,d,&CNC_local);
}
               /***** absolute to machine coordinate *****/
static void absolute_to_machine(s,d)
LPAXIS s,d;    /* source and destination */
{    absolute_to_local(s,d);
     local_to_machine(d,d);
}
               /***** machine to absolute coordinate *****/
static void machine_to_absolute(s,d)
LPAXIS s,d;    /* source and destination */
{    machine_to_local(s,d);
     local_to_absolute(d,d);
}

/*=========================================================
  functions about input data in absuolut coordinate

  get_axis_absolute()   : get axis   in absolute coordinate
  get_center_absolute() : get center in absolute coordinate
=========================================================*/
                        /***** get filled input axis *****/
static void get_axis_absolute(a)
LPAXIS a;     /* decoded data */
{    int i,n; char c;
     for (i=0; i<6; i++)
     {    if (i>=PLC_axis) { a->v[i]=0; continue; }
          c = CNC_Amap[i];
          n = (c > 'G') ? (c-'A'-1) : (c-'A');
          a->v[i] = CNC_last.v[i];
          if (lpCmd->f[n])
          {    if (nInc) a->v[i] += get_value_input(c,nDot);
               else      a->v[i]  = get_value_input(c,nDot);
          }
     }
}
                      /***** get filled input center *****/
static void get_center_absolute(a)
LPAXIS a;     /* decoded data */
{    int i,n; char c;
     for (i=0; i<6; i++)
     {    if (i>=PLC_axis) { a->v[i]=0; continue; }
          c = CNC_Cmap[i];
          n = (c > 'G') ? (c-'A'-1) : (c-'A');
          a->v[i] = CNC_last.v[i];
          if (lpCmd->f[n]) a->v[i] += get_value_input(c,nDot);
     }
}

/*=========================================================
  functions about input reading

  get_axis_input()   : get input axis   coordinate
  get_center_input() : get input center coordinate
  get_value_input()  : get one field of input value
  get_axis_number()  : get no. of axis sequence
=========================================================*/
                    /***** get input axis coordinate *****/
static void get_axis_input(a)
LPAXIS a;     /* decoded data */
{    int i;
     for (i=0;i<PLC_axis;i++) a->v[i]=get_value_input(CNC_Amap[i],nDot);
     for (   ;i<6;       i++) a->v[i]=0;
}
                  /***** get input center coordinate *****/
static void get_center_input(a)
LPAXIS a;     /* decoded data */
{    int i;
     for (i=0;i<PLC_axis;i++) a->v[i]=get_value_input(CNC_Cmap[i],nDot);
     for (   ;i<6;       i++) a->v[i]=0;
}
                              /***** get input value *****/
static double get_value_input(c,d)
char c;     /* control code */
int  d;     /* decimal no. */
{    int n; LPPATH lp;
     if (c<'A' || c>'Z') return(0.L);
     n = (c > 'G') ? (c-'A'-1) : (c-'A');
     if (lpCmd->f[n]==0) return(0.L);
     if (lpCmd->f[n]<10)
     {    switch (d)
          {
          case 1 : return(lpCmd->v[n]/10.L);
          case 2 : return(lpCmd->v[n]/100.L);
          case 3 : return(lpCmd->v[n]/1000.L);
          case 4 : return(lpCmd->v[n]/10000.L);
          case 5 : return(lpCmd->v[n]/100000.L);
          case 6 : return(lpCmd->v[n]/1000000.L);
          }
     }
     return((double)(lpCmd->v[n]));
}
                     /***** get no. of axis sequence *****/
static int get_axis_number(c)
char c;    /* control code */
{    int i;
     for (i=0; i<6; i++) { if (c==CNC_Amap[i]) return(i); }
     return(0);
}

/*=========================================================
  functions about input value check

  is_axis_exist()       : is n'th axis exist ??
  is_any_axis_exist()   : is  any axis exist ??
  is_all_axis_exist()   : are all axes exist ??
  is_center_exist()     : is n'th center exist ??
  is_any_center_exist() : is  any center exist ??
  is_all_center_exist() : are all center exist ??
  is_input_exist()      : is input value exist ??
=========================================================*/
                             /***** check input axes *****/
static BOOL is_axis_exist(n)
int n;     /* n'th axis */
{    return(is_input_exist(CNC_Amap[n]));
}
                   /***** is any axis field exist ?? *****/
static BOOL is_any_axis_exist()
{    int i;
     for (i=0; i<PLC_axis; i++) { if (is_axis_exist(i))  return(TRUE); }
     return(FALSE);
}
                  /***** are any axis field exist ?? *****/
static BOOL is_all_axis_exist()
{    int i;
     for (i=0; i<PLC_axis; i++) { if (!is_axis_exist(i)) return(FALSE); }
     return(TRUE);
}
                           /***** check input center *****/
static BOOL is_center_exist(n)
int n;     /* n'th axis */
{    return(is_input_exist(CNC_Cmap[n]));
}
                 /***** is any center field exist ?? *****/
static BOOL is_any_center_exist()
{    int i;
     for (i=0; i<PLC_axis; i++) { if (is_center_exist(i))  return(TRUE); }
     return(FALSE);
}
                /***** are all center field exist ?? *****/
static BOOL is_all_center_exist()
{    int i;
     for (i=0; i<PLC_axis; i++) { if (!is_center_exist(i)) return(FALSE); }
     return(TRUE);
}
                  /***** is the input field exist ?? *****/
static BOOL is_input_exist(c)
char c;       /* control code */
{    if (c<'A' || c>'Z') return(FALSE);
     c = (c>'G') ? (c-'A'-1) : (c-'A');
     if (lpCmd->f[c])       return(TRUE);
     return(FALSE);
}

/*=========================================================
  CNC_command_decoding()
        decoding one line of CNC command,
=========================================================*/
static void CNC_command_decoding()
{    if (skip_command())     return;         /* group 24 */

     if (plane_command())    return;         /* group 02 */
     if (absolute_command()) return;         /* group 03 */
     if (limit_command())    return;         /* group 04 */
     if (feed_command())     return;         /* group 05 */
     if (unit_command())     return;         /* group 06 */
     if (cutter_command())   return;         /* group 07 */
     if (tool_command())     return;         /* group 08 */
     if (return_command())   return;         /* group 10 */
     if (scaling_command())  return;         /* group 11 */
     if (speed_command())    return;         /* group 13 */
     if (working_command())  return;         /* group 14 */
     if (stop_command())     return;         /* group 15 */
     if (rotate_command())   return;         /* group 16 */
     if (polar_command())    return;         /* group 17 */
     if (offset_command())   return;         /* group 18 */

     if (cycle_command())    return;         /* group 09 */
     if (macro_command())    return;         /* group 12 */
     if (data_command())     return;         /* group 19 */
     if (special_command())  return;         /* group 00 */
     if (calling_command())  return;         /* calling  */

     if (motion_command())   return;         /* group 01 */
     if (MST_command())      return;         /* MST code */
     preset_calculation();
}

/*=========================================================
  CNC_collect_command()
          collect one line of CNC command

  command.g[n]  : G-code Group #n
  command.g[24] : skip number
  command.f[k]  : digit length of 'A'--'Z' code (except 'G')
                  =0xff for floating data
  command.v[k]  : digit value  of 'A'--'Z' code (except 'G')
=========================================================*/
static BOOL collect_CNC_command()
{    int i,flag; char code; static char buffer[250];
     static float value; static data_t d; static int n;
                                 /* clear command buffer */
     for (i=0; i<25; i++) { lpCmd->g[i]=lpCmd->f[i]=0; lpCmd->v[i]=0.; }
                                       /* get parameters */
     for (i=0,flag=FALSE; i<50; i++)
     {    if (i==0) code=get_first_CNC_field(buffer);
          else      code=get_next_CNC_field(buffer);
          if (code==0)   return(flag);
          if (code==255) return(FALSE);
          flag=TRUE;
          if (code=='/')              /* skip command ?? */
          {    gSkip='/';
          } else if (code!='G')       /* general data ?? */
          {    n = (code>'G') ? (code-'A'-1) : (code-'A');
               if (buffer[1]!='(')    /* digital data ?? */
               {    if (strchr(buffer,'.')) lpCmd->f[n]=0xff;
                    else                    lpCmd->f[n]=strlen(buffer)-1;
                    sscanf(buffer+1, "%g", &value);
                    lpCmd->v[n] = value;
               } else                /* equation data ?? */
               {    lpCmd->f[n]=0xff;
                    if (!data_calculation(buffer+1,&d)) return(FALSE);
                    switch (d.type & 0x7)
                    {
                    case BIT : lpCmd->v[n]=*(char  *)d.value; break;
                    case CHR : lpCmd->v[n]=*(char  *)d.value; break;
                    case INT : lpCmd->v[n]=*(int   *)d.value; break;
                    case LNG : lpCmd->v[n]=*(long  *)d.value; break;
                    case FLT : lpCmd->v[n]=*(float *)d.value; break;
                    }
               }
          } else                         /* G command !! */
          {    sscanf(buffer+1, "%d", &n);
               switch (n)
               {
               case 4 :  case 9 :
               case 27 : case 28 : case 29 : case 30 : case 33 :
               case 52 : case 53 : case 60 : case 92 :
                                     lpCmd->g[0]=n;   break;
               case 0 :  case 1 :  case 2 :  case 3 :
                                     lpCmd->g[1]=n+1; break;
               case 17 : case 18 : case 19 :
                                     lpCmd->g[2]=n;   break;
               case 90 : case 91 :
                                     lpCmd->g[3]=n;   break;
               case 22 : case 23 :
                                     lpCmd->g[4]=n;   break;
               case 94 : case 95 :
                                     lpCmd->g[5]=n;   break;
               case 20 : case 21 :
                                     lpCmd->g[6]=n;   break;
               case 40 : case 41 : case 42 :
                                     lpCmd->g[7]=n;   break;
               case 43 : case 44 : case 49 :
                                     lpCmd->g[8]=n;   break;
               case 80 : case 81 : case 82 : case 83 : case 84 :
               case 85 : case 86 : case 87 : case 88 : case 89 :
                                     lpCmd->g[9]=n;   break;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜桃免费网站一区二区三区| 亚洲欧洲日韩av| 看电视剧不卡顿的网站| 欧美一区二区视频在线观看2020 | 麻豆成人91精品二区三区| 91精品国产91热久久久做人人| 日韩精品成人一区二区三区| 日韩欧美123| 懂色av一区二区三区免费看| 一色屋精品亚洲香蕉网站| 在线观看一区日韩| 精品一区二区综合| 亚洲欧洲韩国日本视频| 在线欧美日韩精品| 免费久久精品视频| 国产精品美女久久久久高潮| 91麻豆国产自产在线观看| 亚洲123区在线观看| 国产肉丝袜一区二区| 色婷婷av一区二区三区软件| 首页亚洲欧美制服丝腿| 久久婷婷久久一区二区三区| 99久久精品免费| 成人ar影院免费观看视频| 亚洲品质自拍视频| 欧美一区二区在线视频| 波多野结衣欧美| 奇米影视在线99精品| 日韩美女精品在线| 精品播放一区二区| 欧美专区亚洲专区| 国产精品一二三| 日韩国产精品久久久久久亚洲| 国产欧美一区二区三区在线看蜜臀 | 亚洲国产精品t66y| 在线播放欧美女士性生活| 国产超碰在线一区| 蜜臂av日日欢夜夜爽一区| 亚洲四区在线观看| 精品成人一区二区| 在线成人小视频| 日本道免费精品一区二区三区| 国产美女精品人人做人人爽| 日韩精品成人一区二区三区| 亚洲欧美日韩一区二区| 日韩精品一区二| 欧美日本一区二区在线观看| 91在线看国产| 成人激情图片网| 狠狠色丁香久久婷婷综合_中| 亚洲愉拍自拍另类高清精品| 亚洲国产精品国自产拍av| 欧美一区二区美女| 欧美精品视频www在线观看| www.欧美亚洲| 成人丝袜18视频在线观看| 激情久久五月天| 久久www免费人成看片高清| 三级久久三级久久久| 亚洲丰满少妇videoshd| 亚洲精品国产第一综合99久久| 日本一区二区三区四区在线视频| 2欧美一区二区三区在线观看视频| 欧美另类变人与禽xxxxx| 欧美日韩一卡二卡| 欧美自拍偷拍午夜视频| 在线国产亚洲欧美| 91久久精品网| 在线看一区二区| 欧美色视频在线观看| 欧美日韩国产一级| 精品婷婷伊人一区三区三| 欧美日韩视频在线第一区| 欧美网站大全在线观看| 欧美午夜片在线观看| 欧美日韩久久久| 制服丝袜在线91| 日韩免费看网站| 久久嫩草精品久久久久| 久久久精品国产免大香伊| 久久久久久久久久美女| 欧美国产一区二区在线观看| 国产精品久久久久久户外露出| ...中文天堂在线一区| 亚洲免费看黄网站| 亚洲午夜久久久| 91蝌蚪国产九色| 色婷婷精品大在线视频| 欧美日韩精品免费观看视频| 91精品国产综合久久久久久久 | 一区精品在线播放| 亚洲精品亚洲人成人网在线播放| 一区二区三区在线视频观看| 一区二区三区不卡在线观看| 婷婷夜色潮精品综合在线| 久久97超碰国产精品超碰| 岛国精品在线播放| 色域天天综合网| 51午夜精品国产| 欧美国产日韩一二三区| 亚洲最大成人网4388xx| 美日韩一区二区| 成人污污视频在线观看| 欧美在线综合视频| 精品国产91乱码一区二区三区| 国产欧美在线观看一区| 亚洲国产成人va在线观看天堂| 青青草成人在线观看| 成人av动漫在线| 欧美丰满嫩嫩电影| 国产精品嫩草99a| 日韩影院精彩在线| 国产成人午夜99999| 欧美日韩国产综合草草| 国产日韩欧美精品在线| 性做久久久久久久免费看| 岛国精品在线播放| 91精品国模一区二区三区| 中文字幕在线观看一区| 美国欧美日韩国产在线播放| 91看片淫黄大片一级在线观看| 欧美一区二区久久| 亚洲欧美偷拍卡通变态| 久久精品噜噜噜成人88aⅴ| 91视频在线观看| 精品国产99国产精品| 亚洲福利国产精品| 成人黄色777网| 26uuu久久综合| 日韩精品乱码av一区二区| 91麻豆6部合集magnet| 2022国产精品视频| 日韩激情一二三区| 欧美专区日韩专区| 国产精品国产三级国产普通话三级 | 91年精品国产| 久久女同精品一区二区| 日韩成人伦理电影在线观看| 91福利社在线观看| 一区在线中文字幕| 国模冰冰炮一区二区| 欧美一卡二卡在线| 午夜精品福利视频网站| 91国产精品成人| 亚洲人123区| 不卡一区二区三区四区| 26uuu国产日韩综合| 麻豆精品国产91久久久久久| 欧美日韩国产123区| 亚洲一区在线电影| 色婷婷综合久久久中文一区二区| 国产精品久久久久精k8| 风流少妇一区二区| 国产亚洲短视频| 欧美在线视频全部完| 一区二区成人在线视频| av成人免费在线| 国产精品久久久久久久久图文区 | 日韩黄色片在线观看| 在线免费观看一区| 亚洲精品国产a久久久久久| 91麻豆福利精品推荐| 成人欧美一区二区三区视频网页 | 制服视频三区第一页精品| 首页国产欧美久久| 7777精品伊人久久久大香线蕉经典版下载| 一区二区三区自拍| 欧美曰成人黄网| 亚洲高清免费一级二级三级| 欧美日韩久久久久久| 日韩不卡在线观看日韩不卡视频| 在线成人免费视频| 久久精品噜噜噜成人av农村| 欧美精品一区二区三区视频| 国产一区二区调教| 国产欧美日韩亚州综合| 99久久精品免费看国产免费软件| 亚洲人妖av一区二区| 欧洲精品视频在线观看| 午夜精品福利一区二区三区蜜桃| 制服丝袜亚洲播放| 韩国成人精品a∨在线观看| 久久久不卡网国产精品一区| 国产福利91精品一区二区三区| 一色屋精品亚洲香蕉网站| 91精品办公室少妇高潮对白| 天天综合网天天综合色| 欧美成人在线直播| 春色校园综合激情亚洲| 一区二区在线看| 欧美一区二区三区在线视频| 国产剧情一区二区三区| 亚洲另类春色校园小说| 欧美一区二区三区免费观看视频| 精品一区二区日韩| 亚洲欧美日本在线| 欧美一级爆毛片| 成人丝袜18视频在线观看| 亚洲va在线va天堂| 亚洲国产高清不卡|