⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 algorithmsetpage.cpp

📁 UHF RFID Reader Program
💻 CPP
📖 第 1 页 / 共 3 页
字号:
	switch(tagGroup.session)
	{
	case RFID_18K6C_INVENTORY_SESSION_S0:
		m_ctrlComboSelectSession.SetCurSel(0);
		break;
	case RFID_18K6C_INVENTORY_SESSION_S1:
		m_ctrlComboSelectSession.SetCurSel(1);
		break;
	case RFID_18K6C_INVENTORY_SESSION_S2:
		m_ctrlComboSelectSession.SetCurSel(2);
		break;
	case RFID_18K6C_INVENTORY_SESSION_S3:
		m_ctrlComboSelectSession.SetCurSel(3);
		break;
	default:
		m_ctrlComboSelectSession.SetCurSel(4);
		break;
	}

	switch(tagGroup.target)
	{
	case RFID_18K6C_INVENTORY_SESSION_TARGET_A:
		m_ctrlComboSelectSessionTarget.SetCurSel(0);
		break;
	case RFID_18K6C_INVENTORY_SESSION_TARGET_B:
		m_ctrlComboSelectSessionTarget.SetCurSel(1);
		break;
	default:
		m_ctrlComboSelectSessionTarget.SetCurSel(2);
		break;
	}

	theApp.DoWaitCursor(-1);

	return TRUE;  // return TRUE unless you set the focus to a control
	// EXCEPTION: OCX Property Pages should return FALSE
}

