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

📄 eibdrv_admin.c

📁 欧洲安装总线系统的USB串口接口驱动c程序源代码.软件代码由西门子公司提供
💻 C
📖 第 1 页 / 共 4 页
字号:
   for (i=1;i<5;i++)      fl_ext_formobjects_add_box2(&fdui->WBox[i%4],FL_FLAT_BOX,41,356,0,18,"",            FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest);   fl_set_object_color(fdui->WBox[1],EIBDRV_ADMIN_W1_COL,BOX_COL2);   fl_set_object_color(fdui->WBox[2],EIBDRV_ADMIN_W2_COL,BOX_COL2);   fl_set_object_color(fdui->WBox[3],EIBDRV_ADMIN_W3_COL,BOX_COL2);   fl_set_object_color(fdui->WBox[0],EIBDRV_ADMIN_WFAILED_COL,BOX_COL2);   fl_ext_formobjects_add_text(&obj,FL_NO_BOX,40,335,165,20,"1 - 2 - 3 attempts - failed",         FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest);                     fl_set_object_lcolor(obj,FL_RIGHT_BCOL);      fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);   fl_ext_formobjects_add_text(&fdui->TotWText,FL_FLAT_BOX,40,375,205,20,"",         FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest);                     fl_set_object_lalign(fdui->TotWText,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);   fl_ext_formobjects_add_text(&obj,FL_NO_BOX,260,375,60,20,"total writes",         FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest);                     fl_set_object_lalign(obj,FL_ALIGN_RIGHT|FL_ALIGN_INSIDE);   fl_ext_formobjects_add_text(&fdui->SecWText,FL_FLAT_BOX,40,390,205,20,"",         FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest);                     fl_set_object_lalign(fdui->SecWText,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);   fl_ext_formobjects_add_text(&obj,FL_NO_BOX,260,390,60,20,"writes / sec",         FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest);                     fl_set_object_lalign(obj,FL_ALIGN_RIGHT|FL_ALIGN_INSIDE);   fl_ext_formobjects_add_text(&obj,FL_NO_BOX,35,415,140,15,"Average total time for write",         FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest);                     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);   fl_ext_formobjects_add_text(&obj,FL_NO_BOX,35,430,170,15,"with success in first attempt (ms):",         FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest);                     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);   fl_ext_formobjects_add_text(&fdui->AvgWText,FL_BORDER_BOX,205,425,110,20,"",         FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest);                           fl_ext_formobjects_add_labelframe(FL_ENGRAVED_FRAME,355,325,315,130,"Read (Messages from EIB system)",         FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest);                  fl_ext_formobjects_add_box2(&fdui->RGroundBox,FL_BORDER_BOX,375,355,275,20,"",         FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest);   for (i=0;i<3;i++)      fl_ext_formobjects_add_box2(&fdui->RBox[i],FL_FLAT_BOX,376,356,0,18,"",            FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest);   fl_set_object_color(fdui->RBox[0],EIBDRV_ADMIN_W1_COL,BOX_COL2);   fl_set_object_color(fdui->RBox[1],EIBDRV_ADMIN_W2_COL,BOX_COL2);   fl_set_object_color(fdui->RBox[2],EIBDRV_ADMIN_W3_COL,BOX_COL2);   fl_ext_formobjects_add_text(&obj,FL_NO_BOX,375,335,130,20,"0 - 1 - 2  retranmissions",         FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest);                        fl_set_object_lcolor(obj,FL_RIGHT_BCOL);      fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);   fl_ext_formobjects_add_text(&fdui->TotRText,FL_FLAT_BOX,375,375,205,20,"",         FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest);                        fl_set_object_lalign(fdui->TotRText,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);   fl_ext_formobjects_add_text(&obj,FL_NO_BOX,595,375,60,20,"total reads",         FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest);                        fl_set_object_lalign(obj,FL_ALIGN_RIGHT|FL_ALIGN_INSIDE);   fl_ext_formobjects_add_text(&fdui->SecRText,FL_FLAT_BOX,375,390,205,20,"",         FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest);                        fl_set_object_lalign(fdui->SecRText,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);   fl_ext_formobjects_add_text(&obj,FL_NO_BOX,595,390,60,20,"reads / sec",         FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest);      fl_set_object_lalign(obj,FL_ALIGN_RIGHT|FL_ALIGN_INSIDE);   fl_ext_formobjects_add_btn(&fdui->ResetStatBtn,FL_NORMAL_BUTTON,690,120,90,25,"Reset Statist.",         FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest);         fl_set_object_callback(fdui->ResetStatBtn,TimesTimer_cb,1);   fl_ext_formobjects_add_btn(&fdui->ActStatBtn,FL_NORMAL_BUTTON,690,155,90,25,"Actualize Statist.",         FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest);         fl_set_object_callback(fdui->ActStatBtn,TimesTimer_cb,2);   fl_ext_formobjects_add_btn(&fdui->ResizeBtn,FL_NORMAL_BUTTON,690,280,90,25,"Resize Buffers",         FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest);           fl_set_object_callback(fdui->ResizeBtn,ResizeBtn_cb,0);   fl_ext_formobjects_add_btn(&fdui->ResetProtBtn,FL_NORMAL_BUTTON,690,360,90,25,"Reset Protocol",         FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest);      fl_set_object_callback(fdui->ResetProtBtn,ResetProtBtn_cb,0);   fl_ext_formobjects_add_btn(&fdui->StatusBtn,FL_NORMAL_BUTTON,690,395,90,25,"Request Status",         FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest);         fl_set_object_callback(fdui->StatusBtn,StatusBtn_cb,0);   fl_ext_formobjects_add_btn(&fdui->ExitBtn,FL_NORMAL_BUTTON,690,430,90,25,"Exit",         FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest);         fl_set_object_callback(fdui->ExitBtn,ExitBtn_cb,0);   fdui->TimesTimer=fl_add_timer(FL_HIDDEN_TIMER,1,1,0,0,"");      fl_set_object_callback(fdui->TimesTimer,TimesTimer_cb,0);   fl_end_form();   fdui->VisForm->fdui = fdui;   return fdui;}FD_ResizeBufferForm *create_form_ResizeBufferForm(void){  FL_OBJECT *obj;   FD_ResizeBufferForm *fdui = (FD_ResizeBufferForm *) fl_calloc(1, sizeof(*fdui));   fdui->VisForm = fl_bgn_form(FL_NO_BOX, 340, 190);   fl_ext_formobjects_add_box(FL_UP_BOX,0,0,340,190,"",         FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest);         fl_ext_formobjects_add_labelframe(FL_ENGRAVED_FRAME,20,20,190,65,"Process Buffer Size",         FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest);         fl_ext_formobjects_add_text(&obj,FL_NO_BOX,35,30,55,20,"WRITE:",         FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest);            fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);   fl_ext_formobjects_add_text(&obj,FL_NO_BOX,35,55,55,20,"READ:",         FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest);            fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);   fl_ext_formobjects_add_inp(&fdui->WProcBufSizeEditfield,FL_NORMAL_INPUT,         115,30,80,20,"Size:",0,FL_RETURN_END_CHANGED,         FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest);               fl_set_object_callback(fdui->WProcBufSizeEditfield,Null_cb,0);      fl_set_input_filter(fdui->WProcBufSizeEditfield,dec_input_filter);   fl_ext_formobjects_add_inp(&fdui->RProcBufSizeEditfield,FL_NORMAL_INPUT,         115,55,80,20,"Size:",0,FL_RETURN_END_CHANGED,         FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest);                  fl_set_object_callback(fdui->RProcBufSizeEditfield,Null_cb,0);      fl_set_input_filter(fdui->RProcBufSizeEditfield,dec_input_filter);   fl_ext_formobjects_add_labelframe(FL_ENGRAVED_FRAME,20,105,190,65,"Message Buffer Size",         FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest);         fl_ext_formobjects_add_text(&obj,FL_NO_BOX,35,115,55,20,"WRITE:",         FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest);            fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);   fl_ext_formobjects_add_text(&obj,FL_NO_BOX,35,140,55,20,"READ:",         FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest);            fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);   fl_ext_formobjects_add_inp(&fdui->WMsgBufSizeEditfield,FL_NORMAL_INPUT,         115,115,80,20,"Size:",0,FL_RETURN_END_CHANGED,         FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest);               fl_set_object_callback(fdui->WMsgBufSizeEditfield,Null_cb,0);      fl_set_input_filter(fdui->WMsgBufSizeEditfield,dec_input_filter);   fl_ext_formobjects_add_inp(&fdui->RMsgBufSizeEditfield,FL_NORMAL_INPUT,         115,140,80,20,"Size:",0,FL_RETURN_END_CHANGED,         FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest);                  fl_set_object_callback(fdui->RMsgBufSizeEditfield,Null_cb,0);      fl_set_input_filter(fdui->RMsgBufSizeEditfield,dec_input_filter);   fl_ext_formobjects_add_btn(&fdui->OkBtn,FL_NORMAL_BUTTON,230,110,90,25,"OK",         FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest);                     fl_set_object_callback(fdui->OkBtn,OkBtn_cb,0);   fl_ext_formobjects_add_btn(&fdui->CancelBtn,FL_NORMAL_BUTTON,230,145,90,25,"Cancel",         FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest);                     fl_set_object_callback(fdui->CancelBtn,CancelBtn_cb,0);      fl_end_form();   fdui->VisForm->fdui = fdui;   return fdui;}/*  ---------------------------------------------------------------------------     --------------------------------------------------------------------------- */void cleanup(void *arg,int btn){     /*  Schliessen offener Dateien und Beenden der visuellen Forms, Rueckgabe        der zentralen administrator Struktur.    */      Eib_bcu2_admin *admin=(Eib_bcu2_admin *)arg;      switch(admin->cleanup_code)   {  case 3:  fl_hide_form(admin->MainForm->VisForm);               fl_free_form(admin->MainForm->VisForm);               fl_free_form(admin->ResizeBufferForm->VisForm);      case 2:  close(admin->eib_fd);      case 1:  returnEib_bcu2_admin(admin);               fl_finish();               exit(3);   }}int main(int argc,char *argv[]){  int len,i,result;   char BaudrateText[10];   Eib_bcu2_admin *admin;      admin=getEib_bcu2_admin();   if (read_PanelContentA(EIBDRV_ADMIN_PANELFILE,&admin->Panels)!=EIBDRV_ADMIN_PANELFILESIZE)   {  printf("eibdrv_admin: Panelfile %s not found!\n",EIBDRV_ADMIN_PANELFILE);      exit(2);   }      if (argc!=2)   {  printf("usage: eibdrv_admin device\n");      exit(1);   }   fl_set_icm_color(FL_INACTIVE_COL,200,200,200);   fl_initialize(&argc,argv,"eibdrv_admin",0,0);   fl_set_border_width(2);   admin->cleanup_code=1;      if ((admin->eib_fd=open(argv[1],O_RDWR|O_NONBLOCK))<0)   {  switch(result=errno)      {  case ENOENT:  fl_ext_panel1(admin->Panels,admin,cleanup);                       break;         case EBUSY:   fl_ext_panel1(admin->Panels+1,admin,cleanup);                       break;         case ENOBUFS: fl_ext_panel1(admin->Panels+2,admin,cleanup);                       break;         default:      fl_ext_panel1(admin->Panels+3,admin,cleanup);                       break;      }      fl_do_forms();   }   admin->cleanup_code=2;      if (((admin->ftstation_settings->mode=ioctl(admin->eib_fd,FT_GET_MODE))<0) ||       ((admin->ftstation_settings->symb_baudrate=ioctl(admin->eib_fd,FT_GET_BAUDRATE))<0) ||       ((len=ioctl(admin->eib_fd,FT_GET_PORT_LENGTH))<0) ||       (ioctl(admin->eib_fd,FT_GET_OUTBUF_SIZE,&(admin->ftstation_settings->outbuf_size))<0) ||       (ioctl(admin->eib_fd,FT_GET_WPBUF_SIZE,&(admin->ftstation_settings->wpbuf_size))<0) ||       (ioctl(admin->eib_fd,FT_GET_RPBUF_SIZE,&(admin->ftstation_settings->rpbuf_size))<0) ||       (ioctl(admin->eib_fd,FT_GET_RPBUF_MSGSIZE,&(admin->ftstation_settings->rpbuf_msgbuf_size))<0))   {  switch(result=errno)      {  case EBUSY:  fl_ext_panel1(admin->Panels+4,admin,cleanup);                      break;         case EFAULT: fl_ext_panel1(admin->Panels+5,admin,cleanup);                      break;         case EACCES: printf("no access rights\n");                      break;      }      fl_do_forms();   }      admin->ftstation_settings->port=(char *)malloc((len+1)*sizeof(char));   if ((ioctl(admin->eib_fd,FT_GET_PORT,admin->ftstation_settings->port)<0) ||       (ioctl(admin->eib_fd,FT_RESET_STAT)<0))   {  switch(result=errno)      {  case EFAULT: fl_ext_panel1(admin->Panels+5,admin,cleanup);                      break;      }      fl_do_forms();   }   time(&admin->stat_reset_time);   admin->stat_get_time=admin->stat_reset_time;   admin->act_interval=60;   admin->stat_plan_time=admin->stat_get_time+admin->act_interval;            admin->MainForm=create_form_MainForm();   admin->ResizeBufferForm=create_form_ResizeBufferForm();   admin->MainForm->VisForm->u_vdata=admin;   admin->ResizeBufferForm->VisForm->u_vdata=admin;      fl_show_form(admin->MainForm->VisForm,FL_PLACE_CENTER,FL_TRANSIENT,"eibdrv_admin");   admin->cleanup_code=3;        fl_set_object_label(admin->MainForm->DeviceText,argv[1]);   switch(admin->ftstation_settings->mode)   {  case FT_STANDARDMODE:               fl_set_object_label(admin->MainForm->ModeText,"Standard Mode");              break;      case FT_SERVERMODE:              fl_set_object_label(admin->MainForm->ModeText,"Server Mode");              break;   }      i=0;   while(i<=17)   {  if (baudrates[i][0]==admin->ftstation_settings->symb_baudrate)      {  sprintf(&BaudrateText[0],"%i",baudrates[i][1]);         fl_set_object_label(admin->MainForm->BaudrateText,&BaudrateText[0]);         break;      }      i++;   }      fl_set_object_label(admin->MainForm->PortText,admin->ftstation_settings->port);         fl_freeze_form(admin->MainForm->VisForm);      admin->ftstation_stat->overflow=1;   actualize_MainForm_BufSiz(admin);   actualize_MainForm_Stat(admin);   actualize_MainForm_Status(admin,EIBDRV_ADMIN_STATUS_NOTSET);   fl_unfreeze_form(admin->MainForm->VisForm);      fl_set_timer(admin->MainForm->TimesTimer,1);   fl_do_forms();      return 0;}

⌨️ 快捷键说明

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