📄 algorithmsetpage.cpp
字号:
// ..\AlgorithmSetPage.cpp : implementation file
//
#include "stdafx.h"
#include "RFRM.h"
#include "AlgorithmSetPage.h"
#include "RFIDRadioManager.h"
#include "MainFrm.h"
#include <math.h>
// CAlgorithmSetPage dialog
IMPLEMENT_DYNAMIC(CAlgorithmSetPage, CPropertyPage)
CAlgorithmSetPage::CAlgorithmSetPage(const wchar_t* lpszTitle, HICON hIcon)
: CPropertyPage(CAlgorithmSetPage::IDD)
{
// Set the title and icon.
if( NULL != hIcon )
{
m_psp.dwFlags |= PSP_USEHICON;
// HICON hIconTab = AfxGetApp()->LoadIcon( m_nIconID );
m_psp.hIcon = hIcon;
}
}
CAlgorithmSetPage::~CAlgorithmSetPage()
{
}
void CAlgorithmSetPage::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
DDX_Control(pDX, IDC_COMBO_ALGORITHM, m_ctrlComboAlgorithm);
DDX_Control(pDX, IDC_COMBO_SELECT_STATE, m_ctrlComboSelectState);
DDX_Control(pDX, IDC_COMBO_SESSION, m_ctrlComboSelectSession);
DDX_Control(pDX, IDC_COMBO_SESSION_TARGET, m_ctrlComboSelectSessionTarget);
DDX_Control(pDX, IDC_COMBO_REPETE_UNTILE_NO_TAGS, m_ctrlComboRepeatUntilNoTags);
DDX_Control(pDX, IDC_COMBO_TOGGLE_TARGET, m_ctrlComboToggleTarget);
DDX_Control(pDX, IDC_SPIN_START_Q, m_ctrlSpinButtonCtrlStartQ);
DDX_Control(pDX, IDC_SPIN_MIN_Q, m_ctrlSpinButtonCtrlMinQ);
DDX_Control(pDX, IDC_SPIN_MAX_Q, m_ctrlSpinButtonCtrlMaxQ);
DDX_Control(pDX, IDC_SPIN_RETRY_COUNT, m_ctrlSpinButtonCtrlRetryCount);
DDX_Control(pDX, IDC_SPIN_QVALUE, m_ctrlSpinButtonCtrlQValue);
DDX_Control(pDX, IDC_SPIN_MAX_QUERY_REPS, m_ctrlSpinButtonCtrlMaxQueryReps);
DDX_Control(pDX, IDC_SPIN_THRESHOLD_MULTIPLIER, m_ctrlSpinButtonCtrlThresholdMultiplier);
DDX_Control(pDX, IDC_SCROLLBAR_ALGORITHM, m_ctrlScrollAlgorithm);
}
BEGIN_MESSAGE_MAP(CAlgorithmSetPage, CPropertyPage)
ON_CBN_SELCHANGE(IDC_COMBO_ALGORITHM, &CAlgorithmSetPage::OnCbnSelchangeComboAlgorithm)
ON_WM_VSCROLL()
ON_WM_SIZE()
ON_CBN_SELCHANGE(IDC_COMBO_SELECT_STATE, &CAlgorithmSetPage::OnCbnSelchangeComboSelectState)
ON_CBN_SELCHANGE(IDC_COMBO_SESSION, &CAlgorithmSetPage::OnCbnSelchangeComboSession)
ON_CBN_SELCHANGE(IDC_COMBO_SESSION_TARGET, &CAlgorithmSetPage::OnCbnSelchangeComboSessionTarget)
ON_EN_CHANGE(IDC_EDIT_START_Q, &CAlgorithmSetPage::OnEnChangeEditStartQ)
ON_EN_CHANGE(IDC_EDIT_MIN_Q, &CAlgorithmSetPage::OnEnChangeEditMinQ)
ON_EN_CHANGE(IDC_EDIT_MAX_Q, &CAlgorithmSetPage::OnEnChangeEditMaxQ)
ON_EN_CHANGE(IDC_EDIT_RETRY_COUNT, &CAlgorithmSetPage::OnEnChangeEditRetryCount)
ON_CBN_SELCHANGE(IDC_COMBO_TOGGLE_TARGET, &CAlgorithmSetPage::OnCbnSelchangeComboToggleTarget)
ON_EN_CHANGE(IDC_EDIT_Q_VALUE, &CAlgorithmSetPage::OnEnChangeEditQValue)
ON_EN_CHANGE(IDC_EDIT_MAX_QUERY_REPS, &CAlgorithmSetPage::OnEnChangeEditMaxQueryReps)
ON_EN_CHANGE(IDC_EDIT_THRESHOLD_MULTIPLIER, &CAlgorithmSetPage::OnEnChangeEditThresholdMultiplier)
ON_CBN_SELCHANGE(IDC_COMBO_REPETE_UNTILE_NO_TAGS, &CAlgorithmSetPage::OnCbnSelchangeComboRepeteUntileNoTags)
END_MESSAGE_MAP()
// CAlgorithmSetPage message handlers
BOOL CAlgorithmSetPage::OnInitDialog()
{
CPropertyPage::OnInitDialog();
theApp.DoWaitCursor(1);
// TODO: Add extra initialization here
CScrollBar *SB = (CScrollBar *) GetDlgItem(IDC_SCROLLBAR_ALGORITHM);
#ifdef WINCE
SB->SetScrollRange(0, 50);
#else
SB->ShowWindow(SW_HIDE);
#endif
// save the original size
GetWindowRect(m_rcOriginalRect);
// initial scroll position
m_nScrollPos = 0;
CMainFrame* pFrame = (CMainFrame*)AfxGetMainWnd();
// save the original size
GetWindowRect(m_rcOriginalRect);
// Algorithm
m_ctrlComboAlgorithm.AddString(_T("FIXEDQ"));
m_ctrlComboAlgorithm.AddString(_T("DYNAMICQ"));
m_ctrlComboAlgorithm.AddString(_T("DYNAMICQ_ADJUST"));
m_ctrlComboAlgorithm.AddString(_T("DYNAMICQ_THRESH"));
m_ctrlComboAlgorithm.AddString(_T("UNKNOWN"));
// Select State
m_ctrlComboSelectState.AddString(_T("ALL"));
m_ctrlComboSelectState.AddString(_T("OFF"));
m_ctrlComboSelectState.AddString(_T("ON"));
m_ctrlComboSelectState.AddString(_T("UNKNOWN"));
// Inventory Session
m_ctrlComboSelectSession.AddString(_T("S0"));
m_ctrlComboSelectSession.AddString(_T("S1"));
m_ctrlComboSelectSession.AddString(_T("S2"));
m_ctrlComboSelectSession.AddString(_T("S3"));
m_ctrlComboSelectSession.AddString(_T("UNKNOWN"));
// Inventory Session Target
m_ctrlComboSelectSessionTarget.AddString(_T("A"));
m_ctrlComboSelectSessionTarget.AddString(_T("B"));
m_ctrlComboSelectSessionTarget.AddString(_T("UNKNOWN"));
m_ctrlComboRepeatUntilNoTags.AddString(_T("Disable"));
m_ctrlComboRepeatUntilNoTags.AddString(_T("Enable"));
m_ctrlComboToggleTarget.AddString(_T("Disable"));
m_ctrlComboToggleTarget.AddString(_T("Enable"));
m_ctrlSpinButtonCtrlStartQ.SetRange32(0,15);
m_ctrlSpinButtonCtrlStartQ.SetBuddy(GetDlgItem(IDC_EDIT_START_Q));
m_ctrlSpinButtonCtrlMinQ.SetRange32(0,15);
m_ctrlSpinButtonCtrlMinQ.SetBuddy(GetDlgItem(IDC_EDIT_MIN_Q));
m_ctrlSpinButtonCtrlMaxQ.SetRange32(0,15);
m_ctrlSpinButtonCtrlMaxQ.SetBuddy(GetDlgItem(IDC_EDIT_MAX_Q));
m_ctrlSpinButtonCtrlRetryCount.SetRange32(0,255);
m_ctrlSpinButtonCtrlRetryCount.SetBuddy(GetDlgItem(IDC_EDIT_RETRY_COUNT));
m_ctrlSpinButtonCtrlMaxQueryReps.SetRange32(0,255);
m_ctrlSpinButtonCtrlMaxQueryReps.SetBuddy(GetDlgItem(IDC_EDIT_MAX_QUERY_REPS));
m_ctrlSpinButtonCtrlQValue.SetRange32(0,15);
m_ctrlSpinButtonCtrlQValue.SetBuddy(GetDlgItem(IDC_EDIT_Q_VALUE));
m_ctrlSpinButtonCtrlThresholdMultiplier.SetRange32(0,255);
m_ctrlSpinButtonCtrlThresholdMultiplier.SetBuddy(GetDlgItem(IDC_EDIT_THRESHOLD_MULTIPLIER));
// m_ctrlSpinButtonCtrlStartQ.ModifyStyle(0,UDS_SETBUDDYINT,0);
// Default Cursor Select
RFID_18K6C_QUERY_PARMS parms;
pFrame->GetRFIDRadioManager()->GetRadio18K6CQueryParameters(0, &parms);
switch(parms.singulationParms.singulationAlgorithm)
{
case RFID_18K6C_SINGULATION_ALGORITHM_FIXEDQ:
{
RFID_18K6C_SINGULATION_FIXEDQ_PARMS fixedq_parms = parms.singulationParms.parameters.fixedQ;
CString temp;
CEdit* pStartQEdit = (CEdit*)GetDlgItem(IDC_EDIT_START_Q); pStartQEdit->SetWindowText(_T(""));
CEdit* pMinQEdit = (CEdit*)GetDlgItem(IDC_EDIT_MIN_Q); pMinQEdit->SetWindowText(_T(""));
CEdit* pMaxQEdit = (CEdit*)GetDlgItem(IDC_EDIT_MAX_Q); pMaxQEdit->SetWindowText(_T(""));
CEdit* pRetryEdit = (CEdit*)GetDlgItem(IDC_EDIT_RETRY_COUNT); pRetryEdit->SetWindowText(_T(""));
CEdit* pQValueEdit = (CEdit*)GetDlgItem(IDC_EDIT_Q_VALUE); pQValueEdit->SetWindowText(_T(""));
CEdit* pMaxQueryCntEdit = (CEdit*)GetDlgItem(IDC_EDIT_MAX_QUERY_REPS); pMaxQueryCntEdit->SetWindowText(_T(""));
CEdit* pThresholdMultiplierEdit = (CEdit*)GetDlgItem(IDC_EDIT_THRESHOLD_MULTIPLIER); pThresholdMultiplierEdit->SetWindowText(_T(""));
pStartQEdit->EnableWindow(FALSE);
pMinQEdit->EnableWindow(FALSE);
pMaxQEdit->EnableWindow(FALSE);
pRetryEdit->EnableWindow(TRUE);
pQValueEdit->EnableWindow(TRUE);
pMaxQueryCntEdit->EnableWindow(FALSE);
pThresholdMultiplierEdit->EnableWindow(FALSE);
m_ctrlSpinButtonCtrlStartQ.EnableWindow(FALSE);
m_ctrlSpinButtonCtrlMinQ.EnableWindow(FALSE);
m_ctrlSpinButtonCtrlMaxQ.EnableWindow(FALSE);
m_ctrlSpinButtonCtrlRetryCount.EnableWindow(TRUE);
m_ctrlSpinButtonCtrlQValue.EnableWindow(TRUE);
m_ctrlSpinButtonCtrlMaxQueryReps.EnableWindow(FALSE);
m_ctrlSpinButtonCtrlThresholdMultiplier.EnableWindow(FALSE);
m_ctrlComboToggleTarget.EnableWindow(TRUE);
m_ctrlComboRepeatUntilNoTags.EnableWindow(TRUE);
temp.Format(_T("%u"),fixedq_parms.qValue);
pQValueEdit->SetWindowText(temp);
temp.Format(_T("%u"),fixedq_parms.retryCount);
pRetryEdit->SetWindowText(temp);
if(fixedq_parms.toggleTarget == 0)
m_ctrlComboToggleTarget.SetCurSel(0);
else
m_ctrlComboToggleTarget.SetCurSel(1);
if(fixedq_parms.repeatUntilNoTags == 0)
m_ctrlComboRepeatUntilNoTags.SetCurSel(0);
else
m_ctrlComboRepeatUntilNoTags.SetCurSel(1);
break;
}
case RFID_18K6C_SINGULATION_ALGORITHM_DYNAMICQ:
{
RFID_18K6C_SINGULATION_DYNAMICQ_PARMS dynamicq_parms = parms.singulationParms.parameters.dynamicQ;
CString temp;
CEdit* pStartQEdit = (CEdit*)GetDlgItem(IDC_EDIT_START_Q); pStartQEdit->SetWindowText(_T(""));
CEdit* pMinQEdit = (CEdit*)GetDlgItem(IDC_EDIT_MIN_Q); pMinQEdit->SetWindowText(_T(""));
CEdit* pMaxQEdit = (CEdit*)GetDlgItem(IDC_EDIT_MAX_Q); pMaxQEdit->SetWindowText(_T(""));
CEdit* pRetryEdit = (CEdit*)GetDlgItem(IDC_EDIT_RETRY_COUNT); pRetryEdit->SetWindowText(_T(""));
CEdit* pQValueEdit = (CEdit*)GetDlgItem(IDC_EDIT_Q_VALUE); pQValueEdit->SetWindowText(_T(""));
CEdit* pMaxQueryCntEdit = (CEdit*)GetDlgItem(IDC_EDIT_MAX_QUERY_REPS); pMaxQueryCntEdit->SetWindowText(_T(""));
CEdit* pThresholdMultiplierEdit = (CEdit*)GetDlgItem(IDC_EDIT_THRESHOLD_MULTIPLIER); pThresholdMultiplierEdit->SetWindowText(_T(""));
pStartQEdit->EnableWindow(TRUE);
pMinQEdit->EnableWindow(TRUE);
pMaxQEdit->EnableWindow(TRUE);
pRetryEdit->EnableWindow(TRUE);
pQValueEdit->EnableWindow(FALSE);
pMaxQueryCntEdit->EnableWindow(FALSE);
pThresholdMultiplierEdit->EnableWindow(FALSE);
m_ctrlSpinButtonCtrlStartQ.EnableWindow(TRUE);
m_ctrlSpinButtonCtrlMinQ.EnableWindow(TRUE);
m_ctrlSpinButtonCtrlMaxQ.EnableWindow(TRUE);
m_ctrlSpinButtonCtrlRetryCount.EnableWindow(TRUE);
m_ctrlSpinButtonCtrlQValue.EnableWindow(FALSE);
m_ctrlSpinButtonCtrlMaxQueryReps.EnableWindow(TRUE);
m_ctrlSpinButtonCtrlThresholdMultiplier.EnableWindow(FALSE);
m_ctrlComboToggleTarget.EnableWindow(TRUE);
m_ctrlComboRepeatUntilNoTags.EnableWindow(FALSE);
temp.Format(_T("%u"), dynamicq_parms.startQValue);
pStartQEdit->SetWindowText(temp);
temp.Format(_T("%u"), dynamicq_parms.maxQValue);
pMaxQEdit->SetWindowText(temp);
temp.Format(_T("%u"), dynamicq_parms.minQValue);
pMinQEdit->SetWindowText(temp);
temp.Format(_T("%u"), dynamicq_parms.retryCount);
pRetryEdit->SetWindowText(temp);
temp.Format(_T("%u"), dynamicq_parms.maxQueryRepCount);
pMaxQueryCntEdit->SetWindowText(temp);
if(dynamicq_parms.toggleTarget == 0)
m_ctrlComboToggleTarget.SetCurSel(0);
else
m_ctrlComboToggleTarget.SetCurSel(1);
break;
}
case RFID_18K6C_SINGULATION_ALGORITHM_DYNAMICQ_ADJUST:
{
RFID_18K6C_SINGULATION_DYNAMICQ_ADJUST_PARMS dynamicq_adjust_parms = parms.singulationParms.parameters.dynamicQAdjust;
CString temp;
CEdit* pStartQEdit = (CEdit*)GetDlgItem(IDC_EDIT_START_Q); pStartQEdit->SetWindowText(_T(""));
CEdit* pMinQEdit = (CEdit*)GetDlgItem(IDC_EDIT_MIN_Q); pMinQEdit->SetWindowText(_T(""));
CEdit* pMaxQEdit = (CEdit*)GetDlgItem(IDC_EDIT_MAX_Q); pMaxQEdit->SetWindowText(_T(""));
CEdit* pRetryEdit = (CEdit*)GetDlgItem(IDC_EDIT_RETRY_COUNT); pRetryEdit->SetWindowText(_T(""));
CEdit* pQValueEdit = (CEdit*)GetDlgItem(IDC_EDIT_Q_VALUE); pQValueEdit->SetWindowText(_T(""));
CEdit* pMaxQueryCntEdit = (CEdit*)GetDlgItem(IDC_EDIT_MAX_QUERY_REPS); pMaxQueryCntEdit->SetWindowText(_T(""));
CEdit* pThresholdMultiplierEdit = (CEdit*)GetDlgItem(IDC_EDIT_THRESHOLD_MULTIPLIER); pThresholdMultiplierEdit->SetWindowText(_T(""));
pStartQEdit->EnableWindow(TRUE);
pMinQEdit->EnableWindow(TRUE);
pMaxQEdit->EnableWindow(TRUE);
pRetryEdit->EnableWindow(TRUE);
pQValueEdit->EnableWindow(FALSE);
pMaxQueryCntEdit->EnableWindow(TRUE);
pThresholdMultiplierEdit->EnableWindow(FALSE);
m_ctrlSpinButtonCtrlStartQ.EnableWindow(TRUE);
m_ctrlSpinButtonCtrlMinQ.EnableWindow(TRUE);
m_ctrlSpinButtonCtrlMaxQ.EnableWindow(TRUE);
m_ctrlSpinButtonCtrlRetryCount.EnableWindow(TRUE);
m_ctrlSpinButtonCtrlQValue.EnableWindow(FALSE);
m_ctrlSpinButtonCtrlMaxQueryReps.EnableWindow(TRUE);
m_ctrlSpinButtonCtrlThresholdMultiplier.EnableWindow(FALSE);
m_ctrlComboToggleTarget.EnableWindow(TRUE);
m_ctrlComboRepeatUntilNoTags.EnableWindow(FALSE);
temp.Format(_T("%u"), dynamicq_adjust_parms.startQValue);
pStartQEdit->SetWindowText(temp);
temp.Format(_T("%u"), dynamicq_adjust_parms.maxQValue);
pMaxQEdit->SetWindowText(temp);
temp.Format(_T("%u"), dynamicq_adjust_parms.minQValue);
pMinQEdit->SetWindowText(temp);
temp.Format(_T("%u"), dynamicq_adjust_parms.retryCount);
pRetryEdit->SetWindowText(temp);
temp.Format(_T("%u"), dynamicq_adjust_parms.maxQueryRepCount);
pMaxQueryCntEdit->SetWindowText(temp);
if(dynamicq_adjust_parms.toggleTarget)
m_ctrlComboToggleTarget.SetCurSel(0);
else
m_ctrlComboToggleTarget.SetCurSel(1);
break;
}
case RFID_18K6C_SINGULATION_ALGORITHM_DYNAMICQ_THRESH:
{
RFID_18K6C_SINGULATION_DYNAMICQ_THRESH_PARMS dynamicq_thresh_parms = parms.singulationParms.parameters.dynamicQThresh;
CString temp;
CEdit* pStartQEdit = (CEdit*)GetDlgItem(IDC_EDIT_START_Q); pStartQEdit->SetWindowText(_T(""));
CEdit* pMinQEdit = (CEdit*)GetDlgItem(IDC_EDIT_MIN_Q); pMinQEdit->SetWindowText(_T(""));
CEdit* pMaxQEdit = (CEdit*)GetDlgItem(IDC_EDIT_MAX_Q); pMaxQEdit->SetWindowText(_T(""));
CEdit* pRetryEdit = (CEdit*)GetDlgItem(IDC_EDIT_RETRY_COUNT); pRetryEdit->SetWindowText(_T(""));
CEdit* pQValueEdit = (CEdit*)GetDlgItem(IDC_EDIT_Q_VALUE); pQValueEdit->SetWindowText(_T(""));
CEdit* pMaxQueryCntEdit = (CEdit*)GetDlgItem(IDC_EDIT_MAX_QUERY_REPS); pMaxQueryCntEdit->SetWindowText(_T(""));
CEdit* pThresholdMultiplierEdit = (CEdit*)GetDlgItem(IDC_EDIT_THRESHOLD_MULTIPLIER); pThresholdMultiplierEdit->SetWindowText(_T(""));
pStartQEdit->EnableWindow(TRUE);
pMinQEdit->EnableWindow(TRUE);
pMaxQEdit->EnableWindow(TRUE);
pRetryEdit->EnableWindow(TRUE);
pQValueEdit->EnableWindow(FALSE);
pMaxQueryCntEdit->EnableWindow(FALSE);
pThresholdMultiplierEdit->EnableWindow(TRUE);
m_ctrlSpinButtonCtrlStartQ.EnableWindow(TRUE);
m_ctrlSpinButtonCtrlMinQ.EnableWindow(TRUE);
m_ctrlSpinButtonCtrlMaxQ.EnableWindow(TRUE);
m_ctrlSpinButtonCtrlRetryCount.EnableWindow(TRUE);
m_ctrlSpinButtonCtrlQValue.EnableWindow(FALSE);
m_ctrlSpinButtonCtrlMaxQueryReps.EnableWindow(FALSE);
m_ctrlSpinButtonCtrlThresholdMultiplier.EnableWindow(TRUE);
m_ctrlComboToggleTarget.EnableWindow(TRUE);
m_ctrlComboRepeatUntilNoTags.EnableWindow(FALSE);
temp.Format(_T("%u"), dynamicq_thresh_parms.startQValue);
pStartQEdit->SetWindowText(temp);
temp.Format(_T("%u"), dynamicq_thresh_parms.maxQValue);
pMaxQEdit->SetWindowText(temp);
temp.Format(_T("%u"), dynamicq_thresh_parms.minQValue);
pMinQEdit->SetWindowText(temp);
temp.Format(_T("%u"), dynamicq_thresh_parms.retryCount);
pRetryEdit->SetWindowText(temp);
temp.Format(_T("%u"), dynamicq_thresh_parms.thresholdMultiplier);
pThresholdMultiplierEdit->SetWindowText(temp);
if(dynamicq_thresh_parms.toggleTarget == 0)
m_ctrlComboToggleTarget.SetCurSel(0);
else
m_ctrlComboToggleTarget.SetCurSel(1);
break;
}
default:
break;
}
/////////////////////////////////////////////////////////////////////////////
// Region
/////////////////////////////////////////////////////////////////////////////
RFID_18K6C_SINGULATION_ALGORITHM algorithm;
pFrame->GetRFIDRadioManager()->GetRadio18K6CCurrentSingulationAlgorithm(0, &algorithm);
switch(algorithm)
{
case RFID_18K6C_SINGULATION_ALGORITHM_FIXEDQ:
m_ctrlComboAlgorithm.SetCurSel(0);
break;
case RFID_18K6C_SINGULATION_ALGORITHM_DYNAMICQ:
m_ctrlComboAlgorithm.SetCurSel(1);
break;
case RFID_18K6C_SINGULATION_ALGORITHM_DYNAMICQ_ADJUST:
m_ctrlComboAlgorithm.SetCurSel(2);
break;
case RFID_18K6C_SINGULATION_ALGORITHM_DYNAMICQ_THRESH:
m_ctrlComboAlgorithm.SetCurSel(3);
break;
default:
m_ctrlComboAlgorithm.SetCurSel(4);
break;
}
RFID_18K6C_TAG_GROUP tagGroup;
pFrame->GetRFIDRadioManager()->GetRadio18K6CQueryTagGroup(0, &tagGroup);
switch(tagGroup.selected)
{
case RFID_18K6C_SELECTED_ALL:
m_ctrlComboSelectState.SetCurSel(0);
break;
case RFID_18K6C_SELECTED_OFF:
m_ctrlComboSelectState.SetCurSel(1);
break;
case RFID_18K6C_SELECTED_ON:
m_ctrlComboSelectState.SetCurSel(2);
break;
default:
m_ctrlComboSelectState.SetCurSel(3);
break;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -