⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 popmenu.c

📁 linux下的人机对话编程
💻 C
📖 第 1 页 / 共 3 页
字号:
   { gnome_canvas_item_hide(Item_D2);     buttonD2=TRUE;   }  else   {gnome_canvas_item_show(Item_D2);     buttonD2=FALSE;   } return 1;}   gint show_D4(){  if(buttonD4==FALSE)   { gnome_canvas_item_hide(Item_D4);     buttonD4=TRUE;   }  else   {gnome_canvas_item_show(Item_D4);     buttonD4=FALSE;   } return 1;}   gint show_D6(){  if(buttonD6==FALSE)   { gnome_canvas_item_hide(Item_D6);     buttonD6=TRUE;   }  else   {gnome_canvas_item_show(Item_D6);     buttonD6=FALSE;   } return 1;}   gint show_D8(){  if(buttonD8==FALSE)   { gnome_canvas_item_hide(Item_D8);     buttonD8=TRUE;   }  else   {gnome_canvas_item_show(Item_D8);     buttonD8=FALSE;   } return 1;}   gint show_X(){  if(buttonX==FALSE)   { gnome_canvas_item_hide(Item_X);     buttonX=TRUE;   }  else   {gnome_canvas_item_show(Item_X);     buttonX=FALSE;   } return 1;}   gint show_XD(){  if(buttonXD==FALSE)   { gnome_canvas_item_hide(Item_XD);     buttonXD=TRUE;   }  else   {gnome_canvas_item_show(Item_XD);     buttonXD=FALSE;   } return 1;}   gint show_S(){  if(buttonS==FALSE)   { gnome_canvas_item_hide(Item_S);     buttonS=TRUE;   }  else   {gnome_canvas_item_show(Item_S);     buttonS=FALSE;   } return 1;}   gboolean PressedLamp(GtkWidget*widget,GdkEvent*event,gpointer data)/*响应信号灯操作*/{     gint timer_show,i;  id=GPOINTER_TO_INT(data);    if(event->type==GDK_BUTTON_PRESS)  {      GdkEventButton*buttonevent=(GdkEventButton*)event;      if(buttonevent->button==1)    {                   switch(id)        { case 0x8000:              	    { if(BD1==FALSE)/*此标志为控制灯只允许一次操作*/                           {  Item_D1=widget;                 timer_show=gtk_timeout_add(1000,show_D1,NULL); 	         Oprate_Data();                    BD1=TRUE;                 break;	      }       	    else  	      break;	    }         case 0x8001:	   {               if(BD3==FALSE)	     { Item_D3=widget;                  timer_show=gtk_timeout_add(1000,show_D3,NULL);	      Oprate_Data();              BD3=TRUE;              break;             }	   else 	     break;	    }         case 0x8002:	    { if(BD5==FALSE)              {              Item_D5=widget;                  timer_show=gtk_timeout_add(1000,show_D5,NULL);	      Oprate_Data();              BD5=TRUE;              break;	      }	    else	      break;	    }        case 0x8003:	  { if(BD7==FALSE)	    {              Item_D7=widget;                  timer_show=gtk_timeout_add(1000,show_D7,NULL);	      Oprate_Data();	      BD7=TRUE;              break;	    }	  else	    break;	  }        case 0x8004:	  {if(BD9==FALSE)	    {              Item_D9=widget;                  timer_show=gtk_timeout_add(1000,show_D9,NULL);	      Oprate_Data();	      BD9=TRUE;              break;	    }	  else	    break;	  }        case 0x8005:	  {if(BD11==FALSE)	    {              Item_D11=widget;                  timer_show=gtk_timeout_add(1000,show_D11,NULL);	      Oprate_Data();	      BD11=TRUE;              break;	    }	  else	    break;	    }         case 0x8006:	   {if(BD13==FALSE)	     {              Item_D13=widget;                  timer_show=gtk_timeout_add(1000,show_D13,NULL);	      Oprate_Data();	      BD13=TRUE;              break;	    }	   else	     break;	   }         case 0x8007:	   {if(BD15==FALSE)	     {              Item_D15=widget;                  timer_show=gtk_timeout_add(1000,show_D15,NULL);	      Oprate_Data();	      BD15=TRUE;              break;	    }	   else	     break;	   }         case 0x8008:	   {if(BD17==FALSE)	     {              Item_D17=widget;                  timer_show=gtk_timeout_add(1000,show_D17,NULL);	      Oprate_Data();	      BD17=TRUE;              break;	    }	   else	     break;	   }         case 0x8009:	   {if(BD19==FALSE)	     {              Item_D19=widget;                  timer_show=gtk_timeout_add(1000,show_D19,NULL);	      Oprate_Data();	      BD19=TRUE;              break;	    }	   else	     break;	   }         case 0x800a:	   {if(BDX==FALSE)	     {              Item_X=widget;                  timer_show=gtk_timeout_add(1000,show_X,NULL);	      Oprate_Data();	      BDX=TRUE;              break;	    }	   else	     break;	   }         case 0x800b:	   {if(BDXD==FALSE)	     {              Item_XD=widget;                  timer_show=gtk_timeout_add(1000,show_XD,NULL);	      Oprate_Data();	      BDXD=TRUE;              break;	    }	   else	     break;	   }	 case 0x8010:	   {if(BD2==FALSE)	     {              Item_D2=widget;                  timer_show=gtk_timeout_add(1000,show_D2,NULL);	      Oprate_Data();	      BD2=TRUE;              break;	    }	   else	     break;	   }	 case 0x8011:	   {if(BD4==FALSE)	     {              Item_D4=widget;                  timer_show=gtk_timeout_add(1000,show_D4,NULL);	      Oprate_Data();	      BD4=TRUE;              break;	    }	   else	     break;	   }	 case 0x8012:	   {if(BD6==FALSE)	     {              Item_D6=widget;                  timer_show=gtk_timeout_add(1000,show_D6,NULL);	      Oprate_Data();	      BD6=TRUE;              break;	    }	   else	     break;	   }	 case 0x8013:	   {if(BD8==FALSE)	     {              Item_D8=widget;                  timer_show=gtk_timeout_add(1000,show_D8,NULL);	      Oprate_Data();	      BD8=TRUE;              break;	    }	   else	     break;	   }	 case 0x8014:	   {if(BDS==FALSE)	     {              Item_S=widget;                  timer_show=gtk_timeout_add(1000,show_S,NULL);	      Oprate_Data();	      BDS=TRUE;              break;	    }	   else	     break;	   }	 default:              break;	}          }  }     } int Oprate_Data(){/*处理灯\小按钮\功能按钮函数*/ if(rebutton==FALSE)       {int i;       for(i=0;i<5;i++)       Com_Code[i]=0;       Button1=id;       rebutton=TRUE; /*rebutton控制当按下时ID号传递到Button1还是Button2*/     if((Button1==0x300e)||(Button1==0x3010)||(Button1==0x3011)||(Button1==0x300d)||(Button1==0x300f))               Call_C(Button1);      }  else{       Button2=id;       rebutton=FALSE;      }     if((Button1!=0)&&(Button2!=0))      {       if((Button1>=0x8000)&&(Button1<=0x8018)) Call_A();       else if((Button1>=0x3001)&&(Button1<=0x3025)) Call_B();       else {}      }}	   void Call_A(){int i;  if((Button2>=0x8000)&&(Button2<=0x8018))    {       M=Valid_Oper1(Button1,Button2);      // Button1=0;      // Button2=0;       g_print("%d\n",M);       if(M==21)         {         /* SySInfo(1);	    Send_To(FM,Com_Code);*/       }       else if(M==20)      {           Com_Code[0]=0x3001;           Com_Code[1]=Button1;           Com_Code[2]=0;           Com_Code[3]=Button2;           Com_Code[4]=1;	   for(i=0;i<5;i++)	     g_print("Com_Code[%d]=%d\n",i,Com_Code[i]);	   exchange(Com_Code);	            socket_com("192.168.1.5",8000,codstr);	 /*	if(Work_Cpu==TRUE)           send_to(Work_Cpu,Com_Code);        else            send_to(Back_Cpu,Com_Code);	   send_to(FM,Com_Code);*/      }       Button1=0;      Button2=0;  }    else   {     /* SySInfo(1);	Send_To(FM,Com_Code);*/   }                                                                                  }     void Call_B(){  if(Button1==0x3002) Call_B1();/*总取消*/  else if((Button1==0x3003)||(Button1==0x3013)) Call_B2();/*总人解  */  else if(Button1==0x300a) Call_B3();/*进路故障*/  else if(Button1==0x3012) Call_B4();/*重复开放*/    else if(Button1==0x3022) Call_B5();/*关信号*/  else if(Button1==0x3006) Call_B6();/*道岔单锁*/  else if(Button1==0x3007) Call_B7();/*道岔单解*/  else if(Button1==0x3008) Call_B8();/*道岔封锁*/  else if(Button1==0x3009) Call_B9();/*道岔解封*/  else if(Button1==0x3004) Call_B10();/* 总定位*/  else if(Button1==0x3005) Call_B11();/* 总反位*/  else if(Button1==0x300d) Call_B12();/*S引导总锁闭*/  else if(Button1==0x300f) Call_B13();/*X引导总锁闭*/    else SySInfo(1);}void Call_B1(){int i;  if((Button2>=0x8000)&&(Button2<=0x8018))   {           Com_Code[0]=0x3002;           Com_Code[1]=Button2;           Com_Code[2]=0;           Com_Code[3]=0;           Com_Code[4]=1;         for(i=0;i<5;i++)	     g_print("Com_Code[%d]=%d\n",i,Com_Code[i]);            /* if(Work_Cpu==TRUE)     send_to(Work_Cpu,Com_Code);    else send_to(Back_Cpu,Com_Code);    send_to(FM,Com_Code);*/ } else{           Com_Code[0]=0x3002;           Com_Code[1]=Button2;           Com_Code[2]=0;           Com_Code[3]=0;           Com_Code[4]=1;      for(i=0;i<5;i++)	     g_print("Com_Code[%d]=%d\n",i,Com_Code[i]);                }}void Call_B2(){int i; if((Button2>=0x8000)&&(Button2<=0x8018))    {      if(Button1==0x3003){           Com_Code[0]=0x3003;           Com_Code[1]=Button2;           Com_Code[2]=0;           Com_Code[3]=0;           Com_Code[4]=1;          for(i=0;i<5;i++)	     g_print("Com_Code[%d]=%d\n",i,Com_Code[i]);               /*  if(Work_Cpu==TRUE)         send_to(Work_Cpu,Com_Code);     else send_to(Back_Cpu,Com_Code);     send_to(FM,Com_Code);*/     }     else if(Button1==0x3013){           Com_Code[0]=0x3013;           Com_Code[1]=Button2;           Com_Code[2]=0;           Com_Code[3]=0;           Com_Code[4]=1;         for(i=0;i<5;i++)	     g_print("Com_Code[%d]=%d\n",i,Com_Code[i]);               /*   if(Work_Cpu==TRUE)         send_to(Work_Cpu,Com_Code);     else send_to(Back_Cpu,Com_Code);     send_to(FM,Com_Code);*/     }   } else   {   if((Button2>=0x2000)&&(Button2<=0x2017))     {           Com_Code[0]=0x300b;           Com_Code[1]=Button2;           Com_Code[2]=0;           Com_Code[3]=0;           Com_Code[4]=1;       for(i=0;i<5;i++)	     g_print("Com_Code[%d]=%d\n",i,Com_Code[i]);               /*   if(Work_Cpu==TRUE)          send_to(Work_Cpu,Com_Code);      else send_to(Back_Cpu,Com_Code);      send_to(FM,Com_Code);*/     }   else      {     SySInfo(1);           Com_Code[0]=0x300b;           Com_Code[1]=Button1;           Com_Code[2]=0;           Com_Code[3]=Button2;           Com_Code[4]=1;        for(i=0;i<5;i++)	     g_print("Com_Code[%d]=%d\n",i,Com_Code[i]);             }   } }void Call_B3(){int i;  if((Button2>=0x8000)&&(Button2<=0x8018))   {           Com_Code[0]=0x300a;           Com_Code[1]=Button2;           Com_Code[2]=0;           Com_Code[3]=0;           Com_Code[4]=1;            for(i=0;i<5;i++)	     g_print("Com_Code[%d]=%d\n",i,Com_Code[i]);                   /*  if(Work_Cpu==TRUE)     send_to(Work_Cpu,Com_Code);   else send_to(Back_Cpu,Com_Code);   send_to(FM,Com_Code);*/  } else  {    SySInfo(1);           Com_Code[0]=0x3002;           Com_Code[1]=Button1;           Com_Code[2]=0;           Com_Code[3]=Button2;           Com_Code[4]=1;          for(i=0;i<5;i++)	     g_print("Com_Code[%d]=%d\n",i,Com_Code[i]);             }}void Call_B4(){int i;   if((Button2>=0x8000)&&(Button2<=0x8018))    {           Com_Code[0]=0x3012;           Com_Code[1]=Button2;           Com_Code[2]=0;           Com_Code[3]=0;           Com_Code[4]=1;        for(i=0;i<5;i++)	     g_print("Com_Code[%d]=%d\n",i,Com_Code[i]);            /*  if(Work_Cpu==TRUE)     send_to(Work_Cpu,Com_Code);

⌨️ 快捷键说明

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