summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--demos/Brijesh_Demos/Test_Erfinv.sci10
-rw-r--r--demos/RPi/RPi.dem.gateway.sce1
-rw-r--r--demos/RPi/test_lcd.dem.sce19
-rw-r--r--demos/scilab2c.dem.gateway.sce6
-rw-r--r--includes/sci2clib.h7
-rw-r--r--jar/scilab_en_US_help.jarbin11210 -> 18123 bytes
-rw-r--r--macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci169
-rw-r--r--macros/findDeps/getAllHeaders.sci1
-rw-r--r--macros/findDeps/getAllInterfaces.sci1
-rw-r--r--macros/findDeps/getAllSources.sci4
-rw-r--r--src/c/hardware/rasberrypi/includes/RPIPeripheralLCD128x64.h4
-rw-r--r--src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralLCD.h7
-rw-r--r--src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralLCD128x64.h1
-rw-r--r--src/c/specialFunctions/erfinv/derfinva.c25
-rw-r--r--src/c/specialFunctions/erfinv/derfinvs.c49
-rw-r--r--src/c/specialFunctions/erfinv/serfinva.c25
-rw-r--r--src/c/specialFunctions/erfinv/serfinvs.c50
-rw-r--r--src/c/specialFunctions/includes/erfinv.h35
-rw-r--r--src/c/specialFunctions/interfaces/int_erfinv.h30
-rw-r--r--tests/unit_tests/test_RPi/lcd.sci47
-rw-r--r--tests/unit_tests/test_RPi/wait_and_blink.sci11
21 files changed, 492 insertions, 10 deletions
diff --git a/demos/Brijesh_Demos/Test_Erfinv.sci b/demos/Brijesh_Demos/Test_Erfinv.sci
new file mode 100644
index 0000000..99a8683
--- /dev/null
+++ b/demos/Brijesh_Demos/Test_Erfinv.sci
@@ -0,0 +1,10 @@
+function Test_Erfinv
+ disp('Datatype: Double');
+ i1 = [12 0.6 -2 -0.75];
+ o1 = erfinv(i1);
+ disp(o1);
+ disp('Datatype: float');
+ i2 = float([5 0.35 -1 -.97 -6]);
+ o2 = erf(i2);
+ disp(o2);
+endfunction
diff --git a/demos/RPi/RPi.dem.gateway.sce b/demos/RPi/RPi.dem.gateway.sce
index 29d4c71..c125e9c 100644
--- a/demos/RPi/RPi.dem.gateway.sce
+++ b/demos/RPi/RPi.dem.gateway.sce
@@ -11,6 +11,7 @@
subdemolist = ["Wait and Blink","test_wait_and_blink.dem.sce";
+ "LCD","test_lcd.dem.sce"
];
global SCI2CHOME;
diff --git a/demos/RPi/test_lcd.dem.sce b/demos/RPi/test_lcd.dem.sce
new file mode 100644
index 0000000..2bd1951
--- /dev/null
+++ b/demos/RPi/test_lcd.dem.sce
@@ -0,0 +1,19 @@
+// Copyright (C) 2017 - 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
+// Author: Jorawar Singh, Sandeep Gupta
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+
+lines(0);
+
+global SCI2CHOME
+
+scilab2c(SCI2CHOME + "/tests/unit_tests/test_RPi/lcd.sci", TMPDIR,SCI2CHOME + "/tests/unit_tests/test_RPi/", "All", "make" ,"RPi", "uno");
+
+editor([TMPDIR+"/main.c"]);
diff --git a/demos/scilab2c.dem.gateway.sce b/demos/scilab2c.dem.gateway.sce
index 7e98787..1e2a6c7 100644
--- a/demos/scilab2c.dem.gateway.sce
+++ b/demos/scilab2c.dem.gateway.sce
@@ -22,7 +22,7 @@ subdemolist =["Linear Algebra","LinearAlgebra/LinearAlgebra.dem.gateway.sce";
"Symbols", "Symbols.dem.sce";
"Jacobi functions","Jacobi.dem.sce";
"String Functions","string.dem.sce";
- "Ffilt coeff. of FIR low pass filter","ffilt.dem.sce";
- "Design of FIR linear phase filters using freq. samping technique","fsfirlin.dem.sce";
- "Samples of sinc function","filt_sinc.dem.sce";]
+ "Ffilt coeff. of FIR low pass filter","ffilt.dem.sce";
+ "Design of FIR linear phase filters using freq. samping technique","fsfirlin.dem.sce";
+ "Samples of sinc function","filt_sinc.dem.sce";]
subdemolist(:,2) = demopath + subdemolist(:,2);
diff --git a/includes/sci2clib.h b/includes/sci2clib.h
index 5fecac8..6d03b87 100644
--- a/includes/sci2clib.h
+++ b/includes/sci2clib.h
@@ -86,10 +86,15 @@ extern "C" {
#include "erf.h"
#include "int_erf.h"
-/* interfacing erf */
+/* interfacing erfc */
#include "erfc.h"
#include "int_erfc.h"
+/* interfacing erfinv */
+#include "erfinv.h"
+#include "int_erfinv.h"
+
+
/* ELEMENTARY FUNCTIONS */
#include "nextpow2.h"
diff --git a/jar/scilab_en_US_help.jar b/jar/scilab_en_US_help.jar
index be66237..3c0cd76 100644
--- a/jar/scilab_en_US_help.jar
+++ b/jar/scilab_en_US_help.jar
Binary files differ
diff --git a/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci b/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci
index aacc909..d83d718 100644
--- a/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci
+++ b/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci
@@ -4974,6 +4974,36 @@ INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,E
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+//------------------------------------
+//---- Class ERFINV ----------------
+//------------------------------------
+ClassName = 'erfinv';
+
+// --- 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= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'erfinv';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+
+
// -------------------
// --- Class Spec. ---
// -------------------
@@ -6250,6 +6280,30 @@ INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,E
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
//------------------------------------
+//---- Class RPI_0IN_i8 ------------
+//------------------------------------
+ClassName = 'RPI_0IN_i8';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 0',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''i8''',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(''+ArgSeparator+'i80',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'RPI_lcd128x64setup';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+//------------------------------------
//---- Class RPI_1IN_u8_Void -------
//------------------------------------
ClassName = 'RPI_1IN_u8_Void';
@@ -6301,6 +6355,14 @@ FunctionName = 'RPI_softToneStop';
PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_lcd128x64clear';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_lcd128x64Orientation';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
//------------------------------------
//---- Class RPI_1IN_u16_Void ------
@@ -6575,6 +6637,7 @@ PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
// --- Function List Class. ---
ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
PrintStringInfo('u80u80'+ArgSeparator+'',ClassFileName,'file','y');
+PrintStringInfo('u80d0'+ArgSeparator+'',ClassFileName,'file','y');
PrintStringInfo('d0d0'+ArgSeparator+'',ClassFileName,'file','y');
// --- Annotation Function And Function List Function. ---
@@ -6622,6 +6685,10 @@ FunctionName = 'RPI_serialPutchar';
PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_lcd128x64setOrigin';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
//------------------------------------
//---- Class RPI_2IN_u8u16_Void ----
@@ -6835,9 +6902,9 @@ INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,E
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
//------------------------------------
-//---- Class RPI_2IN_u16u8_u8 -----
+//---- Class RPI_2IN_u16u8_i8 -----
//------------------------------------
-ClassName = 'RPI_2IN_u16u8_u8';
+ClassName = 'RPI_2IN_u16u8_i8';
// --- Class Annotation. ---
PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
@@ -6850,8 +6917,8 @@ PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
// --- Function List Class. ---
ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
-PrintStringInfo('u160u80'+ArgSeparator+'u80',ClassFileName,'file','y');
-PrintStringInfo('d0d0'+ArgSeparator+'u80',ClassFileName,'file','y');
+PrintStringInfo('u160u80'+ArgSeparator+'i80',ClassFileName,'file','y');
+PrintStringInfo('d0d0'+ArgSeparator+'i80',ClassFileName,'file','y');
// --- Annotation Function And Function List Function. ---
FunctionName = 'RPI_pcf8574Setup';
@@ -6884,11 +6951,16 @@ ClassName = 'RPI_3IN_u8u8u8_Void';
PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
PrintStringInfo('NIN= 3',ClassFileName,'file','y');
-PrintStringInfo('NOUT= 1',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('u80u80u80'+ArgSeparator+'',ClassFileName,'file','y');
+PrintStringInfo('u80u80d0'+ArgSeparator+'',ClassFileName,'file','y');
+PrintStringInfo('u80d0d0'+ArgSeparator+'',ClassFileName,'file','y');
PrintStringInfo('d0d0d0'+ArgSeparator+'',ClassFileName,'file','y');
// --- Annotation Function And Function List Function. ---
@@ -6900,6 +6972,18 @@ FunctionName = 'RPI_piGlow1';
PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_serialPutchar';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_lcd128x64point';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_lcd128x64lineTo';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
//------------------------------------
//---- Class RPI_3IN_u16u16u16_i8 --
@@ -6911,6 +6995,9 @@ PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
PrintStringInfo('NIN= 3',ClassFileName,'file','y');
PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''i8''',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);
@@ -6937,6 +7024,9 @@ PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
PrintStringInfo('NIN= 3',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);
@@ -7053,6 +7143,72 @@ PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file',
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+//---------------------------------------
+//---- Class RPI_5IN_u8u8u8u8u8_Void --
+//---------------------------------------
+ClassName = 'RPI_5IN_u8u8u8u8u8_Void';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 5',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('u80u80u80u80u80'+ArgSeparator+'i80',ClassFileName,'file','y');
+PrintStringInfo('d0d0d0d0d0'+ArgSeparator+'i80',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'RPI_lcd128x64line';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_lcd128x64circle';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_lcd128x64putchar';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_lcd128x64puts';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+//-----------------------------------------
+//---- Class RPI_6IN_u8u8u8u8u8u8_Void --
+//-----------------------------------------
+ClassName = 'RPI_6IN_u8u8u8u8u8u8_Void';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 6',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('u80u80u80u80u80u80'+ArgSeparator+'i80',ClassFileName,'file','y');
+PrintStringInfo('d0d0d0d0d0d0'+ArgSeparator+'i80',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'RPI_lcd128x64rectangle';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'RPI_lcd128x64ellipse';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
//------------------------------------
//---- Class RPI_10IN_u8x10_Void ---
//------------------------------------
@@ -7070,6 +7226,7 @@ PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
// --- Function List Class. ---
ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
PrintStringInfo('u80u80u80u80u80u80u80u80u80u80'+ArgSeparator+'',ClassFileName,'file','y');
+PrintStringInfo('u80d0d0d0d0d0d0d0d0d0'+ArgSeparator+'',ClassFileName,'file','y');
PrintStringInfo('d0d0d0d0d0d0d0d0d0d0'+ArgSeparator+'',ClassFileName,'file','y');
// --- Annotation Function And Function List Function. ---
@@ -7086,7 +7243,7 @@ ClassName = 'RPI_13IN_u8x13_u8';
// --- Class Annotation. ---
PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
-PrintStringInfo('NIN= 10',ClassFileName,'file','y');
+PrintStringInfo('NIN= 13',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');
diff --git a/macros/findDeps/getAllHeaders.sci b/macros/findDeps/getAllHeaders.sci
index 6f9a272..1b4f272 100644
--- a/macros/findDeps/getAllHeaders.sci
+++ b/macros/findDeps/getAllHeaders.sci
@@ -231,6 +231,7 @@ function allHeaders = getAllHeaders(SharedInfo)
"src/c/elementaryFunctions/includes/sinc.h"
"src/c/specialFunctions/includes/erf.h"
"src/c/specialFunctions/includes/erfc.h"
+ "src/c/specialFunctions/includes/erfinv.h"
"src/c/CACSD/includes/syslin.h"
"src/c/CACSD/includes/lqr.h"
"src/c/CACSD/includes/lqe.h"
diff --git a/macros/findDeps/getAllInterfaces.sci b/macros/findDeps/getAllInterfaces.sci
index b826bb0..2ef82ef 100644
--- a/macros/findDeps/getAllInterfaces.sci
+++ b/macros/findDeps/getAllInterfaces.sci
@@ -226,6 +226,7 @@ function allInterfaces = getAllInterfaces(SharedInfo)
"src/c/elementaryFunctions/interfaces/int_sinc.h"
"src/c/specialFunctions/interfaces/int_erf.h"
"src/c/specialFunctions/interfaces/int_erfc.h"
+ "src/c/specialFunctions/interfaces/int_erfinv.h"
"src/c/CACSD/interfaces/int_syslin.h"
"src/c/CACSD/interfaces/int_lqr.h"
"src/c/CACSD/interfaces/int_lqe.h"
diff --git a/macros/findDeps/getAllSources.sci b/macros/findDeps/getAllSources.sci
index 79bfd2b..14b7667 100644
--- a/macros/findDeps/getAllSources.sci
+++ b/macros/findDeps/getAllSources.sci
@@ -1370,6 +1370,10 @@ function allSources = getAllSources(SharedInfo,BuildTool)
"src/c/specialFunctions/erfc/derfca.c"
"src/c/specialFunctions/erfc/serfcs.c"
"src/c/specialFunctions/erfc/serfca.c"
+ "src/c/specialFunctions/erfinv/derfinvs.c"
+ "src/c/specialFunctions/erfinv/derfinva.c"
+ "src/c/specialFunctions/erfinv/serfinvs.c"
+ "src/c/specialFunctions/erfinv/serfinva.c"
"src/c/CACSD/syslin/dsyslina.c"
"src/c/CACSD/lqr/dlqra.c"
"src/c/CACSD/lqe/dlqea.c"
diff --git a/src/c/hardware/rasberrypi/includes/RPIPeripheralLCD128x64.h b/src/c/hardware/rasberrypi/includes/RPIPeripheralLCD128x64.h
index d541c9f..93bdf27 100644
--- a/src/c/hardware/rasberrypi/includes/RPIPeripheralLCD128x64.h
+++ b/src/c/hardware/rasberrypi/includes/RPIPeripheralLCD128x64.h
@@ -22,13 +22,17 @@ extern "C" {
int8 RPI_lcd128x64setup(void);
void u8RPI_lcd128x64clears(uint8 colour);
void u8RPI_lcd128x64Orientations(uint8 orientation);
+
void u8RPI_lcd128x64setOrigins(uint8 x, uint8 y);
+
void u8RPI_lcd128x64points(uint8 x, uint8 y, uint8 colour);
void u8RPI_lcd128x64lineTos(uint8 x, uint8 y, uint8 colour);
+
void u8RPI_lcd128x64lines(uint8 x0, uint8 y0, uint8 x1, uint8 y1, uint8 colour);
void u8RPI_lcd128x64circles(uint8 x, uint8 y, uint8 r, uint8 colour, uint8 filled);
void u8RPI_lcd128x64putchars(uint8 x, uint8 y, uint8 c, uint8 bgCol, uint8 fgCol);
void u8RPI_lcd128x64putss(uint8 x, uint8 y, char *str,int size, uint8 bgCol, uint8 fgCol);
+
void u8RPI_lcd128x64rectangles(uint8 x1, uint8 y1, uint8 x2, uint8 y2, uint8 colour, uint8 filled);
void u8RPI_lcd128x64ellipses(uint8 cx, uint8 cy, uint8 xRadius, uint8 yRadius, uint8 colour, uint8 filled);
diff --git a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralLCD.h b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralLCD.h
index e6dcb7d..803f93e 100644
--- a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralLCD.h
+++ b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralLCD.h
@@ -21,18 +21,22 @@ extern "C" {
#endif
#define u80u80u80u80u80u80u80u80u80u80RPI_lcdCharDef(fd,index,d0,d1,d2,d3,d4,d5,d6,d7) u8RPI_lcdCharDefs(fd,index,d0,d1,d2,d3,d4,d5,d6,d7);
+#define u80d0d0d0d0d0d0d0d0d0RPI_lcdCharDef(fd,index,d0,d1,d2,d3,d4,d5,d6,d7) u8RPI_lcdCharDefs(fd,index,d0,d1,d2,d3,d4,d5,d6,d7);
#define d0d0d0d0d0d0d0d0d0d0RPI_lcdCharDef(fd,index,d0,d1,d2,d3,d4,d5,d6,d7) u8RPI_lcdCharDefs(fd,index,d0,d1,d2,d3,d4,d5,d6,d7);
#define u80RPI_lcdClear(fd) u8RPI_lcdClears(fd);
#define d0RPI_lcdClear(fd) u8RPI_lcdClears(fd);
#define u80u80RPI_lcdCursorBlink(fd,state) u8RPI_lcdCursorBlinks(fd,state);
+#define u80d0RPI_lcdCursorBlink(fd,state) u8RPI_lcdCursorBlinks(fd,state);
#define d0d0RPI_lcdCursorBlink(fd,state) u8RPI_lcdCursorBlinks(fd,state);
#define u80u80RPI_lcdCursor(fd,state) u8RPI_lcdCursors(fd,state);
+#define u80d0RPI_lcdCursor(fd,state) u8RPI_lcdCursors(fd,state);
#define d0d0RPI_lcdCursor(fd,state) u8RPI_lcdCursors(fd,state);
#define u80u80RPI_lcdDisplay(fd,state) u8RPI_lcdDisplays(fd,state);
+#define u80d0RPI_lcdDisplay(fd,state) u8RPI_lcdDisplays(fd,state);
#define d0d0RPI_lcdDisplay(fd,state) u8RPI_lcdDisplays(fd,state);
#define u80RPI_lcdHome(fd) u8RPI_lcdHomes(fd);
@@ -42,12 +46,15 @@ extern "C" {
#define d0d0d0d0d0d0d0d0d0d0d0d0d0RPI_lcdIniti80(rows,cols,bits,rs,strb,d0,d1,d2,d3,d4,d5,d6,d7) u8RPI_lcdInits(rows,cols,bits,rs,strb,d0,d1,d2,d3,d4,d5,d6,d7);
#define u80u80u80RPI_lcdPosition(fd,row,col) u8RPI_lcdPositions(fd,row,col);
+#define u80d0d0RPI_lcdPosition(fd,row,col) u8RPI_lcdPositions(fd,row,col);
#define d0d0d0RPI_lcdPosition(fd,row,col) u8RPI_lcdPositions(fd,row,col);
#define u80u80RPI_lcdPutchar(fd,char) u8RPI_lcdPutchars(fd,char);
+#define u80d0RPI_lcdPutchar(fd,char) u8RPI_lcdPutchars(fd,char);
#define d0d0RPI_lcdPutchar(fd,char) u8RPI_lcdPutchars(fd,char);
#define u80u80RPI_lcdSendCommand(fd,cmd) u8RPI_lcdSendCommands(fd,cmd);
+#define u80d0RPI_lcdSendCommand(fd,cmd) u8RPI_lcdSendCommands(fd,cmd);
#define d0d0RPI_lcdSendCommand(fd,cmd) u8RPI_lcdSendCommands(fd,cmd);
#define u80g2RPI_lcdPuts(fd,msg,size) u8RPI_lcdPutss(fd,msg,size[1]);;
diff --git a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralLCD128x64.h b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralLCD128x64.h
index 77cc433..8bb4b17 100644
--- a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralLCD128x64.h
+++ b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralLCD128x64.h
@@ -33,6 +33,7 @@ extern "C" {
#define u80u80u80RPI_lcd128x64point(x,y,colour) u8RPI_lcd128x64points(x,y,colour);
#define d0d0d0RPI_lcd128x64point(x,y,colour) u8RPI_lcd128x64points(x,y,colour);
+
#define u80u80u80RPI_lcd128x64lineTo(x,y,colour) u8RPI_lcd128x64lineTos(x,y,colour);
#define d0d0d0RPI_lcd128x64lineTo(x,y,colour) u8RPI_lcd128x64lineTos(x,y,colour);
diff --git a/src/c/specialFunctions/erfinv/derfinva.c b/src/c/specialFunctions/erfinv/derfinva.c
new file mode 100644
index 0000000..45d119c
--- /dev/null
+++ b/src/c/specialFunctions/erfinv/derfinva.c
@@ -0,0 +1,25 @@
+/* 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
+ Author: Brijesh Gupta C R
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "erfinv.h"
+
+void derfinva(double* inp1, int sizer, int sizec,double* out)
+{
+ for (int i = 0; i < sizer*sizec; i++)
+ {
+ out[i] = derfinvs(inp1[i]);
+ }
+}
+
diff --git a/src/c/specialFunctions/erfinv/derfinvs.c b/src/c/specialFunctions/erfinv/derfinvs.c
new file mode 100644
index 0000000..379d6af
--- /dev/null
+++ b/src/c/specialFunctions/erfinv/derfinvs.c
@@ -0,0 +1,49 @@
+/* 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
+ Author: Brijesh Gupta C R
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "erfinv.h"
+
+# define PI 3.1415927
+
+double derfinvs (double inp1)
+{
+ double a[] = {0.88622692374517353,-1.6601283962374516,0.92661860147244357,-0.14110320437680104};
+ double b[] = {-2.13505380615258078,1.46060340345661088,-0.33198239813321595,0.01197270616590528};
+ double c[] = {-1.994216456587148,-1.87267416351196,3.60874665878559364,1.82365845766309853};
+ double d[] = {3.74146294065960872,1.81848952562894617};
+
+ if ((inp1 > 1) || (inp1 < -1))
+ {
+ return 0.0/0.0;
+ }
+ if ((inp1 >= -0.7) && (inp1 <= 0.7))
+ {
+ double sq = inp1 * inp1;
+ return (inp1 * (((a[3]*sq+a[2]) * sq+a[1]) * sq+a[0]) / ((((b[3]*sq+b[2]) * sq+b[1]) * sq+b[0]) * sq+1));
+ }
+
+ else if ((inp1 > 0.7) && (inp1 < 1))
+ {
+ double z = sqrt(-log((1-inp1)/2));
+ return ((((c[3]*z+c[2]) * z+c[1]) * z+c[0]) / ((d[1]*z+d[0]) * z+1));
+ }
+
+ else if ((inp1 > -1) && (inp1 < 0.7))
+ {
+ double z = sqrt(-log((1+inp1)/2));
+ return (-(((c[3]*z+c[2]) * z+c[1]) * z+c[0]) / ((d[1]*z+d[0]) * z+1));
+ }
+}
+
diff --git a/src/c/specialFunctions/erfinv/serfinva.c b/src/c/specialFunctions/erfinv/serfinva.c
new file mode 100644
index 0000000..56e47c2
--- /dev/null
+++ b/src/c/specialFunctions/erfinv/serfinva.c
@@ -0,0 +1,25 @@
+/* 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
+ Author: Brijesh Gupta C R
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "erfinv.h"
+
+void serfinva(float* inp1, int sizer, int sizec,float* out)
+{
+ for (int i = 0; i < sizer*sizec; i++)
+ {
+ out[i] = derfinvs(inp1[i]);
+ }
+}
+
diff --git a/src/c/specialFunctions/erfinv/serfinvs.c b/src/c/specialFunctions/erfinv/serfinvs.c
new file mode 100644
index 0000000..2d97ef7
--- /dev/null
+++ b/src/c/specialFunctions/erfinv/serfinvs.c
@@ -0,0 +1,50 @@
+/* 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
+ Author: Brijesh Gupta C R
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "erfinv.h"
+
+# define PI 3.1415927
+
+float serfinvs (float inp1)
+{
+ float a[] = {0.88622692374517353,-1.6601283962374516,0.92661860147244357,-0.14110320437680104};
+ float b[] = {-2.13505380615258078,1.46060340345661088,-0.33198239813321595,0.01197270616590528};
+ float c[] = {-1.994216456587148,-1.87267416351196,3.60874665878559364,1.82365845766309853};
+ float d[] = {3.74146294065960872,1.81848952562894617};
+
+ if ((inp1 > 1) || (inp1 < -1))
+ {
+ double na = 0.0/0.0;
+ return (float)na;
+ }
+ if ((inp1 >= -0.7) && (inp1 <= 0.7))
+ {
+ float sq = inp1 * inp1;
+ return (inp1 * (((a[3]*sq+a[2]) * sq+a[1]) * sq+a[0]) / ((((b[3]*sq+b[2]) * sq+b[1]) * sq+b[0]) * sq+1));
+ }
+
+ else if ((inp1 > 0.7) && (inp1 < 1))
+ {
+ float z = sqrt(-log((1-inp1)/2));
+ return ((((c[3]*z+c[2]) * z+c[1]) * z+c[0]) / ((d[1]*z+d[0]) * z+1));
+ }
+
+ else if ((inp1 > -1) && (inp1 < 0.7))
+ {
+ float z = sqrt(-log((1+inp1)/2));
+ return (-(((c[3]*z+c[2]) * z+c[1]) * z+c[0]) / ((d[1]*z+d[0]) * z+1));
+ }
+}
+
diff --git a/src/c/specialFunctions/includes/erfinv.h b/src/c/specialFunctions/includes/erfinv.h
new file mode 100644
index 0000000..5d6210c
--- /dev/null
+++ b/src/c/specialFunctions/includes/erfinv.h
@@ -0,0 +1,35 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
+ *
+ * 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
+ *
+ */
+
+#ifndef __ERFINV_H__
+#define __ERFINV_H__
+#include "types.h"
+#include "floatComplex.h"
+#include "doubleComplex.h"
+#include "uint8.h"
+#include "uint16.h"
+#include "int16.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+double derfinvs (double inp1);
+float serfinvs (float inp1);
+void derfinva(double* inp1, int sizer, int sizec,double* out);
+void serfinva(float* inp1, int sizer, int sizec,float* out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__ERFINV_H__*/
diff --git a/src/c/specialFunctions/interfaces/int_erfinv.h b/src/c/specialFunctions/interfaces/int_erfinv.h
new file mode 100644
index 0000000..f19baa1
--- /dev/null
+++ b/src/c/specialFunctions/interfaces/int_erfinv.h
@@ -0,0 +1,30 @@
+/* Copyright (C) 2017 - 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
+ Author: Brijesh Gupta C R
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __INT_ERFINV_H__
+#define __INT_ERFINV_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+#define d0erfinvd0(in1) derfinvs(in1)
+#define s0erfinvs0(in1) serfinvs(in1)
+#define d2erfinvd2(in1,size,out) derfinva(in1,size[0],size[1],out)
+#define s2erfinvs2(in1,size,out) serfinva(in1,size[0],size[1],out)
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__INT_ERFINV_H__*/
diff --git a/tests/unit_tests/test_RPi/lcd.sci b/tests/unit_tests/test_RPi/lcd.sci
new file mode 100644
index 0000000..984ecbb
--- /dev/null
+++ b/tests/unit_tests/test_RPi/lcd.sci
@@ -0,0 +1,47 @@
+// Copyright (C) 2017 - 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
+// Author: Jorawar Singh
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function lcd()
+ raspi("10.42.0.144","panda","pi"); // setup connection to Pi
+ RPI_pinNumbering("wiringpi"); // initialize pin numbering
+ // LCD connections:
+ // 2 rows
+ // 16 columns
+ // 8 bits
+ // wiringPi pin 28 - rs
+ // wiringPi pin 29 - strobe/E
+ // wiringPi pins 0-7 - lcd data pins 0 to 7
+ //
+
+ fd=RPI_lcdInit(2,16,8,28,29,0,1,2,3,4,5,6,7) // initialize lcd with the above mentioned connections
+ RPI_lcdDisplay(fd,1) // switch on display
+ RPI_lcdCursor(fd,1) // show the cursor
+ RPI_lcdCursorBlink(fd,1) // blink the cursor
+ RPI_lcdPrintf(fd,"The Elder") // print to lcd
+ RPI_lcdPosition(fd,0,1) // Goto second row first column
+ RPI_lcdPrintf(fd,"Scrolls V Skyrim") // print to lcd
+ RPI_lcdHome(fd) // goto first row first column (0,0)
+ RPI_lcdClear(fd) // clear the lcd
+ RPI_lcdPrintf(fd,"Volume: ") // print character corresponding to number 125
+ RPI_lcdCharDef(fd,0,0,0,0,0,0,0,0,255) // define a custom character at position 0
+ RPI_lcdCharDef(fd,1,0,0,0,0,0,0,255,255) // define a custom character at position 1
+ RPI_lcdCharDef(fd,2,0,0,0,0,0,255,255,255)
+ RPI_lcdCharDef(fd,3,0,0,0,0,255,255,255,255)
+ RPI_lcdCharDef(fd,4,0,0,0,255,255,255,255,255)
+ RPI_lcdCharDef(fd,5,0,0,255,255,255,255,255,255)
+ RPI_lcdCharDef(fd,6,0,255,255,255,255,255,255,255)
+ RPI_lcdCharDef(fd,7,255,255,255,255,255,255,255,255)
+ for i=0:7:1
+ RPI_lcdPutchar(fd,1) // print the custom characters
+ end
+ disp("Demo completed successfully.")
+ raspi_close(); // close the opened connection
+endfunction
diff --git a/tests/unit_tests/test_RPi/wait_and_blink.sci b/tests/unit_tests/test_RPi/wait_and_blink.sci
index 099feaa..7f77ad0 100644
--- a/tests/unit_tests/test_RPi/wait_and_blink.sci
+++ b/tests/unit_tests/test_RPi/wait_and_blink.sci
@@ -1,3 +1,14 @@
+// Copyright (C) 2017 - 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
+// Author: Jorawar Singh
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
function wait_and_blink()
raspi("10.42.0.144","panda","pi"); // setup connection to Pi
RPI_pinNumbering("wiringpi"); // initialize pin numbering