www.pudn.com > pCom.rar > RadioTestDlg.cpp
// RadioTestDlg.cpp : 实现文件
//
#pragma once
#include "stdafx.h"
#include "RadioTest.h"
#include "RadioTestDlg.h"
#include ".\radiotestdlg.h"
#include "ExeThread.h"
#pragma comment (lib,"E:\\Mydesign\\pCom\\GpibEquipCtrl\\Debug\\GpibEquipCtrl.lib")
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
static UINT BASED_CODE indicators[] =
{
ID_SEPARATOR, // status line indicator
ID_INDICATOR_OVR,
ID_INDICATOR_CAPS,
ID_INDICATOR_NUM
};
// 用于应用程序“关于”菜单项的 CAboutDlg 对话框
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// 对话框数据
enum { IDD = IDD_ABOUTBOX };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
// 实现
protected:
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
END_MESSAGE_MAP()
// CRadioTestDlg 对话框
CRadioTestDlg::CRadioTestDlg(CWnd* pParent /*=NULL*/)
: CDialog(CRadioTestDlg::IDD, pParent)
, m_Sn(_T(""))
, mSW(_T(""))
, m_IMEI(_T(""))
, m_KeyStateDisp(_T(""))
, workThread(NULL)
, m_Status(_T(""))
, TimeCount(0)
, currentCount(0)
, m_PassFailFlag(_T(""))
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
this->flagIcon[0]=AfxGetApp()->LoadIcon(IDI_ICON1);
this->flagIcon[1]=AfxGetApp()->LoadIcon(IDI_ICON2);
this->flagIcon[2]=AfxGetApp()->LoadIcon(IDI_ICON3);
this->flagIcon[3]=AfxGetApp()->LoadIcon(IDI_ICON4);
CommandMeterX=new CommandMeter();
}
CRadioTestDlg::~CRadioTestDlg(void)
{
delete CommandMeterX;
}
void CRadioTestDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_STATICFLAG, mFlag);
DDX_Control(pDX, IDC_LIST1, listResult);
DDX_Text(pDX, IDC_EDITSN, m_Sn);
DDX_Text(pDX, IDC_EDITSW, mSW);
DDX_Text(pDX, IDC_EDITKEYSTATEDISP, m_KeyStateDisp);
DDX_Text(pDX, IDC_EDITSTATUS, m_Status);
DDX_Control(pDX, IDC_EDITRESULT, m_Result);
DDX_Text(pDX, IDC_PASSFAILFLAG, m_PassFailFlag);
}
BEGIN_MESSAGE_MAP(CRadioTestDlg, CDialog)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_WM_DEVICECHANGE()
//}}AFX_MSG_MAP
ON_BN_CLICKED(IDC_BTNREADSN, OnBnClickedBtnreadsn)
ON_BN_CLICKED(IDC_BTNREADSW, OnBnClickedBtnreadsw)
ON_BN_CLICKED(IDC_BTN1, OnBnClickedBtn1)
ON_BN_CLICKED(IDC_BTN2, OnBnClickedBtn2)
ON_BN_CLICKED(IDC_BTN3, OnBnClickedBtn3)
ON_BN_CLICKED(IDC_BTN4, OnBnClickedBtn4)
ON_BN_CLICKED(IDC_BTN5, OnBnClickedBtn5)
ON_BN_CLICKED(IDC_BTN6, OnBnClickedBtn6)
ON_BN_CLICKED(IDC_BTN7, OnBnClickedBtn7)
ON_BN_CLICKED(IDC_BTN8, OnBnClickedBtn8)
ON_BN_CLICKED(IDC_BTN9, OnBnClickedBtn9)
ON_BN_CLICKED(IDC_BTN0, OnBnClickedBtn0)
ON_BN_CLICKED(IDC_BTNA, OnBnClickedBtna)
ON_BN_CLICKED(IDC_BTNB, OnBnClickedBtnb)
ON_BN_CLICKED(IDC_BTN11, OnBnClickedBtn11)
ON_BN_CLICKED(IDC_BTNB12, OnBnClickedBtnb12)
ON_BN_CLICKED(IDC_BTNSUSPEND, OnBnClickedBtnsuspend)
ON_BN_CLICKED(IDC_BTNNORMAL, OnBnClickedBtnnormal)
ON_BN_CLICKED(IDC_BTNKEYTEST, OnBnClickedBtnkeytest)
ON_MESSAGE(EXECUTE_CMD,OnExecuteCmd)
ON_MESSAGE(END_CMD,OnEndCmd)
ON_MESSAGE(WM_RADIOALERT,RadioAlert)
ON_MESSAGE(RUN_TEST,OnRunTest)
ON_WM_TIMER()
ON_WM_CLOSE()
ON_WM_CREATE()
ON_BN_CLICKED(IDC_BTNEND, OnBnClickedBtnend)
ON_BN_CLICKED(IDC_BTNSTARTTEST, OnBnClickedBtnstarttest)
END_MESSAGE_MAP()
// CRadioTestDlg 消息处理程序
BOOL CRadioTestDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// 将\“关于...\”菜单项添加到系统菜单中。
// IDM_ABOUTBOX 必须在系统命令范围内。
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
// 执行此操作
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标
::RegisterNotify(m_hWnd);
listResult.Initialize();
if(this->pRadioCtrl.OpenRadio()==TDTK_SUCCESS)
this->mFlag.SetIcon(flagIcon[0]);
// TODO: 在此添加额外的初始化代码
this->workThread=(ExeThread*)new ExeThread;
this->workThread->CreateThread();
this->workThread->ResumeThread();
InitializeCriticalSection(&keyTestCritical);
//InitializeCriticalSection(&this->stopsection);
this->CommandMeterX->InitMeter();
//this->CreateStatusBar();
return TRUE; // 除非设置了控件的焦点,否则返回 TRUE
}
void CRadioTestDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
CDialog::OnSysCommand(nID, lParam);
}
}
// 如果向对话框添加最小化按钮,则需要下面的代码
// 来绘制该图标。对于使用文档/视图模型的 MFC 应用程序,
// 这将由框架自动完成。
void CRadioTestDlg::OnPaint()
{
CPaintDC dc(this); // 用于绘制的设备上下文
if (IsIconic())
{
SendMessage(WM_ICONERASEBKGND, reinterpret_cast(dc.GetSafeHdc()), 0);
// 使图标在工作矩形中居中
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// 绘制图标
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CFont font;
font.CreateFont(45,0,0,0,0,0,0,0,0,0,0,0,0,"Arail");
GetDlgItem(IDC_STATICTITLE)->SetFont(&font);
CDialog::OnPaint();
}
}
//当用户拖动最小化窗口时系统调用此函数取得光标显示。
HCURSOR CRadioTestDlg::OnQueryDragIcon()
{
return static_cast(m_hIcon);
}
BOOL CRadioTestDlg::OnDeviceChange(UINT nEventType,DWORD dwData)
{
if (nEventType==DBT_DEVNODES_CHANGED)
return 1;
char* ptr=NULL;
TRACE(">>> EVENT 0x%X, data 0x%X\n",nEventType,dwData);
TRACE("%X",WM_DEVICECHANGE);
switch( nEventType )
{
case DBT_DEVICEARRIVAL:
this->DeviceArrival();
break;
case DBT_DEVICEREMOVECOMPLETE:
this->DeviceRemoveComplete();
break;
default:
break;
};
UpdateData(false);
return 1;
}
BOOL CRadioTestDlg::DeviceArrival(void)
{
if(this->pRadioCtrl.OpenRadio()==TDTK_SUCCESS)
{
this->mFlag.SetIcon(flagIcon[0]);
this->PostMessage(RUN_TEST);
}
return 0;
}
BOOL CRadioTestDlg::DeviceRemoveComplete(void)
{
if(this->pRadioCtrl.CloseRadio()==TDTK_SUCCESS)
this->mFlag.SetIcon(flagIcon[2]);
return 0;
}
void CRadioTestDlg::OnBnClickedBtnreadsn()
{
// TODO: 在此添加控件通知处理程序代码
this->pRadioCtrl.OpenRadio();
this->pRadioCtrl.GetSN(m_Sn);
UpdateData(FALSE);
}
void CRadioTestDlg::OnBnClickedBtnreadsw()
{
this->pRadioCtrl.OpenRadio();
this->pRadioCtrl.GetVersion(mSW);
UpdateData(FALSE);
}
void CRadioTestDlg::OnBnClickedBtn1()
{
this->workThread->PostThreadMessage(KEY_TEST,(WPARAM)this,1);
}
void CRadioTestDlg::OnBnClickedBtn2()
{
this->workThread->PostThreadMessage(KEY_TEST,(WPARAM)this,(LPARAM)2);
}
void CRadioTestDlg::OnBnClickedBtn3()
{
this->workThread->PostThreadMessage(KEY_TEST,(WPARAM)this,(LPARAM)2);
}
void CRadioTestDlg::OnBnClickedBtn4()
{
this->workThread->PostThreadMessage(KEY_TEST,(WPARAM)this,(LPARAM)4);
}
void CRadioTestDlg::OnBnClickedBtn5()
{
this->workThread->PostThreadMessage(KEY_TEST,(WPARAM)this,(LPARAM)5);
}
void CRadioTestDlg::OnBnClickedBtn6()
{
this->workThread->PostThreadMessage(KEY_TEST,(WPARAM)this,(LPARAM)6);
}
void CRadioTestDlg::OnBnClickedBtn7()
{
this->workThread->PostThreadMessage(KEY_TEST,(WPARAM)this,(LPARAM)7);
}
void CRadioTestDlg::OnBnClickedBtn8()
{
this->workThread->PostThreadMessage(KEY_TEST,(WPARAM)this,(LPARAM)8);
}
void CRadioTestDlg::OnBnClickedBtn9()
{
this->workThread->PostThreadMessage(KEY_TEST,(WPARAM)this,(LPARAM)9);
}
void CRadioTestDlg::OnBnClickedBtn0()
{
this->workThread->PostThreadMessage(KEY_TEST,(WPARAM)this,(LPARAM)0);
}
void CRadioTestDlg::OnBnClickedBtna()
{
this->workThread->PostThreadMessage(KEY_TEST,(WPARAM)this,(LPARAM)0x0a);
}
void CRadioTestDlg::OnBnClickedBtnb()
{
this->workThread->PostThreadMessage(KEY_TEST,(WPARAM)this,(LPARAM)0x0b);
}
void CRadioTestDlg::OnBnClickedBtn11()
{
this->workThread->PostThreadMessage(KEY_TEST,(WPARAM)this,(LPARAM)0x11);
}
void CRadioTestDlg::OnBnClickedBtnb12()
{
this->workThread->PostThreadMessage(KEY_TEST,(WPARAM)this,(LPARAM)0x12);
}
void CRadioTestDlg::OnBnClickedBtnsuspend()
{
this->pRadioCtrl.Suspend();
}
void CRadioTestDlg::OnBnClickedBtnnormal()
{
this->pRadioCtrl.Normal();
}
//void CRadioTestDlg::OnBnClickedBtngetimei()
//{
// this->pRadioCtrl.GetIMEI(m_IMEI);
// UpdateData(FALSE);
//}
void CRadioTestDlg::OnBnClickedBtnkeytest()
{
SetTimer(10,200,NULL);
this->GetDlgItem(IDC_BTNKEYTEST)->EnableWindow(FALSE);
this->GetDlgItem(IDC_BTNEND)->EnableWindow(TRUE);
}
void CRadioTestDlg::OnTimer(UINT nIDEvent)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
struct tr {
BYTE KeyNumber;
BYTE KeyState;
};
WORD key;
switch(nIDEvent)
{
case 10:
::EnterCriticalSection(&keyTestCritical);
KillTimer(10);
this->m_KeyStateDisp="";
UpdateData(FALSE);
if(pRadioCtrl.KeyTest(key)!=TDTK_SUCCESS)
this->m_Result.SetWindowText("Fail");
else
this->m_Result.SetWindowText("Sucess");
tr mtr=*(tr*)(LPVOID)&key;
this->m_KeyStateDisp.Format("Key %d is %s",mtr.KeyNumber,mtr.KeyState==1?"Released":"Press");
UpdateData(FALSE);
CDialog::OnTimer(nIDEvent);
SetTimer(10,200,NULL);
::LeaveCriticalSection(&keyTestCritical);
break;
}
}
afx_msg LRESULT CRadioTestDlg::OnExecuteCmd(WPARAM wParam, LPARAM lParam)
{
this->m_Status="Run...";
UpdateData(FALSE);
this->currentCount=::GetTickCount();
return afx_msg LRESULT();
}
afx_msg LRESULT CRadioTestDlg::OnEndCmd(WPARAM wParam, LPARAM lParam)
{
this->currentCount=::GetTickCount()-currentCount;
this->m_Status.Format("Complete!%dms",currentCount);
UpdateData(FALSE);
return afx_msg LRESULT();
}
void CRadioTestDlg::OnClose()
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
this->workThread->PostThreadMessage(WM_QUIT,NULL,NULL);
WaitForSingleObject(this->workThread->m_hThread,INFINITE);
CDialog::OnClose();
}
int CRadioTestDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CDialog::OnCreate(lpCreateStruct) == -1)
return -1;
this->CreateStatusBar();
return 0;
}
void CRadioTestDlg::OnBnClickedBtnend()
{
// TODO: 在此添加控件通知处理程序代码
::EnterCriticalSection(&keyTestCritical);
KillTimer(10);
this->GetDlgItem(IDC_BTNKEYTEST)->EnableWindow(TRUE);
::LeaveCriticalSection(&keyTestCritical);
}
LRESULT CRadioTestDlg::OnRunTest(WPARAM wParam, LPARAM lParam)
{
Sleep(5000);
workThread=AfxBeginThread(this->TestThread,this);
return 0;
}
UINT CRadioTestDlg::TestThread(LPVOID pParam)
{
CRadioTestDlg* pwnd=(CRadioTestDlg*)pParam;
int status=0;
CString m_str;
m_str = CString("SENS:CORR:LOSS:INP2 ")+"1.0";
pwnd->CommandMeterX->WriteCommand(pwnd->CommandMeterX->m_gsm,m_str);
m_str = CString("SENS:CORR:LOSS:OUTP2 ")+"1.0";
pwnd->CommandMeterX->WriteCommand(pwnd->CommandMeterX->m_gsm,m_str);
if(!pwnd->CommandMeterX->CallState(pwnd->CommandMeterX->m_gsm))
{
return false;
}
pwnd->CommandMeterX->TestRSSI(pwnd->CommandMeterX->m_gsm);
//pwnd->m_progress.StepIt();
if(!pwnd->listResult.PrintLine("GSM_M_CHANNEL_RSSI","28","32",pwnd->CommandMeterX->m_pot_data[0]),"")
{
return false;
}
//pwnd->m_progress.StepIt();
if(!pwnd->CommandMeterX->TestBitErr(pwnd->CommandMeterX->m_gsm))
{
return false;
}
if(!pwnd->listResult.PrintLine("GSM_M_CHANNEL_BITERR","0","2",pwnd->CommandMeterX->m_pot_data[1]),"")
{
return false;
}
// pwnd->CommandMeterX->HandOver();
//pwnd->m_progress.StepIt();
if(!pwnd->CommandMeterX->Handover900To1800())
{
pwnd->listResult.PrintLine("GSM to DCS Handover fail","","","-999999");
return false;
}
//pwnd->m_progress.StepIt();
pwnd->CommandMeterX->TestRSSI(pwnd->CommandMeterX->m_dcs);
if(!pwnd->listResult.PrintLine("DCS_M_CHANNEL_RSSI","28","32",pwnd->CommandMeterX->m_pot_data[0]))
{
return false;
}
//pwnd->m_progress.StepIt();
pwnd->CommandMeterX->TestBitErr(pwnd->CommandMeterX->m_dcs);
if(!pwnd->listResult.PrintLine("DCS_M_CHANNEL_BITERR","0","2",pwnd->CommandMeterX->m_pot_data[1]))
{
return false;
}
pwnd->CommandMeterX->EndCall();
return true;
}
int CRadioTestDlg::DoTestDCS(int Channel, int Level)
{
CString channels[3]={"Low","Mid","High"};
CString levels[20]={"Level_0","Level_1","Level_2","Level_3","Level_4","Level_5","Level_6","Level_7","Level_8","Level_9","Level_10","Level_11","Level_12","Level_13","Level_14","Level_15","Level_16","Level_17","Level_18","Level_19",};
CString PowerHighSpec[20]={"30","28","27","25","23","21","19","17","15","13","11","9","7","6","5","4","4","4","4","4"};
CString PowerLowSpec[20]={"28","27","25","23","21","19","17","15","13","11","9","7","5","4","3","2","2","2","2","2"};
int DcsChannels[]={517,662,878};
int DcsLevels[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
int m_dev=CommandMeterX->m_dcs;
CString m_command;
CString m_result;
m_command.Format("PROC:SIGN:CHAN %d",DcsChannels[Channel]);
CommandMeterX->WriteCommand(m_dev,m_command);
m_command.Empty();
m_command.Format("proc:sign:ms:pcl %d",DcsLevels[Level]);
CommandMeterX->WriteCommand(m_dev,m_command);
////////get power/////////
CommandMeterX->WriteCommand(m_dev,"READ:POW:mpr?");
m_result = CommandMeterX->QueryResult(m_dev);
CommandMeterX->WriteCommand(m_dev,"ABOR:POW:mpr");
CommandMeterX->PickData(m_result);
if(!listResult.PrintLine("DCS_"+channels[Channel]+"_Channel_"+levels[Level]+"_Power",PowerLowSpec[Level],PowerHighSpec[Level],
CommandMeterX->m_pot_data[0]))
{
return false;
}
if(!listResult.PrintLine("DCS_"+channels[Channel]+"_Channel_"+levels[Level]+"_FreqError","-90","90",
CommandMeterX->m_pot_data[13]))
{
return false;
}
if(!listResult.PrintLine("DCS_"+channels[Channel]+"_Channel_"+levels[Level]+"_PhasError","-20","20",
CommandMeterX->m_pot_data[7]))
{
return false;
}
if(!listResult.PrintLine("DCS_"+channels[Channel]+"_Channel_"+levels[Level]+"_RMSError","-5","5",
CommandMeterX->m_pot_data[10]))
{
return false;
}
//CommandMeterX->HandOver();
return true;
}
int CRadioTestDlg::DoTestGSM(int Channel, int Level)
{
CString channels[3]={"Low","Mid","High"};
CString levels[20]={"Level_0","Level_1","Level_2","Level_3","Level_4","Level_5","Level_6","Level_7","Level_8","Level_9","Level_10","Level_11","Level_12","Level_13","Level_14","Level_15","Level_16","Level_17","Level_18","Level_19",};
CString PowerHighSpec[20]={"32.3","32.3","32.3","32.3","32.3","32.3","31.5","30","28","26","24","22","20","18","16","14","12","11","10","9"};
CString PowerLowSpec[20]={"31.3","31.3","31.3","31.3","31.3","31.3","29.5","28","26","24","22","20","18","16","14","12","10","9","8","7"};
int GsmChannels[]={980,37,119};
int GsmLevels[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
int m_dev=CommandMeterX->m_gsm;
CString m_command;
CString m_result;
m_command.Format("PROC:SIGN:CHAN %d",GsmChannels[Channel]);
CommandMeterX->WriteCommand(m_dev,m_command);
m_command.Empty();
m_command.Format("proc:sign:ms:pcl %d",GsmLevels[Level]);
CommandMeterX->WriteCommand(m_dev,m_command);
// if(!CommandMeterX->CallState(m_dev))
// return false;
////////get power/////////
CommandMeterX->WriteCommand(m_dev,"READ:POW:mpr?");
m_result = CommandMeterX->QueryResult(m_dev);
CommandMeterX->WriteCommand(m_dev,"ABOR:POW:mpr");
CommandMeterX->PickData(m_result);
if(!listResult.PrintLine("GSM_"+channels[Channel]+"_Channel_"+levels[Level]+"_Power",PowerLowSpec[Level],PowerHighSpec[Level],CommandMeterX->m_pot_data[0]))
{
return false;
}
if(!listResult.PrintLine("GSM_"+channels[Channel]+"_Channel_"+levels[Level]+"_FreqError","-90","90",
CommandMeterX->m_pot_data[13]))
{
return false;
}
if(!listResult.PrintLine("GSM_"+channels[Channel]+"_Channel_"+levels[Level]+"_PhasError","-20","20",
CommandMeterX->m_pot_data[7]))
{
return false;
}
if(!listResult.PrintLine("GSM_"+channels[Channel]+"_Channel_"+levels[Level]+"_RMSError","-5","5",
CommandMeterX->m_pot_data[10]))
{
return false;
}
return true;
}
void CRadioTestDlg::OnBnClickedBtnstarttest()
{
this->OnRunTest(0,0);
}
afx_msg LRESULT CRadioTestDlg::RadioAlert(WPARAM wParam, LPARAM lParam)
{
Sleep(2000);
this->pRadioCtrl.btnClick(0x12);
return afx_msg LRESULT();
}
int CRadioTestDlg::DoTestGSMMODORFS(int channel, int level)
{
/*
-4.001001e+001,-3.812766E+001,-3.460535E+001,
-3.2256701+001,3.152478E+001,-3.023376E+001,
-3.447803E+001,-3.7023335E,-4.040995E+001
*/
CString channels[3]={"Low","Mid","High"};
CString levels[20]={"Level_0","Level_1","Level_2","Level_3",
"Level_4","Level_5","Level_6","Level_7",
"Level_8","Level_9","Level_10","Level_11",
"Level_12","Level_13","Level_14","Level_15",
"Level_16","Level_17","Level_18","Level_19",};
int GsmChannels[]={980,37,119};
int GsmLevels[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
int m_dev=CommandMeterX->m_gsm;
CString m_command;
CString m_result;
m_command.Format("PROC:SIGN:CHAN %d",GsmChannels[channel]);
CommandMeterX->WriteCommand(m_dev,m_command);
m_command.Empty();
m_command.Format("proc:sign:ms:pcl %d",GsmLevels[level]);
CommandMeterX->WriteCommand(m_dev,m_command);
////////get power/////////
CommandMeterX->WriteCommand(m_dev,"READ:ARR:SPEC:MOD?");
m_result = CommandMeterX->QueryResult(m_dev);
CommandMeterX->WriteCommand(m_dev,"ABOR:SPEC:MOD");
CommandMeterX->PickData(m_result);
if(!listResult.PrintLine("GSM_"+channels[channel]+"_Channel_"+levels[level]+"_MOD_ORFS_0khz","0","100",
CommandMeterX->m_pot_data[11]))
{
return false;
}
if(!listResult.PrintLine("GSM_"+channels[channel]+"_Channel_"+levels[level]+"_MOD_ORFS_+100khz","-100","20",
CommandMeterX->m_pot_data[10]))
{
return false;
}
if(!listResult.PrintLine("GSM_"+channels[channel]+"_Channel_"+levels[level]+"_MOD_ORFS_-100khz","-100","20",
CommandMeterX->m_pot_data[12]))
{
return false;
}
if(!listResult.PrintLine("GSM_"+channels[channel]+"_Channel_"+levels[level]+"_MOD_ORFS_+200khz","-100","20",
CommandMeterX->m_pot_data[9]))
{
return false;
}
if(!listResult.PrintLine("GSM_"+channels[channel]+"_Channel_"+levels[level]+"_MOD_ORFS_-200khz","-100","20",
CommandMeterX->m_pot_data[13]))
{
return false;
}
if(!listResult.PrintLine("GSM_"+channels[channel]+"_Channel_"+levels[level]+"_MOD_ORFS_+250khz","-100","20",
CommandMeterX->m_pot_data[8]))
{
return false;
}
if(!listResult.PrintLine("GSM_"+channels[channel]+"_Channel_"+levels[level]+"_MOD_ORFS_-250khz","-100","20",
CommandMeterX->m_pot_data[14]))
{
return false;
}
if(!listResult.PrintLine("GSM_"+channels[channel]+"_Channel_"+levels[level]+"_MOD_ORFS_+400khz","-100","20",
CommandMeterX->m_pot_data[7]))
{
return false;
}
if(!listResult.PrintLine("GSM_"+channels[channel]+"_Channel_"+levels[level]+"_MOD_ORFS_-400khz","-100","20",
CommandMeterX->m_pot_data[15]))
{
return false;
}
if(!listResult.PrintLine("GSM_"+channels[channel]+"_Channel_"+levels[level]+"_MOD_ORFS_+600khz","-100","20",
CommandMeterX->m_pot_data[6]))
{
return false;
}
if(!listResult.PrintLine("GSM_"+channels[channel]+"_Channel_"+levels[level]+"_MOD_ORFS_-600khz","-100","20",
CommandMeterX->m_pot_data[16]))
{
return false;
}
if(!listResult.PrintLine("GSM_"+channels[channel]+"_Channel_"+levels[level]+"_MOD_ORFS_+800khz","-100","20",
CommandMeterX->m_pot_data[5]))
{
return false;
}
if(!listResult.PrintLine("GSM_"+channels[channel]+"_Channel_"+levels[level]+"_MOD_ORFS_-800khz","-100","20",
CommandMeterX->m_pot_data[17]))
{
return false;
}
if(!listResult.PrintLine("GSM_"+channels[channel]+"_Channel_"+levels[level]+"_MOD_ORFS_+1000khz","-100","20",
CommandMeterX->m_pot_data[4]))
{
return false;
}
if(!listResult.PrintLine("GSM_"+channels[channel]+"_Channel_"+levels[level]+"_MOD_ORFS_-1000khz","-100","20",
CommandMeterX->m_pot_data[18]))
{
return false;
}
if(!listResult.PrintLine("GSM_"+channels[channel]+"_Channel_"+levels[level]+"_MOD_ORFS_+1200khz","-100","20",
CommandMeterX->m_pot_data[3]))
{
return false;
}
if(!listResult.PrintLine("GSM_"+channels[channel]+"_Channel_"+levels[level]+"_MOD_ORFS_-1200khz","-100","20",
CommandMeterX->m_pot_data[19]))
{
return false;
}
if(!listResult.PrintLine("GSM_"+channels[channel]+"_Channel_"+levels[level]+"_MOD_ORFS_+1400khz","-100","20",
CommandMeterX->m_pot_data[2]))
{
return false;
}
if(!listResult.PrintLine("GSM_"+channels[channel]+"_Channel_"+levels[level]+"_MOD_ORFS_-1400khz","-100","20",
CommandMeterX->m_pot_data[20]))
{
return false;
}
if(!listResult.PrintLine("GSM_"+channels[channel]+"_Channel_"+levels[level]+"_MOD_ORFS_+1600khz","-100","20",
CommandMeterX->m_pot_data[1]))
{
return false;
}
if(!listResult.PrintLine("GSM_"+channels[channel]+"_Channel_"+levels[level]+"_MOD_ORFS_-1600khz","-100","20",
CommandMeterX->m_pot_data[21]))
{
return false;
}
if(!listResult.PrintLine("GSM_"+channels[channel]+"_Channel_"+levels[level]+"_MOD_ORFS_+1800khz","-100","20",
CommandMeterX->m_pot_data[0]))
{
return false;
}
if(!listResult.PrintLine("GSM_"+channels[channel]+"_Channel_"+levels[level]+"_MOD_ORFS_-1800khz","-100","20",
CommandMeterX->m_pot_data[22]))
{
return false;
}
return true;
}
int CRadioTestDlg::DoTestDCSMODORFS(int channel, int level)
{
/*
-4.001001e+001,-3.812766E+001,-3.460535E+001,
-3.2256701+001,3.152478E+001,-3.023376E+001,
-3.447803E+001,-3.7023335E,-4.040995E+001
*/
CString channels[3]={"Low","Mid","High"};
CString levels[20]={"Level_0","Level_1","Level_2","Level_3",
"Level_4","Level_5","Level_6","Level_7",
"Level_8","Level_9","Level_10","Level_11",
"Level_12","Level_13","Level_14","Level_15",
"Level_16","Level_17","Level_18","Level_19",};
int DcsChannels[]={517,662,878};
int DcsLevels[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
int m_dev=CommandMeterX->m_dcs;
CString m_command;
CString m_result;
m_command.Format("PROC:SIGN:CHAN %d",DcsChannels[channel]);
CommandMeterX->WriteCommand(m_dev,m_command);
m_command.Empty();
m_command.Format("proc:sign:ms:pcl %d",DcsLevels[level]);
CommandMeterX->WriteCommand(m_dev,m_command);
////////get power/////////
CommandMeterX->WriteCommand(m_dev,"READ:ARR:SPEC:MOD?");
m_result = CommandMeterX->QueryResult(m_dev);
CommandMeterX->WriteCommand(m_dev,"ABOR:SPEC:MOD");
CommandMeterX->PickData(m_result);
if(!listResult.PrintLine("DCS_"+channels[channel]+"_Channel_"+levels[level]+"_MOD_ORFS_0khz","0","100",
CommandMeterX->m_pot_data[11]))
{
return false;
}
if(!listResult.PrintLine("DCS_"+channels[channel]+"_Channel_"+levels[level]+"_MOD_ORFS_+100khz","-100","20",
CommandMeterX->m_pot_data[10]))
{
return false;
}
if(!listResult.PrintLine("DCS_"+channels[channel]+"_Channel_"+levels[level]+"_MOD_ORFS_-100khz","-100","20",
CommandMeterX->m_pot_data[12]))
{
return false;
}
if(!listResult.PrintLine("DCS_"+channels[channel]+"_Channel_"+levels[level]+"_MOD_ORFS_+200khz","-100","20",
CommandMeterX->m_pot_data[9]))
{
return false;
}
if(!listResult.PrintLine("DCS_"+channels[channel]+"_Channel_"+levels[level]+"_MOD_ORFS_-200khz","-100","20",
CommandMeterX->m_pot_data[13]))
{
return false;
}
if(!listResult.PrintLine("DCS_"+channels[channel]+"_Channel_"+levels[level]+"_MOD_ORFS_+250khz","-100","20",
CommandMeterX->m_pot_data[8]))
{
return false;
}
if(!listResult.PrintLine("DCS_"+channels[channel]+"_Channel_"+levels[level]+"_MOD_ORFS_-250khz","-100","20",
CommandMeterX->m_pot_data[14]))
{
return false;
}
if(!listResult.PrintLine("DCS_"+channels[channel]+"_Channel_"+levels[level]+"_MOD_ORFS_+400khz","-100","20",
CommandMeterX->m_pot_data[7]))
{
return false;
}
if(!listResult.PrintLine("DCS_"+channels[channel]+"_Channel_"+levels[level]+"_MOD_ORFS_-400khz","-100","20",
CommandMeterX->m_pot_data[15]))
{
return false;
}
if(!listResult.PrintLine("DCS_"+channels[channel]+"_Channel_"+levels[level]+"_MOD_ORFS_+600khz","-100","20",
CommandMeterX->m_pot_data[6]))
{
return false;
}
if(!listResult.PrintLine("DCS_"+channels[channel]+"_Channel_"+levels[level]+"_MOD_ORFS_-600khz","-100","20",
CommandMeterX->m_pot_data[16]))
{
return false;
}
if(!listResult.PrintLine("DCS_"+channels[channel]+"_Channel_"+levels[level]+"_MOD_ORFS_+800khz","-100","20",
CommandMeterX->m_pot_data[5]))
{
return false;
}
if(!listResult.PrintLine("DCS_"+channels[channel]+"_Channel_"+levels[level]+"_MOD_ORFS_-800khz","-100","20",
CommandMeterX->m_pot_data[17]))
{
return false;
}
if(!listResult.PrintLine("DCS_"+channels[channel]+"_Channel_"+levels[level]+"_MOD_ORFS_+1000khz","-100","20",
CommandMeterX->m_pot_data[4]))
{
return false;
}
if(!listResult.PrintLine("DCS_"+channels[channel]+"_Channel_"+levels[level]+"_MOD_ORFS_-1000khz","-100","20",
CommandMeterX->m_pot_data[18]))
{
return false;
}
if(!listResult.PrintLine("DCS_"+channels[channel]+"_Channel_"+levels[level]+"_MOD_ORFS_+1200khz","-100","20",
CommandMeterX->m_pot_data[3]))
{
return false;
}
if(!listResult.PrintLine("DCS_"+channels[channel]+"_Channel_"+levels[level]+"_MOD_ORFS_-1200khz","-100","20",
CommandMeterX->m_pot_data[19]))
{
return false;
}
if(!listResult.PrintLine("DCS_"+channels[channel]+"_Channel_"+levels[level]+"_MOD_ORFS_+1400khz","-100","20",
CommandMeterX->m_pot_data[2]))
{
return false;
}
if(!listResult.PrintLine("DCS_"+channels[channel]+"_Channel_"+levels[level]+"_MOD_ORFS_-1400khz","-100","20",
CommandMeterX->m_pot_data[20]))
{
return false;
}
if(!listResult.PrintLine("DCS_"+channels[channel]+"_Channel_"+levels[level]+"_MOD_ORFS_+1600khz","-100","20",
CommandMeterX->m_pot_data[1]))
{
return false;
}
if(!listResult.PrintLine("DCS_"+channels[channel]+"_Channel_"+levels[level]+"_MOD_ORFS_-1600khz","-100","20",
CommandMeterX->m_pot_data[21]))
{
return false;
}
if(!listResult.PrintLine("DCS_"+channels[channel]+"_Channel_"+levels[level]+"_MOD_ORFS_+1800khz","-100","20",
CommandMeterX->m_pot_data[0]))
{
return false;
}
if(!listResult.PrintLine("DCS_"+channels[channel]+"_Channel_"+levels[level]+"_MOD_ORFS_-1800khz","-100","20",
CommandMeterX->m_pot_data[22]))
{
return false;
}
return true;
}
int CRadioTestDlg::DoTestGSMTimeMask(int channel, int level)
{
/*
-4.001001e+001,-3.812766E+001,-3.460535E+001,
-3.2256701+001,3.152478E+001,-3.023376E+001,
-3.447803E+001,-3.7023335E,-4.040995E+001
*/
CString channels[3]={"Low","Mid","High"};
CString levels[20]={"Level_0","Level_1","Level_2","Level_3",
"Level_4","Level_5","Level_6","Level_7",
"Level_8","Level_9","Level_10","Level_11",
"Level_12","Level_13","Level_14","Level_15",
"Level_16","Level_17","Level_18","Level_19",};
int m_dev=CommandMeterX->m_gsm;
CString m_command;
CString m_result;
// m_command.Format("PROC:SIGN:CHAN %d",DcsChannels[channel]);
// CommandMeterX->WriteCommand(m_dev,m_command);
// m_command.Empty();
// m_command.Format("proc:sign:ms:pcl %d",DcsLevels[level]);
// CommandMeterX->WriteCommand(m_dev,m_command);
////////get power/////////
CommandMeterX->WriteCommand(m_dev,"READ:POW?");
m_result = CommandMeterX->QueryResult(m_dev);
// CommandMeterX->WriteCommand(m_dev,"ABOR:SPEC:MOD");
CommandMeterX->PickData(m_result);
if(!listResult.PrintLine("GSM_"+channels[channel]+"_Channel_"+levels[level]+"_TimeMask","MATC","MATC",
CommandMeterX->m_pot_data[5]))
{
return false;
}
return true;
}
int CRadioTestDlg::DoTestDCSTimeMask(int channel, int level)
{
/*
-4.001001e+001,-3.812766E+001,-3.460535E+001,
-3.2256701+001,3.152478E+001,-3.023376E+001,
-3.447803E+001,-3.7023335E,-4.040995E+001
*/
CString channels[3]={"Low","Mid","High"};
CString levels[20]={"Level_0","Level_1","Level_2","Level_3",
"Level_4","Level_5","Level_6","Level_7",
"Level_8","Level_9","Level_10","Level_11",
"Level_12","Level_13","Level_14","Level_15",
"Level_16","Level_17","Level_18","Level_19",};
int m_dev=CommandMeterX->m_dcs;
CString m_command;
CString m_result;
// m_command.Format("PROC:SIGN:CHAN %d",DcsChannels[channel]);
// CommandMeterX->WriteCommand(m_dev,m_command);
// m_command.Empty();
// m_command.Format("proc:sign:ms:pcl %d",DcsLevels[level]);
// CommandMeterX->WriteCommand(m_dev,m_command);
////////get power/////////
CommandMeterX->WriteCommand(m_dev,"READ:POW?");
m_result = CommandMeterX->QueryResult(m_dev);
// CommandMeterX->WriteCommand(m_dev,"ABOR:SPEC:MOD");
CommandMeterX->PickData(m_result);
if(!listResult.PrintLine("DCS_"+channels[channel]+"_Channel_"+levels[level]+"_TimeMask","MATC","MATC",
CommandMeterX->m_pot_data[5]))
{
return false;
}
return true;
}
int CRadioTestDlg::DoTestDCSSwitORFS(int channel, int level)
{
/*
-4.001001e+001,-3.812766E+001,-3.460535E+001,
-3.2256701+001,3.152478E+001,-3.023376E+001,
-3.447803E+001,-3.7023335E,-4.040995E+001
*/
CString channels[3]={"Low","Mid","High"};
CString levels[20]={"Level_0","Level_1","Level_2","Level_3",
"Level_4","Level_5","Level_6","Level_7",
"Level_8","Level_9","Level_10","Level_11",
"Level_12","Level_13","Level_14","Level_15",
"Level_16","Level_17","Level_18","Level_19",};
int DcsChannels[]={517,662,878};
int DcsLevels[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
int m_dev=CommandMeterX->m_dcs;
CString m_command;
CString m_result;
m_command.Format("PROC:SIGN:CHAN %d",DcsChannels[channel]);
CommandMeterX->WriteCommand(m_dev,m_command);
m_command.Empty();
m_command.Format("proc:sign:ms:pcl %d",DcsLevels[level]);
CommandMeterX->WriteCommand(m_dev,m_command);
////////get power/////////
CommandMeterX->WriteCommand(m_dev,"READ:ARR:SPEC:SWIT?");
m_result = CommandMeterX->QueryResult(m_dev);
CommandMeterX->WriteCommand(m_dev,"ABOR:SPEC:SWIT");
CommandMeterX->PickData(m_result);
if(!listResult.PrintLine("DCS_"+channels[channel]+"_Channel_"+levels[level]+"_Swith_ORFS_0khz","0","100",
CommandMeterX->m_pot_data[4]))
{
return false;
}
if(!listResult.PrintLine("DCS_"+channels[channel]+"_Channel_"+levels[level]+"_Swith_ORFS_+400khz","-100","0",
CommandMeterX->m_pot_data[3]))
{
return false;
}
if(!listResult.PrintLine("DCS_"+channels[channel]+"_Channel_"+levels[level]+"_Swith_ORFS_-400khz","-100","0",
CommandMeterX->m_pot_data[5]))
{
return false;
}
if(!listResult.PrintLine("DCS_"+channels[channel]+"_Channel_"+levels[level]+"_Swith_ORFS_+600khz","-100","0",
CommandMeterX->m_pot_data[2]))
{
return false;
}
if(!listResult.PrintLine("DCS_"+channels[channel]+"_Channel_"+levels[level]+"_Swith_ORFS_-600khz","-100","0",
CommandMeterX->m_pot_data[6]))
{
return false;
}
if(!listResult.PrintLine("DCS_"+channels[channel]+"_Channel_"+levels[level]+"_Swith_ORFS_+1200khz","-100","0",
CommandMeterX->m_pot_data[1]))
{
return false;
}
if(!listResult.PrintLine("DCS_"+channels[channel]+"_Channel_"+levels[level]+"_Swith_ORFS_-1200khz","-100","0",
CommandMeterX->m_pot_data[7]))
{
return false;
}
if(!listResult.PrintLine("DCS_"+channels[channel]+"_Channel_"+levels[level]+"_Swith_ORFS_+1800khz","-100","0",
CommandMeterX->m_pot_data[0]))
{
return false;
}
if(!listResult.PrintLine("DCS_"+channels[channel]+"_Channel_"+levels[level]+"_Swith_ORFS_-1800khz","-100","0",
CommandMeterX->m_pot_data[8]))
{
return false;
}
return true;
}
int CRadioTestDlg::DoTestGSMSwitORFS(int channel, int level)
{
/*
-4.001001e+001,-3.812766E+001,-3.460535E+001,
-3.2256701+001,3.152478E+001,-3.023376E+001,
-3.447803E+001,-3.7023335E,-4.040995E+001
*/
CString channels[3]={"Low","Mid","High"};
CString levels[20]={"Level_0","Level_1","Level_2","Level_3",
"Level_4","Level_5","Level_6","Level_7",
"Level_8","Level_9","Level_10","Level_11",
"Level_12","Level_13","Level_14","Level_15",
"Level_16","Level_17","Level_18","Level_19",};
int GsmChannels[]={980,37,119};
int GsmLevels[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
int m_dev=CommandMeterX->m_gsm;
CString m_command;
CString m_result;
m_command.Format("PROC:SIGN:CHAN %d",GsmChannels[channel]);
CommandMeterX->WriteCommand(m_dev,m_command);
m_command.Empty();
m_command.Format("proc:sign:ms:pcl %d",GsmLevels[level]);
CommandMeterX->WriteCommand(m_dev,m_command);
////////get power/////////
CommandMeterX->WriteCommand(m_dev,"READ:ARR:SPEC:SWIT?");
m_result = CommandMeterX->QueryResult(m_dev);
CommandMeterX->WriteCommand(m_dev,"ABOR:SPEC:SWIT");
CommandMeterX->PickData(m_result);
if(!listResult.PrintLine("GSM_"+channels[channel]+"_Channel_"+levels[level]+"_Swith_ORFS_0khz","0","100",
CommandMeterX->m_pot_data[4]))
{
return false;
}
if(!listResult.PrintLine("GSM_"+channels[channel]+"_Channel_"+levels[level]+"_Swith_ORFS_+400khz","-100","0",
CommandMeterX->m_pot_data[3]))
{
return false;
}
if(!listResult.PrintLine("GSM_"+channels[channel]+"_Channel_"+levels[level]+"_Swith_ORFS_-400khz","-100","0",
CommandMeterX->m_pot_data[5]))
{
return false;
}
if(!listResult.PrintLine("GSM_"+channels[channel]+"_Channel_"+levels[level]+"_Swith_ORFS_+600khz","-100","0",
CommandMeterX->m_pot_data[2]))
{
return false;
}
if(!listResult.PrintLine("GSM_"+channels[channel]+"_Channel_"+levels[level]+"_Swith_ORFS_-600khz","-100","0",
CommandMeterX->m_pot_data[6]))
{
return false;
}
if(!listResult.PrintLine("GSM_"+channels[channel]+"_Channel_"+levels[level]+"_Swith_ORFS_+1200khz","-100","0",
CommandMeterX->m_pot_data[1]))
{
return false;
}
if(!listResult.PrintLine("GSM_"+channels[channel]+"_Channel_"+levels[level]+"_Swith_ORFS_-1200khz","-100","0",
CommandMeterX->m_pot_data[7]))
{
return false;
}
if(!listResult.PrintLine("GSM_"+channels[channel]+"_Channel_"+levels[level]+"_Swith_ORFS_+1800khz","-100","0",
CommandMeterX->m_pot_data[0]))
{
return false;
}
if(!listResult.PrintLine("GSM_"+channels[channel]+"_Channel_"+levels[level]+"_Swith_ORFS_-1800khz","-100","0",
CommandMeterX->m_pot_data[8]))
{
return false;
}
return true;
}
bool CRadioTestDlg::CreateStatusBar(void)
{
if (!statusBar.Create(this) ||
!statusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
{
TRACE0("Failed to create status bar\n");
return false;
}
UINT nID, nStyle;
int cxWidth;
statusBar.GetPaneInfo( 0, nID, nStyle, cxWidth);
RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,ID_INDICATOR_CAPS);
statusBar.SetPaneInfo( 0, nID, SBPS_STRETCH|SBPS_NORMAL, cxWidth);
statusBar.SetPaneText(0,"waiting");
return true;
}