C++与Simulink混合编程Engine方式
附件是本人通过C++调用Matlab engine的方式写的DLL接口,通过接口可以直接调用simulink模型,比其他方式调用的优点是,不用再将模型生成代码或Dll
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-01-18 09:44 VcEngineDll
目录 0 2017-12-29 15:36 VcEngineDllipch
目录 0 2017-12-29 15:36 VcEngineDllipchvcenginedll-10bb28e1
文件 71958528 2017-12-29 15:36 VcEngineDllipchvcenginedll-10bb28e1vcenginedll-60558757.ipch
目录 0 2017-12-29 15:05 VcEngineDllVcEngineDll
文件 900 2016-08-25 16:30 VcEngineDllVcEngineDll.sln
文件 13824 2016-08-25 16:30 VcEngineDllVcEngineDll.suo
文件 26112 2017-12-29 15:38 VcEngineDllVcEngineDll.v12.suo
目录 0 2016-08-25 16:30 VcEngineDllVcEngineDllDebug
文件 313 2016-08-25 16:30 VcEngineDllVcEngineDllEngineInferface.h
文件 1572 2016-08-25 16:30 VcEngineDllVcEngineDllEngineInterface.cpp
文件 2858 2016-08-25 16:30 VcEngineDllVcEngineDllReadMe.txt
目录 0 2016-08-25 16:30 VcEngineDllVcEngineDllRelease
目录 0 2017-12-29 15:05 VcEngineDllVcEngineDll
es
文件 382 2016-08-25 16:30 VcEngineDllVcEngineDllResource.h
文件 806 2016-08-25 16:30 VcEngineDllVcEngineDll
esVcEngineDll.rc2
文件 211 2016-08-25 16:30 VcEngineDllVcEngineDllstdafx.cpp
文件 1290 2016-08-25 16:30 VcEngineDllVcEngineDllstdafx.h
文件 314 2016-08-25 16:30 VcEngineDllVcEngineDll argetver.h
文件 19444 2016-08-25 16:30 VcEngineDllVcEngineDllVcEngineDll.aps
文件 2225 2016-08-25 16:30 VcEngineDllVcEngineDllVcEngineDll.cpp
文件 123 2016-08-25 16:30 VcEngineDllVcEngineDllVcEngineDll.def
文件 612 2016-08-25 16:30 VcEngineDllVcEngineDllVcEngineDll.h
文件 6530 2016-08-25 16:30 VcEngineDllVcEngineDllVcEngineDll.rc
文件 6888 2016-08-25 16:30 VcEngineDllVcEngineDllVcEngineDll.vcxproj
文件 2050 2016-08-25 16:30 VcEngineDllVcEngineDllVcEngineDll.vcxproj.filters
文件 143 2016-08-25 16:30 VcEngineDllVcEngineDllVcEngineDll.vcxproj.user
#include “stdafx.h“
#include “VcEngineDll.h“
bool vcOpenEngine()
{
pEngine = engOpen(NULL);
if(NULL == pEngine)
{
return false;
}
else
{
return true;
}
}
bool vcCloseEngine()
{
if (pEngine !=NULL)
{
bool bFlag = engClose(pEngine);
if(0 == bFlag)
{
pEngine = NULL;
return true;
}
}
return false;
}
//void vcCreateMxArray(const char* pSrcVarint iVarLengthmxArray* pDstVar)
//{
// if(pSrcVar != NULL)
// {
// mxArray *pVarArray = mxCreateDoubleMatrix(1iVarLengthmxREAL);
// if (NULL != pVarArray)
// {
// memcpy((char*) mxGetPr(pDstVar)pSrcVariVarLength * sizeof(double));
// }
// }
//}
bool vcPutVarToWorkpace(double* pScrVarconst char* pcVarNameint iVarLength)
{
if((pScrVar != NULL)&&(pEngine != NULL))
{
double i = *pScrVar;
mxArray *pVarArray = mxCreateDoubleMatrix(1iVarLengthmxREAL);
if (NULL != pVarArray)
{
memcpy((double*) mxGetPr(pVarArray)(double*)pScrVariVarLength * sizeof(double));
}
int iFlag = engPutVariable(pEnginepcVarNamepVarArray);
if (0 == iFlag)
{
return true;
}
}
return false;
}
double vcGetVarFromWorkpace(const char* pcVarName)
{
mxArray* T = NULL;
//T = engGetVariable(pEngine“m_it_duty_max“);
T = engGetVariable(pEnginepcVarName);
if(T == NULL)
{
return 0;
}
/*int i = mxGetN(T);
double i = mxGetScalar(T+i);*/
double i = mxGetScalar(T);
return i;
}
void vcEngineCommand(const char* pCommand)
{
if (NULL != pEngine)
{
engEvalString(pEnginepCommand);
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-01-18 09:44 VcEngineDll
目录 0 2017-12-29 15:36 VcEngineDllipch
目录 0 2017-12-29 15:36 VcEngineDllipchvcenginedll-10bb28e1
文件 71958528 2017-12-29 15:36 VcEngineDllipchvcenginedll-10bb28e1vcenginedll-60558757.ipch
目录 0 2017-12-29 15:05 VcEngineDllVcEngineDll
文件 900 2016-08-25 16:30 VcEngineDllVcEngineDll.sln
文件 13824 2016-08-25 16:30 VcEngineDllVcEngineDll.suo
文件 26112 2017-12-29 15:38 VcEngineDllVcEngineDll.v12.suo
目录 0 2016-08-25 16:30 VcEngineDllVcEngineDllDebug
文件 313 2016-08-25 16:30 VcEngineDllVcEngineDllEngineInferface.h
文件 1572 2016-08-25 16:30 VcEngineDllVcEngineDllEngineInterface.cpp
文件 2858 2016-08-25 16:30 VcEngineDllVcEngineDllReadMe.txt
目录 0 2016-08-25 16:30 VcEngineDllVcEngineDllRelease
目录 0 2017-12-29 15:05 VcEngineDllVcEngineDll
es
文件 382 2016-08-25 16:30 VcEngineDllVcEngineDllResource.h
文件 806 2016-08-25 16:30 VcEngineDllVcEngineDll
esVcEngineDll.rc2
文件 211 2016-08-25 16:30 VcEngineDllVcEngineDllstdafx.cpp
文件 1290 2016-08-25 16:30 VcEngineDllVcEngineDllstdafx.h
文件 314 2016-08-25 16:30 VcEngineDllVcEngineDll argetver.h
文件 19444 2016-08-25 16:30 VcEngineDllVcEngineDllVcEngineDll.aps
文件 2225 2016-08-25 16:30 VcEngineDllVcEngineDllVcEngineDll.cpp
文件 123 2016-08-25 16:30 VcEngineDllVcEngineDllVcEngineDll.def
文件 612 2016-08-25 16:30 VcEngineDllVcEngineDllVcEngineDll.h
文件 6530 2016-08-25 16:30 VcEngineDllVcEngineDllVcEngineDll.rc
文件 6888 2016-08-25 16:30 VcEngineDllVcEngineDllVcEngineDll.vcxproj
文件 2050 2016-08-25 16:30 VcEngineDllVcEngineDllVcEngineDll.vcxproj.filters
文件 143 2016-08-25 16:30 VcEngineDllVcEngineDllVcEngineDll.vcxproj.user
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)