diff options
Diffstat (limited to 'macros')
39 files changed, 481 insertions, 33 deletions
diff --git a/macros/ASTManagement/AST2Ccode.sci b/macros/ASTManagement/AST2Ccode.sci index 8076d7e..e3177be 100644 --- a/macros/ASTManagement/AST2Ccode.sci +++ b/macros/ASTManagement/AST2Ccode.sci @@ -1,5 +1,5 @@ function AST2Ccode(FileInfoDatFile) -// function AST2Ccode(FileInfoDatFile) +// function AST2Ccode(FileInfoDatFi // ----------------------------------------------------------------- // Read the AST and call the corresponding handlers. // diff --git a/macros/ASTManagement/AST_HandleEndGenFun.sci b/macros/ASTManagement/AST_HandleEndGenFun.sci index 88b9634..e032bad 100644 --- a/macros/ASTManagement/AST_HandleEndGenFun.sci +++ b/macros/ASTManagement/AST_HandleEndGenFun.sci @@ -439,6 +439,7 @@ NOutArg_mod = NOutArg //#RNU_RES_B PrintStringInfo(' C Function Name: '+CFunName,ReportFileName,'file','y'); if(IsArduinoFunction(ASTFunName)) + //disp(ASTFunName) if(IsArduinoSetupFunction(ASTFunName)) //If current function is an arduino setup function (like 'dc_motor_setup'), it //should not be converted and inserted here. It is inserted in a list now and diff --git a/macros/CCodeGeneration/C_GenerateMakefile.sci b/macros/CCodeGeneration/C_GenerateMakefile.sci index 7dfb4da..893ec93 100644 --- a/macros/CCodeGeneration/C_GenerateMakefile.sci +++ b/macros/CCodeGeneration/C_GenerateMakefile.sci @@ -78,6 +78,25 @@ else PrintStringInfo('CXXFLAGS = -Wall -pedantic -g -I $(HSRCDIR) -I $(ISRCDIR) -L $(LIBDIR)',FileInfo.MakefileFilename,'file','y','y'); PrintStringInfo('LDFLAGS = -lblas -llapack -lm ',FileInfo.MakefileFilename,'file','y','y'); end + + //If ode function is used, add libgsl. + if(size(SharedInfo.Includelist) <> 0) + if((mtlb_strcmp(part(SharedInfo.Includelist(1),1:5),'odefn') == %T)) + if(target == 'RPi') + PrintStringInfo('LDFLAGS = -lgsl -lcblas',FileInfo.MakefileFilename,'file','y','y'); + else + PrintStringInfo('LDFLAGS = -lgsl',FileInfo.MakefileFilename,'file','y','y'); + end + + end + end + + if (target == 'RPi') + PrintStringInfo('LDFLAGS += -llapack -lrefblas -lgfortran -lwiringPi',FileInfo.MakefileFilename,'file','y','y'); + else + PrintStringInfo('LDFLAGS += -lblas -llapack -lm ',FileInfo.MakefileFilename,'file','y','y'); + end + if(SharedInfo.OpenCVUsed == %T) PrintStringInfo('LDFLAGS += -lopencv_calib3d -lopencv_contrib -lopencv_features2d -lopencv_flann -lopencv_gpu',FileInfo.MakefileFilename,'file','y','y'); PrintStringInfo('LDFLAGS += -lopencv_highgui -lopencv_imgproc -lopencv_legacy -lopencv_ml -lopencv_nonfree',FileInfo.MakefileFilename,'file','y','y'); diff --git a/macros/CCodeGeneration/C_GenerateMkfle_arduino.sci b/macros/CCodeGeneration/C_GenerateMkfle_arduino.sci new file mode 100644 index 0000000..b43eb44 --- /dev/null +++ b/macros/CCodeGeneration/C_GenerateMkfle_arduino.sci @@ -0,0 +1,12 @@ +function C_GenerateMkfle_arduino(FileInfo,SharedInfo) + + PrintStringInfo('ARDUINO_DIR = /usr/share/arduino',FileInfo.MakefileFilename,'file','y','y'); + PrintStringInfo('ARDMK_DIR = /usr/share/arduino',FileInfo.MakefileFilename,'file','y','y'); + PrintStringInfo('AVR_TOOLS_DIR = /usr',FileInfo.MakefileFilename,'file','y','y'); + PrintStringInfo('BOARD_TAG = ' + SharedInfo.Board_name ,FileInfo.MakefileFilename,'file','y','y'); + PrintStringInfo('USER_LIB_PATH = ../',FileInfo.MakefileFilename,'file','y','y'); + PrintStringInfo('ARDUINO_LIBS = ../src/c ../includes ../interfaces ../ Wire',FileInfo.MakefileFilename,'file','y','y'); + PrintStringInfo('ARDUINO_PORT = /dev/ttyACM0',FileInfo.MakefileFilename,'file','y','y'); + PrintStringInfo('include /usr/share/arduino/Arduino.mk',FileInfo.MakefileFilename,'file','y','y'); + +endfunction diff --git a/macros/CCodeGeneration/names b/macros/CCodeGeneration/names index efbb400..5311c7f 100644 --- a/macros/CCodeGeneration/names +++ b/macros/CCodeGeneration/names @@ -6,6 +6,7 @@ C_GenerateFunName C_GenerateLaunchScript C_GenerateMakefile C_GenerateMakefile_msvc +C_GenerateMkfle_arduino C_GenerateSCI2CHeader C_IfElseBlocks C_IfExpression diff --git a/macros/ErrorMessages/lib b/macros/ErrorMessages/lib Binary files differindex 7f410a3..0a9f891 100644 --- a/macros/ErrorMessages/lib +++ b/macros/ErrorMessages/lib diff --git a/macros/FunctionAnnotation/lib b/macros/FunctionAnnotation/lib Binary files differindex fe171a5..f02997b 100644 --- a/macros/FunctionAnnotation/lib +++ b/macros/FunctionAnnotation/lib diff --git a/macros/FunctionList/lib b/macros/FunctionList/lib Binary files differindex 666462e..2bbf0cb 100644 --- a/macros/FunctionList/lib +++ b/macros/FunctionList/lib diff --git a/macros/GeneralFunctions/lib b/macros/GeneralFunctions/lib Binary files differindex e6de718..e1d6f0f 100644 --- a/macros/GeneralFunctions/lib +++ b/macros/GeneralFunctions/lib diff --git a/macros/Hardware/AVR/lib b/macros/Hardware/AVR/lib Binary files differindex c8dfe19..5c8f0da 100644 --- a/macros/Hardware/AVR/lib +++ b/macros/Hardware/AVR/lib diff --git a/macros/Hardware/RasberryPi/lib b/macros/Hardware/RasberryPi/lib Binary files differindex 99cd9b6..9afd77d 100644 --- a/macros/Hardware/RasberryPi/lib +++ b/macros/Hardware/RasberryPi/lib diff --git a/macros/ImageProcessing/core/lib b/macros/ImageProcessing/core/lib Binary files differindex 65ff298..5605351 100644 --- a/macros/ImageProcessing/core/lib +++ b/macros/ImageProcessing/core/lib diff --git a/macros/ImageProcessing/highgui/lib b/macros/ImageProcessing/highgui/lib Binary files differindex dd057ec..a46d5d8 100644 --- a/macros/ImageProcessing/highgui/lib +++ b/macros/ImageProcessing/highgui/lib diff --git a/macros/ImageProcessing/imgproc/lib b/macros/ImageProcessing/imgproc/lib Binary files differindex 3d4060a..4863059 100644 --- a/macros/ImageProcessing/imgproc/lib +++ b/macros/ImageProcessing/imgproc/lib diff --git a/macros/Scilab-Arduino/GetArduinoFunctions.sci b/macros/Scilab-Arduino/GetArduinoFunctions.sci index a112fe6..eff61fe 100644 --- a/macros/Scilab-Arduino/GetArduinoFunctions.sci +++ b/macros/Scilab-Arduino/GetArduinoFunctions.sci @@ -30,6 +30,7 @@ ArduinoFunctions = [ "cmd_dcmotor_run" "cmd_servo_attach" "cmd_servo_detach" - "cmd_servo_move"]; + "cmd_servo_move" + "i2c_dev"]; endfunction diff --git a/macros/Scilab-Arduino/GetArduinoSetupFunctions.sci b/macros/Scilab-Arduino/GetArduinoSetupFunctions.sci index d2cd0c7..d310648 100644 --- a/macros/Scilab-Arduino/GetArduinoSetupFunctions.sci +++ b/macros/Scilab-Arduino/GetArduinoSetupFunctions.sci @@ -24,6 +24,8 @@ function ArduinoSetupFunctions = GetArduinoSetupFunctions() ArduinoSetupFunctions = [ "cmd_dcmotor_setup" "cmd_servo_attach" - "cmd_servo_detach"]; + "cmd_servo_detach" + "i2c_dev"]; + endfunction diff --git a/macros/Scilab-Arduino/IsArduinoSetupFunction.sci b/macros/Scilab-Arduino/IsArduinoSetupFunction.sci index 3e1c18f..4afceca 100644 --- a/macros/Scilab-Arduino/IsArduinoSetupFunction.sci +++ b/macros/Scilab-Arduino/IsArduinoSetupFunction.sci @@ -9,6 +9,7 @@ // Email: toolbox@scilab.in function Output = IsArduinoSetupFunction(FunName) +disp(FunName) // ----------------------------------------------------------------- // Check whether input function name is an Arduino setup function or not. // @@ -25,6 +26,7 @@ function Output = IsArduinoSetupFunction(FunName) //Get list of supported functions for Arduino ArduinoSetupFunctions = GetArduinoSetupFunctions(); + //Check whether input function is present in above list or not FunNameInArduinoSetup = members(FunName,ArduinoSetupFunctions); Output = bool2s(FunNameInArduinoSetup~=0); diff --git a/macros/Scilab-Arduino/i2c_dev.sci b/macros/Scilab-Arduino/i2c_dev.sci new file mode 100644 index 0000000..f86e588 --- /dev/null +++ b/macros/Scilab-Arduino/i2c_dev.sci @@ -0,0 +1,3 @@ +function z = i2c_dev(address) + z = 0 +endfunction diff --git a/macros/Scilab-Arduino/i2c_read.sci b/macros/Scilab-Arduino/i2c_read.sci new file mode 100644 index 0000000..6916b9c --- /dev/null +++ b/macros/Scilab-Arduino/i2c_read.sci @@ -0,0 +1,2 @@ +function y = i2c_read(address,bytes) +endfunction diff --git a/macros/Scilab-Arduino/i2c_read_register.sci b/macros/Scilab-Arduino/i2c_read_register.sci new file mode 100644 index 0000000..51a88ee --- /dev/null +++ b/macros/Scilab-Arduino/i2c_read_register.sci @@ -0,0 +1,3 @@ +function x = i2c_read_register(address,reg_adrs) + x = 0; +endfunction diff --git a/macros/Scilab-Arduino/i2c_write.sci b/macros/Scilab-Arduino/i2c_write.sci new file mode 100644 index 0000000..8dfd070 --- /dev/null +++ b/macros/Scilab-Arduino/i2c_write.sci @@ -0,0 +1,2 @@ +function i2c_write(address,data) +endfunction diff --git a/macros/Scilab-Arduino/i2c_write_register.sci b/macros/Scilab-Arduino/i2c_write_register.sci new file mode 100644 index 0000000..a9b5553 --- /dev/null +++ b/macros/Scilab-Arduino/i2c_write_register.sci @@ -0,0 +1,2 @@ +function i2c_write_register(address, reg_adrs, data) +endfunction diff --git a/macros/Scilab-Arduino/lib b/macros/Scilab-Arduino/lib Binary files differindex 2741287..0304cad 100644 --- a/macros/Scilab-Arduino/lib +++ b/macros/Scilab-Arduino/lib diff --git a/macros/Scilab-Arduino/names b/macros/Scilab-Arduino/names index 55eb6fe..c1386c3 100644 --- a/macros/Scilab-Arduino/names +++ b/macros/Scilab-Arduino/names @@ -4,3 +4,8 @@ GetArduinoSetupFunctions InsertSetupInList IsArduinoFunction IsArduinoSetupFunction +i2c_dev +i2c_read +i2c_read_register +i2c_write +i2c_write_register diff --git a/macros/SymbolTable/ST_GetInArgInfo.sci b/macros/SymbolTable/ST_GetInArgInfo.sci index 9f5cbd4..4c85408 100644 --- a/macros/SymbolTable/ST_GetInArgInfo.sci +++ b/macros/SymbolTable/ST_GetInArgInfo.sci @@ -49,13 +49,13 @@ for cntinarg = 1:NInArg tmpname = InArg(cntinarg).Name;
tmpscope = InArg(cntinarg).Scope;
lengthNumber = length('Number_');
- if (part(tmpscope,1:lengthNumber) == 'Number_')
+ if (part(tmpscope,1:lengthNumber) == 'Number_')
// #RNU_RES_B
PrintStringInfo('Input Argument '+string(cntinarg)+' is a number: '+tmpname+'.',FileInfo.Funct(nxtscifunnumber).ReportFileName,'file');
// #RNU_RES_E
UpdatedInArg(cntinarg).Type = part(tmpscope,lengthNumber+1:lengthNumber+1);
if (UpdatedInArg(cntinarg).Type == 'x')
- UpdatedInArg(cntinarg).Type = SharedInfo.DefaultPrecision; // It is the default.
+ UpdatedInArg(cntinarg).Type = SharedInfo.DefaultPrecision; // It is the default
elseif (UpdatedInArg(cntinarg).Type == 'X')
if (SharedInfo.DefaultPrecision == 's')
UpdatedInArg(cntinarg).Type = 'c'; // It is the default.
@@ -101,6 +101,17 @@ for cntinarg = 1:NInArg UpdatedInArg(cntinarg).FindLike = 0;
UpdatedInArg(cntinarg).Dimension = 0;
UpdatedInArg(cntinarg).Scope = 'Number';
+ if((ASTFunName == 'cmd_analog_in' | ASTFunName == 'cmd_analog_in_volt' ) & cntinarg == 2)
+ numvalue = eval(tmpname);
+ if (SharedInfo.Board_name == 'mega' | SharedInfo.Board_name == 'mega2560') then
+ tmpname = string(numvalue + 54)
+ UpdatedInArg(cntinarg).Value = 54 + numvalue;
+ else
+ tmpname = string(numvalue + 14)
+ UpdatedInArg(cntinarg).Value = 14 + numvalue;
+ end
+ UpdatedInArg(cntinarg).Name = tmpname; // Change the name.
+ end
elseif (tmpscope == 'String')
// #RNU_RES_B
diff --git a/macros/SymbolTable/ST_InsOutArg.sci b/macros/SymbolTable/ST_InsOutArg.sci index f4958ff..fd6b426 100644 --- a/macros/SymbolTable/ST_InsOutArg.sci +++ b/macros/SymbolTable/ST_InsOutArg.sci @@ -47,8 +47,6 @@ PrintStringInfo('***Putting output arguments in the symbol table***',ReportFileN // ---------------------------
// --- End Initialization. ---
// ---------------------------
-
-
for counteroutput = 1:NOutArg
// #RNU_RES_B
PrintStringInfo(' Symbol ""'+OutArg(counteroutput).Name+'""',ReportFileName,'file','y','n');
diff --git a/macros/SymbolTable/lib b/macros/SymbolTable/lib Binary files differindex 8b39d18..dbc603e 100644 --- a/macros/SymbolTable/lib +++ b/macros/SymbolTable/lib diff --git a/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci b/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci index 52bc10c..67cabb2 100644 --- a/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci +++ b/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci @@ -4486,6 +4486,7 @@ ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls); PrintStringInfo('d0d0d0'+ArgSeparator+'',ClassFileName,'file','y');
PrintStringInfo('d0d0u80'+ArgSeparator+'',ClassFileName,'file','y');
+
// --- Annotation Function And Function List Function. ---
FunctionName = 'cmd_analog_out';
PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
@@ -4636,6 +4637,165 @@ INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,Ex //------------------------------------
+//---- Class cmd_analog_in_volt -----------
+//------------------------------------
+ClassName = 'cmd_analog_in_volt';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''s''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('d0d0'+ArgSeparator+'s0',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'cmd_analog_in_volt';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+
+//------------------------------------
+//---- Class cmd_i2c_dev -----------
+//------------------------------------
+ClassName = 'cmd_i2c_dev';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''u8''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('d0'+ArgSeparator+'u80',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'cmd_i2c_dev';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+
+
+//------------------------------------
+//---- Class cmd_i2c_write -----------
+//------------------------------------
+ClassName = 'cmd_i2c_write';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 0 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''s''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('d0d0'+ArgSeparator+'',ClassFileName,'file','y');
+PrintStringInfo('u80d0'+ArgSeparator+'',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'cmd_i2c_write';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+
+//------------------------------------
+//---- Class cmd_i2c_read -----------
+//------------------------------------
+ClassName = 'cmd_i2c_read';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''s''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('d0d0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('u80d0'+ArgSeparator+'s0',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'cmd_i2c_read';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+
+//------------------------------------
+//---- Class cmd_i2c_read_register -----------
+//------------------------------------
+ClassName = 'cmd_i2c_read_register';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''u16''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('d0d0'+ArgSeparator+'u160',ClassFileName,'file','y');
+PrintStringInfo('u80d0'+ArgSeparator+'u160',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'cmd_i2c_read_register';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+
+
+
+//------------------------------------
+//---- Class cmd_i2c_write_register -----------
+//------------------------------------
+ClassName = 'cmd_i2c_write_register';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 3',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 0 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''s''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('d0d0d0'+ArgSeparator+'',ClassFileName,'file','y');
+PrintStringInfo('u80d0d0'+ArgSeparator+'',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'cmd_i2c_write_register';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+
+
+
+//------------------------------------
//---- Class Sleep -------------------
//------------------------------------
@@ -4662,6 +4822,57 @@ INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,Ex //------------------------------------
+//---- Class cmd_analog_out_volt ----------
+//------------------------------------
+ClassName = 'cmd_analog_out_volt';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 3',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 0 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''u8''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('d0d0d0'+ArgSeparator+'',ClassFileName,'file','y');
+PrintStringInfo('d0d0s0'+ArgSeparator+'',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'cmd_analog_out_volt';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+//------------------------------------
+//---- Class cmd_dcmotor_release -------
+//------------------------------------
+ClassName = 'cmd_dcmotor_release';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 0 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''u8''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('d0d0'+ArgSeparator+'',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'cmd_dcmotor_release';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+
+
+//------------------------------------
//---Functions for AVR ---------------
//------------------------------------
@@ -6527,15 +6738,34 @@ ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls); PrintStringInfo('NIN= 1',ClassFileName,'file','y');
PrintStringInfo('NOUT= 2',ClassFileName,'file','y');
PrintStringInfo('OUT(1).TP= ''d''',ClassFileName,'file','y');
-PrintStringInfo('OUT(1).SZ(1)= FA_SZ_1(FA_SZ_LQR(IN(1).VAL))',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= FA_SZ_2(FA_SZ_LQR(IN(1).VAL))',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= FA_SZ_1(FA_SZ_LQR(IN(1).VAL))',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).TP= ''d''',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(1)= FA_SZ_1(FA_SZ_LQR(IN(1).VAL))',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(2)= FA_SZ_1(FA_SZ_LQR(IN(1).VAL))',ClassFileName,'file','y');
+
+PrintStringInfo('NIN= 3',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 2',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''d''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= FA_SZ_2(FA_SZ_LQR(IN(1).VAL))',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= FA_SZ_1(FA_SZ_LQR(IN(1).VAL))',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).TP= ''d''',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(1)= FA_SZ_1(FA_SZ_LQR(IN(1).VAL))',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(2)= FA_SZ_1(FA_SZ_LQR(IN(1).VAL))',ClassFileName,'file','y');
+
+PrintStringInfo('NIN= 4',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 2',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''d''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= FA_SZ_2(FA_SZ_LQR(IN(1).VAL))',ClassFileName,'file','y');
PrintStringInfo('OUT(1).SZ(2)= FA_SZ_1(FA_SZ_LQR(IN(1).VAL))',ClassFileName,'file','y');
PrintStringInfo('OUT(2).TP= ''d''',ClassFileName,'file','y');
-PrintStringInfo('OUT(2).SZ(1)= FA_SZ_2(FA_SZ_LQR(IN(1).VAL))',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(1)= FA_SZ_1(FA_SZ_LQR(IN(1).VAL))',ClassFileName,'file','y');
PrintStringInfo('OUT(2).SZ(2)= FA_SZ_1(FA_SZ_LQR(IN(1).VAL))',ClassFileName,'file','y');
ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
PrintStringInfo('ss2'+ArgSeparator+'d2d2',ClassFileName,'file','y');
-
+PrintStringInfo('ss2d2d2'+ArgSeparator+'d2d2',ClassFileName,'file','y');
+PrintStringInfo('ss2d2d2d2'+ArgSeparator+'d2d2',ClassFileName,'file','y');
// --- Annotation Function And Function List Function. ---
FunctionName = 'lqr';
PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
diff --git a/macros/ToolInitialization/INIT_GenSharedInfo.sci b/macros/ToolInitialization/INIT_GenSharedInfo.sci index abe813c..3c682bf 100644 --- a/macros/ToolInitialization/INIT_GenSharedInfo.sci +++ b/macros/ToolInitialization/INIT_GenSharedInfo.sci @@ -1,4 +1,4 @@ -function SharedInfo = INIT_GenSharedInfo(RunMode,UserScilabMainFile,TotTempScalarVars,EnableTempVarsReuse,Sci2CLibMainHeaderFName,CopySciCodeIntoCCode,Target)
+function SharedInfo = INIT_GenSharedInfo(RunMode,UserScilabMainFile,TotTempScalarVars,EnableTempVarsReuse,Sci2CLibMainHeaderFName,CopySciCodeIntoCCode,Target,Board_name)
// function SharedInfo = INIT_GenSharedInfo(WorkingDir,OutCCCodeDir,UserSciFilesPaths,...
// RunMode,UserScilabMainFile,TotTempScalarVars,EnableTempVarsReuse,Sci2CLibMainHeaderFName)
// -----------------------------------------------------------------
@@ -132,4 +132,6 @@ SharedInfo.Includelist = list(); //Maintains list of functions being used in cod // to add their header files to main function.
SharedInfo.OpenCVUsed = %F; // Specifies if opencv library is used or not
+SharedInfo.Board_name = Board_name; //Specifies Name of Arduino board
+
endfunction
diff --git a/macros/ToolInitialization/INIT_SCI2C.sci b/macros/ToolInitialization/INIT_SCI2C.sci index 8253302..b6da9bd 100644 --- a/macros/ToolInitialization/INIT_SCI2C.sci +++ b/macros/ToolInitialization/INIT_SCI2C.sci @@ -1,5 +1,5 @@ function [FileInfoDatFile,SharedInfoDatFile] = ...
- INIT_SCI2C(UserScilabMainFile, UserSciFilesPaths, SCI2COutputDir, RunMode,Target)
+ INIT_SCI2C(UserScilabMainFile, UserSciFilesPaths, SCI2COutputDir, RunMode,Target,Board_name)
// function [FileInfoDatFile,SharedInfoDatFile] = INIT_SCI2C(SCI2CInputPrmFile)
// -----------------------------------------------------------------
// #RNU_RES_B
@@ -68,7 +68,7 @@ OutCCCodeDir = SCI2CResultDir; //-- FIXME : MainLibHeader and Verbose mode are (?) configurable
SharedInfo = INIT_GenSharedInfo(RunMode,UserScilabMainFile, ...
- TotTempScalarVars,EnableTempVarsReuse,"sci2clib.h", %t,Target);
+ TotTempScalarVars,EnableTempVarsReuse,"sci2clib.h", %t,Target,Board_name);
// ----------------------------
// --- Initialize FileInfo. ---
diff --git a/macros/cb_sci2c_gui.sci b/macros/cb_sci2c_gui.sci index 8f3f92a..9dbe974 100644 --- a/macros/cb_sci2c_gui.sci +++ b/macros/cb_sci2c_gui.sci @@ -64,8 +64,13 @@ elseif or(get(gcbo, "tag")==["outformatradiostalone","outformatradioarduino","ou 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 --- // @@ -121,6 +126,64 @@ elseif get(gcbo, "tag")=="convertbtn" then 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" + + //elseif get(findobj("tag", "brdnmType"), "value") == [1 0 0 0 0 0] then + //Board_name = "none" + end CopySciCodeIntoCCode = get(findobj("tag", "sciintocradioyes"), "value") == 1; @@ -140,7 +203,7 @@ elseif get(gcbo, "tag")=="convertbtn" then // mprintf("RunMode = {%s}\n", RunMode); // mprintf("CopySciCodeIntoCCode = {%d}\n", bool2s(CopySciCodeIntoCCode)); // mprintf("NativeBuild = {%s}\n", NativeBuild); - scilab2c(UserScilabMainFile, UserSciCodeMainDir, UserSciFilesPaths, RunMode, NativeBuild,Target); + scilab2c(UserScilabMainFile, UserSciCodeMainDir, UserSciFilesPaths, RunMode, NativeBuild,Target,Board_name); // // --- sci2c help --- // diff --git a/macros/findDeps/getAllHeaders.sci b/macros/findDeps/getAllHeaders.sci index 872e24c..7fb20f0 100644 --- a/macros/findDeps/getAllHeaders.sci +++ b/macros/findDeps/getAllHeaders.sci @@ -225,7 +225,15 @@ function allHeaders = getAllHeaders(SharedInfo) //"src/c/scilab-arduino/includes/cmd_servo_attach.h" //"src/c/scilab-arduino/includes/cmd_servo_detach.h" //"src/c/scilab-arduino/includes/cmd_servo_move.h" - "src/c/scilab-arduino/includes/sleep.h"]; + "src/c/scilab-arduino/includes/sleep.h" + "src/c/scilab-arduino/includes/cmd_analog_in_volt.h" + "src/c/scilab-arduino/includes/cmd_analog_out_volt.h" + "src/c/scilab-arduino/includes/cmd_dcmotor_release.h" + "src/c/scilab-arduino/includes/cmd_i2c_dev.h" + "src/c/scilab-arduino/includes/cmd_i2c_write.h" + "src/c/scilab-arduino/includes/cmd_i2c_read.h" + "src/c/scilab-arduino/includes/cmd_i2c_read_register.h" + "src/c/scilab-arduino/includes/cmd_i2c_write_register.h"]; AVR_headers = [ "src/c/hardware/avr/includes/AVRPeripheralGPIO.h" @@ -267,4 +275,8 @@ function allHeaders = getAllHeaders(SharedInfo) allHeaders = cat(1,allHeaders,OpenCV_headers); end + if((mtlb_strcmp(part(SharedInfo.Includelist(1),1:5),'odefn') == %T)) + allHeaders = cat(1,allHeaders,"thirdparty/includes/GSL"); + end + endfunction diff --git a/macros/findDeps/getAllInterfaces.sci b/macros/findDeps/getAllInterfaces.sci index 3befda8..26a2cf9 100644 --- a/macros/findDeps/getAllInterfaces.sci +++ b/macros/findDeps/getAllInterfaces.sci @@ -217,7 +217,14 @@ function allInterfaces = getAllInterfaces(SharedInfo) "src/c/scilab-arduino/interfaces/int_cmd_analog_in.h" "src/c/scilab-arduino/interfaces/int_cmd_dcmotor.h" "src/c/scilab-arduino/interfaces/int_cmd_servo.h" - "src/c/scilab-arduino/interfaces/int_sleep.h"]; + "src/c/scilab-arduino/interfaces/int_sleep.h" + "src/c/scilab-arduino/interfaces/int_cmd_analog_in_volt.h" + "src/c/scilab-arduino/interfaces/int_cmd_analog_out_volt.h" + "src/c/scilab-arduino/interfaces/int_cmd_i2c_dev.h" + "src/c/scilab-arduino/interfaces/int_cmd_i2c_write.h" + "src/c/scilab-arduino/interfaces/int_cmd_i2c_read.h" + "src/c/scilab-arduino/interfaces/int_cmd_i2c_write_register.h" + "src/c/scilab-arduino/interfaces/int_cmd_i2c_read_register.h"]; //Interface files required for "AVR" output AVR_interfaces = [ diff --git a/macros/findDeps/getAllSources.sci b/macros/findDeps/getAllSources.sci index 90dc014..85255de 100644 --- a/macros/findDeps/getAllSources.sci +++ b/macros/findDeps/getAllSources.sci @@ -95,10 +95,6 @@ function allSources = getAllSources(SharedInfo) "src/c/matrixOperations/cat/dcats.c" "src/c/matrixOperations/cat/scata.c" "src/c/matrixOperations/cat/scats.c" - "src/c/matrixOperations/cat/zcata.c" - "src/c/matrixOperations/cat/zcats.c" - "src/c/matrixOperations/cat/ccata.c" - "src/c/matrixOperations/cat/ccats.c" "src/c/matrixOperations/cat/u8cats.c" "src/c/matrixOperations/cat/u8cata.c" "src/c/matrixOperations/cat/u16cats.c" @@ -1228,7 +1224,15 @@ function allSources = getAllSources(SharedInfo) //"src/c/scilab-arduino/cmd_servo_attach/u8cmd_servo_attach.cpp" //"src/c/scilab-arduino/cmd_servo_detach/u8cmd_servo_detach.cpp" //"src/c/scilab-arduino/cmd_servo_move/u8cmd_servo_move.cpp" - "src/c/scilab-arduino/sleep/u16sleeps.c"]; + "src/c/scilab-arduino/sleep/u16sleeps.c" + "src/c/scilab-arduino/cmd_analog_in_volt/u8cmd_analog_in_volts.c" + "src/c/scilab-arduino/cmd_analog_out_volt/u8cmd_analog_out_volts.c" + "src/c/scilab-arduino/cmd_dcmotor_release/u8cmd_dcmotor_releases.c" + "src/c/scilab-arduino/cmd_i2c_dev/u8cmd_i2c_devs.cpp" + "src/c/scilab-arduino/cmd_i2c_write/u8cmd_i2c_writes.cpp" + "src/c/scilab-arduino/cmd_i2c_read/u8cmd_i2c_reads.cpp" + "src/c/scilab-arduino/cmd_i2c_write_register/u8cmd_i2c_write_registers.cpp" + "src/c/scilab-arduino/cmd_i2c_read_register/u8cmd_i2c_read_registers.cpp"]; //Files to be inserted only if output format selected is 'AVR'. AVR_files = [ @@ -1329,5 +1333,8 @@ function allSources = getAllSources(SharedInfo) allSources = cat(1,allSources,OpenCV_files); end - + //"src/c/matrixOperations/cat/zcata.c" + // "src/c/matrixOperations/cat/zcats.c" + // "src/c/matrixOperations/cat/ccata.c" + //"src/c/matrixOperations/cat/ccats.c" endfunction diff --git a/macros/findDeps/getArduinoFiles.sci b/macros/findDeps/getArduinoFiles.sci index aae8e50..9726457 100644 --- a/macros/findDeps/getArduinoFiles.sci +++ b/macros/findDeps/getArduinoFiles.sci @@ -23,6 +23,5 @@ function arduinoFiles = getArduinoFiles() arduinoFiles = [ "src/c/scilab-arduino/default_files/setup_arduino.h" - "src/c/scilab-arduino/default_files/Makefile" "src/c/scilab-arduino/default_files/sci2c_arduino.ino"]; endfunction Binary files differdiff --git a/macros/runsci2c.sci b/macros/runsci2c.sci index eb32a4b..f05cb83 100644 --- a/macros/runsci2c.sci +++ b/macros/runsci2c.sci @@ -1,4 +1,4 @@ -function runsci2c(UserScilabMainFile, UserSciFilesPaths, SCI2COutputPath, Runmode, BuildTool,Target)
+function runsci2c(UserScilabMainFile, UserSciFilesPaths, SCI2COutputPath, Runmode, BuildTool,Target,Board_name)
// function runsci2c(SCI2CInputPrmFile)
// -----------------------------------------------------------------
// === hArtes/PoliBa/GAP SCI2C tool ===
@@ -51,7 +51,7 @@ disp(RunSci2CMainDir); // --- Initialize the SCI2C tool directories and files. ---
[FileInfoDatFile,SharedInfoDatFile] = INIT_SCI2C(UserScilabMainFile, ...
- UserSciFilesPaths, SCI2COutputPath, RunMode, Target);
+ UserSciFilesPaths, SCI2COutputPath, RunMode, Target,Board_name);
// -- Load FileInfo and SharedInfo
load(SharedInfoDatFile,'SharedInfo');
@@ -177,6 +177,8 @@ if (Target == 'Arduino') //disp("Copying "+arduinoFiles(i)+" in "+SCI2COutputPath+"/arduino/sci2carduino");
copyfile(arduinoFiles(i), SCI2COutputPath+"/arduino/sci2c_arduino/");
end
+ C_GenerateMkfle_arduino(FileInfo,SharedInfo);
+ movefile(FileInfo.MakefileFilename, SCI2COutputPath+"/arduino/sci2c_arduino/");
elseif (Target == 'AVR')
AVRFile = SCI2CHOME + "/" + "src/c/hardware/avr/default_files/Makefile";
copyfile(AVRFile, SCI2COutputPath);
diff --git a/macros/sci2c_gui.sci b/macros/sci2c_gui.sci index 6dbd462..bee6fe4 100644 --- a/macros/sci2c_gui.sci +++ b/macros/sci2c_gui.sci @@ -38,7 +38,7 @@ uimenu("parent", h, "label", gettext("Sci2c help page"), "callback", "cb_sci2c_g uimenu("parent", h, "label", gettext("About SCI2C tools..."), "callback", "cb_sci2c_gui", "tag", "about_sci2c_menu"); figw = 800; -figh = 15*margin + btnh + 9*widgeth; +figh = 16*margin + btnh + 10*widgeth; sci2cfig.axes_size = [figw figh]; sci2cfig.auto_resize = "on"; //sci2cfig.visible = "off"; // to be sure that no plot can appear in the window @@ -79,7 +79,7 @@ optframe = uicontrol("parent", sci2cfig,... "relief", "groove",... "style", "frame",... "units", "pixels",... - "position", [margin 2*margin+btnh figw-2*margin 4*margin+6*widgeth],... + "position", [margin 2*margin+btnh figw-2*margin 7*margin+6*widgeth],... "fontname", defaultfont,... "fontunits", "points",... "fontsize", 12,... @@ -90,7 +90,7 @@ opttitle = uicontrol("parent", sci2cfig,... "style", "text",... "string", gettext("Options"),... "units", "pixels",... - "position", [2*margin 2*margin+btnh+4*margin+6*widgeth-8 50 18],... + "position", [2*margin 5*margin+btnh+4*margin+6*widgeth-8 50 18],... "fontname", defaultfont,... "fontunits", "points",... "fontsize", 11,... @@ -175,6 +175,33 @@ sciintocradiono = uicontrol("parent", sci2cfig,... "callback", "cb_sci2c_gui",... "tag", "sciintocradiono"); +// --- Board Name ---- +brdnmy = sciintocy + margin + btnh ; +brdnmlabel = uicontrol("parent", sci2cfig,... + "style", "text",... + "string", gettext("Board Name: "),... + "position",[2*margin brdnmy widgetLabelWidth widgeth],... + "horizontalalignment", "left",... + "fontname", defaultfont,... + "fontunits", "points",... + "fontsize", 12); + +brdnmType = uicontrol("parent", sci2cfig,... + "style", "popupmenu",... + "string", ["";"Uno";"Mega-ATmega1280";"Mega-2560 or Mega ADK";"Nano - ATmega168";"Nano - ATmega328";"Micro";"Mini - Atmega168";"Mini - Atmega328";"Pro Mini (3.3V, 8MHz) - ATmega328";"Pro Mini (3.3V, 8MHz) - ATmega168";"Pro Mini (5V, 16MHz) - ATmega328";"Pro Mini (5V, 16MHz) - ATmega168";"NG or older - ATmega168";"NG or older - ATmega8";"Duemilanove - ATmega328";"BT - ATmega328";"BT - ATmega 168";"Diecimila/Duemilanove - ATmega168";"Esplora";"Ethernet";"Fio";"Leonardo";"Robot Control";"Robot Motor";"LilyPad Arduino - ATmega328";"LilyPad Arduino - ATmega168";"LilyPad Arduino USB"],... + "position",[2*margin+widgetLabelWidth brdnmy 3*radiow widgeth],... + "horizontalalignment", "left",... + "fontname", defaultfont,... + "enable", "off",... + "fontunits", "points",... + "fontsize", 12,... + "min", 0, ... + "max", 1, ... + "value", [1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0],... + "callback", "cb_sci2c_gui",... + "tag", "brdnmType"); + +sciintocy = brdnmy // --- Output format: Standalone or Arduino outformaty = sciintocy + margin + btnh ; outformatlabel = uicontrol("parent", sci2cfig,... @@ -240,7 +267,8 @@ outformatradiorpi = uicontrol("parent", sci2cfig,... "max", 1, ... "value", 0,... "callback", "cb_sci2c_gui",... - "tag", "outformatradiorpi"); + "tag", "outformatradiorpi"); + // --- Run mode option --- runy = outformaty + margin + widgeth; @@ -296,7 +324,7 @@ runradiogenlib = uicontrol("parent", sci2cfig,... // --- Output directory --- // ------------------------ // Frame -optframemaxy = 2*margin+btnh + 4*margin+6*widgeth; +optframemaxy = 5*margin+btnh + 4*margin+6*widgeth; outframe = uicontrol("parent", sci2cfig,... "relief", "groove",... "style", "frame",... diff --git a/macros/scilab2c.sci b/macros/scilab2c.sci index 41494ea..69d9554 100644 --- a/macros/scilab2c.sci +++ b/macros/scilab2c.sci @@ -133,6 +133,40 @@ function scilab2c(varargin) RunMode = varargin(4); BuildTool = varargin(5); Target = varargin(6); + case 7 + for i = 1:4 + if typeof(varargin(i)) <> "string" + error(msprintf(gettext("%s: Wrong type for input argument #%d: String expected.\n"),"scilab2c",i)); + return + end + end + if varargin(4) <> "All" & varargin(4) <> "Translate" & varargin(4) <> "GenLibraryStructure" & varargin(4) <> "FunCall" + error(msprintf(gettext("%s: argument #%d must be: ""All"", ""Translate"" ,""GenLibraryStructure"" or ""FunCall"".\n"),"scilab2c",4)); + return + end + if varargin(5) <> "make" & varargin(5) <> "nmake" + error(msprintf(gettext("%s: argument #%d must be: ""make"" or ""nmake"".\n"),"scilab2c",5)); + return + end + if varargin(6) <> "StandAlone" & varargin(6) <> "Arduino" & varargin(6) <> "AVR" & varargin(6) <> "RPi" + error(msprintf(gettext("%s: argument #%d must be: ""StandAlone"" or ""Arduino"" or ""AVR"" or ""RPi"".\n"),"scilab2c",5)); + return + end + //if varargin(7) <> "uno" & varargin(7) <> "mega" & varargin(7) <> "mega2560" & varargin(7) <> "micro" & varargin(7) <> "nano" & varargin(7) <> "mini" + // error(msprintf(gettext("%s: argument #%d must be: ""uno"" or ""mega"" or ""micro"" or ""nano"" or ""mini"".\n"),"scilab2c",7)); + //return + //end + UserScilabMainFile = varargin(1); + CCodeOutputDir = varargin(2); + if varargin(3) == "" + UserSciFilesPaths = []; + else + UserSciFilesPaths = varargin(3); + end + RunMode = varargin(4); + BuildTool = varargin(5); + Target = varargin(6); + Board_name = varargin(7); else // // Calling scilab2c with more than understood values @@ -159,7 +193,7 @@ error(msprintf(gettext("%s: Wrong number of input argument(s): %d expected.\n"), end if (userchoice == 1) // --- LAUNCH SCI2C --- - runsci2c(UserScilabMainFile, UserSciFilesPaths, CCodeOutputDir, RunMode, BuildTool,Target); + runsci2c(UserScilabMainFile, UserSciFilesPaths, CCodeOutputDir, RunMode, BuildTool,Target,Board_name); end endfunction |