// 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 InsertSetupInList(FunName,InArg,NInArg,SetupListFile,FunType) // ----------------------------------------------------------------- // Generate list of setup functions required acorginto peripherals used // // Input data: // FunName: scilab-arduino toolbox function // InArg: input arguments for above mentioned function // NInArg: no of input arguments for above mentioned function // SetupListFile: file containing list of setup functions // FunType: Gpio function or initialisation function for any other perpheral // // Output data: // List of setup functions for Arduino // // Author: Siddhesh Wani // ----------------------------------------------------------------- load(SetupListFile,'SetupList'); //Check first if current input function already exists in the list nelements = size(SetupList); found=%F; if(FunType=='Setup') for i=1:nelements if(SetupList(i)(1) == FunName) for j=1:NInArg if(SetupList(i)(j+1) ~= InArg(j).Name) found = %F break; else found = %T; end end end if (found == %T) break; //One match found. No need to check further. end end if(found == %F) temp = list(FunName); for i=1:NInArg temp($+1) = InArg(i).Name; end end SetupList($+1) = temp; elseif((FunType=='Init')&((FunName=='cmd_digital_out')|(FunName=='cmd_analog_out')|(FunName=='cmd_digital_in'))) for i=1:nelements if(SetupList(i)(1) == "pinMode") if(SetupList(i)(2) == InArg(2).Name) found = %T break; else found = %F; end else found = %F; end end if(found == %F) temp = list('pinMode'); temp($+1) = InArg(2).Name; if ((FunName=='cmd_digital_out')|(FunName=='cmd_analog_out')) temp($+1) = 'OUTPUT'; elseif ((FunName == 'cmd_digital_in') | (FunName=='cmd_analog_in')) temp($+1) = 'INPUT'; end SetupList($+1) = temp; end end save(SetupListFile,'SetupList'); endfunction