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

📄 bitfeaturedlg.cpp

📁 此为某测试平台的上位机软件部分
💻 CPP
📖 第 1 页 / 共 5 页
字号:
{
public:
	CRelayBoardFace(){;}
	virtual ~CRelayBoardFace(){;}

public:
	virtual  void  ChgFace(AttachUIObject *pUIObject, LPVOID pData)
	{
			PXIRelayDevResultMiscelInfo  *pGlobData= static_cast<PXIRelayDevResultMiscelInfo *>(pData);
			if (pUIObject == NULL || pGlobData == NULL)
				return ;
			
			//1.删除已存在的头和组成项
			while (pUIObject->DeleteColumn (0));
			pUIObject->DeleteAllItems();
			
			//2.插入列头
			pUIObject->InsertColumn(1, "序号", LVCFMT_CENTER, 50);
			pUIObject->InsertColumn(2, "自检项", LVCFMT_LEFT, 380);
			pUIObject->InsertColumn(2, "自检结果", LVCFMT_CENTER, 120);
			
			//3.插入子项组成
			for (int j=0; j<pGlobData->nActualItemNum; j++)
			{
					char   szFmt[32], szFmt1[64];

					::sprintf(szFmt, "%d", j+1);
					::sprintf(szFmt1, "%s", pGlobData->sItemObj[j].szHIDItemLabel);
					
					ADD_LISTCTRL_ITEM(pUIObject, szFmt, szFmt1, "N/A")	//显示名称
					ALTER_LISTCTRL_ITEM_DATA(pUIObject, j+1)			//通道号
			}
			
			ListView_SetExtendedListViewStyle(pUIObject->GetSafeHwnd(), /*LVS_EX_CHECKBOXES|*/LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
	}
	//得到通道号
	virtual  void  CollectInfo(AttachUIObject *pUIObject, LPVOID pData)		//得到自检的信息结构
	{
			PXIRelayDevResultMiscelInfo  *pGlobData= static_cast<PXIRelayDevResultMiscelInfo *>(pData);
			if (pUIObject == NULL || pGlobData == NULL)
				return ;
	}
	//显示自检结果
	virtual  void  ShowInfo(AttachUIObject *pUIObject, LPVOID pData)
	{
			PXIRelayDevResultMiscelInfo  *pGlobData= static_cast<PXIRelayDevResultMiscelInfo *>(pData);
			if (pUIObject == NULL || pGlobData == NULL)
				return ;
			
			for (int j=0; j<pGlobData->nActualItemNum; j++)
			{
					ALTER_LISTCTRL_ITEM_Result(pUIObject, j, 2, _GETRESULT(pGlobData->sItemObj[j].bPass))
			}
	}
	//
	DECLARE_SELFDESTROY_MAP()
};


/////////////////////////////////////////////////////////////////////////////////////
//继电器板自检的界面
class  CDIOBoardFace: public  CBitUIImpl
{
public:
	CDIOBoardFace(){;}
	virtual ~CDIOBoardFace(){;}

public:
	virtual  void  ChgFace(AttachUIObject *pUIObject, LPVOID pData)
	{
			PXIDIODevResultMiscelInfo  *pGlobData= static_cast<PXIDIODevResultMiscelInfo *>(pData);
			if (pUIObject == NULL || pGlobData == NULL)
				return ;
			
			//1.删除已存在的头和组成项
			while (pUIObject->DeleteColumn (0));
			pUIObject->DeleteAllItems();
			
			//2.插入列头
			pUIObject->InsertColumn(1, "序号", LVCFMT_CENTER, 50);
			pUIObject->InsertColumn(2, "自检项", LVCFMT_LEFT, 380);
			pUIObject->InsertColumn(2, "自检结果", LVCFMT_CENTER, 120);
			
			//3.插入子项组成
			for (int j=0; j<pGlobData->nActualItemNum; j++)
			{
					char   szFmt[32], szFmt1[64];

					::sprintf(szFmt, "%d", j+1);
					::sprintf(szFmt1, "%s", pGlobData->sItemObj[j].szHIDItemLabel);
					
					ADD_LISTCTRL_ITEM(pUIObject, szFmt, szFmt1, "N/A")	//显示名称
					ALTER_LISTCTRL_ITEM_DATA(pUIObject, j+1)			//通道号
			}
			
			ListView_SetExtendedListViewStyle(pUIObject->GetSafeHwnd(), /*LVS_EX_CHECKBOXES|*/LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
	}
	//得到通道号
	virtual  void  CollectInfo(AttachUIObject *pUIObject, LPVOID pData)		//得到自检的信息结构
	{
			PXIDIODevResultMiscelInfo  *pGlobData= static_cast<PXIDIODevResultMiscelInfo *>(pData);
			if (pUIObject == NULL || pGlobData == NULL)
				return ;

			UINT  nSelectCount = pUIObject->GetSelectedCount();
			if (nSelectCount>0)
				return ;
	}
	//显示自检结果
	virtual  void  ShowInfo(AttachUIObject *pUIObject, LPVOID pData)
	{
			PXIDIODevResultMiscelInfo  *pGlobData= static_cast<PXIDIODevResultMiscelInfo *>(pData);
			if (pUIObject == NULL || pGlobData == NULL)
				return ;
			
			for (int j=0; j<pGlobData->nActualItemNum; j++)
			{			
					ALTER_LISTCTRL_ITEM_Result(pUIObject, j, 2, _GETRESULT(pGlobData->sItemObj[j].bPass))
			}
	}
	//
	DECLARE_SELFDESTROY_MAP()
};

/////////////////////////////////////////////////////////////////////////////////////
//示波器卡自检的界面
class  CScopeBoardFace: public  CBitUIImpl
{
public:
	CScopeBoardFace(){;}
	virtual ~CScopeBoardFace(){;}

public:
	virtual  void  ChgFace(AttachUIObject *pUIObject, LPVOID pData)
	{
			PXIScopeDevResultMiscelInfo  *pGlobData= static_cast<PXIScopeDevResultMiscelInfo *>(pData);
			if (pUIObject == NULL || pGlobData == NULL)
				return ;
			
			//1.删除已存在的头和组成项
			while (pUIObject->DeleteColumn (0));
			pUIObject->DeleteAllItems();

			//2.插入列头
			pUIObject->InsertColumn(1, "序号", LVCFMT_CENTER, 50);
			pUIObject->InsertColumn(2, "自检项目", LVCFMT_LEFT, 160);
			pUIObject->InsertColumn(3, "自检项期望值", LVCFMT_CENTER, 120);
			pUIObject->InsertColumn(4, "自检项测量值", LVCFMT_CENTER, 120);
			pUIObject->InsertColumn(5, "自检项结果", LVCFMT_CENTER, 100);
			
			//3.插入子项组成
			for (int j=0; j<pGlobData->nActualItemNum; j++)
			{
					char   szFmt[32], szFmt1[64], szFmt2[64];
					::sprintf(szFmt, "%d", j+1);
					::sprintf(szFmt1, "%s", pGlobData->sItemObj[j].szHIDItemLabel);
					::sprintf(szFmt2, "%.2f", pGlobData->sItemObj[j].StdVal);

					//
					ADD_LISTCTRL_ITEM(pUIObject, szFmt, szFmt1, szFmt2)
					ALTER_LISTCTRL_ITEM_DATA(pUIObject, j+1)
			}
			
			ListView_SetExtendedListViewStyle(pUIObject->GetSafeHwnd(), LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
	}
	//得到通道号
	virtual  void  CollectInfo(AttachUIObject *pUIObject, LPVOID pData)    //得到自检的信息结构
	{
			UINT  nSelectCount = pUIObject->GetSelectedCount();
			if (nSelectCount>0)
				return ;
	}
	//显示自检结果
	virtual  void  ShowInfo(AttachUIObject *pUIObject, LPVOID pData)
	{
			PXIScopeDevResultMiscelInfo  *pGlobData= static_cast<PXIScopeDevResultMiscelInfo *>(pData);
			if (pUIObject == NULL || pGlobData == NULL)
				return ;
			
			char  szFmt[32];
			for (int j=0; j<pGlobData->nActualItemNum; j++)
			{
					::sprintf(szFmt, "%.2f", pGlobData->sItemObj[j].sHidItemInfo.MeasVal);
					ALTER_LISTCTRL_ITEM_Result(pUIObject, j, 3, szFmt)
					ALTER_LISTCTRL_ITEM_Result(pUIObject, j, 4, _GETRESULT(pGlobData->sItemObj[j].bPass))
			}
	}
	//
	DECLARE_SELFDESTROY_MAP()
};

/////////////////////////////////////////////////////////////////////////////////////
//DMM自检的界面
class  CDMMBoardFace: public  CBitUIImpl
{
public:
	CDMMBoardFace(){;}
	virtual ~CDMMBoardFace(){;}
	
public:
	virtual  void  ChgFace(AttachUIObject *pUIObject, LPVOID pData)
	{
			PXIDMMDevResultMiscelInfo  *pGlobData= static_cast<PXIDMMDevResultMiscelInfo *>(pData);
			if (pUIObject == NULL || pGlobData == NULL)
				return ;
			
			//1.删除已存在的头和组成项
			while (pUIObject->DeleteColumn (0));
			pUIObject->DeleteAllItems();

			//2.插入列头
			pUIObject->InsertColumn(1, "序号", LVCFMT_CENTER, 50);
			pUIObject->InsertColumn(2, "自检内容", LVCFMT_LEFT, 160);
			pUIObject->InsertColumn(3, "DMM期望值", LVCFMT_CENTER, 100);
			pUIObject->InsertColumn(4, "DMM测量值", LVCFMT_CENTER, 100);
			pUIObject->InsertColumn(5, "DMM自检结果", LVCFMT_CENTER, 100);
			
			//3.插入子项组成
			for (int j=0; j<pGlobData->nActualItemNum; j++)
			{
					char   szFmt[32], szFmt1[64], szFmt2[64];
					::sprintf(szFmt, "%d", j+1);
					::sprintf(szFmt1, "%s", pGlobData->sItemObj[j].szHIDItemLabel);
					::sprintf(szFmt2, "%.2f", pGlobData->sItemObj[j].StdVal);
					
					//
					ADD_LISTCTRL_ITEM(pUIObject, szFmt, szFmt1, szFmt2)
					ALTER_LISTCTRL_ITEM_DATA(pUIObject, j+1)	//标志
			}
			
			ListView_SetExtendedListViewStyle(pUIObject->GetSafeHwnd(), LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
	}
	//得到通道号
	virtual  void  CollectInfo(AttachUIObject *pUIObject, LPVOID pData)    //得到自检的信息结构
	{
			UINT  nSelectCount = pUIObject->GetSelectedCount();
			if (nSelectCount>0)
				return ;
	}
	//显示自检结果
	virtual  void  ShowInfo(AttachUIObject *pUIObject, LPVOID pData)
	{
			PXIDMMDevResultMiscelInfo  *pGlobData= static_cast<PXIDMMDevResultMiscelInfo *>(pData);
			if (pUIObject == NULL || pGlobData == NULL)
				return ;

			char  szFmt[32];
			for (int j=0; j<pGlobData->nActualItemNum; j++)
			{		
					::sprintf(szFmt, "%.2f", pGlobData->sItemObj[j].sHidItemInfo.MeasVal);
					ALTER_LISTCTRL_ITEM_Result(pUIObject, j, 3, szFmt)
					ALTER_LISTCTRL_ITEM_Result(pUIObject, j, 4, _GETRESULT(pGlobData->sItemObj[j].bPass))
			}
	}
	//
	DECLARE_SELFDESTROY_MAP()
};

/////////////////////////////////////////////////////////////////////////////////////
//429自检的界面
class  CARINC429BoardFace: public  CBitUIImpl
{
public:
	CARINC429BoardFace(){;}
	virtual ~CARINC429BoardFace(){;}

public:
	virtual  void  ChgFace(AttachUIObject *pUIObject, LPVOID pData)
	{
			ARINC429ResultMiscelInfo  *pGlobData= static_cast<ARINC429ResultMiscelInfo *>(pData);
			if (pUIObject == NULL || pGlobData == NULL)
				return ;
			
			//1.删除已存在的头和组成项
			while (pUIObject->DeleteColumn (0));

			pUIObject->DeleteAllItems();

			//2.插入列头
			pUIObject->InsertColumn(1, "序号", LVCFMT_CENTER, 50);
			pUIObject->InsertColumn(2, "429通道号", LVCFMT_LEFT, 140);
			pUIObject->InsertColumn(3, "429自检结果", LVCFMT_CENTER, 200);
			
			//3.插入子项组成
			for (int j=0; j<pGlobData->nActualChnl; j++)
			{
					char   szFmt[32], szFmt1[32];
					::sprintf(szFmt, "%d", j+1);
					::sprintf(szFmt1, "CH%d", j+1);
					//
					ADD_LISTCTRL_ITEM(pUIObject, szFmt, szFmt1, "N/A")
					ALTER_LISTCTRL_ITEM_DATA(pUIObject, j+1)
			}
			
			ListView_SetExtendedListViewStyle(pUIObject->GetSafeHwnd(), LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES/*|LVS_EX_CHECKBOXES*/);
	}
	//得到通道号
	virtual  void  CollectInfo(AttachUIObject *pUIObject, LPVOID pData)    //得到自检的信息结构
	{
			UINT  nSelectCount = pUIObject->GetSelectedCount();
			if (nSelectCount>0)
				return ;
	}
	//显示自检结果
	virtual  void  ShowInfo(AttachUIObject *pUIObject, LPVOID pData)
	{
			ARINC429ResultMiscelInfo  *pGlobData= static_cast<ARINC429ResultMiscelInfo *>(pData);
			if (pUIObject == NULL || pGlobData == NULL)
				return ;
			
			for (int j=0; j<pGlobData->nActualChnl; j++)
			{			
					ALTER_LISTCTRL_ITEM_Result(pUIObject, j, 2, _GETRESULT(pGlobData->ChnlResult[j]))
			}
	}
	//
	DECLARE_SELFDESTROY_MAP()
};












/**************************PXI模块状态自检功能************************/
class  CBoardStatusCmd: public  CBitCmdImpl
{
public:
	CBoardStatusCmd(){;}
	virtual ~CBoardStatusCmd(){;}
	
private:
	BOOL  SelfTest(ULONG hHandle)
	{
				int vStatus = 0;
				short bSelfTest = 0;
				char  selfTestMessage[256];
				vStatus = niSwitch_self_test(hHandle/*AirStutNSP::g_sRelay2575DevInfo.hHandle*/, &bSelfTest, selfTestMessage);
				//
				return  (vStatus == 0) && bSelfTest;
	}
protected:
	virtual  BOOL  ModularBoard(LPVOID pData)
	{
			PXIDeviceResultMiscelInfo *pDevInfo = static_cast<PXIDeviceResultMiscelInfo *>(pData);
			if (pDevInfo == NULL)
				return FALSE;
			
			g_bBoardStatusNext  = TRUE;	//测试完所有模块时
			
			//调用驱动开始测试			
			pDevInfo->sLastDeviceObj[0].bBitPass = NMDriver_Scope::_Scope_GetSelf();	//示波器
				
			pDevInfo->sLastDeviceObj[1].bBitPass = NMDriver_DMM::_DMM_GetSelf();		//DMM
			
			pDevInfo->sLastDeviceObj[2].bBitPass = NMDriver_AR429::_ARINC429_GetSelf();	//429
			
			pDevInfo->sLastDeviceObj[3].bBitPass = NMDriver_75SD::_75SD_GetSelf();		//75SD			

			pDevInfo->sLastDeviceObj[4].bBitPass = this->SelfTest(AirStutNSP::g_sRelay2527DevInfo.hHandle);	//2575
			
			pDevInfo->sLastDeviceObj[5].bBitPass = this->SelfTest(AirStutNSP::g_sRelay2565DevInfo.hHandle);	//2565
			
			pDevInfo->sLastDeviceObj[6].bBitPass = this->SelfTest(AirStutNSP::g_sRelay2527DevInfo.hHandle);	//2527
			
			pDevInfo->sLastDeviceObj[7].bBitPass = TRUE;	//6508

⌨️ 快捷键说明

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