summaryrefslogtreecommitdiff
path: root/macros/CCodeGeneration/C_GenerateFunName.sci
blob: a1373ded4456df2abb4da27cebfd6b9435e38515 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
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