/********************************************************************* * * Dialog callback routine */ static void _cbCallback(WM_MESSAGE * pMsg) { int NCode, Id; static int num_backup = 0; WM_HWIN hWin = pMsg->hWin; switch (pMsg->MsgId) { case WM_PAINT: PaintDialog(pMsg); break; case WM_INIT_DIALOG: InitDialog(pMsg); break; case WM_KEY: switch (((WM_KEY_INFO*)(pMsg->Data.p))->Key) { case GUI_KEY_ESCAPE: GUI_EndDialog(hWin, 1); break; case GUI_KEY_ENTER: GUI_EndDialog(hWin, 0); break; } break; case WM_NOTIFY_PARENT: Id = WM_GetId(pMsg->hWinSrc); NCode = pMsg->Data.v; switch (Id) { case GUI_ID_OK: if(NCode==WM_NOTIFICATION_RELEASED) { GUI_EndDialog(hWin, EDIT_GetValue(WM_GetDialogItem(hWin,GUI_ID_EDIT0))); num_backup = 0; } break; case GUI_ID_CANCEL: if(NCode==WM_NOTIFICATION_CLICKED) { num_backup = 0; EDIT_SetValue(WM_GetDialogItem(hWin,GUI_ID_EDIT0),num_backup); // GUI_EndDialog(hWin, 0); } break; case GUI_ID_EDIT0: switch(NCode) { case WM_NOTIFICATION_CLICKED: OnEditNumberClicked(pMsg); break; } break; case GUI_ID_BUTTON0: case GUI_ID_BUTTON1: case GUI_ID_BUTTON2: case GUI_ID_BUTTON3: case GUI_ID_BUTTON4: case GUI_ID_BUTTON5: case GUI_ID_BUTTON6: case GUI_ID_BUTTON7: case GUI_ID_BUTTON8: case GUI_ID_BUTTON9: if(NCode==WM_NOTIFICATION_CLICKED) { if(num_backup < 999999999) { num_backup = num_backup *10 +(Id - GUI_ID_BUTTON0); } if(num_backup > 999999999) { num_backup = 999999999; } EDIT_SetValue(WM_GetDialogItem(hWin,GUI_ID_EDIT0),num_backup); } break; } break; default: WM_DefaultProc(pMsg); } }
/********************************************************************* * * Dialog callback routine */ static void _cbBk_Frame(WM_MESSAGE * pMsg) { int NCode, Id; WM_HWIN hWin = pMsg->hWin; switch (pMsg->MsgId) { case WM_PAINT: PaintDialog(pMsg); break; case WM_INIT_DIALOG: InitDialog(pMsg); break; case WM_KEY: switch (((WM_KEY_INFO*)(pMsg->Data.p))->Key) { case GUI_KEY_ESCAPE: GUI_EndDialog(hWin, 1); break; case GUI_KEY_ENTER: GUI_EndDialog(hWin, 0); break; } break; case WM_NOTIFY_PARENT: GUI_DispStringAt("Frame",10,220); Id = WM_GetId(pMsg->hWinSrc); NCode = pMsg->Data.v; switch(NCode) { case WM_NOTIFICATION_RELEASED: { if(Id == GUI_ID_BUTTON0) { EDIT_AddKey(WM_GetDialogItem(hWN_Dialog_PID_Frame,PID_EDIT),'0'); } if(Id == GUI_ID_BUTTON1) { EDIT_AddKey(WM_GetDialogItem(hWN_Dialog_PID_Frame,PID_EDIT),'1'); } if(Id == GUI_ID_BUTTON2) { EDIT_AddKey(WM_GetDialogItem(hWN_Dialog_PID_Frame,PID_EDIT),'2'); } if(Id == GUI_ID_BUTTON3) { EDIT_AddKey(WM_GetDialogItem(hWN_Dialog_PID_Frame,PID_EDIT),'3'); } if(Id == GUI_ID_BUTTON4) { EDIT_AddKey(WM_GetDialogItem(hWN_Dialog_PID_Frame,PID_EDIT),'4'); } if(Id == GUI_ID_BUTTON5) { EDIT_AddKey(WM_GetDialogItem(hWN_Dialog_PID_Frame,PID_EDIT),'5'); } if(Id == GUI_ID_BUTTON6) { EDIT_AddKey(WM_GetDialogItem(hWN_Dialog_PID_Frame,PID_EDIT),'6'); } if(Id == GUI_ID_BUTTON7) { EDIT_AddKey(WM_GetDialogItem(hWN_Dialog_PID_Frame,PID_EDIT),'7'); } if(Id == GUI_ID_BUTTON8) { EDIT_AddKey(WM_GetDialogItem(hWN_Dialog_PID_Frame,PID_EDIT),'8'); } if(Id == GUI_ID_BUTTON9) { EDIT_AddKey(WM_GetDialogItem(hWN_Dialog_PID_Frame,PID_EDIT),'9'); } if(Id == GUI_ID_BUTTON10) { EDIT_AddKey(WM_GetDialogItem(hWN_Dialog_PID_Frame,PID_EDIT),'.'); } /* BackSpace */ if(Id == GUI_ID_BUTTON11) { //EDIT_SetText(WM_GetDialogItem(hWin,GUI_ID_EDIT0),NULL);//清空输入框,挨个删除用下面两行 WM_SetFocus(WM_GetDialogItem(hWN_Dialog_PID_Frame,PID_EDIT)); GUI_SendKeyMsg(GUI_KEY_BACKSPACE,1); GPIO_ResetBits(GPIOF,GPIO_Pin_7); } /* PID Parameter Edit choese*/ { if(Id == GUI_ID_BUTTON12 || Id == GUI_ID_EDIT0) { PID_Para_Edit_Flag = Kp; PID_EDIT = PID_Para_Edit_Flag + GUI_ID_EDIT0; } if(Id == GUI_ID_BUTTON13 || Id == GUI_ID_EDIT1) { PID_Para_Edit_Flag = Ki; PID_EDIT = PID_Para_Edit_Flag + GUI_ID_EDIT0; } if(Id == GUI_ID_BUTTON14 || Id == GUI_ID_EDIT2) { PID_Para_Edit_Flag = Kd; PID_EDIT = PID_Para_Edit_Flag + GUI_ID_EDIT0; //GUI_ID_EDIT2 } if(Id == GUI_ID_BUTTON15 || Id == GUI_ID_EDIT3) { PID_Para_Edit_Flag = E; PID_EDIT = PID_Para_Edit_Flag + GUI_ID_EDIT0; } if(Id == GUI_ID_BUTTON17 || Id == GUI_ID_EDIT4) { PID_Para_Edit_Flag = Set; PID_EDIT = PID_Para_Edit_Flag + GUI_ID_EDIT0; //GUI_ID_EDIT2 } /* OK Key */ if(Id == GUI_ID_BUTTON16) { /* Store the last array(5) */ value_PID[CounterPID].Proportion = EDIT_GetFloatValue( WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_EDIT0) ); value_PID[CounterPID].Integral = EDIT_GetFloatValue( WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_EDIT1) ); value_PID[CounterPID].Derivative = EDIT_GetFloatValue( WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_EDIT2) ); value_PID[CounterPID].SetPoint = EDIT_GetFloatValue( WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_EDIT4) ); BK_Light = SLIDER_GetValue(WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_SLIDER0)); SetPWM(BK_Light,PWM_BACK_LIGHT); //!< Not the PID configuration Period PID_CFG_Flag = 0; WM_DeleteWindow(hWN_Dialog_PID_Frame); WM_ShowWindow(hWM_HBKWIN_CURVE); WM_HideWindow(hWM_HBKWIN_CFG_PID); } } /* Up and down of the order of the PID Array */ { if(Id == GUI_ID_BUTTON18) { value_PID[CounterPID].Proportion = EDIT_GetFloatValue( WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_EDIT0) ); value_PID[CounterPID].Integral = EDIT_GetFloatValue( WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_EDIT1) ); value_PID[CounterPID].Derivative = EDIT_GetFloatValue( WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_EDIT2) ); value_PID[CounterPID].SetPoint = EDIT_GetFloatValue( WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_EDIT4) ); /* Get the E_Percent */ { if(0 == CounterPID) { E_Percent[0] = EDIT_GetFloatValue ( WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_EDIT3) ); E_Percent[1] = 1 - E_Percent[0]; } } CounterPID++; if(6 == CounterPID) { CounterPID = 0; } itoa(CounterPID,bufTextOrder,10); TEXT_SetText( WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_TEXT0),bufTextOrder); if(1 == CounterPID) { EDIT_SetFloatValue ( WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_EDIT3), E_Percent[1]); } /* Set the same value to edit */ if( 2 == CounterPID || 4 == CounterPID) { EDIT_SetFloatValue(WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_EDIT3),E_Percent[0]); EDIT_SetFloatValue(WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_EDIT4),value_PID[0].SetPoint); } else if( 3 == CounterPID || 5 == CounterPID) { EDIT_SetFloatValue(WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_EDIT3),E_Percent[1]); EDIT_SetFloatValue(WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_EDIT4),value_PID[1].SetPoint); } } /** Previous button **/ if(Id == GUI_ID_BUTTON19) { value_PID[CounterPID].Proportion = EDIT_GetFloatValue( WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_EDIT0) ); value_PID[CounterPID].Integral = EDIT_GetFloatValue( WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_EDIT1) ); value_PID[CounterPID].Derivative = EDIT_GetFloatValue( WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_EDIT2) ); value_PID[CounterPID].SetPoint = EDIT_GetFloatValue( WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_EDIT4) ); CounterPID--; if(-1 == CounterPID) { CounterPID = 5; } itoa(CounterPID,bufTextOrder,10); TEXT_SetText( WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_TEXT0),bufTextOrder); } } if(Id == GUI_ID_SLIDER0) { BK_Light = SLIDER_GetValue(WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_SLIDER0)); SetPWM(BK_Light,PWM_BACK_LIGHT); } } break; } default: WM_DefaultProc(pMsg); } }