diff options
author | Ankitr19 | 2017-07-04 15:33:41 +0530 |
---|---|---|
committer | Ankitr19 | 2017-07-04 15:33:41 +0530 |
commit | 46f9a6c3b848a549f5d92929fd6d1efb501e176a (patch) | |
tree | 0063bfdcb730f75e8cd4281d6f775791883c87d4 /2.3-1/macros | |
parent | 5cfbe7196dd381f1e3f49f5673ce5c9291748364 (diff) | |
parent | c66867c874436fb37ef54c67b048885ce094e894 (diff) | |
download | Scilab2C-46f9a6c3b848a549f5d92929fd6d1efb501e176a.tar.gz Scilab2C-46f9a6c3b848a549f5d92929fd6d1efb501e176a.tar.bz2 Scilab2C-46f9a6c3b848a549f5d92929fd6d1efb501e176a.zip |
New functions added and rpi issues resolved
Diffstat (limited to '2.3-1/macros')
109 files changed, 3759 insertions, 790 deletions
diff --git a/2.3-1/macros/ASTManagement/%equal_string.sci b/2.3-1/macros/ASTManagement/%equal_string.sci index 9678f0e0..041fb84a 100644 --- a/2.3-1/macros/ASTManagement/%equal_string.sci +++ b/2.3-1/macros/ASTManagement/%equal_string.sci @@ -13,4 +13,4 @@ function txt=%equal_string(e) ' '+objectlist2string(e.lhs) 'EndEqual' ] -endfunction
\ No newline at end of file +endfunction diff --git a/2.3-1/macros/ASTManagement/%funcall_string.sci b/2.3-1/macros/ASTManagement/%funcall_string.sci index faeb81d9..0ee97016 100644 --- a/2.3-1/macros/ASTManagement/%funcall_string.sci +++ b/2.3-1/macros/ASTManagement/%funcall_string.sci @@ -6,10 +6,19 @@ function txt=%funcall_string(F) // name : string, the name of the function // lhsnb: number, the number of function lhs +if F.name <> 'disp' txt=['Funcall : '+F.name ' #lhs : '+string(F.lhsnb) ' Rhs : ' ' '+objectlist2string(F.rhs) 'EndFuncall' ] +else +txt=['Funcall : '+F.name + ' #lhs : '+'0' + ' Rhs : ' + ' '+objectlist2string(F.rhs) + 'EndFuncall' + ] +end endfunction diff --git a/2.3-1/macros/ASTManagement/%operatio_string.sci b/2.3-1/macros/ASTManagement/%operatio_string.sci index 8421a3f4..cc18e919 100644 --- a/2.3-1/macros/ASTManagement/%operatio_string.sci +++ b/2.3-1/macros/ASTManagement/%operatio_string.sci @@ -4,10 +4,22 @@ function txt=%operatio_string(O) //fields: // operands: a list // operator: a string +if O.operator <> 'rc' & O.operator <> 'cc' txt=['Operation' ' Operands:' ' '+objectlist2string(O.operands) ' Operator: '+O.operator 'EndOperation' ] -endfunction
\ No newline at end of file +elseif O.operator == 'rc' + txt=[' Operands:' + ' '+objectlist2string(O.operands) + 'Endrc' + ] +elseif O.operator == 'cc' + txt=[' Begin:' + ' '+objectlist2string(O.operands) + 'Endcc' + ] +end +endfunction diff --git a/2.3-1/macros/ASTManagement/%operation_string.sci b/2.3-1/macros/ASTManagement/%operation_string.sci index 84f5ce3c..c9282f67 100644 --- a/2.3-1/macros/ASTManagement/%operation_string.sci +++ b/2.3-1/macros/ASTManagement/%operation_string.sci @@ -10,4 +10,4 @@ function txt=%operation_string(O) ' Operator: '+O.operator 'EndOperation' ] -endfunction
\ No newline at end of file +endfunction diff --git a/2.3-1/macros/ASTManagement/AST2Ccode.sci b/2.3-1/macros/ASTManagement/AST2Ccode.sci index 8076d7e2..563f3133 100644 --- a/2.3-1/macros/ASTManagement/AST2Ccode.sci +++ b/2.3-1/macros/ASTManagement/AST2Ccode.sci @@ -46,6 +46,13 @@ ReportFileName = FileInfo.Funct(nxtscifunnumber).ReportFileName; // --------------------------------- // --- Parameter Initialization. --- // --------------------------------- + +global cc_count +cc_count = 0; + +global rc_count +rc_count = 0; + global SCI2CSTACK SCI2CSTACK = ['EMPTYSTACK']; @@ -54,6 +61,9 @@ StackPosition = 1; global STACKDEDUG STACKDEDUG = 0; // 1 -> Every Pop and Push operation on the stack, the stack content will be printed on screen. + +global disp_isthere +disp_isthere = 0; // ------------------------------------- // --- End parameter Initialization. --- // ------------------------------------- @@ -132,9 +142,10 @@ while ~meof(fidAST) //NUT: qui puoi anche aggiunger piu' case per specificare meglio la struttura della funcall //NUT: i case aggiunti ovviamente faranno solo il push della treeline. case 'EndOperation' then - [FileInfo,SharedInfo] = AST_HandleEndGenFun(FileInfo,SharedInfo,'Operation'); + [disp_isthere,FileInfo,SharedInfo] = AST_HandleEndGenFun(disp_isthere,FileInfo,SharedInfo,'Operation'); case 'EndFuncall' then - [FileInfo,SharedInfo] = AST_HandleEndGenFun(FileInfo,SharedInfo,'Funcall'); + [disp_isthere,FileInfo,SharedInfo] = AST_HandleEndGenFun(disp_isthere,FileInfo,SharedInfo,'Funcall'); + disp(disp_isthere); // -------------- // --- Equal. --- @@ -144,25 +155,60 @@ while ~meof(fidAST) //NUT: per fare in modo di coprire le ins, anche se ci puo' essere qualche rischio quando //NUT: ho miste ins e variabili, per esempio [c(1,1), a] = twooutfun(); //NUT: in questo caso solo una delle due equal va scartata. - [FileInfo,SharedInfo] = AST_HandleEndGenFun(FileInfo,SharedInfo,'Equal'); - SharedInfo = INIT_SharedInfoEqual(SharedInfo); + if rc_count > 0 & cc_count == 0 + [FileInfo,SharedInfo] = AST_HandleFunRC(FileInfo,SharedInfo); + rc_count = 0; + elseif cc_count > 0 + [FileInfo,SharedInfo] = AST_HandleFunCC(cc_count,FileInfo,SharedInfo); + rc_count = 0; + cc_count = 0; + else + if disp_isthere == 0 + [disp_isthere,FileInfo,SharedInfo] = AST_HandleEndGenFun(disp_isthere,FileInfo,SharedInfo,'Equal'); + SharedInfo = INIT_SharedInfoEqual(SharedInfo); + end + end + disp_isthere = 0; + case 'Equal' then SharedInfo.Equal.Enabled = 1; // 1 means enabled -> we are inside an equal AST block. AST_PushASTStack(treeline); case 'Lhs :' then - SharedInfo.Equal.Lhs = 1; // 1 means that we are inside the Lhs block of the Equal - [EqualInArgName,EqualInArgScope,EqualNInArg] = AST_ReadEqualRhsNames(FileInfo,SharedInfo); - - // lengthNumber = length('Number_'); - // if (part(EqualInArgScope,1:lengthNumber) == 'Number_') - // SharedInfo.SkipNextEqual = 1 - // end - SharedInfo.Equal.NInArg = EqualNInArg; - for tmpcnt = 1:SharedInfo.Equal.NInArg - SharedInfo.Equal.InArg(tmpcnt).Name = EqualInArgName(tmpcnt); - SharedInfo.Equal.InArg(tmpcnt).Scope = EqualInArgScope(tmpcnt); - end - AST_PushASTStack(treeline); + disp(disp_isthere); + if rc_count > 0 & cc_count == 0 + SharedInfo.Equal.Lhs = 1; + [EqualInArgName,EqualInArgScope,EqualNInArg] = AST_HandleRC(FileInfo,SharedInfo); + SharedInfo.Equal.NInArg = EqualNInArg - rc_count -1; + AST_PushASTStack(treeline); + for tmpcnt = 1:SharedInfo.Equal.NInArg + SharedInfo.Equal.InArg(tmpcnt).Name = EqualInArgName(tmpcnt); + SharedInfo.Equal.InArg(tmpcnt).Scope = EqualInArgScope(tmpcnt); + end + elseif cc_count > 0 + SharedInfo.Equal.Lhs = 1; + [EqualInArgName,EqualInArgScope,EqualNInArg] = AST_HandleCC(FileInfo,SharedInfo); + AST_PushASTStack(treeline); + else + SharedInfo.Equal.Lhs = 1; // 1 means that we are inside the Lhs block of the Equal + //if SharedInfo.Equal.NOutArg > 0 + if disp_isthere == 0 + [EqualInArgName,EqualInArgScope,EqualNInArg] = AST_ReadEqualRhsNames(FileInfo,SharedInfo); + SharedInfo.Equal.NInArg = EqualNInArg; + //end + + // lengthNumber = length('Number_'); + // if (part(EqualInArgScope,1:lengthNumber) == 'Number_') + // SharedInfo.SkipNextEqual = 1 + // end + + for tmpcnt = 1:SharedInfo.Equal.NInArg + SharedInfo.Equal.InArg(tmpcnt).Name = EqualInArgName(tmpcnt); + SharedInfo.Equal.InArg(tmpcnt).Scope = EqualInArgScope(tmpcnt); + end + //end + end + AST_PushASTStack(treeline); + end // ---------------- // --- If/Else. --- @@ -196,6 +242,7 @@ while ~meof(fidAST) // ----------------- case 'EndProgram' SharedInfo = AST_HandleEndProgram(FileInfo,SharedInfo); + disp_isthere = 0; //NUT: per essere precisi si puo' pensare di mettere un check //NUT: alla fine dell'albero per accertarsi che c'e' end program li' dove ce lo aspettiamo @@ -229,6 +276,15 @@ while ~meof(fidAST) SharedInfo = AST_HandleEndWhile(FileInfo,SharedInfo); SharedInfo.While.Level = SharedInfo.While.Level - 1; + + case 'Endrc' then + rc_count = rc_count + 1; + + case 'Endcc' then + cc_count = cc_count + 1; + + //[FileInfo,SharedInfo] = AST_HandleRC(FileInfo,SharedInfo); + // ---------------- // --- Default. --- // ---------------- diff --git a/2.3-1/macros/ASTManagement/AST_HandleCC.sci b/2.3-1/macros/ASTManagement/AST_HandleCC.sci new file mode 100644 index 00000000..cc411549 --- /dev/null +++ b/2.3-1/macros/ASTManagement/AST_HandleCC.sci @@ -0,0 +1,69 @@ +// Copyright (C) 2017 - IIT Bombay - FOSSEE + +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt +// Author: Ukasha Noor +// Organization: FOSSEE, IIT Bombay +// Email: toolbox@scilab.in + +function [RhsNames,RhsScope,NRhs] = AST_HandleCC(FileInfo,SharedInfo) + +SCI2CNInArgCheck(argn(2),2,2) + +ReportFileName = FileInfo.Funct(nxtscifunnumber).ReportFileName; + +// ------------------------------ +// --- Check input arguments. --- +// ------------------------------ + + +global SCI2CSTACK +global StackPosition; +global STACKDEDUG +// --------------------------- +// --- End Initialization. --- +// --------------------------- + + +// ------------------------------ +// --- Read input parameters. --- +// ------------------------------ +cntpop = 1; +NRhs = 0; +RhsField(cntpop) = AST_PopASTStack(); +RhsNames = []; +while (RhsField(cntpop) ~= 'Expression:') + if RhsField(cntpop) <> 'Operands:' & RhsField(cntpop) <> 'Begin:' + NRhs = NRhs + 1; + + [RhsNames(NRhs),RhsScope(NRhs)] = AST_ExtractNameAndScope(RhsField(cntpop)); + end + cntpop = cntpop + 1; + RhsField(cntpop) = AST_PopASTStack(); +end +RhsNames = SCI2Cflipud(RhsNames); +RhsScope = SCI2Cflipud(RhsScope); + +// --- Repush everything into the stack. --- +for cntpush = cntpop:-1:1 + if RhsField(cntpush) <> 'Operands:' & RhsField(cntpush) <> 'Begin:' + PrintStringInfo(' ' + RhsField(cntpush),ReportFileName,'file','y'); + AST_PushASTStack(RhsField(cntpush)); + end +end + + +//for counterinputargs = 1:NRhs + //#RNU_RES_B + //disp(counterinputargs); + //PrintStringInfo('Input Argument Number '+string(counterinputargs)+': '+RhsNames(counterinputargs).Name,... + // ReportFileName,'file','y'); + //PrintStringInfo(' Scope: '+RhsNames(counterinputargs).Scope,... + // ReportFileName,'file','y'); + //#RNU_RES_E +//end + +endfunction diff --git a/2.3-1/macros/ASTManagement/AST_HandleEndGenFun.sci b/2.3-1/macros/ASTManagement/AST_HandleEndGenFun.sci index 88b9634b..96830aa9 100644 --- a/2.3-1/macros/ASTManagement/AST_HandleEndGenFun.sci +++ b/2.3-1/macros/ASTManagement/AST_HandleEndGenFun.sci @@ -1,5 +1,5 @@ -function [FileInfo,SharedInfo] = AST_HandleEndGenFun(FileInfo,SharedInfo,ASTFunType) +function [disp_isthere,FileInfo,SharedInfo] = AST_HandleEndGenFun(disp_isthere,FileInfo,SharedInfo,ASTFunType) // function [FileInfo,SharedInfo] = AST_HandleEndGenFun(FileInfo,SharedInfo,ASTFunType) // ----------------------------------------------------------------- // #RNU_RES_B @@ -36,7 +36,7 @@ function [FileInfo,SharedInfo] = AST_HandleEndGenFun(FileInfo,SharedInfo,ASTFunT // ------------------------------ // --- Check input arguments. --- // ------------------------------ -SCI2CNInArgCheck(argn(2),3,3); +SCI2CNInArgCheck(argn(2),4,4); // ----------------------- // --- Initialization. --- @@ -61,6 +61,8 @@ PrintStepInfo('Handling Funcall/Operation/Equal',FileInfo.Funct(nxtscifunnumber) global SCI2CSTACK global StackPosition; global STACKDEDUG + +disp_isthere = 0; // --------------------------- // --- End Initialization. --- // --------------------------- @@ -73,7 +75,19 @@ global STACKDEDUG // #RNU_RES_E [ASTFunName,InArg,NInArg,OutArg,NOutArg] = AST_GetFuncallPrm(FileInfo,SharedInfo,ASTFunType); NOutArg_mod = NOutArg + if ASTFunName == 'OpLogAnd' + AST_PushASTStack('&&'); + return ; + end + if ASTFunName == 'OpLogOr' + AST_PushASTStack('||'); + return; + end + if ASTFunName == 'disp' + disp_isthere = 1; + end + if(mtlb_strcmp(part(ASTFunName,1:2),'CV') == %T) SharedInfo.OpenCVUsed = %T; end @@ -113,6 +127,8 @@ NOutArg_mod = NOutArg PrintStringInfo(' ',ReportFileName,'both','y'); error(9999, 'SCI2CERROR: Unexpected number of output arguments for global function.'); end + elseif(ASTFunName == 'raspi' | ASTFunName == 'raspi_close') + SharedInfo.SkipNextFun = 1; end // #RNU_RES_B @@ -140,6 +156,7 @@ NOutArg_mod = NOutArg // --- Search for Equal Lhs and precision specifier to be applied to the current function. --- // ------------------------------------------------------------------------------------------- // #RNU_RES_E + PrintStringInfo(' no of out arguments' + string(NOutArg),ReportFileName,'file','y'); [LhsArg,NLhsArg,FunPrecSpecifier,SharedInfo] = AST_GetPrecAndLhsArg(OutArg,NOutArg,ASTFunName,FunTypeAnnot,FunSizeAnnot,ASTFunType,FileInfo,SharedInfo); //NUT: questa funzione contiene troppi parametri e mi sembra disordinata. @@ -337,8 +354,13 @@ NOutArg_mod = NOutArg OutArg(1).Name = string(OutArg(1).Value); elseif ((ASTFunName == 'double') & (NInArg == 1) & (InArg(1).Dimension == 0) & (InArg(1).Scope == 'Number')) OutArg(1).Name = string(OutArg(1).Value); + //elseif ASTFunName == 'disp' else [OutArg,SharedInfo] = GenOutArgNames(ASTFunName,InArg,NInArg,OutArg,NOutArg,LhsArg,NLhsArg,FileInfo,SharedInfo); + if ( ASTFunName == 'OpLogGt' | ASTFunName == 'OpLogLt' | ASTFunName == 'OpLogLe' | ASTFunName == 'OpLogGe' | ASTFunName == 'OpLogNe' | ASTFunName == 'OpLogEq') + PrintStringInfo(' returning back due logical function',ReportFileName,'file','y'); + return; + end end if ((ASTFunName == 'uint8') & (NInArg == 1) & (InArg(1).Dimension == 0) & (InArg(1).Scope == 'Number')) @@ -382,6 +404,8 @@ NOutArg_mod = NOutArg // Scope already set above. elseif (ASTFunName == 'double' & NInArg == 1 & (InArg(1).Dimension == 0) & (InArg(1).Scope == 'Number')) // Scope already set above. + //elseif ASTFunName == 'disp' + //do nothing else OutArg = ST_AnalyzeScope(OutArg,NOutArg,FileInfo,SharedInfo); end @@ -400,6 +424,8 @@ NOutArg_mod = NOutArg //#RNUREM_ME A number is not inserted in the symbol table. elseif ((ASTFunName == 'double') & (NInArg == 1) & (InArg(1).Dimension == 0) & (InArg(1).Scope == 'Number')) //#RNUREM_ME A number is not inserted in the symbol table. + //elseif ASTFunName == 'disp' + //do nothing else ST_InsOutArg(OutArg,NOutArg,FileInfo,SharedInfo,'all'); end @@ -432,10 +458,10 @@ NOutArg_mod = NOutArg // -------------------------------------------- //#RNU_RES_E //disp(OutArg,InArg,ASTFunName) - + CFunName = C_GenerateFunName(ASTFunName,InArg,NInArg,OutArg,NOutArg_mod); - + //#RNU_RES_B PrintStringInfo(' C Function Name: '+CFunName,ReportFileName,'file','y'); if(IsArduinoFunction(ASTFunName)) @@ -507,6 +533,8 @@ NOutArg_mod = NOutArg SharedInfo.SkipNextFun > 0 | ... ((sum(mtlb_strcmp(ASTFunName,SharedInfo.Annotations.DataPrec)) > 0) & (SharedInfo.SkipNextPrec == 1))) // Do nothing + //elseif ASTFunName == 'disp' + // Do nothing else AST_CheckCommonInOutArgs(InArg,NInArg,OutArg,NOutArg,ReportFileName); end diff --git a/2.3-1/macros/ASTManagement/AST_HandleFunCC.sci b/2.3-1/macros/ASTManagement/AST_HandleFunCC.sci new file mode 100644 index 00000000..1942c749 --- /dev/null +++ b/2.3-1/macros/ASTManagement/AST_HandleFunCC.sci @@ -0,0 +1,176 @@ +// Copyright (C) 2017 - IIT Bombay - FOSSEE + +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt +// Author: Ukasha Noor +// Organization: FOSSEE, IIT Bombay +// Email: toolbox@scilab.in + + +function [FileInfo,SharedInfo] = AST_HandleFunCC(NCol,FileInfo,SharedInfo) + +SCI2CNInArgCheck(argn(2),3,3) + +// ------------------------------ +// --- Check input arguments. --- +// ------------------------------ + +// ----------------------- +// --- Initialization. --- +// ----------------------- +nxtscifunname = SharedInfo.NextSCIFunName; +nxtscifunnumber = SharedInfo.NextSCIFunNumber; +ReportFileName = FileInfo.Funct(nxtscifunnumber).ReportFileName; + +global SCI2CSTACK +global StackPosition; +global STACKDEDUG +// --------------------------- +// --- End Initialization. --- +// --------------------------- + +// ------------------------------ +// --- Read output parameters. -- +// ------------------------------ +LhsField = AST_PopASTStack(); +NOutArg = 0; +OutputArgumentNames = []; +OutputArgumentScope = []; +while (LhsField ~= 'Lhs :') + NOutArg = NOutArg + 1; + [OutputArgumentNames(NOutArg),OutputArgumentScope(NOutArg)] = AST_ExtractNameAndScope(LhsField); + LhsField = AST_PopASTStack(); + if (LhsField == 'Expression:') + error(9999, 'Found Expression: before Lhs'); + elseif (LhsField == 'Equal') + error(9999, 'Found Equal before Lhs'); + end +end + +// ------------------------------ +// --- Read input parameters. --- +// ------------------------------ + + +RhsField = AST_PopASTStack(); +InputArgumentNames = []; +InputArgumentScope = []; +NInArg = 0; +InArg = []; +while (RhsField ~= 'Expression:') + NInArg = NInArg + 1; + if RhsField <> 'Operands:' + [InputArgumentNames(NInArg),InputArgumentScope(NInArg)] = AST_ExtractNameAndScope(RhsField); + end + //InArg(NInArg) = RhsField; + RhsField = AST_PopASTStack(); +end +InputArgumentNames = SCI2Cflipud(InputArgumentNames); +InputArgumentScope = SCI2Cflipud(InputArgumentScope); + + +// ------------------------------------- +// --- Generate the InArg structure. --- +// ------------------------------------- +//#RNU_RES_E +for counterinputargs = 1:NInArg + InArg(counterinputargs).Name=InputArgumentNames(counterinputargs); + InArg(counterinputargs).Scope=InputArgumentScope(counterinputargs); +end + +//#RNU_RES_B +// ------------------------------------- +// --- Generate the InArg structure. --- +// ------------------------------------- +//#RNU_RES_E +OutArg = []; +for counteroutputargs = 1:NOutArg + OutArg(counteroutputargs).Name=OutputArgumentNames(counteroutputargs); + OutArg(counteroutputargs).Scope=OutputArgumentScope(counteroutputargs); +end + +// ------------------------ +// --- Print Some Info. --- +// ------------------------ + +PrintStringInfo('N Input Arguments: '+string(NInArg),ReportFileName,'file','y','n'); +PrintStringInfo('N Output Arguments: '+string(NOutArg),ReportFileName,'file','y'); + //#RNU_RES_E + for counterinputargs = 1:NInArg + //#RNU_RES_B + PrintStringInfo('Input Argument Number '+string(counterinputargs)+': '+InArg(counterinputargs).Name,... + ReportFileName,'file','y','n'); + PrintStringInfo(' Scope: '+InArg(counterinputargs).Scope,... + ReportFileName,'file','y','n'); + //#RNU_RES_E + end + for counteroutputargs = 1:NOutArg + //#RNU_RES_B + PrintStringInfo('Output Argument Number '+string(counteroutputargs)+': '+OutArg(counteroutputargs).Name,... + ReportFileName,'file','y','n'); + //PrintStringInfo(' Scope: '+ OutArg(counterinputargs).Scope,ReportFileName,'file','y','n'); + //#RNU_RES_E + end + +NOutArg_mod = NOutArg; + +FunTypeAnnot = ''; +FunSizeAnnot = ''; +NLhsArg = 0; +LhsArg = []; +PrintStringInfo('...Equal not found.',ReportFileName,'file','y'); + +PrintStringInfo('***Analyzing Input Arguments***',ReportFileName,'file','y'); +UpdatedInArg = InArg; +[InArg,SharedInfo] = ST_GetInArgInfo(InArg,NInArg,FileInfo,SharedInfo,'OpEqual'); + +NCol = NCol + 1; +NRow = NInArg/NCol; + +com_type = 0; +for i = 1:NInArg + if InArg(i).Type == 'z' + com_type = 1; + elseif InArg(i).Type == 'c' + com_type = 2; + end +end + + +if com_type == 0 + PrintStringInfo(' Generating Out Arg names.',ReportFileName,'file','y'); + OutArg(1).Type = InArg(1).Type; + OutArg(1).Size(1) = string(NCol); + OutArg(1).Size(2) = string(NRow); + OutArg(1).Dimension = 2; + OutArg(1).Value = InArg(1).Value; + OutArg(1).FindLike = InArg(1).FindLike; +elseif com_type == 1 + PrintStringInfo(' Generating Out Arg names.',ReportFileName,'file','y'); + OutArg(1).Type = 'z'; + OutArg(1).Size(1) = string(NCol); + OutArg(1).Size(2) = string(NRow); + OutArg(1).Dimension = 2; + OutArg(1).Value = InArg(1).Value; + OutArg(1).FindLike = InArg(1).FindLike; +else + PrintStringInfo(' Generating Out Arg names.',ReportFileName,'file','y'); + OutArg(1).Type = 'c'; + OutArg(1).Size(1) = string(NCol); + OutArg(1).Size(2) = string(NRow); + OutArg(1).Dimension = 2; + OutArg(1).Value = InArg(1).Value; + OutArg(1).FindLike = InArg(1).FindLike; +end + +//--- Check for output Argument in symbol table ---// +OutArg = ST_AnalyzeScope(OutArg,NOutArg,FileInfo,SharedInfo); + +//--- Put the output Argument in symbol table ---// +ST_InsOutArg_Dup(InArg,NInArg,OutArg,NOutArg,com_type,FileInfo,SharedInfo,'all'); + + +endfunction diff --git a/2.3-1/macros/ASTManagement/AST_HandleFunRC.sci b/2.3-1/macros/ASTManagement/AST_HandleFunRC.sci new file mode 100644 index 00000000..d3169249 --- /dev/null +++ b/2.3-1/macros/ASTManagement/AST_HandleFunRC.sci @@ -0,0 +1,178 @@ +// Copyright (C) 2017 - IIT Bombay - FOSSEE + +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt +// Author: Ukasha Noor +// Organization: FOSSEE, IIT Bombay +// Email: toolbox@scilab.in + +function [FileInfo,SharedInfo] = AST_HandleFunRC(FileInfo,SharedInfo) + +SCI2CNInArgCheck(argn(2),2,2) + +// ------------------------------ +// --- Check input arguments. --- +// ------------------------------ + +// ----------------------- +// --- Initialization. --- +// ----------------------- +nxtscifunname = SharedInfo.NextSCIFunName; +nxtscifunnumber = SharedInfo.NextSCIFunNumber; +ReportFileName = FileInfo.Funct(nxtscifunnumber).ReportFileName; + +global SCI2CSTACK +global StackPosition; +global STACKDEDUG +// --------------------------- +// --- End Initialization. --- +// --------------------------- + +// ------------------------------ +// --- Read output parameters. -- +// ------------------------------ +LhsField = AST_PopASTStack(); +NOutArg = 0; +OutputArgumentNames = []; +OutputArgumentScope = []; +while (LhsField ~= 'Lhs :') + NOutArg = NOutArg + 1; + [OutputArgumentNames(NOutArg),OutputArgumentScope(NOutArg)] = AST_ExtractNameAndScope(LhsField); + LhsField = AST_PopASTStack(); + if (LhsField == 'Expression:') + error(9999, 'Found Expression: before Lhs'); + elseif (LhsField == 'Equal') + error(9999, 'Found Equal before Lhs'); + end +end + +// ------------------------------ +// --- Read input parameters. --- +// ------------------------------ + + +RhsField = AST_PopASTStack(); +InputArgumentNames = []; +InputArgumentScope = []; +NInArg = 0; +InArg = []; +while (RhsField ~= 'Expression:') + NInArg = NInArg + 1; + if RhsField <> 'Operands:' + [InputArgumentNames(NInArg),InputArgumentScope(NInArg)] = AST_ExtractNameAndScope(RhsField); + end + //InArg(NInArg) = RhsField; + RhsField = AST_PopASTStack(); +end +InputArgumentNames = SCI2Cflipud(InputArgumentNames); +InputArgumentScope = SCI2Cflipud(InputArgumentScope); + + +// ------------------------------------- +// --- Generate the InArg structure. --- +// ------------------------------------- +//#RNU_RES_E +for counterinputargs = 1:NInArg + InArg(counterinputargs).Name=InputArgumentNames(counterinputargs); + InArg(counterinputargs).Scope=InputArgumentScope(counterinputargs); +end + +//#RNU_RES_B +// ------------------------------------- +// --- Generate the InArg structure. --- +// ------------------------------------- +//#RNU_RES_E +OutArg = []; +for counteroutputargs = 1:NOutArg + OutArg(counteroutputargs).Name=OutputArgumentNames(counteroutputargs); + OutArg(counteroutputargs).Scope=OutputArgumentScope(counteroutputargs); +end + + +// ------------------------ +// --- Print Some Info. --- +// ------------------------ + +PrintStringInfo('N Input Arguments: '+string(NInArg),ReportFileName,'file','y','n'); +PrintStringInfo('N Output Arguments: '+string(NOutArg),ReportFileName,'file','y'); + //#RNU_RES_E + for counterinputargs = 1:NInArg + //#RNU_RES_B + PrintStringInfo('Input Argument Number '+string(counterinputargs)+': '+InArg(counterinputargs).Name,... + ReportFileName,'file','y','n'); + PrintStringInfo(' Scope: '+InArg(counterinputargs).Scope,... + ReportFileName,'file','y','n'); + //#RNU_RES_E + end + for counteroutputargs = 1:NOutArg + //#RNU_RES_B + PrintStringInfo('Output Argument Number '+string(counteroutputargs)+': '+OutArg(counteroutputargs).Name,... + ReportFileName,'file','y','n'); + //PrintStringInfo(' Scope: '+ OutArg(counterinputargs).Scope,ReportFileName,'file','y','n'); + //#RNU_RES_E + end + +NOutArg_mod = NOutArg; + +FunTypeAnnot = ''; +FunSizeAnnot = ''; +NLhsArg = 0; +LhsArg = []; +PrintStringInfo('...Equal not found.',ReportFileName,'file','y'); + +PrintStringInfo('***Analyzing Input Arguments***',ReportFileName,'file','y'); +UpdatedInArg = InArg; +[InArg,SharedInfo] = ST_GetInArgInfo(InArg,NInArg,FileInfo,SharedInfo,'OpEqual'); + +size_count = 0; +for i = 1:NInArg + size_count = size_count + eval(InArg(i).Size(2)); +end + +com_type = 0; +for i = 1:NInArg + if InArg(i).Type == 'z' + com_type = 1; + elseif InArg(i).Type == 'c' + com_type = 2; + end +end + + +if com_type == 0 + PrintStringInfo(' Generating Out Arg names.',ReportFileName,'file','y'); + OutArg(1).Type = InArg(1).Type; + OutArg(1).Size(1) = '1' + OutArg(1).Size(2) = string(size_count); + OutArg(1).Dimension = 2; + OutArg(1).Value = InArg(1).Value; + OutArg(1).FindLike = InArg(1).FindLike; +elseif com_type == 1 + PrintStringInfo(' Generating Out Arg names.',ReportFileName,'file','y'); + OutArg(1).Type = 'z'; + OutArg(1).Size(1) = '1' + OutArg(1).Size(2) = string(size_count); + OutArg(1).Dimension = 2; + OutArg(1).Value = InArg(1).Value; + OutArg(1).FindLike = InArg(1).FindLike; +else + PrintStringInfo(' Generating Out Arg names.',ReportFileName,'file','y'); + OutArg(1).Type = 'c'; + OutArg(1).Size(1) = '1' + OutArg(1).Size(2) = string(size_count); + OutArg(1).Dimension = 2; + OutArg(1).Value = InArg(1).Value; + OutArg(1).FindLike = InArg(1).FindLike; +end + +//--- Check for output Argument in symbol table ---// +OutArg = ST_AnalyzeScope(OutArg,NOutArg,FileInfo,SharedInfo); + +//--- Put the output Argument in symbol table ---// +ST_InsOutArg_Dup(InArg,NInArg,OutArg,NOutArg,com_type,FileInfo,SharedInfo,'all'); + + +endfunction diff --git a/2.3-1/macros/ASTManagement/AST_HandleIfElse.sci b/2.3-1/macros/ASTManagement/AST_HandleIfElse.sci index 5373adf6..2b549ed6 100644 --- a/2.3-1/macros/ASTManagement/AST_HandleIfElse.sci +++ b/2.3-1/macros/ASTManagement/AST_HandleIfElse.sci @@ -74,11 +74,13 @@ global STACKDEDUG // --------------------------------------------------- //#RNU_RES_E if (ASTIfExpType~='else') - [IfCondArg,NIfCondArg] = AST_ParseIfExprStruct(FileInfo,SharedInfo,ASTIfExpType); + [IfCondArg,NIfCondArg,Op,NOp] = AST_ParseIfExprStruct(FileInfo,SharedInfo,ASTIfExpType); else // "else" type doesn't contain any condition to test. IfCondArg = ''; NIfCondArg = 0; + Op = ''; + NOp = 0; end //#RNU_RES_B @@ -87,6 +89,6 @@ end // ----------------------------- // --- Generate the C code for if/elseif Expression. --- //#RNU_RES_E -SharedInfo = C_IfExpression(IfCondArg,NIfCondArg,ASTIfExpType,FileInfo,SharedInfo); +SharedInfo = C_IfExpression(IfCondArg,NIfCondArg,Op,NOp,ASTIfExpType,FileInfo,SharedInfo); endfunction diff --git a/2.3-1/macros/ASTManagement/AST_HandleRC.sci b/2.3-1/macros/ASTManagement/AST_HandleRC.sci new file mode 100644 index 00000000..2a6cbc3f --- /dev/null +++ b/2.3-1/macros/ASTManagement/AST_HandleRC.sci @@ -0,0 +1,88 @@ +function [RhsNames,RhsScope,NRhs] = AST_HandleRC(FileInfo,SharedInfo) +// function [FileInfo,SharedInfo] = AST_HandleEndGenFun(FileInfo,SharedInfo,ASTFunType) +// ----------------------------------------------------------------- +// #RNU_RES_B +// Handles the EndFuncall, EndOperation and EndEqual tags of the AST. +// ASTFunType can be 'Funcall', 'Operation', 'Equal' +// Structure of Funcall: +// overloading function for "funcall" type tlist string function +// this is a node of the AST +// fields: +// rhs : a list +// name : string, the name of the function +// lhsnb: number, the number of function lhs +// txt=['Funcall : '+F.name +// ' #lhs : '+string(F.lhsnb) +// ' Rhs : ' +// ' '+objectlist2string(F.rhs) +// 'EndFuncall' +// ] +// #RNU_RES_E +// +// Input data: +// //NUT: add description here +// +// Output data: +// //NUT: add description here +// +// Status: +// 11-Apr-2007 -- Raffaele Nutricato: Author. +// +// Copyright 2007 Raffaele Nutricato. +// Contact: raffaele.nutricato@tiscali.it +// ----------------------------------------------------------------- + +SCI2CNInArgCheck(argn(2),2,2) + +ReportFileName = FileInfo.Funct(nxtscifunnumber).ReportFileName; + +// ------------------------------ +// --- Check input arguments. --- +// ------------------------------ + + +global SCI2CSTACK +global StackPosition; +global STACKDEDUG +// --------------------------- +// --- End Initialization. --- +// --------------------------- + + +// ------------------------------ +// --- Read input parameters. --- +// ------------------------------ +cntpop = 1; +NRhs = 0; +RhsField(cntpop) = AST_PopASTStack(); +RhsNames = []; +while (RhsField(cntpop) ~= 'Expression:') + NRhs = NRhs + 1; + if RhsField(cntpop) <> 'Operands:' + [RhsNames(NRhs),RhsScope(NRhs)] = AST_ExtractNameAndScope(RhsField(cntpop)); + end + cntpop = cntpop + 1; + RhsField(cntpop) = AST_PopASTStack(); +end +RhsNames = SCI2Cflipud(RhsNames); +RhsScope = SCI2Cflipud(RhsScope); + +// --- Repush everything into the stack. --- +for cntpush = cntpop:-1:1 + if RhsField(cntpush) <> 'Operands:' + AST_PushASTStack(RhsField(cntpush)); + end +end + + +//for counterinputargs = 1:NRhs + //#RNU_RES_B + //disp(counterinputargs); + // PrintStringInfo('Input Argument Number '+string(counterinputargs)+': '+RhsNames(counterinputargs).Name,... + // ReportFileName,'file','y'); + //PrintStringInfo(' Scope: '+RhsNames(counterinputargs).Scope,... + // ReportFileName,'file','y'); + //#RNU_RES_E +//end + +endfunction diff --git a/2.3-1/macros/ASTManagement/AST_HandleWhileStatem.sci b/2.3-1/macros/ASTManagement/AST_HandleWhileStatem.sci index 79fb516d..d8c2f73c 100644 --- a/2.3-1/macros/ASTManagement/AST_HandleWhileStatem.sci +++ b/2.3-1/macros/ASTManagement/AST_HandleWhileStatem.sci @@ -36,6 +36,8 @@ global SCI2CSTACK global StackPosition; global STACKDEDUG +IfCondArg = []; +NIfCondArg = 0; // ------------------------------ // --- Check input arguments. --- @@ -70,36 +72,40 @@ PrintStringInfo(' Redirecting C code to: '+FileInfo.Funct(nxtscifunnumber).CPa // --- Generate C code. --- // ------------------------ //#RNU_RES_E -if(SharedInfo.WhileExpr.CondVar == '') - //#RNU_RES_B - // It means that we are handling something like while(a) or while(1) - // The while condition variable is generated by the HandleEndGenFun. - //#RNU_RES_E - - // --- Pop the name of the condition variable or number. --- - Pop1 = AST_PopASTStack(); - - [ArgName,ArgScope] = AST_ExtractNameAndScope(Pop1); - if (length(ArgName) == 0) - PrintStringInfo(' ',ReportFileName,'both','y'); - PrintStringInfo('SCI2CERROR: Expected while(variable) or while(number).','','stdout','y'); - PrintStringInfo('SCI2CERROR: Expected a variable or number in the AST while expression.','','stdout','y'); - PrintStringInfo('SCI2CERROR: Report this error to http://forge.scilab.org/index.php/p/scilab2c/issues/.','','stdout','y'); - PrintStringInfo(' ',ReportFileName,'both','y'); - error(9999, 'Expected a conditional variable in the while expression'); +flagendpop = 0; +IfExprField = AST_PopASTStack(); + +NOp=0; +Op=[]; +while (flagendpop == 0) + if (IfExprField~='<EOL>') + if (IfExprField=='WhileExpression:') + flagendpop = 1; + // Pop Again the If tag from the AST. + IfExprField = AST_PopASTStack(); + elseif (IfExprField=='Operands:') + flagendpop = 0; + g = AST_PopASTStack(); + else + if (IfExprField=='&&' | IfExprField=='||') + NOp = NOp + 1; + Op(NOp) = IfExprField; + //PrintStringInfo('operators are '+Op(NOp),ReportFileName,'file','y'); + else + NIfCondArg = NIfCondArg + 1; + IfCondArg(NIfCondArg) = IfExprField; + end + //[IfCondArg(NIfCondArg),tmpscope] = AST_ExtractNameAndScope(IfExprField); + //[IfCondArg(NIfCondArg),tmpscope] = AST_ExtractNameAndScope(IfExprField); + end end + IfExprField = AST_PopASTStack(); + PrintStringInfo('operators are '+IfExprField,ReportFileName,'file','y'); +end - SharedInfo.WhileExpr.CondVar = ArgName; - //#RNU_RES_B - // --- Repush strings into the AST stack. --- - //#RNU_RES_E - - AST_PushASTStack(Pop1); +IfCondArg = SCI2Cflipud(IfCondArg); -elseif (SharedInfo.WhileExpr.DimCondVar > 0) - error(9999, 'Cannot manage while with matrix conditions'); -end -SharedInfo = C_WhileExpression(FileInfo,SharedInfo); +SharedInfo = C_WhileExpression(IfCondArg,NIfCondArg,Op,NOp,FileInfo,SharedInfo); // -------------------------- // --- Update SharedInfo. --- diff --git a/2.3-1/macros/ASTManagement/AST_ParseEqualStruct.sci b/2.3-1/macros/ASTManagement/AST_ParseEqualStruct.sci index fa76a01d..68bc3da7 100644 --- a/2.3-1/macros/ASTManagement/AST_ParseEqualStruct.sci +++ b/2.3-1/macros/ASTManagement/AST_ParseEqualStruct.sci @@ -123,7 +123,7 @@ end // ------------------------ //#RNU_RES_B PrintStringInfo('Function Name: '+FunctionName,ReportFileName,'file','y','n'); -PrintStringInfo('N Intput Arguments: '+string(NInArg),ReportFileName,'file','y','n'); +PrintStringInfo('N Input Arguments: '+string(NInArg),ReportFileName,'file','y','n'); //#RNU_RES_E if (SharedInfo.Equal.Nins > 0) //#RNU_RES_B diff --git a/2.3-1/macros/ASTManagement/AST_ParseFuncallStruct.sci b/2.3-1/macros/ASTManagement/AST_ParseFuncallStruct.sci index 647a70d7..3c322dd5 100644 --- a/2.3-1/macros/ASTManagement/AST_ParseFuncallStruct.sci +++ b/2.3-1/macros/ASTManagement/AST_ParseFuncallStruct.sci @@ -87,6 +87,10 @@ NOutArg = eval(stripblanks(part(buffstring,10:length(buffstring)))); buffstring = AST_PopASTStack(); FunctionName = stripblanks(part(buffstring,12:length(buffstring))); +//if (FunctionName == 'disp') + // NOutArg = 0; +//end + // ------------------------------------- // --- Generate the InArg structure. --- // ------------------------------------- diff --git a/2.3-1/macros/ASTManagement/AST_ParseIfExprStruct.sci b/2.3-1/macros/ASTManagement/AST_ParseIfExprStruct.sci index a7da0128..2bfb08dd 100644 --- a/2.3-1/macros/ASTManagement/AST_ParseIfExprStruct.sci +++ b/2.3-1/macros/ASTManagement/AST_ParseIfExprStruct.sci @@ -1,4 +1,4 @@ -function [IfCondArg,NIfCondArg] = AST_ParseIfExprStruct(FileInfo,SharedInfo,ASTIfExpType) +function [IfCondArg,NIfCondArg,Op,NOp] = AST_ParseIfExprStruct(FileInfo,SharedInfo,ASTIfExpType) // function [IfCondArg,NIfCondArg] = AST_ParseIfExprStruct(FileInfo,SharedInfo,ASTIfExpType) // ----------------------------------------------------------------- //#RNU_RES_B @@ -63,13 +63,26 @@ global STACKDEDUG // ------------------------------------ // --- Read if condition variables. --- // ------------------------------------ +//OutArgOld=[]; +//OutArgNew=[]; + +//for i = 1:3 + // OutArgOld(i)=AST_PopASTStack(); + //PrintStringInfo(' '+OutArgOld(i),ReportFileName,'file','y'); +//end +//x = AST_PopASTStack(); + +//OutArgNew = SCI2Cflipud(OutArgOld); + flagendpop = 0; IfExprField = AST_PopASTStack(); +PrintStringInfo(' '+IfExprField+' '+ASTIfExpType,ReportFileName,'file','y'); if (ASTIfExpType=='if') if (IfExprField=='Expression:') flagendpop = 1; // Pop Again the If tag from the AST. IfExprField = AST_PopASTStack(); + PrintStringInfo(' '+IfExprField,ReportFileName,'file','y'); end elseif (ASTIfExpType=='elseif') if (IfExprField=='Else If Expression') @@ -78,31 +91,57 @@ elseif (ASTIfExpType=='elseif') else error(9999, 'Unknown ASTIfExpType ""'+ASTIfExpType+'"".'); end - +NOp=0; +Op=[]; while (flagendpop == 0) if (IfExprField~='<EOL>') if (ASTIfExpType=='if') if (IfExprField=='Expression:') flagendpop = 1; + //PrintStringInfo('hello dere '+IfExprField,ReportFileName,'file','y'); // Pop Again the If tag from the AST. IfExprField = AST_PopASTStack(); + elseif (IfExprField=='Operands:') + flagendpop = 0; + g = AST_PopASTStack(); else + if (IfExprField=='&&' | IfExprField=='||') + NOp = NOp + 1; + Op(NOp) = IfExprField; + //PrintStringInfo('operators are '+Op(NOp),ReportFileName,'file','y'); + else NIfCondArg = NIfCondArg + 1; - [IfCondArg(NIfCondArg),tmpscope] = AST_ExtractNameAndScope(IfExprField); + IfCondArg(NIfCondArg) = IfExprField; + end + //[IfCondArg(NIfCondArg),tmpscope] = AST_ExtractNameAndScope(IfExprField); end elseif (ASTIfExpType=='elseif') if (IfExprField=='Else If Expression') flagendpop = 1; + //IfExprField = AST_PopASTStack(); else - NIfCondArg = NIfCondArg + 1; - IfCondArg(NIfCondArg) = IfExprField; - [IfCondArg(NIfCondArg),tmpscope] = AST_ExtractNameAndScope(IfExprField); + if (IfExprField=='&&' | IfExprField=='||') + NOp = NOp + 1; + Op(NOp) = IfExprField; + elseif (IfExprField=='Operands:') + flagendpop = 0; + g = AST_PopASTStack(); + else + NIfCondArg = NIfCondArg + 1; + IfCondArg(NIfCondArg) = IfExprField; + end + //[IfCondArg(NIfCondArg),tmpscope] = AST_ExtractNameAndScope(IfExprField); end end end + if flagendpop == 0 IfExprField = AST_PopASTStack(); + end + PrintStringInfo('operators are '+IfExprField,ReportFileName,'file','y'); end +IfCondArg = SCI2Cflipud(IfCondArg); + //#RNU_RES_B // ------------------------------------------- // --- Print some info in the report file. --- diff --git a/2.3-1/macros/ASTManagement/AST_ParseOperStruct.sci b/2.3-1/macros/ASTManagement/AST_ParseOperStruct.sci index a77317bd..903f0958 100644 --- a/2.3-1/macros/ASTManagement/AST_ParseOperStruct.sci +++ b/2.3-1/macros/ASTManagement/AST_ParseOperStruct.sci @@ -61,6 +61,17 @@ LabelFunctName = 'Operator: '; FunctionName = stripblanks(part(buffstring,length(LabelFunctName)+1:length(buffstring))); // Generate the proper function name. FunctionName = Operator2FunName(FunctionName); +PrintStringInfo(' '+FunctionName,ReportFileName,'file','y'); + +if (FunctionName == 'OpLogAnd' | FunctionName=='OpLogOr') + NInArg = 0; + NOutArg = 0; + InArg=[]; + //RhsField = AST_PopASTStack(); + //PrintStringInfo('hello'+RhsField,ReportFileName,'file','y'); + //RhsField = AST_PopASTStack(); + return ; +end // ------------------------------ // --- Read input parameters. --- diff --git a/2.3-1/macros/ASTManagement/GenOutArgNames.sci b/2.3-1/macros/ASTManagement/GenOutArgNames.sci index 0e683835..7b62c794 100644 --- a/2.3-1/macros/ASTManagement/GenOutArgNames.sci +++ b/2.3-1/macros/ASTManagement/GenOutArgNames.sci @@ -32,6 +32,12 @@ SCI2CNInArgCheck(argn(2),9,9); nxtscifunname = SharedInfo.NextSCIFunName; nxtscifunnumber = SharedInfo.NextSCIFunNumber; ReportFileName = FileInfo.Funct(nxtscifunnumber).ReportFileName; + + +global SCI2CSTACK +global StackPosition; +global STACKDEDUG + // #RNU_RES_B PrintStringInfo(' Generating Out Arg names.',ReportFileName,'file','y'); // #RNU_RES_E @@ -43,47 +49,69 @@ OutArg = OldOutArg; // --------------------------------------------------------------------------------------- // At this step only the name of the output arguments can be generated. --- //#RNU_RES_E -if (NLhsArg > 0) - //#RNU_RES_B - // Use the equal Lhs names. - PrintStringInfo('Using Equal Lhs names.',ReportFileName,'file','y'); - //#RNU_RES_E - if (NLhsArg ~= NOutArg) - error(9999, 'NLhsArg='+string(NLhsArg)+' must be equal to NOutArg='+string(NOutArg)+'.'); - end - for counteroutputargs = 1:NOutArg - OutArg(counteroutputargs).Name=LhsArg(counteroutputargs).Name; - OutArg(counteroutputargs).Scope=LhsArg(counteroutputargs).Scope; - end +if (FunctionName ~= 'OpLogGt' & FunctionName ~= 'OpLogLt' & FunctionName ~= 'OpLogGe' & FunctionName ~= 'OpLogLe' & FunctionName ~= 'OpLogNe' & FunctionName ~= 'OpLogEq') + if (NLhsArg > 0) + //#RNU_RES_B + // Use the equal Lhs names. + PrintStringInfo('Using Equal Lhs names.',ReportFileName,'file','y'); + //#RNU_RES_E + if (NLhsArg ~= NOutArg) + error(9999, 'NLhsArg='+string(NLhsArg)+' must be equal to NOutArg='+string(NOutArg)+'.'); + end + for counteroutputargs = 1:NOutArg + OutArg(counteroutputargs).Name=LhsArg(counteroutputargs).Name; + OutArg(counteroutputargs).Scope=LhsArg(counteroutputargs).Scope; + end + else + //#RNU_RES_B + // Generate temporary variables. + PrintStringInfo('Generating temporary variables.',ReportFileName,'file','y'); + //#RNU_RES_E + if ((sum(mtlb_strcmp(FunctionName,SharedInfo.Annotations.DataPrec)) > 0) & ... + (SharedInfo.SkipNextPrec == 1)) + //#RNU_RES_B + PrintStringInfo(' Skipping code generating because already generated in the previous function.',ReportFileName,'file','y'); + //#RNU_RES_E + for counteroutputargs = 1:NOutArg + OutArg(counteroutputargs).Name = InArg(counteroutputargs).Name; + end + elseif (mtlb_strcmp(FunctionName,'OpEqual')) + // do nothing. + //NUT: verifica questa parte di codice. e' sicuro che se ho equal gli oldoutarg contengono gia' il nome? + else + for counteroutputargs = 1:NOutArg + if ((SharedInfo.ASTReader.EnableTempVarsReuse == 1) & ... + (length(SharedInfo.ASTReader.ReusableTempVars) > 0)) + TmpOutArgName = strcat([SharedInfo.ASTReader.TempVarsName,string(SharedInfo.ASTReader.ReusableTempVars(1))]); + SharedInfo.ASTReader.ReusableTempVars = SharedInfo.ASTReader.ReusableTempVars(2:$); + else + SharedInfo.ASTReader.UsedTempVars = SharedInfo.ASTReader.UsedTempVars + 1; + TmpOutArgName = strcat([SharedInfo.ASTReader.TempVarsName,string(SharedInfo.ASTReader.UsedTempVars)]); + end + OutArg(counteroutputargs).Name=TmpOutArgName; + end + end + end else - //#RNU_RES_B - // Generate temporary variables. - PrintStringInfo('Generating temporary variables.',ReportFileName,'file','y'); - //#RNU_RES_E - if ((sum(mtlb_strcmp(FunctionName,SharedInfo.Annotations.DataPrec)) > 0) & ... - (SharedInfo.SkipNextPrec == 1)) - //#RNU_RES_B - PrintStringInfo(' Skipping code generating because already generated in the previous function.',ReportFileName,'file','y'); - //#RNU_RES_E - for counteroutputargs = 1:NOutArg - OutArg(counteroutputargs).Name = InArg(counteroutputargs).Name; - end - elseif (mtlb_strcmp(FunctionName,'OpEqual')) - // do nothing. - //NUT: verifica questa parte di codice. e' sicuro che se ho equal gli oldoutarg contengono gia' il nome? - else - for counteroutputargs = 1:NOutArg - if ((SharedInfo.ASTReader.EnableTempVarsReuse == 1) & ... - (length(SharedInfo.ASTReader.ReusableTempVars) > 0)) - TmpOutArgName = strcat([SharedInfo.ASTReader.TempVarsName,string(SharedInfo.ASTReader.ReusableTempVars(1))]); - SharedInfo.ASTReader.ReusableTempVars = SharedInfo.ASTReader.ReusableTempVars(2:$); - else - SharedInfo.ASTReader.UsedTempVars = SharedInfo.ASTReader.UsedTempVars + 1; - TmpOutArgName = strcat([SharedInfo.ASTReader.TempVarsName,string(SharedInfo.ASTReader.UsedTempVars)]); - end - OutArg(counteroutputargs).Name=TmpOutArgName; - end - end + for counterinputargs = 1:NInArg + tmppushstack=InArg(counterinputargs).Name; + PrintStringInfo(' Pushing in the AST stack: ""'+tmppushstack+'"".',ReportFileName,'file','y'); + AST_PushASTStack(tmppushstack); + if FunctionName=='OpLogGt' + AST_PushASTStack('>'); + elseif FunctionName=='OpLogGe' + AST_PushASTStack('>='); + elseif FunctionName=='OpLogLt' + AST_PushASTStack('<'); + elseif FunctionName=='OpLogLe' + AST_PushASTStack('<='); + elseif FunctionName=='OpLogEq' + AST_PushASTStack('=='); + elseif FunctionName=='OpLogNe' + AST_PushASTStack('!='); + end + end + s = AST_PopASTStack(); + PrintStringInfo(' Pushing in the AST stack: ""'+s+'"".',ReportFileName,'file','y'); end - endfunction diff --git a/2.3-1/macros/ASTManagement/_funcall_string.sci b/2.3-1/macros/ASTManagement/_funcall_string.sci index faeb81d9..0ee97016 100644 --- a/2.3-1/macros/ASTManagement/_funcall_string.sci +++ b/2.3-1/macros/ASTManagement/_funcall_string.sci @@ -6,10 +6,19 @@ function txt=%funcall_string(F) // name : string, the name of the function // lhsnb: number, the number of function lhs +if F.name <> 'disp' txt=['Funcall : '+F.name ' #lhs : '+string(F.lhsnb) ' Rhs : ' ' '+objectlist2string(F.rhs) 'EndFuncall' ] +else +txt=['Funcall : '+F.name + ' #lhs : '+'0' + ' Rhs : ' + ' '+objectlist2string(F.rhs) + 'EndFuncall' + ] +end endfunction diff --git a/2.3-1/macros/ASTManagement/_operatio_string.sci b/2.3-1/macros/ASTManagement/_operatio_string.sci index 8421a3f4..e9332337 100644 --- a/2.3-1/macros/ASTManagement/_operatio_string.sci +++ b/2.3-1/macros/ASTManagement/_operatio_string.sci @@ -10,4 +10,4 @@ function txt=%operatio_string(O) ' Operator: '+O.operator 'EndOperation' ] -endfunction
\ No newline at end of file +endfunction diff --git a/2.3-1/macros/ASTManagement/_operation_string.sci b/2.3-1/macros/ASTManagement/_operation_string.sci index 84f5ce3c..c9282f67 100644 --- a/2.3-1/macros/ASTManagement/_operation_string.sci +++ b/2.3-1/macros/ASTManagement/_operation_string.sci @@ -10,4 +10,4 @@ function txt=%operation_string(O) ' Operator: '+O.operator 'EndOperation' ] -endfunction
\ No newline at end of file +endfunction diff --git a/2.3-1/macros/ASTManagement/lib b/2.3-1/macros/ASTManagement/lib Binary files differindex 908366b7..4e309a25 100644 --- a/2.3-1/macros/ASTManagement/lib +++ b/2.3-1/macros/ASTManagement/lib diff --git a/2.3-1/macros/ASTManagement/names b/2.3-1/macros/ASTManagement/names index a1aafbc1..6deb883d 100644 --- a/2.3-1/macros/ASTManagement/names +++ b/2.3-1/macros/ASTManagement/names @@ -21,6 +21,7 @@ AST_ExtractNameAndScope AST_GetASTFile AST_GetFuncallPrm AST_GetPrecAndLhsArg +AST_HandleCC AST_HandleEOL AST_HandleEndFor AST_HandleEndGenFun @@ -28,8 +29,11 @@ AST_HandleEndProgram AST_HandleEndWhile AST_HandleFor AST_HandleForStatem +AST_HandleFunCC +AST_HandleFunRC AST_HandleHeader AST_HandleIfElse +AST_HandleRC AST_HandleWhileExpr AST_HandleWhileStatem AST_ParseEqualStruct diff --git a/2.3-1/macros/CCodeGeneration/C_GenDeclarations_Dup.sci b/2.3-1/macros/CCodeGeneration/C_GenDeclarations_Dup.sci new file mode 100644 index 00000000..475e2e0c --- /dev/null +++ b/2.3-1/macros/CCodeGeneration/C_GenDeclarations_Dup.sci @@ -0,0 +1,187 @@ +function Cdeclaration = C_GenDeclarations_Dup(InArg,NInArg,com_type,ArgStruct,CDeclarationFileName,IndentLevel,ReportFileName,FlagExt,ResizeApproach) +// function Cdeclaration = C_GenDeclarations(ArgStruct,CDeclarationFileName,IndentLevel,ReportFileName,FlagExt,ResizeApproach) +// ----------------------------------------------------------------- +// //NUT: add description here +// +// Input data: +// //NUT: add description here +// +// Output data: +// //NUT: add description here +// +// Status: +// 27-Oct-2007 -- Raffaele Nutricato: Author. +// 10-Jun-2008 -- Raffaele Nutricato: adapted to work with realloc function. +// +// Copyright 2007 Raffaele Nutricato. +// Contact: raffaele.nutricato@tiscali.it +// ----------------------------------------------------------------- + +// Generate C corresponding declaration given some information in ArgStruct +// + +// ------------------------------ +// --- Check input arguments. --- +// ------------------------------ +SCI2CNInArgCheck(argn(2),9,9); +// #RNU_RES_B +//NUT: ilnome di questa funzione va cambiato perche' le dichiarazioni le fanno anche i for e i while. + +PrintStringInfo(' ',ReportFileName,'file','y'); +PrintStringInfo('***Generating C declaration***',ReportFileName,'file','y'); +// #RNU_RES_E + +Cdeclaration = ''; +if (ArgStruct.Dimension > 0) + if (FlagExt == 1) + Cdeclaration(1) = 'extern '; + Cdeclaration(2) = 'extern '; + else + Cdeclaration(1) = ''; + Cdeclaration(2) = ''; + end +// #RNU_RES_B +//NUT: vedi Mem_Alloc_Out per maggiori info sulla rimozione della temp nella if +// if ((ArgStruct.Scope=='Temp') | (ArgStruct.FindLike == -1) | (isnum(ArgStruct.Size(1))==%F) | (isnum(ArgStruct.Size(2))==%F)) +// #RNU_RES_E + if (ArgStruct.Type=='g') +// if (isnan(ArgStruct.Value) ) + if ((isnum(ArgStruct.Size(1))==%F) | (isnum(ArgStruct.Size(2))==%F) ) + Cdeclaration(1) = Cdeclaration(1)+C_Type(ArgStruct.Type)+... + ' * '+ArgStruct.Name+';'; + else + if ((FlagExt == 1) | (isnan(ArgStruct.Value))) + Cdeclaration(1) = Cdeclaration(1)+C_Type(ArgStruct.Type)+... + ' '+ArgStruct.Name+'['+ArgStruct.Size(1)+'*'+ArgStruct.Size(2)+'];'; + else + Cdeclaration(1) = Cdeclaration(1)+C_Type(ArgStruct.Type)+... + ' '+ArgStruct.Name+'['+ArgStruct.Size(1)+'*'+ArgStruct.Size(2)+'] = {'+ArgStruct.Value+'};'; + end + end + Cdeclaration(2) = Cdeclaration(2)+C_Type('i')+' __'+ArgStruct.Name+'Size[2] = {'+ArgStruct.Size(1)+','+ArgStruct.Size(2)+'};'; + elseif ((ArgStruct.FindLike == -1) | ... + (isnum(ArgStruct.Size(1))==%F) | (isnum(ArgStruct.Size(2))==%F) | ... + (ResizeApproach=='REALLOC_ALL_RESIZE_ALL' & ArgStruct.Type~='g')) +// #RNU_RES_B +//RNU sulle stringhe non ho ancora deciso se applicare la realloc. +// Generate only the pointer that will be used by the malloc function. +// #RNU_RES_E + if (FlagExt == 1) + Cdeclaration(1) = Cdeclaration(1)+C_Type(ArgStruct.Type)+'* '+... + ArgStruct.Name+';'; + else + Cdeclaration(1) = Cdeclaration(1)+C_Type(ArgStruct.Type)+'* '+... + ArgStruct.Name+' = NULL;'; + end +// Declare the Size array + Cdeclaration(2) = Cdeclaration(2)+C_Type('i')+' __'+ArgStruct.Name+'Size[2];'; + else +// Declare the array with its size. + computedSize = ArgStruct.Size(1); + computedSizeLength = size(ArgStruct.Size, '*'); + computedSizeField = ArgStruct.Size(1); + for sizeIterator = 2:computedSizeLength; + computedSize = computedSize + ' * ' + ArgStruct.Size(sizeIterator); + computedSizeField = computedSizeField + ', ' + ArgStruct.Size(sizeIterator); + end + Cdeclaration(1) = Cdeclaration(1)+C_Type(ArgStruct.Type)+' '+ArgStruct.Name+'['+computedSize+']={'; + row = eval(ArgStruct.Size(1)) + col = eval(ArgStruct.Size(2)) + if row == 1 + if com_type == 0 + for i = 1:NInArg-1 + Cdeclaration(1) = Cdeclaration(1)+InArg(i).Name+','; + end + Cdeclaration(1) = Cdeclaration(1)+InArg(NInArg).Name+'};'; + else + for i=1:NInArg-1 + if InArg(i).Type <> 'z' & InArg(i).Type <> 'c' + Cdeclaration(1) = Cdeclaration(1)+InArg(i).Name+',0,'; + else + Cdeclaration(1) = Cdeclaration(1)+InArg(i).Name+','; + end + end + if InArg(NInArg).Type <> 'z' & InArg(NInArg).Type <> 'c' + Cdeclaration(1) = Cdeclaration(1) + InArg(NInArg).Name + ',0};' + else + Cdeclaration(1) = Cdeclaration(1) + InArg(NInArg).Name + '};' + end + end + else + if com_type == 0 + for i = 1:col + for j = 0:row-1 + if (j*col)+i ~= row*col + Cdeclaration(1) = Cdeclaration(1) + InArg(((j*col)+i)).Name + ','; + end + end + end + Cdeclaration(1) = Cdeclaration(1) + InArg(NInArg).Name + '};'; + else + for i = 1:col + for j = 0:row-1 + if (j*col)+i ~= row*col + if InArg(((j*col)+i)).Type <> 'z' & InArg(((j*col)+i)).Type <> 'c' + Cdeclaration(1) = Cdeclaration(1) + InArg(((j*col)+i)).Name + ',0,'; + else + Cdeclaration(1) = Cdeclaration(1) + InArg(((j*col)+i)).Name + ','; + end + end + end + end + if InArg(NInArg).Type <> 'z' & InArg(NInArg).Type <> 'c' + Cdeclaration(1) = Cdeclaration(1) + InArg(NInArg).Name + ',0};'; + else + Cdeclaration(1) = Cdeclaration(1) + InArg(NInArg).Name + '};'; + end + end + end + Cdeclaration(2) = Cdeclaration(2)+C_Type('i')+' __'+ArgStruct.Name+'Size['+string(computedSizeLength)+']'; + if (FlagExt <> 1) + Cdeclaration(2) = Cdeclaration(2)+' = {'+computedSizeField+'}'; + end + Cdeclaration(2) = Cdeclaration(2)+';'; + end +else + if (ArgStruct.Type == 'fn') + //do nothing. This is a function name. Will be declared in header file. + else + if (FlagExt == 1) + Cdeclaration(1) = 'extern '; + else + Cdeclaration(1) = ''; + end + Cdeclaration(1) = Cdeclaration(1)+C_Type(ArgStruct.Type)+' '+ArgStruct.Name; + if (~isnan(ArgStruct.Value) & (FlagExt == 0)) + if isreal(ArgStruct.Value) + Cdeclaration(1) = Cdeclaration(1)+' = '+SCI2Cstring(ArgStruct.Value); + else + if (ArgStruct.Type == 'z') + Cdeclaration(1) = Cdeclaration(1)+' = DoubleComplex('+SCI2Cstring(real(ArgStruct.Value))+','+SCI2Cstring(imag(ArgStruct.Value))+')'; + else + Cdeclaration(1) = Cdeclaration(1)+' = FloatComplex('+SCI2Cstring(real(ArgStruct.Value))+','+SCI2Cstring(imag(ArgStruct.Value))+')'; + end + end + end + Cdeclaration(1) = Cdeclaration(1)+';'; + end +end + + +// -------------------------------------------- +// --- Write C declaration into the C file. --- +// -------------------------------------------- +PrintStringInfo(' ',CDeclarationFileName,'file','y'); +for cntdecl = 1:size(Cdeclaration, '*') + PrintStringInfo(' '+Cdeclaration(cntdecl),ReportFileName,'file','y'); + PrintStringInfo(C_IndentBlanks(IndentLevel)+Cdeclaration(cntdecl),CDeclarationFileName,'file','y'); +end + +PrintStringInfo(' Writing C declaration in: '+CDeclarationFileName,ReportFileName,'file','y'); +PrintStringInfo(' ',CDeclarationFileName,'file','y'); + +endfunction +// #RNU_RES_B +//NUT: dove sta il controllo che verifica se dopo aver dichiarato una local A[10] essa viene utilizzata +//NUT: per memorizzare un A = sin(B) dove B[11]?? +// #RNU_RES_E diff --git a/2.3-1/macros/CCodeGeneration/C_GenerateMakefile.sci b/2.3-1/macros/CCodeGeneration/C_GenerateMakefile.sci index 7dfb4da4..3b977bd6 100644 --- a/2.3-1/macros/CCodeGeneration/C_GenerateMakefile.sci +++ b/2.3-1/macros/CCodeGeneration/C_GenerateMakefile.sci @@ -70,7 +70,7 @@ else PrintStringInfo('CXX = arm-linux-gnueabihf-g++ ',FileInfo.MakefileFilename,'file','y','y'); PrintStringInfo('CFLAGS = -Wall -pedantic -g -I $(HSRCDIR) -I $(ISRCDIR) -L $(LIBDIR)',FileInfo.MakefileFilename,'file','y','y'); PrintStringInfo('CXXFLAGS = -Wall -pedantic -g -I $(HSRCDIR) -I $(ISRCDIR) -L $(LIBDIR)',FileInfo.MakefileFilename,'file','y','y'); - PrintStringInfo('LDFLAGS = -llapack -lrefblas -lgfortran -lwiringPi',FileInfo.MakefileFilename,'file','y','y'); + PrintStringInfo('LDFLAGS = -llapack -lrefblas -lgfortran -lwiringPi -lwiringPiDev -lrt -lpthread',FileInfo.MakefileFilename,'file','y','y'); else PrintStringInfo('CC = gcc',FileInfo.MakefileFilename,'file','y','y'); PrintStringInfo('CXX = g++',FileInfo.MakefileFilename,'file','y','y'); @@ -78,6 +78,25 @@ else PrintStringInfo('CXXFLAGS = -Wall -pedantic -g -I $(HSRCDIR) -I $(ISRCDIR) -L $(LIBDIR)',FileInfo.MakefileFilename,'file','y','y'); PrintStringInfo('LDFLAGS = -lblas -llapack -lm ',FileInfo.MakefileFilename,'file','y','y'); end + + //If ode function is used, add libgsl. + if(size(SharedInfo.Includelist) <> 0) + if((mtlb_strcmp(part(SharedInfo.Includelist(1),1:5),'odefn') == %T)) + if(target == 'RPi') + PrintStringInfo('LDFLAGS = -lgsl -lcblas',FileInfo.MakefileFilename,'file','y','y'); + else + PrintStringInfo('LDFLAGS = -lgsl',FileInfo.MakefileFilename,'file','y','y'); + end + + end + end + + if (target == 'RPi') + PrintStringInfo('LDFLAGS += -llapack -lrefblas -lgfortran -lwiringPi',FileInfo.MakefileFilename,'file','y','y'); + else + PrintStringInfo('LDFLAGS += -lblas -llapack -lm ',FileInfo.MakefileFilename,'file','y','y'); + end + if(SharedInfo.OpenCVUsed == %T) PrintStringInfo('LDFLAGS += -lopencv_calib3d -lopencv_contrib -lopencv_features2d -lopencv_flann -lopencv_gpu',FileInfo.MakefileFilename,'file','y','y'); PrintStringInfo('LDFLAGS += -lopencv_highgui -lopencv_imgproc -lopencv_legacy -lopencv_ml -lopencv_nonfree',FileInfo.MakefileFilename,'file','y','y'); diff --git a/2.3-1/macros/CCodeGeneration/C_GenerateMkfle_arduino.sci b/2.3-1/macros/CCodeGeneration/C_GenerateMkfle_arduino.sci new file mode 100644 index 00000000..b43eb442 --- /dev/null +++ b/2.3-1/macros/CCodeGeneration/C_GenerateMkfle_arduino.sci @@ -0,0 +1,12 @@ +function C_GenerateMkfle_arduino(FileInfo,SharedInfo) + + PrintStringInfo('ARDUINO_DIR = /usr/share/arduino',FileInfo.MakefileFilename,'file','y','y'); + PrintStringInfo('ARDMK_DIR = /usr/share/arduino',FileInfo.MakefileFilename,'file','y','y'); + PrintStringInfo('AVR_TOOLS_DIR = /usr',FileInfo.MakefileFilename,'file','y','y'); + PrintStringInfo('BOARD_TAG = ' + SharedInfo.Board_name ,FileInfo.MakefileFilename,'file','y','y'); + PrintStringInfo('USER_LIB_PATH = ../',FileInfo.MakefileFilename,'file','y','y'); + PrintStringInfo('ARDUINO_LIBS = ../src/c ../includes ../interfaces ../ Wire',FileInfo.MakefileFilename,'file','y','y'); + PrintStringInfo('ARDUINO_PORT = /dev/ttyACM0',FileInfo.MakefileFilename,'file','y','y'); + PrintStringInfo('include /usr/share/arduino/Arduino.mk',FileInfo.MakefileFilename,'file','y','y'); + +endfunction diff --git a/2.3-1/macros/CCodeGeneration/C_IfExpression.sci b/2.3-1/macros/CCodeGeneration/C_IfExpression.sci index 48a05383..359b7882 100644 --- a/2.3-1/macros/CCodeGeneration/C_IfExpression.sci +++ b/2.3-1/macros/CCodeGeneration/C_IfExpression.sci @@ -1,4 +1,4 @@ -function SharedInfo = C_IfExpression(IfCondArg,NIfCondArg,ASTIfExpType,FileInfo,SharedInfo) +function SharedInfo = C_IfExpression(IfCondArg,NIfCondArg,Op,NOp,ASTIfExpType,FileInfo,SharedInfo) // function SharedInfo = C_IfExpression(IfCondArg,NIfCondArg,ASTIfExpType,FileInfo,SharedInfo) // ----------------------------------------------------------------- // //NUT: add description here @@ -19,12 +19,16 @@ function SharedInfo = C_IfExpression(IfCondArg,NIfCondArg,ASTIfExpType,FileInfo, // ------------------------------ // --- Check input arguments. --- // ------------------------------ -SCI2CNInArgCheck(argn(2),5,5); +SCI2CNInArgCheck(argn(2),7,7); + +//global SCI2CSTACK +//global StackPosition; +//global STACKDEDUG // --- Check NIfCondArg value. --- -if ((NIfCondArg ~= 1) & (ASTIfExpType~='else')) - error(9999, 'Cannot manage ""if/elseif"" with a number of condition variables not equal to 1.'); -end +//if ((NIfCondArg ~= 1) & (ASTIfExpType~='else')) + // error(9999, 'Cannot manage ""if/elseif"" with a number of condition variables not equal to 1.'); +//end // ----------------------- // --- Initialization. --- @@ -37,7 +41,7 @@ CPass1FileName = FileInfo.Funct(nxtscifunnumber).CPass1FileName; // #RNU_RES_B PrintStringInfo(' ',ReportFileName,'file','y'); -PrintStringInfo('***Generating C code***',ReportFileName,'file','y'); +PrintStringInfo('***Generating C code***'+ string(NIfCondArg),ReportFileName,'file','y'); // #RNU_RES_E // --------------------------- // --- End Initialization. --- @@ -66,10 +70,23 @@ if SCI2Cstrncmps1size(ASTIfExpType,'else') SharedInfo = C_IfElseBlocks(FileInfo,SharedInfo,'out'); end +i=1; +k=1; CCall =''; CCall = CCall+CFunName; if (ASTIfExpType~='else') - CCall = CCall+'('+IfCondArg(1)+')'; + CCall = CCall+'('; + while i <= NIfCondArg + CCall = CCall + IfCondArg(i) + ' '; + //d = modulo(i,3); + //PrintStringInfo(' '+string(i)+string(d),'file','y'); + if (modulo(i,3)==0 & i<>NIfCondArg) + CCall = CCall + Op(k) + ' '; + k = k + 1; + end + i = i + 1; + end + CCall = CCall+')'; end PrintStringInfo(' '+CCall,ReportFileName,'file','y'); PrintStringInfo(C_IndentBlanks(SharedInfo.NIndent)+CCall,CPass1FileName,'file','y'); diff --git a/2.3-1/macros/CCodeGeneration/C_WhileExpression.sci b/2.3-1/macros/CCodeGeneration/C_WhileExpression.sci index edd2830e..368ccffa 100644 --- a/2.3-1/macros/CCodeGeneration/C_WhileExpression.sci +++ b/2.3-1/macros/CCodeGeneration/C_WhileExpression.sci @@ -1,4 +1,4 @@ -function SharedInfo = C_WhileExpression(FileInfo,SharedInfo) +function SharedInfo = C_WhileExpression(IfCondArg,NIfCondArg,Op,NOp,FileInfo,SharedInfo) // function SharedInfo = C_WhileExpression(FileInfo,SharedInfo) // ----------------------------------------------------------------- // //NUT: add description here @@ -19,7 +19,7 @@ function SharedInfo = C_WhileExpression(FileInfo,SharedInfo) // ------------------------------ // --- Check input arguments. --- // ------------------------------ -SCI2CNInArgCheck(argn(2),2,2); +SCI2CNInArgCheck(argn(2),6,6); // ----------------------- // --- Initialization. --- @@ -63,7 +63,7 @@ for cntstr = 1:NumCStrings // Epilogue if (length(C_Strings(cntstr)) == 0) C_Strings(cntstr) = ' '; // RNU for Bruno: If I don't do that I get a PrintStringInfo error related to mputstr. - // Function not defined for given argument type(s),
+ // Function not defined for given argument type(s), // check arguments or define function %0_mputstr for overloading. end PrintStringInfo(C_Strings(cntstr),CPass1WhileEpilFileName ,'file','y','n'); @@ -76,7 +76,27 @@ PrintStringInfo('}',CPass1WhileEpilFileName ,'file','y'); // ------------------------------ // --- Insert for expression. --- // ------------------------------ -CCall = 'while('+SharedInfo.WhileExpr.CondVar+')'; +//CCall = 'while('+SharedInfo.WhileExpr.CondVar+')'; +//PrintStringInfo(C_IndentBlanks(SharedInfo.NIndent)+CCall,CPass1FileName,'file','y'); + +i=1; +k=1; +CCall =''; +CCall = CCall+'while'; + CCall = CCall+'('; + while i <= NIfCondArg + CCall = CCall + IfCondArg(i) + ' '; + //d = modulo(i,3); + //PrintStringInfo(' '+string(i)+string(d),'file','y'); + if (modulo(i,3)==0 & i<>NIfCondArg) + CCall = CCall + Op(k) + ' '; + k = k + 1; + end + i = i + 1; + end + CCall = CCall+')'; + +PrintStringInfo(' '+CCall,ReportFileName,'file','y'); PrintStringInfo(C_IndentBlanks(SharedInfo.NIndent)+CCall,CPass1FileName,'file','y'); // ------------------- diff --git a/2.3-1/macros/CCodeGeneration/GetClsFileName.sci b/2.3-1/macros/CCodeGeneration/GetClsFileName.sci index 46f08201..d92a431c 100644 --- a/2.3-1/macros/CCodeGeneration/GetClsFileName.sci +++ b/2.3-1/macros/CCodeGeneration/GetClsFileName.sci @@ -45,6 +45,7 @@ if SCI2Cfileexist(FileInfo.USER2CLibCAnnFun,tmpannfilename) // #RNU_RES_B // It is a C function of the USER2C library. // #RNU_RES_E + PrintStringInfo('cUser2c',ReportFileName,'file','y'); FlagFoundAnnFile = 1; AnnFileName = fullfile(FileInfo.USER2CLibCAnnFun,tmpannfilename); SCI2CClassName = FL_GetFunctionClass(AnnFileName,SCI2CClassSpecifier,ReportFileName); @@ -53,6 +54,7 @@ elseif SCI2Cfileexist(FileInfo.USER2CLibSCIAnnFun,tmpannfilename) // #RNU_RES_B // It is a scilab function of the USER2C library. // #RNU_RES_E + PrintStringInfo('fUser2c',ReportFileName,'file','y'); FlagFoundAnnFile = 1; AnnFileName = fullfile(FileInfo.USER2CLibSCIAnnFun,tmpannfilename); SCI2CClassName = FL_GetFunctionClass(AnnFileName,SCI2CClassSpecifier,ReportFileName); @@ -61,6 +63,7 @@ elseif (SCI2Cfileexist(FileInfo.SCI2CLibCAnnFun,tmpannfilename)) // #RNU_RES_B // It is a C function of the SCI2C library. // #RNU_RES_E + PrintStringInfo('csci2c',ReportFileName,'file','y'); FlagFoundAnnFile = 1; AnnFileName = fullfile(FileInfo.SCI2CLibCAnnFun,tmpannfilename); SCI2CClassName = FL_GetFunctionClass(AnnFileName,SCI2CClassSpecifier,ReportFileName); @@ -69,6 +72,7 @@ elseif (SCI2Cfileexist(FileInfo.SCI2CLibSCIAnnFun,tmpannfilename)) // #RNU_RES_B // It is a scilab function of the SCI2C library. // #RNU_RES_E + PrintStringInfo('fsci2c',ReportFileName,'file','y'); FlagFoundAnnFile = 1; AnnFileName = fullfile(FileInfo.SCI2CLibSCIAnnFun,tmpannfilename); SCI2CClassName = FL_GetFunctionClass(AnnFileName,SCI2CClassSpecifier,ReportFileName); diff --git a/2.3-1/macros/CCodeGeneration/JoinDeclarAndCcode.sci b/2.3-1/macros/CCodeGeneration/JoinDeclarAndCcode.sci index 2c69f46e..35607f6d 100644 --- a/2.3-1/macros/CCodeGeneration/JoinDeclarAndCcode.sci +++ b/2.3-1/macros/CCodeGeneration/JoinDeclarAndCcode.sci @@ -146,10 +146,10 @@ PrintStringInfo('** --- C code. ---',CPass2FileName,'file','y'); PrintStringInfo('** ---------------',CPass2FileName,'file','y'); PrintStringInfo('*/',CPass2FileName,'file','y'); -if((SharedInfo.Target == "RPi") & (nxtscifunname == SharedInfo.SCIMainFunName)) +//if((SharedInfo.Target == "RPi") & (nxtscifunname == SharedInfo.SCIMainFunName)) //Add wiringPiSetup() function as it is required - PrintStringInfo('wiringPiSetup();',CPass2FileName,'file','y'); -end +// PrintStringInfo('wiringPiSetup();',CPass2FileName,'file','y'); +//end // --- Copy the remaining part of V1 in V2. --- while (~meof(CPass1V1FileFid)) // #RNU_RES_B diff --git a/2.3-1/macros/CCodeGeneration/lib b/2.3-1/macros/CCodeGeneration/lib Binary files differindex 0149d795..96294d09 100644 --- a/2.3-1/macros/CCodeGeneration/lib +++ b/2.3-1/macros/CCodeGeneration/lib diff --git a/2.3-1/macros/CCodeGeneration/names b/2.3-1/macros/CCodeGeneration/names index efbb400a..56caa81d 100644 --- a/2.3-1/macros/CCodeGeneration/names +++ b/2.3-1/macros/CCodeGeneration/names @@ -2,10 +2,12 @@ C_FinalizeCode C_ForExpression C_Funcall C_GenDeclarations +C_GenDeclarations_Dup C_GenerateFunName C_GenerateLaunchScript C_GenerateMakefile C_GenerateMakefile_msvc +C_GenerateMkfle_arduino C_GenerateSCI2CHeader C_IfElseBlocks C_IfExpression diff --git a/2.3-1/macros/ErrorMessages/lib b/2.3-1/macros/ErrorMessages/lib Binary files differindex 7f410a34..2b3ee2f3 100644 --- a/2.3-1/macros/ErrorMessages/lib +++ b/2.3-1/macros/ErrorMessages/lib diff --git a/2.3-1/macros/FunctionAnnotation/FA_GetFunAnn.sci b/2.3-1/macros/FunctionAnnotation/FA_GetFunAnn.sci index d11e3cee..3fadd1f2 100644 --- a/2.3-1/macros/FunctionAnnotation/FA_GetFunAnn.sci +++ b/2.3-1/macros/FunctionAnnotation/FA_GetFunAnn.sci @@ -52,7 +52,7 @@ FunSizeAnnot = ''; // ---------------------------------------------
// --- Open the .sci file (read only). ---
inclsfid = SCI2COpenFileRead(SCI2CClassFileName);
-
+PrintStringInfo(' '+string(inclsfid),ReportFileName,'file','y');
// #RNU_RES_B
// --- Loop over the lines of the input file. ---
// Position file pointer to the desired NInArg/NOutArg section,
@@ -212,5 +212,6 @@ mclose(inclsfid); // -------------------------------------------------
// --- End Read the annotations of the function. ---
// -------------------------------------------------
+PrintStringInfo(' end of annotation '+string(NOutArg_mod),ReportFileName,'file','y');
endfunction
diff --git a/2.3-1/macros/FunctionAnnotation/FA_INSZ_RPI.sci b/2.3-1/macros/FunctionAnnotation/FA_INSZ_RPI.sci new file mode 100644 index 00000000..da924ce4 --- /dev/null +++ b/2.3-1/macros/FunctionAnnotation/FA_INSZ_RPI.sci @@ -0,0 +1,5 @@ +function outp=FA_INSZ_RPI(in2val) + in2val=string(in2val); + l=length(in2val); + outp=l; +endfunction diff --git a/2.3-1/macros/FunctionAnnotation/FA_SZ_U_SVA.sci b/2.3-1/macros/FunctionAnnotation/FA_SZ_U_SVA.sci new file mode 100644 index 00000000..3b8b25c5 --- /dev/null +++ b/2.3-1/macros/FunctionAnnotation/FA_SZ_U_SVA.sci @@ -0,0 +1,39 @@ +function opout = FA_SZ_U_SVA(in1,in2) + +// function opout = FA_SZ_U_SVA(in1,in2) +// ----------------------------------------------------------------- +// Determines the number of rows of the output arguments +// according to the second input argument. +// +// Input data: +// in1: specifying a matrix or a symbol. +// in2: string specifying a number or a symbol. +// +// Output data: +// opout: string containing the computed size of U matrix. +// +// Copyright (C) 2017 - IIT Bombay - FOSSEE +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt +// Author: Sandeep Gupta +// Organization: FOSSEE, IIT Bombay +// Email: toolbox@scilab.in +// +// ----------------------------------------------------------------- + +//in1 = string(in1); +// disp(in1) +// disp(in2) +//in1 = eval(in1); +//in2 = string(in2); +//in2 = eval(in2); +//[U,S,V] = sva(in1,in2); +//outsize = size(U) +//opout = outsize(2) +opout = string(in2) + +endfunction diff --git a/2.3-1/macros/FunctionAnnotation/names b/2.3-1/macros/FunctionAnnotation/names index 097ba5cc..423c825a 100644 --- a/2.3-1/macros/FunctionAnnotation/names +++ b/2.3-1/macros/FunctionAnnotation/names @@ -5,6 +5,7 @@ FA_GetDefaultPrecision FA_GetFunAnn FA_GetOutArgInfo FA_GetResizeApproach +FA_INSZ_RPI FA_INT FA_MAX FA_MIN @@ -60,6 +61,7 @@ FA_SZ_ROW_DIAG FA_SZ_ROW_DIAG_INS_EXT FA_SZ_SEL1 FA_SZ_SEL2 +FA_SZ_U_SVA FA_TP_ASCII FA_TP_C FA_TP_COMPLEX diff --git a/2.3-1/macros/FunctionList/lib b/2.3-1/macros/FunctionList/lib Binary files differindex 666462e9..32c92be8 100644 --- a/2.3-1/macros/FunctionList/lib +++ b/2.3-1/macros/FunctionList/lib diff --git a/2.3-1/macros/GeneralFunctions/SCI2CFindFile.sci b/2.3-1/macros/GeneralFunctions/SCI2CFindFile.sci index 912a72a8..f7271e2e 100644 --- a/2.3-1/macros/GeneralFunctions/SCI2CFindFile.sci +++ b/2.3-1/macros/GeneralFunctions/SCI2CFindFile.sci @@ -20,7 +20,6 @@ function [FlagFound,SCIFileName] = SCI2CFindFile(PathList,FileName) // --- Check input arguments. ---
// ------------------------------
SCI2CNInArgCheck(argn(2),2,2);
-
FlagFound = 0;
SCIFileName = '';
diff --git a/2.3-1/macros/GeneralFunctions/lib b/2.3-1/macros/GeneralFunctions/lib Binary files differindex e6de7181..a3af87e6 100644 --- a/2.3-1/macros/GeneralFunctions/lib +++ b/2.3-1/macros/GeneralFunctions/lib diff --git a/2.3-1/macros/Hardware/AVR/AVRADCSetup.sci b/2.3-1/macros/Hardware/AVR/AVRADCSetup.sci index 264062bc..603873b3 100644 --- a/2.3-1/macros/Hardware/AVR/AVRADCSetup.sci +++ b/2.3-1/macros/Hardware/AVR/AVRADCSetup.sci @@ -17,26 +17,28 @@ function AVRADCSetup(prescaler,adc_ref) // Parameters // prescaler: prescaler to be used for generating ADC clock (0-7) // adc_ref : reference voltage to be used for ADC conversion -// 0 -> Voltage on VREF pin -// 1 -> Voltage on AVCC pin -// 2 -> Internal 2.56 reference voltage // // Description -// This function initialises ADc of AVR with given parameters. 'prescaler' is -// needed for deciding ADC clock. ADC clock should be between 50KHz and 200KHz -// and it given as (MCU clock/2^prescaler). Select appropriate prescaler depending -// on MCU clock. 'adc_ref' selects one of the available reference voltage sources -// available +// This function initialises ADc of AVR with given parameters. 'prescaler' is needed for deciding ADC clock. ADC clock should be between 50KHz and 200KHz and it given as (MCU clock/2^prescaler). Select appropriate prescaler depending on MCU clock. 'adc_ref' selects one of the available reference voltage sources available. +// +// The adc_ref can take the following values- +// <itemizedlist> +// <listitem><para>0 -> Voltage on VREF pin</para></listitem> +// <listitem><para>1 -> Voltage on AVCC pin</para></listitem> +// <listitem><para>2 -> Internal 2.56 reference voltage</para></listitem> +// </itemizedlist> +// +// This is curretly dummy function. It provides no functionality but is required for providing support for generating C code for AVR. +// // Examples // AVRADCSetup(128,0) // See also // AVRReadADC // // Authors -// Siddhesh Wani Ashish Kamble +// Siddhesh Wani +// Ashish Kamble // -// This is curretly dummy function. It provides no functionality but is required -// for providing support for generating C code for AVR. if(prescaler>=8) disp("Error : Invalid input argument ''prescaler'' in AVRADCSetup function."); diff --git a/2.3-1/macros/Hardware/AVR/AVRDigitalIn.sci b/2.3-1/macros/Hardware/AVR/AVRDigitalIn.sci index 54eb327b..7addd663 100644 --- a/2.3-1/macros/Hardware/AVR/AVRDigitalIn.sci +++ b/2.3-1/macros/Hardware/AVR/AVRDigitalIn.sci @@ -18,8 +18,6 @@ function state = AVRDigitalIn(port,pin) // Parameters // port : port of microcontroller to be used // pin : pin of port (mentioned above) to be used -// Returns -// state : state of an input pin (HIGH\LOW) // // Description // Each AVR microcontroller has pins which can be configured as digital @@ -27,18 +25,18 @@ function state = AVRDigitalIn(port,pin) // User has to select one of these port and which pin of that port as // digital input. // +// This is curretly dummy function. It provides no functionality but is required +// for providing support for generating C code for AVR. +// // Examples // pinA0 = AVRDigitalIn(1,0) //To read state on pin 0 of port A -// // See also // AVRDigitalOut AVRDigitalSetup // -// // Authors -// Siddhesh Wani Ashish Kamble +// Siddhesh Wani +// Ashish Kamble // -// This is curretly dummy function. It provides no functionality but is required -// for providing support for generating C code for AVR. if((port==0)|(port>=5)) then disp("Error : Inavalid input argument ''port'' in AVRDigitalIn function."); diff --git a/2.3-1/macros/Hardware/AVR/AVRDigitalOut.sci b/2.3-1/macros/Hardware/AVR/AVRDigitalOut.sci index a86a5aa9..0efc927b 100644 --- a/2.3-1/macros/Hardware/AVR/AVRDigitalOut.sci +++ b/2.3-1/macros/Hardware/AVR/AVRDigitalOut.sci @@ -26,18 +26,18 @@ function AVRDigitalOut(port,pin,state) // digital output. Also, desired output state must be specified as // 'HIGH' or 'LOW'. // +// This is curretly dummy function. It provides no functionality but is required +// for providing support for generating C code for AVR. +// // Examples // AVRDigitalOut('A',0,HIGH) -// // See also // AVRDigitalIn // -// // Authors -// Siddhesh Wani Ashish Kamble +// Siddhesh Wani +// Ashish Kamble // -// This is curretly dummy function. It provides no functionality but is required -// for providing support for generating C code for AVR. if((port==0)|(port>=8)) then disp("Error : Inavalid input argument ''port'' in AVRDigitalOut function."); diff --git a/2.3-1/macros/Hardware/AVR/AVRDigitalPortSetup.sci b/2.3-1/macros/Hardware/AVR/AVRDigitalPortSetup.sci index 5f0b9671..65e8494a 100644 --- a/2.3-1/macros/Hardware/AVR/AVRDigitalPortSetup.sci +++ b/2.3-1/macros/Hardware/AVR/AVRDigitalPortSetup.sci @@ -15,7 +15,7 @@ function AVRDigitalPortSetup(port,direction) // AVRDigitalPortSetup(port,direction) // // Parameters -// port : port of microcontroller to be used(1 for PORTA, 2 for PORTB,...) +// port : port of microcontroller to be used(1 for PORTA, 2 for PORTB,...) // direction : direction to be set for pin (0 for INPUT, 1 for OUTPUT) // // Description @@ -25,18 +25,19 @@ function AVRDigitalPortSetup(port,direction) // used as digital output/input. Also, desired direction must be specified as // 'INPUT' or 'OUTPUT'. // +// This is curretly dummy function. It provides no functionality but is required +// for providing support for generating C code for AVR. +// // Examples // AVRDigitalPortSetup(1,0); //This function will make PortA as input port // // See also // AVRDigitalIn AVRDigitalOut // -// // Authors -// Siddhesh Wani Ashish Kamble +// Siddhesh Wani +// Ashish Kamble // -// This is curretly dummy function. It provides no functionality but is required -// for providing support for generating C code for AVR. if((port==0)|(port>=5)) then disp("Error : Invalid input argument ''port'' in AVRDigitalPortSetup function."); diff --git a/2.3-1/macros/Hardware/AVR/AVRDigitalSetup.sci b/2.3-1/macros/Hardware/AVR/AVRDigitalSetup.sci index e707d4fa..ed6cf306 100644 --- a/2.3-1/macros/Hardware/AVR/AVRDigitalSetup.sci +++ b/2.3-1/macros/Hardware/AVR/AVRDigitalSetup.sci @@ -15,8 +15,8 @@ function AVRDigitalSetup(port,pin,direction) // AVRDigitalSetup(port,pin,direction) // // Parameters -// port : port of microcontroller to be used -// pin : pin of port (mentioned above) to be used +// port : port of microcontroller to be used +// pin : pin of port (mentioned above) to be used // direction : direction to be set for pin (INPUT\OUTPUT) // // Description @@ -26,18 +26,19 @@ function AVRDigitalSetup(port,pin,direction) // used as digital output/input. Also, desired direction must be specified as // 'INPUT' or 'OUTPUT'. // +// This is curretly dummy function. It provides no functionality but is required +// for providing support for generating C code for AVR. +// // Examples // AVRDigitalSetup('A',0,OUTPUT) // // See also // AVRDigitalIn AVRDigitalOut // -// // Authors -// Siddhesh Wani Ashish Kamble +// Siddhesh Wani +// Ashish Kamble // -// This is curretly dummy function. It provides no functionality but is required -// for providing support for generating C code for AVR. if((port==0)|(port>=5)) then disp("Error : Invalid input argument ''port'' in AVRDigitalSetup function."); diff --git a/2.3-1/macros/Hardware/AVR/AVRGetTimerValue.sci b/2.3-1/macros/Hardware/AVR/AVRGetTimerValue.sci index afb47ac8..05919b38 100644 --- a/2.3-1/macros/Hardware/AVR/AVRGetTimerValue.sci +++ b/2.3-1/macros/Hardware/AVR/AVRGetTimerValue.sci @@ -18,20 +18,26 @@ function count = AVRGetTimerValue(timer) // 2 for timer2 // // Description -// This function returns the count value of a desired timer.By knowing the count value -// certain interrupt action can be taken. +// This function returns the count value of a desired timer.By knowing the count value certain interrupt action can be taken. +// +// Timer can take the following values +// <itemizedlist> +// <listitem><para>0 -> for timer0</para></listitem> +// <listitem><para>1 -> for timer1</para></listitem> +// <listitem><para>2 -> for timer2</para></listitem> +// </itemizedlist> +// +// This is curretly dummy function. It provides no functionality but is required +// for providing support for generating C code for AVR. // // Examples // AVRGetTimerValue(0); //returns present count of the TCNT0 counter -// // See also // AVRTimerSetup // // Authors // Ashish Kamble // -// This is curretly dummy function. It provides no functionality but is required -// for providing support for generating C code for AVR. if(timer>=3) then disp("Error : Invalid input argument ''timer'' in AVRGetTimerValue function."); diff --git a/2.3-1/macros/Hardware/AVR/AVRPWM0SetDuty.sci b/2.3-1/macros/Hardware/AVR/AVRPWM0SetDuty.sci index 604d2f40..c3815d10 100644 --- a/2.3-1/macros/Hardware/AVR/AVRPWM0SetDuty.sci +++ b/2.3-1/macros/Hardware/AVR/AVRPWM0SetDuty.sci @@ -9,15 +9,18 @@ // Email: toolbox@scilab.in function AVRPWM0SetDuty(duty) -//Function to Set Duty cycle of PWM Output generated by Timer0 at OC0 pin. +//Function to Set Duty cycle of PWM Output generated by Timer0 at OC0 pin. +// //Parameters -// duty : It holds an integer value from 0 to 100 which sets the percentage -// of time for which signal is active. +// duty : It holds an integer value from 0 to 100 which sets the percentage of time for which signal is active. +// //Description // Each Micro controller has PWM output pins which can generate varying voltage -// from 0V-5V.In this function by varying the duty cycle, varying voltage can be -// produced. -//Example +// from 0V-5V.In this function by varying the duty cycle, varying voltage can be produced. +// +// This is curretly dummy function. It provides no functionality but is required for providing support for generating C code for AVR. +// +//Examples // AVRPWM0SetDuty(50); //Produces 2.5V at OC0 pin // AVRPWM0SetDuty(0); //Produces 0V at OC0 pin //See also @@ -26,8 +29,6 @@ function AVRPWM0SetDuty(duty) //Authors // Ashish Kamble // -// This is curretly dummy function. It provides no functionality but is required -// for providing support for generating C code for AVR. if(duty>100) then disp("Error : Invalid input argument ''duty'' in AVRPWM0SetDuty function."); diff --git a/2.3-1/macros/Hardware/AVR/AVRPWM0Setup.sci b/2.3-1/macros/Hardware/AVR/AVRPWM0Setup.sci index 39861c86..c391f71e 100644 --- a/2.3-1/macros/Hardware/AVR/AVRPWM0Setup.sci +++ b/2.3-1/macros/Hardware/AVR/AVRPWM0Setup.sci @@ -10,43 +10,48 @@ function AVRPWM0Setup(waveform_mode,output_mode) //Function to Setup OC0 pin for required PWM mode +// +//Parameters +// waveform_mode: integer, from 0 to 2 +// output_mode: integer, from 0 to 1 (or 2) depending on the waveform_mode +// //Description // Every Micro controller has PWM pins which can generate varying voltages // from 0V-5V.This function helps to use OC0 pin to produce required // output waveform by setting the waveform mode and otput mode. // -//Parameters -// waveform_mode: -// 0 for Phase correct PWM Mode -// 1 for Fast PWM Mode -// 2 for CTC Mode -// output_mode: -// For Phase Correct PWM Mode: -// 0 for Clear OC0 on compare match when up-counting. Set OC0 on compare -// match when down-counting. -// 1 for Set OC0 on compare match when up-counting. Clear OC0 on compare -// match when down-counting. -// -// For Fast PWM Mode: -// 0 for non-inverted output i.e Clear OC0 on compare match, set OC0 at BOTTOM. -// 1 for inverted output i.e Set OC0 on compare match, clear OC0 at BOTTOM. -// -// For CTC Mode: -// 0 to Clear OC0 on compare match -// 1 to Set OC0 on compare match -// 2 to toggle OC0 on compare match -// -//Example -// AVRPWM0Setup(2,0); //This function will select CTC waveform mode and will clear OC0 on -// compare match +// waveform_mode can take values- +// <itemizedlist> +// <listitem><para>0 -> for Phase correct PWM Mode</para></listitem> +// <listitem><para>1 -> for Fast PWM Mode</para></listitem> +// <listitem><para>2 -> for CTC Mode</para></listitem> +// </itemizedlist> +// +// output_mode can take values- +// <itemizedlist> +// For Phase correct PWM Mode: +// <listitem><para>0 for Clear OC0 on compare match when up-counting. Set OC0 on compare match when down-counting.</para></listitem> +// <listitem><para>1 for Set OC0 on compare match when up-counting. Clear OC0 on compare match when down-counting.</para></listitem> +// For Fast PWM Mode: +// <listitem><para>0 for non-inverted output i.e Clear OC0 on compare match, set OC0 at BOTTOM.</para></listitem> +// <listitem><para>1 for inverted output i.e Set OC0 on compare match, clear OC0 at BOTTOM.</para></listitem> +// For CTC Mode: +// <listitem><para>0 to Clear OC0 on compare match</para></listitem> +// <listitem><para>1 to Set OC0 on compare match</para></listitem> +// <listitem><para>2 to toggle OC0 on compare match</para></listitem> +// </itemizedlist> +// +// This is curretly dummy function. It provides no functionality but is required +// for providing support for generating C code for AVR. +// +//Examples +// AVRPWM0Setup(2,0); //This function will select CTC waveform mode and will clear OC0 on compare match //See also // AVRPWM0SetDuty // //Authors // Ashish Kamble // -//This is curretly dummy function. It provides no functionality but is required -//for providing support for generating C code for AVR. if(waveform_mode>=3) then disp("Error : Invalid input argument ''waveform_mode'' in AVRPWM0Setup function."); diff --git a/2.3-1/macros/Hardware/AVR/AVRPWM1SetDuty.sci b/2.3-1/macros/Hardware/AVR/AVRPWM1SetDuty.sci index 60dc0a9f..fd6e7baf 100644 --- a/2.3-1/macros/Hardware/AVR/AVRPWM1SetDuty.sci +++ b/2.3-1/macros/Hardware/AVR/AVRPWM1SetDuty.sci @@ -11,34 +11,28 @@ function AVRPWM1SetDuty(output_pin,duty,Top_Value) //Function to Set Duty cycle of PWM Output generated by Timer1 at OC1A or OC1B pin. //Parameters -// ouput_pin: -// 0 for selecting OC1A as output pin -// 1 for selecting OC1B as output pin +// ouput_pin: integer, 0 (for OC1A) or 1 (for OC1B) // -// duty: It holds an integer value from 0 to 100 which sets the percentage -// of time for which signal is active. +// duty: It holds an integer value from 0 to 100 which sets the percentage of time for which signal is active. // -// Top_Value: It holds an integer value from 0 to 65535.This value sets the Top -// value of the counter TCNT1 i.e ICR.(for more info refer datasheet) +// Top_Value: It holds an integer value from 0 to 65535.This value sets the Top value of the counter TCNT1 i.e ICR.(for more info refer datasheet) // //Description // Each Micro controller has PWM output pins which can generate varying voltage // from 0V-5V.This function Sets the duty cycle of output PWM signal.Also this function // decides the Top Vale of TCNT1 and the output pin to output PWM signal. // +// This is curretly dummy function. It provides no functionality but is required +// for providing support for generating C code for AVR. +// //Example -// AVRPWM1SetDuty(0,50,40000); //This function will produce PWM signal of 50% duty -// cycle on OC1A pin and TCNT1 will reset at 40000 instead -// at 65535. -// +// AVRPWM1SetDuty(0,50,40000); //This function will produce PWM signal of 50% duty cycle on OC1A pin and TCNT1 will reset at 40000 instead at 65535. //See also // AVRPWM1Setup // //Authors // Ashish Kamble // -// This is curretly dummy function. It provides no functionality but is required -// for providing support for generating C code for AVR. if(output_pin>=2) then disp("Error : Invalid input argument ''output_pin'' in AVRPWM1SetDuty function."); diff --git a/2.3-1/macros/Hardware/AVR/AVRPWM1Setup.sci b/2.3-1/macros/Hardware/AVR/AVRPWM1Setup.sci index 51aa25b1..fbd96ce3 100644 --- a/2.3-1/macros/Hardware/AVR/AVRPWM1Setup.sci +++ b/2.3-1/macros/Hardware/AVR/AVRPWM1Setup.sci @@ -10,38 +10,40 @@ function AVRPWM1Setup(waveform_mode,output_mode,output_pin) //Function to Setup OC1A or OC1B pin for required PWM mode +// +//Parameters +// waveform_mode: integer, from 0 to 2 +// output_mode: integer, from 0 to 1 (or 2) depending on the waveform_mode +// output_pin: 0 (for OC1A) or 1 for (OC1B) +// //Description // Every Micro controller has PWM pins which can generate varying voltages // from 0V-5V.This function helps to use OC1A or OC1B pin to produces required // output waveform by setting the waveform mode and otput mode. // -//Parameters -// waveform_mode: -// 0 for Phase correct PWM Mode -// 1 for Fast PWM Mode -// 2 for CTC Mode +// waveform_mode can take values- +// <itemizedlist> +// <listitem><para>0 -> for Phase correct PWM Mode</para></listitem> +// <listitem><para>1 -> for Fast PWM Mode</para></listitem> +// <listitem><para>2 -> for CTC Mode</para></listitem> +// </itemizedlist> // -// output_mode: -// For Phase Correct PWM Mode: -// 0 for Clear OC1A or OC1B on compare match when up-counting. Set OC1A or OC1B -// on compare match when down-counting. -// 1 for Set OC1A or OC1B on compare match when up-counting. Clear OC1A or OC1B -// on compare match when down-counting. -// -// For Fast PWM Mode: -// 0 for non-inverted output i.e Clear OC1A or OC1B on compare match, set OC1A -// OC1B at BOTTOM. -// 1 for inverted output i.e Set OC1A or OC1B on compare match, clear OC1A or OC1B -// at BOTTOM. -// -// For CTC Mode: -// 0 to Clear OC1A or OC1B on compare match -// 1 to Set OC1A or OC1B on compare match -// 2 to toggle OC1A or OC1B on compare match +// output_mode can take values- +// <itemizedlist> +// For Phase correct PWM Mode: +// <listitem><para>0 for Clear OC1A or OC1B on compare match when up-counting. Set OC1A or OC1B on compare match when down-counting.</para></listitem> +// <listitem><para>1 for Set OC1A or OC1B on compare match when up-counting. Clear OC1A or OC1B on compare match when down-counting.</para></listitem> +// For Fast PWM Mode: +// <listitem><para>0 for non-inverted output i.e Clear OC1A or OC1B on compare match, set OC1A or OC1B at BOTTOM.</para></listitem> +// <listitem><para>1 for inverted output i.e Set OC1A or OC1B on compare match, clear OC1A or OC1B at BOTTOM.</para></listitem> +// For CTC Mode: +// <listitem><para>0 to Clear OC1A or OC1B on compare match</para></listitem> +// <listitem><para>1 to Set OC1A or OC1B on compare match</para></listitem> +// <listitem><para>2 to toggle OC1A or OC1B on compare match</para></listitem> +// </itemizedlist> // -// output_pin: -// 0 for selecting OC1A as output pin -// 1 for selecting OC1B as output pin +// This is curretly dummy function. It provides no functionality but is required +// for providing support for generating C code for AVR. // //Example // AVRPWM1Setup(2,0,0); //This function will select CTC mode and will clear OC1A or OC1B @@ -53,8 +55,6 @@ function AVRPWM1Setup(waveform_mode,output_mode,output_pin) //Authors // Ashish Kamble // -// This is curretly dummy function. It provides no functionality but is required -// for providing support for generating C code for AVR. if(waveform_mode>=3) then disp("Error : Invalid input argument ''waveform_mode'' in AVRPWM1Setup function."); diff --git a/2.3-1/macros/Hardware/AVR/AVRPWM2SetDuty.sci b/2.3-1/macros/Hardware/AVR/AVRPWM2SetDuty.sci index 929c1a0a..81d1761e 100644 --- a/2.3-1/macros/Hardware/AVR/AVRPWM2SetDuty.sci +++ b/2.3-1/macros/Hardware/AVR/AVRPWM2SetDuty.sci @@ -10,14 +10,17 @@ function AVRPWM2SetDuty(duty) //Function to Set Duty cycle of PWM Output generated by Timer2 at OC2 pin. +// +//Parameters +// duty : It holds an integer value from 0 to 100 which sets the percentage of time for which signal is active. +// //Description // Each Micro controller has PWM output pins which can generate varying voltage // from 0V-5V.In this function by varying the duty cycle, varying voltage can be // produced. // -//Parameters -// duty : It holds an integer value from 0 to 100 which sets the percentage -// of time for which signal is active. +// This is curretly dummy function. It provides no functionality but is required +// for providing support for generating C code for AVR. // //Example // AVRPWM2SetDuty(50); //Produces 2.5V at OC2 pin @@ -29,8 +32,6 @@ function AVRPWM2SetDuty(duty) //Authors // Ashish Kamble // -// This is curretly dummy function. It provides no functionality but is required -// for providing support for generating C code for AVR. if(duty>100) then disp("Error : Invalid input argument ''duty'' in AVRPWM2SetDuty function."); diff --git a/2.3-1/macros/Hardware/AVR/AVRPWM2Setup.sci b/2.3-1/macros/Hardware/AVR/AVRPWM2Setup.sci index d4bc74a6..11d9b019 100644 --- a/2.3-1/macros/Hardware/AVR/AVRPWM2Setup.sci +++ b/2.3-1/macros/Hardware/AVR/AVRPWM2Setup.sci @@ -10,32 +10,40 @@ function AVRPWM2Setup(waveform_mode,output_mode) //Function to Setup OC2 pin for required PWM mode +// +//Parameters +// waveform_mode: integer, from 0 to 2 +// output_mode: integer, from 0 to 1 (or 2) depending on the waveform_mode +// //Description // Every Micro controller has PWM pins which can generate varying voltages // from 0V-5V.This function helps to use OC2 pin to produces required // output waveform by setting the waveform mode and otput mode. // -//Parameters -// waveform_mode: -// 0 for Phase correct PWM Mode -// 1 for Fast PWM Mode -// 2 for CTC Mode -//output_mode: -// For Phase Correct PWM Mode: -// 0 for Clear OC2 on compare match when up-counting. Set OC2 on compare -// match when down-counting. -// 1 for Set OC2 on compare match when up-counting. Clear OC2 on compare -// match when down-counting. -// +// waveform_mode can take values- +// <itemizedlist> +// <listitem><para>0 -> for Phase correct PWM Mode</para></listitem> +// <listitem><para>1 -> for Fast PWM Mode</para></listitem> +// <listitem><para>2 -> for CTC Mode</para></listitem> +// </itemizedlist> +// +// output_mode can take values- +// <itemizedlist> +// For Phase correct PWM Mode: +// <listitem><para>0 for Clear OC2 on compare match when up-counting. Set OC2 on compare match when down-counting.</para></listitem> +// <listitem><para>1 for Set OC2 on compare match when up-counting. Clear OC2 on compare match when down-counting.</para></listitem> // For Fast PWM Mode: -// 0 for non-inverted output i.e Clear OC2 on compare match, set OC2 at BOTTOM. -// 1 for inverted output i.e Set OC2 on compare match, clear OC2 at BOTTOM. -// +// <listitem><para>0 for non-inverted output i.e Clear OC2 on compare match, set OC2 at BOTTOM.</para></listitem> +// <listitem><para>1 for inverted output i.e Set OC2 on compare match, clear OC2 at BOTTOM.</para></listitem> // For CTC Mode: -// 0 to Clear OC2 on compare match -// 1 to Set OC2 on compare match -// 2 to toggle OC2 on compare match -// +// <listitem><para>0 to Clear OC2 on compare match</para></listitem> +// <listitem><para>1 to Set OC2 on compare match</para></listitem> +// <listitem><para>2 to toggle OC2 on compare match</para></listitem> +// </itemizedlist> +// +// This is curretly dummy function. It provides no functionality but is required +// for providing support for generating C code for AVR. +// //Example // AVRPWM2Setup(2,0); //This function will select CTC waveform mode and will clear OC2 on // compare match @@ -45,8 +53,6 @@ function AVRPWM2Setup(waveform_mode,output_mode) //Authors // Ashish Kamble // -//This is curretly dummy function. It provides no functionality but is required -//for providing support for generating C code for AVR. if(waveform_mode>=3) then disp("Error : Invalid input argument ''waveform_mode'' in AVRPWM2Setup function."); diff --git a/2.3-1/macros/Hardware/AVR/AVRReadADC.sci b/2.3-1/macros/Hardware/AVR/AVRReadADC.sci index 7fd3e67e..71cafa7e 100644 --- a/2.3-1/macros/Hardware/AVR/AVRReadADC.sci +++ b/2.3-1/macros/Hardware/AVR/AVRReadADC.sci @@ -15,11 +15,7 @@ function adc_result = AVRReadADC(channel) // u8AVRReadADCs(channel) // // Parameters -// channel : Select which channel is to be read. Values from 0-7 select one -// of the pins ADC0-ADC7. For other possible channel values refer -// datasheet -// Returns-> -// result : Digital value for the voltage present on channel selected +// channel : Select which channel is to be read. Values from 0-7 select one of the pins ADC0-ADC7. For other possible channel values refer datasheet // // Description // This function returns digital value for present on adc pins. 'channel' @@ -28,14 +24,15 @@ function adc_result = AVRReadADC(channel) // voltages between some pins. For channel values for those options, please // refer datasheet. // +// This is curretly dummy function. It provides no functionality but is required +// for providing support for generating C code for AVR. +// // Examples // adc_result = u8AVRReadADC(0) //Read ADC0 -// // Authors -// Siddhesh Wani Ashish Kamble +// Siddhesh Wani +// Ashish Kamble // -// This is curretly dummy function. It provides no functionality but is required -// for providing support for generating C code for AVR. if(channel>=8) then disp("Error : Inavlid input argument ''channel'' in AVRReadADC function."); diff --git a/2.3-1/macros/Hardware/AVR/AVRSleep.sci b/2.3-1/macros/Hardware/AVR/AVRSleep.sci index a1b6add2..eec6e5a2 100644 --- a/2.3-1/macros/Hardware/AVR/AVRSleep.sci +++ b/2.3-1/macros/Hardware/AVR/AVRSleep.sci @@ -1,4 +1,21 @@ function AVRSleep(delay) - +// Function to pause the execution for the given time. +// +// Parameter +// delay : The time, in milliseconds, for which the execution is to be paused +// +// Description +// This function causes the execution to stop for the given amount of time. +// +// This is curretly dummy function. It provides no functionality but is required +// for providing support for generating C code for AVR. +// +//Examples +// AVRSleep(5000); +//See also +// +// Authors +// Jorawar Singh +// endfunction diff --git a/2.3-1/macros/Hardware/AVR/AVRTimerSetup.sci b/2.3-1/macros/Hardware/AVR/AVRTimerSetup.sci index 7c5dd1da..55fd55fa 100644 --- a/2.3-1/macros/Hardware/AVR/AVRTimerSetup.sci +++ b/2.3-1/macros/Hardware/AVR/AVRTimerSetup.sci @@ -10,37 +10,44 @@ function AVRTimerSetup(timer,prescaler,clock_source) //Function to setup Timers in ATmega16 +// +//Parameters: +// timer : integer, from 0 to 2 +// prescaler : integer. +// clock_source : integer, 0 (for internal) or 1 (for external) +// //Descrpition: // This function tells the micro controller which clock source you will be using. // The timer value and prescaler value passed in this function setup the timer as per // your requirement. // -//Parameters: -// timer : It is an integer value. -// 0 to setup timer0 -// 1 to setup timer1 -// 2 to setup timer2 -// prescaler : It is an integer value. -// 1 for no prescaling i.e clock will run at max 16Hz frequency -// 8 for prescaling clock by 8 i.e new clock frequency will be (clk/8) -// 64 for prescaling clock by 64 i.e new clock frequency will be (clk/64) -// 256 for prescaling clock by 256 i.e new clock frequency will be (clk/256) -// 1024 for prescaling clock by 1024 i.e new clock frequency will be (clk/1024) -// clock_source : It is an integer value. -// 0 if you are using internal clock source -// 1 if you are using external clock source +// timer can take values- +// <itemizedlist> +// <listitem><para>0 -> for timer0</para></listitem> +// <listitem><para>1 -> for timer1</para></listitem> +// <listitem><para>2 -> for timer2</para></listitem> +// </itemizedlist> +// +// prescaler can take values- +// <itemizedlist> +// <listitem><para>1 for no prescaling i.e clock will run at max 16Hz frequency</para></listitem> +// <listitem><para>8 for prescaling clock by 8 i.e new clock frequency will be (clk/8)</para></listitem> +// <listitem><para>64 for prescaling clock by 64 i.e new clock frequency will be (clk/64)</para></listitem> +// <listitem><para>256 for prescaling clock by 256 i.e new clock frequency will be (clk/256)</para></listitem> +// <listitem><para>1024 for prescaling clock by 1024 i.e new clock frequency will be (clk/1024)</para></listitem> +// </itemizedlist> +// +// This is curretly dummy function. It provides no functionality but is required +// for providing support for generating C code for AVR. +// //Example -// AVRTimerSetup(0,64,0); //This function will select timer0 with timer running as per -// internal clock source and prescaled by 64. -// +// AVRTimerSetup(0,64,0); //This function will select timer0 with timer running as per internal clock source and prescaled by 64. //See also // AVRGetTimerValues // //Authors // Ashish Kamble // -//This is curretly dummy function. It provides no functionality but is required -//for providing support for generating C code for AVR. if(timer>=3) then disp("Error : Invalid input argument ''timer'' in AVRTimerSetup function."); diff --git a/2.3-1/macros/Hardware/AVR/AVRUARTReceive.sci b/2.3-1/macros/Hardware/AVR/AVRUARTReceive.sci index 790894fb..7fdf6f05 100644 --- a/2.3-1/macros/Hardware/AVR/AVRUARTReceive.sci +++ b/2.3-1/macros/Hardware/AVR/AVRUARTReceive.sci @@ -10,13 +10,16 @@ function received = AVRUARTReceive() // Function to Receive Char value send to ATmega16 using UART or USART. +// // Description // This function Receives Char as 8 bit value.This value is stored in UDR at receiving // end. // +// This is curretly dummy function. It provides no functionality but is required +// for providing support for generating C code for AVR. +// //Examples -// state = AVRUARTReceive(); //This function will Receive char and return the entire value -// +// state = AVRUARTReceive(); //This function will Receive char and return the entire value //See also // AVRUARTSetup // AVRUARTTransmit @@ -24,7 +27,5 @@ function received = AVRUARTReceive() // Authors // Ashish Kamble // -// This is curretly dummy function. It provides no functionality but is required -// for providing support for generating C code for AVR. received = 0; // received has been initialised to avoid runtime error. endfunction diff --git a/2.3-1/macros/Hardware/AVR/AVRUARTSetup.sci b/2.3-1/macros/Hardware/AVR/AVRUARTSetup.sci index 32e5db86..6ecf2a07 100644 --- a/2.3-1/macros/Hardware/AVR/AVRUARTSetup.sci +++ b/2.3-1/macros/Hardware/AVR/AVRUARTSetup.sci @@ -10,29 +10,34 @@ function AVRUARTSetup(mode, baudrate, stopbits, parity) // Function to Setup Serial Communication i.e UART or USART in ATmega16. +// +// Parameters +// mode : integer, from 0 to 2 +// baudrate : Enter one of the following available baudrates (2400 , 4800 , 9600 , 14400 , 19200 , 28800 , 38400 , 57600 , 768000 , 115200 , 230400 , 250000 , 1000000) +// stopbits : integer, (0 for one stopbit) or (1 for two stopbits) +// parity : integer, from 0 to 2 +// // Description // This function Setup the UART or USART for Serial Communicaion between ATmega16 // and different micro controllers or between ATmega16 and Computer. -// -// Parameters -// mode : -// 0 for Asynchronous Normal mode -// 1 for Asynchronous Double Speed mode -// 2 for Synchronous mode -// -// baudrate : Enter one of the following available baudrates -// 2400 , 4800 , 9600 , 14400 , 19200 , 28800 , 38400 , 57600 , -// 768000 , 115200 , 230400 , 250000 , 1000000 . // -// stopbits : -// 0 for one stopbit -// 1 for two stopbits +// mode can take values: +// <itemizedlist> +// <listitem><para>0 for Asynchronous Normal mode</para></listitem> +// <listitem><para>1 for Asynchronous Double Speed mode</para></listitem> +// <listitem><para>2 for Synchronous mode</para></listitem> +// </itemizedlist> +// +// parity can take values: +// <itemizedlist> +// <listitem><para>0 for parity disabled</para></listitem> +// <listitem><para>1 for even parity</para></listitem> +// <listitem><para>2 for odd parity</para></listitem> +// </itemizedlist> +// +// This is curretly dummy function. It provides no functionality but is required +// for providing support for generating C code for AVR. // -// parity : -// 0 for parity disabled -// 1 for even parity -// 2 for odd parity -// //Examples // AVRUARTSetup(0,9600,0,0); //This function will enable UART Communication for ATmega16 // with 9600 as baudrate,one stop bit and parity disabled @@ -43,8 +48,7 @@ function AVRUARTSetup(mode, baudrate, stopbits, parity) // Authors // Ashish Kamble // -// This is curretly dummy function. It provides no functionality but is required -// for providing support for generating C code for AVR. + if(mode>=3) then disp("Error : Invalid input argument ''mode'' in AVRUARTSetup function."); end diff --git a/2.3-1/macros/Hardware/AVR/AVRUARTTransmit.sci b/2.3-1/macros/Hardware/AVR/AVRUARTTransmit.sci index eb358499..695c708d 100644 --- a/2.3-1/macros/Hardware/AVR/AVRUARTTransmit.sci +++ b/2.3-1/macros/Hardware/AVR/AVRUARTTransmit.sci @@ -10,17 +10,19 @@ function AVRUARTTransmit(data) // Function to Transmit data using UART or USART. +// +// Parameter +// data : The data to be transmitted can be a Char,String,Unsigned Int,Signed Int. +// // Description // This function Tranmits data over UART or USART.The data to be transmitted can // be a Char , String , Unsigned Int, Signed Int. -// -// Parameter -// data : -// The data to be transmitted can be a Char,String,Unsigned Int,Signed Int. +// +// This is curretly dummy function. It provides no functionality but is required +// for providing support for generating C code for AVR. // //Examples -// AVRUARTTransmit("This is example"); //This function will transmit the entered string. -// +// AVRUARTTransmit("This is example"); //This function will transmit the entered string. //See also // AVRUARTSetup // AVRUARTReceive @@ -28,6 +30,4 @@ function AVRUARTTransmit(data) // Authors // Ashish Kamble // -// This is curretly dummy function. It provides no functionality but is required -// for providing support for generating C code for AVR. endfunction diff --git a/2.3-1/macros/Hardware/AVR/lib b/2.3-1/macros/Hardware/AVR/lib Binary files differindex c8dfe19c..170d3211 100644 --- a/2.3-1/macros/Hardware/AVR/lib +++ b/2.3-1/macros/Hardware/AVR/lib diff --git a/2.3-1/macros/Hardware/RasberryPi/lib b/2.3-1/macros/Hardware/RasberryPi/lib Binary files differindex 99cd9b61..d25d9440 100644 --- a/2.3-1/macros/Hardware/RasberryPi/lib +++ b/2.3-1/macros/Hardware/RasberryPi/lib diff --git a/2.3-1/macros/ImageProcessing/core/CV_CreateImage.sci b/2.3-1/macros/ImageProcessing/core/CV_CreateImage.sci index 02758154..90b4578b 100644 --- a/2.3-1/macros/ImageProcessing/core/CV_CreateImage.sci +++ b/2.3-1/macros/ImageProcessing/core/CV_CreateImage.sci @@ -17,25 +17,23 @@ function img = CV_CreateImage(width,height,bit_depth,no_of_channels) // // Parameters // image_size: width and height of image -// bit_depth: Bit depth of image elements -// no_of_channels: no of channels per pixels +// bit_depth: Bit depth of image elements +// no_of_channels: no of channels per pixels // // Description -// This function can be used to create opencv image object. For more info -// about bit depth and channels,please refer to OpenCV documentation -// Examples -// CV_CreateImage([320 240], "IPL_DEPTH_8U", 1) //to create image of the size 320*240 -// pixels with 8 bit unsigned each pixels and gray scale image +// This function can be used to create opencv image object. For more info about bit depth and channels,please refer to OpenCV documentation +// +// This is curretly dummy function. It provides no functionality but is required for providing support for generating C code for OpenCV // +// Examples +// CV_CreateImage([320 240], "IPL_DEPTH_8U", 1) //to create image of the size 320*240 pixels with 8 bit unsigned each pixels and gray scale image // See also // CV_LoadImage // -// // Authors // Siddhesh Wani // + img = 0; -// This is curretly dummy function. It provides no functionality but is required -// for providing support for generating C code for OpenCV endfunction diff --git a/2.3-1/macros/ImageProcessing/core/CV_GetImgSize.sci b/2.3-1/macros/ImageProcessing/core/CV_GetImgSize.sci index 02e018a7..2b176dac 100644 --- a/2.3-1/macros/ImageProcessing/core/CV_GetImgSize.sci +++ b/2.3-1/macros/ImageProcessing/core/CV_GetImgSize.sci @@ -15,23 +15,25 @@ function imgsize = CV_GetImgSize(img) // CV_GetImgSize(img) // // Parameters -// img: image whose size is to be returned +// img: image whose size is to be returned // // Description // This function can be used for retriving size information of the image. // It returs an array with first image element as width and second as height -// Examples -// img = CV_LoadImage('~/test.jpg',0) -// size = CV_GetImgSize(img) // +// This is curretly dummy function. It provides no functionality but is required +// for providing support for generating C code for OpenCV +// +// Examples +// img = CV_LoadImage('~/test.jpg',0) +// size = CV_GetImgSize(img) // See also // CV_LoadImage CV_CreateImage // // Authors // Siddhesh Wani // + imgsize = [0 0]; -// This is curretly dummy function. It provides no functionality but is required -// for providing support for generating C code for OpenCV endfunction diff --git a/2.3-1/macros/ImageProcessing/core/lib b/2.3-1/macros/ImageProcessing/core/lib Binary files differindex 65ff2986..8d5e5c74 100644 --- a/2.3-1/macros/ImageProcessing/core/lib +++ b/2.3-1/macros/ImageProcessing/core/lib diff --git a/2.3-1/macros/ImageProcessing/highgui/CV_LoadImage.sci b/2.3-1/macros/ImageProcessing/highgui/CV_LoadImage.sci index 01dda125..c420c7a1 100644 --- a/2.3-1/macros/ImageProcessing/highgui/CV_LoadImage.sci +++ b/2.3-1/macros/ImageProcessing/highgui/CV_LoadImage.sci @@ -16,25 +16,30 @@ function img = CV_LoadImage(filename,loadtype) // // Parameters // filename: name of file to be opened -// loadtype: desired load method -// <0 --> image is loaded as is (with alpha channel) -// =0 --> image is loaded as greyscale -// >0 --> 3 channel color image is loaded +// loadtype: desired load method // // Description -// This function can be used for loading a previously stored image -// Examples -// CV_LoadImage('~/test.jpg',0) +// This function can be used for loading a previously stored image +// +// loadtype can take the following values: +// <itemizedlist> +// <listitem><para> less than 0 -> image is loaded as is (with alpha channel)</para></listitem> +// <listitem><para> 0 -> image is loaded as greyscale</para></listitem> +// <listitem><para> greater than 0 -> 3 channel color image is loaded</para></listitem> +// </itemizedlist> // +// This is curretly dummy function. It provides no functionality but is required +// for providing support for generating C code for OpenCV +// +// Examples +// CV_LoadImage('~/test.jpg',0) // See also // CV_CreateImage // -// // Authors // Siddhesh Wani // + img = 0; -// This is curretly dummy function. It provides no functionality but is required -// for providing support for generating C code for OpenCV endfunction diff --git a/2.3-1/macros/ImageProcessing/highgui/CV_SaveImage.sci b/2.3-1/macros/ImageProcessing/highgui/CV_SaveImage.sci index 708edff0..6c5b0bf9 100644 --- a/2.3-1/macros/ImageProcessing/highgui/CV_SaveImage.sci +++ b/2.3-1/macros/ImageProcessing/highgui/CV_SaveImage.sci @@ -15,24 +15,26 @@ function status = CV_SaveImage(filename,img) // CV_SaveImage(filename,img) // // Parameters -// filename: name of file image to be saved as -// img: image to be saved +// filename: name of file image to be saved as +// img: image to be saved // // Description -// This function can be used for saving image. File format is detected -// from file extension -// Examples -// img = CV_LoadImage('~/test.jpg',0) -// CV_SaveImage('test1.png',img) +// This function can be used for saving image. File format is detected +// from file extension +// +// This is curretly dummy function. It provides no functionality but is required +// for providing support for generating C code for OpenCV // +// Examples +// img = CV_LoadImage('~/test.jpg',0) +// CV_SaveImage('test1.png',img) // See also // CV_LoadImage CV_CreateImage // // Authors // Siddhesh Wani // + status = 0; -// This is curretly dummy function. It provides no functionality but is required -// for providing support for generating C code for OpenCV endfunction diff --git a/2.3-1/macros/ImageProcessing/highgui/CV_ShowImage.sci b/2.3-1/macros/ImageProcessing/highgui/CV_ShowImage.sci index 4bfe5913..2300d256 100644 --- a/2.3-1/macros/ImageProcessing/highgui/CV_ShowImage.sci +++ b/2.3-1/macros/ImageProcessing/highgui/CV_ShowImage.sci @@ -12,28 +12,28 @@ function CV_ShowImage(winname,img) // function to show an image // // Calling Sequence -// CV_ShowImage(img) +// CV_ShowImage(img) // CV_ShowImage(winname,img) // // Parameters -// winname: name of window in which img is to be shown -// img: image to be shown already acquired (from file/camera) +// winname: name of window in which img is to be shown +// img: image to be shown already acquired (from file/camera) // // Description // This function can be used for showing images -// Examples -// img = CV_LoadImage('~/test.jpg',0) -// CV_ShowImage(img) // +// This is curretly dummy function. It provides no functionality but is required +// for providing support for generating C code for OpenCV +// +// Examples +// img = CV_LoadImage('~/test.jpg',0) +// CV_ShowImage(img) // See also // CV_CreateImage CV_LoadImage // -// // Authors // Siddhesh Wani // -// This is curretly dummy function. It provides no functionality but is required -// for providing support for generating C code for OpenCV endfunction diff --git a/2.3-1/macros/ImageProcessing/highgui/CV_WaitKey.sci b/2.3-1/macros/ImageProcessing/highgui/CV_WaitKey.sci index 0facaafe..46fd91f1 100644 --- a/2.3-1/macros/ImageProcessing/highgui/CV_WaitKey.sci +++ b/2.3-1/macros/ImageProcessing/highgui/CV_WaitKey.sci @@ -15,25 +15,25 @@ function CV_WaitKey(delay) // CV_WaitKey(delay) // // Parameters -// delay: waiting delay, if 0 then wait till keypress +// delay: waiting delay, if 0 then wait till keypress // // Description -// This function can be used for inseting some delay. This function must -// follow CV_ShowImage to display image. -// Examples -// img = CV_LoadImage('~/test.jpg',0) -// CV_ShowImage('',img) -// CV_WaitKey(0); +// This function can be used for inseting some delay. This function must +// follow CV_ShowImage to display image. +// +// This is curretly dummy function. It provides no functionality but is required +// for providing support for generating C code for OpenCV // +// Examples +// img = CV_LoadImage('~/test.jpg',0) +// CV_ShowImage('',img) +// CV_WaitKey(0); // See also // CV_LoadImage CV_ShowImage // -// // Authors // Siddhesh Wani // -// This is curretly dummy function. It provides no functionality but is required -// for providing support for generating C code for OpenCV endfunction diff --git a/2.3-1/macros/ImageProcessing/highgui/lib b/2.3-1/macros/ImageProcessing/highgui/lib Binary files differindex dd057ecc..2db04822 100644 --- a/2.3-1/macros/ImageProcessing/highgui/lib +++ b/2.3-1/macros/ImageProcessing/highgui/lib diff --git a/2.3-1/macros/ImageProcessing/imgproc/CV_AdaptiveThreshold.sci b/2.3-1/macros/ImageProcessing/imgproc/CV_AdaptiveThreshold.sci index a922d798..e594f372 100644 --- a/2.3-1/macros/ImageProcessing/imgproc/CV_AdaptiveThreshold.sci +++ b/2.3-1/macros/ImageProcessing/imgproc/CV_AdaptiveThreshold.sci @@ -8,28 +8,26 @@ // Organization: FOSSEE, IIT Bombay // Email: toolbox@scilab.in -function cvtimg = CV_AdaptiveThreshold(srcimg,max_value,adaptive_method, ... - thresh_type, block_size, C) +function cvtimg = CV_AdaptiveThreshold(srcimg,max_value,adaptive_method,thresh_type, block_size, C) // function to adaptively threshold input image // // Calling Sequence -// dst = CV_AdaptiveThreshold(srcimg,max_value,adaptive_method, ... -// thresh_type,blk_size,c) +// dst = CV_AdaptiveThreshold(srcimg,max_value,adaptive_method,thresh_type,blk_size,c) // // Parameters -// src -> Source 8-bit single-channel image. -// max_value -> Non-zero value assigned to the pixels for which the -// condition is satisfied. See the details below. -// adaptive_method -> Adaptive thresholding algorithm to use, -// ADAPTIVE_THRESH_MEAN_C or ADAPTIVE_THRESH_GAUSSIAN_C . -// thresh_type -> Thresholding type that must be either THRESH_BINARY -// or THRESH_BINARY_INV . -// blockSize -> Size of a pixel neighborhood that is used to calculate -// a threshold value for the pixel: 3, 5, 7, and so on. -// C -> Constant subtracted from the mean or weighted mean.Normally, -// it is positive but may be zero or negative as well. +// src : Source 8-bit single-channel image. +// max_value : Non-zero value assigned to the pixels for which the condition is satisfied. See the details below. +// adaptive_method : Adaptive thresholding algorithm to use, ADAPTIVE_THRESH_MEAN_C or ADAPTIVE_THRESH_GAUSSIAN_C . +// thresh_type : Thresholding type that must be either THRESH_BINARY or THRESH_BINARY_INV . +// blockSize : Size of a pixel neighborhood that is used to calculate a threshold value for the pixel: 3, 5, 7, and so on. +// C : Constant subtracted from the mean or weighted mean.Normally, it is positive but may be zero or negative as well. +// // Description -// This function can be used for adaptively threshold given image +// This function can be used for adaptively threshold given image +// +// This is curretly dummy function. It provides no functionality but is required +// for providing support for generating C code for OpenCV +// // Examples // img = CV_LoadImage('~/test.jpg',0) // dst = CV_AdaptiveThreshold(img,255,"ADAPTIVE_THRESH_MEAN_C", ... @@ -41,8 +39,7 @@ function cvtimg = CV_AdaptiveThreshold(srcimg,max_value,adaptive_method, ... // Authors // Siddhesh Wani // + cvtimg = 0 -// This is curretly dummy function. It provides no functionality but is required -// for providing support for generating C code for OpenCV endfunction diff --git a/2.3-1/macros/ImageProcessing/imgproc/CV_Blur.sci b/2.3-1/macros/ImageProcessing/imgproc/CV_Blur.sci index b81df491..784e4c96 100644 --- a/2.3-1/macros/ImageProcessing/imgproc/CV_Blur.sci +++ b/2.3-1/macros/ImageProcessing/imgproc/CV_Blur.sci @@ -8,28 +8,34 @@ // Organization: FOSSEE, IIT Bombay // Email: toolbox@scilab.in -function cvtimg = CV_Blur(srcimg,ksize_width,ksize_height,anchor_x,anchor_y, ... - border_type) +function cvtimg = CV_Blur(srcimg,ksize_width,ksize_height,anchor_x,anchor_y,border_type) // function to blur image using normalised box filter // // Calling Sequence -// dst = CV_Blur(srcimg,ksize_width,ksize_height,anchor_x,anchor_y, ... -// border_type) +// dst = CV_Blur(srcimg,ksize_width,ksize_height,anchor_x,anchor_y,border_type) // // Parameters -// srcimg -> Source image. -// ksize_width, ksize_height -> blurring kernel size. -// anchor_x, anchor_y -> x,y coordinates of anchor point -// borderType -> border mode used to extrapolate pixels outside of the -// image. Can be : -// BORDER_REPLICATE: aaaaaa|abcdefgh|hhhhhhh -// BORDER_REFLECT: fedcba|abcdefgh|hgfedcb -// BORDER_REFLECT_101: gfedcb|abcdefgh|gfedcba -// BORDER_WRAP: cdefgh|abcdefgh|abcdefg -// BORDER_CONSTANT: iiiiii|abcdefgh|iiiiiii +// srcimg : Source image. +// ksize_width, ksize_height : blurring kernel size. +// anchor_x, anchor_y : x,y coordinates of anchor point +// border_type : border mode used to extrapolate pixels outside of the image. +// // Description -// This function can be used for blurring image using normalised box -// filter. Image can be of any depth and have any no of channels. +// This function can be used for blurring image using normalised box +// filter. Image can be of any depth and have any no of channels. +// +// border_type can be : +// <itemizedlist> +// <listitem>BORDER_REPLICATE: aaaaaa|abcdefgh|hhhhhhh</listitem> +// <listitem>BORDER_REFLECT: fedcba|abcdefgh|hgfedcb</listitem> +// <listitem>BORDER_REFLECT_101: gfedcb|abcdefgh|gfedcba</listitem> +// <listitem>BORDER_WRAP: cdefgh|abcdefgh|abcdefg</listitem> +// <listitem>BORDER_CONSTANT: iiiiii|abcdefgh|iiiiiii</listitem> +// </itemizedlist> +// +// This is curretly dummy function. It provides no functionality but is required +// for providing support for generating C code for OpenCV +// // Examples // img = CV_LoadImage('~/test.jpg',0) // dst = CV_Blur(img,3,3,-1,-1,"BORDER_CONSTANT") @@ -40,8 +46,7 @@ function cvtimg = CV_Blur(srcimg,ksize_width,ksize_height,anchor_x,anchor_y, ... // Authors // Siddhesh Wani // + cvtimg = 0 -// This is curretly dummy function. It provides no functionality but is required -// for providing support for generating C code for OpenCV endfunction diff --git a/2.3-1/macros/ImageProcessing/imgproc/CV_Canny.sci b/2.3-1/macros/ImageProcessing/imgproc/CV_Canny.sci index b21028a0..be1c2ccb 100644 --- a/2.3-1/macros/ImageProcessing/imgproc/CV_Canny.sci +++ b/2.3-1/macros/ImageProcessing/imgproc/CV_Canny.sci @@ -15,33 +15,33 @@ function edges = CV_Canny(srcimg,threhold1,threshold2,aperture_size,L2gradient) // edges = CV_Canny(srcimg,threhold1,threshold2,aperture_size,L2gradient) // // Parameters -// srcimg -> single-channel 8-bit input image. -// threshold1 -> first threshold for the hysteresis procedure. -// threshold2 -> second threshold for the hysteresis procedure. -// aperture_size -> aperture size for the Sobel() operator. -// L2gradient -> a flag, indicating whether a more accurate -// L_2 norm =sqrt{(dI/dx)^2 + (dI/dy)^2} should be used to -// calculate the image gradient magnitude ( L2gradient=1 ), -// or whether the default L_1 norm =|dI/dx|+|dI/dy| is enough -// ( L2gradient=0). +// srcimg : single-channel 8-bit input image. +// threshold1 : first threshold for the hysteresis procedure. +// threshold2 : second threshold for the hysteresis procedure. +// aperture_size : aperture size for the Sobel() operator. +// L2gradient : a flag, indicating whether a more accurate +// // Description -// This function can be used for finding edes in single channel 8 bit -// image. 'aperture_size' and 'L2gradient' are optionals. By default, -// aperture_size is 3 and L2gradient is false. +// This function can be used for finding edes in single channel 8 bit +// image. 'aperture_size' and 'L2gradient' are optionals. By default, +// aperture_size is 3 and L2gradient is false. +// +// For L2gradient: L_2 norm =sqrt{(dI/dx)^2 + (dI/dy)^2} should be used to calculate the image gradient magnitude (L2gradient=1 ), or whether the default L_1 norm =|dI/dx|+|dI/dy| is enough (L2gradient=0). +// +// This is curretly dummy function. It provides no functionality but is required +// for providing support for generating C code for OpenCV // // Examples -// img = CV_LoadImage('~/test.jpg',0) -// dst = CV_CvtColor(img,"CV_RGB2GRAY"); -// edge = CV_Canny(dst,50,100,3,0); -// +// img = CV_LoadImage('~/test.jpg',0) +// dst = CV_CvtColor(img,"CV_RGB2GRAY"); +// edge = CV_Canny(dst,50,100,3,0); // See also // CV_LoadImage CV_CvtColor // // Authors // Siddhesh Wani // + edges = 0 -// This is curretly dummy function. It provides no functionality but is required -// for providing support for generating C code for OpenCV endfunction diff --git a/2.3-1/macros/ImageProcessing/imgproc/CV_CornerHarris.sci b/2.3-1/macros/ImageProcessing/imgproc/CV_CornerHarris.sci index fb25612b..ccb83cb7 100644 --- a/2.3-1/macros/ImageProcessing/imgproc/CV_CornerHarris.sci +++ b/2.3-1/macros/ImageProcessing/imgproc/CV_CornerHarris.sci @@ -12,42 +12,41 @@ function edges = CV_CornerHarris(srcimg,blocksize,ksize,k,border_type) //Finds edges in image using Harris algorithm // // Calling Sequence -// edges = CV_CornerHarris(srcimg,blocksize,ksize,k,border_type) +// edges = CV_CornerHarris(srcimg,blocksize,ksize,k,border_type) // // Parameters -// srcimg -> Input single-channel 8-bit or floating-point image. -// blockSize -> Neighborhood size -// ksize -> Aperture parameter for the Sobel() operator. -// k -> Harris detector free parameter. -// borderType -> border mode used to extrapolate pixels outside of the -// image. It can be : -// BORDER_REPLICATE: aaaaaa|abcdefgh|hhhhhhh -// BORDER_REFLECT: fedcba|abcdefgh|hgfedcb -// BORDER_REFLECT_101: gfedcb|abcdefgh|gfedcba -// BORDER_WRAP: cdefgh|abcdefgh|abcdefg -// BORDER_CONSTANT: iiiiii|abcdefgh|iiiiiii +// srcimg: Input single-channel 8-bit or floating-point image. +// blockSize: Neighborhood size +// ksize: Aperture parameter for the Sobel() operator. +// k: Harris detector free parameter. +// border_type: border mode used to extrapolate pixels outside of the image. +// // Description -// The function runs the Harris edge detector on the image. For each -// pixel (x, y) it calculates a 2 * 2 gradient covariance matrix M(x,y) -// over a blockSize * blockSize neighborhood. Then, it computes the -// following characteristic: -// dst(x,y) = det(M(x,y)) - k .tr(M(x,y))^2 -// Corners in the image can be found as the local maxima of this -// response map +// The function runs the Harris edge detector on the image. For each pixel (x, y) it calculates a 2 * 2 gradient covariance matrix M(x,y) over a blockSize * blockSize neighborhood. Then, it computes the following characteristic: dst(x,y) = det(M(x,y)) - k .tr(M(x,y))^2. Corners in the image can be found as the local maxima of this response map. // -// Examples -// img = CV_LoadImage('~/test.jpg',0) -// dst = CV_CvtColor(img,"CV_RGB2GRAY"); -// edge = CV_CornerHarris(dst,5,3,1,"BORDER_REPLICATE"); +// border_type can be : +// <itemizedlist> +// <listitem>BORDER_REPLICATE: aaaaaa|abcdefgh|hhhhhhh</listitem> +// <listitem>BORDER_REFLECT: fedcba|abcdefgh|hgfedcb</listitem> +// <listitem>BORDER_REFLECT_101: gfedcb|abcdefgh|gfedcba</listitem> +// <listitem>BORDER_WRAP: cdefgh|abcdefgh|abcdefg</listitem> +// <listitem>BORDER_CONSTANT: iiiiii|abcdefgh|iiiiiii</listitem> +// </itemizedlist> +// +// This is curretly dummy function. It provides no functionality but is required +// for providing support for generating C code for OpenCV // +// Examples +// img = CV_LoadImage('~/test.jpg',0) +// dst = CV_CvtColor(img,"CV_RGB2GRAY"); +// edge = CV_CornerHarris(dst,5,3,1,"BORDER_REPLICATE"); // See also // CV_LoadImage CV_CvtColor // // Authors // Siddhesh Wani // + edges = 0 -// This is curretly dummy function. It provides no functionality but is required -// for providing support for generating C code for OpenCV endfunction diff --git a/2.3-1/macros/ImageProcessing/imgproc/CV_CvtColor.sci b/2.3-1/macros/ImageProcessing/imgproc/CV_CvtColor.sci index 766844bf..dcf756c0 100644 --- a/2.3-1/macros/ImageProcessing/imgproc/CV_CvtColor.sci +++ b/2.3-1/macros/ImageProcessing/imgproc/CV_CvtColor.sci @@ -15,27 +15,28 @@ function cvtimg = CV_CvtColor(srcimg,code) // CV_CvtColor(srcimg,code) // // Parameters -// srcimg: source image to be converted -// dstimg: destination image in which to store converted image -// code: String specifying conversion type. Same as defined in OpenCV -// for eg. 'CV_RGB2GRAY' for conversion from RGB image to grayscale image -// dstCn: no of channels in destination image (0 by default) +// srcimg: source image to be converted +// dstimg: destination image in which to store converted image +// code: String specifying conversion type. Same as defined in OpenCV. for eg. 'CV_RGB2GRAY' for conversion from RGB image to grayscale image +// dstCn: no of channels in destination image (0 by default) // // Description -// This function can be used for converting an image to other colorspace. -// Refer OpenCV documentation for list of available conversions -// Examples -// img = CV_LoadImage('~/test.jpg',0) -// dst = CV_CvtColor(img,'CV_RGB2GRAY') +// This function can be used for converting an image to other colorspace. +// Refer OpenCV documentation for list of available conversions +// +// This is curretly dummy function. It provides no functionality but is required +// for providing support for generating C code for OpenCV // +// Examples +// img = CV_LoadImage('~/test.jpg',0) +// dst = CV_CvtColor(img,'CV_RGB2GRAY') // See also // CV_LoadImage CV_CreateImage // // Authors // Siddhesh Wani // + cvtimg = 0 -// This is curretly dummy function. It provides no functionality but is required -// for providing support for generating C code for OpenCV endfunction diff --git a/2.3-1/macros/ImageProcessing/imgproc/CV_Dilate.sci b/2.3-1/macros/ImageProcessing/imgproc/CV_Dilate.sci index 196cab85..25e2c844 100644 --- a/2.3-1/macros/ImageProcessing/imgproc/CV_Dilate.sci +++ b/2.3-1/macros/ImageProcessing/imgproc/CV_Dilate.sci @@ -8,45 +8,44 @@ // Organization: FOSSEE, IIT Bombay // Email: toolbox@scilab.in -function cvtimg = CV_Dilate(srcimg,dilation_type,dilation_size,iterations, ... - border_type,border_value) +function cvtimg = CV_Dilate(srcimg,dilation_type,dilation_size,iterations,border_type,border_value) // dilates an image by using a specific structuring element. // // Calling Sequence -// cvtimg = CV_Dilate(srcimg,dilation_type,dilation_size,[iterations, ... -// border_type,border_value]) +// cvtimg = CV_Dilate(srcimg,dilation_type,dilation_size,[iterations,border_type,border_value]) // Parameters -// src -> input image; the number of channels can be arbitrary, but the -// depth should be one of CV_8U, CV_16U, CV_16S, CV_32F or CV_64F. -// dilation_type -> can be one of : MORPH_RECT, MORPH_CROSS, -// MORPH_ELLIPSE -// dilation_size -> size of kernel to be used for erosion. Must be odd -// iterations -> number of times erosion is applied. -// border_type -> pixel extrapolation method. It can be: -// BORDER_REPLICATE: aaaaaa|abcdefgh|hhhhhhh -// BORDER_REFLECT: fedcba|abcdefgh|hgfedcb -// BORDER_REFLECT_101: gfedcb|abcdefgh|gfedcba -// BORDER_WRAP: cdefgh|abcdefgh|abcdefg -// BORDER_CONSTANT: iiiiii|abcdefgh|iiiiiii -// border_value -> border value in case of a constant border +// src : input image; the number of channels can be arbitrary, but the depth should be one of CV_8U, CV_16U, CV_16S, CV_32F or CV_64F. +// dilation_type : can be one of MORPH_RECT, MORPH_CROSS,MORPH_ELLIPSE +// dilation_size : size of kernel to be used for erosion. Must be odd +// iterations : number of times erosion is applied. +// border_type : pixel extrapolation method. +// border_value : border value in case of a constant border +// // Description -// This function can be used for eroding an image. Kernel used for erosion -// is decided by type and size. Size must always be odd. Anchor pint of -// kernel is always center of kernel. Input arguements 'iterations(1), -// border_type(BORDER_CONSTANT) and border_value' are optionals. Whwn not -// specified, default values as as mentioned in brackets. -// Examples -// img = CV_LoadImage('~/test.jpg',0) -// dst = CV_Erode(img,"MORPH_RECT",3,1,"BORDER_CONSTANT",0); +// This function can be used for eroding an image. Kernel used for erosion is decided by type and size. Size must always be odd. Anchor pint of kernel is always center of kernel. Input arguements 'iterations(1), border_type(BORDER_CONSTANT) and border_value' are optionals. Whwn not specified, default values as as mentioned in brackets. +// +// border_type can be : +// <itemizedlist> +// <listitem><para> BORDER_REPLICATE: aaaaaa|abcdefgh|hhhhhhh </para></listitem> +// <listitem><para> BORDER_REFLECT: fedcba|abcdefgh|hgfedcb </para></listitem> +// <listitem><para> BORDER_REFLECT_101: gfedcb|abcdefgh|gfedcba </para></listitem> +// <listitem><para> BORDER_WRAP: cdefgh|abcdefgh|abcdefg </para></listitem> +// <listitem><para> BORDER_CONSTANT: iiiiii|abcdefgh|iiiiiii </para></listitem> +// </itemizedlist> +// +// This is curretly dummy function. It provides no functionality but is required +// for providing support for generating C code for OpenCV // +// Examples +// img = CV_LoadImage('~/test.jpg',0) +// dst = CV_Erode(img,"MORPH_RECT",3,1,"BORDER_CONSTANT",0); // See also // CV_LoadImage CV_Erode // // Authors // Siddhesh Wani // + cvtimg = 0 -// This is curretly dummy function. It provides no functionality but is required -// for providing support for generating C code for OpenCV endfunction diff --git a/2.3-1/macros/ImageProcessing/imgproc/CV_DistanceTransform.sci b/2.3-1/macros/ImageProcessing/imgproc/CV_DistanceTransform.sci index e8772958..1f304a68 100644 --- a/2.3-1/macros/ImageProcessing/imgproc/CV_DistanceTransform.sci +++ b/2.3-1/macros/ImageProcessing/imgproc/CV_DistanceTransform.sci @@ -15,26 +15,26 @@ function dstimg = CV_DistanceTransform(srcimg,distance_type,mask_size) // dst = CV_DistanceTransform(srcimg,distance_type,mask_size) // // Parameters -// srcimg -> Source 8-bit single-channel image. -// distance_type -> Type of distance. It can be -// CV_DIST_L1, CV_DIST_L2 , or CV_DIST_C -// mask_size -> Size of the distance transform mask +// srcimg : Source 8-bit single-channel image. +// distance_type : Type of distance. It can be CV_DIST_L1, CV_DIST_L2 , or CV_DIST_C +// mask_size : Size of the distance transform mask +// // Description -// This function can be used to calculate distance to closest zero -// pixel for each pixel of the source image. Output is 32 bit floating -// point, single channel image of the same size as that of source image. -// Examples -// img = CV_LoadImage('~/test.jpg',0) -// dst = CV_DistanceTransform(img,"CV_DIST_L1",3) +// This function can be used to calculate distance to closest zero pixel for each pixel of the source image. Output is 32 bit floatingpoint, single channel image of the same size as that of source image. +// +// This is curretly dummy function. It provides no functionality but is required +// for providing support for generating C code for OpenCV // +// Examples +// img = CV_LoadImage('~/test.jpg',0) +// dst = CV_DistanceTransform(img,"CV_DIST_L1",3) // See also // CV_LoadImage CV_CreateImage CV_CvtColor // // Authors // Siddhesh Wani // + dstimg = 0 -// This is curretly dummy function. It provides no functionality but is required -// for providing support for generating C code for OpenCV endfunction diff --git a/2.3-1/macros/ImageProcessing/imgproc/CV_Erode.sci b/2.3-1/macros/ImageProcessing/imgproc/CV_Erode.sci index d77e9e69..73f3ee59 100644 --- a/2.3-1/macros/ImageProcessing/imgproc/CV_Erode.sci +++ b/2.3-1/macros/ImageProcessing/imgproc/CV_Erode.sci @@ -8,44 +8,44 @@ // Organization: FOSSEE, IIT Bombay // Email: toolbox@scilab.in -function cvtimg = CV_Erode(srcimg,erosion_type,erosion_size,iterations, ... - border_type,border_value) +function cvtimg = CV_Erode(srcimg,erosion_type,erosion_size,iterations,border_type,border_value) // Erodes an image by using a specific structuring element. // // Calling Sequence -// cvtimg = CV_Erode(srcimg,erosion_type,erosion_size,[iterations, ... -// border_type,border_value]) +// cvtimg = CV_Erode(srcimg,erosion_type,erosion_size,[iterations,border_type,border_value]) // Parameters -// src -> input image; the number of channels can be arbitrary, but the -// depth should be one of CV_8U, CV_16U, CV_16S, CV_32F or CV_64F. -// erosion_type -> can be one of : MORPH_RECT, MORPH_CROSS, MORPH_ELLIPSE -// erosion_size -> size of kernel to be used for erosion. Must be odd -// iterations -> number of times erosion is applied. -// border_type -> pixel extrapolation method. It can be: -// BORDER_REPLICATE: aaaaaa|abcdefgh|hhhhhhh -// BORDER_REFLECT: fedcba|abcdefgh|hgfedcb -// BORDER_REFLECT_101: gfedcb|abcdefgh|gfedcba -// BORDER_WRAP: cdefgh|abcdefgh|abcdefg -// BORDER_CONSTANT: iiiiii|abcdefgh|iiiiiii -// border_value -> border value in case of a constant border +// src : input image; the number of channels can be arbitrary, but the depth should be one of CV_8U, CV_16U, CV_16S, CV_32F or CV_64F. +// erosion_type : can be one of : MORPH_RECT, MORPH_CROSS, MORPH_ELLIPSE +// erosion_size : size of kernel to be used for erosion. Must be odd +// iterations : number of times erosion is applied. +// border_type : pixel extrapolation method. +// border_value : border value in case of a constant border +// // Description -// This function can be used for eroding an image. Kernel used for erosion -// is decided by type and size. Size must always be odd. Anchor pint of -// kernel is always center of kernel. Input arguements 'iterations(1), -// border_type(BORDER_CONSTANT) and border_value' are optionals. Whwn not -// specified, default values as as mentioned in brackets. -// Examples -// img = CV_LoadImage('~/test.jpg',0) -// dst = CV_Erode(img,"MORPH_RECT",3,1,"BORDER_CONSTANT",0); +// This function can be used for eroding an image. Kernel used for erosion is decided by type and size. Size must always be odd. Anchor pint of kernel is always center of kernel. Input arguements 'iterations(1), border_type(BORDER_CONSTANT) and border_value' are optionals. Whwn not specified, default values as as mentioned in brackets. +// +// border_type can be : +// <itemizedlist> +// <listitem>BORDER_REPLICATE: aaaaaa|abcdefgh|hhhhhhh</listitem> +// <listitem>BORDER_REFLECT: fedcba|abcdefgh|hgfedcb</listitem> +// <listitem>BORDER_REFLECT_101: gfedcb|abcdefgh|gfedcba</listitem> +// <listitem>BORDER_WRAP: cdefgh|abcdefgh|abcdefg</listitem> +// <listitem>BORDER_CONSTANT: iiiiii|abcdefgh|iiiiiii</listitem> +// </itemizedlist> +// +// This is curretly dummy function. It provides no functionality but is required +// for providing support for generating C code for OpenCV // +// Examples +// img = CV_LoadImage('~/test.jpg',0) +// dst = CV_Erode(img,"MORPH_RECT",3,1,"BORDER_CONSTANT",0); // See also // CV_LoadImage CV_Dilate // // Authors // Siddhesh Wani // + cvtimg = 0 -// This is curretly dummy function. It provides no functionality but is required -// for providing support for generating C code for OpenCV endfunction diff --git a/2.3-1/macros/ImageProcessing/imgproc/CV_GaussianBlur.sci b/2.3-1/macros/ImageProcessing/imgproc/CV_GaussianBlur.sci index 0799c4dd..814355e0 100644 --- a/2.3-1/macros/ImageProcessing/imgproc/CV_GaussianBlur.sci +++ b/2.3-1/macros/ImageProcessing/imgproc/CV_GaussianBlur.sci @@ -8,44 +8,46 @@ // Organization: FOSSEE, IIT Bombay // Email: toolbox@scilab.in -function cvtimg = CV_GaussianBlur(srcimg,ksize_width,ksize_height,sigma_x,sigma_y, ... - border_type) +function cvtimg = CV_GaussianBlur(srcimg,ksize_width,ksize_height,sigma_x,sigma_y,border_type) // function to blur image using gaussian filter // // Calling Sequence -// dst = CV_Blur(srcimg,ksize_width,ksize_height,anchor_x,anchor_y, ... -// border_type) +// cvtimg = CV_GaussianBlur(srcimg,ksize_width,ksize_height,sigma_x,sigma_y,border_type) // // Parameters -// srcimg -> Source image. -// ksize_width, ksize_height -> blurring kernel size. must be odd. -// sigmaX -> Gaussian kernel standard deviation in X direction. -// sigmaY -> Gaussian kernel standard deviation in Y direction; -// if sigmaY is zero, it is set to be equal to sigmaX, -// if both sigmas are zeros, they are computed from -// ksize.width and ksize.height , respectively -// borderType -> border mode used to extrapolate pixels outside of the -// image. Can be : -// BORDER_REPLICATE: aaaaaa|abcdefgh|hhhhhhh -// BORDER_REFLECT: fedcba|abcdefgh|hgfedcb -// BORDER_REFLECT_101: gfedcb|abcdefgh|gfedcba -// BORDER_WRAP: cdefgh|abcdefgh|abcdefg -// BORDER_CONSTANT: iiiiii|abcdefgh|iiiiiii +// srcimg : Source image. +// ksize_width, ksize_height : blurring kernel size. must be odd. +// sigmaX : Gaussian kernel standard deviation in X direction. +// sigmaY : Gaussian kernel standard deviation in Y direction; +// border_type : border mode used to extrapolate pixels outside of the image. +// // Description -// This function can be used for blurring image using gaussian -// filter. Image can be of any depth and have any no of channels. -// Examples -// img = CV_LoadImage('~/test.jpg',0) -// dst = CV_GaussianBlur(img,3,3,0,0,"BORDER_CONSTANT") +// This function can be used for blurring image using gaussian filter. Image can be of any depth and have any no of channels. +// +// For sigmaX and sigmaY : if sigmaY is zero, it is set to be equal to sigmaX, if both sigmas are zeros, they are computed from ksize.width and ksize.height , respectively. // +// border_type can be : +// <itemizedlist> +// <listitem>BORDER_REPLICATE: aaaaaa|abcdefgh|hhhhhhh</listitem> +// <listitem>BORDER_REFLECT: fedcba|abcdefgh|hgfedcb</listitem> +// <listitem>BORDER_REFLECT_101: gfedcb|abcdefgh|gfedcba</listitem> +// <listitem>BORDER_WRAP: cdefgh|abcdefgh|abcdefg</listitem> +// <listitem>BORDER_CONSTANT: iiiiii|abcdefgh|iiiiiii</listitem> +// </itemizedlist> +// +// This is curretly dummy function. It provides no functionality but is required +// for providing support for generating C code for OpenCV +// +// Examples +// img = CV_LoadImage('~/test.jpg',0) +// dst = CV_GaussianBlur(img,3,3,0,0,"BORDER_CONSTANT") // See also // CV_LoadImage CV_Blur, CV_CvtColor // // Authors // Siddhesh Wani // + cvtimg = 0 -// This is curretly dummy function. It provides no functionality but is required -// for providing support for generating C code for OpenCV endfunction diff --git a/2.3-1/macros/ImageProcessing/imgproc/CV_MedianBlur.sci b/2.3-1/macros/ImageProcessing/imgproc/CV_MedianBlur.sci index d8f9a900..5f6069a7 100644 --- a/2.3-1/macros/ImageProcessing/imgproc/CV_MedianBlur.sci +++ b/2.3-1/macros/ImageProcessing/imgproc/CV_MedianBlur.sci @@ -12,30 +12,29 @@ function cvtimg = CV_MedianBlur(srcimg,ksize) // function to blur image using median filter // // Calling Sequence -// dst = CV_Blur(srcimg,ksize_width,ksize_height,anchor_x,anchor_y, ... -// border_type) +// cvtimg = CV_MedianBlur(srcimg,ksize) // // Parameters -// srcimg -> input 1-, 3-, or 4-channel image; when ksize is 3 or 5, -// the image depth should be CV_8U, CV_16U, or CV_32F, for -// larger aperture sizes, it can only be CV_8U. -// ksize_width -> aperture linear size; it must be odd and greater than 1, -// for example: 3, 5, 7 ... +// srcimg : input 1-, 3-, or 4-channel image; when ksize is 3 or 5, the image depth should be CV_8U, CV_16U, or CV_32F, for larger aperture sizes, it can only be CV_8U. +// ksize_width : aperture linear size; it must be odd and greater than 1, for example: 3, 5, 7 ... +// // Description // This function can be used for blurring image using median // filter. Image can be of any depth and have any no of channels. -// Examples -// img = CV_LoadImage('~/test.jpg',0) -// dst = CV_MedianBlur(img,3) // +// This is curretly dummy function. It provides no functionality but is required +// for providing support for generating C code for OpenCV +// +// Examples +// img = CV_LoadImage('~/test.jpg',0) +// dst = CV_MedianBlur(img,3) // See also -// CV_GaussianBlur CV_Blur, CV_CvtColor +// CV_GaussianBlur, CV_Blur, CV_CvtColor // // Authors // Siddhesh Wani // + cvtimg = 0 -// This is curretly dummy function. It provides no functionality but is required -// for providing support for generating C code for OpenCV endfunction diff --git a/2.3-1/macros/ImageProcessing/imgproc/CV_Threshold.sci b/2.3-1/macros/ImageProcessing/imgproc/CV_Threshold.sci index 823a5768..0563c360 100644 --- a/2.3-1/macros/ImageProcessing/imgproc/CV_Threshold.sci +++ b/2.3-1/macros/ImageProcessing/imgproc/CV_Threshold.sci @@ -16,26 +16,27 @@ function cvtimg = CV_Threshold(srcimg,threshold,max_value,thresh_type) // // Parameters // srcimg: source image to be converted -// threshold: threshold value -// max_value: maximum value to be used with THRESH_BINARY and THRESH_BINARY_INV -// thresh_type: Type for threshold. It can one of the following: -// THRESH_BINARY, THRESH_BINARY_INV, THRESH_TRUNC, -// THRESH_TOZERO, THRESH_TOZERO_INV +// threshold: threshold value +// max_value: maximum value to be used with THRESH_BINARY and THRESH_BINARY_INV +// thresh_type: Type for threshold. It can one of the following: THRESH_BINARY, THRESH_BINARY_INV, THRESH_TRUNC, THRESH_TOZERO, THRESH_TOZERO_INV +// // Description -// This function can be used for converting an image to other colorspace. -// Refer OpenCV documentation for list of available conversions -// Examples -// img = CV_LoadImage('~/test.jpg',0) -// dst = CV_Threshold(img,100,255,'THRESH_BINARY') +// This function can be used for converting an image to other colorspace. +// Refer OpenCV documentation for list of available conversions +// +// This is curretly dummy function. It provides no functionality but is required +// for providing support for generating C code for OpenCV // +// Examples +// img = CV_LoadImage('~/test.jpg',0) +// dst = CV_Threshold(img,100,255,'THRESH_BINARY') // See also // CV_LoadImage CV_CreateImage // // Authors // Siddhesh Wani // + cvtimg = 0 -// This is curretly dummy function. It provides no functionality but is required -// for providing support for generating C code for OpenCV endfunction diff --git a/2.3-1/macros/ImageProcessing/imgproc/lib b/2.3-1/macros/ImageProcessing/imgproc/lib Binary files differindex 3d4060a2..656e3bb4 100644 --- a/2.3-1/macros/ImageProcessing/imgproc/lib +++ b/2.3-1/macros/ImageProcessing/imgproc/lib diff --git a/2.3-1/macros/Scilab-Arduino/GetArduinoFunctions.sci b/2.3-1/macros/Scilab-Arduino/GetArduinoFunctions.sci index a112fe6a..eff61fe6 100644 --- a/2.3-1/macros/Scilab-Arduino/GetArduinoFunctions.sci +++ b/2.3-1/macros/Scilab-Arduino/GetArduinoFunctions.sci @@ -30,6 +30,7 @@ ArduinoFunctions = [ "cmd_dcmotor_run" "cmd_servo_attach" "cmd_servo_detach" - "cmd_servo_move"]; + "cmd_servo_move" + "i2c_dev"]; endfunction diff --git a/2.3-1/macros/Scilab-Arduino/GetArduinoSetupFunctions.sci b/2.3-1/macros/Scilab-Arduino/GetArduinoSetupFunctions.sci index d2cd0c74..d310648e 100644 --- a/2.3-1/macros/Scilab-Arduino/GetArduinoSetupFunctions.sci +++ b/2.3-1/macros/Scilab-Arduino/GetArduinoSetupFunctions.sci @@ -24,6 +24,8 @@ function ArduinoSetupFunctions = GetArduinoSetupFunctions() ArduinoSetupFunctions = [ "cmd_dcmotor_setup" "cmd_servo_attach" - "cmd_servo_detach"]; + "cmd_servo_detach" + "i2c_dev"]; + endfunction diff --git a/2.3-1/macros/Scilab-Arduino/IsArduinoSetupFunction.sci b/2.3-1/macros/Scilab-Arduino/IsArduinoSetupFunction.sci index 3e1c18fb..4afceca8 100644 --- a/2.3-1/macros/Scilab-Arduino/IsArduinoSetupFunction.sci +++ b/2.3-1/macros/Scilab-Arduino/IsArduinoSetupFunction.sci @@ -9,6 +9,7 @@ // Email: toolbox@scilab.in function Output = IsArduinoSetupFunction(FunName) +disp(FunName) // ----------------------------------------------------------------- // Check whether input function name is an Arduino setup function or not. // @@ -25,6 +26,7 @@ function Output = IsArduinoSetupFunction(FunName) //Get list of supported functions for Arduino ArduinoSetupFunctions = GetArduinoSetupFunctions(); + //Check whether input function is present in above list or not FunNameInArduinoSetup = members(FunName,ArduinoSetupFunctions); Output = bool2s(FunNameInArduinoSetup~=0); diff --git a/2.3-1/macros/Scilab-Arduino/cmd_i2c_dev.sci b/2.3-1/macros/Scilab-Arduino/cmd_i2c_dev.sci new file mode 100644 index 00000000..37854cf3 --- /dev/null +++ b/2.3-1/macros/Scilab-Arduino/cmd_i2c_dev.sci @@ -0,0 +1,3 @@ +function z = cmd_i2c_dev(address) + z = 0 +endfunction diff --git a/2.3-1/macros/Scilab-Arduino/cmd_i2c_read.sci b/2.3-1/macros/Scilab-Arduino/cmd_i2c_read.sci new file mode 100644 index 00000000..1edc1aae --- /dev/null +++ b/2.3-1/macros/Scilab-Arduino/cmd_i2c_read.sci @@ -0,0 +1,2 @@ +function y = cmd_i2c_read(address,bytes) +endfunction diff --git a/2.3-1/macros/Scilab-Arduino/cmd_i2c_read_register.sci b/2.3-1/macros/Scilab-Arduino/cmd_i2c_read_register.sci new file mode 100644 index 00000000..f5394a66 --- /dev/null +++ b/2.3-1/macros/Scilab-Arduino/cmd_i2c_read_register.sci @@ -0,0 +1,3 @@ +function x = cmd_i2c_read_register(address,reg_adrs) + x = 0; +endfunction diff --git a/2.3-1/macros/Scilab-Arduino/cmd_i2c_write.sci b/2.3-1/macros/Scilab-Arduino/cmd_i2c_write.sci new file mode 100644 index 00000000..8ed8eb4e --- /dev/null +++ b/2.3-1/macros/Scilab-Arduino/cmd_i2c_write.sci @@ -0,0 +1,2 @@ +function cmd_i2c_write(address,data) +endfunction diff --git a/2.3-1/macros/Scilab-Arduino/cmd_i2c_write_register.sci b/2.3-1/macros/Scilab-Arduino/cmd_i2c_write_register.sci new file mode 100644 index 00000000..02c48393 --- /dev/null +++ b/2.3-1/macros/Scilab-Arduino/cmd_i2c_write_register.sci @@ -0,0 +1,2 @@ +function cmd_i2c_write_register(address, reg_adrs, data) +endfunction diff --git a/2.3-1/macros/Scilab-Arduino/lib b/2.3-1/macros/Scilab-Arduino/lib Binary files differindex 27412878..60340e21 100644 --- a/2.3-1/macros/Scilab-Arduino/lib +++ b/2.3-1/macros/Scilab-Arduino/lib diff --git a/2.3-1/macros/Scilab-Arduino/names b/2.3-1/macros/Scilab-Arduino/names index 55eb6fef..8b8d7c48 100644 --- a/2.3-1/macros/Scilab-Arduino/names +++ b/2.3-1/macros/Scilab-Arduino/names @@ -4,3 +4,8 @@ GetArduinoSetupFunctions InsertSetupInList IsArduinoFunction IsArduinoSetupFunction +cmd_i2c_dev +cmd_i2c_read +cmd_i2c_read_register +cmd_i2c_write +cmd_i2c_write_register diff --git a/2.3-1/macros/SymbolTable/ST_AnalyzeScope.sci b/2.3-1/macros/SymbolTable/ST_AnalyzeScope.sci index 6ce94820..8389c09a 100644 --- a/2.3-1/macros/SymbolTable/ST_AnalyzeScope.sci +++ b/2.3-1/macros/SymbolTable/ST_AnalyzeScope.sci @@ -84,7 +84,6 @@ for cntout = 1:NOutArg // #RNU_RES_E
OutArg(cntout).Scope = 'Local';
end
-
// #RNU_RES_B
// --- Check in global symbol table. ---
// #RNU_RES_E
diff --git a/2.3-1/macros/SymbolTable/ST_GetInArgInfo.sci b/2.3-1/macros/SymbolTable/ST_GetInArgInfo.sci index 9f5cbd4e..4c85408c 100644 --- a/2.3-1/macros/SymbolTable/ST_GetInArgInfo.sci +++ b/2.3-1/macros/SymbolTable/ST_GetInArgInfo.sci @@ -49,13 +49,13 @@ for cntinarg = 1:NInArg tmpname = InArg(cntinarg).Name;
tmpscope = InArg(cntinarg).Scope;
lengthNumber = length('Number_');
- if (part(tmpscope,1:lengthNumber) == 'Number_')
+ if (part(tmpscope,1:lengthNumber) == 'Number_')
// #RNU_RES_B
PrintStringInfo('Input Argument '+string(cntinarg)+' is a number: '+tmpname+'.',FileInfo.Funct(nxtscifunnumber).ReportFileName,'file');
// #RNU_RES_E
UpdatedInArg(cntinarg).Type = part(tmpscope,lengthNumber+1:lengthNumber+1);
if (UpdatedInArg(cntinarg).Type == 'x')
- UpdatedInArg(cntinarg).Type = SharedInfo.DefaultPrecision; // It is the default.
+ UpdatedInArg(cntinarg).Type = SharedInfo.DefaultPrecision; // It is the default
elseif (UpdatedInArg(cntinarg).Type == 'X')
if (SharedInfo.DefaultPrecision == 's')
UpdatedInArg(cntinarg).Type = 'c'; // It is the default.
@@ -101,6 +101,17 @@ for cntinarg = 1:NInArg UpdatedInArg(cntinarg).FindLike = 0;
UpdatedInArg(cntinarg).Dimension = 0;
UpdatedInArg(cntinarg).Scope = 'Number';
+ if((ASTFunName == 'cmd_analog_in' | ASTFunName == 'cmd_analog_in_volt' ) & cntinarg == 2)
+ numvalue = eval(tmpname);
+ if (SharedInfo.Board_name == 'mega' | SharedInfo.Board_name == 'mega2560') then
+ tmpname = string(numvalue + 54)
+ UpdatedInArg(cntinarg).Value = 54 + numvalue;
+ else
+ tmpname = string(numvalue + 14)
+ UpdatedInArg(cntinarg).Value = 14 + numvalue;
+ end
+ UpdatedInArg(cntinarg).Name = tmpname; // Change the name.
+ end
elseif (tmpscope == 'String')
// #RNU_RES_B
diff --git a/2.3-1/macros/SymbolTable/ST_InsOutArg.sci b/2.3-1/macros/SymbolTable/ST_InsOutArg.sci index f4958ff7..fd6b426c 100644 --- a/2.3-1/macros/SymbolTable/ST_InsOutArg.sci +++ b/2.3-1/macros/SymbolTable/ST_InsOutArg.sci @@ -47,8 +47,6 @@ PrintStringInfo('***Putting output arguments in the symbol table***',ReportFileN // ---------------------------
// --- End Initialization. ---
// ---------------------------
-
-
for counteroutput = 1:NOutArg
// #RNU_RES_B
PrintStringInfo(' Symbol ""'+OutArg(counteroutput).Name+'""',ReportFileName,'file','y','n');
diff --git a/2.3-1/macros/SymbolTable/ST_InsOutArg_Dup.sci b/2.3-1/macros/SymbolTable/ST_InsOutArg_Dup.sci new file mode 100644 index 00000000..bca66235 --- /dev/null +++ b/2.3-1/macros/SymbolTable/ST_InsOutArg_Dup.sci @@ -0,0 +1,195 @@ +function ST_InsOutArg_Dup(InArg,NInArg,OutArg,NOutArg,com_type,FileInfo,SharedInfo,MatchRule) +// function ST_InsOutArg(OutArg,NOutArg,FileInfo,SharedInfo,MatchRule) +// ----------------------------------------------------------------- +// //NUT: add description here +// +// Input data: +// //NUT: add description here +// +// Output data: +// //NUT: add description here +// +// Status: +// 26-Oct-2007 -- Raffaele Nutricato: Author. +// 26-Oct-2007 -- Alberto Morea: Test Ok. +// +// Copyright 2007 Raffaele Nutricato & Alberto Morea. +// Contact: raffaele.nutricato@tiscali.it +// ----------------------------------------------------------------- +SCI2CNInArgCheck(argn(2),8,8) + + +// ------------------------------ +// --- Check input arguments. --- +// ------------------------------ +//SCI2CNInArgCheck(argn(2),5,5); + +// ----------------------- +// --- Initialization. --- +// ----------------------- +nxtscifunname = SharedInfo.NextSCIFunName; +nxtscifunnumber = SharedInfo.NextSCIFunNumber; +ReportFileName = FileInfo.Funct(nxtscifunnumber).ReportFileName; +CDeclarationFileName = FileInfo.Funct(nxtscifunnumber).CDeclarationFileName; +CGblDeclarFileName = FileInfo.Funct(nxtscifunnumber).CGblDeclarFileName; + +GlobalVarsFileName = FileInfo.GlobalVarFileName; +LocalVarsFileName = FileInfo.Funct(nxtscifunnumber).LocalVarFileName; +TempVarsFileName = FileInfo.Funct(nxtscifunnumber).TempVarFileName; + +CPass1FileName = FileInfo.Funct(nxtscifunnumber).CPass1FileName; +CPass1FreeFileName = FileInfo.Funct(nxtscifunnumber).CPass1FreeFileName; + + +// #RNU_RES_B +PrintStringInfo(' ',ReportFileName,'file','y'); +PrintStringInfo('***Putting output arguments in the symbol table***',ReportFileName,'file','y','n'); +// #RNU_RES_E +// --------------------------- +// --- End Initialization. --- +// --------------------------- + + +for counteroutput = 1:NOutArg + // #RNU_RES_B + PrintStringInfo(' Symbol ""'+OutArg(counteroutput).Name+'""',ReportFileName,'file','y','n'); + PrintStringInfo(' Type: '+OutArg(counteroutput).Type,ReportFileName,'file','y','n'); + PrintStringInfo(' Size(1): '+string(OutArg(counteroutput).Size(1)),ReportFileName,'file','y','n'); + PrintStringInfo(' Size(2): '+string(OutArg(counteroutput).Size(2)),ReportFileName,'file','y','n'); + PrintStringInfo(' Value: '+string(OutArg(counteroutput).Value),ReportFileName,'file','y','n'); + PrintStringInfo(' FindLike: '+string(OutArg(counteroutput).FindLike),ReportFileName,'file','y','n'); + PrintStringInfo(' Dimension: '+string(OutArg(counteroutput).Dimension),ReportFileName,'file','y','n'); + PrintStringInfo(' Scope: '+string(OutArg(counteroutput).Scope),ReportFileName,'file','y','n'); + PrintStringInfo(' ',ReportFileName,'file','y','n'); + // #RNU_RES_E + if (OutArg(counteroutput).Scope == 'Temp') + SymbTableFileName = TempVarsFileName; + elseif (OutArg(counteroutput).Scope == 'Local') + SymbTableFileName = LocalVarsFileName; + elseif (OutArg(counteroutput).Scope == 'Global') + SymbTableFileName = GlobalVarsFileName; + else + error(9999, 'Unknown scope ""'+OutArg(counteroutput).Scope+'"" for symbol: '+OutArg(counteroutput).Name); + end + // #RNU_RES_B + PrintStringInfo(' Setting symbol ""'+OutArg(counteroutput).Name+'"" in '+SymbTableFileName+'.',ReportFileName,'file','y'); + // #RNU_RES_E + + // #RNU_RES_B + // Check existence and conflicts in the symbol table. + // Here we have four possibilities: + // 1. the symbol is a global variable not initialized yet -> we have to initialize it. + // 2. the symbol already exists with different settings -> we have to issue an error. + // 3. the symbol already exists with the same settings -> ok, we don't have to do nothing. + // 4. the symbol doesn't exist -> we have to insert it into the table. + // #RNU_RES_E + [TBFlagfound,TBFlagEqualSymbols] = ... + ST_MatchSymbol(OutArg(counteroutput).Name,... + OutArg(counteroutput).Type,... + OutArg(counteroutput).Size,... + OutArg(counteroutput).Value,... + OutArg(counteroutput).FindLike,... + OutArg(counteroutput).Dimension,... + SymbTableFileName,MatchRule); + + if (TBFlagfound == 1) + if (TBFlagEqualSymbols == 0) + PrintStringInfo(' ',ReportFileName,'both','y'); + PrintStringInfo('SCI2CERROR: Symbol Table Conflict. Trying to insert again symbol ""'+... + OutArg(counteroutput).Name+'"" with different settings',ReportFileName,'both','y'); + PrintStringInfo('SCI2CERROR: Please check that you are not using variable ""'+OutArg(counteroutput).Name+'""',ReportFileName,'both','y'); + PrintStringInfo('SCI2CERROR: with different sizes and/or types.',ReportFileName,'both','y'); + PrintStringInfo(' ',ReportFileName,'both','y'); + error(9999, 'SCI2CERROR: Symbol Table Conflict. Trying to insert again symbol ""'+... + OutArg(counteroutput).Name+'"" with different settings'); + else + // #RNU_RES_B + // It's ok symbols do match. + //NUT: forse occorre un altro check sulla size per capire se occore fare il malloc. + //NUT: qui entro anche quando ho una variabile global gia' dichiarata tale in un altro + //NUT: per cui devo dichiararala come external. + //RNU qui ci puoi mettere una warning quando stai riallocando uno stesso simbolo con size simbolica. + //RNU puoi anche aggiungere del codice in c o un semplice commento. per esempio una funzione c del tipo checksize che controlla il valore + //RNU prima dopo delle size di una data variabile. Cosa succede se cambio la size anche nel caso di array e approccio + //RNU di resize non attivo? L'unica cosa e' che molte size numeriche scompaiono e incomincio a creare numerose variabili + //RNU con size simbolica. + + // If the symbol is scalar we update its value if it is an array we update its size + // only in case we are using the 'REALLOC_ALL_RESIZE_ALL' resize approach + // #RNU_RES_E + if ((GetSymbolDimension(OutArg(counteroutput).Size)) == 0 | (SharedInfo.ResizeApproach=='REALLOC_ALL_RESIZE_ALL')) + ST_Set(OutArg(counteroutput).Name,... + OutArg(counteroutput).Type,... + OutArg(counteroutput).Size,... + OutArg(counteroutput).Value,... + OutArg(counteroutput).FindLike,... + OutArg(counteroutput).Dimension,... + SymbTableFileName); + end + + // IndentLevelDeclaration = 1; //NUT: per ora lo forzo sempre a 1 + // IndentLevelMalloc = SharedInfo.NIndent; + // FlagExt = 0; + // C_GenDeclarations(OutArg(counteroutput),CDeclarationFileName,IndentLevelDeclaration,ReportFileName,FlagExt,SharedInfo.ResizeApproach); + + + end + elseif (TBFlagfound == 2) + // #RNU_RES_B + // We have a non-initialized global variable. + // Set the non-initialized global variable. + PrintStringInfo(' Found a non-initialized global variable.',ReportFileName,'file','y'); + // #RNU_RES_E + ST_Set(OutArg(counteroutput).Name,... + OutArg(counteroutput).Type,... + OutArg(counteroutput).Size,... + OutArg(counteroutput).Value,... + OutArg(counteroutput).FindLike,... + OutArg(counteroutput).Dimension,... + SymbTableFileName); + IndentLevel = 0; //NUT: forced always to 1 + FlagExt = 0; + C_GenDeclarations(OutArg(counteroutput),CGblDeclarFileName,IndentLevel,ReportFileName,FlagExt,SharedInfo.ResizeApproach); + IndentLevelMalloc = SharedInfo.NIndent; + // #RNU_RES_B + //RNU da verificare bene qui. Cio' che si verifica e' che se la size della globale e' simbolica + //RNU allora si assume che essa sia da allocare come puntatore e poi realloc. + // #RNU_RES_E + C_MemAllocOutTempVars(OutArg(counteroutput),1,CPass1FileName,CPass1FreeFileName,IndentLevelMalloc,ReportFileName,SharedInfo.ResizeApproach); + else + if (OutArg(counteroutput).FindLike == 1) + // #RNU_RES_B + // In presence of find-like functions the size must be always symbolic. + // Don't change here the value of OutArg.Size because the first time + // I need them to declare the OutArg variable with the values assumed by OutArg.Size. + // #RNU_RES_E + TmpOutArgSize(1) = '__'+OutArg(counteroutput).Name+'Size[0]'; + TmpOutArgSize(2) = '__'+OutArg(counteroutput).Name+'Size[1]'; + else + TmpOutArgSize(1) = OutArg(counteroutput).Size(1); + TmpOutArgSize(2) = OutArg(counteroutput).Size(2); + end + // #RNU_RES_B + // Set a new symbol. + // #RNU_RES_E + ST_Set(OutArg(counteroutput).Name,... + OutArg(counteroutput).Type,... + TmpOutArgSize,... + OutArg(counteroutput).Value,... + OutArg(counteroutput).FindLike,... + OutArg(counteroutput).Dimension,... + SymbTableFileName); + IndentLevelDeclaration = 1; //NUT: per ora lo forzo sempre a 1 + IndentLevelMalloc = SharedInfo.NIndent; + FlagExt = 0; + C_GenDeclarations_Dup(InArg,NInArg,com_type,OutArg(counteroutput),CPass1FileName,IndentLevelDeclaration,ReportFileName,FlagExt,SharedInfo.ResizeApproach); + // #RNU_RES_B + //RNU aggiunta qui in modo che le malloc saranno fatte una sola volta: + //RNU verifica che tutto funzioni e chi altro usa la C_MemAlloc per capire se si puo' ottimizzare per questo stadio. + // #RNU_RES_E + C_MemAllocOutTempVars(OutArg(counteroutput),1,CPass1FileName,CPass1FreeFileName,IndentLevelMalloc,ReportFileName,SharedInfo.ResizeApproach); + end + +end + +endfunction diff --git a/2.3-1/macros/SymbolTable/lib b/2.3-1/macros/SymbolTable/lib Binary files differindex 8b39d18f..165b7070 100644 --- a/2.3-1/macros/SymbolTable/lib +++ b/2.3-1/macros/SymbolTable/lib diff --git a/2.3-1/macros/SymbolTable/names b/2.3-1/macros/SymbolTable/names index b5a7d65f..c2efc843 100644 --- a/2.3-1/macros/SymbolTable/names +++ b/2.3-1/macros/SymbolTable/names @@ -6,6 +6,7 @@ ST_GetInArgInfo ST_GetSymbolInfo ST_InsForCntVars ST_InsOutArg +ST_InsOutArg_Dup ST_Load ST_MatchSymbol ST_Save diff --git a/2.3-1/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci b/2.3-1/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci index c874416e..5bc80436 100644 --- a/2.3-1/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci +++ b/2.3-1/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci @@ -437,6 +437,82 @@ PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file', INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+// ---------------------
+// --- Class Uint32. ---
+// ---------------------
+ClassName = 'Uint32';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''u32''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('s0'+ArgSeparator+'u320',ClassFileName,'file','y');
+PrintStringInfo('d0'+ArgSeparator+'u320',ClassFileName,'file','y');
+PrintStringInfo('u80'+ArgSeparator+'u320',ClassFileName,'file','y');
+PrintStringInfo('i80'+ArgSeparator+'u320',ClassFileName,'file','y');
+PrintStringInfo('u160'+ArgSeparator+'u320',ClassFileName,'file','y');
+PrintStringInfo('i160'+ArgSeparator+'u320',ClassFileName,'file','y');
+PrintStringInfo('i320'+ArgSeparator+'u320',ClassFileName,'file','y');
+PrintStringInfo('s2'+ArgSeparator+'u322',ClassFileName,'file','y');
+PrintStringInfo('d2'+ArgSeparator+'u322',ClassFileName,'file','y');
+PrintStringInfo('u82'+ArgSeparator+'u322',ClassFileName,'file','y');
+PrintStringInfo('i82'+ArgSeparator+'u322',ClassFileName,'file','y');
+PrintStringInfo('u162'+ArgSeparator+'u322',ClassFileName,'file','y');
+PrintStringInfo('i162'+ArgSeparator+'u322',ClassFileName,'file','y');
+PrintStringInfo('i322'+ArgSeparator+'u322',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'uint32';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+
+// ---------------------
+// --- Class Int32. ---
+// ---------------------
+ClassName = 'Int32';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''i32''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('s0'+ArgSeparator+'i320',ClassFileName,'file','y');
+PrintStringInfo('d0'+ArgSeparator+'i320',ClassFileName,'file','y');
+PrintStringInfo('u80'+ArgSeparator+'i320',ClassFileName,'file','y');
+PrintStringInfo('i80'+ArgSeparator+'i320',ClassFileName,'file','y');
+PrintStringInfo('u160'+ArgSeparator+'i320',ClassFileName,'file','y');
+PrintStringInfo('i160'+ArgSeparator+'i320',ClassFileName,'file','y');
+PrintStringInfo('u320'+ArgSeparator+'i320',ClassFileName,'file','y');
+PrintStringInfo('s2'+ArgSeparator+'i322',ClassFileName,'file','y');
+PrintStringInfo('d2'+ArgSeparator+'i322',ClassFileName,'file','y');
+PrintStringInfo('u82'+ArgSeparator+'i322',ClassFileName,'file','y');
+PrintStringInfo('i82'+ArgSeparator+'i322',ClassFileName,'file','y');
+PrintStringInfo('u162'+ArgSeparator+'i322',ClassFileName,'file','y');
+PrintStringInfo('i162'+ArgSeparator+'i322',ClassFileName,'file','y');
+PrintStringInfo('u322'+ArgSeparator+'i322',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'int32';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
// ------------------
// --- Class Sin. ---
// ------------------
@@ -844,6 +920,212 @@ INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,E INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
// -------------------
+// --- Class Isreal. ---
+// -------------------
+ClassName = 'Isreal';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+//Was FA_TP_USER
+//Cause some trouble if user specify some precision and if input(and also output) is complex.
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y'); //FOR INRIA changed from IN(1).TP to FA_TP_USER
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+//---Function list class. ----
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+//PrintStringInfo('z0'+ArgSeparator+'d0',ClassFileName,'file','y');
+//PrintStringInfo('z0'+ArgSeparator+'z0',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'isreal';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+
+ClassName = 'gcd';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+//Was FA_TP_USER
+//Cause some trouble if user specify some precision and if input(and also output) is complex.
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y'); //FOR INRIA changed from IN(1).TP to FA_TP_USER
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+//---Function list class. ----
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('u82'+ArgSeparator+'u80',ClassFileName,'file','y');
+PrintStringInfo('u80'+ArgSeparator+'u80',ClassFileName,'file','y');
+//PrintStringInfo('d2'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'gcd';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+ClassName = 'nextpow2';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+//Was FA_TP_USER
+//Cause some trouble if user specify some precision and if input(and also output) is complex.
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y'); //FOR INRIA changed from IN(1).TP to FA_TP_USER
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+//PrintStringInfo('u82'+ArgSeparator+'u80',ClassFileName,'file','y');
+//PrintStringInfo('u80'+ArgSeparator+'u80',ClassFileName,'file','y');
+PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'nextpow2';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+
+
+ClassName = 'interp1';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+//Was FA_TP_USER
+//Cause some trouble if user specify some precision and if input(and also output) is complex.
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y'); //FOR INRIA changed from IN(1).TP to FA_TP_USER
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+//Was FA_TP_USER
+//Cause some trouble if user specify some precision and if input(and also output) is complex.
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y'); //FOR INRIA changed from IN(1).TP to FA_TP_USER
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+
+PrintStringInfo('NIN= 3',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+//Was FA_TP_USER
+//Cause some trouble if user specify some precision and if input(and also output) is complex.
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y'); //FOR INRIA changed from IN(1).TP to FA_TP_USER
+PrintStringInfo('OUT(1).SZ(1)= IN(3).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(3).SZ(2)',ClassFileName,'file','y');
+
+PrintStringInfo('NIN= 4',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+//Was FA_TP_USER
+//Cause some trouble if user specify some precision and if input(and also output) is complex.
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y'); //FOR INRIA changed from IN(1).TP to FA_TP_USER
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+
+//---Function list class. ----
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+//PrintStringInfo('u82'+ArgSeparator+'u80',ClassFileName,'file','y');
+//PrintStringInfo('u80'+ArgSeparator+'u80',ClassFileName,'file','y');
+//PrintStringInfo('d2'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('d2d2d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('d2d2d2g2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('s2s2s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('s2s2s2g2'+ArgSeparator+'s2',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'interp1';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+
+// -------------------
+// --- Class DCT. ---
+// -------------------
+ClassName = 'dct';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+//Was FA_TP_USER
+//Cause some trouble if user specify some precision and if input(and also output) is complex.
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y'); //FOR INRIA changed from IN(1).TP to FA_TP_USER
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+//Was FA_TP_USER
+//Cause some trouble if user specify some precision and if input(and also output) is complex.
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y'); //FOR INRIA changed from IN(1).TP to FA_TP_USER
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+
+PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('d2d0'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('s2s0'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('z2d0'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('c2s0'+ArgSeparator+'c2',ClassFileName,'file','y');
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'dct';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+// -------------------
+// --- Class IDCT. ---
+// -------------------
+ClassName = 'idct';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+//Was FA_TP_USER
+//Cause some trouble if user specify some precision and if input(and also output) is complex.
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y'); //FOR INRIA changed from IN(1).TP to FA_TP_USER
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+
+PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'idct';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+
+
+// -------------------
// --- Class Sqrt. ---
// -------------------
ClassName = 'Sqrt';
@@ -1203,7 +1485,9 @@ ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls); PrintStringInfo('d0d0d0'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('s0s0s0'+ArgSeparator+'s2',ClassFileName,'file','y');
PrintStringInfo('d2d2d0'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('s2s2s0'+ArgSeparator+'s2',ClassFileName,'file','y');
// --- Annotation Function And Function List Function. ---
@@ -4264,6 +4548,49 @@ PrintStringInfo('OUT(2).TP= FA_TP_COMPLEX(IN(1).TP)',ClassFileName,'file','y' PrintStringInfo('OUT(2).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
PrintStringInfo('OUT(2).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+// Edited by Sandeep Gupta, IITB FOSSEE Project.
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= FA_TP_COMPLEX(IN(1).TP)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 2',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= FA_TP_COMPLEX(IN(1).TP)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(2)= ''1''',ClassFileName,'file','y');
+
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 3',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= FA_TP_COMPLEX(IN(1).TP)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(2)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(3).TP= FA_TP_COMPLEX(IN(1).TP)',ClassFileName,'file','y');
+PrintStringInfo('OUT(3).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(3).SZ(2)= IN(1).SZ(1)',ClassFileName,'file','y');
+
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 4',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= FA_TP_COMPLEX(IN(1).TP)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(2)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(3).TP= FA_TP_COMPLEX(IN(1).TP)',ClassFileName,'file','y');
+PrintStringInfo('OUT(3).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(3).SZ(2)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(4).TP= FA_TP_COMPLEX(IN(1).TP)',ClassFileName,'file','y');
+PrintStringInfo('OUT(4).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(4).SZ(2)= IN(1).SZ(1)',ClassFileName,'file','y');
+
// --- Function List Class. ---
//NUT: no mixed data types
ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
@@ -4292,6 +4619,12 @@ PrintStringInfo('d2'+ArgSeparator+'z2z2',ClassFileName,'file','y'); PrintStringInfo('c2'+ArgSeparator+'c2c2',ClassFileName,'file','y');
PrintStringInfo('z2'+ArgSeparator+'z2z2',ClassFileName,'file','y');
+PrintStringInfo('d2d2'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('d2d2'+ArgSeparator+'z2d2',ClassFileName,'file','y');
+PrintStringInfo('d2d2'+ArgSeparator+'z2d2z2',ClassFileName,'file','y');
+PrintStringInfo('d2d2'+ArgSeparator+'z2d2z2z2',ClassFileName,'file','y');
+
+
// --- Annotation Function And Function List Function. ---
FunctionName = 'spec'; // AS : Done AS : Float_Done
PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
@@ -4636,6 +4969,165 @@ INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,Ex //------------------------------------
+//---- Class cmd_analog_in_volt -----------
+//------------------------------------
+ClassName = 'cmd_analog_in_volt';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''s''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('d0d0'+ArgSeparator+'s0',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'cmd_analog_in_volt';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+
+//------------------------------------
+//---- Class cmd_i2c_dev -----------
+//------------------------------------
+ClassName = 'cmd_i2c_dev';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''u8''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('d0'+ArgSeparator+'u80',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'cmd_i2c_dev';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+
+
+//------------------------------------
+//---- Class cmd_i2c_write -----------
+//------------------------------------
+ClassName = 'cmd_i2c_write';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 0 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''s''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('d0d0'+ArgSeparator+'',ClassFileName,'file','y');
+PrintStringInfo('u80d0'+ArgSeparator+'',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'cmd_i2c_write';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+
+//------------------------------------
+//---- Class cmd_i2c_read -----------
+//------------------------------------
+ClassName = 'cmd_i2c_read';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''s''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('d0d0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('u80d0'+ArgSeparator+'s0',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'cmd_i2c_read';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+
+//------------------------------------
+//---- Class cmd_i2c_read_register -----------
+//------------------------------------
+ClassName = 'cmd_i2c_read_register';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''u16''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('d0d0'+ArgSeparator+'u160',ClassFileName,'file','y');
+PrintStringInfo('u80d0'+ArgSeparator+'u160',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'cmd_i2c_read_register';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+
+
+
+//------------------------------------
+//---- Class cmd_i2c_write_register -----------
+//------------------------------------
+ClassName = 'cmd_i2c_write_register';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 3',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 0 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''s''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('d0d0d0'+ArgSeparator+'',ClassFileName,'file','y');
+PrintStringInfo('u80d0d0'+ArgSeparator+'',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'cmd_i2c_write_register';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+
+
+
+//------------------------------------
//---- Class Sleep -------------------
//------------------------------------
@@ -4662,6 +5154,57 @@ INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,Ex //------------------------------------
+//---- Class cmd_analog_out_volt ----------
+//------------------------------------
+ClassName = 'cmd_analog_out_volt';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 3',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 0 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''u8''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('d0d0d0'+ArgSeparator+'',ClassFileName,'file','y');
+PrintStringInfo('d0d0s0'+ArgSeparator+'',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'cmd_analog_out_volt';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+//------------------------------------
+//---- Class cmd_dcmotor_release -------
+//------------------------------------
+ClassName = 'cmd_dcmotor_release';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 0 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''u8''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('d0d0'+ArgSeparator+'',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'cmd_dcmotor_release';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+
+
+//------------------------------------
//---Functions for AVR ---------------
//------------------------------------
@@ -5149,9 +5692,6 @@ INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,Ex -
-
-
//------------------------------------
//---- Class AVRUARTReceiveChar -----------
//------------------------------------
@@ -5168,8 +5708,6 @@ PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y'); // --- Function List Class. ---
ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
-//PrintStringInfo('d0d0d0'+ArgSeparator+'u80',ClassFileName,'file','y');
-//PrintStringInfo('d0d0u80'+ArgSeparator+'u80',ClassFileName,'file','y');
PrintStringInfo(''+ArgSeparator+'',ClassFileName,'file','y');
// --- Annotation Function And Function List Function. ---
@@ -5180,323 +5718,919 @@ INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,Ex +
//------------------------------------
-//---- Class RPI_DigitalSetup --------
+//---- Class RPI_0IN_Void ----------
//------------------------------------
-ClassName = 'RPI_DigitalSetup';
+ClassName = 'RPI_0IN_Void';
// --- Class Annotation. ---
PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
-PrintStringInfo('NIN= 2',ClassFileName,'file','y');
-PrintStringInfo('NOUT= 0 ',ClassFileName,'file','y');
+PrintStringInfo('NIN= 0',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 0',ClassFileName,'file','y');
PrintStringInfo('OUT(1).TP= ''u8''',ClassFileName,'file','y');
PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
// --- Function List Class. ---
ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
PrintStringInfo(''+ArgSeparator+'',ClassFileName,'file','y');
// --- Annotation Function And Function List Function. ---
-FunctionName = 'RPI_DigitalSetup';
+FunctionName = 'RPI_gertBoardSPISetup';
PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
-FunctionName = 'RPI_DigitalOut';
+//------------------------------------
+//---- Class RPI_0IN_u8 ------------
+//------------------------------------
+ClassName = 'RPI_0IN_u8';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 0',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''u8''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo(''+ArgSeparator+'u80',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'RPI_boardRev';
PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_digitalReadByte';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+//------------------------------------
+//---- Class RPI_0IN_u32 -----------
+//------------------------------------
+ClassName = 'RPI_0IN_u32';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 0',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''u32''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
-FunctionName = 'RPI_HardPWMWrite';
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo(''+ArgSeparator+'u320',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'RPI_millis';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_micros';
PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
//------------------------------------
-//---- Class RPI_DigitalIn -----------
+//---- Class RPI_1IN_u8_Void -------
//------------------------------------
-ClassName = 'RPI_DigitalIn';
+ClassName = 'RPI_1IN_u8_Void';
// --- Class Annotation. ---
PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
PrintStringInfo('NIN= 1',ClassFileName,'file','y');
-PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 0',ClassFileName,'file','y');
PrintStringInfo('OUT(1).TP= ''u8''',ClassFileName,'file','y');
PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
// --- Function List Class. ---
ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
-
-PrintStringInfo(''+ArgSeparator+'',ClassFileName,'file','y');
+PrintStringInfo('u80'+ArgSeparator+'',ClassFileName,'file','y');
// --- Annotation Function And Function List Function. ---
-FunctionName = 'RPI_DigitalIn';
+FunctionName = 'RPI_digitalWriteByte';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_lcdClear';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_lcdHome';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_piGlowSetup';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_serialClose';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_serialFlush';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_softPwmStop';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_softToneStop';
PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
//------------------------------------
-//---- Class RPI_DelayMilli ----------
+//---- Class RPI_1IN_u16_Void ------
//------------------------------------
-ClassName = 'RPI_DelayMilli';
+ClassName = 'RPI_1IN_u16_Void';
-//--- Class Annotation. ---
+// --- Class Annotation. ---
PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
PrintStringInfo('NIN= 1',ClassFileName,'file','y');
-PrintStringInfo('NOUT= 0 ',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 0',ClassFileName,'file','y');
PrintStringInfo('OUT(1).TP= ''u8''',ClassFileName,'file','y');
PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
-//--- Function List Class. ---
+// --- Function List Class. ---
ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('u160'+ArgSeparator+'',ClassFileName,'file','y');
-PrintStringInfo(''+ArgSeparator+'',ClassFileName,'file','y');
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'RPI_pwmClock';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+//------------------------------------
+//---- Class RPI_1IN_u32_Void ------
+//------------------------------------
+ClassName = 'RPI_1IN_u32_Void';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 0',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''u8''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('u320'+ArgSeparator+'',ClassFileName,'file','y');
// --- Annotation Function And Function List Function. ---
-FunctionName = 'RPI_DelayMilli';
+FunctionName = 'RPI_pwmRange';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_delay';
PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_delayMicro';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+//------------------------------------
+//---- Class RPI_1IN_g_Void --------
+//------------------------------------
+ClassName = 'RPI_1IN_g_Void';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 0',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''u8''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('g2'+ArgSeparator+'',ClassFileName,'file','y');
-FunctionName = 'RPI_DelayMicro';
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'RPI_pwmMode';
PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
-FunctionName = 'RPI_SerialClose';
+//------------------------------------
+//---- Class RPI_1IN_u8_i8 ---------
+//------------------------------------
+ClassName = 'RPI_1IN_u8_i8';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''i8''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('u80'+ArgSeparator+'i80',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'RPI_I2CSetup';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_wpiToGpio';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_physToGpio';
PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
-FunctionName = 'RPI_SerialFlush';
+//------------------------------------
+//---- Class RPI_1IN_u16_i8 --------
+//------------------------------------
+ClassName = 'RPI_1IN_u16_i8';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''i8''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('u160'+ArgSeparator+'i80',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'RPI_I2CRead';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_gertboardAnalogSetup';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_sn3218Setup';
PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
-FunctionName = 'RPI_HardPWMSetRange';
+//------------------------------------
+//---- Class RPI_1IN_g_i8 ----------
+//------------------------------------
+ClassName = 'RPI_1IN_g_i8';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''i8''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('g2'+ArgSeparator+'i80',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'RPI_pinNumbering';
PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
-FunctionName = 'RPI_HardPWMSetClock';
+//------------------------------------
+//---- Class RPI_1IN_u8_u8 ---------
+//------------------------------------
+ClassName = 'RPI_1IN_u8_u8';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''u8''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('u80'+ArgSeparator+'u80',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'RPI_getAlt';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_digitalRead';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_serialDataAvail';
PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_softToneCreate';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+//------------------------------------
+//---- Class RPI_1IN_u16_u16 -------
+//------------------------------------
+ClassName = 'RPI_1IN_u16_u16';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''u16''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('u160'+ArgSeparator+'u160',ClassFileName,'file','y');
-FunctionName = 'RPI_HardPWMSetMode';
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'RPI_gertboardAnalogRead';
PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
//------------------------------------
-//---- Class RPI_GetMilli ----------
+//---- Class RPI_1IN_u8_g ------
//------------------------------------
-ClassName = 'RPI_GetMilli';
+ClassName = 'RPI_1IN_u8_g';
// --- Class Annotation. ---
PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
-PrintStringInfo('NIN= 0',ClassFileName,'file','y');
-PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
-PrintStringInfo('OUT(1).TP= ''u32''',ClassFileName,'file','y');
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''g''',ClassFileName,'file','y');
PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
// --- Function List Class. ---
ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('u80'+ArgSeparator+'g2',ClassFileName,'file','y');
-PrintStringInfo(''+ArgSeparator+'',ClassFileName,'file','y');
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'RPI_serialGetchar';
+
+//------------------------------------
+//---- Class RPI_2IN_u8u8_Void -----
+//------------------------------------
+ClassName = 'RPI_2IN_u8u8_Void';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 0',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''u8''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('u80u80'+ArgSeparator+'',ClassFileName,'file','y');
// --- Annotation Function And Function List Function. ---
-FunctionName = 'RPI_GetMillis';
+FunctionName = 'RPI_pinModeAlt';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_lcdCursor';
PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_lcdSendCommand';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_lcdCursorBlink';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_lcdDisplay';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_lcdPutchar';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_padDrive';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_piGlowLeg';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_piGlowRing';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_digitalWrite';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_serialPutchar';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+//------------------------------------
+//---- Class RPI_2IN_u8u16_Void ----
+//------------------------------------
+ClassName = 'RPI_2IN_u8u16_Void';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 0',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''u8''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('u80u160'+ArgSeparator+'',ClassFileName,'file','y');
-FunctionName = 'RPI_GetMicros';
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'RPI_pwmWrite';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_pwmToneWrite';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_softPwmWrite';
PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
//------------------------------------
-//---- Class RPI_SetupSerial ----------
+//---- Class RPI_2IN_u16u16_Void ---
//------------------------------------
-ClassName = 'RPI_SetupSerial';
+ClassName = 'RPI_2IN_u16u16_Void';
// --- Class Annotation. ---
PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
PrintStringInfo('NIN= 2',ClassFileName,'file','y');
-PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
-PrintStringInfo('OUT(1).TP= ''u16''',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 0',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''u8''',ClassFileName,'file','y');
PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
// --- Function List Class. ---
ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('u160u160'+ArgSeparator+'',ClassFileName,'file','y');
-PrintStringInfo(''+ArgSeparator+'',ClassFileName,'file','y');
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'RPI_gertboardAnalogWrite';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+//------------------------------------
+//---- Class RPI_2IN_u8g_Void ------
+//------------------------------------
+ClassName = 'RPI_2IN_u8g_Void';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 0',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''u8''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('u80g2'+ArgSeparator+'',ClassFileName,'file','y');
// --- Annotation Function And Function List Function. ---
-FunctionName = 'RPI_SerialSetup';
+FunctionName = 'RPI_pinMode';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_lcdPuts';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_lcdPrintf';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_pullControl';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_serialPrintf';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_serialPuts';
PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
//------------------------------------
-//---- Class RPI_SetupClose ----------
+//---- Class RPI_2IN_u8u32_Void ----
//------------------------------------
-//ClassName = 'RPI_SetupClose';
+ClassName = 'RPI_2IN_u8u32_Void';
// --- Class Annotation. ---
-//PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
-//ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
-//PrintStringInfo('NIN= 1',ClassFileName,'file','y');
-//PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
-//PrintStringInfo('OUT(1).TP= ''u8''',ClassFileName,'file','y');
-//PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
-//PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 0',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''u8''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
// --- Function List Class. ---
-//ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('u80u320'+ArgSeparator+'',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'RPI_softToneWrite';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+//------------------------------------
+//---- Class RPI_2IN_u8i16_i8 ------
+//------------------------------------
+ClassName = 'RPI_2IN_u8i16_i8';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''i8''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
-//PrintStringInfo(''+ArgSeparator+'',ClassFileName,'file','y');
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('u80i160'+ArgSeparator+'i80',ClassFileName,'file','y');
// --- Annotation Function And Function List Function. ---
-//FunctionName = 'RPI_SerialClose';
-//PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
-//INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
-//INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
-//FunctionName = 'RPI_SerialFlush';
-//PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
-//INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
-//INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_waitForInterrupt';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
//------------------------------------
-//---- Class RPI_SerialSendData ----------
+//---- Class RPI_2IN_u16u16_i8 -----
//------------------------------------
-ClassName = 'RPI_SerialSendData';
+ClassName = 'RPI_2IN_u16u16_i8';
// --- Class Annotation. ---
PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
PrintStringInfo('NIN= 2',ClassFileName,'file','y');
-PrintStringInfo('NOUT= 0 ',ClassFileName,'file','y');
-PrintStringInfo('OUT(1).TP= ''u8''',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''i8''',ClassFileName,'file','y');
PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
// --- Function List Class. ---
ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('u160u160'+ArgSeparator+'i80',ClassFileName,'file','y');
-PrintStringInfo('u80u80'+ArgSeparator+'u80',ClassFileName,'file','y');
-PrintStringInfo('u80i80'+ArgSeparator+'u80',ClassFileName,'file','y');
-PrintStringInfo('u80u160'+ArgSeparator+'u80',ClassFileName,'file','y');
-PrintStringInfo('u80i160'+ArgSeparator+'u80',ClassFileName,'file','y');
-PrintStringInfo('u80s0'+ArgSeparator+'u80',ClassFileName,'file','y');
-PrintStringInfo('u80d0'+ArgSeparator+'u80',ClassFileName,'file','y');
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'RPI_I2CWrite';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_I2CReadReg8';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_I2CReadReg16';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
-PrintStringInfo('u80u82'+ArgSeparator+'u80',ClassFileName,'file','y');
-PrintStringInfo('u80i82'+ArgSeparator+'u80',ClassFileName,'file','y');
-PrintStringInfo('u80u162'+ArgSeparator+'u80',ClassFileName,'file','y');
-PrintStringInfo('u80i162'+ArgSeparator+'u80',ClassFileName,'file','y');
-PrintStringInfo('u80s2'+ArgSeparator+'u80',ClassFileName,'file','y');
-PrintStringInfo('u80d2'+ArgSeparator+'u80',ClassFileName,'file','y');
-PrintStringInfo('u80g2'+ArgSeparator+'u80',ClassFileName,'file','y');
+//------------------------------------
+//---- Class RPI_2IN_gu32_i8 -----
+//------------------------------------
+ClassName = 'RPI_2IN_gu32_i8';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''i8''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('g2u320'+ArgSeparator+'i80',ClassFileName,'file','y');
// --- Annotation Function And Function List Function. ---
-FunctionName = 'RPI_SerialSendData';
+FunctionName = 'RPI_serialOpen';
PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
//------------------------------------
-//---- Class RPI_SerialDataAvail ----------
+//---- Class RPI_2IN_u16u8_u8 -----
//------------------------------------
-ClassName = 'RPI_SerialDataAvail';
+ClassName = 'RPI_2IN_u16u8_u8';
// --- Class Annotation. ---
PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
-PrintStringInfo('NIN= 1',ClassFileName,'file','y');
-PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
-PrintStringInfo('OUT(1).TP= ''i16''',ClassFileName,'file','y');
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''i8''',ClassFileName,'file','y');
PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
// --- Function List Class. ---
ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('u160u80'+ArgSeparator+'u80',ClassFileName,'file','y');
-PrintStringInfo(''+ArgSeparator+'',ClassFileName,'file','y');
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'RPI_pcf8574Setup';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_pcf8591Setup';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_mcp23008Setup';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_mcp23016Setup';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_mcp23017Setup';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+//------------------------------------
+//---- Class RPI_3IN_u8u8u8_Void ---
+//------------------------------------
+ClassName = 'RPI_3IN_u8u8u8_Void';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 3',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('u80u80u80'+ArgSeparator+'',ClassFileName,'file','y');
// --- Annotation Function And Function List Function. ---
-FunctionName = 'RPI_SerialDataAvail';
+FunctionName = 'RPI_lcdPosition';
PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
-FunctionName = 'RPI_SerialGetChar';
+FunctionName = 'RPI_piGlow1';
PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+//------------------------------------
+//---- Class RPI_3IN_u16u16u16_i8 --
+//------------------------------------
+ClassName = 'RPI_3IN_u16u16u16_i8';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 3',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('u160u160u160'+ArgSeparator+'i80',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'RPI_I2CWriteReg8';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_I2CWriteReg16';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
//------------------------------------
-//---- Class RPI_ThreadCreate ----------
+//---- Class RPI_3IN_u8u8u8_u8 -----
//------------------------------------
-ClassName = 'RPI_ThreadCreate';
+ClassName = 'RPI_3IN_u8u8u8_u8';
// --- Class Annotation. ---
PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
-PrintStringInfo('NIN= 1',ClassFileName,'file','y');
-PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
-PrintStringInfo('OUT(1).TP= ''u16''',ClassFileName,'file','y');
+PrintStringInfo('NIN= 3',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('u80u80u80'+ArgSeparator+'u80',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'RPI_shiftIn';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+//------------------------------------
+//---- Class RPI_3IN_u8u16u16_u8 ---
+//------------------------------------
+ClassName = 'RPI_3IN_u8u16u16_u8';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 3',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''u8''',ClassFileName,'file','y');
PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
// --- Function List Class. ---
ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
-
-PrintStringInfo(''+ArgSeparator+'',ClassFileName,'file','y');
+PrintStringInfo('u80u160u160'+ArgSeparator+'u80',ClassFileName,'file','y');
// --- Annotation Function And Function List Function. ---
-FunctionName = 'RPI_ThreadCreate';
+FunctionName = 'RPI_softPwmCreate';
PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
//------------------------------------
-//---- Class RPI_PinISR --------------
+//---- Class RPI_3IN_u16u8u16_u8 ---
//------------------------------------
-ClassName = 'RPI_PinISR';
+ClassName = 'RPI_3IN_u16u8u16_u8';
// --- Class Annotation. ---
PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
PrintStringInfo('NIN= 3',ClassFileName,'file','y');
-PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
-PrintStringInfo('OUT(1).TP= ''i16''',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''u8''',ClassFileName,'file','y');
PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
// --- Function List Class. ---
ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('u160u160u160'+ArgSeparator+'u80',ClassFileName,'file','y');
-PrintStringInfo(''+ArgSeparator+'',ClassFileName,'file','y');
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'RPI_mcp23s08Setup';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_mcp23s17Setup';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+//------------------------------------
+//---- Class RPI_4IN_u8u8u8u8_Void -
+//------------------------------------
+ClassName = 'RPI_4IN_u8u8u8u8_Void';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 4',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 0',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''u8''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('u80u80u80u80'+ArgSeparator+'',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'RPI_shiftOut';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+//--------------------------------------
+//---- Class RPI_5IN_u16u8u8u8u8_i8 --
+//--------------------------------------
+ClassName = 'RPI_5IN_u16u8u8u8u8_i8';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 5',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''i8''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('u160u80u80u80u80'+ArgSeparator+'i80',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'RPI_sr595Setup';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+//------------------------------------
+//---- Class RPI_10IN_u8x10_Void ---
+//------------------------------------
+ClassName = 'RPI_10IN_u8x10_Void';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 10',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 0',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''u8''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('u80u80u80u80u80u80u80u80u80u80'+ArgSeparator+'',ClassFileName,'file','y');
// --- Annotation Function And Function List Function. ---
-FunctionName = 'RPI_PinISR';
+FunctionName = 'RPI_lcdCharDef';
PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
//------------------------------------
+//---- Class RPI_13IN_u8x13_u8 -----
+//------------------------------------
+ClassName = 'RPI_13IN_u8x13_u8';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 10',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''u8''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('u80u80u80u80u80u80u80u80u80u80u80u80u80'+ArgSeparator+'u80',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'RPI_lcdInit';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+
+
+//------------------------------------
//---- Class ODE ---------------------
//------------------------------------
ClassName = 'ODE';
@@ -6527,15 +7661,34 @@ ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls); PrintStringInfo('NIN= 1',ClassFileName,'file','y');
PrintStringInfo('NOUT= 2',ClassFileName,'file','y');
PrintStringInfo('OUT(1).TP= ''d''',ClassFileName,'file','y');
-PrintStringInfo('OUT(1).SZ(1)= FA_SZ_1(FA_SZ_LQR(IN(1).VAL))',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= FA_SZ_2(FA_SZ_LQR(IN(1).VAL))',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= FA_SZ_1(FA_SZ_LQR(IN(1).VAL))',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).TP= ''d''',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(1)= FA_SZ_1(FA_SZ_LQR(IN(1).VAL))',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(2)= FA_SZ_1(FA_SZ_LQR(IN(1).VAL))',ClassFileName,'file','y');
+
+PrintStringInfo('NIN= 3',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 2',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''d''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= FA_SZ_2(FA_SZ_LQR(IN(1).VAL))',ClassFileName,'file','y');
PrintStringInfo('OUT(1).SZ(2)= FA_SZ_1(FA_SZ_LQR(IN(1).VAL))',ClassFileName,'file','y');
PrintStringInfo('OUT(2).TP= ''d''',ClassFileName,'file','y');
-PrintStringInfo('OUT(2).SZ(1)= FA_SZ_2(FA_SZ_LQR(IN(1).VAL))',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(1)= FA_SZ_1(FA_SZ_LQR(IN(1).VAL))',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(2)= FA_SZ_1(FA_SZ_LQR(IN(1).VAL))',ClassFileName,'file','y');
+
+PrintStringInfo('NIN= 4',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 2',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''d''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= FA_SZ_2(FA_SZ_LQR(IN(1).VAL))',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= FA_SZ_1(FA_SZ_LQR(IN(1).VAL))',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).TP= ''d''',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(1)= FA_SZ_1(FA_SZ_LQR(IN(1).VAL))',ClassFileName,'file','y');
PrintStringInfo('OUT(2).SZ(2)= FA_SZ_1(FA_SZ_LQR(IN(1).VAL))',ClassFileName,'file','y');
ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
PrintStringInfo('ss2'+ArgSeparator+'d2d2',ClassFileName,'file','y');
-
+PrintStringInfo('ss2d2d2'+ArgSeparator+'d2d2',ClassFileName,'file','y');
+PrintStringInfo('ss2d2d2d2'+ArgSeparator+'d2d2',ClassFileName,'file','y');
// --- Annotation Function And Function List Function. ---
FunctionName = 'lqr';
PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
@@ -6603,6 +7756,168 @@ PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file', INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+//------------------------------------
+//---- Class svd ---------------------
+//------------------------------------
+ClassName = 'SVD';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 3',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= FA_MIN(IN(1).SZ(1),IN(1).SZ(2))',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(1)= FA_MIN(IN(1).SZ(1),IN(1).SZ(2))',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(2)= FA_MIN(IN(1).SZ(1),IN(1).SZ(2))',ClassFileName,'file','y');
+PrintStringInfo('OUT(3).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(3).SZ(1)= IN(1).SZ(2)',ClassFileName,'file','y');
+PrintStringInfo('OUT(3).SZ(2)= FA_MIN(IN(1).SZ(1),IN(1).SZ(2))',ClassFileName,'file','y');
+
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 3',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(1)= FA_MIN(IN(1).SZ(1),IN(1).SZ(2))',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(2)= FA_MIN(IN(1).SZ(1),IN(1).SZ(2))',ClassFileName,'file','y');
+PrintStringInfo('OUT(3).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(3).SZ(1)= IN(1).SZ(2)',ClassFileName,'file','y');
+PrintStringInfo('OUT(3).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= FA_MIN(IN(1).SZ(1),IN(1).SZ(2))',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 3',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= FA_MIN(IN(1).SZ(1),IN(1).SZ(2))',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(1)= FA_MIN(IN(1).SZ(1),IN(1).SZ(2))',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(2)= FA_MIN(IN(1).SZ(1),IN(1).SZ(2))',ClassFileName,'file','y');
+PrintStringInfo('OUT(3).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(3).SZ(1)= IN(1).SZ(2)',ClassFileName,'file','y');
+PrintStringInfo('OUT(3).SZ(2)= FA_MIN(IN(1).SZ(1),IN(1).SZ(2))',ClassFileName,'file','y');
+
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 3',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(1)= FA_MIN(IN(1).SZ(1),IN(1).SZ(2))',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(2)= FA_MIN(IN(1).SZ(1),IN(1).SZ(2))',ClassFileName,'file','y');
+PrintStringInfo('OUT(3).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(3).SZ(1)= IN(1).SZ(2)',ClassFileName,'file','y');
+PrintStringInfo('OUT(3).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('d2g2'+ArgSeparator+'d2d2d2',ClassFileName,'file','y');
+PrintStringInfo('d2'+ArgSeparator+'d2d2d2',ClassFileName,'file','y');
+PrintStringInfo('z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('z2g2'+ArgSeparator+'z2z2z2',ClassFileName,'file','y');
+PrintStringInfo('z2'+ArgSeparator+'z2z2z2',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'svd';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+
+//------------------------------------
+//---- Class HESS ---------------------
+//------------------------------------
+ClassName = 'HESS';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 2',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('d2'+ArgSeparator+'d2d2',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'hess';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+
+
+//------------------------------------
+//---- Class SVA ---------------------
+//------------------------------------
+ClassName = 'SVA';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 3',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= FA_MIN(IN(1).SZ(1),IN(1).SZ(2))',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(1)= FA_MIN(IN(1).SZ(1),IN(1).SZ(2))',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(2)= FA_MIN(IN(1).SZ(1),IN(1).SZ(2))',ClassFileName,'file','y');
+PrintStringInfo('OUT(3).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(3).SZ(1)= IN(1).SZ(2)',ClassFileName,'file','y');
+PrintStringInfo('OUT(3).SZ(2)= FA_MIN(IN(1).SZ(1),IN(1).SZ(2))',ClassFileName,'file','y');
+
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 3',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= FA_SZ_U_SVA(IN(1),IN(2).VAL)',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(1)= FA_MIN(IN(1).SZ(1),IN(1).SZ(2))',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(2)= FA_MIN(IN(1).SZ(1),IN(1).SZ(2))',ClassFileName,'file','y');
+PrintStringInfo('OUT(3).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(3).SZ(1)= IN(1).SZ(2)',ClassFileName,'file','y');
+PrintStringInfo('OUT(3).SZ(2)= FA_MIN(IN(1).SZ(1),IN(1).SZ(2))',ClassFileName,'file','y');
+
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('d2'+ArgSeparator+'d2d2d2',ClassFileName,'file','y');
+PrintStringInfo('d2d0'+ArgSeparator+'d2d2d2',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'sva';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
//------------------------------------
//---- Class balanc ------------------
@@ -7602,6 +8917,7 @@ PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y'); // --- Function List Class. ---
ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('d2d2d2'+ArgSeparator+'d0',ClassFileName,'file','y');
PrintStringInfo('d2d2d0g2'+ArgSeparator+'d0',ClassFileName,'file','y');
//PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y');
//PrintStringInfo('s0'+ArgSeparator+'s0',ClassFileName,'file','y');
@@ -7619,6 +8935,36 @@ INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,E INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+// --- Class Modk. ---
+// ------------------
+ClassName = 'Modk';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''d''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+//PrintStringInfo('s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+//PrintStringInfo('s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+
+//PrintStringInfo('z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+//PrintStringInfo('z0'+ArgSeparator+'z0',ClassFileName,'file','y');
+//PrintStringInfo('c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+//PrintStringInfo('c0'+ArgSeparator+'c0',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'modk';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
//------------------------------------
//---- Class PRIMES --------------------
diff --git a/2.3-1/macros/ToolInitialization/INIT_GenSharedInfo.sci b/2.3-1/macros/ToolInitialization/INIT_GenSharedInfo.sci index abe813cc..3c682bf8 100644 --- a/2.3-1/macros/ToolInitialization/INIT_GenSharedInfo.sci +++ b/2.3-1/macros/ToolInitialization/INIT_GenSharedInfo.sci @@ -1,4 +1,4 @@ -function SharedInfo = INIT_GenSharedInfo(RunMode,UserScilabMainFile,TotTempScalarVars,EnableTempVarsReuse,Sci2CLibMainHeaderFName,CopySciCodeIntoCCode,Target)
+function SharedInfo = INIT_GenSharedInfo(RunMode,UserScilabMainFile,TotTempScalarVars,EnableTempVarsReuse,Sci2CLibMainHeaderFName,CopySciCodeIntoCCode,Target,Board_name)
// function SharedInfo = INIT_GenSharedInfo(WorkingDir,OutCCCodeDir,UserSciFilesPaths,...
// RunMode,UserScilabMainFile,TotTempScalarVars,EnableTempVarsReuse,Sci2CLibMainHeaderFName)
// -----------------------------------------------------------------
@@ -132,4 +132,6 @@ SharedInfo.Includelist = list(); //Maintains list of functions being used in cod // to add their header files to main function.
SharedInfo.OpenCVUsed = %F; // Specifies if opencv library is used or not
+SharedInfo.Board_name = Board_name; //Specifies Name of Arduino board
+
endfunction
diff --git a/2.3-1/macros/ToolInitialization/INIT_SCI2C.sci b/2.3-1/macros/ToolInitialization/INIT_SCI2C.sci index 82533022..b6da9bd1 100644 --- a/2.3-1/macros/ToolInitialization/INIT_SCI2C.sci +++ b/2.3-1/macros/ToolInitialization/INIT_SCI2C.sci @@ -1,5 +1,5 @@ function [FileInfoDatFile,SharedInfoDatFile] = ...
- INIT_SCI2C(UserScilabMainFile, UserSciFilesPaths, SCI2COutputDir, RunMode,Target)
+ INIT_SCI2C(UserScilabMainFile, UserSciFilesPaths, SCI2COutputDir, RunMode,Target,Board_name)
// function [FileInfoDatFile,SharedInfoDatFile] = INIT_SCI2C(SCI2CInputPrmFile)
// -----------------------------------------------------------------
// #RNU_RES_B
@@ -68,7 +68,7 @@ OutCCCodeDir = SCI2CResultDir; //-- FIXME : MainLibHeader and Verbose mode are (?) configurable
SharedInfo = INIT_GenSharedInfo(RunMode,UserScilabMainFile, ...
- TotTempScalarVars,EnableTempVarsReuse,"sci2clib.h", %t,Target);
+ TotTempScalarVars,EnableTempVarsReuse,"sci2clib.h", %t,Target,Board_name);
// ----------------------------
// --- Initialize FileInfo. ---
diff --git a/2.3-1/macros/buildmacros.sce b/2.3-1/macros/buildmacros.sce index f02096d9..e78b15bb 100644 --- a/2.3-1/macros/buildmacros.sce +++ b/2.3-1/macros/buildmacros.sce @@ -9,9 +9,9 @@ Directories = [ "ASTManagement", ... "GeneralFunctions", ... "SymbolTable", ... "ToolInitialization", ... - "Hardware/AVR", ... - "Hardware/RasberryPi", ... - "ImageProcessing", ... + "Hardware/AVR", ... + "Hardware/RasberryPi", ... + "ImageProcessing", ... "Scilab-Arduino"]; diff --git a/2.3-1/macros/cb_sci2c_gui.sci b/2.3-1/macros/cb_sci2c_gui.sci index 8f3f92ad..2267c6cc 100644 --- a/2.3-1/macros/cb_sci2c_gui.sci +++ b/2.3-1/macros/cb_sci2c_gui.sci @@ -64,8 +64,13 @@ elseif or(get(gcbo, "tag")==["outformatradiostalone","outformatradioarduino","ou set(findobj("tag", "outformatradioavr"), "value", 0); set(findobj("tag", "outformatradiorpi"), "value", 0); set(gcbo, "value", 1); - - + if get(findobj("tag", "outformatradioarduino"), "value") == 1 then + set(findobj("tag", "brdnmType"), "enable", "on"); + else + set(findobj("tag", "brdnmType"), "enable", "off"); + end + //disp("YES") + //disp(get(findobj("tag", "brdnmType"), "value")) // // --- Copy Scilab code into C option --- // @@ -98,7 +103,7 @@ elseif get(gcbo, "tag")=="cancelbtn" | get(gcbo, "tag")=="close_menu" then elseif get(gcbo, "tag")=="convertbtn" then UserScilabMainFile = get(findobj("tag", "fileedit"), "string"); - UserSciFilesPaths = get(findobj("tag", "subfunsedit"), "string"); + UserSciFilesPaths = get(findobj("tag", "subfunsedit"), "string"); // Sci2CLibMainHeaderFName = get(findobj("tag", "headeredit"), "string"); @@ -121,6 +126,66 @@ elseif get(gcbo, "tag")=="convertbtn" then elseif get(findobj("tag", "outformatradiorpi"), "value") == 1 then Target = "RPi"; end + if get(findobj("tag", "brdnmType"), "value") == 2 then + Board_name = "uno" + elseif get(findobj("tag", "brdnmType"), "value") == 3 then + Board_name = "mega" + elseif get(findobj("tag", "brdnmType"), "value") == 4 then + Board_name = "mega2560" + elseif get(findobj("tag", "brdnmType"), "value") == 5 then + Board_name = "nano" + elseif get(findobj("tag", "brdnmType"), "value") == 6 then + Board_name = "nano328" + elseif get(findobj("tag", "brdnmType"), "value") == 7 then + Board_name = "micro" + elseif get(findobj("tag", "brdnmType"), "value") == 8 then + Board_name = "mini" + elseif get(findobj("tag", "brdnmType"), "value") == 9 then + Board_name = "mini328" + elseif get(findobj("tag", "brdnmType"), "value") == 10 then + Board_name = "pro328" + elseif get(findobj("tag", "brdnmType"), "value") == 11 then + Board_name = "pro" + elseif get(findobj("tag", "brdnmType"), "value") == 12 then + Board_name = "pro5v328" + elseif get(findobj("tag", "brdnmType"), "value") == 13 then + Board_name = "pro5v" + elseif get(findobj("tag", "brdnmType"), "value") == 14 then + Board_name = "atmega168" + elseif get(findobj("tag", "brdnmType"), "value") == 15 then + Board_name = "atmega8" + elseif get(findobj("tag", "brdnmType"), "value") == 16 then + Board_name = "atmega328" + elseif get(findobj("tag", "brdnmType"), "value") == 17 then + Board_name = "bt328" + elseif get(findobj("tag", "brdnmType"), "value") == 18 then + Board_name = "bt" + elseif get(findobj("tag", "brdnmType"), "value") == 19 then + Board_name = "diecimila" + elseif get(findobj("tag", "brdnmType"), "value") == 20 then + Board_name = "esplora" + elseif get(findobj("tag", "brdnmType"), "value") == 21 then + Board_name = "ethernet" + elseif get(findobj("tag", "brdnmType"), "value") == 22 then + Board_name = "fio" + elseif get(findobj("tag", "brdnmType"), "value") == 23 then + Board_name = "leonardo" + elseif get(findobj("tag", "brdnmType"), "value") == 24 then + Board_name = "robotControl" + elseif get(findobj("tag", "brdnmType"), "value") == 25 then + Board_name = "robotMotor" + elseif get(findobj("tag", "brdnmType"), "value") == 26 then + Board_name = "lilypad328" + elseif get(findobj("tag", "brdnmType"), "value") == 27 then + Board_name = "lilypad" + elseif get(findobj("tag", "brdnmType"), "value") == 28 then + Board_name = "lilyPadUSB" + else + Board_name = "uno" + + //elseif get(findobj("tag", "brdnmType"), "value") == [1 0 0 0 0 0] then + //Board_name = "none" + end CopySciCodeIntoCCode = get(findobj("tag", "sciintocradioyes"), "value") == 1; @@ -132,15 +197,16 @@ elseif get(gcbo, "tag")=="convertbtn" then // CCompilerPathStyle = "cygwin"; end + // -*- DEBUG ONLY -*- - -// mprintf("UserScilabMainFile = {%s}\n", UserScilabMainFile); -// mprintf("UserSciFilesPaths = {%s}\n", UserSciFilesPaths); -// mprintf("UserSciCodeMainDir = {%s}\n", UserSciCodeMainDir); -// mprintf("RunMode = {%s}\n", RunMode); -// mprintf("CopySciCodeIntoCCode = {%d}\n", bool2s(CopySciCodeIntoCCode)); -// mprintf("NativeBuild = {%s}\n", NativeBuild); - scilab2c(UserScilabMainFile, UserSciCodeMainDir, UserSciFilesPaths, RunMode, NativeBuild,Target); + + //mprintf("UserScilabMainFile = {%s}\n", UserScilabMainFile); + //mprintf("UserSciFilesPaths = {%s}\n", UserSciFilesPaths); + //mprintf("UserSciCodeMainDir = {%s}\n", UserSciCodeMainDir); + //mprintf("RunMode = {%s}\n", RunMode); + //mprintf("CopySciCodeIntoCCode = {%d}\n", bool2s(CopySciCodeIntoCCode)); + //mprintf("NativeBuild = {%s}\n", NativeBuild); + scilab2c(UserScilabMainFile, UserSciCodeMainDir, UserSciFilesPaths, RunMode, NativeBuild,Target,Board_name); // // --- sci2c help --- // diff --git a/2.3-1/macros/findDeps/getAllHeaders.sci b/2.3-1/macros/findDeps/getAllHeaders.sci index d144f896..00a12045 100644 --- a/2.3-1/macros/findDeps/getAllHeaders.sci +++ b/2.3-1/macros/findDeps/getAllHeaders.sci @@ -60,7 +60,7 @@ function allHeaders = getAllHeaders(SharedInfo) "src/c/matrixOperations/includes/logm.h" "src/c/matrixOperations/includes/ones.h" "src/c/matrixOperations/includes/matrixSquaredMagnitude.h" - "src/c/matrixOperations/includes/spec.h" + "src/c/linearAlgebra/includes/spec.h" "src/c/matrixOperations/includes/matrixTranspose.h" "src/c/matrixOperations/includes/determ.h" "src/c/matrixOperations/includes/matrixMultiplication.h" @@ -72,6 +72,10 @@ function allHeaders = getAllHeaders(SharedInfo) "src/c/matrixOperations/includes/kron.h" "src/c/matrixOperations/includes/flipdim.h" "src/c/matrixOperations/includes/norm.h" + "src/c/interpolation/includes/interp1.h" + "src/c/elementaryFunctions/includes/nextpow2.h" + "src/c/elementaryFunctions/includes/gcd.h" + "src/c/elementaryFunctions/includes/isreal.h" "src/c/elementaryFunctions/includes/cos.h" "src/c/elementaryFunctions/includes/fix.h" "src/c/elementaryFunctions/includes/exp.h" @@ -111,6 +115,8 @@ function allHeaders = getAllHeaders(SharedInfo) "src/c/elementaryFunctions/includes/int8.h" "src/c/elementaryFunctions/includes/uint16.h" "src/c/elementaryFunctions/includes/int16.h" + "src/c/elementaryFunctions/includes/uint32.h" + "src/c/elementaryFunctions/includes/int32.h" "src/c/elementaryFunctions/includes/acosd.h" "src/c/elementaryFunctions/includes/acot.h" "src/c/elementaryFunctions/includes/acotd.h" @@ -140,6 +146,9 @@ function allHeaders = getAllHeaders(SharedInfo) "src/c/string/includes/dynlib_string.h" "src/c/string/includes/disp.h" "src/c/string/includes/str.h" + "src/c/signalProcessing/includes/modk.h" + "src/c/signalProcessing/includes/idct.h" + "src/c/signalProcessing/includes/dct.h" "src/c/signalProcessing/fft/fft_internal.h" "src/c/signalProcessing/ifft/ifft_internal.h" "src/c/signalProcessing/levin/levinUtils.h" @@ -213,6 +222,9 @@ function allHeaders = getAllHeaders(SharedInfo) "src/c/CACSD/includes/obscont.h" "src/c/linearAlgebra/includes/schur.h" "src/c/linearAlgebra/includes/balanc.h" + "src/c/linearAlgebra/includes/svd.h" + "src/c/linearAlgebra/includes/hess.h" + "src/c/linearAlgebra/includes/sva.h" "src/c/linearAlgebra/includes/rcond.h"]; @@ -227,7 +239,15 @@ function allHeaders = getAllHeaders(SharedInfo) //"src/c/scilab-arduino/includes/cmd_servo_attach.h" //"src/c/scilab-arduino/includes/cmd_servo_detach.h" //"src/c/scilab-arduino/includes/cmd_servo_move.h" - "src/c/scilab-arduino/includes/sleep.h"]; + "src/c/scilab-arduino/includes/sleep.h" + "src/c/scilab-arduino/includes/cmd_analog_in_volt.h" + "src/c/scilab-arduino/includes/cmd_analog_out_volt.h" + "src/c/scilab-arduino/includes/cmd_dcmotor_release.h" + "src/c/scilab-arduino/includes/cmd_i2c_dev.h" + "src/c/scilab-arduino/includes/cmd_i2c_write.h" + "src/c/scilab-arduino/includes/cmd_i2c_read.h" + "src/c/scilab-arduino/includes/cmd_i2c_read_register.h" + "src/c/scilab-arduino/includes/cmd_i2c_write_register.h"]; AVR_headers = [ "src/c/hardware/avr/includes/AVRPeripheralGPIO.h" @@ -236,18 +256,44 @@ function allHeaders = getAllHeaders(SharedInfo) "src/c/hardware/avr/includes/AVRUtil.h" "src/c/hardware/avr/includes/AVRPeripheralTimer.h" "src/c/hardware/avr/includes/AVRPeripheralUART.h" - ]; + ]; RPi_headers = [ "thirdparty/includes/WiringPi/wiringPi.h" "thirdparty/includes/WiringPi/wiringSerial.h" + "thirdparty/includes/WiringPi/gertboard.h" + "thirdparty/includes/WiringPi/lcd.h" + "thirdparty/includes/WiringPi/mcp23s08.h" + "thirdparty/includes/WiringPi/mcp23s17.h" + "thirdparty/includes/WiringPi/mcp23008.h" + "thirdparty/includes/WiringPi/mcp23016.h" + "thirdparty/includes/WiringPi/mcp23017.h" + "thirdparty/includes/WiringPi/pcf8574.h" + "thirdparty/includes/WiringPi/pcf8591.h" + "thirdparty/includes/WiringPi/piGlow.h" + "thirdparty/includes/WiringPi/sn3218.h" + "thirdparty/includes/WiringPi/sr595.h" + "thirdparty/includes/WiringPi/softPwm.h" + "thirdparty/includes/WiringPi/softTone.h" + "thirdparty/includes/WiringPi/wiringPiI2C.h" + "thirdparty/includes/WiringPi/wiringShift.h" "src/c/hardware/rasberrypi/includes/RPIPeripheralDigital.h" - "src/c/hardware/rasberrypi/includes/RPIPeripheralTiming.h" - "src/c/hardware/rasberrypi/includes/RPIPeripheralSerial.h" - "src/c/hardware/rasberrypi/includes/RPIPeripheralThreading.h" - "src/c/hardware/rasberrypi/includes/RPIPeripheralPinISR.h" + "src/c/hardware/rasberrypi/includes/RPIPeripheralGertboard.h" + "src/c/hardware/rasberrypi/includes/RPIPeripheralI2C.h" + "src/c/hardware/rasberrypi/includes/RPIPeripheralInterrupt.h" + "src/c/hardware/rasberrypi/includes/RPIPeripheralLCD.h" + "src/c/hardware/rasberrypi/includes/RPIPeripheralMcp.h" + "src/c/hardware/rasberrypi/includes/RPIPeripheralMisc.h" + "src/c/hardware/rasberrypi/includes/RPIPeripheralPcf.h" + "src/c/hardware/rasberrypi/includes/RPIPeripheralPiGlow.h" + "src/c/hardware/rasberrypi/includes/RPIPeripheralPinMap.h" "src/c/hardware/rasberrypi/includes/RPIPeripheralPWM.h" - ]; + "src/c/hardware/rasberrypi/includes/RPIPeripheralSerial.h" + "src/c/hardware/rasberrypi/includes/RPIPeripheralSetup.h" + "src/c/hardware/rasberrypi/includes/RPIPeripheralShift.h" + "src/c/hardware/rasberrypi/includes/RPIPeripheralSoft.h" + "src/c/hardware/rasberrypi/includes/RPIPeripheralTiming.h" + ]; OpenCV_headers = [ "src/c/imageProcessing/includes/cvcore.hpp" @@ -269,4 +315,9 @@ function allHeaders = getAllHeaders(SharedInfo) allHeaders = cat(1,allHeaders,OpenCV_headers); end + if(size(SharedInfo.Includelist) <> 0 & (mtlb_strcmp(part(SharedInfo.Includelist(1),1:5),'odefn') == %T)) + disp("Hi") + allHeaders = cat(1,allHeaders,"thirdparty/includes/GSL"); + end + endfunction diff --git a/2.3-1/macros/findDeps/getAllInterfaces.sci b/2.3-1/macros/findDeps/getAllInterfaces.sci index 86f1bf56..beb61152 100644 --- a/2.3-1/macros/findDeps/getAllInterfaces.sci +++ b/2.3-1/macros/findDeps/getAllInterfaces.sci @@ -32,7 +32,7 @@ function allInterfaces = getAllInterfaces(SharedInfo) "src/c/type/int_real.h" "src/c/matrixOperations/interfaces/int_vmagn.h" "src/c/matrixOperations/interfaces/int_ones.h" - "src/c/matrixOperations/interfaces/int_spec.h" + "src/c/linearAlgebra/interfaces/int_spec.h" "src/c/matrixOperations/interfaces/int_cat.h" "src/c/matrixOperations/interfaces/int_zeros.h" "src/c/matrixOperations/interfaces/int_OpBackSlash.h" @@ -61,6 +61,10 @@ function allInterfaces = getAllInterfaces(SharedInfo) "src/c/matrixOperations/interfaces/int_flipdim.h" "src/c/matrixOperations/interfaces/int_permute.h" "src/c/matrixOperations/interfaces/int_norm.h" + "src/c/interpolation/interfaces/int_interp1.h" + "src/c/elementaryFunctions/interfaces/int_nextpow2.h" + "src/c/elementaryFunctions/interfaces/int_gcd.h" + "src/c/elementaryFunctions/interfaces/int_isreal.h" "src/c/elementaryFunctions/interfaces/int_asinh.h" "src/c/elementaryFunctions/interfaces/int_atanh.h" "src/c/elementaryFunctions/interfaces/int_sinh.h" @@ -100,6 +104,8 @@ function allInterfaces = getAllInterfaces(SharedInfo) "src/c/elementaryFunctions/interfaces/int_int8.h" "src/c/elementaryFunctions/interfaces/int_uint16.h" "src/c/elementaryFunctions/interfaces/int_int16.h" + "src/c/elementaryFunctions/interfaces/int_uint32.h" + "src/c/elementaryFunctions/interfaces/int_int32.h" "src/c/elementaryFunctions/interfaces/int_acosd.h" "src/c/elementaryFunctions/interfaces/int_acot.h" "src/c/elementaryFunctions/interfaces/int_acotd.h" @@ -142,6 +148,9 @@ function allInterfaces = getAllInterfaces(SharedInfo) "src/c/operations/interfaces/int_OpIns.h" "src/c/string/interfaces/int_disp.h" "src/c/string/interfaces/int_string.h" + "src/c/signalProcessing/interfaces/int_modk.h" + "src/c/signalProcessing/interfaces/int_idct.h" + "src/c/signalProcessing/interfaces/int_dct.h" "src/c/signalProcessing/interfaces/int_ifft.h" "src/c/signalProcessing/interfaces/int_lpc2cep.h" "src/c/signalProcessing/interfaces/int_cepstrum.h" @@ -208,6 +217,9 @@ function allInterfaces = getAllInterfaces(SharedInfo) "src/c/CACSD/interfaces/int_obscont.h" "src/c/linearAlgebra/interfaces/int_schur.h" "src/c/linearAlgebra/interfaces/int_balanc.h" + "src/c/linearAlgebra/interfaces/int_svd.h" + "src/c/linearAlgebra/interfaces/int_hess.h" + "src/c/linearAlgebra/interfaces/int_sva.h" "src/c/linearAlgebra/interfaces/int_rcond.h"]; @@ -219,7 +231,14 @@ function allInterfaces = getAllInterfaces(SharedInfo) "src/c/scilab-arduino/interfaces/int_cmd_analog_in.h" "src/c/scilab-arduino/interfaces/int_cmd_dcmotor.h" "src/c/scilab-arduino/interfaces/int_cmd_servo.h" - "src/c/scilab-arduino/interfaces/int_sleep.h"]; + "src/c/scilab-arduino/interfaces/int_sleep.h" + "src/c/scilab-arduino/interfaces/int_cmd_analog_in_volt.h" + "src/c/scilab-arduino/interfaces/int_cmd_analog_out_volt.h" + "src/c/scilab-arduino/interfaces/int_cmd_i2c_dev.h" + "src/c/scilab-arduino/interfaces/int_cmd_i2c_write.h" + "src/c/scilab-arduino/interfaces/int_cmd_i2c_read.h" + "src/c/scilab-arduino/interfaces/int_cmd_i2c_write_register.h" + "src/c/scilab-arduino/interfaces/int_cmd_i2c_read_register.h"]; //Interface files required for "AVR" output AVR_interfaces = [ @@ -233,12 +252,22 @@ function allInterfaces = getAllInterfaces(SharedInfo) RPI_interfaces = [ "src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralDigital.h" - "src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralTiming.h" - "src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralSerial.h" - "src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralThreading.h" - "src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralPinISR.h" + "src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralGertboard.h" + "src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralI2C.h" + "src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralInterrupt.h" + "src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralLCD.h" + "src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralMcp.h" + "src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralMisc.h" + "src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralPcf.h" + "src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralPiGlow.h" + "src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralPinMap.h" "src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralPWM.h" - ]; + "src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralSerial.h" + "src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralSetup.h" + "src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralShift.h" + "src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralSoft.h" + "src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralTiming.h" + ]; OpenCV_interfaces = [ "src/c/imageProcessing/interfaces/int_cvcore.hpp" diff --git a/2.3-1/macros/findDeps/getAllLibraries.sci b/2.3-1/macros/findDeps/getAllLibraries.sci index 14fc020a..c0f07d53 100644 --- a/2.3-1/macros/findDeps/getAllLibraries.sci +++ b/2.3-1/macros/findDeps/getAllLibraries.sci @@ -24,7 +24,8 @@ function allLibraries = getAllLibraries(SharedInfo) Target = SharedInfo.Target; //Library files required for "RasberryPi" target RPi_libs = [ - "thirdparty/lib/raspberrypi/libwiringPi.so" + "thirdparty/lib/raspberrypi/libwiringPi.a" + "thirdparty/lib/raspberrypi/libwiringPiDev.a" "thirdparty/lib/raspberrypi/libcblas.a" "thirdparty/lib/raspberrypi/librefblas.a" "thirdparty/lib/raspberrypi/liblapack.a" diff --git a/2.3-1/macros/findDeps/getAllSources.sci b/2.3-1/macros/findDeps/getAllSources.sci index c8fa7ae6..92242cde 100644 --- a/2.3-1/macros/findDeps/getAllSources.sci +++ b/2.3-1/macros/findDeps/getAllSources.sci @@ -155,18 +155,18 @@ function allSources = getAllSources(SharedInfo) "src/c/matrixOperations/powm/spowma.c" "src/c/matrixOperations/powm/zpowma.c" "src/c/matrixOperations/powm/cpowma.c" - "src/c/matrixOperations/spec/cspeca.c" - "src/c/matrixOperations/spec/dspeca.c" - "src/c/matrixOperations/spec/sspeca.c" - "src/c/matrixOperations/spec/zspeca.c" + "src/c/linearAlgebra/spec/cspeca.c" + "src/c/linearAlgebra/spec/dspeca.c" + "src/c/linearAlgebra/spec/sspeca.c" + "src/c/linearAlgebra/spec/zspeca.c" "src/c/matrixOperations/transpose/ztransposea.c" "src/c/matrixOperations/transpose/stransposea.c" "src/c/matrixOperations/transpose/ctransposea.c" "src/c/matrixOperations/transpose/dtransposea.c" - "src/c/matrixOperations/spec2/zspec2a.c" - "src/c/matrixOperations/spec2/sspec2a.c" - "src/c/matrixOperations/spec2/dspec2a.c" - "src/c/matrixOperations/spec2/cspec2a.c" + "src/c/linearAlgebra/spec2/zspec2a.c" + "src/c/linearAlgebra/spec2/sspec2a.c" + "src/c/linearAlgebra/spec2/dspec2a.c" + "src/c/linearAlgebra/spec2/cspec2a.c" "src/c/matrixOperations/trace/stracea.c" "src/c/matrixOperations/trace/dtracea.c" "src/c/matrixOperations/trace/ctracea.c" @@ -334,6 +334,9 @@ function allSources = getAllSources(SharedInfo) "src/c/matrixOperations/kron/skrona.c" "src/c/matrixOperations/norm/dnormv.c" "src/c/matrixOperations/norm/dnorma.c" + "src/c/elementaryFunctions/nextpow2/dnextpow2a.c" + "src/c/elementaryFunctions/isreal/sisreals.c" + "src/c/elementaryFunctions/isreal/disreals.c" "src/c/elementaryFunctions/cos/dcosa.c" "src/c/elementaryFunctions/cos/dcoss.c" "src/c/elementaryFunctions/cos/scosa.c" @@ -620,16 +623,6 @@ function allSources = getAllSources(SharedInfo) "src/c/elementaryFunctions/round/i16rounds.c" "src/c/elementaryFunctions/lnp1m1/slnp1m1s.c" "src/c/elementaryFunctions/lnp1m1/dlnp1m1s.c" - "src/c/elementaryFunctions/uint8/duint8s.c" - "src/c/elementaryFunctions/uint8/duint8a.c" - "src/c/elementaryFunctions/uint8/suint8s.c" - "src/c/elementaryFunctions/uint8/suint8a.c" - "src/c/elementaryFunctions/uint8/i8uint8s.c" - "src/c/elementaryFunctions/uint8/i8uint8a.c" - "src/c/elementaryFunctions/uint8/u16uint8s.c" - "src/c/elementaryFunctions/uint8/u16uint8a.c" - "src/c/elementaryFunctions/uint8/i16uint8s.c" - "src/c/elementaryFunctions/uint8/i16uint8a.c" "src/c/elementaryFunctions/float/dfloats.c" "src/c/elementaryFunctions/float/dfloata.c" @@ -644,7 +637,16 @@ function allSources = getAllSources(SharedInfo) "src/c/elementaryFunctions/float/i16floats.c" "src/c/elementaryFunctions/float/i16floata.c" - + "src/c/elementaryFunctions/uint8/duint8s.c" + "src/c/elementaryFunctions/uint8/duint8a.c" + "src/c/elementaryFunctions/uint8/suint8s.c" + "src/c/elementaryFunctions/uint8/suint8a.c" + "src/c/elementaryFunctions/uint8/i8uint8s.c" + "src/c/elementaryFunctions/uint8/i8uint8a.c" + "src/c/elementaryFunctions/uint8/u16uint8s.c" + "src/c/elementaryFunctions/uint8/u16uint8a.c" + "src/c/elementaryFunctions/uint8/i16uint8s.c" + "src/c/elementaryFunctions/uint8/i16uint8a.c" "src/c/elementaryFunctions/int8/dint8s.c" "src/c/elementaryFunctions/int8/dint8a.c" "src/c/elementaryFunctions/int8/sint8s.c" @@ -675,6 +677,35 @@ function allSources = getAllSources(SharedInfo) "src/c/elementaryFunctions/int16/i8int16a.c" "src/c/elementaryFunctions/int16/u16int16s.c" "src/c/elementaryFunctions/int16/u16int16a.c" + "src/c/elementaryFunctions/uint32/duint32s.c" + "src/c/elementaryFunctions/uint32/duint32a.c" + "src/c/elementaryFunctions/uint32/suint32s.c" + "src/c/elementaryFunctions/uint32/suint32a.c" + "src/c/elementaryFunctions/uint32/u8uint32s.c" + "src/c/elementaryFunctions/uint32/u8uint32a.c" + "src/c/elementaryFunctions/uint32/i8uint32s.c" + "src/c/elementaryFunctions/uint32/i8uint32a.c" + "src/c/elementaryFunctions/uint32/i16uint32s.c" + "src/c/elementaryFunctions/uint32/i16uint32a.c" + "src/c/elementaryFunctions/uint32/u16uint32s.c" + "src/c/elementaryFunctions/uint32/u16uint32a.c" + "src/c/elementaryFunctions/uint32/i32uint32s.c" + "src/c/elementaryFunctions/uint32/i32uint32a.c" + "src/c/elementaryFunctions/int32/dint32s.c" + "src/c/elementaryFunctions/int32/dint32a.c" + "src/c/elementaryFunctions/int32/sint32s.c" + "src/c/elementaryFunctions/int32/sint32a.c" + "src/c/elementaryFunctions/int32/u8int32s.c" + "src/c/elementaryFunctions/int32/u8int32a.c" + "src/c/elementaryFunctions/int32/i8int32s.c" + "src/c/elementaryFunctions/int32/i8int32a.c" + "src/c/elementaryFunctions/int32/u16int32s.c" + "src/c/elementaryFunctions/int32/u16int32a.c" + "src/c/elementaryFunctions/int32/i16int32s.c" + "src/c/elementaryFunctions/int32/i16int32a.c" + "src/c/elementaryFunctions/int32/u32int32s.c" + "src/c/elementaryFunctions/int32/u32int32a.c" + "src/c/elementaryFunctions/bitand/u8bitands.c" "src/c/elementaryFunctions/bitand/u8bitanda.c" "src/c/elementaryFunctions/bitand/u16bitands.c" @@ -695,6 +726,8 @@ function allSources = getAllSources(SharedInfo) "src/c/elementaryFunctions/bitset/u16bitsets.c" "src/c/elementaryFunctions/bitget/u8bitgets.c" "src/c/elementaryFunctions/bitget/u16bitgets.c" + "src/c/elementaryFunctions/linspace/slinspacea.c" + "src/c/elementaryFunctions/linspace/slinspaces.c" "src/c/elementaryFunctions/linspace/dlinspaces.c" "src/c/elementaryFunctions/linspace/dlinspacea.c" "src/c/elementaryFunctions/logspace/dlogspaces.c" @@ -966,6 +999,15 @@ function allSources = getAllSources(SharedInfo) "src/c/string/string/u16strings.c" "src/c/string/string/i16stringa.c" "src/c/string/string/i16strings.c" + "src/c/signalProcessing/modk/dmodka.c" + "src/c/signalProcessing/transforms/idct/sidcta.c" + "src/c/signalProcessing/transforms/idct/cidcta.c" + "src/c/signalProcessing/transforms/idct/zidcta.c" + "src/c/signalProcessing/transforms/idct/didcta.c" + "src/c/signalProcessing/transforms/dct/sdcta.c" + "src/c/signalProcessing/transforms/dct/cdcta.c" + "src/c/signalProcessing/transforms/dct/zdcta.c" + "src/c/signalProcessing/transforms/dct/ddcta.c" "src/c/signalProcessing/fft/dfft2.c" "src/c/signalProcessing/fft/cfftma.c" "src/c/signalProcessing/fft/r2tx.c" @@ -1203,8 +1245,12 @@ function allSources = getAllSources(SharedInfo) "src/c/elementaryFunctions/Trigonometry/sech/zsechs.c" "src/c/elementaryFunctions/Trigonometry/sech/csecha.c" "src/c/elementaryFunctions/Trigonometry/sech/csechs.c" + "src/c/interpolation/interp1/sinterp13a.c" + "src/c/interpolation/interp1/dinterp13a.c" + "src/c/elementaryFunctions/discrete_mathematics/gcd/u8gcds.c" "src/c/elementaryFunctions/Trigonometry/sinc/dsinca.c" "src/c/elementaryFunctions/Trigonometry/sinc/zsinca.c" + "src/c/elementaryFunctions/discrete_mathematics/gcd/dgcda.c" "src/c/elementaryFunctions/discrete_mathematics/factorial/dfactorials.c" "src/c/elementaryFunctions/discrete_mathematics/factorial/dfactoriala.c" "src/c/elementaryFunctions/discrete_mathematics/factorial/sfactorials.c" @@ -1220,6 +1266,11 @@ function allSources = getAllSources(SharedInfo) "src/c/linearAlgebra/schur/dschura.c" "src/c/linearAlgebra/schur/dgschura.c" "src/c/linearAlgebra/balanc/dbalanca.c" + "src/c/linearAlgebra/svd/dsvda.c" + "src/c/linearAlgebra/svd/zsvda.c" + "src/c/linearAlgebra/hess/dhessa.c" + "src/c/linearAlgebra/sva/dsvaa.c" + "src/c/linearAlgebra/spec/dspec1a.c" "src/c/linearAlgebra/rcond/drconda.c"]; //Files to be inserted only if output format selected is 'Arduino'. @@ -1232,7 +1283,15 @@ function allSources = getAllSources(SharedInfo) //"src/c/scilab-arduino/cmd_servo_attach/u8cmd_servo_attach.cpp" //"src/c/scilab-arduino/cmd_servo_detach/u8cmd_servo_detach.cpp" //"src/c/scilab-arduino/cmd_servo_move/u8cmd_servo_move.cpp" - "src/c/scilab-arduino/sleep/u16sleeps.c"]; + "src/c/scilab-arduino/sleep/u16sleeps.c" + "src/c/scilab-arduino/cmd_analog_in_volt/u8cmd_analog_in_volts.c" + "src/c/scilab-arduino/cmd_analog_out_volt/u8cmd_analog_out_volts.c" + "src/c/scilab-arduino/cmd_dcmotor_release/u8cmd_dcmotor_releases.c" + "src/c/scilab-arduino/cmd_i2c_dev/u8cmd_i2c_devs.cpp" + "src/c/scilab-arduino/cmd_i2c_write/u8cmd_i2c_writes.cpp" + "src/c/scilab-arduino/cmd_i2c_read/u8cmd_i2c_reads.cpp" + "src/c/scilab-arduino/cmd_i2c_write_register/u8cmd_i2c_write_registers.cpp" + "src/c/scilab-arduino/cmd_i2c_read_register/u8cmd_i2c_read_registers.cpp"]; //Files to be inserted only if output format selected is 'AVR'. AVR_files = [ @@ -1270,38 +1329,81 @@ function allSources = getAllSources(SharedInfo) ]; RPI_files = [ - "src/c/hardware/rasberrypi/gpio/u8RPIDigitalSetups.c" - "src/c/hardware/rasberrypi/gpio/u8RPIDigitalOuts.c" - "src/c/hardware/rasberrypi/gpio/u8RPIDigitalIns.c" - "src/c/hardware/rasberrypi/timing/u16RPIDelayMillis.c" - "src/c/hardware/rasberrypi/timing/u16RPIDelayMicros.c" - "src/c/hardware/rasberrypi/timing/u32RPIGetMillis.c" - "src/c/hardware/rasberrypi/timing/u32RPIGetMicros.c" - "src/c/hardware/rasberrypi/serial/u16RPISerialSetups.c" - "src/c/hardware/rasberrypi/serial/u8RPISerialCloses.c" - "src/c/hardware/rasberrypi/serial/u8RPISerialSendChars.c" - "src/c/hardware/rasberrypi/serial/u8RPISerialSendDatas.c" - "src/c/hardware/rasberrypi/serial/i8RPISerialSendDatas.c" - "src/c/hardware/rasberrypi/serial/u16RPISerialSendDatas.c" - "src/c/hardware/rasberrypi/serial/i16RPISerialSendDatas.c" - "src/c/hardware/rasberrypi/serial/u8RPISerialSendDataa.c" - "src/c/hardware/rasberrypi/serial/i8RPISerialSendDataa.c" - "src/c/hardware/rasberrypi/serial/u16RPISerialSendDataa.c" - "src/c/hardware/rasberrypi/serial/i16RPISerialSendDataa.c" - "src/c/hardware/rasberrypi/serial/sRPISerialSendDatas.c" - "src/c/hardware/rasberrypi/serial/dRPISerialSendDatas.c" - "src/c/hardware/rasberrypi/serial/sRPISerialSendDataa.c" - "src/c/hardware/rasberrypi/serial/dRPISerialSendDataa.c" - "src/c/hardware/rasberrypi/serial/gRPISerialSendDatas.c" - "src/c/hardware/rasberrypi/serial/i16RPISerialDataAvails.c" - "src/c/hardware/rasberrypi/serial/i16RPISerialGetChars.c" - "src/c/hardware/rasberrypi/serial/u8RPISerialFlushs.c" - "src/c/hardware/rasberrypi/threading/u16RPIThreadCreates.c" - "src/c/hardware/rasberrypi/pwm/u8RPIHardPWMWrites.c" - "src/c/hardware/rasberrypi/pwm/u8RPIHardPWMSetRanges.c" - "src/c/hardware/rasberrypi/pwm/u8RPIHardPWMSetModes.c" - "src/c/hardware/rasberrypi/pwm/u8RPIHardPWMSetClocks.c" - "src/c/hardware/rasberrypi/ISR/i16RPIPinISRs.c" + "/src/c/hardware/rasberrypi/Digital/RPI_digitalReadByte.c" + "/src/c/hardware/rasberrypi/Digital/u8RPI_digitalReads.c" + "/src/c/hardware/rasberrypi/Digital/u8RPI_digitalWriteBytes.c" + "/src/c/hardware/rasberrypi/Digital/u8RPI_digitalWrites.c" + "/src/c/hardware/rasberrypi/gertBoard/RPI_gertboardSPISetup.c" + "/src/c/hardware/rasberrypi/gertBoard/u16RPI_gertboardAnalogReads.c" + "/src/c/hardware/rasberrypi/gertBoard/u16RPI_gertboardAnalogSetups.c" + "/src/c/hardware/rasberrypi/gertBoard/u16RPI_gertboardAnalogWrites.c" + "/src/c/hardware/rasberrypi/I2C/u16RPI_I2CReadReg8s.c" + "/src/c/hardware/rasberrypi/I2C/u16RPI_I2CReadReg16s.c" + "/src/c/hardware/rasberrypi/I2C/u16RPI_I2CReads.c" + "/src/c/hardware/rasberrypi/I2C/u16RPI_I2CSetups.c" + "/src/c/hardware/rasberrypi/I2C/u16RPI_I2CWriteReg8s.c" + "/src/c/hardware/rasberrypi/I2C/u16RPI_I2CWriteReg16s.c" + "/src/c/hardware/rasberrypi/I2C/u16RPI_I2CWrites.c" + "/src/c/hardware/rasberrypi/Interrupt/u8RPI_waitForInterrupts.c" + "/src/c/hardware/rasberrypi/lcd/u8RPI_lcdCharDefs.c" + "/src/c/hardware/rasberrypi/lcd/u8RPI_lcdClears.c" + "/src/c/hardware/rasberrypi/lcd/u8RPI_lcdCursorBlinks.c" + "/src/c/hardware/rasberrypi/lcd/u8RPI_lcdCursors.c" + "/src/c/hardware/rasberrypi/lcd/u8RPI_lcdDisplays.c" + "/src/c/hardware/rasberrypi/lcd/u8RPI_lcdHomes.c" + "/src/c/hardware/rasberrypi/lcd/u8RPI_lcdInits.c" + "/src/c/hardware/rasberrypi/lcd/u8RPI_lcdPositions.c" + "/src/c/hardware/rasberrypi/lcd/u8RPI_lcdPrintfs.c" + "/src/c/hardware/rasberrypi/lcd/u8RPI_lcdPutchars.c" + "/src/c/hardware/rasberrypi/lcd/u8RPI_lcdPutss.c" + "/src/c/hardware/rasberrypi/lcd/u8RPI_lcdSendCommands.c" + "/src/c/hardware/rasberrypi/mcp/u16RPI_mcp23s08Setups.c" + "/src/c/hardware/rasberrypi/mcp/u16RPI_mcp23s17Setups.c" + "/src/c/hardware/rasberrypi/mcp/u16RPI_mcp23008Setups.c" + "/src/c/hardware/rasberrypi/mcp/u16RPI_mcp23016Setups.c" + "/src/c/hardware/rasberrypi/mcp/u16RPI_mcp23017Setups.c" + "/src/c/hardware/rasberrypi/Misc/RPI_boardRev.c" + "/src/c/hardware/rasberrypi/Misc/u8RPI_padDrives.c" + "/src/c/hardware/rasberrypi/Misc/u16RPI_sn3218Setups.c" + "/src/c/hardware/rasberrypi/pcf/u16RPI_pcf8574Setups.c" + "/src/c/hardware/rasberrypi/pcf/u16RPI_pcf8591Setups.c" + "/src/c/hardware/rasberrypi/piGlow/u8RPI_piGlow1s.c" + "/src/c/hardware/rasberrypi/piGlow/u8RPI_piGlowLegs.c" + "/src/c/hardware/rasberrypi/piGlow/u8RPI_piGlowRings.c" + "/src/c/hardware/rasberrypi/piGlow/u8RPI_piGlowSetups.c" + "/src/c/hardware/rasberrypi/pinMap/u8RPI_physToGpios.c" + "/src/c/hardware/rasberrypi/pinMap/u8RPI_wpiToGpios.c" + "/src/c/hardware/rasberrypi/pwm/gRPI_pwmModea.c" + "/src/c/hardware/rasberrypi/pwm/u8RPI_pwmToneWrites.c" + "/src/c/hardware/rasberrypi/pwm/u8RPI_pwmWrites.c" + "/src/c/hardware/rasberrypi/pwm/u16RPI_pwmClocks.c" + "/src/c/hardware/rasberrypi/pwm/u32RPI_pwmRanges.c" + "/src/c/hardware/rasberrypi/Serial/gRPI_serialOpena.c" + "/src/c/hardware/rasberrypi/Serial/u8RPI_serialCloses.c" + "/src/c/hardware/rasberrypi/Serial/u8RPI_serialDataAvails.c" + "/src/c/hardware/rasberrypi/Serial/u8RPI_serialFlushs.c" + "/src/c/hardware/rasberrypi/Serial/u8RPI_serialGetchars.c" + "/src/c/hardware/rasberrypi/Serial/u8RPI_serialPrintfs.c" + "/src/c/hardware/rasberrypi/Serial/u8RPI_serialPutchars.c" + "/src/c/hardware/rasberrypi/Serial/u8RPI_serialPutss.c" + "/src/c/hardware/rasberrypi/Setup/gRPI_pinNumberinga.c" + "/src/c/hardware/rasberrypi/Setup/u8RPI_getAlts.c" + "/src/c/hardware/rasberrypi/Setup/u8RPI_pinModeAlts.c" + "/src/c/hardware/rasberrypi/Setup/u8RPI_pinModes.c" + "/src/c/hardware/rasberrypi/Setup/u8RPI_pullControls.c" + "/src/c/hardware/rasberrypi/Shift/u8RPI_shiftIns.c" + "/src/c/hardware/rasberrypi/Shift/u8RPI_shiftOuts.c" + "/src/c/hardware/rasberrypi/Shift/u16RPI_sr595Setups.c" + "/src/c/hardware/rasberrypi/soft/u8RPI_softPwmCreates.c" + "/src/c/hardware/rasberrypi/soft/u8RPI_softPwmStops.c" + "/src/c/hardware/rasberrypi/soft/u8RPI_softPwmWrites.c" + "/src/c/hardware/rasberrypi/soft/u8RPI_softToneCreates.c" + "/src/c/hardware/rasberrypi/soft/u8RPI_softToneStops.c" + "/src/c/hardware/rasberrypi/soft/u8RPI_softToneWrites.c" + "/src/c/hardware/rasberrypi/Timing/RPI_micros.c" + "/src/c/hardware/rasberrypi/Timing/RPI_millis.c" + "/src/c/hardware/rasberrypi/Timing/u32RPI_delayMicros.c" + "/src/c/hardware/rasberrypi/Timing/u32RPI_delays.c" ]; OpenCV_files = [ diff --git a/2.3-1/macros/findDeps/getArduinoFiles.sci b/2.3-1/macros/findDeps/getArduinoFiles.sci index aae8e500..97264575 100644 --- a/2.3-1/macros/findDeps/getArduinoFiles.sci +++ b/2.3-1/macros/findDeps/getArduinoFiles.sci @@ -23,6 +23,5 @@ function arduinoFiles = getArduinoFiles() arduinoFiles = [ "src/c/scilab-arduino/default_files/setup_arduino.h" - "src/c/scilab-arduino/default_files/Makefile" "src/c/scilab-arduino/default_files/sci2c_arduino.ino"]; endfunction diff --git a/2.3-1/macros/lib b/2.3-1/macros/lib Binary files differindex e0b7848f..1b718c75 100644 --- a/2.3-1/macros/lib +++ b/2.3-1/macros/lib diff --git a/2.3-1/macros/runsci2c.sci b/2.3-1/macros/runsci2c.sci index eb32a4b5..2fc66be8 100644 --- a/2.3-1/macros/runsci2c.sci +++ b/2.3-1/macros/runsci2c.sci @@ -1,4 +1,4 @@ -function runsci2c(UserScilabMainFile, UserSciFilesPaths, SCI2COutputPath, Runmode, BuildTool,Target)
+function runsci2c(UserScilabMainFile, UserSciFilesPaths, SCI2COutputPath, Runmode, BuildTool,Target,Board_name)
// function runsci2c(SCI2CInputPrmFile)
// -----------------------------------------------------------------
// === hArtes/PoliBa/GAP SCI2C tool ===
@@ -51,12 +51,12 @@ disp(RunSci2CMainDir); // --- Initialize the SCI2C tool directories and files. ---
[FileInfoDatFile,SharedInfoDatFile] = INIT_SCI2C(UserScilabMainFile, ...
- UserSciFilesPaths, SCI2COutputPath, RunMode, Target);
+ UserSciFilesPaths, SCI2COutputPath, RunMode, Target,Board_name);
+
// -- Load FileInfo and SharedInfo
load(SharedInfoDatFile,'SharedInfo');
load(FileInfoDatFile,'FileInfo');
-
RunMode = SharedInfo.RunMode;
// --- Generation of the library structure. ---
@@ -91,7 +91,6 @@ load(SharedInfoDatFile,'SharedInfo'); // ---------------------------
global SCI2CHOME
-
allSources = SCI2CHOME + "/" + getAllSources(SharedInfo);
allHeaders = SCI2CHOME + "/" +getAllHeaders(SharedInfo);
allInterfaces = SCI2CHOME + "/" + getAllInterfaces(SharedInfo);
@@ -177,6 +176,8 @@ if (Target == 'Arduino') //disp("Copying "+arduinoFiles(i)+" in "+SCI2COutputPath+"/arduino/sci2carduino");
copyfile(arduinoFiles(i), SCI2COutputPath+"/arduino/sci2c_arduino/");
end
+ C_GenerateMkfle_arduino(FileInfo,SharedInfo);
+ movefile(FileInfo.MakefileFilename, SCI2COutputPath+"/arduino/sci2c_arduino/");
elseif (Target == 'AVR')
AVRFile = SCI2CHOME + "/" + "src/c/hardware/avr/default_files/Makefile";
copyfile(AVRFile, SCI2COutputPath);
diff --git a/2.3-1/macros/sci2c_gui.sci b/2.3-1/macros/sci2c_gui.sci index 6dbd4628..bee6fe43 100644 --- a/2.3-1/macros/sci2c_gui.sci +++ b/2.3-1/macros/sci2c_gui.sci @@ -38,7 +38,7 @@ uimenu("parent", h, "label", gettext("Sci2c help page"), "callback", "cb_sci2c_g uimenu("parent", h, "label", gettext("About SCI2C tools..."), "callback", "cb_sci2c_gui", "tag", "about_sci2c_menu"); figw = 800; -figh = 15*margin + btnh + 9*widgeth; +figh = 16*margin + btnh + 10*widgeth; sci2cfig.axes_size = [figw figh]; sci2cfig.auto_resize = "on"; //sci2cfig.visible = "off"; // to be sure that no plot can appear in the window @@ -79,7 +79,7 @@ optframe = uicontrol("parent", sci2cfig,... "relief", "groove",... "style", "frame",... "units", "pixels",... - "position", [margin 2*margin+btnh figw-2*margin 4*margin+6*widgeth],... + "position", [margin 2*margin+btnh figw-2*margin 7*margin+6*widgeth],... "fontname", defaultfont,... "fontunits", "points",... "fontsize", 12,... @@ -90,7 +90,7 @@ opttitle = uicontrol("parent", sci2cfig,... "style", "text",... "string", gettext("Options"),... "units", "pixels",... - "position", [2*margin 2*margin+btnh+4*margin+6*widgeth-8 50 18],... + "position", [2*margin 5*margin+btnh+4*margin+6*widgeth-8 50 18],... "fontname", defaultfont,... "fontunits", "points",... "fontsize", 11,... @@ -175,6 +175,33 @@ sciintocradiono = uicontrol("parent", sci2cfig,... "callback", "cb_sci2c_gui",... "tag", "sciintocradiono"); +// --- Board Name ---- +brdnmy = sciintocy + margin + btnh ; +brdnmlabel = uicontrol("parent", sci2cfig,... + "style", "text",... + "string", gettext("Board Name: "),... + "position",[2*margin brdnmy widgetLabelWidth widgeth],... + "horizontalalignment", "left",... + "fontname", defaultfont,... + "fontunits", "points",... + "fontsize", 12); + +brdnmType = uicontrol("parent", sci2cfig,... + "style", "popupmenu",... + "string", ["";"Uno";"Mega-ATmega1280";"Mega-2560 or Mega ADK";"Nano - ATmega168";"Nano - ATmega328";"Micro";"Mini - Atmega168";"Mini - Atmega328";"Pro Mini (3.3V, 8MHz) - ATmega328";"Pro Mini (3.3V, 8MHz) - ATmega168";"Pro Mini (5V, 16MHz) - ATmega328";"Pro Mini (5V, 16MHz) - ATmega168";"NG or older - ATmega168";"NG or older - ATmega8";"Duemilanove - ATmega328";"BT - ATmega328";"BT - ATmega 168";"Diecimila/Duemilanove - ATmega168";"Esplora";"Ethernet";"Fio";"Leonardo";"Robot Control";"Robot Motor";"LilyPad Arduino - ATmega328";"LilyPad Arduino - ATmega168";"LilyPad Arduino USB"],... + "position",[2*margin+widgetLabelWidth brdnmy 3*radiow widgeth],... + "horizontalalignment", "left",... + "fontname", defaultfont,... + "enable", "off",... + "fontunits", "points",... + "fontsize", 12,... + "min", 0, ... + "max", 1, ... + "value", [1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0],... + "callback", "cb_sci2c_gui",... + "tag", "brdnmType"); + +sciintocy = brdnmy // --- Output format: Standalone or Arduino outformaty = sciintocy + margin + btnh ; outformatlabel = uicontrol("parent", sci2cfig,... @@ -240,7 +267,8 @@ outformatradiorpi = uicontrol("parent", sci2cfig,... "max", 1, ... "value", 0,... "callback", "cb_sci2c_gui",... - "tag", "outformatradiorpi"); + "tag", "outformatradiorpi"); + // --- Run mode option --- runy = outformaty + margin + widgeth; @@ -296,7 +324,7 @@ runradiogenlib = uicontrol("parent", sci2cfig,... // --- Output directory --- // ------------------------ // Frame -optframemaxy = 2*margin+btnh + 4*margin+6*widgeth; +optframemaxy = 5*margin+btnh + 4*margin+6*widgeth; outframe = uicontrol("parent", sci2cfig,... "relief", "groove",... "style", "frame",... diff --git a/2.3-1/macros/scilab2c.sci b/2.3-1/macros/scilab2c.sci index 41494eac..197c88b0 100644 --- a/2.3-1/macros/scilab2c.sci +++ b/2.3-1/macros/scilab2c.sci @@ -12,6 +12,7 @@ function scilab2c(varargin) [lhs, rhs] = argn(); + select rhs // // scilab2c() @@ -35,6 +36,7 @@ function scilab2c(varargin) RunMode = 'All'; BuildTool = getNativeBuildTool(); Target = "StandAlone" + //Board_name = "uno" // // scilab2c(UserScilabMainFile, CCodeOutputDir, UserSciFilesPaths) // @@ -55,6 +57,7 @@ function scilab2c(varargin) RunMode = "All"; BuildTool = getNativeBuildTool(); Target = "StandAlone" + //Board_name = "uno" // // scilab2c(UserScilabMainFile, CCodeOutputDir, UserSciFilesPaths, RunMode) // @@ -79,6 +82,7 @@ function scilab2c(varargin) RunMode = varargin(4); BuildTool = getNativeBuildTool(); Target = "StandAlone" + //Board_name = "uno" case 5 for i = 1:4 if typeof(varargin(i)) <> "string" @@ -104,6 +108,7 @@ function scilab2c(varargin) RunMode = varargin(4); BuildTool = varargin(5); Target = "StandAlone" + //Board_name = "uno" case 6 for i = 1:4 if typeof(varargin(i)) <> "string" @@ -133,6 +138,41 @@ function scilab2c(varargin) RunMode = varargin(4); BuildTool = varargin(5); Target = varargin(6); + //Board_name = "uno"; + case 7 + for i = 1:4 + if typeof(varargin(i)) <> "string" + error(msprintf(gettext("%s: Wrong type for input argument #%d: String expected.\n"),"scilab2c",i)); + return + end + end + if varargin(4) <> "All" & varargin(4) <> "Translate" & varargin(4) <> "GenLibraryStructure" & varargin(4) <> "FunCall" + error(msprintf(gettext("%s: argument #%d must be: ""All"", ""Translate"" ,""GenLibraryStructure"" or ""FunCall"".\n"),"scilab2c",4)); + return + end + if varargin(5) <> "make" & varargin(5) <> "nmake" + error(msprintf(gettext("%s: argument #%d must be: ""make"" or ""nmake"".\n"),"scilab2c",5)); + return + end + if varargin(6) <> "StandAlone" & varargin(6) <> "Arduino" & varargin(6) <> "AVR" & varargin(6) <> "RPi" + error(msprintf(gettext("%s: argument #%d must be: ""StandAlone"" or ""Arduino"" or ""AVR"" or ""RPi"".\n"),"scilab2c",5)); + return + end + //if varargin(7) <> "uno" & varargin(7) <> "mega" & varargin(7) <> "mega2560" & varargin(7) <> "micro" & varargin(7) <> "nano" & varargin(7) <> "mini" + // error(msprintf(gettext("%s: argument #%d must be: ""uno"" or ""mega"" or ""micro"" or ""nano"" or ""mini"".\n"),"scilab2c",7)); + //return + //end + UserScilabMainFile = varargin(1); + CCodeOutputDir = varargin(2); + if varargin(3) == "" + UserSciFilesPaths = []; + else + UserSciFilesPaths = varargin(3); + end + RunMode = varargin(4); + BuildTool = varargin(5); + Target = varargin(6); + Board_name = varargin(7); else // // Calling scilab2c with more than understood values @@ -158,8 +198,9 @@ error(msprintf(gettext("%s: Wrong number of input argument(s): %d expected.\n"), userchoice = 1; end if (userchoice == 1) + // --- LAUNCH SCI2C --- - runsci2c(UserScilabMainFile, UserSciFilesPaths, CCodeOutputDir, RunMode, BuildTool,Target); + runsci2c(UserScilabMainFile, UserSciFilesPaths, CCodeOutputDir, RunMode, BuildTool,Target,Board_name); end endfunction |