void CAlgorithmSetPage::OnCbnSelchangeComboAlgorithm()
{
	int flag = m_ctrlComboAlgorithm.GetCurSel();
	RFID_18K6C_QUERY_PARMS	parms;

	CMainFrame* pFrame = (CMainFrame*)AfxGetMainWnd();
	pFrame->GetRFIDRadioManager()->GetRadio18K6CQueryParameters(0, &parms);

	switch(flag)
	{
	case 0:
		{
			pFrame->GetRFIDRadioManager()->SetRadio18K6CCurrentSingulationAlgorithm(0, 
				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 1:
		{
			pFrame->GetRFIDRadioManager()->SetRadio18K6CCurrentSingulationAlgorithm(0, 
				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(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_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 2:
		{
			pFrame->GetRFIDRadioManager()->SetRadio18K6CCurrentSingulationAlgorithm(0, 
				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 == 0)
				m_ctrlComboToggleTarget.SetCurSel(0);
			else
				m_ctrlComboToggleTarget.SetCurSel(1);

			break;	
		}
	case 3:
		{
			pFrame->GetRFIDRadioManager()->SetRadio18K6CCurrentSingulationAlgorithm(0, 
				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:
		pFrame->GetRFIDRadioManager()->SetRadio18K6CCurrentSingulationAlgorithm(0, 
			RFID_18K6C_SINGULATION_ALGORITHM_FIXEDQ - 1);
		break;
	}
}

void CAlgorithmSetPage::OnSize(UINT nType, int cx, int cy)
{
	CPropertyPage::OnSize(nType, cx, cy);

	//	m_nCurHeight = cy;

	SCROLLINFO si;
	si.cbSize = sizeof(SCROLLINFO);
//	si.fMask = SIF_ALL; 
	si.nMin = 0;
	si.nMax = m_rcOriginalRect.Height();
	si.nPage = cy;
	si.nPos = 0;
	SetScrollInfo(SB_VERT, &si, TRUE); 	

}

void CAlgorithmSetPage::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
	int nDelta;
	int nMaxPos = m_rcOriginalRect.Height();// - m_nCurHeight;

	UINT id = pScrollBar->GetDlgCtrlID();

	if(id != IDC_SCROLLBAR_ALGORITHM)
	{
		switch (nSBCode)
		{
		case SB_LINEDOWN:
			if (m_nScrollPos >= nMaxPos)
				return;

			nDelta = min(max(nMaxPos/20,5),nMaxPos-m_nScrollPos);
			break;

		case SB_LINEUP:
			if (m_nScrollPos <= 0)
				return;
			nDelta = -min(max(nMaxPos/20,5),m_nScrollPos);
			break;
		case SB_PAGEDOWN:
			if (m_nScrollPos >= nMaxPos)
				return;
			nDelta = min(max(nMaxPos/10,5),nMaxPos-m_nScrollPos);
			break;
		case SB_THUMBTRACK:
		case SB_THUMBPOSITION:
			nDelta = (int)nPos - m_nScrollPos;
			break;

		case SB_PAGEUP:
			if (m_nScrollPos <= 0)
				return;
			nDelta = -min(max(nMaxPos/10,5),m_nScrollPos);
			break;

		default:
			return;
		}
		m_nScrollPos += nDelta;

		Control_VScroll(-nDelta);
		pScrollBar->SetScrollPos(m_nScrollPos, TRUE);
	}

	CPropertyPage::OnVScroll(nSBCode, nPos, pScrollBar);
}

void CAlgorithmSetPage::Control_VScroll(int interval) 
{
	CWnd * p_Child;
	CRect	rt;
	HDWP h_Dwp;
	UINT id, cnt =0;
	int imsi;

	if(interval)
	{
		h_Dwp = BeginDeferWindowPos(56);
		p_Child = this->GetWindow(GW_CHILD);
		while(p_Child)
		{
			cnt++;
			p_Child->GetWindowRect(&rt);
			ScreenToClient(rt);

			id = p_Child->GetDlgCtrlID();

			if(id != IDC_SCROLLBAR_ALGORITHM)
			{
				imsi = rt.top + interval;
				DeferWindowPos(h_Dwp,p_Child->GetSafeHwnd(),HWND_TOP,rt.left,imsi,0,0,SWP_NOZORDER | SWP_NOSIZE);
			}

			p_Child = p_Child->GetNextWindow(GW_HWNDNEXT);
		}
		EndDeferWindowPos(h_Dwp);
	}
}
void CAlgorithmSetPage::OnCbnSelchangeComboSelectState()
{
	CMainFrame* pFrame = (CMainFrame*)AfxGetMainWnd();
	RFID_18K6C_TAG_GROUP	tagGroup;

	pFrame->GetRFIDRadioManager()->GetRadio18K6CQueryTagGroup(0, &tagGroup);

	switch(m_ctrlComboAlgorithm.GetCurSel())
	{
	case 0:
		tagGroup.selected = RFID_18K6C_SELECTED_ALL;
		pFrame->GetRFIDRadioManager()->SetRadio18K6CQueryTagGroup(0, &tagGroup);
		break;
	case 1:
		tagGroup.selected = RFID_18K6C_SELECTED_OFF;
		pFrame->GetRFIDRadioManager()->SetRadio18K6CQueryTagGroup(0, &tagGroup);
		break;
	case 2:
		tagGroup.selected = RFID_18K6C_SELECTED_ON;
		pFrame->GetRFIDRadioManager()->SetRadio18K6CQueryTagGroup(0, &tagGroup);
		break;
	default:
		tagGroup.selected = -1;
		pFrame->GetRFIDRadioManager()->SetRadio18K6CQueryTagGroup(0, &tagGroup);
		break;
	}
}

void CAlgorithmSetPage::OnCbnSelchangeComboSession()
{
	CMainFrame* pFrame = (CMainFrame*)AfxGetMainWnd();
	RFID_18K6C_TAG_GROUP	tagGroup;

	pFrame->GetRFIDRadioManager()->GetRadio18K6CQueryTagGroup(0, &tagGroup);

	switch(m_ctrlComboSelectSession.GetCurSel())
	{
	case 0:
		tagGroup.session = RFID_18K6C_INVENTORY_SESSION_S0;
		pFrame->GetRFIDRadioManager()->SetRadio18K6CQueryTagGroup(0, &tagGroup);
		break;
	case 1:
		tagGroup.session = RFID_18K6C_INVENTORY_SESSION_S1;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -