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

📄 eibdrv_admin.c

📁 欧洲安装总线系统的USB串口接口驱动c程序源代码.软件代码由西门子公司提供
💻 C
📖 第 1 页 / 共 4 页
字号:
      sprintf(helpstring,"%li",stat->outbuf_count);      fl_set_object_label(form->WMsgOccText,helpstring);         fl_redraw_object(form->WProcOccGroundBox);      if (stat->wpbuf_count==settings->wpbuf_size)      {  form->WProcOccBox->w=96;         fl_set_object_color(form->WProcOccBox,EIBDRV_ADMIN_COUNT100_COL,BOX_COL2);      }      else      {  form->WProcOccBox->w=96.0*((float)stat->wpbuf_count/(float)settings->wpbuf_size);         fl_set_object_color(form->WProcOccBox,EIBDRV_ADMIN_COUNT_COL,BOX_COL2);      }      fl_redraw_object(form->WProcOccBox);      fl_redraw_object(form->RProcOccGroundBox);         if (stat->rpbuf_count==settings->rpbuf_size)      {  form->RProcOccBox->w=96;         fl_set_object_color(form->RProcOccBox,EIBDRV_ADMIN_COUNT100_COL,BOX_COL2);      }      else      {  form->RProcOccBox->w=96.0*((float)stat->rpbuf_count/(float)settings->rpbuf_size);         fl_set_object_color(form->RProcOccBox,EIBDRV_ADMIN_COUNT_COL,BOX_COL2);      }      fl_redraw_object(form->RProcOccBox);      fl_redraw_object(form->WMsgOccGroundBox);      if (stat->outbuf_count==settings->outbuf_size)      {  form->WMsgOccBox->w=96;         fl_set_object_color(form->WMsgOccBox,EIBDRV_ADMIN_COUNT100_COL,BOX_COL2);      }      else      {  form->WMsgOccBox->w=96.0*((float)stat->outbuf_count/(float)settings->outbuf_size);         fl_set_object_color(form->WMsgOccBox,EIBDRV_ADMIN_COUNT_COL,BOX_COL2);      }      fl_redraw_object(form->WMsgOccBox);   }      fl_redraw_object(form->WGroundBox);   fl_redraw_object(form->RGroundBox);    if (stat->overflow==1)   {  fl_set_object_label(form->TotWText,"");      fl_set_object_label(form->TotRText,"");      fl_set_object_label(form->SecWText,"");      fl_set_object_label(form->SecRText,"");      fl_set_object_label(form->AvgWText,"");      free(helpstring);            return;   }         diff_time=difftime(admin->stat_get_time,admin->stat_reset_time);   sprintf(helpstring,"%li - %li - %li - %li",stat->write[1],stat->write[2],stat->write[3],stat->write[0]);   fl_set_object_label(form->TotWText,helpstring);   sprintf(helpstring,"%li - %li - %li",stat->read[0],stat->read[1],stat->read[2]);   fl_set_object_label(form->TotRText,helpstring);   if (diff_time>0)   {  sprintf(helpstring,"%3.2f - %3.2f - %3.2f - %3.2f",stat->write[1]/diff_time,stat->write[2]/diff_time,         stat->write[3]/diff_time,stat->write[0]/diff_time);      fl_set_object_label(form->SecWText,helpstring);      sprintf(helpstring,"%3.2f - %3.2f - %3.2f",stat->read[0]/diff_time,stat->read[1]/diff_time,         stat->read[2]/diff_time);      fl_set_object_label(form->SecRText,helpstring);   }   else   {  fl_set_object_label(form->SecWText,"");      fl_set_object_label(form->SecRText,"");   }     rw_ges=0;   for (i=0;i<4;i++) rw_ges+=stat->write[i];   rw_pt=273.0/rw_ges;   lowerbound=41;   for (i=1;i<5;i++)   {  if (stat->write[i%4]>0)      {  form->WBox[i%4]->x=lowerbound;         form->WBox[i%4]->w=314-lowerbound;         fl_redraw_object(form->WBox[i%4]);         lowerbound+=(int)(stat->write[i%4]*rw_pt);      }   }         rw_ges=0;   for (i=0;i<3;i++) rw_ges+=stat->read[i];   rw_pt=273.0/rw_ges;   lowerbound=376;   for (i=0;i<3;i++)   {  if (stat->read[i]>0)      {  form->RBox[i]->x=lowerbound;         form->RBox[i]->w=649-lowerbound;         fl_redraw_object(form->RBox[i]);         lowerbound+=(int)(stat->read[i]*rw_pt);      }   }   if (stat->write[1]>0)      {  avg_w1time=((stat->total_w1time.tv_sec+stat->total_w1time.tv_usec/1000000.0)*1000)/stat->write[1];      if (avg_w1time<1000)      {  sprintf(helpstring,"%i ms",avg_w1time);         fl_set_object_label(form->AvgWText,helpstring);      }      else         fl_set_object_label(form->AvgWText,"");   }   else      fl_set_object_label(form->AvgWText,"");   free(helpstring);}void actualize_MainForm_Times(Eib_bcu2_admin *admin,time_t act_time){  unsigned long diff_stat_reset,diff_stat_get,diff_stat_plan;   char timestring[9];   diff_stat_reset=(unsigned long int)difftime(act_time,admin->stat_reset_time);   if (diff_stat_reset<=359999)   {  sprintf(&timestring[0],"%02li:%02li:%02li",diff_stat_reset/3600,         (diff_stat_reset%3600)/60,diff_stat_reset%60);      fl_set_object_label(admin->MainForm->TimeResetText,&timestring[0]);   }   else      fl_set_object_label(admin->MainForm->TimeResetText,"");   diff_stat_get=(unsigned long int)difftime(act_time,admin->stat_get_time);   if (diff_stat_get<=359999)   {  sprintf(&timestring[0],"%02li:%02li:%02li",diff_stat_get/3600,         (diff_stat_get%3600)/60,diff_stat_get%60);      fl_set_object_label(admin->MainForm->TimeActualizeText,&timestring[0]);   }   else      fl_set_object_label(admin->MainForm->TimeActualizeText,"");         diff_stat_plan=(unsigned long int)difftime(admin->stat_plan_time,act_time);   if (diff_stat_plan<=359999)   {  sprintf(&timestring[0],"%02li:%02li:%02li",diff_stat_plan/3600,         (diff_stat_plan%3600)/60,diff_stat_plan%60);      fl_set_object_label(admin->MainForm->TimeNextText,&timestring[0]);   }   else      fl_set_object_label(admin->MainForm->TimeNextText,"");}   void actualize_MainForm_Status(Eib_bcu2_admin *admin,int status){  switch(status)   {  case EIBDRV_ADMIN_STATUS_NOTSET:              fl_set_object_label(admin->MainForm->StatusBox,"");              fl_set_object_color(admin->MainForm->StatusBox,BOX_COL1,BOX_COL2);              break;      case EIBDRV_ADMIN_STATUS_RESPONDED:              fl_set_object_label(admin->MainForm->StatusBox,"RESPONDED");              fl_set_object_color(admin->MainForm->StatusBox,                 EIBDRV_ADMIN_STATUS_RESPONDED_COL,BOX_COL2);              break;      case EIBDRV_ADMIN_STATUS_FAILED:              fl_set_object_label(admin->MainForm->StatusBox,"FAILED");              fl_set_object_color(admin->MainForm->StatusBox,                 EIBDRV_ADMIN_STATUS_FAILED_COL,BOX_COL2);              break;   }              }void panel_cb(void *arg,int btn){  ;  }   void Null_cb(FL_OBJECT *obj,long data){  ;  }void ResizeBufferPanel_cb(void *arg,int btn){  Eib_bcu2_admin *admin=(Eib_bcu2_admin *)arg;      fl_activate_form(admin->MainForm->VisForm);}   void ActIntervalCounter_cb(FL_OBJECT *obj, long data){  Eib_bcu2_admin *admin=(Eib_bcu2_admin *)obj->form->u_vdata;      admin->act_interval=fl_get_counter_value(obj)*60;   admin->stat_plan_time=time(NULL)+admin->act_interval;}void ResetProtBtn_cb(FL_OBJECT *obj, long data){  int result;   Eib_bcu2_admin *admin=(Eib_bcu2_admin *)obj->form->u_vdata;      if (ioctl(admin->eib_fd,FT_RESET)<0)   {  switch(result=errno)      {  case ENORESET: fl_ext_panel1(admin->Panels+9,admin,panel_cb);                        break;      }   }   else      fl_ext_panel1(admin->Panels+10,admin,panel_cb);}void StatusBtn_cb(FL_OBJECT *obj, long data){  int result;   Eib_bcu2_admin *admin=(Eib_bcu2_admin *)obj->form->u_vdata;      if (ioctl(admin->eib_fd,FT_RESP_STATUS)<0)   {  switch(result=errno)      {  case ENORESPSTATUS: fl_freeze_form(admin->MainForm->VisForm);                             actualize_MainForm_Status(admin,EIBDRV_ADMIN_STATUS_FAILED);                             fl_unfreeze_form(admin->MainForm->VisForm);                             fl_ext_panel1(admin->Panels+7,admin,panel_cb);                             break;      }   }   else   {  fl_freeze_form(admin->MainForm->VisForm);      actualize_MainForm_Status(admin,EIBDRV_ADMIN_STATUS_RESPONDED);      fl_ext_panel1(admin->Panels+6,admin,panel_cb);      fl_unfreeze_form(admin->MainForm->VisForm);   } }void ExitBtn_cb(FL_OBJECT *obj, long data){  Eib_bcu2_admin *admin=(Eib_bcu2_admin *)obj->form->u_vdata;      fl_hide_form(admin->MainForm->VisForm);   fl_free_form(admin->MainForm->VisForm);   fl_free_form(admin->ResizeBufferForm->VisForm);   close(admin->eib_fd);   returnEib_bcu2_admin(admin);   fl_finish();   exit(0);}void ResizeBtn_cb(FL_OBJECT *obj, long data){  char *helpstring=(char *)malloc(50*sizeof(char));   Eib_bcu2_admin *admin=(Eib_bcu2_admin *)obj->form->u_vdata;         sprintf(helpstring,"%li",admin->ftstation_settings->wpbuf_size);   fl_set_input(admin->ResizeBufferForm->WProcBufSizeEditfield,helpstring);     sprintf(helpstring,"%li",admin->ftstation_settings->rpbuf_size);   fl_set_input(admin->ResizeBufferForm->RProcBufSizeEditfield,helpstring);     sprintf(helpstring,"%li",admin->ftstation_settings->outbuf_size);   fl_set_input(admin->ResizeBufferForm->WMsgBufSizeEditfield,helpstring);     sprintf(helpstring,"%li",admin->ftstation_settings->rpbuf_msgbuf_size);   fl_set_input(admin->ResizeBufferForm->RMsgBufSizeEditfield,helpstring);        fl_deactivate_form(admin->MainForm->VisForm);   fl_show_form(admin->ResizeBufferForm->VisForm,FL_PLACE_CENTER,FL_TRANSIENT,"eibdrv_admin");   admin->resbufform_visible=FL_EXT_VISIBLE;      free(helpstring);}void OkBtn_cb(FL_OBJECT *obj, long data){  int result_wpbuf=0;   int result_rpbuf=0;   int result_outbuf=0;   int result_rpbuf_msgbuf=0;   int deact_flag=0;   unsigned long new_size;   Eib_bcu2_admin *admin=(Eib_bcu2_admin *)obj->form->u_vdata;       if (strcmp(fl_get_input(admin->ResizeBufferForm->WProcBufSizeEditfield),"")!=0)   {  new_size=(unsigned long)atol(fl_get_input(admin->ResizeBufferForm->WProcBufSizeEditfield));      if (ioctl(admin->eib_fd,FT_SET_WPBUF_SIZE,new_size)<0)         result_wpbuf=errno;      else         admin->ftstation_settings->wpbuf_size=new_size;   }   if (strcmp(fl_get_input(admin->ResizeBufferForm->RProcBufSizeEditfield),"")!=0)   {  new_size=(unsigned long)atol(fl_get_input(admin->ResizeBufferForm->RProcBufSizeEditfield));      if (ioctl(admin->eib_fd,FT_SET_RPBUF_SIZE,new_size)<0)         result_rpbuf=errno;      else         admin->ftstation_settings->rpbuf_size=new_size;   }   if (strcmp(fl_get_input(admin->ResizeBufferForm->WMsgBufSizeEditfield),"")!=0)   {  new_size=(unsigned long)atol(fl_get_input(admin->ResizeBufferForm->WMsgBufSizeEditfield));      if (ioctl(admin->eib_fd,FT_SET_OUTBUF_SIZE,new_size)<0)         result_outbuf=errno;

⌨️ 快捷键说明

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