?? wea2dlg(箭桿).cpp
字號:
if(g_bWoofFinish==1)
{
g_bWoofFinish=0;
if(g_bWoofLock==0)
{
info->Format(IDS_WOOF_BRK+g_language);
s.Format(IDS_READY_RUN+g_language);
*info=*info+s;
// info.Format("ERROR: %x\nWoof break.\n Run when ready.",weai._byte);
g_bHardwareReady=TRUE;
}
else
{
info->Format(IDS_WOOF_BRK+g_language);
s.Format(IDS_READY_CLEAR+g_language);
*info=*info+s;
// info.Format("ERROR: %x\nWoof break.\n Press Clear when ready.",weai._byte);
g_bHardwareReady=FALSE;
return FALSE;
}
}
if((weai._bit.wa_brk==0) && (m_Warp_break==1))
{
m_Warp_break=0;
info->Format(IDS_WARP_BRK+g_language);
s.Format(IDS_READY_RUN+g_language);
*info=*info+s;
// info.Format("ERROR: %x\nWarp break.\nRun when ready.",weai._byte);
g_bHardwareReady=TRUE;
}
m_Warp_break=weai._bit.wa_brk;
// for(int i=0;i<4;i++)
// g_running.Delay();
g_bHardwareReady=TRUE;
return TRUE;
}
*/
void CWea2Dlg::OnClear()
{
// TODO: Add your control notification handler code here
// if(g_bSendData)
// return;
/* while(1)
{
g_running.OneLineToMap();
g_running.SendControl(1,1);
g_running.Forward1();
}
*/ m_info.Empty();
_outp(PC_CLEAR_FPGALOCK_O,1);
// if(g_bHardwareReady==FALSE) //03_12_27刪此條件,
// {
/* if(g_test.CheckMapNumber(m_info,g_job.m_Width/4)==FALSE)
{
UpdateData(0);
g_running.StopRun(); //03_12_27 加 04_5_5刪
return;
}*/
// }
g_bHardwareReady=CheckIO(m_info);
if((g_bHardwareReady==TRUE) && (g_bProgramReady==TRUE))
{
m_info.Format(IDS_READY+g_language);
UpdateData(0);
g_running.StartRun();
// g_running.Forward1();
// g_running.Forward1();
// g_running.SendControl();
// g_running.Backward1();
// g_running.Backward1();
if(g_bSendData==0)
CWinThread* pT=AfxBeginThread(SendData,this,THREAD_PRIORITY_HIGHEST);//GetSafeHwnd());//,THREAD_PRIORITY_TIME_CRITICAL); //啟動一個線程
return;
}
if(g_bProgramReady==0)
{
CString info;
info.Format(IDS_NO_JOB);
m_info=m_info+info;
UpdateData(0);
}
}
LRESULT CWea2Dlg::OnLockButton(WPARAM wParam,LPARAM lParam)
{
UINT id[]={IDC_SETUP,IDC_TEST,IDC_CLEAR,IDC_PICKNUMBER,
IDC_PICKFORWARD,IDC_PICKBACKWARD,IDCANCEL,IDC_FILEOP,IDC_CREATE_JOB};
for(int i=0;i<9;i++)
{
CWnd* pb=GetDlgItem(id[i]);
if(pb==NULL)
continue;
pb->EnableWindow(0);
}
return 0;
}
LRESULT CWea2Dlg::OnEnableButton(WPARAM wParam,LPARAM lParam)
{
UINT id[]={IDC_SETUP,IDC_TEST,IDC_CLEAR,IDC_PICKNUMBER,
IDC_PICKFORWARD,IDC_PICKBACKWARD,IDCANCEL,IDC_FILEOP,IDC_CREATE_JOB};
for(int i=0;i<9;i++)
{
CWnd* pb=GetDlgItem(id[i]);
if(pb==NULL)
continue;
pb->EnableWindow(1);
}
return 0;
}
/*
UINT SendData(LPVOID pParam)
{
CWea2Dlg* pWnd=(CWea2Dlg*)pParam;
HWND hwnd=pWnd->GetSafeHwnd();
g_bSendData=1;
int p=MAP_O;
MAPO map;
map._bit.sdata=1;
map._bit.sclk=1;
map._bit.latch=1;
_outp(p,map._byte);
g_running.StartRun();
BOOL bEnable_h,bBackwd_h,bShutle_h,Wo_brk,fast;
BOOL bShutleFlag,bFirstEnable,bToMap,bSensor123;
int b1stForwd,b1stBackwd;
WEAI weai;
MAPI mapi;
p=MAP_I;
mapi._byte=_inp(p);
bSensor123=mapi._bit.sensor123;
p=WEAVER_I;
UINT timer=0;
weai._byte=_inp(p);
bEnable_h=weai._bit.enable;
bBackwd_h=weai._bit.backwd;
bShutle_h=weai._bit.shutle;
Wo_brk=weai._bit.wo_brk;
fast=1;
bFirstEnable=1;
bShutleFlag=0;
b1stForwd=0;
b1stBackwd=0;
BOOL bCheckOK;
while(g_bSendData)
{
bToMap=0;
for(int k=0;k<10;k++)
g_running.Delay();
if(pWnd->CheckIO(pWnd->m_info)==FALSE) // check hardware
{
g_bSendData=0;
g_running.StopRun();
TRACE("Power error\n");
continue;
// if(timer==0)
// timer=pWnd->SetTimer(10,20000,NULL);
}
BOOL bFinish=0;
CString info;
p=MAP_I;
mapi._byte=_inp(p);
if((bSensor123==1) && (mapi._bit.sensor123==0))
{
if(timer==0)
timer=pWnd->SetTimer(10,60000,NULL); // 1 minute
}
if((bSensor123==0) && (mapi._bit.sensor123==1))
{
int p=PC_DISABLE_H_O;
int d=1;
_outp(p,d);
if(timer)
pWnd->KillTimer(timer);
timer=0;
}
bSensor123=mapi._bit.sensor123;
weai._byte=_inp(p); // read weai port
if(weai._bit.backwd==0)
b1stForwd=0;
if(weai._bit.fast==0)
b1stBackwd=0;
if((bEnable_h==1) && (weai._bit.enable==0))// enable falling_dedge;
{
if(weai._bit.backwd==1)
{
if(b1stForwd<2)
{
b1stForwd++;
TRACE("\nFirstForwd=%d",b1stForwd);
}
}
if(weai._bit.backwd==0)
{
if(b1stBackwd<2)
b1stBackwd++;
}
bToMap=1;
if((weai._bit.shutle==1) && (weai._bit.backwd==1) && (weai._bit.wo_brk==1)) //case 1
{
// if(b1stForwd!=1)
{
bFinish=g_running.Forward1(); //case 1
bCheckOK=g_running.OneLineToMapCheck();
TRACE("\ncase 1");
}
if(bFinish)
{
pWnd->m_info.Format("Job_List has been finished");
g_bSendData=0;
}
}
if((weai._bit.shutle==1) && (weai._bit.backwd==0) && (weai._bit.wo_brk==1)) //case 2
{
{
g_running.Backward1(); // case 2
g_running.Backward1(); // case 2
TRACE("\ncase 2");
}
bCheckOK=g_running.OneLineToMapCheck();
}
if((weai._bit.shutle==0) && (weai._bit.backwd==0) && (weai._bit.wo_brk==1)) //case 3
{
g_running.Backward1(); // case 3
bCheckOK=g_running.OneLineToMapCheck();
TRACE("\ncase 3");
}
if((weai._bit.shutle==0) && (weai._bit.backwd==0) && (weai._bit.wo_brk==0)) //case 4
{
g_running.Backward1(); // case 4
// g_running.Backward1();
bCheckOK=g_running.OneLineToMapCheck();
TRACE("\ncase 4");
}
if((weai._bit.shutle==1) && (weai._bit.backwd==0) && (weai._bit.wo_brk==0)) //case 5,6
{
if(bFirstEnable) // case 5
{
// g_running.Backward1();
g_running.Backward1();
bCheckOK=g_running.OneLineToMapCheck();
TRACE("\ncase 5");
bFirstEnable=0;
}
else // case 6
{
g_running.Backward1();
bCheckOK=g_running.OneLineToMapCheck();
bFirstEnable=1;
TRACE("\ncase 6");
}
}
if((weai._bit.forwd==0) && (weai._bit.shutle==1) && (weai._bit.backwd==1) && (weai._bit.wo_brk==0))
{
g_running.Forward1(); // case 13
bCheckOK=g_running.OneLineToMapCheck();
TRACE("\ncase 13");
}
}
if((bBackwd_h==1) && (weai._bit.backwd==0))// backward falling_dedge;
{
bToMap=1;
if(weai._bit.shutle==1) // case 7
{
g_running.Backward1();
g_running.Backward1();
g_running.Backward1();
TRACE("\ncase 7");
bCheckOK=g_running.OneLineToMapCheck();
}
else // case 8
{
g_running.Backward1();
g_running.Backward1();
bCheckOK=g_running.OneLineToMapCheck(1);
TRACE("\ncase 8");
}
}
if((bShutle_h==1) && (weai._bit.shutle==0))// shutle falling_dedge;
{
bToMap=1;
bShutleFlag=1;
if((weai._bit.backwd==0) && (weai._bit.wo_brk==0)) //case 9
{
g_running.Forward1();
bCheckOK=g_running.OneLineToMapCheck(1);
TRACE("\ncase 9");
}
}
if((bBackwd_h==0) && (weai._bit.backwd==1))// backward rising_dedge;
{
bToMap=1;
if(bShutleFlag==0)
{
if(weai._bit.wo_brk==1)
{
g_running.Forward1();//case 10
g_running.Forward1();
g_running.Forward1();
g_running.Forward1(); //////// try
bCheckOK=g_running.OneLineToMapCheck();
TRACE("\ncase 10");
}
else
{
g_running.Forward1();//case 14
g_running.Forward1();
g_running.Forward1();
bCheckOK=g_running.OneLineToMapCheck();
TRACE("\ncase 14");
}
}
else
if(weai._bit.wo_brk==1) //case 11
{
g_running.Forward1();
g_running.Forward1();
bCheckOK=g_running.OneLineToMapCheck();
TRACE("\ncase 11");
}
else // case 12
{
g_running.Forward1();
g_running.Forward1();
bCheckOK=g_running.OneLineToMapCheck();
TRACE("\ncase 12");
}
}
if(bShutleFlag==1) //clear bShutleFlag, if needed
{
if((weai._bit.forwd==0) || (weai._bit.fast==0) || (weai._bit.slow==0))
bShutleFlag=0;
}
if(bCheckOK==FALSE)
{
pWnd->m_info.Format("\nData transmission error in running\
\n Press Clear when ready.");
// pWnd->UpdateData(0);
g_bSendData=0;
}
else
{
if((bToMap==1) && (pWnd->m_bResponsed))
{
pWnd->m_bResponsed=0;
::PostMessage(hwnd,WM_SHOWLIST,0,0);
}
}
bEnable_h=weai._bit.enable;
bBackwd_h=weai._bit.backwd;
bShutle_h=weai._bit.shutle;
Wo_brk=weai._bit.wo_brk;
// EnterCriticalSection(&g_cs);
// LeaveCriticalSection(&g_cs);
g_running.Delay();
}
g_running.StopRun();
::PostMessage(hwnd,WM_SHOWLIST,0,0);
if(timer)
pWnd->KillTimer(timer);
// if(bCheckOK==FALSE)
// AfxMessageBox("Data check error");
return 0;
}
*/
UINT SendData(LPVOID pParam)//(jian gan)
{
CWea2Dlg* pWnd=(CWea2Dlg*)pParam;
HWND hwnd=pWnd->GetSafeHwnd();
g_bSendData=1;
g_running.OneLineToMap();
/* int p=MAP_O;
MAPO map;
map._bit.sdata=1;
map._bit.sclk=1;
map._bit.latch=1;
_outp(p,map._byte);
*/
g_running.StartRun();
BOOL bEnable_h,bBackwd_h,bWobrk_h,bShutle_h;//,fast;
BOOL bFirstBack,bToMap;
BOOL bButtonLocked=0;
BOOL bDataErr=0;
WEAI weai;
int p=WEAVER_I;
weai._byte=_inp(p);
bEnable_h=weai._bit.enable;
bBackwd_h=weai._bit.backwd;
bWobrk_h=weai._bit.wo_brk;
bShutle_h=weai._bit.shutle;
// fast=0;
bFirstBack=0;
BOOL bCheckOK;
int flag=0;
int err1=-1;
g_running.m_ErrorMap=-1;
g_bWoofFinish=0;
g_running.m_StopNum.RemoveAll();
while(g_bSendData)
{
bCheckOK=1;
bToMap=0;
for(int k=0;k<10;k++)
g_running.Delay();
if(pWnd->CheckIO()==FALSE) // check hardware
{
g_bSendData=0;
g_running.StopRun();
::PostMessage(hwnd,WM_ENABLEBUTTON,0,0);
g_running.DelayMs(100);
bButtonLocked=0;
continue;
}
BOOL bFinish=0;
CString info;
weai._byte=_inp(p); // read weai port
// BOOL bNoSensor=0;
switch(flag)
{
case 0:
// for fast run
while((weai._bit.fast==0) && (g_bSendData==1))
{
if((bEnable_h==1) && (weai._bit.enable==0)) // enable falling_edge
{
bToMap=1;
bFinish=g_running.Forward1(); //case 1
bCheckOK=g_running.OneLineToMapCheck();
TRACE("\ncase 1");
bFirstBack=1;
if(bButtonLocked==0)
{
bButtonLocked=1;
::PostMessage(hwnd,WM_LOCKBUTTON,0,0);
}
if(bFinish)
{
pWnd->m_info.Format("Job_List has been finished");
g_bSendData=0;
}
}
bEnable_h=weai._bit.enable;
weai._byte=_inp(p); // read weai port
if(pWnd->CheckIO()==FALSE) // check hardware
{
g_bSendData=0;
// bNoSensor=1;
g_running.StopRun();
g_running.Forward1(); // ============ 8/26 pm
g_running.Forward1(); //
// ::PostMessage(hwnd,WM_ENABLEBUTTON,0,0);
g_running.DelayMs(100);
// ::PostMessage(hwnd,WM_SHOWSTATIC,0,1);
bButtonLocked=0;
break;
}
if((bCheckOK==FALSE) && (g_bDataLock==1))
{
// if(err1==g_running.m_ErrorMap)
// {
g_bSendData=0;
g_running.Forward1();
g_bSendData=0;
g_running.StopRun();
pWnd->m_info.Format("\nData transmission error in running\
\n Map No. %d ?\n Press Clear when ready.\n",g_running.m_ErrorMap);
break;
// }
// else
// {
// err1=g_running.m_ErrorMap;
// bCheckOK=TRUE;
// }
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -