RSS    

   Курсовая работа: Применение автоматизированного адаптивного интерферометра для исследования наносмещений микрообъектов

CRect rect;

GetClientRect(&rect);

int x = (rect.Width() - cxIcon + 1) / 2;

int y = (rect.Height() - cyIcon + 1) / 2;

// Draw the icon

dc.DrawIcon(x, y, m_hIcon);

}

else

{

CDialog::OnPaint();

}

}

// The system calls this to obtain the cursor to display while the user drags

// the minimized window.

HCURSOR CSerialGateTestDlg::OnQueryDragIcon()

{

return (HCURSOR) m_hIcon;

}

void CSerialGateTestDlg::OnOpen()

{

// TODO: Add your control notification handler code here

UpdateData(true);

if(m_port == 0 || m_rate == 0)

{

MessageBox("Not correct data","Error", MB_ICONERROR);

return;;

}

bool b = sg.Open(m_port, m_rate);

if(b == false)

{

MessageBox("Can`t open Port","Error", MB_ICONERROR);

return;;

}

else

{

MessageBox("Port open OK","Info", MB_ICONINFORMATION);

}

SetTimer(1, 1000, NULL);

}

void CSerialGateTestDlg::OnTimer(UINT nIDEvent)

{

if (key==0)

{// TODO: Add your message handler code here and/or call default

char buff[128];

int rcv = sg.Recv(buff, sizeof(buff));

this->m_recievecontr.SetWindowText("");

if(rcv > 0)

{

for(int i = 0; i< rcv; i++)

this->m_recieve += buff[i];

UpdateData(false);

}

}

CDialog::OnTimer(nIDEvent);

}

void CSerialGateTestDlg::OnSend()

{

// TODO: Add your control notification handler code here

UpdateData(true);

int len = this->m_send.GetLength();

if(len > 0)

{

char* LocBuf = m_send.GetBuffer(128);

sg.Send(LocBuf, len);

m_send.ReleaseBuffer();

char ent=0x0D;

char* ent2 = &ent;

sg.Send(ent2, 1);

}

}

void CSerialGateTestDlg::OnButton3()

{

UpdateData(true);

int len = this->m_send.GetLength();

if(len > 0)

{

char ent=0x01;

char* ent2 = &ent;

sg.Send(ent2, 1);

char* LocBuf = m_send.GetBuffer(128);

sg.Send(LocBuf, len);

m_send.ReleaseBuffer();

}

}

void CSerialGateTestDlg::OnOnSetaxsis() //выбор оси

{

UpdateData(true);

int popytka=0;

//изменение активного мотора

char ctrlkey=0x01;

char* ctrlkey2 = &ctrlkey;

sg.Send(ctrlkey2, 1);

int len=1;

char* LocBuf = m_axsis.GetBuffer(128);

sg.Send(LocBuf, len);

m_send.ReleaseBuffer();

CString tp="tp";

char* LocBuf2 = tp.GetBuffer(128);

sg.Send(LocBuf2, 2);

tp.ReleaseBuffer();

//enter

char ent=0x0D;

char* ent2 = &ent;

sg.Send(ent2, 1);

}

void CSerialGateTestDlg::OnOnSetacsel() //установить ускорение

{

UpdateData(true);

CString sa="sa";

char* LocBuf2 = sa.GetBuffer(128);

sg.Send(LocBuf2, 2);

sa.ReleaseBuffer();

int len = this->m_asel.GetLength();

if(len > 0)

{

char* LocBuf = m_asel.GetBuffer(128);

sg.Send(LocBuf, len);

m_asel.ReleaseBuffer();

//enter

char ent=0x0D;

char* ent2 = &ent;

sg.Send(ent2, 1);

//проверкаtl

CString tl="tl";

char* LocBuf3 = tl.GetBuffer(128);

sg.Send(LocBuf3, 2);

tl.ReleaseBuffer();

//enter

sg.Send(ent2, 1);

//m_recievecontr.SetWindowText("0");

//CEdit::Clear;

//UpdateData(false);

}

}

void CSerialGateTestDlg::OnOnSetvelos()

{

UpdateData(true);

CString sv="sv";

char* LocBuf2 = sv.GetBuffer(128);

sg.Send(LocBuf2, 2);

sv.ReleaseBuffer();

int len = this->m_vel.GetLength();

if(len > 0)

{

char* LocBuf = m_vel.GetBuffer(128);

sg.Send(LocBuf, len);

m_vel.ReleaseBuffer();

//enter

char ent=0x0D;

char* ent2 = &ent;

sg.Send(ent2, 1);

//проверкаty

CString ty="ty";

char* LocBuf3 = ty.GetBuffer(128);

sg.Send(LocBuf3, 2);

ty.ReleaseBuffer();

//enter

sg.Send(ent2, 1);

}

}

void CSerialGateTestDlg::OnOnMotroon()

{

UpdateData(true); //включить мотор

CString mn="mn";

char* LocBuf2 = mn.GetBuffer(128);

sg.Send(LocBuf2, 2);

mn.ReleaseBuffer();// TODO: Add your control notification handler code here

//enter

char ent=0x0D;

char* ent2 = &ent;

sg.Send(ent2, 1);

}

void CSerialGateTestDlg::OnOnMotoroff() //выключить мотор

{

CString mf="mf";

char* LocBuf2 = mf.GetBuffer(128);

sg.Send(LocBuf2, 2);

mf.ReleaseBuffer();// TODO: Add your control notification handler code here

//enter

char ent=0x0D;

char* ent2 = &ent;

sg.Send(ent2, 1);

}

void CSerialGateTestDlg::OnOnMr() //перемещение

{

UpdateData(true);

CString mr="mr";

char* LocBuf2 = mr.GetBuffer(128);

sg.Send(LocBuf2, 2);

mr.ReleaseBuffer();

int len = this->m_gomr.GetLength();

if(len > 0)

{

char* LocBuf = m_gomr.GetBuffer(128);

sg.Send(LocBuf, len);

m_gomr.ReleaseBuffer();

//enter

char ent=0x0D;

char* ent2 = &ent;

sg.Send(ent2, 1);

//проверкаty

CString tp="tp";

char* LocBuf3 = tp.GetBuffer(128);

sg.Send(LocBuf3, 2);

tp.ReleaseBuffer();

//enter

sg.Send(ent2, 1);

//m_recieve.Clear();

}

}

void CSerialGateTestDlg::OnOnGo() //////////////////кнопка GO//////////////////////

{

UpdateData(true);

key=1;

int axis=0;

int res;

TP0:

//изменение активного мотора

char ctrlkey=0x01;

char* ctrlkey2 = &ctrlkey;

sg.Send(ctrlkey2, 1);

int len=1;

char axsis0='0';

char* axsis0_2 = &axsis0;

sg.Send(axsis0_2, 1);

CString tp="tp";

char* LocBuf2 = tp.GetBuffer(128);

sg.Send(LocBuf2, 2);

tp.ReleaseBuffer();

//enter

char ent=0x0D;

char* ent2 = &ent;

sg.Send(ent2, 1);

Sleep(700); //организуем паузу чтобы контроллер успел ответить

//считаем текущую позицию//

char buff[128];

int rcv = sg.Recv(buff, sizeof(buff));

int elmbuff=rcv-1;

buff[rcv]=0;

CString str;

for(int i = 0; i< rcv; i++)

str += buff[i];

char* j = strchr(buff, '+');

res = atoi(j);

if (j==0)

{

j = strchr(buff, '-');

res = atoi(j); //в res здесь храниться текущие положение

}

CString mraxsis0_2; //сюда записывается занчение е окошка edit axsis0

GetDlgItemText(IDC_MRAXSIS0,mraxsis0_2);

int posnum0=atoi(mraxsis0_2);

int posnum0_mr=res-posnum0/2;

CString mraxsis0_mr;

mraxsis0_mr =itoa(posnum0_mr,mraxsis0_mr.GetBuffer(10),10);

//выполним перемещение на нулевую позицию//

CString mr="MA";

char* LocBuf8 = mr.GetBuffer(128);

sg.Send(LocBuf8, 2);

mr.ReleaseBuffer();

 len=mraxsis0_mr.GetLength();

char* LocBuf9 = mraxsis0_mr.GetBuffer(128);

sg.Send(LocBuf9, len);

mraxsis0_mr.ReleaseBuffer();

//enter

sg.Send(ent2, 1);

int gto0=posnum0_mr;

int posicino00=res;

Sleep(400);

TP1:

//изменение активного мотора

 

sg.Send(ctrlkey2, 1);

 len=1;

char axsis1='1';

char* axsis1_2 = &axsis1;

sg.Send(axsis1_2, 1);

tp="tp";

 LocBuf2 = tp.GetBuffer(128);

sg.Send(LocBuf2, 2);

tp.ReleaseBuffer();

//enter

sg.Send(ent2, 1);

Sleep(700);

//организуем паузу чтобы контроллер успел ответить

//считаем текущую позицию//

char buff2[128];

 rcv = sg.Recv(buff2, sizeof(buff2));

 elmbuff=rcv-1;

buff2[rcv]=0;

CString str2;

for(i = 0; i< rcv; i++)

str2 += buff2[i];

 j = strchr(buff2, '+');

res = atoi(j);

if (j==0)

{

j = strchr(buff2, '-');

res = atoi(j); //в res здесь храниться текущие положение

}

CString mraxsis1_2; //сюда записывается занчение е окошка edit axsis0

GetDlgItemText(IDC_MRAXSIS1,mraxsis1_2);

int posnum1=atoi(mraxsis1_2);

int posnum1_mr=res-posnum1/2;

CString mraxsis1_mr;

mraxsis1_mr =itoa(posnum1_mr,mraxsis1_mr.GetBuffer(10),10);

//выполним перемещение на нулевую позицию//

mr="MA";

LocBuf8 = mr.GetBuffer(128);

sg.Send(LocBuf8, 2);

mr.ReleaseBuffer();

 len=mraxsis1_mr.GetLength();

LocBuf9 = mraxsis1_mr.GetBuffer(128);

sg.Send(LocBuf9, len);

mraxsis1_mr.ReleaseBuffer();

//enter

sg.Send(ent2, 1);

int gto1=posnum1_mr;

int posicino01=res;

Sleep(130);

int pos01=gto1;

int pos00=gto0;

int modul;

do

{

Sleep(400);

//изменение активного мотора

sg.Send(ctrlkey2, 1);

sg.Send(axsis0_2, 1);

tp="tp";

LocBuf2 = tp.GetBuffer(128);

sg.Send(LocBuf2, 2);

tp.ReleaseBuffer();

//enter

sg.Send(ent2, 1);

Sleep(800); //организуем паузу чтобы контроллер успел ответить

//считаем текущую позицию//

CString str;

char buff[128];

rcv = sg.Recv(buff, sizeof(buff));

if(rcv > 0)

elmbuff=rcv-1;

Страницы: 1, 2, 3, 4, 5, 6


Новости


Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

                   

Новости

© 2010.