📄 eibdrv_admin.c
字号:
else admin->ftstation_settings->outbuf_size=new_size; } if (strcmp(fl_get_input(admin->ResizeBufferForm->RMsgBufSizeEditfield),"")!=0) { new_size=(unsigned long)atol(fl_get_input(admin->ResizeBufferForm->RMsgBufSizeEditfield)); if (ioctl(admin->eib_fd,FT_SET_RPBUF_MSGSIZE,new_size)<0) result_rpbuf_msgbuf=errno; else admin->ftstation_settings->rpbuf_msgbuf_size=new_size; } fl_freeze_form(admin->MainForm->VisForm); actualize_MainForm_BufSiz(admin); fl_unfreeze_form(admin->MainForm->VisForm); if ((result_wpbuf==ENOMEM) || (result_rpbuf==ENOMEM) || (result_outbuf==ENOMEM) || (result_rpbuf_msgbuf==ENOMEM)) { fl_ext_panel1(admin->Panels+11,admin,ResizeBufferPanel_cb); deact_flag=1; } if ((result_wpbuf==ESIZE) || (result_rpbuf==ESIZE) || (result_outbuf==ESIZE) || (result_rpbuf_msgbuf==ESIZE)) { fl_ext_panel1(admin->Panels+12,admin,ResizeBufferPanel_cb); deact_flag=1; } fl_hide_form(admin->ResizeBufferForm->VisForm); if (deact_flag==0) fl_activate_form(admin->MainForm->VisForm); time(&admin->stat_plan_time);}void CancelBtn_cb(FL_OBJECT *obj, long data){ Eib_bcu2_admin *admin=(Eib_bcu2_admin *)obj->form->u_vdata; fl_hide_form(admin->ResizeBufferForm->VisForm); admin->resbufform_visible=FL_EXT_INVISIBLE; fl_activate_form(admin->MainForm->VisForm);}void TimesTimer_cb(FL_OBJECT *obj,long use_type)/* The argument use_type determines, whether the statistics record has to be initialized after reading it (FT_GETRESET_STAT) or not (FT_GET_STAT). 0 ... The checkbuttons ActwResetCheckBtn and ActwoResetCheckBtn determine the ioctl call. 1 ... The ioctl is called in FT_GETRESET_STAT mode. 2 ... The ioctl is called in FT_GET_STAT mode. */ { Eib_bcu2_admin *admin=(Eib_bcu2_admin *)obj->form->u_vdata; time_t act_time; int result; unsigned int cmd; time(&act_time); actualize_MainForm_Times(admin,act_time); switch(use_type) { case 0: if (fl_get_button(admin->MainForm->ActwoResetCheckbtn)==1) cmd=FT_GET_STAT; else cmd=FT_GETRESET_STAT; break; case 1: cmd=FT_GETRESET_STAT; admin->stat_plan_time=act_time; break; case 2: cmd=FT_GET_STAT; admin->stat_plan_time=act_time; break; } if (admin->stat_plan_time<=act_time) { fl_freeze_form(admin->MainForm->VisForm); if (ioctl(admin->eib_fd,cmd,admin->ftstation_stat)<0) { switch(result=errno) { case EFAULT: fl_ext_panel1(admin->Panels+5,admin,cleanup); break; } } if (ioctl(admin->eib_fd,FT_RESP_STATUS)<0) { switch(result=errno) { case ENORESPSTATUS: actualize_MainForm_Status(admin,EIBDRV_ADMIN_STATUS_FAILED); break; } } else actualize_MainForm_Status(admin,EIBDRV_ADMIN_STATUS_RESPONDED); admin->stat_get_time=admin->stat_plan_time; admin->stat_plan_time+=admin->act_interval; actualize_MainForm_BufSiz(admin); actualize_MainForm_Stat(admin); if (cmd==FT_GETRESET_STAT) admin->stat_reset_time=admin->stat_get_time; fl_unfreeze_form(admin->MainForm->VisForm); } if (use_type==0) // Timer fl_set_timer(obj,1);}FD_VisForm *create_form_MainForm(void){ int i; FL_OBJECT *obj; FD_VisForm *fdui = (FD_VisForm *) fl_calloc(1, sizeof(*fdui)); fdui->VisForm = fl_bgn_form(FL_NO_BOX, 800, 475); fl_ext_formobjects_add_box(FL_UP_BOX,0,0,800,475,"", FL_RESIZE_NONE,FL_NorthWest,FL_SouthEast); fl_ext_formobjects_add_labelframe(FL_ENGRAVED_FRAME,20,20,420,115,"Settings", FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest); fl_ext_formobjects_add_text(&obj,FL_NO_BOX,40,30,55,20,"Device:", 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,40,55,55,20,"Mode:", 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,40,80,55,20,"Baudrate:", 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,40,105,55,20,"Port:", FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest); fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); fl_ext_formobjects_add_text(&fdui->DeviceText,FL_BORDER_BOX,105,30,315,20,"", FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest); fl_ext_formobjects_add_text(&fdui->ModeText,FL_BORDER_BOX,105,55,315,20,"", FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest); fl_ext_formobjects_add_text(&fdui->BaudrateText,FL_BORDER_BOX,105,80,315,20,"", FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest); fl_ext_formobjects_add_text(&fdui->PortText,FL_BORDER_BOX,105,105,315,20,"", FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest); fl_ext_formobjects_add_labelframe(FL_ENGRAVED_FRAME,460,20,130,80,"Protocol Status", FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest); fl_ext_formobjects_add_text(&obj,FL_NO_BOX,470,35,110,20,"Controller to BCU2", FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest); fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); fl_ext_formobjects_add_box2(&fdui->StatusBox,FL_BORDER_BOX,475,65,100,20,"", FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest); fl_ext_formobjects_add_box(FL_EMBOSSED_BOX,610,20,170,80,"", FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest); fl_ext_formobjects_add_text(&obj,FL_NO_BOX,620,25,150,30,"eibdrv_admin", FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest); fl_set_object_lcolor(obj,FL_BLUE); fl_set_object_lsize(obj,FL_LARGE_SIZE); fl_set_object_lalign(obj,FL_ALIGN_RIGHT|FL_ALIGN_INSIDE); fl_set_object_lstyle(obj,FL_NORMAL_STYLE+FL_EMBOSSED_STYLE); fl_ext_formobjects_add_text(&obj,FL_NO_BOX,660,50,110,20,"Version 0.2.1", FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest); fl_set_object_lsize(obj,FL_NORMAL_SIZE); fl_set_object_lalign(obj,FL_ALIGN_RIGHT|FL_ALIGN_INSIDE); fl_set_object_lstyle(obj,FL_BOLD_STYLE); fl_ext_formobjects_add_text(&obj,FL_NO_BOX,650,70,120,20,"(C) Wolfgang Tumfart", FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest); fl_set_object_lalign(obj,FL_ALIGN_RIGHT|FL_ALIGN_INSIDE); fl_ext_formobjects_add_labelframe(FL_ENGRAVED_FRAME,20,155,420,65,"Process Buffer", FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest); fl_ext_formobjects_add_text(&obj,FL_NO_BOX,30,165,45,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,30,190,45,20,"READ:", 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,80,165,30,20,"Size:", 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,80,190,30,20,"Size:", FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest); fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); fl_ext_formobjects_add_text(&fdui->WProcSizeText,FL_BORDER_BOX,115,165,40,20,"", FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest); fl_ext_formobjects_add_text(&fdui->RProcSizeText,FL_BORDER_BOX,115,190,40,20,"", FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest); fl_ext_formobjects_add_text(&obj,FL_NO_BOX,165,165,55,20,"Occupied:", 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,165,190,55,20,"Occupied:", FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest); fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); fl_ext_formobjects_add_text(&fdui->WProcOccText,FL_BORDER_BOX,220,165,40,20,"", FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest); fl_ext_formobjects_add_text(&fdui->RProcOccText,FL_BORDER_BOX,220,190,40,20,"", FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest); fl_ext_formobjects_add_text(&obj,FL_NO_BOX,270,165,25,20,"0 %", 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,270,190,25,20,"0 %", 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,395,165,40,20,"100 %", 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,395,190,40,20,"100 %", FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest); fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); fl_ext_formobjects_add_box2(&fdui->WProcOccGroundBox,FL_DOWN_BOX,295,165,100,20,"", FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest); fl_ext_formobjects_add_box2(&fdui->RProcOccGroundBox,FL_DOWN_BOX,295,190,100,20,"", FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest); fl_ext_formobjects_add_box2(&fdui->WProcOccBox,FL_FLAT_BOX,297,167,0,16,"", FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest); fl_ext_formobjects_add_box2(&fdui->RProcOccBox,FL_FLAT_BOX,297,192,0,16,"", FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest); fl_ext_formobjects_add_labelframe(FL_ENGRAVED_FRAME,20,240,420,65,"Message Buffer", FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest); fl_ext_formobjects_add_text(&obj,FL_NO_BOX,30,250,45,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,30,275,45,20,"READ:", 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,80,250,30,20,"Size:", 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,80,275,30,20,"Size:", FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest); fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); fl_ext_formobjects_add_text(&fdui->WMsgSizeText,FL_BORDER_BOX,115,250,40,20,"", FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest); fl_ext_formobjects_add_text(&fdui->RMsgSizeText,FL_BORDER_BOX,115,275,40,20,"", FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest); fl_ext_formobjects_add_text(&obj,FL_NO_BOX,165,250,55,20,"Occupied:", FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest); fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); fl_ext_formobjects_add_text(&fdui->WMsgOccText,FL_BORDER_BOX,220,250,40,20,"", FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest); fl_ext_formobjects_add_text(&obj,FL_NO_BOX,270,250,25,20,"0 %", 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,395,250,40,20,"100 %", FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest); fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); fl_ext_formobjects_add_box2(&fdui->WMsgOccGroundBox,FL_DOWN_BOX,295,250,100,20,"", FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest); fl_ext_formobjects_add_box2(&fdui->WMsgOccBox,FL_FLAT_BOX,297,252,0,16,"", FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest); fl_ext_formobjects_add_labelframe(FL_ENGRAVED_FRAME,460,120,210,185,"Statistics Actualization", FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest); fl_ext_formobjects_add_text(&obj,FL_NO_BOX,465,130,100,20,"Last Reset:", 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,465,155,100,20,"Last Actualization:", 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,465,180,100,20,"Next Actualization:", FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest); fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); fl_ext_formobjects_add_text(&fdui->TimeResetText,FL_BORDER_BOX,580,130,70,20,"", FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest); fl_ext_formobjects_add_text(&fdui->TimeActualizeText,FL_BORDER_BOX,580,155,70,20,"", FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest); fl_ext_formobjects_add_text(&fdui->TimeNextText,FL_BORDER_BOX,580,180,70,20,"", FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest); fl_ext_formobjects_add_counter(&fdui->ActIntervalCounter,FL_NORMAL_COUNTER, 475,210,175,20,"Actualization Intervall (min)",FL_ALIGN_BOTTOM, 1.0,60.0,1.0,10.0,0, FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest); fl_set_object_callback(fdui->ActIntervalCounter,ActIntervalCounter_cb,0); fl_set_counter_value(fdui->ActIntervalCounter,1); fl_bgn_group(); fl_ext_formobjects_add_checkbtn(&fdui->ActwoResetCheckbtn,FL_RADIO_BUTTON, 475,250,165,20,"Actualization without Reset", FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest); fl_set_object_callback(fdui->ActwoResetCheckbtn,Null_cb,0); fl_set_button(fdui->ActwoResetCheckbtn,1); fl_ext_formobjects_add_checkbtn(&fdui->ActwResetCheckbtn,FL_RADIO_BUTTON, 475,270,165,20,"Actualization with Reset", FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest); fl_set_object_callback(fdui->ActwResetCheckbtn,Null_cb,0); fl_end_group(); fl_ext_formobjects_add_labelframe(FL_ENGRAVED_FRAME,20,325,315,130,"Write (Messages to EIB system)", FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest); fl_ext_formobjects_add_box2(&fdui->WGroundBox,FL_BORDER_BOX,40,355,275,20,"", FL_RESIZE_NONE,FL_NorthWest,FL_NorthWest);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -