📄 mainfrm.cpp
字号:
(HFONT)::GetStockObject(DEFAULT_GUI_FONT)
)
);
m_pWndEdit->SetWindowText(_T("0"));
BOOL bRet = m_wndStatusBar.AddPane(nID,nPosition);
if(!bRet){
AfxMessageBox(_T("Pane index out of range\nor pane with same ID already exists in the status bar"), MB_ICONERROR);
return;
}
int nIndex = m_wndStatusBar.CommandToIndex(nID);
if (nIndex == -1)
return;
m_wndStatusBar.SetPaneWidth(nIndex, width);
m_wndStatusBar.AddPaneControl(m_pWndEdit, nID, true);
}
break;
case 2: // progress ctrl
{
m_pWndProgressCtrl = new CStatusBarProgressCtrl;
if (!m_pWndProgressCtrl->Create(
WS_CHILD|WS_VISIBLE|WS_TABSTOP, //|PBS_SMOOTH
CRect(0,0,0,0),
&m_wndStatusBar,
0))
{
TRACE(_T("Failed to create progress control.\n"));
return;
}
m_pWndProgressCtrl->ModifyStyleEx(WS_EX_STATICEDGE,0,SWP_FRAMECHANGED);
m_pWndProgressCtrl->SetRange(0,300);
m_pWndProgressCtrl->SetPos(0);
m_pWndProgressCtrl->SetStep(1);
BOOL bRet = m_wndStatusBar.AddPane(nID, nPosition);
if(!bRet){
AfxMessageBox(_T("Pane index out of range\nor pane with same ID already exists in the status bar"), MB_ICONERROR);
return;
}
int nIndex = m_wndStatusBar.CommandToIndex(nID);
if (nIndex == -1)
return;
m_wndStatusBar.SetPaneWidth(nIndex, width);
m_wndStatusBar.AddPaneControl(m_pWndProgressCtrl, nID, true);
m_pWndProgressCtrl->SetTimer(0,1,NULL);
}
break;
case 3: // slider ctrl
{
m_pWndSliderCtrl = new CStatusBarSliderCtrl;
if (!m_pWndSliderCtrl->Create(
WS_CHILD|WS_VISIBLE|WS_TABSTOP|TBS_HORZ,
CRect(0,0,0,0),
&m_wndStatusBar,
0))
{
TRACE(_T("Failed to create slider control.\n"));
return;
}
BOOL bRet = m_wndStatusBar.AddPane(nID, nPosition);
if(!bRet){
AfxMessageBox(_T("Pane index out of range\nor pane with same ID already exists in the status bar"), MB_ICONERROR);
return;
}
int nIndex = m_wndStatusBar.CommandToIndex(nID);
if (nIndex == -1)
return;
m_wndStatusBar.SetPaneWidth(nIndex, width);
m_wndStatusBar.AddPaneControl(m_pWndSliderCtrl, nID, true);
}
break;
case 4: // button
{
m_pWndButton = new CStatusBarButton;
if (!m_pWndButton->Create(
_T(""),
WS_CHILD|WS_VISIBLE|WS_TABSTOP,
CRect(0,0,0,0),
&m_wndStatusBar,
IDC_CLEAR_BUTTON))
{
TRACE(_T("Failed to create button control.\n"));
return;
}
m_pWndButton->SetFont(
CFont::FromHandle(
(HFONT)::GetStockObject(DEFAULT_GUI_FONT)
)
);
BOOL bRet = m_wndStatusBar.AddPane(nID, nPosition);
if(!bRet){
AfxMessageBox(_T("Pane index out of range\nor pane with same ID already exists in the status bar"), MB_ICONERROR);
return;
}
int nIndex = m_wndStatusBar.CommandToIndex(nID);
if (nIndex == -1)
return;
m_wndStatusBar.SetPaneWidth(nIndex, width);
m_wndStatusBar.AddPaneControl(m_pWndButton, nID, true);
}
break;
case 5: // label
{
m_pWndLabel = new CStatusBarLabel;
if (!m_pWndLabel->Create(
_T("Company Logo"),
WS_CHILD|WS_VISIBLE|WS_TABSTOP|SS_CENTER,
CRect(0,0,0,0),
&m_wndStatusBar,
0))
{
TRACE(_T("Failed to create label control.\n"));
return;
}
m_pWndLabel->SetFont(
CFont::FromHandle(
(HFONT)::GetStockObject(DEFAULT_GUI_FONT)
)
);
BOOL bRet = m_wndStatusBar.AddPane(nID, nPosition);
if(!bRet){
AfxMessageBox(_T("Pane index out of range\nor pane with same ID already exists in the status bar"), MB_ICONERROR);
return;
}
int nIndex = m_wndStatusBar.CommandToIndex(nID);
if (nIndex == -1)
return;
m_wndStatusBar.SetPaneWidth(nIndex, width);
m_wndStatusBar.AddPaneControl(m_pWndLabel, nID, true);
}
break;
}
}
void CMainFrame::UpdateTagCount(ULONG count)
{
CString temp;
temp.Format(_T("%u"), count);
m_pWndEdit->SetWindowText(temp);
#ifdef LARGE_COUNT
// m_wndCountDlg->SetCount(temp);
#endif
}
void CMainFrame::UpdateTagReadCount(ULONG count)
{
CString temp;
temp.Format(_T("%u"), count);
m_wndTotalReadCount.SetWindowText(temp);
}
void CMainFrame::AddTagReadCount(ULONG count)
{
CString temp;
wchar_t* endptr;
m_wndTotalReadCount.GetWindowText(temp);
ULONG ulNum = wcstoul( (LPWSTR)(LPCWSTR)temp ,&endptr ,10 );
UpdateTagReadCount(ulNum + count);
#ifdef LARGE_COUNT
m_wndCountDlg->SetCount(temp);
#endif
//
// temp.Format(_T("%u"), ulVer + count);
// m_wndTotalReadCount.SetWindowText(temp);
}
//void CMainFrame::DoDataExchange(CDataExchange* pDX)
//{
// // TODO: Add your specialized code here and/or call the base class
//
// CFrameWnd::DoDataExchange(pDX);
//}
void CMainFrame::OnRfidReaderSet()
{
// Declear Image list variance
CImageList smallImageList;
// Create a image list and assign it to the list control
VERIFY(smallImageList.Create(IDB_BITMAP_TAB_16, 16, 2, RGB(255, 255, 255)));
// int nCount = smallImageList.GetImageCount();
// Create PropertySheet
CReaderSetSheet sheet(_T("Reader Setting"));
// Set Image list at each Property Page
CGeneralSetPage page1(TEXT("General"), smallImageList.ExtractIcon(0));
CAntennaSetPage page2(TEXT("Antenna"), smallImageList.ExtractIcon(1));
CSelectCriteriaSetPage page3(TEXT("Select Criteria"), smallImageList.ExtractIcon(1));
CAlgorithmSetPage page4(TEXT("Algorithm"), smallImageList.ExtractIcon(1));
CPostSingulationSetPage page5(TEXT("Post Singulation"), smallImageList.ExtractIcon(1));
CFrequencyBandPage page6(TEXT("Frequency Band"), smallImageList.ExtractIcon(1));
CEngineeringSetPage page7(TEXT("Engineering"), smallImageList.ExtractIcon(2));
// Image List Detach
smallImageList.Detach();
// Add Page to PropertySheet
sheet.AddPage(&page1);
sheet.AddPage(&page2);
// sheet.AddPage(&page3);
sheet.AddPage(&page4);
// sheet.AddPage(&page5);
sheet.AddPage(&page6);
sheet.AddPage(&page7);
sheet.DoModal();
}
void CMainFrame::OnUpdateRfidReaderSet(CCmdUI *pCmdUI)
{
if(m_pRFIDRadioManager->GetControlState(RFID_POWER) && m_pRFIDRadioManager->IsConnect() && !m_pRFIDRadioManager->IsInventory())
pCmdUI->Enable(1);
else
pCmdUI->Enable(0);
}
void CMainFrame::OnRfidPowerOnOff()
{
#ifdef _WIN32_WCE
m_pRFIDRadioManager->StopInventory();
m_pRFIDRadioManager->Disconnect();
CString strTemp;
// Power
if(GetControlState(RFID_POWER) != TRUE)
{
::SetControlState(RFID_POWER, TRUE);
::SetControlState(RFID_GREEN_LED, TRUE);
Sleep(1200);
strTemp.LoadString(IDS_STRING_RFID_POWER_ON);
SetStatusBar(0, strTemp);
}
else
{
::SetControlState(RFID_POWER, FALSE);
::SetControlState(RFID_GREEN_LED, FALSE);
strTemp.LoadString(IDS_STRING_RFID_POWER_OFF);
SetStatusBar(0, strTemp);
}
#endif
}
void CMainFrame::OnUpdateRfidPowerOnOff(CCmdUI *pCmdUI)
{
CString str;
if(::GetControlState(RFID_POWER))
{
str.LoadString(IDS_STRING_POWER_OFF);
pCmdUI->SetCheck(1);
pCmdUI->SetText(str);
// pCmdUI->Enable(0);
}
else
{
str.LoadString(IDS_STRING_POWER_ON);
pCmdUI->SetCheck(0);
pCmdUI->SetText(str);
// pCmdUI->Enable(1);
}
}
void CMainFrame::OnRfidReset()
{
RFID_STATUS status;
theApp.DoWaitCursor(1);
#ifdef _WIN32_WCE
if(m_pRFIDRadioManager->GetControlState(RFID_POWER))
{
if(GetRFIDRadioManager()->IsConnect())
{
if(RFID_STATUS_OK !=
(status = m_pRFIDRadioManager->Reset()))
{
AfxMessageBox(_T("Fail to MacReset"));
}
// Sleep Reboot Process
Sleep(2000);
GetRFIDRadioManager()->Disconnect();
if(m_pRFIDRadioManager->Connect() != RFID_STATUS_OK)
{
SetStatusBar(0, _T("RFID Handle Create Fail"));
}
SetStatusBar(0, _T("Reset Success"));
}
else
{
GetRFIDRadioManager()->Disconnect();
if(m_pRFIDRadioManager->Connect() != RFID_STATUS_OK)
{
SetStatusBar(0, _T("RFID Handle Create Fail"));
}
SetStatusBar(0, _T("Connection"));
}
}
else
{
AfxMessageBox(_T("Error : Power Input Fail"));
}
#else
if(GetRFIDRadioManager()->IsConnect())
{
if(RFID_STATUS_OK !=
(status = m_pRFIDRadioManager->Reset()))
{
AfxMessageBox(_T("Fail to MacReset"));
}
Sleep(2000);
GetRFIDRadioManager()->Disconnect();
if(m_pRFIDRadioManager->Connect() != RFID_STATUS_OK)
{
SetStatusBar(0, _T("RFID Handle Create Fail"));
}
SetStatusBar(0, _T("Reset Success"));
}
else
{
GetRFIDRadioManager()->Disconnect();
if(m_pRFIDRadioManager->Connect() != RFID_STATUS_OK)
{
SetStatusBar(0, _T("RFID Handle Create Fail"));
}
SetStatusBar(0, _T("Connection"));
}
#endif
theApp.DoWaitCursor(-1);
}
void CMainFrame::OnUpdateRfidReset(CCmdUI *pCmdUI)
{
#ifdef WINCE
if(m_pRFIDRadioManager->GetControlState(RFID_POWER) && GetRFIDRadioManager()->IsConnect())
pCmdUI->Enable(1);
else
pCmdUI->Enable(0);
#else
if(GetRFIDRadioManager()->IsConnect())
pCmdUI->Enable(1);
else
pCmdUI->Enable(0);
#endif
}
CRFIDRadioManager* CMainFrame::GetRFIDRadioManager()
{
return m_pRFIDRadioManager;
}
// Tag Read
void CMainFrame::OnTagRead()
{
CRFRMDoc* pDoc = (CRFRMDoc*)GetActiveDocument();
CReadTagAccessDlg dlg(this);
if(m_pRFIDRadioManager->IsInventory())
OnRfidStopInventory();
if(pDoc->GetSelectedTag() != NULL)
dlg.SetSelectedTag(pDoc->GetSelectedTag());
if(dlg.DoModal() == IDOK)
{
// Show Result View
if (m_wndSplitter.IsPaneHidden(Bottom))
{
m_wndSplitter.ShowPane(Bottom, TRUE);
}
if(/*dlg.m_nComboOffset != 0 && dlg.m_nComboOffset != 1 && */dlg.m_nComboCount != 0)
{
if(dlg.m_strEPC == TEXT(""))
m_pRFIDRadioManager->TagRead(0, NULL, dlg.m_nComboMBank, dlg.m_nComboOffset, dlg.m_nComboCount);
else
m_pRFIDRadioManager->TagRead(0, (INT32U*)pDoc->GetSelectedTag()->GetTagEPC(), dlg.m_nComboMBank, dlg.m_nComboOffset, dlg.m_nComboCount);
}
else
{
::MessageBox(AfxGetMainWnd()->m_hWnd, _T("Input parameter does not right!"), _T("Error"), MB_ICONERROR);
}
}
}
// Tag Write
void CMainFrame::OnTagWrite()
{
CRFRMDoc* pDoc = (CRFRMDoc*)GetActiveDocument();
CWriteTagAccessDlg dlg(this);
// Stop Inventory
if(m_pRFIDRadioManager->IsInventory())
OnRfidStopInventory();
if(pDoc->GetSelectedTag() != NULL)
dlg.SetSelectedTag(pDoc->GetSelectedTag());
if(dlg.DoModal() == IDOK)
{
if (m_wndSplitter.IsPaneHidden(Bottom))
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -