📄 field.c
字号:
#include<gnome.h>#include"field.h"#include"switch.h"#include"sg.h"#include"main.h"#define Fd_Num 25#define NUL1 0#define Line_Dist 60.0; int m=0; int i=0; GnomeCanvasItem *line_XDJG; GnomeCanvasItem *line_1BG; GnomeCanvasItem *line_XJG; GnomeCanvasItem *line_D1G; GnomeCanvasItem *line_1_15WG; GnomeCanvasItem *line_1DG; GnomeCanvasItem *line_3DG; GnomeCanvasItem *line_5_11DG; GnomeCanvasItem *line_7_9DG; GnomeCanvasItem *line_13DG; GnomeCanvasItem *line_15DG; GnomeCanvasItem *line_17DG; GnomeCanvasItem *line_19DG; GnomeCanvasItem *line_1G; GnomeCanvasItem *line_2G; GnomeCanvasItem *line_3G; GnomeCanvasItem *line_4G; GnomeCanvasItem *line_5G; GnomeCanvasItem *line_1AG; GnomeCanvasItem *line_D4G; GnomeCanvasItem *line_2_8DG; GnomeCanvasItem *line_4_6DG; GnomeCanvasItem *line_10DG; GnomeCanvasItem *line_12_14DG; GnomeCanvasItem *line_SJG; GnomeCanvasItem *line_12FB_14DB_DG; GnomeCanvasItem *line_12DB_DG; GnomeCanvasItem *line_12FB_14FB_DG; GnomeCanvasItem *line_5DB_11DB_DG; GnomeCanvasItem *line_5FB_DG; GnomeCanvasItem *line_11FB_DG; GnomeCanvasItem *line_7DB_9DB_DG; GnomeCanvasItem *line_7FB_DG; GnomeCanvasItem *line_9FB_DG; GnomeCanvasItem *line_2DB_8DB_DG; GnomeCanvasItem *line_2FB_DG; GnomeCanvasItem *line_8FB_DG; GnomeCanvasItem *line_4DB_6DB_DG; GnomeCanvasItem *line_4FB_DG; GnomeCanvasItem *line_6FB_DG; GnomeCanvasItem *line_1DB_DG; GnomeCanvasItem *line_1FB_DG; GnomeCanvasItem *line_3DB_DG; GnomeCanvasItem *line_3FB_DG; GnomeCanvasItem *line_13DB_DG; GnomeCanvasItem *line_13FB_DG; GnomeCanvasItem *line_15DB_DG; GnomeCanvasItem *line_15FB_DG; GnomeCanvasItem *line_17DB_DG; GnomeCanvasItem *line_17FB_DG; GnomeCanvasItem *line_19DB_DG; GnomeCanvasItem *line_19FB_DG; GnomeCanvasItem *line_10DB_DG; GnomeCanvasItem *line_10FB_DG;/*******道岔上的点********/ GnomeCanvasItem *dot1_1DB; GnomeCanvasItem *dot1_2DB; GnomeCanvasItem *dot3_1DB; GnomeCanvasItem *dot3_2DB; GnomeCanvasItem *dot5_1DB; GnomeCanvasItem *dot5_2DB; GnomeCanvasItem *dot7_1DB; GnomeCanvasItem *dot7_2DB; GnomeCanvasItem *dot9_1DB; GnomeCanvasItem *dot9_2DB; GnomeCanvasItem *dot11_1DB; GnomeCanvasItem *dot11_2DB; GnomeCanvasItem *dot13_1DB; GnomeCanvasItem *dot13_2DB; GnomeCanvasItem *dot15_1DB; GnomeCanvasItem *dot15_2DB; GnomeCanvasItem *dot17_1DB; GnomeCanvasItem *dot17_2DB; GnomeCanvasItem *dot19_1DB; GnomeCanvasItem *dot19_2DB; GnomeCanvasItem *dot2_1DB; GnomeCanvasItem *dot2_2DB; GnomeCanvasItem *dot4_1DB; GnomeCanvasItem *dot4_2DB; GnomeCanvasItem *dot6_1DB; GnomeCanvasItem *dot6_2DB; GnomeCanvasItem *dot8_1DB; GnomeCanvasItem *dot8_2DB; GnomeCanvasItem *dot10_1DB; GnomeCanvasItem *dot10_2DB; GnomeCanvasItem *dot12_1DB; GnomeCanvasItem *dot12_2DB; GnomeCanvasItem *dot14_1DB; GnomeCanvasItem *dot14_2DB; GnomeCanvasItem *dot1_1FB; GnomeCanvasItem *dot1_2FB; GnomeCanvasItem *dot3_1FB; GnomeCanvasItem *dot3_2FB; GnomeCanvasItem *dot5_1FB; GnomeCanvasItem *dot5_2FB; GnomeCanvasItem *dot7_1FB; GnomeCanvasItem *dot7_2FB; GnomeCanvasItem *dot9_1FB; GnomeCanvasItem *dot9_2FB; GnomeCanvasItem *dot11_1FB; GnomeCanvasItem *dot11_2FB; GnomeCanvasItem *dot13_1FB; GnomeCanvasItem *dot13_2FB; GnomeCanvasItem *dot15_1FB; GnomeCanvasItem *dot15_2FB; GnomeCanvasItem *dot17_1FB; GnomeCanvasItem *dot17_2FB; GnomeCanvasItem *dot19_1FB; GnomeCanvasItem *dot19_2FB; GnomeCanvasItem *dot2_1FB; GnomeCanvasItem *dot2_2FB; GnomeCanvasItem *dot4_1FB; GnomeCanvasItem *dot4_2FB; GnomeCanvasItem *dot6_1FB; GnomeCanvasItem *dot6_2FB; GnomeCanvasItem *dot8_1FB; GnomeCanvasItem *dot8_2FB; GnomeCanvasItem *dot10_1FB; GnomeCanvasItem *dot10_2FB; GnomeCanvasItem *dot12_1FB; GnomeCanvasItem *dot12_2FB; GnomeCanvasItem *dot14_1FB; GnomeCanvasItem *dot14_2FB;gboolean Ctr_1_DB=FALSE, Ctr_3_DB=FALSE, Ctr_5_DB=FALSE, Ctr_7_DB=FALSE, Ctr_9_DB=FALSE, Ctr_11_DB=FALSE, Ctr_13_DB=FALSE, Ctr_15_DB=FALSE, Ctr_17_DB=FALSE, Ctr_19_DB=FALSE, Ctr_2_DB=FALSE, Ctr_4_DB=FALSE, Ctr_6_DB=FALSE, Ctr_8_DB=FALSE, Ctr_10_DB=FALSE, Ctr_12_DB=FALSE, Ctr_14_DB=FALSE, Ctr_1_FB=FALSE, Ctr_3_FB=FALSE, Ctr_5_FB=FALSE, Ctr_7_FB=FALSE, Ctr_9_FB=FALSE, Ctr_11_FB=FALSE, Ctr_13_FB=FALSE, Ctr_15_FB=FALSE, Ctr_17_FB=FALSE, Ctr_19_FB=FALSE, Ctr_2_FB=FALSE, Ctr_4_FB=FALSE, Ctr_6_FB=FALSE, Ctr_8_FB=FALSE, Ctr_10_FB=FALSE, Ctr_12_FB=FALSE, Ctr_14_FB=FALSE, Ctr_12_14_DG_1=FALSE, Ctr_12_14_DG_2=FALSE;int FdNode_StatTab[Fd_Num][9]={ 0x2000,0,20,260,30,NUL1,0x800b,NUL1,NUL1, // XDJG 0x2001,0,50,260,90,0x800b,0x8003,NUL1,NUL1, // 1BG 0x2002,0,15,320,25,NUL1,0x8019,NUL1,NUL1, // XJG 0x2003,0,30,380,30,0x801b,0x8000,NUL1,NUL1, // D1G 0x2004,0,130,380,80,0x8001,0x8006,NUL1,NUL1, // 1-15WG 0x2005,7,60,380,30,0x8000,0x4000,0x4000,NUL1, // 1DG 0x2006,5,140,320,80,0x4001,0x8002,0x4001,NUL1, // 3DG 0x2007,10,140,320,20,0x4005,0x4002,0x4005,0x4002, // 5-11DG 0x2008,9,140,260,20,0x4003,0x4004,0x4003,0x4004, // 7-9DG 0x2009,8,210,320,110,0x8005,0x4006,0x4006,NUL1, // 13DG 0x200a,6,280,380,50,0x4007,0x8008,0x4007,NUL1, // 15DG 0x200b,3,210,260,110,0x8007,0x4008,0x4008,NUL1, // 17DG 0x200c,4,280,380,50,0x8008,0x4009,0x4009,NUL1, // 19DG 0x200d,0,350,320,130,0x8009,0x8015,NUL1,NUL1, // 1G 0x200e,0,350,380,130,0x800e,0x8013,NUL1,NUL1, // 2G 0x200f,0,350,260,130,0x800c,0x8016,NUL1,NUL1, // 3G 0x2010,0,350,440,130,0x800f,0x8017,NUL1,NUL1, // 4G 0x2011,0,350,200,130,0x800d,0x8018,NUL1,NUL1, // 5G 0x2012,0,680,380,80,0x8010,0x8014,NUL1,NUL1, // 1AG 0x8013,0,680,320,95,0x8011,NUL1,NUL1,NUL1, // D4G 0x2014,10,610,380,30,0x400a,0x400d,0x400a,0x400d, // 2-8DG 0x2015,9,610,320,30,0x400c,0x400b,0x400c,0x400b, // 4-6DG 0x2016,1,610,380,130,0x400e,0x400a,0x400e,NUL1, // 10DG 0x2017,11,610,320,110,0x400f,0x8012,0x400f,0x4010 // 12-14DG 0x2018,0,760,380,40,0x801d,NUL1,NUL1,NUL1 };/*画区段的函数,25个区段*/int Show_Field(GtkWidget*canvas){ /* attach the shared memory area */ aw=(struct area_window *)shmat(shmid_win, 0, 0); int j,k,m,n,type,dir,lon,idleft,idright,idsw1,idsw2; gchar *cor; double fx,fy,f1x,f1y,f2x,f2y,f3x,f3y,f4x,f4y,f5x,f5y, f6x,f6y,f7x,f7y,f8x,f8y,f9x,f9y,f10x, f10y,f11x,f11y; unsigned char gdj00, gdj0,gdj1,gdj2; for(i=0;i<Fd_Num;i++){ type= FdNode_StatTab[i][1]; fx=FdNode_StatTab[i][2]; fy=FdNode_StatTab[i][3]; lon=FdNode_StatTab[i][4]; gdj1=aw->FdNode_DynTab[i][1]; g_print("/*** %d /\n",gdj1); gdj2=aw->FdNode_DynTab[i][2];g_print("/*** %d /\n",gdj2); if((gdj1==0xaa)&&(gdj2==NUL1)) cor="blue"; else if((gdj1==0xaa)&&((gdj2==0xaa)||(gdj2==0xa5))) cor="white"; else cor="red"; if(type==0){ f1x=fx+lon; f1y=fy; draw_no_swfd(fx,fy,f1x,f1y,canvas,cor); } else if(type==1){ idleft=FdNode_StatTab[i][5]; idright=FdNode_StatTab[i][6]; idsw1=FdNode_StatTab[i][7]; k=idsw1-0x4000; gdj0=aw->SwNode_DynTab[k][1]; if(gdj0==0xaa) dir=0; /* DB*/ else if(gdj0==0x55) dir=1; /*FB*/ if((idleft>=0x8000)&&(idleft<=0x801d)){ j=idleft-0x8000; f1x=SgNode_StatTab[j][2]; f1y=SgNode_StatTab[j][3]; } else if((idleft>=0x4000)&&(idleft<=0x4010)){ j=idleft-0x4000; f1x=SwNode_StatTab[j][2]*10.0; f1y=SwNode_StatTab[j][3]*10.0; } else if((idleft>=0x2000)&&(idleft<=0x2017)){ j=idleft-0x2000; f1x=FdNode_StatTab[j][2]; f1y=FdNode_StatTab[j][3]; } f2x=fx-lon; f2y=fy; f4x=f2x; f4y=f2y+Line_Dist; f3x=f1x-(60.0/3); f3y=f4y; f8x=f1x-7; f8y=f1y; f9x=f1x-3; f9y=f1y+9; draw_onesw_fd(fx,fy,f1x,f1y,f2x,f2y,f3x,f3y,f4x,f4y,f8x,f8y,f9x,f9y,dir,cor,canvas); } else if(type==3){ idleft=FdNode_StatTab[i][5]; idright=FdNode_StatTab[i][6]; idsw1=FdNode_StatTab[i][7]; k=idsw1-0x4000; gdj0=aw->SwNode_DynTab[k][1]; if(gdj0==0xaa) dir=0; else if(gdj0==0x55) dir=1; if((idright>=0x8000)&&(idright<=0x801d)){ j=idright-0x8000; f1x=SgNode_StatTab[j][2]; f1y=SgNode_StatTab[j][3]; } else if((idright>=0x4000)&&(idright<=0x4010)){ j=idright-0x4000; f1x=SwNode_StatTab[j][2]*10.0; f1y=SwNode_StatTab[j][3]*10.0; } else if((idright>=0x2000)&&(idright<=0x2017)){ j=idright-0x2000; f1x=FdNode_StatTab[j][2]; f1y=FdNode_StatTab[j][3]; } f2x=f1x+lon; f2y=fy; f4x=f2x; f4y=f2y-Line_Dist; f3x=f1x+(60.0/3); f3y=f4y; f8x=f1x+7; f8y=f1y; f9x=f1x+3; f9y=f1y-9; draw_onesw_fd(fx,fy,f1x,f1y,f2x,f2y,f3x,f3y,f4x,f4y,f8x,f8y,f9x,f9y,dir,cor,canvas); } else if(type==4){/* */ idleft=FdNode_StatTab[i][5]; idright=FdNode_StatTab[i][6]; idsw1=FdNode_StatTab[i][7]; k=idsw1-0x4000; gdj0=aw->SwNode_DynTab[k][1]; if(gdj0==0xaa) dir=0; else if(gdj0==0x55) dir=1; if((idright>=0x8000)&&(idright<=0x801d)){ j=idright-0x8000; f1x=SgNode_StatTab[j][2]; f1y=SgNode_StatTab[j][3]; } else if((idright>=0x4000)&&(idright<=0x4010)){ j=idright-0x4000; f1x=SwNode_StatTab[j][2]*10.0; f1y=SwNode_StatTab[j][3]*10.0; } else if((idright>=0x2000)&&(idright<=0x2017)){ j=idright-0x2000; f1x=FdNode_StatTab[j][2]; f1y=FdNode_StatTab[j][3]; } f2x=f1x+lon; f2y=fy; f4x=f2x; f4y=f2y+Line_Dist; f3x=f1x+(60.0/3); f3y=f4y; f8x=f1x+7; f8y=f1y; f9x=f1x+3; f9y=f1y+9; draw_onesw_fd(fx,fy,f1x,f1y,f2x,f2y,f3x,f3y,f4x,f4y,f8x,f8y,f9x,f9y,dir,cor,canvas); } else if(type==5){/*,,,,*/ idleft=FdNode_StatTab[i][5]; idright=FdNode_StatTab[i][6]; idsw1=FdNode_StatTab[i][7]; k=idsw1-0x4000; gdj0=aw->SwNode_DynTab[k][1]; if(gdj0==0xaa) dir=0; else if(gdj0==0x55) dir=1; if((idleft>=0x8000)&&(idleft<=0x801d)){ j=idleft-0x8000; f1x=SgNode_StatTab[j][2]; f1y=SgNode_StatTab[j][3]; } else if((idleft>=0x4000)&&(idleft<=0x4010)){ j=idleft-0x4000; f1x=SwNode_StatTab[j][2]*10.0; f1y=SwNode_StatTab[j][3]*10.0; } else if((idleft>=0x2000)&&(idleft<=0x2017)){ j=idleft-0x2000; f1x=FdNode_StatTab[j][2]; f1y=FdNode_StatTab[j][3]; } f2x=f1x-lon; f2y=fy; f4x=f1x-30.0/3; f4y=f2y+30.0; f3x=f4x; f3y=f4y; f8x=f1x-7; f8y=f1y; f9x=f1x-3; f9y=f1y+9; draw_onesw_fd(fx,fy,f1x,f1y,f2x,f2y,f3x,f3y,f4x,f4y,f8x,f8y,f9x,f9y,dir,cor,canvas); } else if(type==6){ idleft=FdNode_StatTab[i][5]; idright=FdNode_StatTab[i][6]; idsw1=FdNode_StatTab[i][7]; k=idsw1-0x4000; gdj0=aw->SwNode_DynTab[k][1]; if(gdj0==0xaa) dir=0; else if(gdj0==0x55) dir=1; if((idleft>=0x8000)&&(idleft<=0x801d)){ j=idleft-0x8000; f1x=SgNode_StatTab[j][2]; f1y=SgNode_StatTab[j][3]; } else if((idleft>=0x4000)&&(idleft<=0x4010)){ j=idleft-0x4000; f1x=SwNode_StatTab[j][2]*10.0; f1y=SwNode_StatTab[j][3]*10.0; } else if((idleft>=0x2000)&&(idleft<=0x2017)){ j=idleft-0x2000; f1x=FdNode_StatTab[j][2]; f1y=FdNode_StatTab[j][3]; } f2x=f1x-lon; f2y=fy; f4x=f1x-30.0/3; f4y=f1y-30.0; f3x=f4x; f3y=f4y; f8x=f1x-7; f8y=f1y; f9x=f1x-3; f9y=f1y-9; draw_onesw_fd(fx,fy,f1x,f1y,f2x,f2y,f3x,f3y,f4x,f4y,f8x,f8y,f9x,f9y,dir,cor,canvas); } else if(type==7){ idleft=FdNode_StatTab[i][5]; idright=FdNode_StatTab[i][6]; idsw1=FdNode_StatTab[i][7]; k=idsw1-0x4000;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -