// // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab // Copyright (C) 2009 - INRIA - Vincent COUVERT // // 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 // // Callback function for SCI2C GUI (See sci2c_gui.sci) function cb_sci2c_gui // // --- File to convert --- // if get(gcbo,"tag")=="filebtn" then filename = uigetfile("*.sci", pwd(), gettext("Select the file to translate")); if ~isempty(filename) then set(findobj("tag", "fileedit"), "string", filename); end // // --- Sub-functions directory --- // elseif get(gcbo,"tag")=="subfunsbtn" then directory = uigetdir(pwd(), gettext("Select your sub-functions directory")); if ~isempty(directory) then set(findobj("tag", "subfunsedit"), "string", directory); end // // --- Output directory --- // elseif get(gcbo,"tag")=="outbtn" then directory = uigetdir(pwd(), gettext("Select the directory for generated files")); if ~isempty(directory) then set(findobj("tag", "outedit"), "string", directory); end // // --- Run mode option --- // elseif or(get(gcbo, "tag")==["runradioall","runradiotranslate","runradiogenlib"]) then set(findobj("tag", "runradioall"), "value", 0); set(findobj("tag", "runradiotranslate"), "value", 0); set(findobj("tag", "runradiogenlib"), "value", 0); set(gcbo, "value", 1); // --- Output format option --- elseif or(get(gcbo, "tag")==["outformatradiostalone","outformatradioarduino","outformatradioavr","outformatradiorpi"]) then set(findobj("tag", "outformatradiostalone"), "value", 0); set(findobj("tag", "outformatradioarduino"), "value", 0); 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 --- // elseif or(get(gcbo, "tag")==["sciintocradioyes","sciintocradiono"]) then set(findobj("tag", "sciintocradioyes"), "value", 0); set(findobj("tag", "sciintocradiono"), "value", 0); set(gcbo, "value", 1); // // --- Build Tool option --- // elseif or(get(gcbo, "tag")==["buildtoolradiowin","buildtoolradiounix"]) then set(findobj("tag", "buildtoolradiowin"), "value", 0); set(findobj("tag", "buildtoolradiounix"), "value", 0); set(gcbo, "value", 1); // // --- Cancel conversion --- // elseif get(gcbo, "tag")=="cancelbtn" | get(gcbo, "tag")=="close_menu" then delete(findobj("tag", "sci2cfig")); // // --- Launch conversion --- // elseif get(gcbo, "tag")=="convertbtn" then UserScilabMainFile = get(findobj("tag", "fileedit"), "string"); UserSciFilesPaths = get(findobj("tag", "subfunsedit"), "string"); // Sci2CLibMainHeaderFName = get(findobj("tag", "headeredit"), "string"); UserSciCodeMainDir = get(findobj("tag", "outedit"), "string"); if get(findobj("tag", "runradioall"), "value") == 1 then RunMode = "All"; elseif get(findobj("tag", "runradiotranslate"), "value") == 1 then RunMode = "Translate"; else RunMode = "GenLibraryStructure"; end if get(findobj("tag", "outformatradiostalone"), "value") == 1 then Target = "StandAlone"; elseif get(findobj("tag", "outformatradioarduino"), "value") == 1 then Target = "Arduino"; elseif get(findobj("tag", "outformatradioavr"), "value") == 1 then Target = "AVR"; 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; if get(findobj("tag", "buildtoolradiowin"), "value") == 1 then NativeBuild = "nmake"; elseif get(findobj("tag", "buildtoolradiounix"), "value") == 1 then NativeBuild = "make"; // else // 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); mprintf("Target = {%s}\n", Target); mprintf("Board Name = {%s}\n", Board_name); // disp("Variable Names:") // disp(UserScilabMainFile, UserSciCodeMainDir, UserSciFilesPaths, RunMode, NativeBuild,Target,Board_name) // disp("Done") scilab2c(UserScilabMainFile, UserSciCodeMainDir, UserSciFilesPaths, RunMode, NativeBuild,Target,Board_name); // // --- sci2c help --- // elseif get(gcbo, "tag")=="sci2c_help_menu" then help sci2c // // --- About SCI2C --- // elseif get(gcbo, "tag")=="about_sci2c_menu" then help(gettext("About_SCI2C_tools")) end endfunction