Used to generate CPP file Licence: This file is part of ACADO Toolkit - (http://www.acadotoolkit.org/) ACADO Toolkit -- A Toolkit for Automatic Control and Dynamic Optimization. Copyright (C) 2008-2009 by Boris Houska and Hans Joachim Ferreau, K.U.Leuven. Developed within the Optimization in Engineering Center (OPTEC) under supervision of Moritz Diehl. All rights reserved. ACADO Toolkit is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. ACADO Toolkit is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with ACADO Toolkit; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Author: David Ariens Date: 2010
0001 function getInstructions(obj, cppobj, get) 0002 %Used to generate CPP file 0003 % 0004 % Licence: 0005 % This file is part of ACADO Toolkit - (http://www.acadotoolkit.org/) 0006 % 0007 % ACADO Toolkit -- A Toolkit for Automatic Control and Dynamic Optimization. 0008 % Copyright (C) 2008-2009 by Boris Houska and Hans Joachim Ferreau, K.U.Leuven. 0009 % Developed within the Optimization in Engineering Center (OPTEC) under 0010 % supervision of Moritz Diehl. All rights reserved. 0011 % 0012 % ACADO Toolkit is free software; you can redistribute it and/or 0013 % modify it under the terms of the GNU Lesser General Public 0014 % License as published by the Free Software Foundation; either 0015 % version 3 of the License, or (at your option) any later version. 0016 % 0017 % ACADO Toolkit is distributed in the hope that it will be useful, 0018 % but WITHOUT ANY WARRANTY; without even the implied warranty of 0019 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 0020 % Lesser General Public License for more details. 0021 % 0022 % You should have received a copy of the GNU Lesser General Public 0023 % License along with ACADO Toolkit; if not, write to the Free Software 0024 % Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 0025 % 0026 % Author: David Ariens 0027 % Date: 2010 0028 % 0029 0030 0031 if (get == 'B') 0032 0033 fprintf(cppobj.fileMEX,sprintf(' int %s_count = 0;\n', obj.name)); 0034 fprintf(cppobj.fileMEX,sprintf(' if (mxGetM(prhs[%d]) == 1 && mxGetN(prhs[%d]) >= 1) \n', obj.counter, obj.counter)); 0035 fprintf(cppobj.fileMEX,sprintf(' %s_count = mxGetN(prhs[%d]);\n', obj.name, obj.counter)); 0036 fprintf(cppobj.fileMEX,sprintf(' else if (mxGetM(prhs[%d]) >= 1 && mxGetN(prhs[%d]) == 1) \n', obj.counter, obj.counter)); 0037 fprintf(cppobj.fileMEX,sprintf(' %s_count = mxGetM(prhs[%d]);\n', obj.name, obj.counter)); 0038 fprintf(cppobj.fileMEX, ' else \n'); 0039 fprintf(cppobj.fileMEX,sprintf(' mexErrMsgTxt("Input %d must be a noncomplex double vector of dimension 1xY.");\n\n', obj.counter)); 0040 0041 fprintf(cppobj.fileMEX,sprintf(' double *%s_temp = NULL; \n', obj.name)); 0042 fprintf(cppobj.fileMEX,sprintf(' if( !mxIsDouble(prhs[%d]) || mxIsComplex(prhs[%d])) { \n', obj.counter, obj.counter)); 0043 fprintf(cppobj.fileMEX,sprintf(' mexErrMsgTxt("Input %d must be a noncomplex double vector of dimension 1xY.");\n', obj.counter)); 0044 fprintf(cppobj.fileMEX,sprintf(' } \n')); 0045 fprintf(cppobj.fileMEX,sprintf(' %s_temp = mxGetPr(prhs[%d]); \n', obj.name, obj.counter)); 0046 0047 fprintf(cppobj.fileMEX,sprintf(' Vector %s(%s_count);\n', obj.name, obj.name)); 0048 0049 fprintf(cppobj.fileMEX,sprintf(' for( int i=0; i<%s_count; ++i ){ \n', obj.name)); 0050 fprintf(cppobj.fileMEX,sprintf(' %s(i) = %s_temp[i];\n', obj.name, obj.name)); 0051 fprintf(cppobj.fileMEX, ' } \n'); 0052 0053 0054 fprintf(cppobj.fileMEX,'\n'); 0055 end 0056 0057 end