?? swmainform.h
字號:
#include <SmartWin.h>#include <vector>#include "cv.h"#include "OpenCV_EX.h"#include <fstream>using namespace SmartWin;using namespace std;typedef struct PID_RECT{ LONG l;//left; LONG t;//top; LONG r;//right; LONG b;//bottom; LONG w;//width; LONG h;//height; LONG x;//左下角x坐標(biāo); LONG y;//左下角y坐標(biāo);};PID_RECT r={510,100,100+256,510+256,256,256,510,100+256};const int PID_out_buf_MAX=256;double kp=0.5;double ki=0.001;double kd=0.001;double num2=0.0097;double num3=0.0344;double num4=0.0078;double den2=-2.4386;double den3=2.0848;double den4=-0.6461;double input=8;int samplenum=0;double output[PID_out_buf_MAX]={0.0};double ts=0.005;double u1=0.0;double u2=0.0;double u3=0.0;double uk=0.0;double y11=0.0;double y2=0.0;double y3=0.0;double yk=0.0;double x1=0.0;double x2=0.0;double x3=0.0;double error=0.0;double error1=0.0;class SWMainForm : public WidgetFactory< WidgetWindow, SWMainForm>{ private: //下面一行為Obtain可視化編輯內(nèi)容開始的標(biāo)識,請不要?jiǎng)h除或更改 //*<define_Visual>
WidgetButtonPtr button1;
WidgetTextBoxPtr m_edit1;
WidgetButtonPtr button2;
WidgetSliderPtr slider1;
CImageEX img1;
WidgetTextBoxPtr m_edit2;
WidgetTextBoxPtr m_edit3;
WidgetTextBoxPtr m_edit4;
WidgetTextBoxPtr m_edit5;
WidgetTextBoxPtr m_edit6;
WidgetTextBoxPtr m_edit7;
WidgetTextBoxPtr m_edit8;
WidgetTextBoxPtr m_edit9;
WidgetTextBoxPtr m_edit10;
WidgetButtonPtr button3;
WidgetTextBoxPtr m_edit11;
WidgetStaticPtr static1;
//*</define_Visual> //上面一行為Obtain可視化編輯內(nèi)容開始的標(biāo)識,請不要更改或刪除 HWND hWnd; HDC hDC; WidgetToolbarPtr toolbar,toolbar_1; WidgetMenuPtr mainMenu; int i_PID_out_buf[PID_out_buf_MAX]; int i_PID_out_point; bool b_PID_isrun; public: void setMainForm(SmartUtil::tstring caption,int cx,int cy) { WidgetWindow::Seed cs; cs.style=WS_VISIBLE | WS_THICKFRAME | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_OVERLAPPED; cs.exStyle=0; cs.caption=caption; cs.location.size.x=cx; cs.location.size.y=cy; this->createWindow(cs); } //region void initAndCreate void initAndCreate() { //下面一行為Obtain可視化編輯內(nèi)容開始的標(biāo)識,請不要?jiǎng)h除或更改 //*<Obtain_Visual>
setMainForm(_T("SmartWin Main Window"),800,664);
button1=createButton();
button1->setText(_T("啟動(dòng)"));
button1->onClicked(& SWMainForm::OnButton1);
button1->setBounds(204,55,84,37);
WidgetTextBox::Seed m_edit1Seed;
m_edit1Seed.exStyle=WS_EX_CLIENTEDGE;
m_edit1Seed.style=WS_VISIBLE | WS_CHILD | ES_AUTOHSCROLL | ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL | ES_WANTRETURN;
m_edit1=createTextBox(m_edit1Seed);
m_edit1->setText(_T("200"));
m_edit1->setBounds(9,57,44,33);
button2=createButton();
button2->setText(_T("重置設(shè)定值"));
button2->onClicked(& SWMainForm::OnButton2);
button2->setBounds(64,55,107,36);
slider1=createSlider();
slider1->setShowTicksTop(false);
slider1->setTickFrequency(1);
slider1->setRange(0,100);
slider1->setPosition(0);
slider1->setBounds(5,100,30,256);
hWnd = this->handle();
hDC = GetDC ( hWnd );
//請根據(jù)需要修改下面的圖像文件名
img1.Load("1.bmp",1);
//img1.Show(hDC,117,97,367,181);
RECT pRect_img1={117,97,484,302};
img1.DrawToHDC(hDC,&pRect_img1);
WidgetTextBox::Seed m_edit2Seed;
m_edit2Seed.exStyle=WS_EX_CLIENTEDGE;
m_edit2Seed.style=WS_VISIBLE | WS_CHILD | ES_AUTOHSCROLL | ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL | ES_WANTRETURN;
m_edit2=createTextBox(m_edit2Seed);
m_edit2->setText(_T("0.5"));
m_edit2->setBounds(153,290,68,22);
WidgetTextBox::Seed m_edit3Seed;
m_edit3Seed.exStyle=WS_EX_CLIENTEDGE;
m_edit3Seed.style=WS_VISIBLE | WS_CHILD | ES_AUTOHSCROLL | ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL | ES_WANTRETURN;
m_edit3=createTextBox(m_edit3Seed);
m_edit3->setText(_T("0.001"));
m_edit3->setBounds(153,328,68,22);
WidgetTextBox::Seed m_edit4Seed;
m_edit4Seed.exStyle=WS_EX_CLIENTEDGE;
m_edit4Seed.style=WS_VISIBLE | WS_CHILD | ES_AUTOHSCROLL | ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL | ES_WANTRETURN;
m_edit4=createTextBox(m_edit4Seed);
m_edit4->setText(_T("0.001"));
m_edit4->setBounds(154,363,68,22);
WidgetTextBox::Seed m_edit5Seed;
m_edit5Seed.exStyle=WS_EX_CLIENTEDGE;
m_edit5Seed.style=WS_VISIBLE | WS_CHILD | ES_AUTOHSCROLL | ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL | ES_WANTRETURN;
m_edit5=createTextBox(m_edit5Seed);
m_edit5->setText(_T("0.0097"));
m_edit5->setBounds(273,291,68,22);
WidgetTextBox::Seed m_edit6Seed;
m_edit6Seed.exStyle=WS_EX_CLIENTEDGE;
m_edit6Seed.style=WS_VISIBLE | WS_CHILD | ES_AUTOHSCROLL | ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL | ES_WANTRETURN;
m_edit6=createTextBox(m_edit6Seed);
m_edit6->setText(_T("0.0344"));
m_edit6->setBounds(273,329,68,22);
WidgetTextBox::Seed m_edit7Seed;
m_edit7Seed.exStyle=WS_EX_CLIENTEDGE;
m_edit7Seed.style=WS_VISIBLE | WS_CHILD | ES_AUTOHSCROLL | ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL | ES_WANTRETURN;
m_edit7=createTextBox(m_edit7Seed);
m_edit7->setText(_T("0.0078"));
m_edit7->setBounds(274,364,68,22);
WidgetTextBox::Seed m_edit8Seed;
m_edit8Seed.exStyle=WS_EX_CLIENTEDGE;
m_edit8Seed.style=WS_VISIBLE | WS_CHILD | ES_AUTOHSCROLL | ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL | ES_WANTRETURN;
m_edit8=createTextBox(m_edit8Seed);
m_edit8->setText(_T("-2.4386"));
m_edit8->setBounds(389,289,68,22);
WidgetTextBox::Seed m_edit9Seed;
m_edit9Seed.exStyle=WS_EX_CLIENTEDGE;
m_edit9Seed.style=WS_VISIBLE | WS_CHILD | ES_AUTOHSCROLL | ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL | ES_WANTRETURN;
m_edit9=createTextBox(m_edit9Seed);
m_edit9->setText(_T("2.0848"));
m_edit9->setBounds(388,327,68,22);
WidgetTextBox::Seed m_edit10Seed;
m_edit10Seed.exStyle=WS_EX_CLIENTEDGE;
m_edit10Seed.style=WS_VISIBLE | WS_CHILD | ES_AUTOHSCROLL | ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL | ES_WANTRETURN;
m_edit10=createTextBox(m_edit10Seed);
m_edit10->setText(_T("-0.6461"));
m_edit10->setBounds(390,362,68,22);
button3=createButton();
button3->setText(_T("默認(rèn)值"));
button3->onClicked(& SWMainForm::OnButton3);
button3->setBounds(51,303,89,50);
WidgetTextBox::Seed m_edit11Seed;
m_edit11Seed.exStyle=WS_EX_CLIENTEDGE;
m_edit11Seed.style=WS_VISIBLE | WS_CHILD | ES_AUTOHSCROLL | ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL | ES_WANTRETURN;
m_edit11=createTextBox(m_edit11Seed);
m_edit11->setText(_T("0.005"));
m_edit11->setBounds(153,409,71,30);
static1=createStatic();
static1->setText(_T("采樣時(shí)間:"));
static1->setBounds(66,405,61,40);
//*</Obtain_Visual> //上面一行為Obtain可視化編輯內(nèi)容開始的標(biāo)識,請不要更改或刪除 onPainting( & SWMainForm::paint ); //::ShowWindow( (this )->handle(), SW_SHOWMAXIMIZED); SWMainForm::main_createMenu(); SWMainForm::main_createToolbar(); i_PID_out_point=0; b_PID_isrun=false; slider1->setHorizontal( false ); slider1->onScrollVert(& SWMainForm::OnSlider1); slider1->setRange(0,256); slider1->setPosition( 56); /* PID_KP=0.5; PID_KI=0.001; PID_KD=0.001; PID_K0=(PID_KP+PID_KI+PID_KD); PID_K1=-(PID_KP+2*PID_KD); PID_K2=PID_KD; PID_u[2]=0.0;PID_u[1]=0.0;PID_u[0]=0.0; PID_e[2]=0.0;PID_e[1]=0.0;PID_e[0]=0.0; PID_OUT_DATA=0.0; PID_INIT_SET=250; */ //PID_Init(); } //endregion private: //下面一行為Obtain可視
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -