|
|
|
|
#include "StdAfx.h"
|
|
|
|
|
#include "PciPortMgr.h"
|
|
|
|
|
#include "Propertie.h"
|
|
|
|
|
#include "PropertieMgr.h"
|
|
|
|
|
#include "Motor.h"
|
|
|
|
|
#include "AuthorityMgr.h"
|
|
|
|
|
|
|
|
|
|
#define PCI_PORT_CNT 16 //<2F><><EFBFBD><EFBFBD>pci <20><><EFBFBD>˿ڵĸ<DAB5><C4B8><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CPciPortMgr *gPciPortMgr = new CPciPortMgr;
|
|
|
|
|
CPciPortMgr::CPciPortMgr(void)
|
|
|
|
|
{
|
|
|
|
|
//<2F><>ʼ<EFBFBD><CABC>pci <20>Ķ˿ڿ<CBBF><DABF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
IniPciPortVec();
|
|
|
|
|
m_OutPortDefaultStateL = 0;//<2F><><EFBFBD><EFBFBD><EFBFBD>˿ڵͰ<DAB5>λ<EFBFBD><CEBB>Ĭ<EFBFBD><C4AC>״̬
|
|
|
|
|
m_OutPortDefaultStateH = 0;//<2F><><EFBFBD><EFBFBD><EFBFBD>˿ڸ߰<DAB8>λ<EFBFBD><CEBB>Ĭ<EFBFBD><C4AC>״̬
|
|
|
|
|
}
|
|
|
|
|
CPciPortMgr::~CPciPortMgr(void)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
void CPciPortMgr::Ini()
|
|
|
|
|
{
|
|
|
|
|
//<2F><>ʼ<EFBFBD><CABC><EFBFBD>˿ڿ<CBBF><DABF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
IniPortCtrlType();
|
|
|
|
|
//<2F><>ʼ<EFBFBD><CABC><EFBFBD>˿ڱ仯<DAB1>Ĺ۲<C4B9><DBB2><EFBFBD>
|
|
|
|
|
IniObserver();
|
|
|
|
|
}
|
|
|
|
|
//<2F><>ʼ<EFBFBD><CABC>pci <20>Ķ˿ڿ<CBBF><DABF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
void CPciPortMgr::IniPciPortVec()
|
|
|
|
|
{
|
|
|
|
|
m_PciPortCnt = PCI_PORT_CNT*2;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
|
|
|
|
|
for(int i=0;i<m_PciPortCnt;i++)
|
|
|
|
|
{
|
|
|
|
|
m_PciPortVec.push_back(make_pair(PCI_PORT_NULL,false));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//<2F><>ʼ<EFBFBD><CABC><EFBFBD>˿ڿ<CBBF><DABF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
void CPciPortMgr::IniPortCtrlType()
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>-------------------------------------
|
|
|
|
|
m_OutPortCtrlType.push_back(PCI_PORT_NULL);
|
|
|
|
|
//X <20><>
|
|
|
|
|
m_OutPortCtrlType.push_back(PCI_PORT_PLUS_X);
|
|
|
|
|
m_OutPortCtrlType.push_back(PCI_PORT_DIR_X);
|
|
|
|
|
//Y <20><>
|
|
|
|
|
m_OutPortCtrlType.push_back(PCI_PORT_DIR_Y);
|
|
|
|
|
m_OutPortCtrlType.push_back(PCI_PORT_PLUS_Y);
|
|
|
|
|
//Z <20><>
|
|
|
|
|
m_OutPortCtrlType.push_back(PCI_PORT_DIR_Z);
|
|
|
|
|
m_OutPortCtrlType.push_back(PCI_PORT_PLUS_Z);
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
m_OutPortCtrlType.push_back(PCI_PORT_LASER);
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
m_OutPortCtrlType.push_back(PCI_PORT_LASER_2);
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
m_OutPortCtrlType.push_back(PCI_PORT_EXHAUST_FAN);
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>1
|
|
|
|
|
m_OutPortCtrlType.push_back(PCI_PORT_VACUUM_OUT1);
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>2
|
|
|
|
|
m_OutPortCtrlType.push_back(PCI_PORT_VACUUM_OUT2);
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
m_OutPortCtrlType.push_back(PCI_PORT_LIGHT_R);
|
|
|
|
|
m_OutPortCtrlType.push_back(PCI_PORT_LIGHT_Y);
|
|
|
|
|
m_OutPortCtrlType.push_back(PCI_PORT_LIGHT_G);
|
|
|
|
|
m_OutPortCtrlType.push_back(PCI_PORT_ALARM);
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
m_OutPortCtrlType.push_back(PCI_PORT_AIR);
|
|
|
|
|
//<2F><>
|
|
|
|
|
m_OutPortCtrlType.push_back(PCI_PORT_DOOR);
|
|
|
|
|
//PLC
|
|
|
|
|
m_OutPortCtrlType.push_back(PCI_PORT_PLC_1);
|
|
|
|
|
m_OutPortCtrlType.push_back(PCI_PORT_PLC_2);
|
|
|
|
|
m_OutPortCtrlType.push_back(PCI_PORT_PLC_3);
|
|
|
|
|
m_OutPortCtrlType.push_back(PCI_PORT_PLC_4);
|
|
|
|
|
m_OutPortCtrlType.push_back(PCI_PORT_PLC_5);
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>-------------------------------------
|
|
|
|
|
m_InPortCtrlType.push_back(PCI_PORT_NULL);
|
|
|
|
|
m_InPortCtrlType.push_back(PCI_PORT_LIMIT_SWITCH_X_F);
|
|
|
|
|
m_InPortCtrlType.push_back(PCI_PORT_LIMIT_SWITCH_X_N);
|
|
|
|
|
m_InPortCtrlType.push_back(PCI_PORT_LIMIT_SWITCH_Y_F);
|
|
|
|
|
m_InPortCtrlType.push_back(PCI_PORT_LIMIT_SWITCH_Y_N);
|
|
|
|
|
m_InPortCtrlType.push_back(PCI_PORT_LIMIT_SWITCH_Z_F);
|
|
|
|
|
m_InPortCtrlType.push_back(PCI_PORT_LIMIT_SWITCH_Z_N);
|
|
|
|
|
m_InPortCtrlType.push_back(PCI_PORT_VACUUM_IN1);
|
|
|
|
|
m_InPortCtrlType.push_back(PCI_PORT_VACUUM_IN2);
|
|
|
|
|
m_InPortCtrlType.push_back(PCI_PORT_AIR_CYLINDER_1);
|
|
|
|
|
m_InPortCtrlType.push_back(PCI_PORT_AIR_CYLINDER_2);
|
|
|
|
|
m_InPortCtrlType.push_back(PCI_PORT_DOOR_CHECK);
|
|
|
|
|
m_InPortCtrlType.push_back(PCI_PORT_GRATING);
|
|
|
|
|
m_InPortCtrlType.push_back(PCI_PORT_STOP);
|
|
|
|
|
m_InPortCtrlType.push_back(PCI_PORT_FIBER1);
|
|
|
|
|
m_InPortCtrlType.push_back(PCI_PORT_FIBER2);
|
|
|
|
|
}
|
|
|
|
|
//<2F><>ʼ<EFBFBD><CABC><EFBFBD>˿ڱ仯<DAB1>Ĺ۲<C4B9><DBB2><EFBFBD>
|
|
|
|
|
void CPciPortMgr::IniObserver()
|
|
|
|
|
{
|
|
|
|
|
//<2F><>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>Ҫ<EFBFBD><D2AA>Ч<EFBFBD><D0A7>ʹ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2B4A6>
|
|
|
|
|
CMotor *pMotorX = CMotor::GetMotor(MOTOR_X);
|
|
|
|
|
CMotor *pMotorY = CMotor::GetMotor(MOTOR_Y);
|
|
|
|
|
CMotor *pMotorZ = CMotor::GetMotor(MOTOR_Z);
|
|
|
|
|
pMotorX->SetPciPortType(PCI_PORT_DIR_X,PCI_PORT_PLUS_X,PCI_PORT_LIMIT_SWITCH_X_F,PCI_PORT_LIMIT_SWITCH_X_N);
|
|
|
|
|
pMotorY->SetPciPortType(PCI_PORT_DIR_Y,PCI_PORT_PLUS_Y,PCI_PORT_LIMIT_SWITCH_Y_F,PCI_PORT_LIMIT_SWITCH_Y_N);
|
|
|
|
|
pMotorZ->SetPciPortType(PCI_PORT_DIR_Z,PCI_PORT_PLUS_Z,PCI_PORT_LIMIT_SWITCH_Z_F,PCI_PORT_LIMIT_SWITCH_Z_N);
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>˿ڸı<DAB8><C4B1>Ĺ۲<C4B9><DBB2><EFBFBD>
|
|
|
|
|
Attach(pMotorX);
|
|
|
|
|
Attach(pMotorY);
|
|
|
|
|
Attach(pMotorZ);
|
|
|
|
|
}
|
|
|
|
|
#if 1//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CMFCPropertyGridProperty *CPciPortMgr::CreatGridProperty()
|
|
|
|
|
{
|
|
|
|
|
CString PropertyName;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CString Description;//<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
CString Path = _T("PciPort");;//<2F>洢·<E6B4A2><C2B7>
|
|
|
|
|
CString Name;
|
|
|
|
|
//-------------------------------------------------------------------------------//
|
|
|
|
|
PropertyName = _T("PCI <20>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD>");
|
|
|
|
|
CMFCPropertyGridProperty* pGroup = new CMFCPropertyGridProperty(PropertyName);
|
|
|
|
|
//-------------------------------------------------------------------------------//
|
|
|
|
|
if(gAuthorityMgr->CheckAuthority(_FACTORY))
|
|
|
|
|
{
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
|
|
|
|
|
Name = _T("m_OutPortDefaultStateL");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CPropertie *pPropertie = new CPropertie;
|
|
|
|
|
pPropertie->SetpVal((void*)&m_OutPortDefaultStateL);
|
|
|
|
|
pPropertie->SetType(_PROP_TYPE_INT);
|
|
|
|
|
pPropertie->SetpModule(this);
|
|
|
|
|
pPropertie->SetPath(Path);
|
|
|
|
|
pPropertie->SetName(Name);
|
|
|
|
|
pPropertie->WriteRead(true);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
|
|
|
|
PropertyName = _T("Ĭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|
|
|
|
Description = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿ڵͰ<EFBFBD>λ<EFBFBD><EFBFBD>Ĭ<EFBFBD><EFBFBD>״̬,<2C><><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD>ÿһλ<D2BB><CEBB><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>˿<EFBFBD>");
|
|
|
|
|
CMFCPropertyGridProperty* p = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_OutPortDefaultStateL, Description);
|
|
|
|
|
pGroup->AddSubItem(p);
|
|
|
|
|
|
|
|
|
|
gDevicePropertieMgr.Insert(p, pPropertie);
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
|
|
|
|
|
Name = _T("m_OutPortDefaultStateH");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CPropertie *pPropertie = new CPropertie;
|
|
|
|
|
pPropertie->SetpVal((void*)&m_OutPortDefaultStateH);
|
|
|
|
|
pPropertie->SetType(_PROP_TYPE_INT);
|
|
|
|
|
pPropertie->SetpModule(this);
|
|
|
|
|
pPropertie->SetPath(Path);
|
|
|
|
|
pPropertie->SetName(Name);
|
|
|
|
|
pPropertie->WriteRead(true);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
|
|
|
|
PropertyName = _T("Ĭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|
|
|
|
Description = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿ڸ߰<EFBFBD>λ<EFBFBD><EFBFBD>Ĭ<EFBFBD><EFBFBD>״̬,<2C><><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD>ÿһλ<D2BB><CEBB><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>˿<EFBFBD>");
|
|
|
|
|
CMFCPropertyGridProperty* p = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_OutPortDefaultStateH, Description);
|
|
|
|
|
pGroup->AddSubItem(p);
|
|
|
|
|
|
|
|
|
|
gDevicePropertieMgr.Insert(p, pPropertie);
|
|
|
|
|
}
|
|
|
|
|
for(int i=0;i<m_PciPortCnt;i++)
|
|
|
|
|
{
|
|
|
|
|
CString Idx;
|
|
|
|
|
if(i<PCI_PORT_CNT)
|
|
|
|
|
{
|
|
|
|
|
Idx.Format("%ld",i);
|
|
|
|
|
PropertyName = "out <20>˿<EFBFBD>" + Idx;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
Idx.Format("%ld",i%PCI_PORT_CNT);
|
|
|
|
|
PropertyName = "in <20>˿<EFBFBD>" + Idx;
|
|
|
|
|
}
|
|
|
|
|
Idx.Format("%ld",i);
|
|
|
|
|
CMFCPropertyGridProperty* pGroup1 = new CMFCPropertyGridProperty(PropertyName);
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
|
|
|
|
|
|
|
|
|
|
Name = "m_PciPortVec_first" + Idx;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CPropertie *pPropertie = new CPropertie;
|
|
|
|
|
pPropertie->SetpVal((void*)&(m_PciPortVec[i].first));
|
|
|
|
|
pPropertie->SetType(_PROP_TYPE_STRING);
|
|
|
|
|
pPropertie->SetpModule(this);
|
|
|
|
|
pPropertie->SetPath(Path);
|
|
|
|
|
pPropertie->SetName(Name);
|
|
|
|
|
pPropertie->WriteRead(true);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
|
|
|
|
PropertyName = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|
|
|
|
Description = _T("<EFBFBD>˿ڿ<EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|
|
|
|
CMFCPropertyGridProperty* p1 = new CMFCPropertyGridProperty(PropertyName,(_variant_t)m_PciPortVec[i].first, Description);
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>˿ڿ<CBBF><DABF>Կ<EFBFBD><D4BF>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
if(i<PCI_PORT_CNT)
|
|
|
|
|
InsertOutCtrlType(p1);
|
|
|
|
|
else
|
|
|
|
|
InsertInCtrlType(p1);
|
|
|
|
|
|
|
|
|
|
p1->AllowEdit(FALSE);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
pGroup1->AddSubItem(p1);
|
|
|
|
|
gDevicePropertieMgr.Insert(p1, pPropertie);
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
|
|
|
|
|
Name = "m_PciPortVec_second" + Idx;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CPropertie *pPropertie = new CPropertie;
|
|
|
|
|
pPropertie->SetpVal((void*)&m_PciPortVec[i].second);
|
|
|
|
|
pPropertie->SetType(_PROP_TYPE_BOOL);
|
|
|
|
|
pPropertie->SetpModule(this);
|
|
|
|
|
pPropertie->SetPath(Path);
|
|
|
|
|
pPropertie->SetName(Name);
|
|
|
|
|
pPropertie->WriteRead(true);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
|
|
|
|
PropertyName = _T("<EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|
|
|
|
Description = _T("<EFBFBD>˿ڷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD>෴<EFBFBD><EFBFBD>ֵ");
|
|
|
|
|
CMFCPropertyGridProperty* p = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_PciPortVec[i].second, Description);
|
|
|
|
|
pGroup1->AddSubItem(p);
|
|
|
|
|
|
|
|
|
|
gDevicePropertieMgr.Insert(p, pPropertie);
|
|
|
|
|
}
|
|
|
|
|
pGroup->AddSubItem(pGroup1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//-------------------------------------------------------------------------------//
|
|
|
|
|
return pGroup;
|
|
|
|
|
}
|
|
|
|
|
void CPciPortMgr::ExportPar(ofstream *pFile)
|
|
|
|
|
{
|
|
|
|
|
(*pFile)<<"[ģ<><C4A3>] [CPciPortMgr]------------------------------------------------"<<endl;
|
|
|
|
|
for(int i=0;i<m_PciPortCnt;i++)
|
|
|
|
|
{
|
|
|
|
|
(*pFile)<<"[<5B>˿ں<CBBF>]"<<i<<endl;
|
|
|
|
|
(*pFile)<<"[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>]"<<m_PciPortVec[i].first<<endl;
|
|
|
|
|
(*pFile)<<"[<5B>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>]"<<m_PciPortVec[i].second<<endl;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD><C3B7><EFBFBD><EFBFBD>ı<EFBFBD>ʱ֪ͨ<CDA8><D6AA><EFBFBD>еĹ۲<C4B9><DBB2><EFBFBD>
|
|
|
|
|
void CPciPortMgr::OnPropertyChanged()
|
|
|
|
|
{
|
|
|
|
|
NotifyObservers();
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>out <20>˿ڿ<CBBF><DABF>Կ<EFBFBD><D4BF>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>͵<EFBFBD><CDB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
void CPciPortMgr::InsertOutCtrlType(CMFCPropertyGridProperty* p)
|
|
|
|
|
{
|
|
|
|
|
vector<CString>::iterator iter = m_OutPortCtrlType.begin();
|
|
|
|
|
vector<CString>::iterator iter_end = m_OutPortCtrlType.end();
|
|
|
|
|
for(;iter!=iter_end;iter++)
|
|
|
|
|
{
|
|
|
|
|
p->AddOption(*iter);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>in <20>˿ڿ<CBBF><DABF>Կ<EFBFBD><D4BF>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>͵<EFBFBD><CDB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
void CPciPortMgr::InsertInCtrlType(CMFCPropertyGridProperty* p)
|
|
|
|
|
{
|
|
|
|
|
vector<CString>::iterator iter = m_InPortCtrlType.begin();
|
|
|
|
|
vector<CString>::iterator iter_end = m_InPortCtrlType.end();
|
|
|
|
|
for(;iter!=iter_end;iter++)
|
|
|
|
|
{
|
|
|
|
|
p->AddOption(*iter);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//<2F><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD>Ӧ<EFBFBD>Ķ˿ں<CBBF>
|
|
|
|
|
SPciPort CPciPortMgr::GetCtrlPort(CString CtrlContent)
|
|
|
|
|
{
|
|
|
|
|
SPciPort PciPort;
|
|
|
|
|
vector<pair<CString,bool>>::iterator iter = m_PciPortVec.begin();
|
|
|
|
|
vector<pair<CString,bool>>::iterator iter_end = m_PciPortVec.end();
|
|
|
|
|
for(int i=0;iter!=iter_end;iter++,i++)
|
|
|
|
|
{
|
|
|
|
|
if(CtrlContent == (*iter).first)
|
|
|
|
|
{
|
|
|
|
|
PciPort.num = i%16;//ע<><D7A2>(<28><><EFBFBD><EFBFBD>8 <20><><EFBFBD>ǵ<EFBFBD><C7B5><EFBFBD>0<EFBFBD><30>)
|
|
|
|
|
PciPort.bReverse = (*iter).second;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return PciPort;//û<>ҵ<EFBFBD>
|
|
|
|
|
}
|