📄 operatedlg.cpp
字号:
case 2:
if(nChar == 0xff)
{
CharNum = 0;
m_nCurrenBmp = 4;
m_DIB.LoadFromFile(m_HelpFilename[m_nCurrenBmp]);
m_bShowManNum = TRUE;
m_bShowTickNum = TRUE;
Invalidate();
m_nStep1 = 0;
value = 2;
}
else
{
value = m_nStatu;
}
break;
case 3:
if(nChar == 0x74)
{
CharNum = 0;
m_nCurrenBmp = 4;
m_DIB.LoadFromFile(m_HelpFilename[m_nCurrenBmp]);
m_bShowManNum = TRUE;
m_bShowTickNum = TRUE;
// AfxBeginThread(Bar_Down,NULL,THREAD_PRIORITY_NORMAL); HM 2001.10.18
PostMessage(WM_BAR_DOWN);
m_pMainView->SendMessage(WM_CHANGE_TLAMP,1,0);
m_pMainView->SendMessage(WM_CHANGE_BAR,1,0);
Invalidate();
m_nStep1 = 0;
value = 2;
}
else
{
value = m_nStatu;
}
break;
default:
value = m_nStatu;
break;
}
return value;
}
int COperateDlg::Key_Che(int nChar)
{
int value;
int tempTicketNum ;
static int CharNum = 0;
CRect rect(245,13,30,190);
switch(m_nStep1)
{
case 0:
if(nChar == 0x1b)
{
CharNum = 0;
m_nCurrenBmp = 8;
m_DIB.LoadFromFile(m_HelpFilename[m_nCurrenBmp]);
m_bShowManNum = FALSE;
m_bShowTickNum = FALSE;
m_bShowFee = FALSE;
Invalidate();
m_nStep1 = 1;
value = m_nStatu;
if((m_nVehicleType > 0)&&(m_nVehicleType < 7))
{
g_nFeie.Format("%d",m_nFee[m_nVehicleType]),
TVShowType(m_nVehicleType);
if(g_Print==1)
{
PrintStation();
}
}
else
{
g_nFeie = '0' ;
TVShowTZType((m_nVehicleType-6),0) ;
}
g_nCheXing.Format("%d",m_nVehicleType) ;
SetTimer(IDT_SHOWMES,2000,NULL);
FeeShowEnd();
TVShowTicketNum(atoi(g_nTicketNum.GetBuffer(g_nTicketNum.GetLength()))) ;
FillTheData(2);
m_pMainFrame->m_pDatawrite->PostThreadMessage(WM_KEY_PRESS,0,(LONG)&m_dDataUse);
}
else if(nChar == 0x0d)
{
CharNum = 0;
m_nCurrenBmp = 11;
m_DIB.LoadFromFile(m_HelpFilename[m_nCurrenBmp]);
m_bShowManNum = FALSE;
m_bShowTickNum = FALSE;
m_bShowFee = FALSE;
Invalidate();
m_nStep1 = 1;
value = m_nStatu;
if((m_nVehicleType > 0)&&(m_nVehicleType < 7))
{
g_nFeie.Format("%d",m_nFee[m_nVehicleType]),
TVShowType(m_nVehicleType);
if(g_Print==1)
{
PrintStation();
}
}
else
{
g_nFeie = '0' ;
TVShowTZType((m_nVehicleType-6),0) ;
}
g_nCheXing.Format("%d",m_nVehicleType) ;
FeeShowEnd();
tempTicketNum = atoi(g_nTicketNum.GetBuffer(g_nTicketNum.GetLength())) ;//1234567890
TVShowTicketNum(tempTicketNum) ;
// AfxBeginThread(Bar_Up,NULL,THREAD_PRIORITY_NORMAL);HM 2001.10.18
PostMessage(WM_BAR_UP);
m_pMainView->SendMessage(WM_CHANGE_BAR,0,0);
m_pMainView->SendMessage(WM_CHANGE_TLAMP,0,0);
FillTheData(5);
m_pMainFrame->m_pDatawrite->PostThreadMessage(WM_KEY_PRESS,0,(LONG)&m_dDataUse);
m_TxjRead = "N" ;
m_pMainFrame->m_pNetManger->PostThreadMessage(WM_KEYTXJ_USE,0,(LONG)&m_dDataUse) ;
m_nVehicleType = 0;
SetTimer(IDT_SHOWMES,2000,NULL);
Play_Sound(0);
Sleep(100);//2001.10.18
}
else
{
value = m_nStatu;
}
break;
case 1:
if(nChar == 0xff)
{
CharNum = 0;
m_nCurrenBmp = 4;
m_DIB.LoadFromFile(m_HelpFilename[m_nCurrenBmp]);
m_bShowManNum = TRUE;
m_bShowTickNum = TRUE;
Invalidate();
m_nStep1 = 0;
value = 2;
}
else
{
value = m_nStatu;
}
break;
default:
value = m_nStatu;
break;
}
return value;
}
BOOL COperateDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
hwnd=m_hWnd ;
//WXP
if (m_pComm1.GetPortOpen())
m_pComm1.SetPortOpen(false) ;
m_pComm1.SetCommPort(3) ;
CString temp ;
temp.Format("%d,n,8,1",2400);
m_pComm1.SetSettings(temp);
if( !m_pComm1.GetPortOpen())
{
m_pComm1.SetPortOpen(TRUE);//打开串口
}
//WXP
//SBY
if(m_pShBYComm.GetPortOpen())
m_pShBYComm.SetPortOpen(FALSE);
m_pShBYComm.SetCommPort(5);
m_pShBYComm.SetSettings("2400,n,8,1");
if( !m_pShBYComm.GetPortOpen())
m_pShBYComm.SetPortOpen(TRUE);//打开串口
//SBY
m_nWorkClass=0;
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
int COperateDlg::Statu_Init(int nChar)
{
CRect rect;
int value;
switch(nChar)
{
case 0x70://F1
m_nCurrenBmp = 1;
m_DIB.LoadFromFile(m_HelpFilename[m_nCurrenBmp]);
Invalidate();
value = 1;
break;
default:
value = 0;
break;
}
return value;
}
void COperateDlg::ShowText(CRect * rect, int num,char nByte)
{
CString str;
DWORD old_textcolor,old_textmode;
CFont * pOldFont;
str.Insert(0,nByte);
CDC * pDC = GetDC();
old_textcolor = pDC->SetTextColor(theIniData.m_dColor_Text6);
old_textmode = pDC->SetBkMode(TRANSPARENT);
pOldFont = pDC->SelectObject(&theIniData.m_fFont3);
pDC->TextOut(rect->left+num*20,rect->top,str);
pDC->SelectObject(pOldFont);
pDC->SetTextColor(old_textcolor);
pDC->SetBkMode(old_textmode);
ReleaseDC(pDC);
}
void COperateDlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
if(nIDEvent == IDT_SHOWMES)
{
KillTimer(IDT_SHOWMES);
SendMessage(WM_USER_KEY,0xff,0);
}
CDialog::OnTimer(nIDEvent);
}
void COperateDlg::PrintMessage(int nType)
{
CString str;
CTime time;
BYTE * pBuffer;
pBuffer = new BYTE[100];
pBuffer[0] = 0x0e;
time = CTime::GetCurrentTime();
str="";
if(nType!=11)//即非车队
{
m_sFee.Format("%d",m_nFee[nType]);
m_sVehicleType.Format("%d",nType);
}
else
{
m_sVehicleType="车队";
}
str += "\n";
//3line
str += " " ;
str += time.Format("%Y/%m/%d\n");
// strText = time.Format("%Y/%m/%d");
str += "\n";
//3line
//4line
str += " " ;
str += time.Format("%H:%M:%S\n");
// strText +=time.Format("%H:%M:%S");
str += "\n";
//4line
//5line
str += " " ;
str += m_sFee ;
if(nType!=11)//即非车队
{
str += " " ;
}
else
{
str += " " ;
}
str += m_sVehicleType;
str += "\n\n\n\n\n\n\n\n\n\n\n\n";
//5line
AfxMessageBox(str);
strcpy((char *)pBuffer+1,str.GetBuffer(str.GetLength()));
m_pPrinter->WriteOut(pBuffer,str.GetLength()+1);
delete []pBuffer;
strText = "Y" + strText ;
// CTime time;
// time = CTime::GetCurrentTime();
// strText = time.Format("%Y/%m/%d");
// strText +=time.Format("%H:%M:%S");
// strText = "Y" + strText ;
// CDC * pDC ;
// CPrintInfo * pInfo ;
//m_pMainView::OnPrint(pDC,pInfo) ;
// CLaneSoftView::OnPrint(pDC,pInfo) ;
//m_pMainView->PostMessage(ID_FILE_PRINT,0,0) ;
//m_pMainView->SendMessage(ID_FILE_PRINT,0,0) ;
}
void COperateDlg::PrintStation()
{
CString str,temp;
BYTE * pBuffer;
pBuffer = new BYTE[100];
pBuffer[0] = 0x0e;
str = "\n\n\n" ;
str += " ";
str += g_Station_Name;
str += "\n\n";
//2line
str += " " ;
str += m_sManNum ;
str += " " ;
temp.Format("%d",g_Lane_No) ;
str += temp ;
str += "\n";
//2line
strcpy((char *)pBuffer+1,str.GetBuffer(str.GetLength()));
m_pPrinter->WriteOut(pBuffer,str.GetLength()+1);
delete []pBuffer;
}
void COperateDlg::FeeShowEnd()
{
CByteArray data0;
tempFeeShowStr1 = "a1"+tempFeeShowStr1.Mid(3,6) ;
int len=Str2Hex(tempFeeShowStr1,data0);
m_pComm1.SetOutput(COleVariant(data0));//发送数据
}
void COperateDlg::FeeShowMessage(int nType)
{
if( !m_pComm1.GetPortOpen())
m_pComm1.SetPortOpen(TRUE);//打开串口
CByteArray data;
CString tempFeeShowStr ;
CString tempStr ;
tempFeeShowStr = "a0" ;
tempStr.Format("%d",nType) ;
for (int i = tempStr.GetLength() ;i <2 ;i = i +1)
tempStr = "0" +tempStr ;
tempFeeShowStr = tempFeeShowStr + tempStr ;
int Fee,Feeh,Feel;
if (nType > 6 || nType==0)
{
if (nType == 9)
{
Fee = TZCheFee ;
}
else
{
Fee = 0;
}
}
else
{
Fee = m_nFee[nType];
}
Feeh = Fee/100;
Feel = Fee - (Fee/100)*100;
tempStr.Format("%d",Feel) ;
for (int i0 = tempStr.GetLength() ;i0 <2 ;i0 = i0 +1)
tempStr = "0" +tempStr ;
tempFeeShowStr = tempFeeShowStr + tempStr ;
tempStr.Format("%d",Feeh) ;
for (int i1 = tempStr.GetLength() ;i1 <2 ;i1 = i1 +1)
tempStr = "0" +tempStr ;
tempFeeShowStr = tempFeeShowStr + tempStr ;
tempFeeShowStr1 = tempFeeShowStr ;
int len=Str2Hex(tempFeeShowStr,data);
m_pComm1.SetOutput(COleVariant(data));//发送数据
}
int COperateDlg::HextoBcd(int num)
{
return (num/10)*16 + (num- (num/10)*10);
}
void COperateDlg::TVWrite(int reg,int num)
{
int i,a;
_outp(0x368,(reg&0xff));
_outp(0x369,(num&0xff));
for(i = 0 ; i < 5000 ; i++)
{
a = _inp(0x36a);
a &= 1;
if(a==0)
return;
}
}
void COperateDlg::TVShowTime()
{
int data,data1;
CTime Time;
Time = CTime::GetCurrentTime();
data = Time.GetSecond();
TVWrite(0x3d,HextoBcd(data));
TVWrite2(0x3d,HextoBcd(data));
if((data == 59)||(data == 1) || (data == 2) || (data ==3) ||(data ==58))
{
data = Time.GetMinute();
TVWrite(0x3c,HextoBcd(data));
TVWrite2(0x3c,HextoBcd(data));
if(data == 1)
{
data = Time.GetHour();
TVWrite(0x3b,HextoBcd(data));
TVWrite2(0x3b,HextoBcd(data));
if(data == 0)
{
data = Time.GetDay();
TVWrite(0x3a,HextoBcd(data));
TVWrite2(0x3a,HextoBcd(data));
if(data == 1)
{
data = Time.GetMonth();
TVWrite(0x39,HextoBcd(data));
TVWrite2(0x39,HextoBcd(data));
if(data ==1)
{
data = Time.GetYear();
data1 = data/100;
data -= data1*100;
TVWrite(0x38,HextoBcd(data));
TVWrite2(0x38,HextoBcd(data));
TVWrite(0x37,HextoBcd(data1));
TVWrite2(0x37,HextoBcd(data1));
}
}
}
}
}
}
void COperateDlg::TVShowAll()
{
int data,data1;
CTime Time;
Time = CTime::GetCurrentTime();
data = Time.GetSecond();
TVWrite(0x3d,HextoBcd(data));
TVWrite2(0x3d,HextoBcd(data));
data = Time.GetMinute();
TVWrite(0x3c,HextoBcd(data));
TVWrite2(0x3c,HextoBcd(data));
data = Time.GetHour();
TVWrite(0x3b,HextoBcd(data));
TVWrite2(0x3b,HextoBcd(data));
data = Time.GetDay();
TVWrite(0x3a,HextoBcd(data));
TVWrite2(0x3a,HextoBcd(data));
data = Time.GetMonth();
TVWrite(0x39,HextoBcd(data));
TVWrite2(0x39,HextoBcd(data));
data = Time.GetYear();
data1 = data/100;
data -= data1*100;
TVWrite(0x38,HextoBcd(data));
TVWrite2(0x38,HextoBcd(data));
TVWrite(0x37,HextoBcd(data1));
TVWrite2(0x37,HextoBcd(data1));
}
void COperateDlg::TVShowClass(int nClass)
{
int nManNum,nManNumh;
TVWrite(0x3e,HextoBcd(nClass));
TVWrite2(0x3e,HextoBcd(nClass));
Sleep(10) ;
TVWrite(0x3f,HextoBcd(g_Lane_No));
TVWrite2(0x3f,HextoBcd(g_Lane_No));
Sleep(10) ;
nManNum = atoi(m_sManNum.GetBuffer(m_sManNum.GetLength()));
nManNumh = nManNum/100;
nManNum = nManNum - nManNumh*100;
TVWrite(0x30,HextoBcd(nManNumh));
TVWrite2(0x30,HextoBcd(nManNumh));
Sleep(10) ;
TVWrite(0x31,HextoBcd(nManNum));
TVWrite2(0x31,HextoBcd(nManNum));
}
void COperateDlg::TVShowType(int nType)
{
TVWrite(0x36,HextoBcd(nType));
TVWrite2(0x36,HextoBcd(nType));
}
void COperateDlg::OnDestroy()
{
CDialog::OnDestroy();
m_bRunning = FALSE;
}
void COperateDlg::Setup_TLamp(int green)
{
int a;
a = m_nHard;
if(green == 0)
{
m_nHard |= 0x01;
//_outp(0x3e2,m_nHard);
_outp(0x3e2,0x31);
}
else
{
m_nHard &= 0xfe ;
_outp(0x3e2,m_nHard);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -