summaryrefslogtreecommitdiff
path: root/2.3-1/macros/CCodeGeneration/C_GenerateFunName.sci
diff options
context:
space:
mode:
Diffstat (limited to '2.3-1/macros/CCodeGeneration/C_GenerateFunName.sci')
-rw-r--r--2.3-1/macros/CCodeGeneration/C_GenerateFunName.sci56
1 files changed, 56 insertions, 0 deletions
diff --git a/2.3-1/macros/CCodeGeneration/C_GenerateFunName.sci b/2.3-1/macros/CCodeGeneration/C_GenerateFunName.sci
new file mode 100644
index 00000000..a1373ded
--- /dev/null
+++ b/2.3-1/macros/CCodeGeneration/C_GenerateFunName.sci
@@ -0,0 +1,56 @@
+function CFunName = C_GenerateFunName(FunctionName,InArg,NInArg,OutArg,NOutArg)
+// function CFunName = C_GenerateFunName(FunctionName,InArg,NInArg,OutArg,NOutArg)
+// -----------------------------------------------------------------
+// //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.
+// 11-Nov-2007 -- Raffaele Nutricato: changed naming rule.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),5,5);
+CFunName = '';
+if((IsAVRSupportFunction(FunctionName)) | (IsRPISupportFunction(FunctionName)) | ...
+ (mtlb_strcmp(part(FunctionName,1:5),'odefn') == %T) |...
+ (mtlb_strcmp(part(FunctionName,1:9),'PI_thread') == %T)| ...
+ (mtlb_strcmp(part(FunctionName,1:4),'ISR_') == %T))
+//If current function is an AVR or RPi function, then function name can be just
+//plain function name without any input/output arguments types
+//Slimilarly for functions conataining ode functions and functions to be called in
+//separate thread in RPi
+ CFunName = CFunName+FunctionName;
+
+else
+ for tmpcnt = 1:NInArg
+ if (InArg(tmpcnt).Dimension == 1)
+ CFunName = CFunName+InArg(tmpcnt).Type+'2';
+ else
+ CFunName = CFunName+InArg(tmpcnt).Type+SCI2Cstring(InArg(tmpcnt).Dimension);
+ end
+ end
+
+ CFunName = CFunName+FunctionName;
+
+ for tmpcnt = 1:NOutArg
+ if (OutArg(tmpcnt).Dimension == 1)
+ CFunName = CFunName+OutArg(tmpcnt).Type+'2';
+ else
+ CFunName = CFunName+OutArg(tmpcnt).Type+SCI2Cstring(OutArg(tmpcnt).Dimension);
+ end
+ end
+
+end
+endfunction