📄 mainfrm.cpp
字号:
// MainFrm.cpp : implementation of the CMainFrame class
//
#include "stdafx.h"
#include "RFRM.h"
#include "MainFrm.h"
#include "RFRMDoc.h"
#include "RFRMView.h"
#include "MessageView.h"
#include "SplashWnd.h"
#include "RFIDRadioManager.h"
#include "ReaderSetSheet.h"
#include "GeneralSetPage.h"
#include "AntennaSetPage.h"
#include "SelectCriteriaSetPage.h"
#include "AlgorithmSetPage.h"
#include "PostSingulationSetPage.h"
#include "EngineeringSetPage.h"
#include "FrequencyBandPage.h"
#include "ReadTagAccessDlg.h"
#include "WriteTagAccessDlg.h"
#include "LockTagAccessDlg.h"
#include "KillTagAccessDlg.h"
#include "InterfaceDlg.h"
#include "FirmwareUpdateOptionDlg.h"
#include "FirmwareUpdateStatusDlg.h"
#include "Util.h"
#ifdef LARGE_COUNT
#include "CountDlg.h"
#endif
#ifdef _WIN32_WCE
#include <pkfuncs.h> //傈盔包府
#include <msgqueue.h> // 皋矫瘤 钮 包访
#include <pm.h> // 傈盔包府 包访
#endif
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
#ifdef WIN32_PLATFORM_PSPC
#define TOOLBAR_HEIGHT 24
#endif // WIN32_PLATFORM_PSPC
#ifdef _WIN32_WCE
#define QUEUE_ENTRIES 3
#define MAX_NAMELEN 200
#define QUEUE_SIZE (QUEUE_ENTRIES * (sizeof(POWER_BROADCAST) + MAX_NAMELEN))
const DWORD dwAdornmentFlags = 0; // exit button
#endif
// CMainFrame
IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
ON_WM_CREATE()
ON_WM_CLOSE()
#ifdef WINCE
ON_NOTIFY(TBN_DROPDOWN, AFX_IDW_TOOLBAR, &CMainFrame::OnToolbarDropDown)
#elif WIN32
ON_NOTIFY(TBN_DROPDOWN, AFX_IDW_TOOLBAR, &CMainFrame::OnToolbarDropDown)
#endif
ON_WM_NCDESTROY()
ON_CBN_SELCHANGE(ID_LEAK_TIME, &CMainFrame::OnCbnSelchangeLeakTime)
ON_CBN_EDITCHANGE(ID_LEAK_TIME, &CMainFrame::OnCbnEditchangeLeakTime)
ON_BN_CLICKED(ID_LEAK_CHECK, &CMainFrame::OnBnClickedLeakEnable)
ON_WM_TIMER()
ON_WM_KEYDOWN()
ON_MESSAGE(WM_RADIO_RESET, &CMainFrame::OnReset)
ON_MESSAGE(WM_TAG_ACCESS, &CMainFrame::OnTagAccess)
ON_COMMAND(ID_RFID_CONNECTION, &CMainFrame::OnRfidConnection)
ON_COMMAND(ID_RFID_DISCONNECTION, &CMainFrame::OnRfidDisconnection)
ON_COMMAND(ID_RFID_RUN_INVENTORY, &CMainFrame::OnRfidRunInventory)
ON_COMMAND(ID_RFID_STOP_INVENTORY, &CMainFrame::OnRfidStopInventory)
ON_COMMAND(ID_RFID_MACVERSION, &CMainFrame::OnRfidMacversion)
ON_COMMAND(ID_VIEW_LIST, &CMainFrame::OnViewList)
ON_COMMAND(ID_RFID_POWER_ON_OFF, &CMainFrame::OnRfidPowerOnOff)
ON_COMMAND(ID_RFID_READER_SET, &CMainFrame::OnRfidReaderSet)
ON_COMMAND(ID_RFID_RESET, &CMainFrame::OnRfidReset)
ON_COMMAND(ID_RFID_INTERFACECONFIGURATION, &CMainFrame::OnRfidInterfaceconfiguration)
ON_COMMAND(ID_RFID_INVENTORY_ONCE, &CMainFrame::OnRfidInventoryOnce)
ON_COMMAND(ID_FIRMWARE_UPDATEOPTION, &CMainFrame::OnFirmwareUpdateoption)
ON_COMMAND(ID_FIRMWARE_UPDATE, &CMainFrame::OnFirmwareUpdate)
ON_COMMAND(ID_TAG_READ, &CMainFrame::OnTagRead)
ON_COMMAND(ID_TAG_WRITE, &CMainFrame::OnTagWrite)
ON_COMMAND(ID_TAG_LOCK, &CMainFrame::OnTagLock)
ON_COMMAND(ID_TAG_KILL, &CMainFrame::OnTagKill)
ON_UPDATE_COMMAND_UI(ID_RFID_CONNECTION, &CMainFrame::OnUpdateRfidConnection)
ON_UPDATE_COMMAND_UI(ID_RFID_DISCONNECTION, &CMainFrame::OnUpdateRfidDisconnection)
ON_UPDATE_COMMAND_UI(ID_RFID_RUN_INVENTORY, &CMainFrame::OnUpdateRfidRunInventory)
ON_UPDATE_COMMAND_UI(ID_RFID_STOP_INVENTORY, &CMainFrame::OnUpdateRfidStopInventory)
ON_UPDATE_COMMAND_UI(ID_RFID_POWER_ON_OFF, &CMainFrame::OnUpdateRfidPowerOnOff)
ON_UPDATE_COMMAND_UI(ID_RFID_RESET, &CMainFrame::OnUpdateRfidReset)
ON_UPDATE_COMMAND_UI(ID_RFID_INTERFACECONFIGURATION, &CMainFrame::OnUpdateRfidInterfaceconfiguration)
ON_UPDATE_COMMAND_UI(ID_RFID_INVENTORY_ONCE, &CMainFrame::OnUpdateRfidInventoryOnce)
ON_UPDATE_COMMAND_UI(ID_FIRMWARE_UPDATE, &CMainFrame::OnUpdateFirmwareUpdate)
ON_UPDATE_COMMAND_UI(ID_TAG_LOCK, &CMainFrame::OnUpdateTagLock)
ON_UPDATE_COMMAND_UI(ID_TAG_KILL, &CMainFrame::OnUpdateTagKill)
ON_UPDATE_COMMAND_UI(ID_TAG_READ, &CMainFrame::OnUpdateTagRead)
ON_UPDATE_COMMAND_UI(ID_TAG_WRITE, &CMainFrame::OnUpdateTagWrite)
ON_UPDATE_COMMAND_UI(ID_RFID_READER_SET, &CMainFrame::OnUpdateRfidReaderSet)
END_MESSAGE_MAP()
static UINT indicators[] =
{
ID_SEPARATOR, // status line indicator
};
// CMainFrame construction/destruction
CMainFrame::CMainFrame()
: m_pRFIDRadioManager(NULL)
, m_bPowerState(FALSE)
, m_pWndEdit(NULL)
, m_pWndSliderCtrl(NULL)
, m_pWndButton(NULL)
, m_pWndProgressCtrl(NULL)
, m_pFirmwareStatusDlg(NULL)
{
CSplashWnd::ShowSplashScreen(1500, IDB_BITMAP_SPLASH, this);
m_pRFIDRadioManager = new CRFIDRadioManager();
}
CMainFrame::~CMainFrame()
{
m_pRFIDRadioManager->Disconnect();
}
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
CString strClear;
#ifdef WIN32_PLATFORM_PSPC
if (!m_wndCommandBar.Create(this) ||
!m_wndCommandBar.InsertMenuBar(IDR_MAINFRAME) ||
!m_wndCommandBar.AddAdornments(dwAdornmentFlags) ||
!m_wndCommandBar.LoadToolBar(IDR_MAINFRAME))
{
TRACE0("Failed to create CommandBar\n");
return -1; // fail to create
}
m_wndCommandBar.SetBarStyle(m_wndCommandBar.GetBarStyle() | CBRS_SIZE_FIXED);
#elif WIN32_PLATFORM_WFSP
if (!m_wndCommandBar.Create(this) ||
!m_wndCommandBar.InsertMenuBar(IDR_MAINFRAME) ||
!m_wndCommandBar.AddAdornments(dwAdornmentFlags)||
!m_wndCommandBar.LoadToolBar(IDR_MAINFRAME))
{
TRACE0("Failed to create CommandBar\n");
return -1; // fail to create
}
m_wndCommandBar.SetBarStyle(m_wndCommandBar.GetBarStyle() | CBRS_SIZE_FIXED);
CWnd* pWnd = CWnd::FromHandlePermanent(m_wndCommandBar.m_hWnd);
RECT rect, rectDesktop;
pWnd->GetWindowRect(&rect);
pWnd->GetDesktopWindow()->GetWindowRect(&rectDesktop);
int cx = rectDesktop.right - rectDesktop.left;
int cy = (rectDesktop.bottom - rectDesktop.top) - (rect.bottom - rect.top);
this->SetWindowPos(NULL, 0, 0, cx, cy, SWP_NOMOVE | SWP_NOZORDER);
#elif defined(WINCE) && !defined(WIN32_PLATFORM_PSPC) && !defined(WIN32_PLATFORM_WFSP)
if (!m_wndCommandBar.Create(this) ||
!m_wndCommandBar.InsertMenuBar(IDR_MAINFRAME) ||
!m_wndCommandBar.AddAdornments(dwAdornmentFlags))
{
TRACE0("Failed to create CommandBar\n");
return -1; // fail to create
}
m_wndCommandBar.SetBarStyle(m_wndCommandBar.GetBarStyle() | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_FIXED);
/////////////////////////////////////////////////////////////////////////////////////////////////////////
// Toolbar Setting
if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
// 捞固瘤府胶飘 备己
CBitmap bmpHot, bmpCold;
CImageList imgHot, imgCold;
bmpHot.LoadBitmap(IDB_BITMAP_TOOLBAR_COLOR_16);
imgHot.Create(16, 16, ILC_COLOR24 |ILC_MASK, 6, 0); // 8俺 窜眠
imgHot.Add(&bmpHot, RGB(255,255,255));
m_wndToolBar.GetToolBarCtrl().SetImageList(&imgHot);
imgHot.Detach(); // 馆靛矫 盒府茄促
bmpHot.Detach();
bmpCold.LoadBitmap(IDB_BITMAP_TOOLBAR_GRAY_16);
imgCold.Create(16, 16, ILC_COLOR24 |ILC_MASK, 6, 0); // 8俺 窜眠
imgCold.Add(&bmpCold, RGB(255,255,255));
m_wndToolBar.GetToolBarCtrl().SetDisabledImageList(&imgCold);
imgCold.Detach(); // 馆靛矫 盒府茄促
bmpCold.Detach();
CRect temp;
m_wndToolBar.GetItemRect(0,&temp);
m_wndToolBar.SetSizes(CSize(temp.Width(), temp.Height()), CSize(16,16));
DWORD dwStyle = m_wndToolBar.GetButtonStyle(m_wndToolBar.CommandToIndex(ID_VIEW_LIST));
dwStyle |= TBSTYLE_DROPDOWN;
m_wndToolBar.SetButtonStyle(m_wndToolBar.CommandToIndex(ID_VIEW_LIST), dwStyle);
/////////////////////////////////////////////////////////////////////////////////////////////////////////
// Toolbar Setting
if (!m_wndInfoToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndInfoToolBar.LoadToolBar(IDR_INFO_TOOLBAR))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
// 捞固瘤府胶飘 备己
CBitmap bmpHot2, bmpCold2;
CImageList imgHot2, imgCold2;
bmpHot2.LoadBitmap(IDB_BITMAP_INFO_TOOLBAR_COLOR_16);
imgHot2.Create(16, 16, ILC_COLOR24 |ILC_MASK, 2, 0); // 8俺 窜眠
imgHot2.Add(&bmpHot2, RGB(255,255,255));
m_wndInfoToolBar.GetToolBarCtrl().SetImageList(&imgHot2);
imgHot2.Detach(); // 馆靛矫 盒府茄促
bmpHot2.Detach();
bmpCold2.LoadBitmap(IDB_BITMAP_INFO_TOOLBAR_GRAY_16);
imgCold2.Create(16, 16, ILC_COLOR24 |ILC_MASK, 2, 0); // 8俺 窜眠
imgCold2.Add(&bmpCold2, RGB(255,255,255));
m_wndInfoToolBar.GetToolBarCtrl().SetDisabledImageList(&imgCold2);
imgCold2.Detach(); // 馆靛矫 盒府茄促
bmpCold2.Detach();
m_wndInfoToolBar.GetItemRect(0,&temp);
m_wndInfoToolBar.SetSizes(CSize(temp.Width(), temp.Height()), CSize(16,16));
if(!m_wndInfoToolBar.CreateEdit(m_wndTotalReadCount,
4,
ID_READ_TOTAL_COUNT, 50))
{
TRACE0("Failed to create Info toolbar\n");
return -1; // fail to create
}
if (!m_wndInfoToolBar.CreateCheckButton(m_wndLeakCheckButton, 5, ID_LEAK_CHECK, 30))
{
TRACE0("Failed to create toolbar's combo box\n");
return -1; // fail to create
}
if (!m_wndInfoToolBar.CreateComboBox(m_wndComboLeakTime, 6, ID_LEAK_TIME, 40, 50))
{
TRACE0("Failed to create toolbar's combo box\n");
return -1; // fail to create
}
m_wndComboLeakTime.AddString(_T("1"));
m_wndComboLeakTime.AddString(_T("2"));
m_wndComboLeakTime.AddString(_T("3"));
m_wndComboLeakTime.AddString(_T("4"));
m_wndComboLeakTime.AddString(_T("5"));
m_wndComboLeakTime.AddString(_T("6"));
m_wndComboLeakTime.AddString(_T("7"));
m_wndComboLeakTime.AddString(_T("8"));
m_wndComboLeakTime.AddString(_T("9"));
m_wndComboLeakTime.AddString(_T("10"));
m_wndTotalReadCount.SetWindowText(_T("0"));
m_wndComboLeakTime.SetCurSel(0);
m_wndComboLeakTime.EnableWindow(FALSE);
if (!m_wndStatusBar.Create(this) ||
!m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
{
TRACE0("Failed to create status bar\n");
return -1; // fail to create
}
if(!m_wndReBar.Create(this) ||
!m_wndReBar.AddBar(&m_wndToolBar) ||
!m_wndReBar.AddBar(&m_wndInfoToolBar))
{
TRACE0("Failed to create status bar\n");
return -1; // fail to create
}
if (!m_bOneExcuteThread)
{
DWORD ThreadID;
HANDLE hThread = CreateThread(NULL, 0, WakeUpThreadFunc, this, 0, &ThreadID);
CloseHandle(hThread);
m_bOneExcuteThread = TRUE;
}
#elif WIN32
if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
// 捞固瘤府胶飘 备己
CBitmap bmpHot, bmpCold;
CImageList imgHot, imgCold;
bmpHot.LoadBitmap(IDB_BITMAP_TOOLBAR_COLOR_32);
imgHot.Create(32, 32, ILC_COLOR24 |ILC_MASK, 7, 0); // 8俺 窜眠
imgHot.Add(&bmpHot, RGB(255,255,255));
m_wndToolBar.GetToolBarCtrl().SetImageList(&imgHot);
imgHot.Detach(); // 馆靛矫 盒府茄促
bmpHot.Detach();
bmpCold.LoadBitmap(IDB_BITMAP_TOOLBAR_GRAY_32);
imgCold.Create(32, 32, ILC_COLOR24 |ILC_MASK, 7, 0); // 8俺 窜眠
imgCold.Add(&bmpCold, RGB(255,255,255));
m_wndToolBar.GetToolBarCtrl().SetDisabledImageList(&imgCold);
imgCold.Detach(); // 馆靛矫 盒府茄促
bmpCold.Detach();
CRect temp;
m_wndToolBar.GetItemRect(0,&temp);
m_wndToolBar.SetSizes(CSize(temp.Width(), temp.Height()), CSize(32,32));
DWORD dwStyle = m_wndToolBar.GetButtonStyle(m_wndToolBar.CommandToIndex(ID_VIEW_LIST));
dwStyle |= TBSTYLE_DROPDOWN;
m_wndToolBar.SetButtonStyle(m_wndToolBar.CommandToIndex(ID_VIEW_LIST), dwStyle);
/////////////////////////////////////////////////////////////////////////////////////////////////////////
// Toolbar Setting
if (!m_wndInfoToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndInfoToolBar.LoadToolBar(IDR_INFO_TOOLBAR))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
// 捞固瘤府胶飘 备己
CBitmap bmpHot2, bmpCold2;
CImageList imgHot2, imgCold2;
bmpHot2.LoadBitmap(IDB_BITMAP_INFO_TOOLBAR_COLOR_32);
imgHot2.Create(32, 32, ILC_COLOR24 |ILC_MASK, 3, 0); // 8俺 窜眠
imgHot2.Add(&bmpHot2, RGB(255,255,255));
m_wndInfoToolBar.GetToolBarCtrl().SetImageList(&imgHot2);
imgHot2.Detach(); // 馆靛矫 盒府茄促
bmpHot2.Detach();
bmpCold2.LoadBitmap(IDB_BITMAP_INFO_TOOLBAR_GRAY_32);
imgCold2.Create(32, 32, ILC_COLOR24 |ILC_MASK, 3, 0); // 8俺 窜眠
imgCold2.Add(&bmpCold2, RGB(255,255,255));
m_wndInfoToolBar.GetToolBarCtrl().SetDisabledImageList(&imgCold2);
imgCold2.Detach(); // 馆靛矫 盒府茄促
bmpCold2.Detach();
m_wndInfoToolBar.GetItemRect(0,&temp);
m_wndInfoToolBar.SetSizes(CSize(temp.Width(), temp.Height()), CSize(32,32));
if(!m_wndInfoToolBar.CreateEdit(m_wndTotalReadCount,
5,
ID_READ_TOTAL_COUNT, 100))
{
TRACE0("Failed to create Info toolbar\n");
return -1; // fail to create
}
if (!m_wndInfoToolBar.CreateCheckButton(m_wndLeakCheckButton, 6, ID_LEAK_CHECK, 30))
{
TRACE0("Failed to create toolbar's combo box\n");
return -1; // fail to create
}
if (!m_wndInfoToolBar.CreateComboBox(m_wndComboLeakTime, 7, ID_LEAK_TIME, 40, 50))
{
TRACE0("Failed to create toolbar's combo box\n");
return -1; // fail to create
}
m_wndComboLeakTime.AddString(_T("1"));
m_wndComboLeakTime.AddString(_T("2"));
m_wndComboLeakTime.AddString(_T("3"));
m_wndComboLeakTime.AddString(_T("4"));
m_wndComboLeakTime.AddString(_T("5"));
m_wndComboLeakTime.AddString(_T("6"));
m_wndComboLeakTime.AddString(_T("7"));
m_wndComboLeakTime.AddString(_T("8"));
m_wndComboLeakTime.AddString(_T("9"));
m_wndComboLeakTime.AddString(_T("10"));
m_wndTotalReadCount.SetWindowText(_T("0"));
m_wndComboLeakTime.SetCurSel(0);
m_wndComboLeakTime.EnableWindow(FALSE);
if (!m_wndStatusBar.Create(this) ||
!m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
{
TRACE0("Failed to create status bar\n");
return -1; // fail to create
}
if (!m_wndTagAccessToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndTagAccessToolBar.LoadToolBar(IDR_TOOLBAR_TAGACCESS))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
// 捞固瘤府胶飘 备己
CBitmap bmpHot3, bmpCold3;
CImageList imgHot3, imgCold3;
bmpHot3.LoadBitmap(IDB_BITMAP_TAG_ACCESS_COLOR_32);
imgHot3.Create(32, 32, ILC_COLOR24 |ILC_MASK, 4, 0); // 3俺 窜眠
imgHot3.Add(&bmpHot3, RGB(255,255,255));
m_wndTagAccessToolBar.GetToolBarCtrl().SetImageList(&imgHot3);
imgHot3.Detach(); // 馆靛矫 盒府茄促
bmpHot3.Detach();
bmpCold3.LoadBitmap(IDB_BITMAP_TAG_ACCESS_GRAY_32);
imgCold3.Create(32, 32, ILC_COLOR24 |ILC_MASK, 4, 0); // 3俺 窜眠
imgCold3.Add(&bmpCold3, RGB(255,255,255));
m_wndTagAccessToolBar.GetToolBarCtrl().SetDisabledImageList(&imgCold3);
imgCold3.Detach(); // 馆靛矫 盒府茄促
bmpCold3.Detach();
m_wndTagAccessToolBar.GetItemRect(0,&temp);
m_wndTagAccessToolBar.SetSizes(CSize(temp.Width(), temp.Height()), CSize(32,32));
// TODO: Delete these three lines if you don't want the toolbar to be dockable
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
m_wndInfoToolBar.EnableDocking(CBRS_ALIGN_ANY);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -