📄 eibdrv_admin.c
字号:
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(×tring[0],"%02li:%02li:%02li",diff_stat_reset/3600, (diff_stat_reset%3600)/60,diff_stat_reset%60); fl_set_object_label(admin->MainForm->TimeResetText,×tring[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(×tring[0],"%02li:%02li:%02li",diff_stat_get/3600, (diff_stat_get%3600)/60,diff_stat_get%60); fl_set_object_label(admin->MainForm->TimeActualizeText,×tring[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(×tring[0],"%02li:%02li:%02li",diff_stat_plan/3600, (diff_stat_plan%3600)/60,diff_stat_plan%60); fl_set_object_label(admin->MainForm->TimeNextText,×tring[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 + -