?? wea2dlg(箭桿).cpp
字號(hào):
}
g_running.OneLineToMap(); // 03/9/4
return;
}
*/ CSetupDlg dlg1;
if((dlg1.DoModal()==IDOK) && (g_bHardwareReady==TRUE))
{
if(CheckIO(m_info) && g_bProgramReady && (bSendData==1))
{
g_running.StartRun();
m_info.Format(IDS_READY+g_language);
UpdateData(0);
UpdateList(g_running.m_WritePointer.i._int);
CWinThread* pT=AfxBeginThread(SendData,this,THREAD_PRIORITY_HIGHEST);//GetSafeHwnd());//,THREAD_PRIORITY_TIME_CRITICAL); //啟動(dòng)一個(gè)線(xiàn)程
}
UpdateData(0);
UpdateList(g_running.m_WritePointer.i._int);
::PostMessage(hwnd,WM_SHOWLIST,0,0);
return;
}
UpdateData(0);
UpdateList(0);
::PostMessage(hwnd,WM_SHOWLIST,0,0);
// }
// p=PC_INI_O;
// d=0xaa;
// _outp(p,d);
}
void CWea2Dlg::OnCancel()
{
int p=PC_INI_O;
int d=0;
_outp(p,d);
g_bSendData=0;
if(g_job.GetSize()>0)
SaveIni(&g_job,&g_running);
for(int i=0;i<5000;i++)
g_running.Delay();
CDialog::OnCancel();
}
void CWea2Dlg::UpdateList(int index)
{
m_WeaList.DeleteAllItems();
m_JobList.DeleteAllItems();
CStringArray SA;
CString info;
int n=g_job.GetSize();
if(index>=n)
return;
for(int i=0;i<n;i++)
{
SA.RemoveAll();
CWea* pw=(CWea*)g_job.GetAt(i);
int ci,cr;//current_i, current_repeat
int si,ei,r;//start_i, end_i,repeat
si=pw->m_StartPoint.y+1;
ei=pw->m_StartPoint.y+pw->m_Size.cy;
r=pw->m_nRepeat;
if(i<m_index)
{
ci=ei;
cr=r;
}
if(i==m_index)
{
ci=g_running.m_WritePointer.i._int+pw->m_StartPoint.y+1;
cr=g_running.m_WritePointer.WeaRepeat._int;
}
else
{
ci=0;
cr=0;
}
// info.Format("%s%s",pw->m_WeaPathName,pw->m_WeaFileName);
info.Format("%s",pw->m_WeaFileName);
SA.Add(info);
// info.Format("%d, %d→%d",ci-1,si,ei); // sub 1
info.Format("%d, %d→%d",ci,si,ei);
SA.Add(info);
info.Format("%d→%d",cr,r);
SA.Add(info);
InsertItemString(&m_WeaList,i, SA);
}
m_WeaList.SetItemState(index,LVIS_DROPHILITED ,LVIS_DROPHILITED );
SA.RemoveAll();
// info.Format("%s%s",g_job.m_JobPathName,g_job.m_JobFileName);
info.Format("%s",g_job.m_JobFileName);
SA.Add(info);
info.Format("%d→%d",g_running.m_WritePointer.JobRepeat,g_job.m_nRepeat);
SA.Add(info);
InsertItemString(&m_JobList,0, SA);
}
void CWea2Dlg::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct)
{
// TODO: Add your message handler code here and/or call default
CDialog::OnDrawItem(nIDCtl, lpDrawItemStruct);
}
LRESULT CWea2Dlg::OnShowList(WPARAM wParam,LPARAM lParam)
{
// EnterCriticalSection(&g_cs);
g_running.Delay();
m_index=g_running.m_WritePointer.WeaIndex._int;
UpdateList(m_index);
m_bResponsed=1;
UpdateData(0);
// LeaveCriticalSection(&g_cs);
return 0;
}
LRESULT CWea2Dlg::OnShowStatic(WPARAM wParam,LPARAM lParam)
{
// EnterCriticalSection(&g_cs);
g_running.Delay();
if(lParam==0)
m_info_num.Format("%d",g_running.m_WritePointer.i._int);
m_info=m_info_error+m_info_num;
m_bResponsed=1;
UpdateData(0);
// LeaveCriticalSection(&g_cs);
return 0;
}
void CWea2Dlg::OnPickforward()
{
/* CWea* pw=(CWea*) g_job.GetAt(m_index);
int ei=pw->m_StartPoint.y+pw->m_Size.cy;
if(g_running.m_WritePointer.i>=ei-1)
return; */
if(g_job.GetSize()==0)
return;
g_running.Forward1();
m_index=g_running.m_WritePointer.WeaIndex._int;
UpdateList(m_index);
}
void CWea2Dlg::OnPickbackward()
{
/* CWea* pw=(CWea*) g_job.GetAt(m_index);
int si=pw->m_StartPoint.y+1;
if(g_running.m_WritePointer.i<=si-1)
return; */
if(g_job.GetSize()==0)
return;
g_running.Backward1();
m_index=g_running.m_WritePointer.WeaIndex._int;
UpdateList(m_index);
}
void CWea2Dlg::OnPicknumber()
{
if(g_job.GetSize()==0)
return;
CWea* pw=(CWea*) g_job.GetAt(m_index);
int si=pw->m_StartPoint.y+1;
int ei=pw->m_StartPoint.y+pw->m_Size.cy;
CString info;
int x;
int x1=g_running.m_WritePointer.i._int+pw->m_StartPoint.y+1;
info.Format(IDS_PICKNUMBER+g_language);
if(m_hDLL)
{
x=get_number(info,x1,g_language);
if(x==x1)
return;
if(x>ei || x<si)
{
AfxMessageBox(IDS_ERROR_NUMBER+g_language);
return;
}
g_running.m_WritePointer.i._int=x-pw->m_StartPoint.y-1;
UpdateList(m_index);
}
/* CNumDlg dlg;
dlg.m_num=g_running.m_WritePointer.i._int+pw->m_StartPoint.y+1;
dlg.m_info.Format(IDS_PICKNUMBER+g_language,si,ei);
if(dlg.DoModal()==IDOK)
{
if(dlg.m_num>ei || dlg.m_num<si)
{
AfxMessageBox(IDS_ERROR_NUMBER+g_language);
return;
}
g_running.m_WritePointer.i._int=dlg.m_num-pw->m_StartPoint.y-1;
UpdateList(m_index);
}
*/}
BOOL CWea2Dlg::CheckIO(CString& info)
{
CString s;
WEAI weai;
MAPI mapi;
g_bHardwareReady=FALSE;
info.Format(IDS_READY+g_language);
m_info=info;
int p=MAP_I;
mapi._byte=_inp(p);
if((g_bSendData==1)&&(mapi._bit.no_data==1))
{
info.Format(IDS_NO_DATA+g_language);
s.Format(IDS_READY_CLEAR+g_language);
info=info+s;
g_bHardwareReady=FALSE;
g_running.Forward1();
g_running.Forward1();
m_info=info;
return FALSE;
}
if(mapi._bit.ps==0)
{
m_power_count++;
if(m_power_count>=2)
{
info.Format(IDS_POWER_ERROR+g_language);
// info.Format("ERROR: Power of MAP is not ready.\n");
s.Format(IDS_READY_CLEAR+g_language);
info=info+s;
m_info=info;
g_bHardwareReady=FALSE;
m_power_count=0;
return FALSE;
}
/*
CString info1;
BOOL bLED_flash;
g_test.m_errn=g_test.TestDataTrans(info1, bLED_flash);
if(g_test.m_errn && bLED_flash)
{
if(g_bFlashLED==0)
CWinThread* pT=AfxBeginThread(FlashLED,this,THREAD_PRIORITY_LOWEST);//啟動(dòng)一個(gè)線(xiàn)程
}
info=info+info1;
*/
// g_running.Forward1();
}
else
m_power_count=0;
// ==============================following : protect===============
p=WEAVER_I;
// weai._byte=_inp(p)&0x30;
weai._byte=_inp(p);
// TRACE("weai=%d\n",weai._byte);
if((weai._bit.fast==1) && (m_bSensor123==1) && (mapi._bit.sensor123==0))
{
if(m_timer==0)
{
m_timer=SetTimer(10,g_time*60000,NULL); // 1 minute
}
}
if((m_bSensor123==0) && (mapi._bit.sensor123==1))
{
p=PC_DISABLE_H_O;
int d=1;
_outp(p,d);
if(m_timer)
KillTimer(m_timer);
m_timer=0;
}
m_bSensor123=mapi._bit.sensor123;
// ==============================above: protect===============
// CString s;
if(weai._byte!=0)
{
g_running.Delay();
g_running.Delay();
g_running.Delay();
g_running.Delay();
// weai._byte=_inp(WEAVER_I)&0x30;
weai._byte=_inp(WEAVER_I);
}
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;
m_info=info;
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;
}
BOOL CWea2Dlg::CheckIO()
{
// TRACE("\nCheckIO 0, %s",m_info);
CString s;
WEAI weai;
MAPI mapi;
g_bHardwareReady=FALSE;
m_info_error.Format(IDS_READY+g_language);
int p=MAP_I;
mapi._byte=_inp(p);
if(mapi._bit.no_data==1)
{
m_info_error.Format(IDS_NO_DATA+g_language);
s.Format(IDS_READY_CLEAR+g_language);
m_info=m_info+s;
g_bHardwareReady=FALSE;
g_running.Forward1();
g_running.Forward1();
TRACE("\nCheckIO 1, %s",m_info);
return FALSE;
}
if(mapi._bit.ps==0)
{
m_info_error.Format(IDS_POWER_ERROR+g_language);
// info.Format("ERROR: Power of MAP is not ready.\n");
s.Format(IDS_READY_CLEAR+g_language);
m_info_error=m_info_error+s;
g_bHardwareReady=FALSE;
/*
CString info1;
BOOL bLED_flash;
g_test.m_errn=g_test.TestDataTrans(info1, bLED_flash);
if(g_test.m_errn && bLED_flash)
{
if(g_bFlashLED==0)
CWinThread* pT=AfxBeginThread(FlashLED,this,THREAD_PRIORITY_LOWEST);//啟動(dòng)一個(gè)線(xiàn)程
}
info=info+info1;
*/
// g_running.Forward1();
TRACE("\nCheckIO 2, %s",m_info);
return FALSE;
}
// ==============================following : protect===============
p=WEAVER_I;
// weai._byte=_inp(p)&0x30;
weai._byte=_inp(p);
// TRACE("weai=%d\n",weai._byte);
if((weai._bit.fast==1) && (m_bSensor123==1) && (mapi._bit.sensor123==0))
{
if(m_timer==0)
{
m_timer=SetTimer(10,g_time*60000,NULL); // 1 minute
}
}
if((m_bSensor123==0) && (mapi._bit.sensor123==1))
{
p=PC_DISABLE_H_O;
int d=1;
_outp(p,d);
if(m_timer)
KillTimer(m_timer);
m_timer=0;
}
m_bSensor123=mapi._bit.sensor123;
// ==============================above: protect===============
// CString s;
if(weai._byte!=0)
{
g_running.Delay();
g_running.Delay();
g_running.Delay();
g_running.Delay();
// weai._byte=_inp(WEAVER_I)&0x30;
weai._byte=_inp(WEAVER_I);
}
if(g_bWoofFinish==1)
{
g_bWoofFinish=0;
if(g_bWoofLock==0)
{
m_info_error.Format(IDS_WOOF_BRK+g_language);
s.Format(IDS_READY_RUN+g_language);
m_info_error=m_info_error+s;
// info.Format("ERROR: %x\nWoof break.\n Run when ready.",weai._byte);
g_bHardwareReady=TRUE;
}
else
{
m_info_error.Format(IDS_WOOF_BRK+g_language);
s.Format(IDS_READY_CLEAR+g_language);
m_info_error=m_info_error+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;
m_info.Format(IDS_WARP_BRK+g_language);
s.Format(IDS_READY_RUN+g_language);
m_info_error=m_info_error+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;
}/*
BOOL CWea2Dlg::CheckIO(CString *info)
{
TRACE("\nCheckIO 0, %s",*info);
CString s;
WEAI weai;
MAPI mapi;
g_bHardwareReady=FALSE;
info->Format(IDS_READY+g_language);
int p=MAP_I;
mapi._byte=_inp(p);
if(mapi._bit.no_data==1)
{
info->Format(IDS_NO_DATA+g_language);
s.Format(IDS_READY_CLEAR+g_language);
*info=*info+s;
g_bHardwareReady=FALSE;
g_running.Forward1();
g_running.Forward1();
TRACE("\nCheckIO 1, %s",*info);
return FALSE;
}
if(mapi._bit.ps==0)
{
info->Format(IDS_POWER_ERROR+g_language);
// info.Format("ERROR: Power of MAP is not ready.\n");
s.Format(IDS_READY_CLEAR+g_language);
*info=*info+s;
g_bHardwareReady=FALSE;
// g_running.Forward1();
TRACE("\nCheckIO 2, %s",*info);
return FALSE;
}
// ==============================following : protect===============
p=WEAVER_I;
// weai._byte=_inp(p)&0x30;
weai._byte=_inp(p);
// TRACE("weai=%d\n",weai._byte);
if((weai._bit.fast==1) && (m_bSensor123==1) && (mapi._bit.sensor123==0))
{
if(m_timer==0)
{
m_timer=SetTimer(10,g_time*60000,NULL); // 1 minute
}
}
if((m_bSensor123==0) && (mapi._bit.sensor123==1))
{
p=PC_DISABLE_H_O;
int d=1;
_outp(p,d);
if(m_timer)
KillTimer(m_timer);
m_timer=0;
}
m_bSensor123=mapi._bit.sensor123;
// ==============================above: protect===============
// CString s;
if(weai._byte!=0)
{
g_running.Delay();
g_running.Delay();
g_running.Delay();
g_running.Delay();
// weai._byte=_inp(WEAVER_I)&0x30;
weai._byte=_inp(WEAVER_I);
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -