summaryrefslogtreecommitdiff
path: root/2.3-1/macros/Scilab-Arduino/GenerateSetupFunction.sci
blob: 19cf4b88b014a9f5396028138369cb2a4d75a26e (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
// Copyright (C) 2016 - 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
// Organization: FOSSEE, IIT Bombay
// Email: toolbox@scilab.in

function GenerateSetupFunction(FileInfo)
// -----------------------------------------------------------------
// Generate setup functions for Arduino peripherals according to
// entries in given input file  
//
// Input data:
//    File containing required peripheral initialisation
//
// Output data:
//    generates file with setup functions
//
// Author: Siddhesh Wani  
// -----------------------------------------------------------------


SetupListFile = FileInfo.SetupListFile;
load(SetupListFile,'SetupList');

SetupArduinoFile = fullfile(FileInfo.CStyleOutCCCodeDir,'setup_arduino.c');
SetupArduinoFile = fullfile(FileInfo.CStyleOutCCCodeDir,'setup_arduino.cpp');
C_SCI2CHeader(SetupArduinoFile);

PrintStringInfo('#include ""setup_arduino.h""',SetupArduinoFile,'file','y');
PrintStringInfo(' ',SetupArduinoFile,'file','y');
PrintStringInfo('int setup_arduino()',SetupArduinoFile,'file','y');
PrintStringInfo('{',SetupArduinoFile,'file','y');

nelements=size(SetupList);
for i=1:nelements
	funcall = '    ';
	funcall = funcall + SetupList(i)(1);
	funcall = funcall + '(';
	NInArg = size(SetupList(i))-1;
	for j=1:NInArg-1
		funcall = funcall + SetupList(i)(j+1);
		funcall = funcall + ', ';
	end
	funcall = funcall + SetupList(i)(NInArg+1);
	funcall = funcall + ');';
	PrintStringInfo(funcall,SetupArduinoFile,'file','y');
end
PrintStringInfo(' ',SetupArduinoFile,'file','y');
PrintStringInfo('    return (0); ',SetupArduinoFile,'file','y');
PrintStringInfo('}',SetupArduinoFile,'file','y');

endfunction