📄 simumodel.cpp
字号:
// SimuModel.cpp: implementation of the SimuModel class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "SimuModel.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
SimuModel::SimuModel()
{
}
SimuModel::~SimuModel()
{
vector<IOPort*>::iterator it_inport = inport_list.begin();
for(;it_inport != inport_list.end();it_inport++)
{
delete (*it_inport);
(*it_inport) = 0;
}
vector<IOPort*>::iterator it_outport = outport_list.begin();
for(;it_outport != outport_list.end();it_outport++)
{
delete (*it_outport);
(*it_outport) = 0;
}
}
void SimuModel::Sim_Inital()
{
Inital_InPort();
Inital_OutPort();
}
void SimuModel::Sim_Simulate()
{
InPutData();
OutPutData();
GenerateData();
}
void SimuModel::Sim_Complete()
{
GenResult();
vector<IOPort*>::iterator it_outport= outport_list.begin();
for(;it_outport != outport_list.end();it_outport++)
(*it_outport)->AccomplishIO();
vector<IOPort*>::iterator it_inport = inport_list.begin();
for(;it_inport != inport_list.end();it_inport++)
(*it_inport)->AccomplishIO();
}
void SimuModel::OutPutData()
{
}
IOPort* SimuModel::ConnectBeginPort(int port_id)
{
if((port_id <0)||(port_id > (inportnum + outportnum)))
return 0;
vector<IOPort*>::iterator it_outport = outport_list.begin();
for(;it_outport != outport_list.end();it_outport++)
{
if((*it_outport)->GetPortID() == port_id)
break;
}
return *it_outport;
}
void SimuModel::Sim_Set(int thresh,MemoryPool* pool)
{
InitBuffer(thresh,pool);
}
void SimuModel::InitBuffer(int thresh,MemoryPool* pool)
{
vector<IOPort*>::iterator it_port = outport_list.begin();
for(;it_port != outport_list.end();it_port++)
{
(*it_port)->InitOutBuf(thresh,pool);
(*it_port)->SetRelatePortBuf();
}
}
const long SimuModel::GetDataSize() const
{
return nblock * nsamp;
}
void SimuModel::GenerateData()
{
}
void SimuModel::GenResult()
{
}
float* SimuModel::GetBuf(int port_id)
{
if((port_id <0)||(port_id > (inportnum + outportnum)))
return 0;
if(port_id <inportnum)
{
vector<IOPort*>::iterator it_inport = inport_list.begin();
for(;it_inport != inport_list.end();it_inport++)
{
if((*it_inport)->GetPortID() == port_id)
break;
}
return ((*it_inport)->GetBuf());
}
vector<IOPort*>::iterator it_outport = outport_list.begin();
for(;it_outport != outport_list.end();it_outport++)
{
if((*it_outport)->GetPortID() == port_id)
break;
}
return ((*it_outport)->GetBuf());
}
void SimuModel::InPutData()
{
}
IOPort* SimuModel::ConnectEndPort(int port_id)
{
if((port_id <0)||(port_id > inportnum ))
return 0;
vector<IOPort*>::iterator it_inport = inport_list.begin();
for(;it_inport != inport_list.end();it_inport++)
{
if((*it_inport)->GetPortID() == port_id)
break;
}
return *it_inport;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -