summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--demos/Arduino/Arduino.dem.gateway.sce22
-rw-r--r--demos/Arduino/analog_in_out_volt.dem.sce (renamed from demos/analog_in_out_volt.dem.sce)0
-rw-r--r--demos/Arduino/analog_out.dem.sce (renamed from demos/analog_out.dem.sce)0
-rw-r--r--demos/Arduino/blink.dem.sce (renamed from demos/blink.dem.sce)0
-rw-r--r--demos/Arduino/dc_motor.dem.sce (renamed from demos/dc_motor.dem.sce)0
-rw-r--r--demos/Arduino/digital_in.dem.sce (renamed from demos/digital_in.dem.sce)0
-rw-r--r--demos/Arduino/master_write.dem.sce (renamed from demos/master_write.dem.sce)0
-rw-r--r--demos/Brijesh_Demos/Test_Add_SCE.sce4
-rw-r--r--demos/Brijesh_Demos/Test_Addition.sci8
-rw-r--r--demos/Brijesh_Demos/Test_Cross.sci44
-rw-r--r--demos/Brijesh_Demos/Test_Erf.sci10
-rw-r--r--demos/Brijesh_Demos/Test_Erfc.sci10
-rw-r--r--demos/Brijesh_Demos/Test_Isreal.sci25
-rw-r--r--demos/Brijesh_Demos/Test_Toeplitz.sci50
-rw-r--r--demos/CT/CT.dem.gateway.sce18
-rw-r--r--demos/CT/test_dct.dem.sce (renamed from demos/test_dct.dem.sce)0
-rw-r--r--demos/CT/test_idct.dem.sce (renamed from demos/test_idct.dem.sce)0
-rw-r--r--demos/Filters/Filter.dem.sce (renamed from demos/Filter.dem.sce)0
-rw-r--r--demos/Filters/FilterResponse.dem.sce (renamed from demos/FilterResponse.dem.sce)0
-rw-r--r--demos/Filters/Filters.dem.gateway.sce19
-rw-r--r--demos/Filters/analogFilter.dem.sce (renamed from demos/analogFilter.dem.sce)0
-rw-r--r--demos/LinearAlgebra/FULLRF.dem.sce (renamed from demos/FULLRF.dem.sce)0
-rw-r--r--demos/LinearAlgebra/GIVENS.dem.sce (renamed from demos/GIVENS.dem.sce)0
-rw-r--r--demos/LinearAlgebra/HESS.dem.sce (renamed from demos/HESS.dem.sce)0
-rw-r--r--demos/LinearAlgebra/HOUSEHOLDER.dem.sce (renamed from demos/HOUSEHOLDER.dem.sce)0
-rw-r--r--demos/LinearAlgebra/LinearAlgebra.dem.gateway.sce27
-rw-r--r--demos/LinearAlgebra/NORM.dem.sce (renamed from demos/NORM.dem.sce)0
-rw-r--r--demos/LinearAlgebra/QR.dem.sce (renamed from demos/QR.dem.sce)0
-rw-r--r--demos/LinearAlgebra/ROWCOMP.dem.sce (renamed from demos/ROWCOMP.dem.sce)0
-rw-r--r--demos/LinearAlgebra/SPEC.dem.sce (renamed from demos/SPEC.dem.sce)0
-rw-r--r--demos/LinearAlgebra/SQROOT.dem.sce (renamed from demos/SQROOT.dem.sce)0
-rw-r--r--demos/LinearAlgebra/SVA.dem.sce (renamed from demos/SVA.dem.sce)0
-rw-r--r--demos/LinearAlgebra/SVD.dem.sce (renamed from demos/SVD.dem.sce)0
-rw-r--r--demos/RPi/RPi.dem.gateway.sce17
-rw-r--r--demos/RPi/test_wait_and_blink.dem.sce19
-rw-r--r--demos/scilab2c.dem.gateway.sce37
-rw-r--r--etc/scilab2c.start18
-rw-r--r--includes/sci2clib.h14
-rw-r--r--macros/ASTManagement/libbin1956 -> 0 bytes
-rw-r--r--macros/CCodeGeneration/libbin1004 -> 0 bytes
-rw-r--r--macros/ErrorMessages/libbin468 -> 0 bytes
-rw-r--r--macros/FunctionAnnotation/libbin2360 -> 0 bytes
-rw-r--r--macros/FunctionList/libbin536 -> 0 bytes
-rw-r--r--macros/GeneralFunctions/libbin1080 -> 0 bytes
-rw-r--r--macros/Hardware/AVR/libbin920 -> 0 bytes
-rwxr-xr-xmacros/Hardware/RasberryPi/Digital/RPI_digitalRead.sci41
-rwxr-xr-xmacros/Hardware/RasberryPi/Digital/RPI_digitalReadByte.sci40
-rwxr-xr-xmacros/Hardware/RasberryPi/Digital/RPI_digitalWrite.sci46
-rwxr-xr-xmacros/Hardware/RasberryPi/Digital/RPI_digitalWriteByte.sci42
-rwxr-xr-xmacros/Hardware/RasberryPi/Digital/buildmacros.sce14
-rwxr-xr-xmacros/Hardware/RasberryPi/Digital/names4
-rwxr-xr-xmacros/Hardware/RasberryPi/I2C/RPI_I2CRead.sci40
-rwxr-xr-xmacros/Hardware/RasberryPi/I2C/RPI_I2CReadReg16.sci41
-rwxr-xr-xmacros/Hardware/RasberryPi/I2C/RPI_I2CReadReg8.sci41
-rwxr-xr-xmacros/Hardware/RasberryPi/I2C/RPI_I2CSetup.sci42
-rwxr-xr-xmacros/Hardware/RasberryPi/I2C/RPI_I2CSetupInterface.sci41
-rwxr-xr-xmacros/Hardware/RasberryPi/I2C/RPI_I2CWrite.sci41
-rwxr-xr-xmacros/Hardware/RasberryPi/I2C/RPI_I2CWriteReg16.sci42
-rwxr-xr-xmacros/Hardware/RasberryPi/I2C/RPI_I2CWriteReg8.sci42
-rwxr-xr-xmacros/Hardware/RasberryPi/I2C/RPI_i2cdetect.sci38
-rwxr-xr-xmacros/Hardware/RasberryPi/I2C/buildmacros.sce14
-rwxr-xr-xmacros/Hardware/RasberryPi/I2C/names9
-rwxr-xr-xmacros/Hardware/RasberryPi/Interrupt/RPI_waitForInterrupt.sci45
-rwxr-xr-xmacros/Hardware/RasberryPi/Interrupt/buildmacros.sce14
-rwxr-xr-xmacros/Hardware/RasberryPi/Interrupt/names1
-rwxr-xr-xmacros/Hardware/RasberryPi/Misc/RPI_boardRev.sci34
-rwxr-xr-xmacros/Hardware/RasberryPi/Misc/RPI_padDrive.sci40
-rwxr-xr-xmacros/Hardware/RasberryPi/Misc/RPI_sn3218Setup.sci40
-rwxr-xr-xmacros/Hardware/RasberryPi/Misc/buildmacros.sce14
-rwxr-xr-xmacros/Hardware/RasberryPi/Misc/names3
-rw-r--r--macros/Hardware/RasberryPi/RPI_DelayMicro.sci38
-rw-r--r--macros/Hardware/RasberryPi/RPI_DelayMilli.sci39
-rw-r--r--macros/Hardware/RasberryPi/RPI_DigitalIn.sci43
-rw-r--r--macros/Hardware/RasberryPi/RPI_DigitalOut.sci44
-rw-r--r--macros/Hardware/RasberryPi/RPI_DigitalSetup.sci36
-rw-r--r--macros/Hardware/RasberryPi/RPI_GetMicros.sci39
-rw-r--r--macros/Hardware/RasberryPi/RPI_GetMillis.sci39
-rw-r--r--macros/Hardware/RasberryPi/RPI_HardPWMSetClock.sci35
-rw-r--r--macros/Hardware/RasberryPi/RPI_HardPWMSetMode.sci32
-rw-r--r--macros/Hardware/RasberryPi/RPI_HardPWMSetRange.sci35
-rw-r--r--macros/Hardware/RasberryPi/RPI_HardPWMWrite.sci39
-rw-r--r--macros/Hardware/RasberryPi/RPI_PinISR.sci56
-rw-r--r--macros/Hardware/RasberryPi/RPI_SerialClose.sci33
-rw-r--r--macros/Hardware/RasberryPi/RPI_SerialFlush.sci34
-rw-r--r--macros/Hardware/RasberryPi/RPI_SerialGetChar.sci36
-rw-r--r--macros/Hardware/RasberryPi/RPI_SerialSendChar.sci37
-rw-r--r--macros/Hardware/RasberryPi/RPI_SerialSendData.sci38
-rw-r--r--macros/Hardware/RasberryPi/RPI_SerialSetup.sci36
-rwxr-xr-xmacros/Hardware/RasberryPi/RPI_adress.sci34
-rwxr-xr-xmacros/Hardware/RasberryPi/SPI/RPI_SPIDataRW.sci42
-rwxr-xr-xmacros/Hardware/RasberryPi/SPI/RPI_SPIGetFd.sci39
-rwxr-xr-xmacros/Hardware/RasberryPi/SPI/RPI_SPISetup.sci43
-rwxr-xr-xmacros/Hardware/RasberryPi/SPI/RPI_SPISetupMode.sci41
-rwxr-xr-xmacros/Hardware/RasberryPi/SPI/buildmacros.sce14
-rwxr-xr-xmacros/Hardware/RasberryPi/SPI/names4
-rwxr-xr-xmacros/Hardware/RasberryPi/Serial/RPI_serialClose.sci40
-rwxr-xr-xmacros/Hardware/RasberryPi/Serial/RPI_serialDataAvail.sci40
-rwxr-xr-xmacros/Hardware/RasberryPi/Serial/RPI_serialFlush.sci40
-rwxr-xr-xmacros/Hardware/RasberryPi/Serial/RPI_serialGetchar.sci40
-rwxr-xr-xmacros/Hardware/RasberryPi/Serial/RPI_serialOpen.sci41
-rwxr-xr-xmacros/Hardware/RasberryPi/Serial/RPI_serialPrintf.sci41
-rwxr-xr-xmacros/Hardware/RasberryPi/Serial/RPI_serialPutchar.sci41
-rwxr-xr-xmacros/Hardware/RasberryPi/Serial/RPI_serialPuts.sci41
-rwxr-xr-xmacros/Hardware/RasberryPi/Serial/buildmacros.sce14
-rwxr-xr-xmacros/Hardware/RasberryPi/Serial/names8
-rwxr-xr-xmacros/Hardware/RasberryPi/Setup/RPI_getAlt.sci40
-rwxr-xr-xmacros/Hardware/RasberryPi/Setup/RPI_pinMode.sci60
-rwxr-xr-xmacros/Hardware/RasberryPi/Setup/RPI_pinModeAlt.sci55
-rwxr-xr-xmacros/Hardware/RasberryPi/Setup/RPI_pinNumbering.sci54
-rwxr-xr-xmacros/Hardware/RasberryPi/Setup/RPI_pullControl.sci60
-rwxr-xr-xmacros/Hardware/RasberryPi/Setup/buildmacros.sce14
-rwxr-xr-xmacros/Hardware/RasberryPi/Setup/names5
-rwxr-xr-xmacros/Hardware/RasberryPi/Shift/RPI_shiftIn.sci42
-rwxr-xr-xmacros/Hardware/RasberryPi/Shift/RPI_shiftOut.sci43
-rwxr-xr-xmacros/Hardware/RasberryPi/Shift/RPI_sr595Setup.sci44
-rwxr-xr-xmacros/Hardware/RasberryPi/Shift/buildmacros.sce14
-rwxr-xr-xmacros/Hardware/RasberryPi/Shift/names3
-rwxr-xr-xmacros/Hardware/RasberryPi/Soft/RPI_softPwmCreate.sci44
-rwxr-xr-xmacros/Hardware/RasberryPi/Soft/RPI_softPwmStop.sci40
-rwxr-xr-xmacros/Hardware/RasberryPi/Soft/RPI_softPwmWrite.sci41
-rwxr-xr-xmacros/Hardware/RasberryPi/Soft/RPI_softToneCreate.sci43
-rwxr-xr-xmacros/Hardware/RasberryPi/Soft/RPI_softToneStop.sci40
-rwxr-xr-xmacros/Hardware/RasberryPi/Soft/RPI_softToneWrite.sci41
-rwxr-xr-xmacros/Hardware/RasberryPi/Soft/buildmacros.sce14
-rwxr-xr-xmacros/Hardware/RasberryPi/Soft/names6
-rwxr-xr-xmacros/Hardware/RasberryPi/Timing/RPI_delay.sci40
-rwxr-xr-xmacros/Hardware/RasberryPi/Timing/RPI_delayMicro.sci40
-rwxr-xr-xmacros/Hardware/RasberryPi/Timing/RPI_micros.sci37
-rwxr-xr-xmacros/Hardware/RasberryPi/Timing/RPI_millis.sci37
-rwxr-xr-xmacros/Hardware/RasberryPi/Timing/buildmacros.sce14
-rwxr-xr-xmacros/Hardware/RasberryPi/Timing/names4
-rwxr-xr-x[-rw-r--r--]macros/Hardware/RasberryPi/buildmacros.sce49
-rwxr-xr-xmacros/Hardware/RasberryPi/cleanmacros.sce20
-rwxr-xr-xmacros/Hardware/RasberryPi/gertBoard/RPI_analogRead.sci40
-rwxr-xr-xmacros/Hardware/RasberryPi/gertBoard/RPI_analogWrite.sci41
-rwxr-xr-xmacros/Hardware/RasberryPi/gertBoard/RPI_gertboardAnalogRead.sci42
-rwxr-xr-xmacros/Hardware/RasberryPi/gertBoard/RPI_gertboardAnalogSetup.sci41
-rwxr-xr-xmacros/Hardware/RasberryPi/gertBoard/RPI_gertboardAnalogWrite.sci42
-rwxr-xr-xmacros/Hardware/RasberryPi/gertBoard/RPI_gertboardSPISetup.sci39
-rwxr-xr-xmacros/Hardware/RasberryPi/gertBoard/buildmacros.sce14
-rwxr-xr-xmacros/Hardware/RasberryPi/gertBoard/names6
-rwxr-xr-xmacros/Hardware/RasberryPi/lcd/RPI_lcdCharDef.sci44
-rwxr-xr-xmacros/Hardware/RasberryPi/lcd/RPI_lcdClear.sci40
-rwxr-xr-xmacros/Hardware/RasberryPi/lcd/RPI_lcdCursor.sci41
-rwxr-xr-xmacros/Hardware/RasberryPi/lcd/RPI_lcdCursorBlink.sci41
-rwxr-xr-xmacros/Hardware/RasberryPi/lcd/RPI_lcdDisplay.sci41
-rwxr-xr-xmacros/Hardware/RasberryPi/lcd/RPI_lcdHome.sci40
-rwxr-xr-xmacros/Hardware/RasberryPi/lcd/RPI_lcdInit.sci54
-rwxr-xr-xmacros/Hardware/RasberryPi/lcd/RPI_lcdPosition.sci42
-rwxr-xr-xmacros/Hardware/RasberryPi/lcd/RPI_lcdPrintf.sci41
-rwxr-xr-xmacros/Hardware/RasberryPi/lcd/RPI_lcdPutchar.sci41
-rwxr-xr-xmacros/Hardware/RasberryPi/lcd/RPI_lcdPuts.sci42
-rwxr-xr-xmacros/Hardware/RasberryPi/lcd/RPI_lcdSendCommand.sci41
-rwxr-xr-xmacros/Hardware/RasberryPi/lcd/buildmacros.sce14
-rwxr-xr-xmacros/Hardware/RasberryPi/lcd/names12
-rwxr-xr-xmacros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64Orientation.sci48
-rwxr-xr-xmacros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64circle.sci44
-rwxr-xr-xmacros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64clear.sci40
-rwxr-xr-xmacros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64ellipse.sci45
-rwxr-xr-xmacros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64line.sci44
-rwxr-xr-xmacros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64lineTo.sci42
-rwxr-xr-xmacros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64point.sci42
-rwxr-xr-xmacros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64putchar.sci44
-rwxr-xr-xmacros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64puts.sci44
-rwxr-xr-xmacros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64rectangle.sci45
-rwxr-xr-xmacros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64setOrigin.sci41
-rwxr-xr-xmacros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64setup.sci37
-rwxr-xr-xmacros/Hardware/RasberryPi/lcd128x64/buildmacros.sce14
-rwxr-xr-xmacros/Hardware/RasberryPi/lcd128x64/names12
-rw-r--r--macros/Hardware/RasberryPi/libbin924 -> 0 bytes
-rwxr-xr-xmacros/Hardware/RasberryPi/mcp/RPI_mcp23008Setup.sci41
-rwxr-xr-xmacros/Hardware/RasberryPi/mcp/RPI_mcp23016Setup.sci41
-rwxr-xr-xmacros/Hardware/RasberryPi/mcp/RPI_mcp23017Setup.sci41
-rwxr-xr-xmacros/Hardware/RasberryPi/mcp/RPI_mcp23s08Setup.sci42
-rwxr-xr-xmacros/Hardware/RasberryPi/mcp/RPI_mcp23s17Setup.sci42
-rwxr-xr-xmacros/Hardware/RasberryPi/mcp/buildmacros.sce14
-rwxr-xr-xmacros/Hardware/RasberryPi/mcp/names5
-rwxr-xr-x[-rw-r--r--]macros/Hardware/RasberryPi/names22
-rwxr-xr-xmacros/Hardware/RasberryPi/pcf/RPI_pcf8574Setup.sci43
-rwxr-xr-xmacros/Hardware/RasberryPi/pcf/RPI_pcf8591Setup.sci43
-rwxr-xr-xmacros/Hardware/RasberryPi/pcf/buildmacros.sce14
-rwxr-xr-xmacros/Hardware/RasberryPi/pcf/names2
-rwxr-xr-xmacros/Hardware/RasberryPi/piGlow/RPI_piGlow1.sci42
-rwxr-xr-xmacros/Hardware/RasberryPi/piGlow/RPI_piGlowLeg.sci41
-rwxr-xr-xmacros/Hardware/RasberryPi/piGlow/RPI_piGlowRing.sci41
-rwxr-xr-xmacros/Hardware/RasberryPi/piGlow/RPI_piGlowSetup.sci42
-rwxr-xr-xmacros/Hardware/RasberryPi/piGlow/buildmacros.sce14
-rwxr-xr-xmacros/Hardware/RasberryPi/piGlow/names4
-rwxr-xr-xmacros/Hardware/RasberryPi/pinMap/RPI_physToGpio.sci40
-rwxr-xr-xmacros/Hardware/RasberryPi/pinMap/RPI_wpiToGpio.sci40
-rwxr-xr-xmacros/Hardware/RasberryPi/pinMap/buildmacros.sce14
-rwxr-xr-xmacros/Hardware/RasberryPi/pinMap/names2
-rwxr-xr-xmacros/Hardware/RasberryPi/pwm/RPI_pwmClock.sci40
-rwxr-xr-xmacros/Hardware/RasberryPi/pwm/RPI_pwmMode.sci46
-rwxr-xr-xmacros/Hardware/RasberryPi/pwm/RPI_pwmRange.sci40
-rwxr-xr-xmacros/Hardware/RasberryPi/pwm/RPI_pwmToneWrite.sci41
-rwxr-xr-xmacros/Hardware/RasberryPi/pwm/RPI_pwmWrite.sci45
-rwxr-xr-xmacros/Hardware/RasberryPi/pwm/buildmacros.sce14
-rwxr-xr-xmacros/Hardware/RasberryPi/pwm/names5
-rwxr-xr-xmacros/Hardware/RasberryPi/raspi.sci94
-rwxr-xr-xmacros/Hardware/RasberryPi/raspi_close.sci34
-rw-r--r--macros/Hardware/RasberryPi/u16RPISerialDataAvail.sci37
-rw-r--r--macros/ImageProcessing/core/libbin472 -> 0 bytes
-rw-r--r--macros/ImageProcessing/highgui/libbin532 -> 0 bytes
-rw-r--r--macros/ImageProcessing/imgproc/libbin700 -> 0 bytes
-rwxr-xr-x[-rw-r--r--]macros/Scilab-Arduino/buildmacros.sce35
-rw-r--r--macros/Scilab-Arduino/libbin664 -> 0 bytes
-rw-r--r--macros/SymbolTable/libbin700 -> 0 bytes
-rw-r--r--macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci95
-rw-r--r--macros/ToolInitialization/libbin752 -> 0 bytes
-rw-r--r--macros/findDeps/getAllHeaders.sci3
-rw-r--r--macros/findDeps/getAllInterfaces.sci3
-rw-r--r--macros/findDeps/getAllSources.sci16
-rw-r--r--macros/findDeps/libbin568 -> 0 bytes
-rw-r--r--macros/libbin484 -> 0 bytes
-rw-r--r--src/c/elementaryFunctions/includes/isequal.h38
-rw-r--r--src/c/elementaryFunctions/interfaces/int_isequal.h35
-rw-r--r--src/c/elementaryFunctions/isequal/disequala.c39
-rw-r--r--src/c/elementaryFunctions/isequal/disequals.c24
-rw-r--r--src/c/elementaryFunctions/isequal/sisequala.c39
-rw-r--r--src/c/elementaryFunctions/isequal/sisequals.c24
-rw-r--r--src/c/elementaryFunctions/isequal/u16isequala.c40
-rw-r--r--src/c/elementaryFunctions/isequal/u16isequals.c25
-rw-r--r--src/c/elementaryFunctions/isequal/zisequala.c40
-rw-r--r--src/c/elementaryFunctions/isequal/zisequals.c25
-rw-r--r--src/c/specialFunctions/erf/derfa.c25
-rw-r--r--src/c/specialFunctions/erf/derfs.c22
-rw-r--r--src/c/specialFunctions/erf/serfa.c25
-rw-r--r--src/c/specialFunctions/erf/serfs.c22
-rw-r--r--src/c/specialFunctions/erfc/derfca.c25
-rw-r--r--src/c/specialFunctions/erfc/derfcs.c22
-rw-r--r--src/c/specialFunctions/erfc/serfca.c25
-rw-r--r--src/c/specialFunctions/erfc/serfcs.c22
-rw-r--r--src/c/specialFunctions/includes/erf.h35
-rw-r--r--src/c/specialFunctions/includes/erfc.h36
-rw-r--r--src/c/specialFunctions/interfaces/int_erf.h32
-rw-r--r--src/c/specialFunctions/interfaces/int_erfc.h32
-rw-r--r--src/c/string/strcspn/gstrcspna.c27
-rwxr-xr-xsrc/python/serverWP.py203
-rw-r--r--tests/unit_tests/test_RPi/wait_and_blink.sci16
-rw-r--r--thirdparty/lib/raspberrypi/libcblas.abin260756 -> 260756 bytes
-rw-r--r--thirdparty/lib/raspberrypi/libgsl.abin11823192 -> 12622338 bytes
-rw-r--r--thirdparty/lib/raspberrypi/librefblas.abin441244 -> 441244 bytes
243 files changed, 5915 insertions, 809 deletions
diff --git a/demos/Arduino/Arduino.dem.gateway.sce b/demos/Arduino/Arduino.dem.gateway.sce
new file mode 100644
index 0000000..417291a
--- /dev/null
+++ b/demos/Arduino/Arduino.dem.gateway.sce
@@ -0,0 +1,22 @@
+// 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, Yash Pratap Singh Tomar
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+
+subdemolist = ["Arduino blink", "blink.dem.sce";
+ "Arduino digital input", "digital_in.dem.sce";
+ "Arduino analog voltage i/o", "analog_in_out_volt.dem.sce";
+ "Arduino analog output", "analog_out.dem.sce";
+ "Arduino DC motor", "dc_motor.dem.sce";
+ "Arduino Master write", "master_write.dem.sce";
+ ];
+
+global SCI2CHOME;
+subdemolist(:,2) = SCI2CHOME + "/demos/Arduino/"+ subdemolist(:,2);
diff --git a/demos/analog_in_out_volt.dem.sce b/demos/Arduino/analog_in_out_volt.dem.sce
index ca6da61..ca6da61 100644
--- a/demos/analog_in_out_volt.dem.sce
+++ b/demos/Arduino/analog_in_out_volt.dem.sce
diff --git a/demos/analog_out.dem.sce b/demos/Arduino/analog_out.dem.sce
index 65a1e27..65a1e27 100644
--- a/demos/analog_out.dem.sce
+++ b/demos/Arduino/analog_out.dem.sce
diff --git a/demos/blink.dem.sce b/demos/Arduino/blink.dem.sce
index b01d3da..b01d3da 100644
--- a/demos/blink.dem.sce
+++ b/demos/Arduino/blink.dem.sce
diff --git a/demos/dc_motor.dem.sce b/demos/Arduino/dc_motor.dem.sce
index 36c0bad..36c0bad 100644
--- a/demos/dc_motor.dem.sce
+++ b/demos/Arduino/dc_motor.dem.sce
diff --git a/demos/digital_in.dem.sce b/demos/Arduino/digital_in.dem.sce
index 2eb4c3a..2eb4c3a 100644
--- a/demos/digital_in.dem.sce
+++ b/demos/Arduino/digital_in.dem.sce
diff --git a/demos/master_write.dem.sce b/demos/Arduino/master_write.dem.sce
index cdf522d..cdf522d 100644
--- a/demos/master_write.dem.sce
+++ b/demos/Arduino/master_write.dem.sce
diff --git a/demos/Brijesh_Demos/Test_Add_SCE.sce b/demos/Brijesh_Demos/Test_Add_SCE.sce
new file mode 100644
index 0000000..e250078
--- /dev/null
+++ b/demos/Brijesh_Demos/Test_Add_SCE.sce
@@ -0,0 +1,4 @@
+a = 1;
+b = 5;
+c = a+b;
+disp(c);
diff --git a/demos/Brijesh_Demos/Test_Addition.sci b/demos/Brijesh_Demos/Test_Addition.sci
new file mode 100644
index 0000000..856ba63
--- /dev/null
+++ b/demos/Brijesh_Demos/Test_Addition.sci
@@ -0,0 +1,8 @@
+function Test_Addition()
+ a = 1;
+ b = 2;
+ d = float(b);
+ e = float(a)
+ c = e+d;
+ disp(c);
+endfunction
diff --git a/demos/Brijesh_Demos/Test_Cross.sci b/demos/Brijesh_Demos/Test_Cross.sci
new file mode 100644
index 0000000..01206b3
--- /dev/null
+++ b/demos/Brijesh_Demos/Test_Cross.sci
@@ -0,0 +1,44 @@
+function Test_Cross
+ disp('Datatype: Double');
+ i1 = [1 2;3 4;5 6];
+ i2 = [7 8;9 10;11 12];
+ o1 = cross(i1,i2);
+ disp(o1);
+
+ disp('Datatype: DoubleComplex');
+ i3 = [1+1*%i 2+2*%i;3+3*%i 4+4*%i;5+5*%i 6+6*%i];
+ i4 = [7+7*%i 8+8*%i;9+9*%i 10+10*%i;11+11*%i 12+12*%i];
+ o2 = cross(i3,i4);
+ disp(o2);
+
+ disp('Float');
+ i5 = float([1 2;3 4;5 6]);
+ i6 = float([7 8;9 10;11 12]);
+ o3 = cross(i5,i6);
+ disp(o3);
+
+ disp('Datatype: uint8');
+ i7 = uint8([1 2;3 4;5 6]);
+ i8 = uint8([7 8;9 10;11 12]);
+ o4 = cross(i7,i8);
+ disp(o4);
+
+ disp('Datatype: int8');
+ i9 = int8([1 2;3 4;5 6]);
+ i10 = int8([7 8;9 10;11 12]);
+ o5 = cross(i9,i10);
+ disp(o5);
+
+ disp('Datatype: uint16');
+ i11 = uint16([1 2;3 4;5 6]);
+ i12 = uint16([7 8;9 10;11 12]);
+ o6 = cross(i11,i12);
+ disp(o6);
+
+ disp('Datatype: int16');
+ i13 = int8([1 2;3 4;5 6]);
+ i14 = int8([7 8;9 10;11 12]);
+ o7 = cross(i13,i14);
+ disp(o7);
+
+endfunction
diff --git a/demos/Brijesh_Demos/Test_Erf.sci b/demos/Brijesh_Demos/Test_Erf.sci
new file mode 100644
index 0000000..42208f6
--- /dev/null
+++ b/demos/Brijesh_Demos/Test_Erf.sci
@@ -0,0 +1,10 @@
+function Test_Erf
+ disp('Datatype: Double');
+ i1 = [1 2 .5; 7 .8 .9];
+ o1 = erf(i1);
+ disp(o1);
+ disp('Datatype: float');
+ i2 = float([1 2 .5; 7 .8 .9]);
+ o2 = erf(i2);
+ disp(o2);
+endfunction
diff --git a/demos/Brijesh_Demos/Test_Erfc.sci b/demos/Brijesh_Demos/Test_Erfc.sci
new file mode 100644
index 0000000..2ad8cfe
--- /dev/null
+++ b/demos/Brijesh_Demos/Test_Erfc.sci
@@ -0,0 +1,10 @@
+function Test_Erfc
+ disp('Datatype: Double');
+ i1 = [1 2 .5; 7 .8 .9];
+ o1 = erfc(i1);
+ disp(o1);
+ disp('Datatype: float');
+ i2 = float([1 2 .5; 7 .8 .9]);
+ o2 = erfc(i2);
+ disp(o2);
+endfunction
diff --git a/demos/Brijesh_Demos/Test_Isreal.sci b/demos/Brijesh_Demos/Test_Isreal.sci
new file mode 100644
index 0000000..4846d31
--- /dev/null
+++ b/demos/Brijesh_Demos/Test_Isreal.sci
@@ -0,0 +1,25 @@
+function Test_Isreal
+ disp('Datatype: Double');
+ i1 = [1 2 3];
+ i2 = [1 2 3];
+ o1 = isequal(i1,i2);
+ disp(o1);
+
+ disp('Datatype: Float');
+ i3 = float([4 5 6]);
+ i4 = float([4 5 6]);
+ o2 = isequal(i3,i4);
+ disp(o2);
+
+ disp('Datatype: DoubleComplex');
+ i5 = [%i*3 %i*3 %i*3];
+ i6 = [%i*3 %i*3 %i*3];
+ o3 = isequal(i5,i6);
+ disp(o3);
+
+ disp('Datatype: uint16');
+ i7 = uint16([4 5 6]);
+ i8 = uint16([4 5 6]);
+ o4 = isequal(i7,i8);
+ disp(o4);
+endfunction
diff --git a/demos/Brijesh_Demos/Test_Toeplitz.sci b/demos/Brijesh_Demos/Test_Toeplitz.sci
new file mode 100644
index 0000000..6d1269e
--- /dev/null
+++ b/demos/Brijesh_Demos/Test_Toeplitz.sci
@@ -0,0 +1,50 @@
+function Test_Toeplitz()
+ disp('Datatype: Double');
+ ai = [1 2 3 4];
+ bi = [1 6 7 8];
+ as1 = toeplitz(ai,bi);
+ disp(as1);
+
+ disp('Datatype: Float');
+ aid = float(ai);
+ bid = float(bi);
+ as2 = toeplitz(aid,bid);
+ disp(as2);
+
+ disp('Datatype: uint8');
+ aiu8 = uint8(ai);
+ biu8 = uint8(bi);
+ as3 = toeplitz(aiu8,biu8);
+ disp(as3);
+
+ disp('Datatype: int8');
+ ai8 = int8(ai);
+ bi8 = int8(bi);
+ as4= toeplitz(ai8,bi8);
+ disp(as4);
+
+ disp('Datatype: uint16');
+ aiu16 = uint16(ai);
+ biu16 = uint16(bi);
+ as5 = toeplitz(aiu16,biu16);
+ disp(as5);
+
+ disp('Datatype: int16');
+ ai16 = int16(ai);
+ bi16 = int16(bi);
+ as6 = toeplitz(ai16,bi16);
+ disp(as6);
+
+ disp('Datatype: Double Complex');
+ adc = [1+%i*1 2+%i*2 3+%i*3 4+%i*4];
+ bdc = [1+%i*1 6+%i*6 7+%i*7 8+%i*8];
+ as7 = toeplitz(adc,bdc);
+ disp(as7);
+
+ disp('Datatype: Char');
+ aic = ['a' 'b' 'c' 'd'];
+ bic = ['a' 'x' 'y' 'z'];
+ as9 = toeplitz(aic,bic);
+ disp(as9);
+
+endfunction
diff --git a/demos/CT/CT.dem.gateway.sce b/demos/CT/CT.dem.gateway.sce
new file mode 100644
index 0000000..1aba91e
--- /dev/null
+++ b/demos/CT/CT.dem.gateway.sce
@@ -0,0 +1,18 @@
+// 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
+
+
+subdemolist = ["Discrete Cosine Transform" , "test_dct.dem.sce";
+ "Inverse Cosine Transform" , "test_idct.dem.sce";
+ ];
+
+global SCI2CHOME;
+subdemolist(:,2) = SCI2CHOME + "/demos/CT/"+ subdemolist(:,2);
diff --git a/demos/test_dct.dem.sce b/demos/CT/test_dct.dem.sce
index b1b6247..b1b6247 100644
--- a/demos/test_dct.dem.sce
+++ b/demos/CT/test_dct.dem.sce
diff --git a/demos/test_idct.dem.sce b/demos/CT/test_idct.dem.sce
index b1d3339..b1d3339 100644
--- a/demos/test_idct.dem.sce
+++ b/demos/CT/test_idct.dem.sce
diff --git a/demos/Filter.dem.sce b/demos/Filters/Filter.dem.sce
index 100b37b..100b37b 100644
--- a/demos/Filter.dem.sce
+++ b/demos/Filters/Filter.dem.sce
diff --git a/demos/FilterResponse.dem.sce b/demos/Filters/FilterResponse.dem.sce
index 7104836..7104836 100644
--- a/demos/FilterResponse.dem.sce
+++ b/demos/Filters/FilterResponse.dem.sce
diff --git a/demos/Filters/Filters.dem.gateway.sce b/demos/Filters/Filters.dem.gateway.sce
new file mode 100644
index 0000000..274d0e4
--- /dev/null
+++ b/demos/Filters/Filters.dem.gateway.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
+
+
+subdemolist = ["High Pass Filter", "Filter.dem.sce";
+ "Analog Filters","analogFilter.dem.sce";
+ "Filter Responses","FilterResponse.dem.sce";
+ ];
+
+global SCI2CHOME;
+subdemolist(:,2) = SCI2CHOME + "/demos/Filters/"+ subdemolist(:,2);
diff --git a/demos/analogFilter.dem.sce b/demos/Filters/analogFilter.dem.sce
index 674c954..674c954 100644
--- a/demos/analogFilter.dem.sce
+++ b/demos/Filters/analogFilter.dem.sce
diff --git a/demos/FULLRF.dem.sce b/demos/LinearAlgebra/FULLRF.dem.sce
index 3aeeba2..3aeeba2 100644
--- a/demos/FULLRF.dem.sce
+++ b/demos/LinearAlgebra/FULLRF.dem.sce
diff --git a/demos/GIVENS.dem.sce b/demos/LinearAlgebra/GIVENS.dem.sce
index 0ab2d2a..0ab2d2a 100644
--- a/demos/GIVENS.dem.sce
+++ b/demos/LinearAlgebra/GIVENS.dem.sce
diff --git a/demos/HESS.dem.sce b/demos/LinearAlgebra/HESS.dem.sce
index 4c70d67..4c70d67 100644
--- a/demos/HESS.dem.sce
+++ b/demos/LinearAlgebra/HESS.dem.sce
diff --git a/demos/HOUSEHOLDER.dem.sce b/demos/LinearAlgebra/HOUSEHOLDER.dem.sce
index 7447407..7447407 100644
--- a/demos/HOUSEHOLDER.dem.sce
+++ b/demos/LinearAlgebra/HOUSEHOLDER.dem.sce
diff --git a/demos/LinearAlgebra/LinearAlgebra.dem.gateway.sce b/demos/LinearAlgebra/LinearAlgebra.dem.gateway.sce
new file mode 100644
index 0000000..ef99e53
--- /dev/null
+++ b/demos/LinearAlgebra/LinearAlgebra.dem.gateway.sce
@@ -0,0 +1,27 @@
+// 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
+
+
+subdemolist = ["Singular Value Decomposition", "SVD.dem.sce";
+ "Singular Value Approximation", "SVA.dem.sce";
+ "SQROOT", "SQROOT.dem.sce";
+ "SPEC", "SPEC.dem.sce";
+ "ROWCOMP","ROWCOMP.dem.sce";
+ "QR Decomposition", "QR.dem.sce";
+ "NORM type 2", "NORM.dem.sce";
+ "HOUSEHOLDER","HOUSEHOLDER.dem.sce";
+ "HESS", "HESS.dem.sce";
+ "GIVENS Transformation", "GIVENS.dem.sce";
+ "Full rank factorization","FULLRF.dem.sce";
+ ];
+
+global SCI2CHOME;
+subdemolist(:,2) = SCI2CHOME + "/demos/LinearAlgebra/"+ subdemolist(:,2);
diff --git a/demos/NORM.dem.sce b/demos/LinearAlgebra/NORM.dem.sce
index 1de3feb..1de3feb 100644
--- a/demos/NORM.dem.sce
+++ b/demos/LinearAlgebra/NORM.dem.sce
diff --git a/demos/QR.dem.sce b/demos/LinearAlgebra/QR.dem.sce
index 7d2fc1a..7d2fc1a 100644
--- a/demos/QR.dem.sce
+++ b/demos/LinearAlgebra/QR.dem.sce
diff --git a/demos/ROWCOMP.dem.sce b/demos/LinearAlgebra/ROWCOMP.dem.sce
index 6557eb4..6557eb4 100644
--- a/demos/ROWCOMP.dem.sce
+++ b/demos/LinearAlgebra/ROWCOMP.dem.sce
diff --git a/demos/SPEC.dem.sce b/demos/LinearAlgebra/SPEC.dem.sce
index 423c152..423c152 100644
--- a/demos/SPEC.dem.sce
+++ b/demos/LinearAlgebra/SPEC.dem.sce
diff --git a/demos/SQROOT.dem.sce b/demos/LinearAlgebra/SQROOT.dem.sce
index 676d5e5..676d5e5 100644
--- a/demos/SQROOT.dem.sce
+++ b/demos/LinearAlgebra/SQROOT.dem.sce
diff --git a/demos/SVA.dem.sce b/demos/LinearAlgebra/SVA.dem.sce
index 3ced74f5..3ced74f5 100644
--- a/demos/SVA.dem.sce
+++ b/demos/LinearAlgebra/SVA.dem.sce
diff --git a/demos/SVD.dem.sce b/demos/LinearAlgebra/SVD.dem.sce
index aa35cce..aa35cce 100644
--- a/demos/SVD.dem.sce
+++ b/demos/LinearAlgebra/SVD.dem.sce
diff --git a/demos/RPi/RPi.dem.gateway.sce b/demos/RPi/RPi.dem.gateway.sce
new file mode 100644
index 0000000..29d4c71
--- /dev/null
+++ b/demos/RPi/RPi.dem.gateway.sce
@@ -0,0 +1,17 @@
+// 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
+
+
+subdemolist = ["Wait and Blink","test_wait_and_blink.dem.sce";
+ ];
+
+global SCI2CHOME;
+subdemolist(:,2) = SCI2CHOME + "/demos/RPi/"+ subdemolist(:,2);
diff --git a/demos/RPi/test_wait_and_blink.dem.sce b/demos/RPi/test_wait_and_blink.dem.sce
new file mode 100644
index 0000000..31396c6
--- /dev/null
+++ b/demos/RPi/test_wait_and_blink.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/wait_and_blink.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 bc158bf..7e98787 100644
--- a/demos/scilab2c.dem.gateway.sce
+++ b/demos/scilab2c.dem.gateway.sce
@@ -12,36 +12,17 @@
demopath = get_absolute_file_path("scilab2c.dem.gateway.sce");
-subdemolist = ["Trigonometric Identity" , "TrigonometricIdentity.dem.sce";
+subdemolist =["Linear Algebra","LinearAlgebra/LinearAlgebra.dem.gateway.sce";
+ "Arduino","Arduino/Arduino.dem.gateway.sce";
+ "Cosine Transforms","CT/CT.dem.gateway.sce";
+ "Filters","Filters/Filters.dem.gateway.sce";
+ "Raspberry Pi","RPi/RPi.dem.gateway.sce";
+ "Trigonometric Identity" , "TrigonometricIdentity.dem.sce";
"Linear Regression" , "LinearRegression.dem.sce";
"Symbols", "Symbols.dem.sce";
- "High Pass Filter", "Filter.dem.sce";
- "Jacobi functions","Jacobi.dem.sce";
- "Analog Filters","analogFilter.dem.sce";
- "Discrete Cosine Transform" , "test_dct.dem.sce";
- "Inverse Cosine Transform" , "test_idct.dem.sce";
- "String Functions","string.dem.sce";
- "Filter Responses","FilterResponse.dem.sce";
- "Singular Value Decomposition", "SVD.dem.sce";
- "Singular Value Approximation", "SVA.dem.sce";
- "SQROOT", "SQROOT.dem.sce";
- "SPEC", "SPEC.dem.sce";
- "ROWCOMP","ROWCOMP.dem.sce";
- "QR Decomposition", "QR.dem.sce";
- "NORM type 2", "NORM.dem.sce";
- "HOUSEHOLDER","HOUSEHOLDER.dem.sce";
- "HESS", "HESS.dem.sce";
- "GIVENS Transformation", "GIVENS.dem.sce";
- "Full rank factorization","FULLRF.dem.sce";
- "Arduino blink", "blink.dem.sce";
- "Arduino digital input", "digital_in.dem.sce";
- "Arduino analog voltage i/o", "analog_in_out_volt.dem.sce";
- "Arduino analog output", "analog_out.dem.sce";
- "Arduino DC motor", "dc_motor.dem.sce";
- "Arduino Master write", "master_write.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";
- ];
-
+ "Samples of sinc function","filt_sinc.dem.sce";]
subdemolist(:,2) = demopath + subdemolist(:,2);
diff --git a/etc/scilab2c.start b/etc/scilab2c.start
index 91a5861..330def7 100644
--- a/etc/scilab2c.start
+++ b/etc/scilab2c.start
@@ -22,6 +22,24 @@ sci2c_ToolInitlib = lib(pathmacros + "ToolInitialization" + filesep());
sci2c_finDeps = lib(pathmacros + "findDeps" + filesep());
sci2c_AVRlib = lib(pathmacros + "Hardware\AVR" + filesep());
sci2c_RPilib = lib(pathmacros + "Hardware\RasberryPi"+ filesep());
+sci2c_RPI_Digitallib = lib(pathmacros + "Hardware\RasberryPi\Digital" + filesep());
+sci2c_RPI_gertBoardlib = lib(pathmacros + "Hardware\RasberryPi\gertBoard" + filesep());
+sci2c_RPI_I2Clib = lib(pathmacros + "Hardware\RasberryPi\I2C" + filesep());
+sci2c_RPI_Interruptlib = lib(pathmacros + "Hardware\RasberryPi\Interrupt" + filesep());
+sci2c_RPI_lcdlib = lib(pathmacros + "Hardware\RasberryPi\lcd" + filesep());
+sci2c_RPI_lcd128x64lib = lib(pathmacros + "Hardware\RasberryPi\lcd128x64" + filesep());
+sci2c_RPI_mcplib = lib(pathmacros + "Hardware\RasberryPi\mcp" + filesep());
+sci2c_RPI_Misclib = lib(pathmacros + "Hardware\RasberryPi\Misc" + filesep());
+sci2c_RPI_pcflib = lib(pathmacros + "Hardware\RasberryPi\pcf" + filesep());
+sci2c_RPI_piGlowlib = lib(pathmacros + "Hardware\RasberryPi\piGlow" + filesep());
+sci2c_RPI_pinMaplib = lib(pathmacros + "Hardware\RasberryPi\pinMap" + filesep());
+sci2c_RPI_pwmlib = lib(pathmacros + "Hardware\RasberryPi\pwm" + filesep());
+sci2c_RPI_Seriallib = lib(pathmacros + "Hardware\RasberryPi\Serial" + filesep());
+sci2c_RPI_Setuplib = lib(pathmacros + "Hardware\RasberryPi\Setup" + filesep());
+sci2c_RPI_Shiftlib = lib(pathmacros + "Hardware\RasberryPi\Shift" + filesep());
+sci2c_RPI_Softlib = lib(pathmacros + "Hardware\RasberryPi\Soft" + filesep());
+sci2c_RPI_SPIlib = lib(pathmacros + "Hardware\RasberryPi\SPI" + filesep());
+sci2c_RPI_Timinglib = lib(pathmacros + "Hardware\RasberryPi\Timing" + filesep());
sci2c_ScilabArduinolib = lib(pathmacros + "Scilab-Arduino" + filesep());
sci2c_CVCorelib = lib(pathmacros + "ImageProcessing\core" + filesep());
sci2c_CVHighguilib = lib(pathmacros + "ImageProcessing\highgui" + filesep());
diff --git a/includes/sci2clib.h b/includes/sci2clib.h
index b57fa97..a98181c 100644
--- a/includes/sci2clib.h
+++ b/includes/sci2clib.h
@@ -80,6 +80,16 @@ extern "C" {
#include "interp1.h"
#include "int_interp1.h"
+/* SPECIAL FUNCTIONS */
+
+/* interfacing erf */
+#include "erf.h"
+#include "int_erf.h"
+
+/* interfacing erf */
+#include "erfc.h"
+#include "int_erfc.h"
+
/* ELEMENTARY FUNCTIONS */
#include "nextpow2.h"
@@ -362,6 +372,10 @@ extern "C" {
#include "lcm.h"
#include "int_lcm.h"
+/*interfacing isequal*/
+#include "isequal.h"
+#include "int_isequal.h"
+
/* IMPLICIT LISTS */
/* interfacing implicitList/OpColon */
diff --git a/macros/ASTManagement/lib b/macros/ASTManagement/lib
deleted file mode 100644
index e9d351a..0000000
--- a/macros/ASTManagement/lib
+++ /dev/null
Binary files differ
diff --git a/macros/CCodeGeneration/lib b/macros/CCodeGeneration/lib
deleted file mode 100644
index f2696fe..0000000
--- a/macros/CCodeGeneration/lib
+++ /dev/null
Binary files differ
diff --git a/macros/ErrorMessages/lib b/macros/ErrorMessages/lib
deleted file mode 100644
index 1500b1f..0000000
--- a/macros/ErrorMessages/lib
+++ /dev/null
Binary files differ
diff --git a/macros/FunctionAnnotation/lib b/macros/FunctionAnnotation/lib
deleted file mode 100644
index 5eb9bc2..0000000
--- a/macros/FunctionAnnotation/lib
+++ /dev/null
Binary files differ
diff --git a/macros/FunctionList/lib b/macros/FunctionList/lib
deleted file mode 100644
index e101853..0000000
--- a/macros/FunctionList/lib
+++ /dev/null
Binary files differ
diff --git a/macros/GeneralFunctions/lib b/macros/GeneralFunctions/lib
deleted file mode 100644
index 846ca1b..0000000
--- a/macros/GeneralFunctions/lib
+++ /dev/null
Binary files differ
diff --git a/macros/Hardware/AVR/lib b/macros/Hardware/AVR/lib
deleted file mode 100644
index 53e5659..0000000
--- a/macros/Hardware/AVR/lib
+++ /dev/null
Binary files differ
diff --git a/macros/Hardware/RasberryPi/Digital/RPI_digitalRead.sci b/macros/Hardware/RasberryPi/Digital/RPI_digitalRead.sci
new file mode 100755
index 0000000..f3f229f
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Digital/RPI_digitalRead.sci
@@ -0,0 +1,41 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function out=RPI_digitalRead(pin)
+// Function to read the digital voltage at the given pin
+//
+// Calling Sequence
+// v=RPI_digitalRead(pin)
+//
+// Parameters
+// pin: The pin number to read the voltage from. Numbering sequence to be followed as initiated using RPI_pinNumbering function.
+//
+// Description
+// This funtion reads the digital voltage at the given pin. Returns a 0 (for low) and 1 (for high).
+// Note: pin should be set for input mode using RPI_pinMode. The function will also return 0/1 corresponding to what the voltage is set for an output pin.
+//
+// Examples
+// v=RPI_digitalRead(0)
+// See also
+// RPI_analogWrite, RPI_analogRead, RPI_digitalWrite, RPI_pinNumbering, RPI_pinMode
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="diR#1#"+string(pin)+"#";
+ if getos()=="Linux" then
+ out=unix_g("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos()=="Windows" then
+ [out,RPI_winR]=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/Digital/RPI_digitalReadByte.sci b/macros/Hardware/RasberryPi/Digital/RPI_digitalReadByte.sci
new file mode 100755
index 0000000..5cbccc2
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Digital/RPI_digitalReadByte.sci
@@ -0,0 +1,40 @@
+// 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 out=RPI_digitalReadByte()
+// Function to read first 8 GPIO pins
+//
+// Calling Sequence
+// b=RPI_digitalReadByte()
+//
+// Description
+// This function read the state of the first eight GPIO pins at once. The state is read from pin0 to pin7.
+//
+// Note: The MSB-LSB sequence here is opposite of that of the RPI_digitalWriteByte.
+//
+// Examples
+// b=RPI_digitalReadByte()
+// See also
+// RPI_digitalWriteByte, RPI_digitalRead
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="BtR#0#";
+ if getos()=="Linux" then
+ out=unix_g("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos()=="Windows" then
+ [out,RPI_winR]=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/Digital/RPI_digitalWrite.sci b/macros/Hardware/RasberryPi/Digital/RPI_digitalWrite.sci
new file mode 100755
index 0000000..d4ac660
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Digital/RPI_digitalWrite.sci
@@ -0,0 +1,46 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_digitalWrite(pin,Volt)
+// Function to set digital voltage at the given pin
+//
+// Calling Sequence
+// RPI_digitalWrite(pin,Volt)
+//
+// Parameters
+// pin : The pin number to set the voltage at. Numbering sequence to be followed as initiated using RPI_pinNumbering function.
+// Volt: Digital voltage to set. 0 (for logic-LOW) or 1 (for logic-HIGH)
+//
+// Description
+// This funtion sets the voltage at the given pin. 0v for logic 0 and 3.3v for logic 1.
+// Note: pin should be set for output mode using RPI_pinMode.
+//
+// Examples
+// RPI_digitalWrite(0,1)
+// See also
+// RPI_analogWrite, RPI_digitalRead, RPI_digitalRead, RPI_pinNumbering, RPI_pinMode
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ if (Volt==0 | Volt==1) then
+ commande="diW#2#"+string(pin)+"#"+string(Volt)+"#";
+ else
+ error("Voltage logic should be 0 or 1.");
+ end
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/Digital/RPI_digitalWriteByte.sci b/macros/Hardware/RasberryPi/Digital/RPI_digitalWriteByte.sci
new file mode 100755
index 0000000..f7f9191
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Digital/RPI_digitalWriteByte.sci
@@ -0,0 +1,42 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_digitalWriteByte(Byte)
+// Function to set first eight GPIO pins to a particular value
+//
+// Calling Sequence
+// RPI_digitalWriteByte(Byte)
+//
+// Parameters
+// Byte: An 8-bit byte to write on the first 8 GPIO pins. Inter from 0 to 255.
+//
+// Description
+// This writes the 8-bit byte supplied to the first 8 GPIO pins. It’s the fastest way to set all 8 bits at once to a particular value, although it still takes two write operations to the Pi’s GPIO hardware. The state is written from pin7 to pin0.
+//
+// Note: The MSB-LSB sequence here is opposite to that from RPI_digitalReadByte.
+//
+// Examples
+// RPI_digitalWriteByte(128)
+// See also
+// RPI_digitalReadByte, RPI_digitalWrite
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="BtW#1#"+string(Byte)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/Digital/buildmacros.sce b/macros/Hardware/RasberryPi/Digital/buildmacros.sce
new file mode 100755
index 0000000..7d533f7
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Digital/buildmacros.sce
@@ -0,0 +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
+
+tbx_build_macros(TOOLBOX_NAME, get_absolute_file_path('buildmacros.sce'));
+
+clear tbx_build_macros;
diff --git a/macros/Hardware/RasberryPi/Digital/names b/macros/Hardware/RasberryPi/Digital/names
new file mode 100755
index 0000000..27fe63b
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Digital/names
@@ -0,0 +1,4 @@
+RPI_digitalRead
+RPI_digitalReadByte
+RPI_digitalWrite
+RPI_digitalWriteByte
diff --git a/macros/Hardware/RasberryPi/I2C/RPI_I2CRead.sci b/macros/Hardware/RasberryPi/I2C/RPI_I2CRead.sci
new file mode 100755
index 0000000..afd9850
--- /dev/null
+++ b/macros/Hardware/RasberryPi/I2C/RPI_I2CRead.sci
@@ -0,0 +1,40 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function out=RPI_I2CRead(fd)
+// Function to read device
+//
+// Calling Sequence
+// RPI_I2CRead(fd)
+//
+// Parameters
+// fd: file descriptor obtained from RPI_I2CSetup
+//
+// Description
+// Function for a simple device read. Some devices present data when you read them without having to do any register transactions.
+//
+// Examples
+// RPI_I2CRead(13)
+// See also
+// RPI_i2cdetect, RPI_I2CReadReg8, RPI_I2CReadReg16, RPI_I2CWrite, RPI_I2CWriteReg8, RPI_I2CWriteReg16, RPI_I2CSetupInterface, RPI_I2CSetup
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="CR1#1#"+string(fd)+"#";
+ if getos()=="Linux" then
+ out=unix_g("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos()=="Windows" then
+ [out,RPI_winR]=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/I2C/RPI_I2CReadReg16.sci b/macros/Hardware/RasberryPi/I2C/RPI_I2CReadReg16.sci
new file mode 100755
index 0000000..f0ad989
--- /dev/null
+++ b/macros/Hardware/RasberryPi/I2C/RPI_I2CReadReg16.sci
@@ -0,0 +1,41 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function out=RPI_I2CReadReg16(fd,reg)
+// Function to read 16-bit valu from the register
+//
+// Calling Sequence
+// RPI_I2CReadReg16(fd,reg)
+//
+// Parameters
+// fd : file descriptor obtained from RPI_I2CSetup
+// reg: integer register to read data from
+//
+// Description
+// This function reads a 16-bit value from the device register indicated.
+//
+// Examples
+// RPI_I2CReadReg16(13,0x40)
+// See also
+// RPI_i2cdetect, RPI_I2CRead, RPI_I2CReadReg8, RPI_I2CWrite, RPI_I2CWriteReg8, RPI_I2CWriteReg16, RPI_I2CSetupInterface, RPI_I2CSetup
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="CR3#2#"+string(fd)+"#"+string(reg)+"#";
+ if getos()=="Linux" then
+ out=unix_g("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos()=="Windows" then
+ [out,RPI_winR]=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/I2C/RPI_I2CReadReg8.sci b/macros/Hardware/RasberryPi/I2C/RPI_I2CReadReg8.sci
new file mode 100755
index 0000000..d2ab59f
--- /dev/null
+++ b/macros/Hardware/RasberryPi/I2C/RPI_I2CReadReg8.sci
@@ -0,0 +1,41 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function out=RPI_I2CReadReg8(fd,reg)
+// Function to read 8-bit valu from the register
+//
+// Calling Sequence
+// RPI_I2CReadReg8(fd,reg)
+//
+// Parameters
+// fd : file descriptor obtained from RPI_I2CSetup
+// reg: integer register to read data from
+//
+// Description
+// This function reads an 8-bit value from the device register indicated.
+//
+// Examples
+// RPI_I2CReadReg8(13,0x40)
+// See also
+// RPI_i2cdetect, RPI_I2CRead, RPI_I2CReadReg16, RPI_I2CWrite, RPI_I2CWriteReg8, RPI_I2CWriteReg16, RPI_I2CSetupInterface, RPI_I2CSetup
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="CR2#2#"+string(fd)+"#"+string(reg)+"#";
+ if getos()=="Linux" then
+ out=unix_g("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos()=="Windows" then
+ [out,RPI_winR]=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/I2C/RPI_I2CSetup.sci b/macros/Hardware/RasberryPi/I2C/RPI_I2CSetup.sci
new file mode 100755
index 0000000..801c2e6
--- /dev/null
+++ b/macros/Hardware/RasberryPi/I2C/RPI_I2CSetup.sci
@@ -0,0 +1,42 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function out=RPI_I2CSetup(addr)
+// Function to initialize the I2C system
+//
+// Calling Sequence
+// fd=RPI_I2CSetup(addr)
+//
+// Parameters
+// addr: integer, the I2C number of the device obtained using RPI_i2cdetect
+//
+// Description
+// This initialises the I2C system with your given device identifier. The addr is the I2C number of the device and obtained using RPI_i2cdetect program. The function works out the Raspberry Pi revision and opens the appropriate device in /dev.
+//
+//The return value is the standard Linux filehandle, or -1 if any error – in which case, errno can be consulted as usual.
+//
+// Examples
+// fd=RPI_I2CSetup(64)
+// See also
+// RPI_i2cdetect, RPI_I2CRead, RPI_I2CReadReg8, RPI_I2CReadReg16, RPI_I2CWrite, RPI_I2CWriteReg8, RPI_I2CWriteReg16, RPI_I2CSetupInterface
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="CSe#1#"+string(addr)+"#";
+ if getos()=="Linux" then
+ out=unix_g("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos()=="Windows" then
+ [out,RPI_winR]=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/I2C/RPI_I2CSetupInterface.sci b/macros/Hardware/RasberryPi/I2C/RPI_I2CSetupInterface.sci
new file mode 100755
index 0000000..fed4f05
--- /dev/null
+++ b/macros/Hardware/RasberryPi/I2C/RPI_I2CSetupInterface.sci
@@ -0,0 +1,41 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_I2CSetupInterface(device,addr)
+// Function to select different I2C interfaces
+//
+// Calling Sequence
+// I2CSetupInterface(device,addr)
+//
+// Parameters
+// device: device
+// addr : the I2C number of the device obtained using RPI_i2cdetect
+//
+// Description
+// This feature is not implemented currently, and will be used to select different I2C interfaces if the RPi ever receives them.
+//
+// Examples
+// I2CSetupInterface(1,0x48)
+// See also
+// RPI_i2cdetect, RPI_I2CRead, RPI_I2CReadReg8, RPI_I2CReadReg16, RPI_I2CWrite, RPI_I2CWriteReg8, RPI_I2CWriteReg16, RPI_I2CSetup
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="CSI#2#"+string(device)+"#"+string(addr)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/I2C/RPI_I2CWrite.sci b/macros/Hardware/RasberryPi/I2C/RPI_I2CWrite.sci
new file mode 100755
index 0000000..854b3b2
--- /dev/null
+++ b/macros/Hardware/RasberryPi/I2C/RPI_I2CWrite.sci
@@ -0,0 +1,41 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_I2CWrite(fd,data)
+// Function to write to device
+//
+// Calling Sequence
+// RPI_I2CWrite(fd,data)
+//
+// Parameters
+// fd : file descriptor obtained from RPI_I2CSetup
+// data: integer data to write to device
+//
+// Description
+// Function for simple device write. Some devices accept data this way without needing to access any internal registers.
+//
+// Examples
+// RPI_I2CWrite(13,100)
+// See also
+// RPI_i2cdetect, RPI_I2CRead, RPI_I2CReadReg8, RPI_I2CReadReg16, RPI_I2CWriteReg8, RPI_I2CWriteReg16, RPI_I2CSetupInterface, RPI_I2CSetup
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="CW1#2#"+string(fd)+"#"+string(data)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/I2C/RPI_I2CWriteReg16.sci b/macros/Hardware/RasberryPi/I2C/RPI_I2CWriteReg16.sci
new file mode 100755
index 0000000..b2e8fb6
--- /dev/null
+++ b/macros/Hardware/RasberryPi/I2C/RPI_I2CWriteReg16.sci
@@ -0,0 +1,42 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_I2CWriteReg16(fd,reg,data)
+// Function to write 16-bit data to register
+//
+// Calling Sequence
+// RPI_I2CWriteReg16(fd,reg,data)
+//
+// Parameters
+// fd : file descriptor obtained from RPI_I2CSetup
+// reg : integer register to write data at
+// data: integer data to write to device
+//
+// Description
+// This function writes a 16-bit data value into the device register indicated.
+//
+// Examples
+// RPI_I2CWriteReg16(13,0x40,100)
+// See also
+// RPI_i2cdetect, RPI_I2CRead, RPI_I2CReadReg8, RPI_I2CReadReg16, RPI_I2CWrite, RPI_I2CWriteReg8, RPI_I2CSetupInterface, RPI_I2CSetup
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="CW3#3#"+string(fd)+"#"+string(reg)+"#"+string(data)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/I2C/RPI_I2CWriteReg8.sci b/macros/Hardware/RasberryPi/I2C/RPI_I2CWriteReg8.sci
new file mode 100755
index 0000000..19c8157
--- /dev/null
+++ b/macros/Hardware/RasberryPi/I2C/RPI_I2CWriteReg8.sci
@@ -0,0 +1,42 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_I2CWriteReg8(fd,reg,data)
+// Function to write 8-bit data to register
+//
+// Calling Sequence
+// RPI_I2CWriteReg8(fd,reg,data)
+//
+// Parameters
+// fd : file descriptor obtained from RPI_I2CSetup
+// reg : integer register to write data at
+// data: integer data to write to device
+//
+// Description
+// This function writes an 8-bit data value into the device register indicated.
+//
+// Examples
+// RPI_I2CWriteReg8(13,0x40,100)
+// See also
+// RPI_i2cdetect, RPI_I2CRead, RPI_I2CReadReg8, RPI_I2CReadReg16, RPI_I2CWrite, RPI_I2CWriteReg16, RPI_I2CSetupInterface, RPI_I2CSetup
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="CW2#3#"+string(fd)+"#"+string(reg)+"#"+string(data)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/I2C/RPI_i2cdetect.sci b/macros/Hardware/RasberryPi/I2C/RPI_i2cdetect.sci
new file mode 100755
index 0000000..a37bc4c
--- /dev/null
+++ b/macros/Hardware/RasberryPi/I2C/RPI_i2cdetect.sci
@@ -0,0 +1,38 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function out=RPI_i2cdetect()
+// Function to get the address of attached i2c device
+//
+// Calling Sequence
+// RPI_i2cdetect()
+//
+// Description
+// This function returns the address of the i2c device connected to the Raspberry pi.
+//
+// Examples
+// addr=RPI_i2cdetect()
+// See also
+// RPI_I2CRead, RPI_I2CSetup, RPI_I2CReadReg8, RPI_I2CReadReg16, RPI_I2CSetupInterface, RPI_I2CWrite, RPI_I2CWriteReg8, RPI_I2CWriteReg16
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ rev=RPI_boardRev();
+ commande="i2c#1#i2cdetect -y "+string(strtod(rev)-1)+"#";
+ if getos()=="Linux" then
+ out=unix_g("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos()=="Windows" then
+ [out,RPI_winR]=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/I2C/buildmacros.sce b/macros/Hardware/RasberryPi/I2C/buildmacros.sce
new file mode 100755
index 0000000..7d533f7
--- /dev/null
+++ b/macros/Hardware/RasberryPi/I2C/buildmacros.sce
@@ -0,0 +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
+
+tbx_build_macros(TOOLBOX_NAME, get_absolute_file_path('buildmacros.sce'));
+
+clear tbx_build_macros;
diff --git a/macros/Hardware/RasberryPi/I2C/names b/macros/Hardware/RasberryPi/I2C/names
new file mode 100755
index 0000000..5a31886
--- /dev/null
+++ b/macros/Hardware/RasberryPi/I2C/names
@@ -0,0 +1,9 @@
+RPI_I2CRead
+RPI_I2CReadReg16
+RPI_I2CReadReg8
+RPI_I2CSetup
+RPI_I2CSetupInterface
+RPI_I2CWrite
+RPI_I2CWriteReg16
+RPI_I2CWriteReg8
+RPI_i2cdetect
diff --git a/macros/Hardware/RasberryPi/Interrupt/RPI_waitForInterrupt.sci b/macros/Hardware/RasberryPi/Interrupt/RPI_waitForInterrupt.sci
new file mode 100755
index 0000000..bb18042
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Interrupt/RPI_waitForInterrupt.sci
@@ -0,0 +1,45 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function out=RPI_waitForInterrupt(pin,timeOut)
+// Function to set a pin to wait for interrupt.
+//
+// Calling Sequence
+// i=RPI_waitForInterrupt(pin,timeOut)
+//
+// Parameters
+// pin : The pin to check for interrupt. Numbering sequence to be followed as initiated using RPI_pinNumbering function.
+// timeOut: The time (in milliseconds) for which to wait for interrupt. -1 to wait forever.
+//
+// Description
+// When called, it will wait for an interrupt event to happen on that pin and the program will be stalled. The return value is -1 if an error occurred (and errno will be set appropriately), 0 if it timed out, or 1 on a successful interrupt event.
+//
+// Before using RPI_waitForInterrupt, first initialise the GPIO pin and at present the only way to do this is to use the gpio program, either in a script, or using the system() call from inside the program.
+// Eg: To wait for a falling-edge interrupt on GPIO pin 0, setup the hardware using (before running the program):
+// gpio edge 0 falling
+//
+// Examples
+// i=RPI_waitForInterrupt(0,5000)
+// See also
+//
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="Int#2#"+string(pin)+"#"+string(timeOut)+"#";
+ if getos()=="Linux" then
+ out=unix_g("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos()=="Windows" then
+ [out,RPI_winR]=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/Interrupt/buildmacros.sce b/macros/Hardware/RasberryPi/Interrupt/buildmacros.sce
new file mode 100755
index 0000000..7d533f7
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Interrupt/buildmacros.sce
@@ -0,0 +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
+
+tbx_build_macros(TOOLBOX_NAME, get_absolute_file_path('buildmacros.sce'));
+
+clear tbx_build_macros;
diff --git a/macros/Hardware/RasberryPi/Interrupt/names b/macros/Hardware/RasberryPi/Interrupt/names
new file mode 100755
index 0000000..248c3e2
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Interrupt/names
@@ -0,0 +1 @@
+RPI_waitForInterrupt
diff --git a/macros/Hardware/RasberryPi/Misc/RPI_boardRev.sci b/macros/Hardware/RasberryPi/Misc/RPI_boardRev.sci
new file mode 100755
index 0000000..91ddb33
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Misc/RPI_boardRev.sci
@@ -0,0 +1,34 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function out=RPI_boardRev()
+// Function to print the board revision.
+//
+// Calling Sequence
+// rev=RPI_boardRev()
+//
+// Description
+// This function returns the board revision of the Raspberry Pi. Returns either 1 or 2.
+//
+// Examples
+// rev=RPI_boardRev()
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="bRv#0#";
+ if getos()=="Linux" then
+ out=unix_g("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos()=="Windows" then
+ [out,RPI_winR]=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/Misc/RPI_padDrive.sci b/macros/Hardware/RasberryPi/Misc/RPI_padDrive.sci
new file mode 100755
index 0000000..f2d0b17
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Misc/RPI_padDrive.sci
@@ -0,0 +1,40 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_padDrive(Group,value)
+// Function to set the 'strength' of the pad drivers for a particular group of pins
+//
+// Calling Sequence
+// RPI_padDrive(Group,value)
+//
+// Parameters
+// Group: the group to act on, a number from 0 to 2
+// Value: the strength, from 0 to 7, to set for the group
+//
+// Description
+// This sets the “strength” of the pad drivers for a particular group of pins. There are 3 groups of pins and the drive strength is from 0 to 7. Do not use this unless you know what you are doing
+//
+// Examples
+// RPI_padDrive(0,5)
+// See also
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="pDr#2#"+string(Group)+"#"+string(value)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/Misc/RPI_sn3218Setup.sci b/macros/Hardware/RasberryPi/Misc/RPI_sn3218Setup.sci
new file mode 100755
index 0000000..0791c50
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Misc/RPI_sn3218Setup.sci
@@ -0,0 +1,40 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_sn3218Setup(pinBase)
+// Function for setting up SN3218 I2C based LED controller.
+//
+// Calling Sequence
+// RPI_sn3218Setup(pinBase)
+//
+// Parameters
+// pinBase: any number above 64. The consecutive 18 pins will be allocated alongwith.
+//
+// Description
+// This function sets up the extension module for the SN3218 I2C based LED controller.There is no I2C device address passed into the setup function – the SN3218 has a fixed I2C address of 0x54, so there’s no need to refer to it other than internally inside the driver. This also means that only one device can be connected to a Raspberry Pi.
+//
+// Examples
+// RPI_sn3218Setup(67)
+// See also
+// RPI_sr595Setup, RPI_pcf8574Setup, RPI_pcf8591Setup, RPI_mcp23008Setup, RPI_mcp23016Setup, RPI_mcp23017Setup, RPI_mcp23s08Setup, RPI_mcp23s17Setup
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="sn3#1#"+string(pinBase)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/Misc/buildmacros.sce b/macros/Hardware/RasberryPi/Misc/buildmacros.sce
new file mode 100755
index 0000000..7d533f7
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Misc/buildmacros.sce
@@ -0,0 +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
+
+tbx_build_macros(TOOLBOX_NAME, get_absolute_file_path('buildmacros.sce'));
+
+clear tbx_build_macros;
diff --git a/macros/Hardware/RasberryPi/Misc/names b/macros/Hardware/RasberryPi/Misc/names
new file mode 100755
index 0000000..35a4a42
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Misc/names
@@ -0,0 +1,3 @@
+RPI_boardRev
+RPI_padDrive
+RPI_sn3218Setup
diff --git a/macros/Hardware/RasberryPi/RPI_DelayMicro.sci b/macros/Hardware/RasberryPi/RPI_DelayMicro.sci
deleted file mode 100644
index bbb0bb3..0000000
--- a/macros/Hardware/RasberryPi/RPI_DelayMicro.sci
+++ /dev/null
@@ -1,38 +0,0 @@
-// 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 RPI_DelayMicro(time)
-// Function to insert some delay in code execution.
-//
-// Calling Sequence
-// RPI_DelayMicro(time)
-//
-// Parameters
-// time: time(microseconds) for which execution is to be delayed
-//
-// Description
-// this function can be used for insertig execution delays. 'time' should be
-// specified in microseconds.'time' should be between (1-65536).
-// Note: Delay inserted by this function is not accurate, but depedent on
-// operating system, other running tasks etc.
-//
-// Examples
-// RPI_DelayMilli(100) //This will delay the execution of next code by 100 ms.
-//
-// See also
-// RPI_DelayMicro
-//
-//
-// Authors
-// Siddhesh Wani
-//
-
-// This is curretly dummy function. It provides no functionality but is required
-// for providing support for generating C code for RPi.
-
-endfunction
diff --git a/macros/Hardware/RasberryPi/RPI_DelayMilli.sci b/macros/Hardware/RasberryPi/RPI_DelayMilli.sci
deleted file mode 100644
index 13b7962..0000000
--- a/macros/Hardware/RasberryPi/RPI_DelayMilli.sci
+++ /dev/null
@@ -1,39 +0,0 @@
-// 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 RPI_DelayMilli(time)
-// Function to insert some delay in milli seconds in code execution.
-//
-// Calling Sequence
-// RPI_DelayMilli(time)
-//
-// Parameters
-// time: time(milliseconds) for which execution is to be delayed
-//
-// Description
-// This function can be used for insertig execution delays. 'time' should be
-// specified in milliseconds. If more resolution is required, use 'RPI_DelayMicro'
-// for inserting delay in microseconds.
-// Note: Delay inserted by this function is not accurate, but depedent on
-// operating system, other running tasks etc.
-//
-// Examples
-// RPI_DelayMilli(100) //This will delay the execution of next code by 100 ms.
-//
-// See also
-// RPI_DelayMicro
-//
-//
-// Authors
-// Siddhesh Wani
-//
-
-// This is curretly dummy function. It provides no functionality but is required
-// for providing support for generating C code for RPi.
-
-endfunction
diff --git a/macros/Hardware/RasberryPi/RPI_DigitalIn.sci b/macros/Hardware/RasberryPi/RPI_DigitalIn.sci
deleted file mode 100644
index 781c49c..0000000
--- a/macros/Hardware/RasberryPi/RPI_DigitalIn.sci
+++ /dev/null
@@ -1,43 +0,0 @@
-// 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 state = RPI_DigitalIn(pin)
-// Function to read current state on digital pins.
-//
-// Calling Sequence
-// state = RPI_DigitalIn(pin)
-//
-// Parameters
-// pin : pin of RPi to be used
-// state : current state of the pin (0 -> LOW, 1 -> HIGH)
-//
-// Description
-// This fucntion is used for reading the current state on gpio pins of RPi. 'RPI_DigitalSetup' function must be called before this for setting up pin as input. 'pin' must be specified from list given. 'state' specifies the input state (0 -> Low, 1-> High)
-// Examples
-// RPI_DigitalIn(RPI_GPIO_P1_03) //Reads the state of pin 3 of header P1.
-//
-// See also
-// RPI_DigitalSetup RPI_DigitalOut
-//
-//
-// Authors
-// Siddhesh Wani
-//
-// -----------------------------------------------------------------
-//Pins of header P1 which can be used as GPIO
-supported_pins = [3,5,7,8,10,11,12,13,15,16,18,19,21,22,23,24,26,27,28,29,...
- 31,31,33,35,36,37,38,40];
-
-PinIsGPIO = members(pin, supported_pins); //Check if input pin supports GPIO
-
-//If given pin does not support GPIO functionality, raise the error
-if(PinIsGPIO == 0)
- error(9999, 'SCI2CERROR: Given pin number doesnot support GPIO functionality.');
-end
-state = 1;
-endfunction
diff --git a/macros/Hardware/RasberryPi/RPI_DigitalOut.sci b/macros/Hardware/RasberryPi/RPI_DigitalOut.sci
deleted file mode 100644
index dde3c93..0000000
--- a/macros/Hardware/RasberryPi/RPI_DigitalOut.sci
+++ /dev/null
@@ -1,44 +0,0 @@
-// 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 RPI_DigitalOut(pin, state)
-// Function to output desired state on digital pins.
-//
-// Calling Sequence
-// RPI_DigitalOut(pin, state)
-//
-// Parameters
-// pin : pin of RPi to be used
-// state : desired state of the pin (0 -> LOW, 1 -> HIGH)
-//
-// Description
-// This fucntion is used for outputting the desired state on gpio pins of RPi. 'RPI_DigitalSetup' function must be called before this for setting up pin as output. 'pin' must be specified from list given. 'state' specifies the output state (0 -> Low, 1-> High)
-// Examples
-// RPI_DigitalOut(RPI_GPIO_P1_03,0) //Changes the state of pin 3 of header P1 as 'Low'.
-//
-// See also
-// RPI_DigitalSetup RPI_DigitalIn
-//
-//
-// Authors
-// Siddhesh Wani
-//
-// -----------------------------------------------------------------
-//Pins of header P1 which can be used as GPIO
-supported_pins = [3,5,7,8,10,11,12,13,15,16,18,19,21,22,23,24,26,27,28,29,...
- 31,31,33,35,36,37,38,40];
-
-PinIsGPIO = members(pin, supported_pins); //Check if output pin supports GPIO
-
-//If given pin does not support GPIO functionality, raise the error
-if(PinIsGPIO == 0)
- error(9999, 'SCI2CERROR: Given pin number doesnot support GPIO functionality.');
-end
-state = 1;
-
-endfunction
diff --git a/macros/Hardware/RasberryPi/RPI_DigitalSetup.sci b/macros/Hardware/RasberryPi/RPI_DigitalSetup.sci
deleted file mode 100644
index 01d6e07..0000000
--- a/macros/Hardware/RasberryPi/RPI_DigitalSetup.sci
+++ /dev/null
@@ -1,36 +0,0 @@
-function RPI_DigitalSetup(pin, direction)
-// Function to setup digital pins.
-//
-// Calling Sequence
-// RPI_DigitalSetup(pin,direction)
-//
-// Parameters
-// pin : pin of RPi to be used
-// direction : direction to be set for pin
-// 0 -> INPUT, 1 -> OUTPUT, 2->PWM Output
-//
-// Description
-// There are few pins available on RPi as Gpio or digital io. These pins can be used as digital output or input. Pin name must be provided from list provided. Please refer '' for complete list of pins. Direction can be 0 or 1 depending upon desired function (Input/output)
-// Examples
-// RPI_DigitalSetup(3,0) //Sets pin 3 of header P1 as input
-//
-// See also
-// RPI_DigitalIn RPI_DigitalOut
-//
-//
-// Authors
-// Siddhesh Wani
-// -----------------------------------------------------------------
-//Pins of header P1 which can be used as GPIO
-supported_pins = [3,5,7,8,10,11,12,13,15,16,18,19,21,22,23,24,26,27,28,29,...
- 31,31,33,35,36,37,38,40];
-
-PinIsGPIO = members(pin, supported_pins); //Check if input pin supports GPIO
-
-//If given pin does not support GPIO functionality, raise the error
-if(PinIsGPIO == 0)
- error(9999, 'SCI2CERROR: Given pin number doesnot support GPIO functionality.');
-end
-state = 1;
-
-endfunction
diff --git a/macros/Hardware/RasberryPi/RPI_GetMicros.sci b/macros/Hardware/RasberryPi/RPI_GetMicros.sci
deleted file mode 100644
index 6c4db57..0000000
--- a/macros/Hardware/RasberryPi/RPI_GetMicros.sci
+++ /dev/null
@@ -1,39 +0,0 @@
-// 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 Micros = RPI_GetMicros()
-// Function to get time in Microsecond since first setup function called.
-//
-// Calling Sequence
-// Micros = RPI_GetMicros()
-//
-// Parameters
-// Micros: time in Microseconds since first setup function called
-//
-// Description
-// This function can be used to get time since first setup function called.
-// Note: To use this function atleast one setup function must be called.
-//
-// Examples
-// start = RPI_GetMicros()
-// RPI_DelayMicro(1000) //This will delay the execution of next code by 100 ms.
-// end = RPI_GetMicros()
-// delay = end- start //This should be approximately 1000 us.
-//
-// See also
-// RPI_GetMillis RPI_DelayMilli RPI_DelayMicro
-//
-//
-// Authors
-// Siddhesh Wani
-//
-
-// This is curretly dummy function. It provides no functionality but is required
-// for providing support for generating C code for RPi.
-Micros = 0;
-endfunction
diff --git a/macros/Hardware/RasberryPi/RPI_GetMillis.sci b/macros/Hardware/RasberryPi/RPI_GetMillis.sci
deleted file mode 100644
index c034a70..0000000
--- a/macros/Hardware/RasberryPi/RPI_GetMillis.sci
+++ /dev/null
@@ -1,39 +0,0 @@
-// 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 Millis = RPI_GetMillis()
-// Function to get time in millisecond since first setup function called.
-//
-// Calling Sequence
-// Millis = RPI_GetMillis()
-//
-// Parameters
-// Millis: time in milliseconds since first setup function called
-//
-// Description
-// This function can be used to get time since first setup function called.
-// Note: To use this function atleast one setup function must be called.
-//
-// Examples
-// start = RPI_GetMillis()
-// RPI_DelayMilli(100) //This will delay the execution of next code by 100 ms.
-// end = RPI_GetMillis()
-// delay = end- start //This should be approximately 100ms.
-//
-// See also
-// RPI_GetMicros RPI_DelayMilli RPI_DelayMicro
-//
-//
-// Authors
-// Siddhesh Wani
-//
-
-// This is curretly dummy function. It provides no functionality but is required
-// for providing support for generating C code for RPi.
-Millis = 0;
-endfunction
diff --git a/macros/Hardware/RasberryPi/RPI_HardPWMSetClock.sci b/macros/Hardware/RasberryPi/RPI_HardPWMSetClock.sci
deleted file mode 100644
index 8448d36..0000000
--- a/macros/Hardware/RasberryPi/RPI_HardPWMSetClock.sci
+++ /dev/null
@@ -1,35 +0,0 @@
-// 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 RPI_HardPWMSetClock(clock_divisor)
-// Function to set PWM clock. PWM clock frequency is 19.2MHz, which can be reduced
-// using suitable clock_divisor (1 to 2048, powers of 2)
-//
-// Calling Sequence
-// RPI_HardPWMSetClock(clock_divisor)
-//
-// Parameters
-// clock_divisor: Value can be from 1 to 2048, powers of 2.
-// Description
-// This function decides pwm clock.
-// PWM frequency = (PWM Clock frequency/Clock divisor/range)
-// PWM clock frequency = 19.2 MHz
-// clock divisor is setup using RPI_HardPWMSetClock
-// range is setup using RPI_HardPWMSetRange
-// Examples
-//
-// See also
-// RPI_HardPWMSetWrite RPI_HardPWMSetRange
-//
-// Authors
-// Siddhesh Wani
-// -----------------------------------------------------------------
-
-// This is curretly dummy function. It provides no functionality but is required
-// for providing support for generating C code for RPi.
-endfunction
diff --git a/macros/Hardware/RasberryPi/RPI_HardPWMSetMode.sci b/macros/Hardware/RasberryPi/RPI_HardPWMSetMode.sci
deleted file mode 100644
index 57b8260..0000000
--- a/macros/Hardware/RasberryPi/RPI_HardPWMSetMode.sci
+++ /dev/null
@@ -1,32 +0,0 @@
-// 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 RPI_HardPWMSetMode(pwm_mode)
-// Function to set PWM mode. Two modes are available - balanced and mark/space
-//
-// Calling Sequence
-// RPI_HardPWMSetMode(pwm_mode)
-//
-// Parameters
-// pwm_mode: decides pwm mode
-// 0 -> balanced
-// 1 -> mark/space
-// Description
-// This function decides pwm mode
-// Examples
-//
-// See also
-// RPI_HardPWMSetWrite RPI_HardPWMSetRange
-//
-// Authors
-// Siddhesh Wani
-// -----------------------------------------------------------------
-
-// This is curretly dummy function. It provides no functionality but is required
-// for providing support for generating C code for RPi.
-endfunction
diff --git a/macros/Hardware/RasberryPi/RPI_HardPWMSetRange.sci b/macros/Hardware/RasberryPi/RPI_HardPWMSetRange.sci
deleted file mode 100644
index c2075e2..0000000
--- a/macros/Hardware/RasberryPi/RPI_HardPWMSetRange.sci
+++ /dev/null
@@ -1,35 +0,0 @@
-// 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 RPI_HardPWMSetRange(range_val)
-// Function to set range value for PWM. Range value along with clock divisor
-// decides pwm frequency. Range value must be less than 1024
-//
-// Calling Sequence
-// RPI_HardPWMSetRange(range_val)
-//
-// Parameters
-// range_val: range for pwm
-// Description
-// This function decides range for pwm.
-// PWM frequency = (PWM Clock frequency/Clock divisor/range)
-// PWM clock frequency = 19.2 MHz
-// clock divisor is setup using RPI_HardPWMSetClock
-// range is setup using RPI_HardPWMSetRange
-// Examples
-//
-// See also
-// RPI_HardPWMSetClock RPI_HardPWMWrite
-//
-// Authors
-// Siddhesh Wani
-// -----------------------------------------------------------------
-
-// This is curretly dummy function. It provides no functionality but is required
-// for providing support for generating C code for RPi.
-endfunction
diff --git a/macros/Hardware/RasberryPi/RPI_HardPWMWrite.sci b/macros/Hardware/RasberryPi/RPI_HardPWMWrite.sci
deleted file mode 100644
index dba5e67..0000000
--- a/macros/Hardware/RasberryPi/RPI_HardPWMWrite.sci
+++ /dev/null
@@ -1,39 +0,0 @@
-// 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 RPI_HardPWMWrite(pin,value)
-// Function to change pwm duty on specified pin. Hardware PWM is available
-// only on pin 12. So, only '12' should be provided as pin
-//
-// Calling Sequence
-// RPI_HardPWMWrite(12,512) //Value must be smaller than the range set
-// using RPI_HARDPWMSetRange
-//
-// Parameters
-// pin: pin no on which pwm value is to be changed. Currently only 12 is allowed
-// value: pwm value for given pin. This must be less than range value set
-// Description
-// This function changes pwm duty on specified pin. As for RPi, only one pin
-// (pin 12) is available for hardware PWM.
-// PWM frequency = (PWM Clock frequency/Clock divisor/range)
-// PWM clock frequency = 19.2 MHz
-// clock divisor is setup using RPI_HardPWMSetClock
-// range is setup using RPI_HardPWMSetRange
-// Actual PWM duty = value/range
-// Examples
-//
-// See also
-// RPI_HardPWMSetClock RPI_HardPWMSetRange
-//
-// Authors
-// Siddhesh Wani
-// -----------------------------------------------------------------
-
-// This is curretly dummy function. It provides no functionality but is required
-// for providing support for generating C code for RPi.
-endfunction
diff --git a/macros/Hardware/RasberryPi/RPI_PinISR.sci b/macros/Hardware/RasberryPi/RPI_PinISR.sci
deleted file mode 100644
index c2354c1..0000000
--- a/macros/Hardware/RasberryPi/RPI_PinISR.sci
+++ /dev/null
@@ -1,56 +0,0 @@
-// 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 RPI_PinISR(pin, edgetype, fn)
-// Function to assign a function to be run when an interrupt occurs on
-// specified pin.
-//
-// Calling Sequence
-// RPI_PinISR(pin, edgetype, fn)
-//
-// Parameters
-// pin : pin whose interrupt is to be configured
-// edgetype: edge on which interrupt is to be monitored
-// 1 -> Falling egde
-// 2 -> Rising egde
-// 3 -> Both egde
-// fn: name of the function to be executed on interrupt occurance
-// Description
-// This functions monitors interrupt on specified pin for specified edge,
-// When that interrupt occurs, function specified by 'fn' is executed.
-// Examples
-// RPI_PinISR(12, 0, Pin12ISR) //executes 'Pin12ISR' on falling edge on
-// pin 12
-// See also
-// RPI_ThreadCreate RPI_DigitalSetup
-//
-//
-// Authors
-// Siddhesh Wani
-// -----------------------------------------------------------------
-
-// This is curretly dummy function. It provides no functionality but is required
-// for providing support for generating C code for RPi.
-
-//Pins of header P1 which can be used as GPIO
-supported_pins = [3,5,7,8,10,11,12,13,15,16,18,19,21,22,23,24,26,27,28,29,...
- 31,31,33,35,36,37,38,40];
-
-PinIsGPIO = members(pin, supported_pins); //Check if input pin supports GPIO
-
-//If given pin does not support GPIO functionality, raise the error
-if(PinIsGPIO == 0)
- error(9999, 'SCI2CERROR: Given pin number doesnot support GPIO functionality.');
-end
-EdgeTypeSupported = members(edgetype,[1 2 3]);
-
-if(EdgeTypeSupported == 0)
- error(9999, 'SCI2CERROR: Given edgetype is incorrect. Please specify correct edgetype from [1,2,3]')
-end
-
-endfunction
diff --git a/macros/Hardware/RasberryPi/RPI_SerialClose.sci b/macros/Hardware/RasberryPi/RPI_SerialClose.sci
deleted file mode 100644
index f27dd43..0000000
--- a/macros/Hardware/RasberryPi/RPI_SerialClose.sci
+++ /dev/null
@@ -1,33 +0,0 @@
-// 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 RPI_SerialClose(fd)
-// Function to close serial port specified by file descriptor.
-//
-// Calling Sequence
-// RPI_SerialClose(fd)
-//
-// Parameters
-// fd : file descriptor for opened port
-// Description
-// This functions closes the specified serial port
-// Examples
-// serial1 = RPI_SerialSetup('/dev/ttyAMA0',9600) //opens port 'USBtty0'
-// RPI_SerialClose(serial1)
-// See also
-// RPI_SerialOpen RPI_SerialSendChar
-//
-//
-// Authors
-// Siddhesh Wani
-// -----------------------------------------------------------------
-
-// This is curretly dummy function. It provides no functionality but is required
-// for providing support for generating C code for RPi.
-
-endfunction
diff --git a/macros/Hardware/RasberryPi/RPI_SerialFlush.sci b/macros/Hardware/RasberryPi/RPI_SerialFlush.sci
deleted file mode 100644
index 9bab386..0000000
--- a/macros/Hardware/RasberryPi/RPI_SerialFlush.sci
+++ /dev/null
@@ -1,34 +0,0 @@
-// 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 data = RPI_SerialGetChar(fd)
-// Function to read data from specified serial port
-//
-// Calling Sequence
-// RPI_SerialGetCharfd)
-//
-// Parameters
-// fd: file descriptor returned when serial port was opened
-// Description
-// This functions reads character form specified port. In case no
-// character is available, -1 is returned after 10 sec.
-// Examples
-// serial = RPI_SetupSerial("/dev/ttyAMA0", 9600);
-// RPI_SerialFlush(serial);
-// bytes = RPI_SerialDataAvail(serial);
-//
-// See also
-// RPI_SetupSerial RPI_SendData
-//
-// Authors
-// Siddhesh Wani
-// -----------------------------------------------------------------
-
-// This is curretly dummy function. It provides no functionality but is required
-// for providing support for generating C code for RPi.
-endfunction
diff --git a/macros/Hardware/RasberryPi/RPI_SerialGetChar.sci b/macros/Hardware/RasberryPi/RPI_SerialGetChar.sci
deleted file mode 100644
index a26e5b9..0000000
--- a/macros/Hardware/RasberryPi/RPI_SerialGetChar.sci
+++ /dev/null
@@ -1,36 +0,0 @@
-// 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 data = RPI_SerialGetChar(fd)
-// Function to read data from specified serial port
-//
-// Calling Sequence
-// RPI_SerialGetChar(fd)
-//
-// Parameters
-// fd: file descriptor returned when serial port was opened
-// Description
-// This functions reads character form specified port. In case no
-// character is available, -1 is returned after 10 sec.
-// Examples
-// serial = RPI_SetupSerial("/dev/ttyAMA0", 9600);
-// bytes = RPI_SerialDataAvail(serial);
-// if(bytes>0)
-// data = RPI_SerialGetChar(serial) //Reads single character
-// end
-// See also
-// RPI_SetupSerial RPI_SendData
-//
-// Authors
-// Siddhesh Wani
-// -----------------------------------------------------------------
-
-// This is curretly dummy function. It provides no functionality but is required
-// for providing support for generating C code for RPi.
-data = 0;
-endfunction
diff --git a/macros/Hardware/RasberryPi/RPI_SerialSendChar.sci b/macros/Hardware/RasberryPi/RPI_SerialSendChar.sci
deleted file mode 100644
index 769b21d..0000000
--- a/macros/Hardware/RasberryPi/RPI_SerialSendChar.sci
+++ /dev/null
@@ -1,37 +0,0 @@
-// 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 RPI_SerialSendChar(fd, data)
-// Function to send 8-bit char through serial port.
-//
-// Calling Sequence
-// RPI_SerialSendChar(fd, data)
-//
-// Parameters
-// fd : file descriptor for opened port
-// data: 8-bit character data to be sent
-// Description
-// This functions sends input 8-bit character data on specified serial port
-// Examples
-// serial1 = RPI_SerialSetup('/dev/ttyAMA0',9600) //opens port 'USBtty0'
-// RPI_SerialSendChar(serial1, 'H');
-// RPI_SerialSendChar(serial1, 'i');
-// RPI_SerialClose(serial1);
-//
-// See also
-// RPI_SerialOpen RPI_SerialClose
-//
-//
-// Authors
-// Siddhesh Wani
-// -----------------------------------------------------------------
-
-// This is curretly dummy function. It provides no functionality but is required
-// for providing support for generating C code for RPi.
-
-endfunction
diff --git a/macros/Hardware/RasberryPi/RPI_SerialSendData.sci b/macros/Hardware/RasberryPi/RPI_SerialSendData.sci
deleted file mode 100644
index c05852b..0000000
--- a/macros/Hardware/RasberryPi/RPI_SerialSendData.sci
+++ /dev/null
@@ -1,38 +0,0 @@
-// 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 RPI_SerialSendData(fd, data)
-// Function to send data through serial port. Data can be of any datatype and
-// can be scalar or matrix
-//
-// Calling Sequence
-// RPI_SerialSendData(fd, data)
-//
-// Parameters
-// fd : file descriptor for opened port
-// data: data to be sent
-// Description
-// This functions sends input data on specified serial port
-// Examples
-// A = [2 3; 4 5]
-// serial1 = RPI_SerialSetup('/dev/ttyAMA0',9600) //opens port 'USBtty0'
-// RPI_SerialSendData(serial1, A);
-// RPI_SerialClose(serial1);
-//
-// See also
-// RPI_SerialOpen RPI_SerialClose
-//
-//
-// Authors
-// Siddhesh Wani
-// -----------------------------------------------------------------
-
-// This is curretly dummy function. It provides no functionality but is required
-// for providing support for generating C code for RPi.
-
-endfunction
diff --git a/macros/Hardware/RasberryPi/RPI_SerialSetup.sci b/macros/Hardware/RasberryPi/RPI_SerialSetup.sci
deleted file mode 100644
index 0f26661..0000000
--- a/macros/Hardware/RasberryPi/RPI_SerialSetup.sci
+++ /dev/null
@@ -1,36 +0,0 @@
-// 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 fd = RPI_SerialSetup(port, baudrate)
-// Function to setup serial port.
-//
-// Calling Sequence
-// RPI_SerialSetup(port, baudrate)
-//
-// Parameters
-// port : port of RPi to be used (eg. )
-// direction : direction to be set for pin (0 -> INPUT, 1 -> OUTPUT)
-// fd : file descriptor for opened port, -1 for error
-// Description
-// This functions opens the specified serial port and returns file descriptor
-// for the same
-// Examples
-// serial1 = RPI_SerialSetup('/dev/ttyAMA0',9600) //opens port 'USBtty0'
-//
-// See also
-// RPI_SerialClose RPI_SerialSendChar
-//
-//
-// Authors
-// Siddhesh Wani
-// -----------------------------------------------------------------
-
-// This is curretly dummy function. It provides no functionality but is required
-// for providing support for generating C code for RPi.
-fd = 0;
-endfunction
diff --git a/macros/Hardware/RasberryPi/RPI_adress.sci b/macros/Hardware/RasberryPi/RPI_adress.sci
new file mode 100755
index 0000000..4c9aa7f
--- /dev/null
+++ b/macros/Hardware/RasberryPi/RPI_adress.sci
@@ -0,0 +1,34 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+global RPI_piAdress;
+function RPI_adress(adress)
+ // Function for non-ssh connection to raspberry pi
+ //
+ // Calling Sequence
+ // RPI_adress(adress)
+ //
+ // Parameters
+ // address : Network address of the raspberry pi. Eg:192.168.137.214
+ //
+ // Description
+ // This program is required for the functioning of the remaining toolbox if the server is manually run by the user.
+ //
+ // Examples
+ // RPI_adress('10.42.0.82')
+ // See also
+ // raspi,raspi_close
+ //
+ // Authors
+ // Jorawar Singh
+
+ global RPI_piAdress;
+ RPI_piAdress=adress;
+endfunction
diff --git a/macros/Hardware/RasberryPi/SPI/RPI_SPIDataRW.sci b/macros/Hardware/RasberryPi/SPI/RPI_SPIDataRW.sci
new file mode 100755
index 0000000..186e68f
--- /dev/null
+++ b/macros/Hardware/RasberryPi/SPI/RPI_SPIDataRW.sci
@@ -0,0 +1,42 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_SPIDataRW(channel,data,len)
+// Function to perform simultaneous read-write on SPI
+//
+// Calling Sequence
+// RPI_SPIDataRW(channel,data,len)
+//
+// Parameters
+// channel: channel number, 0 or 1
+// data : data to write as list of integers
+// len : length of the data
+//
+// Description
+// This performs a simultaneous write/read transaction over the selected SPI bus. Data that was in your buffer is overwritten by data returned from the SPI bus.
+//
+// Examples
+// RPI_SPIDataRW(0,[13,58],2)
+// See also
+// RPI_SPISetup, RPI_SPISetupMode, RPI_SPIGetFd
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="SPD#3#"+string(channel)+"#"+string(data)+"#"+string(len)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/SPI/RPI_SPIGetFd.sci b/macros/Hardware/RasberryPi/SPI/RPI_SPIGetFd.sci
new file mode 100755
index 0000000..43cfc09
--- /dev/null
+++ b/macros/Hardware/RasberryPi/SPI/RPI_SPIGetFd.sci
@@ -0,0 +1,39 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function out=RPI_SPIGetFd(channel)
+//
+// Calling Sequence
+// RPI_SPIGetFd(channel)
+//
+// Parameters
+// channel: channel number, 0 or 1
+//
+// Description
+//
+//
+// Examples
+// RPI_SPIGetFd(1)
+// See also
+// RPI_SPIDataRW, RPI_SPISetup, RPI_SPISetupMode
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="SPG#1#"+string(channel)+"#";
+ if getos()=="Linux" then
+ out=unix_g("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos()=="Windows" then
+ [out,RPI_winR]=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/SPI/RPI_SPISetup.sci b/macros/Hardware/RasberryPi/SPI/RPI_SPISetup.sci
new file mode 100755
index 0000000..5654cf9
--- /dev/null
+++ b/macros/Hardware/RasberryPi/SPI/RPI_SPISetup.sci
@@ -0,0 +1,43 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_SPISetup(channel,speed)
+// Function to initialize SPI
+//
+// Calling Sequence
+// RPI_SPISetup(channel,spped)
+//
+// Parameters
+// channel: channel number, 0 or 1
+// speed : SPI clock speed in Hz
+//
+// Description
+// This function initialises a channel (The Pi has 2 channels; 0 and 1). The speed parameter is an integer in the range 500,000 through 32,000,000 and represents the SPI clock speed in Hz.
+//
+//The returned value is the Linux file-descriptor for the device, or -1 on error.
+//
+// Examples
+// RPI_SPISetup(1,500000)
+// See also
+// RPI_SPIDataRW, RPI_SPISetupMode, RPI_SPIGetFd
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="SPS#2#"+string(channel)+"#"+string(speed)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/SPI/RPI_SPISetupMode.sci b/macros/Hardware/RasberryPi/SPI/RPI_SPISetupMode.sci
new file mode 100755
index 0000000..fec785a
--- /dev/null
+++ b/macros/Hardware/RasberryPi/SPI/RPI_SPISetupMode.sci
@@ -0,0 +1,41 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function out=RPI_SPISetupMode(channel,speed,Mode)
+// Function to initialize SPI
+//
+// Calling Sequence
+// RPI_SPISetupMode(channel,spped,Mode)
+//
+// Parameters
+// channel: channel number, 0 or 1
+// speed : SPI clock speed in Hz
+// Mode : integer, mode to set
+//
+// Description
+//
+// Examples
+// RPI_SPISetupMode(1,500000,2)
+// See also
+// RPI_SPIDataRW, RPI_SPISetup, RPI_SPIGetFd
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="SPM#23#"+string(channel)+"#"+string(speed)+"#"+string(Mode)+"#";
+ if getos()=="Linux" then
+ out=unix_g("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos()=="Windows" then
+ [out,RPI_winR]=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/SPI/buildmacros.sce b/macros/Hardware/RasberryPi/SPI/buildmacros.sce
new file mode 100755
index 0000000..7d533f7
--- /dev/null
+++ b/macros/Hardware/RasberryPi/SPI/buildmacros.sce
@@ -0,0 +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
+
+tbx_build_macros(TOOLBOX_NAME, get_absolute_file_path('buildmacros.sce'));
+
+clear tbx_build_macros;
diff --git a/macros/Hardware/RasberryPi/SPI/names b/macros/Hardware/RasberryPi/SPI/names
new file mode 100755
index 0000000..6f458a7
--- /dev/null
+++ b/macros/Hardware/RasberryPi/SPI/names
@@ -0,0 +1,4 @@
+RPI_SPIDataRW
+RPI_SPIGetFd
+RPI_SPISetup
+RPI_SPISetupMode
diff --git a/macros/Hardware/RasberryPi/Serial/RPI_serialClose.sci b/macros/Hardware/RasberryPi/Serial/RPI_serialClose.sci
new file mode 100755
index 0000000..6f54b65
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Serial/RPI_serialClose.sci
@@ -0,0 +1,40 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function out=RPI_serialClose(fd)
+// Function to close and open serial device
+//
+// Calling Sequence
+// RPI_serialClose(fd)
+//
+// Parameters
+// fd: file-descriptor obtained from RPI_serialOpen function
+//
+// Description
+// This function closes the device identified by the file descriptor given.
+//
+// Examples
+// RPI_serialClose(13)
+// See also
+// RPI_serialOpen, RPI_serialFlush, RPI_serialPutchar, RPI_serialPuts, RPI_serialPrintf, RPI_serialDataAvail, RPI_serialGetchar
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="sCl#1#"+string(fd)+"#";
+ if getos()=="Linux" then
+ out=unix_g("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos()=="Windows" then
+ [out,RPI_winR]=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/Serial/RPI_serialDataAvail.sci b/macros/Hardware/RasberryPi/Serial/RPI_serialDataAvail.sci
new file mode 100755
index 0000000..9421e5b
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Serial/RPI_serialDataAvail.sci
@@ -0,0 +1,40 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function out=RPI_serialDataAvail(fd)
+// Function to get number of readable character from the serial device
+//
+// Calling Sequence
+// RPI_serialDataAvail(fd)
+//
+// Parameters
+// fd: file-descriptor obtained from RPI_serialOpen function
+//
+// Description
+// Returns the number of characters available for reading, or -1 for any error condition, in which case error number will be set appropriately.
+//
+// Examples
+// RPI_serialDataAvail(13)
+// See also
+// RPI_serialOpen, RPI_serialClose, RPI_serialFlush, RPI_serialPutchar, RPI_serialPuts, RPI_serialPrintf, RPI_serialGetchar
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="sDA#1#"+string(fd)+"#";
+ if getos()=="Linux" then
+ out=unix_g("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos()=="Windows" then
+ [out,RPI_winR]=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/Serial/RPI_serialFlush.sci b/macros/Hardware/RasberryPi/Serial/RPI_serialFlush.sci
new file mode 100755
index 0000000..845f70b
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Serial/RPI_serialFlush.sci
@@ -0,0 +1,40 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function out=RPI_serialFlush(fd)
+// Function to discard all data to/from the serial device
+//
+// Calling Sequence
+// RPI_serialFlush(fd)
+//
+// Parameters
+// fd: file-descriptor obtained from RPI_serialOpen function
+//
+// Description
+// This function discards all data received, or waiting to be send down the given device.
+//
+// Examples
+// RPI_serialFlush(13)
+// See also
+// RPI_serialOpen, RPI_serialClose, RPI_serialPutchar, RPI_serialPuts, RPI_serialPrintf, RPI_serialDataAvail, RPI_serialGetchar
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="sFl#1#"+string(fd)+"#";
+ if getos()=="Linux" then
+ out=unix_g("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos()=="Windows" then
+ [out,RPI_winR]=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/Serial/RPI_serialGetchar.sci b/macros/Hardware/RasberryPi/Serial/RPI_serialGetchar.sci
new file mode 100755
index 0000000..327fe35
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Serial/RPI_serialGetchar.sci
@@ -0,0 +1,40 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function out=RPI_serialGetchar(fd)
+// Function to get next character from serial device
+//
+// Calling Sequence
+// RPI_serialGetchar(fd)
+//
+// Parameters
+// fd: file-descriptor obtained from RPI_serialOpen function
+//
+// Description
+// This function returns the next character available on the serial device. This call will block for up to 10 seconds if no data is available (when it will return -1).
+//
+// Examples
+// RPI_serialGetchar(13)
+// See also
+// RPI_serialOpen, RPI_serialClose, RPI_serialFlush, RPI_serialPutchar, RPI_serialPuts, RPI_serialPrintf, RPI_serialDataAvail
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="sGc#1#"+string(fd)+"#";
+ if getos()=="Linux" then
+ out=unix_g("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos()=="Windows" then
+ [out,RPI_winR]=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/Serial/RPI_serialOpen.sci b/macros/Hardware/RasberryPi/Serial/RPI_serialOpen.sci
new file mode 100755
index 0000000..684a6f2
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Serial/RPI_serialOpen.sci
@@ -0,0 +1,41 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function out=RPI_serialOpen(device,baud)
+// Function to initialize a serial device
+//
+// Calling Sequence
+// RPI_serialOpen(device,baud)
+//
+// Parameters
+// device: device to connect to
+// baud : the baud rate for communication
+//
+// Description
+// This function opens and initialises the serial device and sets the baud rate. It sets the port into “raw” mode (character at a time and no translations), and sets the read timeout to 10 seconds. The return value is the file descriptor or -1 for any error, in which case errno will be set as appropriate.
+//
+// Examples
+// RPI_serialOpen("/dev/ttyAMA0", 9600)
+// See also
+// RPI_serialClose, RPI_serialFlush, RPI_serialPutchar, RPI_serialPuts, RPI_serialPrintf, RPI_serialDataAvail, RPI_serialGetchar
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="sOp#2#"+string(device)+"#"+string(baud)+"#";
+ if getos()=="Linux" then
+ out=unix_g("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos()=="Windows" then
+ [out,RPI_winR]=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/Serial/RPI_serialPrintf.sci b/macros/Hardware/RasberryPi/Serial/RPI_serialPrintf.sci
new file mode 100755
index 0000000..668a9ff
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Serial/RPI_serialPrintf.sci
@@ -0,0 +1,41 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function out=RPI_serialPrintf(fd,msg)
+// Function to print to serial device
+//
+// Calling Sequence
+// RPI_serialPrintf(fd,msg)
+//
+// Parameters
+// fd : file-descriptor obtained from RPI_serialOpen function
+// msg: message to print
+//
+// Description
+// This function emulates the system printf function to the serial device.
+//
+// Examples
+// RPI_serialPrintf(13,'White Collar rocks')
+// See also
+// RPI_serialOpen, RPI_serialClose, RPI_serialFlush, RPI_serialPutchar, RPI_serialPuts, RPI_serialDataAvail, RPI_serialGetchar
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="sPf#2#"+string(fd)+"#"+string(msg)+"#";
+ if getos()=="Linux" then
+ out=unix_g("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos()=="Windows" then
+ [out,RPI_winR]=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/Serial/RPI_serialPutchar.sci b/macros/Hardware/RasberryPi/Serial/RPI_serialPutchar.sci
new file mode 100755
index 0000000..ceea556
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Serial/RPI_serialPutchar.sci
@@ -0,0 +1,41 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function out=RPI_serialPutchar(fd,character)
+// Function to send a single byte to the serial device
+//
+// Calling Sequence
+// RPI_serialPutchar(fd,character)
+//
+// Parameters
+// fd : file-descriptor obtained from RPI_serialOpen function
+// character: character to send to the serial device
+//
+// Description
+// This function sends the single byte to the serial device identified by the given file descriptor.
+//
+// Examples
+// RPI_serialPutchar(113,'s')
+// See also
+// RPI_serialOpen, RPI_serialClose, RPI_serialFlush, RPI_serialPuts, RPI_serialPrintf, RPI_serialDataAvail, RPI_serialGetchar
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="sPc#2#"+string(fd)+"#"+string(character)+"#";
+ if getos()=="Linux" then
+ out=unix_g("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos()=="Windows" then
+ [out,RPI_winR]=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/Serial/RPI_serialPuts.sci b/macros/Hardware/RasberryPi/Serial/RPI_serialPuts.sci
new file mode 100755
index 0000000..ecbbe05
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Serial/RPI_serialPuts.sci
@@ -0,0 +1,41 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function out=RPI_serialPuts(fd,s)
+// Function to send a null-terminalted string
+//
+// Calling Sequence
+// RPI_serialPuts(fd,s)
+//
+// Parameters
+// fd: file-descriptor obtained from RPI_serialOpen function
+// s : string to send
+//
+// Description
+// Sends the nul-terminated string to the serial device identified by the given file descriptor.
+//
+// Examples
+// RPI_serialPuts(13,'Believe it, Dattebayo!\0')
+// See also
+// RPI_serialOpen, RPI_serialClose, RPI_serialFlush, RPI_serialPutchar, RPI_serialPrintf, RPI_serialDataAvail, RPI_serialGetchar
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="sPs#2#"+string(fd)+"#"+string(s)+"#";
+ if getos()=="Linux" then
+ out=unix_g("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos()=="Windows" then
+ [out,RPI_winR]=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/Serial/buildmacros.sce b/macros/Hardware/RasberryPi/Serial/buildmacros.sce
new file mode 100755
index 0000000..7d533f7
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Serial/buildmacros.sce
@@ -0,0 +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
+
+tbx_build_macros(TOOLBOX_NAME, get_absolute_file_path('buildmacros.sce'));
+
+clear tbx_build_macros;
diff --git a/macros/Hardware/RasberryPi/Serial/names b/macros/Hardware/RasberryPi/Serial/names
new file mode 100755
index 0000000..a652727
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Serial/names
@@ -0,0 +1,8 @@
+RPI_serialClose
+RPI_serialDataAvail
+RPI_serialFlush
+RPI_serialGetchar
+RPI_serialOpen
+RPI_serialPrintf
+RPI_serialPutchar
+RPI_serialPuts
diff --git a/macros/Hardware/RasberryPi/Setup/RPI_getAlt.sci b/macros/Hardware/RasberryPi/Setup/RPI_getAlt.sci
new file mode 100755
index 0000000..ba3d204
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Setup/RPI_getAlt.sci
@@ -0,0 +1,40 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function out=RPI_getAlt(pin)
+// Function to get the current mode of pin
+//
+// Calling Sequence
+// s=RPI_getAlt(pin)
+//
+// Parameters
+// pin: The pin number to read the voltage from. Numbering sequence to be followed as initiated using RPI_pinNumbering function.
+//
+// Description
+// This function returns the current mode of the pin. Output will be 0 for INPUT, 1 for OUTPUT, 2 for PWM_OUT and 3 for CLOCK.
+//
+// Examples
+// s=RPI_getAlt(0)
+// See also
+// RPI_pinNumbering, RPI_pinModeAlt
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="gAt#1#"+string(pin)+"#";
+ if getos()=="Linux" then
+ out=unix_g("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos()=="Windows" then
+ [out,RPI_winR]=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/Setup/RPI_pinMode.sci b/macros/Hardware/RasberryPi/Setup/RPI_pinMode.sci
new file mode 100755
index 0000000..b6f52e6
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Setup/RPI_pinMode.sci
@@ -0,0 +1,60 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+
+function RPI_pinMode(pin,Mode)
+// Function to set the mode of the given pin.
+//
+// Calling Sequence
+// RPI_pinMode(pin,Mode)
+//
+// Parameters
+// pin : The pin number to act on. Numbering sequence to be followed as initiated using RPI_pinNumbering function.
+// Mode: The mode in which to set the pin.
+//
+// Description
+// This function configures the Raspberry Pi's given pin to work as the given mode (input/output/pwm/clock). Not all functions are available to all the pins.
+//
+// Mode can take the following values-
+// <itemizedlist>
+// <listitem><para>'in' -> sets the pin as input</para></listitem>
+// <listitem><para>'out' -> sets the pin as output</para></listitem>
+// <listitem><para>'pwm' -> sets the pin to PWM output. Only wiringPi pin 1 (BCM_GPIO pin 18) supports this function.</para></listitem>
+// <listitem><para>'clock' -> sets the pin to CLOCK output. Only wiringPi pin 7 (BCM_GPIO pin 4) supports this function.</para></listitem>
+// </itemizedlist>
+//
+// Examples
+// RPI_pinMode(0,'out')
+// See also
+// RPI_pinNumbering
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ if Mode=='in' then
+ commande="pnM#2#"+string(pin)+"#0#";
+ elseif Mode=='out' then
+ commande="pnM#2#"+string(pin)+"#1#";
+ elseif Mode=='pwm' then
+ commande="pnM#2#"+string(pin)+"#2#";
+ elseif Mode=='clock' then
+ commande="pnM#2#"+string(pin)+"#3#";
+ else
+ error("Mode should be one of ""in/out/pwm/clock/soft_pwm/soft_tone/pwm_tone"".");
+ end
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/Setup/RPI_pinModeAlt.sci b/macros/Hardware/RasberryPi/Setup/RPI_pinModeAlt.sci
new file mode 100755
index 0000000..dd0fa10
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Setup/RPI_pinModeAlt.sci
@@ -0,0 +1,55 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_pinModeAlt(pin,ALTMode)
+// Function to set the current mode of pin
+//
+// Calling Sequence
+// RPI_pinModeAlt(pin,ALTMode)
+//
+// Parameters
+// pin : The pin number to read the voltage from. Numbering sequence to be followed as initiated using RPI_pinNumbering function.
+// ALTMode: integer, from 0 to 7
+//
+// Description
+// This function sets the mode of the pin to either of the general GPIO (also set through RPI_pinMode function) or the alternatives available (not accessible through RPI_pinMode function).
+//
+// ALTMode can take the following values:
+// <itemizedlist>
+// <listitem>0 : Input</listitem>
+// <listitem>1 : Output</listitem>
+// <listitem>2 : ALT5</listitem>
+// <listitem>3 : ALT4</listitem>
+// <listitem>4 : ALT0</listitem>
+// <listitem>5 : ALT1</listitem>
+// <listitem>6 : ALT2</listitem>
+// <listitem>7 : ALT3</listitem>
+// </itemizedlist>
+//
+//The list of Alternate functions of all the pins can be found on page 102 of the official documentation: https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2835/BCM2835-ARM-Peripherals.pdf
+//
+// Examples
+// RPI_pinModeAlt(1,2)
+// See also
+// RPI_pinMode, RPI_pinNumbering, RPI_getAlt
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="pMA#2#"+string(pin)+"#"+string(ALTMode)+"#";
+ if getos()=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos()=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/Setup/RPI_pinNumbering.sci b/macros/Hardware/RasberryPi/Setup/RPI_pinNumbering.sci
new file mode 100755
index 0000000..4716de8
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Setup/RPI_pinNumbering.sci
@@ -0,0 +1,54 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function out=RPI_pinNumbering(pinSetup)
+// Function to initialize wiringpi with the number sequence to be followed.
+//
+// Calling Sequence
+// RPI_pinNumbering(pinSetup)
+//
+// Parameters
+// pinSetup: The pin number sequence to follow
+//
+// Description
+// This function must be called at the start of the program or the program will fail to work correctly. It tells the wiringpi which number sequence will be used to work on Raspberry Pi. Returns 0 if no errors encountered. Pin maps for the different pinSetups can be found at the link in bibliography.
+//
+// pinSetup can take the following values:
+// <itemizedlist>
+// <listitem>'wiringpi' -> This initialises wiringPi and assumes that the calling program is going to be using the wiringPi pin numbering scheme. This is a simplified numbering scheme which provides a mapping from virtual pin numbers to the real underlying Broadcom GPIO pin numbers.</listitem>
+// <listitem>'GPIO' -> Same as above, however it allows the calling programs to use the Broadcom GPIO pin numbers directly with no re-mapping.</listitem>
+// <listitem>'phys' -> Identical to above, however it allows the calling programs to use the physical pin numbers on the P1 connector only.</listitem>
+// </itemizedlist>
+//
+// Examples
+// RPI_pinNumbering('wiringpi')
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ if (pinSetup=='wiringpi') then
+ commande="pN0#0#";
+ elseif (pinSetup=='GPIO') then
+ commande="pN1#0#";
+ elseif (pinSetup=='sys') then
+ commande="pN2#0#";
+ elseif (pinSetup=='phys') then
+ commande="pN3#0#";
+ else
+ error("pinSetup should be one of wiringpi/GPIO/sys/phys");
+ end
+ if getos()=="Linux" then
+ out=unix_g("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos()=="Windows" then
+ [out,RPI_winR]=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/Setup/RPI_pullControl.sci b/macros/Hardware/RasberryPi/Setup/RPI_pullControl.sci
new file mode 100755
index 0000000..6354bf5
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Setup/RPI_pullControl.sci
@@ -0,0 +1,60 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_pullControl(pin,RMode)
+// Function to change the internal pull up/down resistor setting for a given pin.
+//
+// Calling Sequence
+// RPI_pullControl(pin,RMode)
+//
+// Parameters
+// pin : The pin number to act on. Numbering sequence to be followed as initiated using RPI_pinNumbering function.
+// RMode: The mode for the internal resistance of the given pin.
+//
+// Description
+// This sets the pull-up or pull-down resistor mode on the given pin, which should be set as an input using the PRI_pinMode function. The internal pull up/down
+// resistors have a value of approximately 50KΩ on the Raspberry Pi.
+//
+// RMode can take values:
+// <itemizedlist>
+// <listitem>'up' -> pull to 3.3v</listitem>
+// <listitem>'down'-> pull to ground</listitem>
+// <listitem>'none'-> no pull up/down</listitem>
+// </itemizedlist>
+//
+// This function has no effect on the Raspberry Pi’s GPIO pins when in sys mode, set using RPI_pinNumbering function. To activate a pull-up/pull-down, use the gpio
+// program in a script before starting the program.
+//
+// Examples
+// RPI_pullControl(0,'down')
+// See also
+// RPI_pinNumbering, RPI_pinMode
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ if RMode=='up' then
+ commande="plC#2#"+string(pin)+"#2#";
+ elseif RMode=='down' then
+ commande="plC#2#"+string(pin)+"#1#";
+ elseif RMode=='none' then
+ commande="plC#2#"+string(pin)+"#0#";
+ else
+ error("mode should be one of up/down/none");
+ end
+ if getos()=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos()=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/Setup/buildmacros.sce b/macros/Hardware/RasberryPi/Setup/buildmacros.sce
new file mode 100755
index 0000000..7d533f7
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Setup/buildmacros.sce
@@ -0,0 +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
+
+tbx_build_macros(TOOLBOX_NAME, get_absolute_file_path('buildmacros.sce'));
+
+clear tbx_build_macros;
diff --git a/macros/Hardware/RasberryPi/Setup/names b/macros/Hardware/RasberryPi/Setup/names
new file mode 100755
index 0000000..3895498
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Setup/names
@@ -0,0 +1,5 @@
+RPI_getAlt
+RPI_pinMode
+RPI_pinModeAlt
+RPI_pinNumbering
+RPI_pullControl
diff --git a/macros/Hardware/RasberryPi/Shift/RPI_shiftIn.sci b/macros/Hardware/RasberryPi/Shift/RPI_shiftIn.sci
new file mode 100755
index 0000000..2bdb89b
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Shift/RPI_shiftIn.sci
@@ -0,0 +1,42 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_shiftIn(dpin,cpin,order)
+// Function to shift 8-bit value appearing on dpin
+//
+// Calling Sequence
+// RPI_shiftIn(dpin,cpin,order)
+//
+// Parameters
+// dpin : datapin
+// cpin : clockpin
+// order: integer, 0 (LSB first) or 1 (MSB first)
+//
+// Description
+// This shifts an 8-bit data value in with the data appearing on the dPin and the clock being sent out on the cPin. Order is either LSBFIRST or MSBFIRST. The data is sampled after the cPin goes high. (So cPin high, sample data, cPin low, repeat for 8 bits) The 8-bit value is returned by the function.
+//
+// Examples
+// RPI_shiftIn(0,2,0)
+// See also
+// RPI_shiftOut
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="shI#3#"+string(dpin)+"#"+string(cpin)+"#"+string(order)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/Shift/RPI_shiftOut.sci b/macros/Hardware/RasberryPi/Shift/RPI_shiftOut.sci
new file mode 100755
index 0000000..c348560
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Shift/RPI_shiftOut.sci
@@ -0,0 +1,43 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_shiftOut(dpin,cpin,order,val)
+// Function to shift out 8-bit data with value=val
+//
+// Calling Sequence
+// RPI_shiftOut(dpin,cpin,order,val)
+//
+// Parameters
+// dpin : datapin
+// cpin : clockpin
+// order: integer, 0 (LSB first) or 1 (MSB first)
+// val : integer, data to send
+//
+// Description
+// The shifts an 8-bit data value val out with the data being sent out on dPin and the clock being sent out on the cPin. order is as above. Data is clocked out on the rising or falling edge – ie. dPin is set, then cPin is taken high then low – repeated for the 8 bits.
+//
+// Examples
+// RPI_shiftOut(1,2,0,123)
+// See also
+// RPI_shiftIn
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="shO#4#"+string(dpin)+"#"+string(cpin)+"#"+string(order)+"#"+string(val)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/Shift/RPI_sr595Setup.sci b/macros/Hardware/RasberryPi/Shift/RPI_sr595Setup.sci
new file mode 100755
index 0000000..fb77f98
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Shift/RPI_sr595Setup.sci
@@ -0,0 +1,44 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_sr595Setup(pinBase,numPins,dataPin,clockPin,latchPin)
+// Function to setup sr5595 shift register chips
+//
+// Calling Sequence
+// RPI_sr595Setup(pinBase,numPins,dataPin,clockPin,latchPin)
+//
+// Parameters
+// pinBase : any number above 64. Consecutive number of numPins will be allocated alongwith.
+// numPins : number of pins, can be 0-32, 8 pins per 74x595
+// dataPin : The Raspberry pin corresponding to the 74x595's data pin. Numbering sequence to be followed as initiated by RPI_pinNumbering function.
+// clockPin: The Raspberry pin corresponding to the 74x595's clock pin. Numbering sequence to be followed as initiated by RPI_pinNumbering function.
+// latchPin: The Raspberry pin corresponding to the 74x595's latch pin. Numbering sequence to be followed as initiated by RPI_pinNumbering function.
+//
+// Description
+// This function sets up the extension module for the 74×595 shift register chips which can be used as general purpose output ports. Each instance can support up to 4 74×595’s daisy-chained together, giving a 32-bit output port using just 3 GPIO wires from the Raspberry Pi (or from any other GPIO expansion port connected to the Pi) One can have as many instances of these enabled in the system, provided there are 3 spare GPIO pins per instance.
+//
+// Examples
+// RPI_sr595Setup(100,10,0,1,2)
+// See also
+// RPI_sn3218Setup, RPI_pcf8574Setup, RPI_pcf8591Setup, RPI_mcp23008Setup, RPI_mcp23016Setup, RPI_mcp23017Setup, RPI_mcp23s08Setup, RPI_mcp23s17Setup, RPI_pinNumbering
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="sr5#5#"+string(pinBase)+"#"+string(numPins)+"#"+string(dataPin)+"#"+string(clockPin)+"#"+string(latchPin)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/Shift/buildmacros.sce b/macros/Hardware/RasberryPi/Shift/buildmacros.sce
new file mode 100755
index 0000000..7d533f7
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Shift/buildmacros.sce
@@ -0,0 +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
+
+tbx_build_macros(TOOLBOX_NAME, get_absolute_file_path('buildmacros.sce'));
+
+clear tbx_build_macros;
diff --git a/macros/Hardware/RasberryPi/Shift/names b/macros/Hardware/RasberryPi/Shift/names
new file mode 100755
index 0000000..3fc17b6
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Shift/names
@@ -0,0 +1,3 @@
+RPI_shiftIn
+RPI_shiftOut
+RPI_sr595Setup
diff --git a/macros/Hardware/RasberryPi/Soft/RPI_softPwmCreate.sci b/macros/Hardware/RasberryPi/Soft/RPI_softPwmCreate.sci
new file mode 100755
index 0000000..b0161c2
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Soft/RPI_softPwmCreate.sci
@@ -0,0 +1,44 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function out=RPI_softPwmCreate(pin,ival,pwmrange)
+// Function to set up software pwm on a given pin
+//
+// Calling Sequence
+// RPI_softPwmCreate(pin,ival,pwmrange)
+//
+// Parameters
+// pin : pin to start software pwm on. Numbering sequence to follow as initiated using RPI_pinNumbering function
+// ival : inital value
+// pwmrange: range for the pwm
+//
+// Description
+// This function creates a software controlled PWM pin. Any GPIO pin can be used. Using 100 for the range, the value can be anything from 0 (off) to 100 (fully on) for the given pin.
+//
+//The return value is 0 for success. Otherwise the global error number variable should be checked to see what went wrong.
+//
+// Examples
+// RPI_softPwmCreate(1,25,250)
+// See also
+// RPI_softPwmStop, RPI_softPwmWrite, RPI_softToneCreate, RPI_softToneStop, RPI_softToneWrite, RPI_pinNumbering, RPI_softServoWrite, RIP_softServoSetup
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="sPC#3#"+string(pin)+"#"+string(ival)+"#"+string(pwmrange)+"#";
+ if getos()=="Linux" then
+ out=unix_g("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos()=="Windows" then
+ [out,RPI_winR]=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/Soft/RPI_softPwmStop.sci b/macros/Hardware/RasberryPi/Soft/RPI_softPwmStop.sci
new file mode 100755
index 0000000..5a911c8
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Soft/RPI_softPwmStop.sci
@@ -0,0 +1,40 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_softPwmStop(pin)
+// Function to stop the software pwm on the pin
+//
+// Calling Sequence
+// RPI_softPwmStop(pin)
+//
+// Parameters
+// pin: pin to stop. Numbering sequence to follow as initiated using RPI_pinNumbering
+//
+// Description
+// This function stops the software pwm on the specified pin.
+//
+// Examples
+// RPI_softPwmStop(1)
+// See also
+// RPI_softPwmWrite, RPI_softToneCreate, RPI_softToneStop, RPI_softToneWrite, RPI_softPwmCreate, RPI_pinNumbering, RPI_softServoWrite, RIP_softServoSetup
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="sPS#1#"+string(pin)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/Soft/RPI_softPwmWrite.sci b/macros/Hardware/RasberryPi/Soft/RPI_softPwmWrite.sci
new file mode 100755
index 0000000..349923f
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Soft/RPI_softPwmWrite.sci
@@ -0,0 +1,41 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_softPwmWrite(pin,value)
+// Function to update the softpwm value on the pin
+//
+// Calling Sequence
+// RPI_softPwmWrite(pin,value)
+//
+// Parameters
+// pin : pin to act on, should be initialised using RPI_softPwmCreate. Numbering sequence follows from_RPI pinNumbering
+// value: value to write
+//
+// Description
+// This updates the PWM value on the given pin. The value is checked to be in-range and pins that haven’t previously been initialised via softPwmCreate will be silently ignored.
+//
+// Examples
+// RPI_softPwmWrite(1,250)
+// See also
+// RPI_softPwmStop, RPI_softToneCreate, RPI_softToneStop, RPI_softToneWrite, RPI_softPwmCreate, RPI_pinNumbering, RPI_softServoWrite, RIP_softServoSetup
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="sPW#2#"+string(pin)+"#"+string(value)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/Soft/RPI_softToneCreate.sci b/macros/Hardware/RasberryPi/Soft/RPI_softToneCreate.sci
new file mode 100755
index 0000000..06adf83
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Soft/RPI_softToneCreate.sci
@@ -0,0 +1,43 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_softToneCreate(pin)
+// Function to create a software controlled tone pin
+//
+// Calling Sequence
+// RPI_softToneCreate(pin)
+//
+// Parameters
+// pin: pin to create software tone on. Numbering sequence to be followed as initiated using RPI_pinNumbering
+//
+// Description
+// This function creates a software controlled tone pin. Any GPIO pin can be used. Using 100 for the range, the value can be anything from 0 (off) to 100 (fully on) for the given pin.
+//
+//The return value is 0 for success. Otherwise the global error number variable should be checked to see what went wrong.
+//
+//
+// Examples
+// RPI_softToneCreate(1)
+// See also
+// RPI_softPwmStop, RPI_softPwmWrite, RPI_softToneStop, RPI_softToneWrite, RPI_softPwmCreate, RPI_pinNumbering, RPI_softServoWrite, RIP_softServoSetup
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="sTC#1#"+string(pin)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/Soft/RPI_softToneStop.sci b/macros/Hardware/RasberryPi/Soft/RPI_softToneStop.sci
new file mode 100755
index 0000000..4ecc420
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Soft/RPI_softToneStop.sci
@@ -0,0 +1,40 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_softToneStop(pin)
+// Function to stop the software tone on the pin
+//
+// Calling Sequence
+// RPI_softToneStop(pin)
+//
+// Parameters
+// pin: soft tone pin to stop. Numbering sequence to follow as initiated using RPI_pinNumbering
+//
+// Description
+// This function stops the software tone on the specified pin.
+//
+// Examples
+// RPI_softToneStop(1)
+// See also
+// RPI_softPwmStop, RPI_softPwmWrite, RPI_softToneCreate, RPI_softToneWrite, RPI_softPwmCreate, RPI_pinNumbering, RPI_softServoWrite, RIP_softServoSetup
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="sTS#1#"+string(pin)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/Soft/RPI_softToneWrite.sci b/macros/Hardware/RasberryPi/Soft/RPI_softToneWrite.sci
new file mode 100755
index 0000000..ba070a8
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Soft/RPI_softToneWrite.sci
@@ -0,0 +1,41 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_softToneWrite(pin,freq)
+// Function to update tone frquency on the soft tone pin
+//
+// Calling Sequence
+// RPI_softToneWrite(pin,freq)
+//
+// Parameters
+// pin : soft tone pin
+// freq: frequency value to write
+//
+// Description
+// This function updates the tone frequency value on the given pin. The tone will be played until you set the frequency to 0.
+//
+// Examples
+// RPI_softToneWrite(1,200)
+// See also
+// RPI_softPwmStop, RPI_softPwmWrite, RPI_softToneCreate, RPI_softToneStop, RPI_softPwmCreate, RPI_softServoWrite, RIP_softServoSetup
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="sTW#2#"+string(pin)+"#"+string(freq)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/Soft/buildmacros.sce b/macros/Hardware/RasberryPi/Soft/buildmacros.sce
new file mode 100755
index 0000000..7d533f7
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Soft/buildmacros.sce
@@ -0,0 +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
+
+tbx_build_macros(TOOLBOX_NAME, get_absolute_file_path('buildmacros.sce'));
+
+clear tbx_build_macros;
diff --git a/macros/Hardware/RasberryPi/Soft/names b/macros/Hardware/RasberryPi/Soft/names
new file mode 100755
index 0000000..da06cbb
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Soft/names
@@ -0,0 +1,6 @@
+RPI_softPwmCreate
+RPI_softPwmStop
+RPI_softPwmWrite
+RPI_softToneCreate
+RPI_softToneStop
+RPI_softToneWrite
diff --git a/macros/Hardware/RasberryPi/Timing/RPI_delay.sci b/macros/Hardware/RasberryPi/Timing/RPI_delay.sci
new file mode 100755
index 0000000..bd868e8
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Timing/RPI_delay.sci
@@ -0,0 +1,40 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_delay(time)
+// Function to introduce delay in milliseconds
+//
+// Calling Sequence
+// RPI_delay(time)
+//
+// Parameters
+// time: Time in milliseconds for which to pause the program execution.
+//
+// Description
+// This causes program execution to pause for at least 'time' milliseconds. Due to the multi-tasking nature of Linux it could be longer. The maximum delay is an unsigned 32-bit integer or approximately 49 days.
+//
+// Examples
+// RPI_delay(1000)
+// See also
+// RPI_delayMicro, RPI_micros, RPI_millis
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="deS#1#"+string(time)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/Timing/RPI_delayMicro.sci b/macros/Hardware/RasberryPi/Timing/RPI_delayMicro.sci
new file mode 100755
index 0000000..a1b5d59
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Timing/RPI_delayMicro.sci
@@ -0,0 +1,40 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_delayMicro(time)
+// Function to introduce delay in microseconds
+//
+// Calling Sequence
+// RPI_delayMicros(time)
+//
+// Parameters
+// time: Time in microseconds for which to pause the program execution.
+//
+// Description
+// This causes program execution to pause for at least 'time' microseconds. Due to the multi-tasking nature of Linux it could be longer. The maximum delay is an unsigned 32-bit integer or approximately 71 minutes.
+//
+// Examples
+// RPI_delayMicro(1000)
+// See also
+// RPI_delay, RPI_micros, RPI_millis
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="deU#1#"+string(time)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/Timing/RPI_micros.sci b/macros/Hardware/RasberryPi/Timing/RPI_micros.sci
new file mode 100755
index 0000000..058a827
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Timing/RPI_micros.sci
@@ -0,0 +1,37 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function out=RPI_micros()
+// Function to display the number of microseconds since the call to RPI_pinNumbering function.
+//
+// Calling Sequence
+// t=RPI_micros()
+//
+// Description
+// This returns the time in milliseconds since the call to RPI_pinNumbering function. It returns an unsigned 32-bit integer which wraps after approximately 71 minutes.
+//
+// Examples
+// t=RPI_micros()
+// See also
+// RPI_millis, RPI_delay, RPI_delayMicro
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="mic#0#";
+ if getos()=="Linux" then
+ out=unix_g("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos()=="Windows" then
+ [out,RPI_winR]=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/Timing/RPI_millis.sci b/macros/Hardware/RasberryPi/Timing/RPI_millis.sci
new file mode 100755
index 0000000..baecddc
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Timing/RPI_millis.sci
@@ -0,0 +1,37 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function out=RPI_millis()
+// Function to display the number of milliseconds since the call to RPI_pinNumbering function.
+//
+// Calling Sequence
+// t=RPI_millis()
+//
+// Description
+// This returns the time in microseconds since the call to RPI_pinNumbering function. It returns an unsigned 32-bit integer which wraps after 49 days.
+//
+// Examples
+// t=RPI_millis()
+// See also
+// RPI_micros, RPI_delay, RPI_delayMicro
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="mil#0#";
+ if getos()=="Linux" then
+ out=unix_g("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos()=="Windows" then
+ [out,RPI_winR]=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/Timing/buildmacros.sce b/macros/Hardware/RasberryPi/Timing/buildmacros.sce
new file mode 100755
index 0000000..7d533f7
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Timing/buildmacros.sce
@@ -0,0 +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
+
+tbx_build_macros(TOOLBOX_NAME, get_absolute_file_path('buildmacros.sce'));
+
+clear tbx_build_macros;
diff --git a/macros/Hardware/RasberryPi/Timing/names b/macros/Hardware/RasberryPi/Timing/names
new file mode 100755
index 0000000..0b47b34
--- /dev/null
+++ b/macros/Hardware/RasberryPi/Timing/names
@@ -0,0 +1,4 @@
+RPI_delay
+RPI_delayMicro
+RPI_micros
+RPI_millis
diff --git a/macros/Hardware/RasberryPi/buildmacros.sce b/macros/Hardware/RasberryPi/buildmacros.sce
index 2954a42..07b564e 100644..100755
--- a/macros/Hardware/RasberryPi/buildmacros.sce
+++ b/macros/Hardware/RasberryPi/buildmacros.sce
@@ -1,4 +1,49 @@
+// 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
-tbx_build_macros(TOOLBOX_NAME, get_absolute_file_path('buildmacros.sce'));
+RPI_Directories = [ "Digital", ...
+ "gertBoard", ...
+ "I2C", ...
+ "Interrupt", ...
+ "lcd", ...
+ "lcd128x64", ...
+ "mcp", ...
+ "Misc", ...
+ "pcf", ...
+ "piGlow", ...
+ "pinMap", ...
+ "pwm", ...
+ "Serial", ...
+ "Setup", ...
+ "Shift", ...
+ "Soft", ...
+ "SPI", ...
+ "Timing"];
+
+RPI_path_buildmacros = get_absolute_file_path("buildmacros.sce");
-clear tbx_build_macros;
+for H=1:size(RPI_Directories,"*")
+ myfile = RPI_path_buildmacros + filesep() + RPI_Directories(H) + filesep() + "buildmacros.sce";
+ if isfile(myfile) then
+ exec(myfile);
+ end
+end
+
+clear RPI_path_buildmacros;
+
+function buildmacros()
+ macros_path = get_absolute_file_path("buildmacros.sce");
+ tbx_build_macros(TOOLBOX_NAME, macros_path);
+ clear tbx_build_macros;
+endfunction
+
+buildmacros();
+clear buildmacros;
diff --git a/macros/Hardware/RasberryPi/cleanmacros.sce b/macros/Hardware/RasberryPi/cleanmacros.sce
new file mode 100755
index 0000000..a6428b2
--- /dev/null
+++ b/macros/Hardware/RasberryPi/cleanmacros.sce
@@ -0,0 +1,20 @@
+// ====================================================================
+// This file is released under the 3-clause BSD license. See COPYING-BSD.
+// ====================================================================
+function cleanmacros()
+
+ libpath = get_absolute_file_path("cleanmacros.sce");
+
+ binfiles = ls(libpath+"/*.bin");
+ for i = 1:size(binfiles,"*")
+ mdelete(binfiles(i));
+ end
+
+ mdelete(libpath+"/names");
+ mdelete(libpath+"/lib");
+endfunction
+
+cleanmacros();
+clear cleanmacros; // remove cleanmacros on stack
+
+// ====================================================================
diff --git a/macros/Hardware/RasberryPi/gertBoard/RPI_analogRead.sci b/macros/Hardware/RasberryPi/gertBoard/RPI_analogRead.sci
new file mode 100755
index 0000000..41bf877
--- /dev/null
+++ b/macros/Hardware/RasberryPi/gertBoard/RPI_analogRead.sci
@@ -0,0 +1,40 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function out=RPI_analogRead(pin)
+// Function to read the analog voltage at the given pin
+//
+// Calling Sequence
+// v=RPI_analogRead(pin)
+//
+// Parameters
+// pin: The pin number to read the voltage from. Numbering sequence to be followed as initiated using RPI_pinNumbering function.
+//
+// Description
+// This function returns the value read on the supplied analog input pin. Additional analog modules need to be registered to enable this function for devices such as the Gertboard, quick2Wire analog board, etc.
+//
+// Examples
+// v=RPI_analogRead(0)
+// See also
+// RPI_analogWrite, RPI_digitalRead, RPI_digitalWrite, RPI_pinNumbering, RPI_pinMode
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="anR#1#"+string(pin)+"#";
+ if getos()=="Linux" then
+ out=unix_g("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos()=="Windows" then
+ [out,RPI_winR]=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/gertBoard/RPI_analogWrite.sci b/macros/Hardware/RasberryPi/gertBoard/RPI_analogWrite.sci
new file mode 100755
index 0000000..f7089f5
--- /dev/null
+++ b/macros/Hardware/RasberryPi/gertBoard/RPI_analogWrite.sci
@@ -0,0 +1,41 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_analogWrite(pin,Volt)
+// Function to set analog voltage at given analog pin.
+//
+// Calling Sequence
+// RPI_analogWrite(pin,Volt)
+//
+// Parameters
+// pin : The pin number to set the voltage at. Numbering sequence to be followed as initiated using RPI_pinNumbering function.
+// Volt: The analog voltage value to set at the pin.
+//
+// Description
+// This writes the given value to the supplied analog pin. Additional analog modules need to be registered to enable this function for devices such as the Gertboard.
+//
+// Examples
+// RPI_analogWrite(0,100)
+// See also
+// RPI_analogRead, RPI_digitalRead, RPI_digitalWrite, RPI_pinNumbering, RPI_pinMode
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="anW#2#"+string(pin)+"#"+string(Volt)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/gertBoard/RPI_gertboardAnalogRead.sci b/macros/Hardware/RasberryPi/gertBoard/RPI_gertboardAnalogRead.sci
new file mode 100755
index 0000000..ce7e870
--- /dev/null
+++ b/macros/Hardware/RasberryPi/gertBoard/RPI_gertboardAnalogRead.sci
@@ -0,0 +1,42 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function out=RPI_gertboardAnalogRead(pin)
+// Function to read voltage from gertboard
+//
+// Calling Sequence
+// RPI_gertboardAnalogRead(pin)
+//
+// Parameters
+// pin:the pin to read the voltage from. Numbering follows the pinBase from RPI_gertboardSetup function.
+//
+// Description
+// After initialinzing the pinBase using the RPI_gertboeardSetup function, reading channel pinBase + 0 reads the first analog input channel (pin DA0 on the Gertboard). Returns a value from 0 to 1023 representing the value on the supplied pin.
+//
+// Examples
+// RPI_gertboardAnalogRead(101)
+// See also
+// RPI_gertboardAnalogSetup, RPI_gertboardAnalogWrite, RPI_gertboardSPISetup
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+// http://pi4j.com/apidocs/com/pi4j/wiringpi/Gertboard.html
+
+ commande="gAR#1#"+string(pin)+"#";
+ if getos()=="Linux" then
+ out=unix_g("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos()=="Windows" then
+ [out,RPI_winR]=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
+
diff --git a/macros/Hardware/RasberryPi/gertBoard/RPI_gertboardAnalogSetup.sci b/macros/Hardware/RasberryPi/gertBoard/RPI_gertboardAnalogSetup.sci
new file mode 100755
index 0000000..a834811
--- /dev/null
+++ b/macros/Hardware/RasberryPi/gertBoard/RPI_gertboardAnalogSetup.sci
@@ -0,0 +1,41 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function out=RPI_gertboardAnalogSetup(pinBase)
+// Function to setup the gertboard
+//
+// Calling Sequence
+// RPI_getboardAnalogSetup(pinBase)
+//
+// Parameters
+// pinBase:the base pin that the analog ports will appear as
+//
+// Description
+// This function calls a setup routine that allocates 2 pins and overlays the analog to digital input pins with the digital to analog output pins. pinBase is the base pin that you want the analog ports to appear as. So reading channel pinBase + 0 reads the first analog input channel (pin DA0 on the Gertboard), and writing pinBase + 0 outputs to the first analog output channel. (Pin AD0)
+//
+// Examples
+// RPI_getboardAnalogSetup(100)
+// See also
+// RPI_gertboardAnalogRead, RPI_gertboardAnalogWrite, RPI_gertboardSPISetup
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+// http://pi4j.com/apidocs/com/pi4j/wiringpi/Gertboard.html
+
+ commande="gAS#1#"+string(pinBase)+"#";
+ if getos()=="Linux" then
+ out=unix_g("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos()=="Windows" then
+ [out,RPI_winR]=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/gertBoard/RPI_gertboardAnalogWrite.sci b/macros/Hardware/RasberryPi/gertBoard/RPI_gertboardAnalogWrite.sci
new file mode 100755
index 0000000..3f8f9dd
--- /dev/null
+++ b/macros/Hardware/RasberryPi/gertBoard/RPI_gertboardAnalogWrite.sci
@@ -0,0 +1,42 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_gertboardAnalogWrite(pin,value)
+// Function to write voltage value to pins on gertboard
+//
+// Calling Sequence
+// RPI_gertboardAnalogWrite(pin,value)
+//
+// Parameters
+// pin : the pin to read the voltage from. Numbering follows the pinBase from RPI_gertboardSetup function.
+// value: voltage value to write
+//
+// Description
+// After initialinzing the pinBase using the RPI_gertboeardSetup function, writing pinBase + 0 outputs to the first analog output channel. (Pin AD0).
+//
+// Examples
+// RPI_gertboardAnalogWrite(100,100)
+// See also
+// RPI_gertboardAnalogSetup, RPI_gertboardAnalogRead, RPI_gertboardSPISetup
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+// http://pi4j.com/apidocs/com/pi4j/wiringpi/Gertboard.html
+
+ commande="gAW#2#"+string(pin)+"#"+string(value)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/gertBoard/RPI_gertboardSPISetup.sci b/macros/Hardware/RasberryPi/gertBoard/RPI_gertboardSPISetup.sci
new file mode 100755
index 0000000..d4117b0
--- /dev/null
+++ b/macros/Hardware/RasberryPi/gertBoard/RPI_gertboardSPISetup.sci
@@ -0,0 +1,39 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_gertboardSPISetup()
+// Function to initialize SPI bus communication with gertboard
+//
+// Calling Sequence
+// RPI_gertboardSPIsetup()
+//
+// Description
+// This function must be called to initialize the SPI bus to communicate with the Gertboards ADC and DAC chips.
+//
+// Examples
+// RPI_gertboardSPISetup()
+// See also
+// RPI_gertboardAnalogSetup, RPI_gertboardAnalogRead, RPI_gertboardAnalogWrite
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+// http://pi4j.com/apidocs/com/pi4j/wiringpi/Gertboard.html
+
+ commande="gSS#0#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
+
diff --git a/macros/Hardware/RasberryPi/gertBoard/buildmacros.sce b/macros/Hardware/RasberryPi/gertBoard/buildmacros.sce
new file mode 100755
index 0000000..7d533f7
--- /dev/null
+++ b/macros/Hardware/RasberryPi/gertBoard/buildmacros.sce
@@ -0,0 +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
+
+tbx_build_macros(TOOLBOX_NAME, get_absolute_file_path('buildmacros.sce'));
+
+clear tbx_build_macros;
diff --git a/macros/Hardware/RasberryPi/gertBoard/names b/macros/Hardware/RasberryPi/gertBoard/names
new file mode 100755
index 0000000..27a469a
--- /dev/null
+++ b/macros/Hardware/RasberryPi/gertBoard/names
@@ -0,0 +1,6 @@
+RPI_analogRead
+RPI_analogWrite
+RPI_gertboardAnalogRead
+RPI_gertboardAnalogSetup
+RPI_gertboardAnalogWrite
+RPI_gertboardSPISetup
diff --git a/macros/Hardware/RasberryPi/lcd/RPI_lcdCharDef.sci b/macros/Hardware/RasberryPi/lcd/RPI_lcdCharDef.sci
new file mode 100755
index 0000000..905cca8
--- /dev/null
+++ b/macros/Hardware/RasberryPi/lcd/RPI_lcdCharDef.sci
@@ -0,0 +1,44 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_lcdCharDef(fd,index,d0,d1,d2,d3,d4,d5,d6,d7)
+// Function to redefine a user-definable character
+//
+// Calling Sequence
+// RPI_lcdCharDef(fd,index,data)
+//
+// Parameters
+// fd : file-descriptor obtained using RPI_lcdInit function
+// index: which character to redefine (0 to 7)
+// d0-d7: integers from 0 to 255 erpresenting the elements of the array to form the character
+//
+// Description
+// This function re-define one of the 8 user-definable characters in the display.
+//
+// The data array is 8 bytes which represent the character from the top-line to the bottom line. Note that the characters are actually 5×8, so only the lower 5 bits are used.
+//
+// Examples
+// RPI_lcdCharDef(13,0,0,0,0,31,31,31,31,0)
+// See also
+// RPI_lcdCursorBlink, RPI_lcdClear, RPI_lcdCursor, RPI_lcdDisplay, RPI_lcdHome, RPI_lcdInit, RPI_lcdPutchar, RPI_lcdPosition, RPI_lcdPrintf, RPI_lcdPuts, RPI_lcdSendCommand
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="lCD#10#"+string(fd)+"#"+string(index)+"#"+string(d0)+"#"+string(d1)+"#"+string(d2)+"#"+string(d3)+"#"+string(d4)+"#"+string(d5)+"#"+string(d6)+"#"+string(d7)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/lcd/RPI_lcdClear.sci b/macros/Hardware/RasberryPi/lcd/RPI_lcdClear.sci
new file mode 100755
index 0000000..6da7212
--- /dev/null
+++ b/macros/Hardware/RasberryPi/lcd/RPI_lcdClear.sci
@@ -0,0 +1,40 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_lcdClear(fd)
+// Function to clear the lcd screen
+//
+// Calling Sequence
+// RPI_lcdClear(fd)
+//
+// Parameters
+// fd: file-descriptor obtained using RPI_lcdInit function
+//
+// Description
+// This function clears the lcd screen.
+//
+// Examples
+// RPI_lcdClear(13)
+// See also
+// RPI_lcdCursorBlink, RPI_lcdCharDef, RPI_lcdCursor, RPI_lcdDisplay, RPI_lcdHome, RPI_lcdInit, RPI_lcdPutchar, RPI_lcdPosition, RPI_lcdPrintf, RPI_lcdPuts, RPI_lcdSendCommand
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="lCl#1#"+string(fd)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/lcd/RPI_lcdCursor.sci b/macros/Hardware/RasberryPi/lcd/RPI_lcdCursor.sci
new file mode 100755
index 0000000..98c5471
--- /dev/null
+++ b/macros/Hardware/RasberryPi/lcd/RPI_lcdCursor.sci
@@ -0,0 +1,41 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_lcdCursor(fd,state)
+// Function to turn cursor on/off
+//
+// Calling Sequence
+// RPI_lcdCursor(fd,state)
+//
+// Parameters
+// fd : file-descriptor obtained using RPI_lcdInit function
+// state: 0 (for off) or 1 (for on)
+//
+// Description
+// This function sets the visibility of cursor.
+//
+// Examples
+// RPI_lcdCursor(13,1)
+// See also
+// RPI_lcdCursorBlink, RPI_lcdCharDef, RPI_lcdClear, RPI_lcdDisplay, RPI_lcdHome, RPI_lcdInit, RPI_lcdPutchar, RPI_lcdPosition, RPI_lcdPrintf, RPI_lcdPuts, RPI_lcdSendCommand
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="lCu#2#"+string(fd)+"#"+string(state)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/lcd/RPI_lcdCursorBlink.sci b/macros/Hardware/RasberryPi/lcd/RPI_lcdCursorBlink.sci
new file mode 100755
index 0000000..b16ebc5
--- /dev/null
+++ b/macros/Hardware/RasberryPi/lcd/RPI_lcdCursorBlink.sci
@@ -0,0 +1,41 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_lcdCursorBlink(fd,state)
+// Function to turn cursor blinking on/off
+//
+// Calling Sequence
+// RPI_lcdCursorBlink(fd,state)
+//
+// Parameters
+// fd : file-descriptor obtained using RPI_lcdInit function
+// state: 0 (for off) or 1 (for on)
+//
+// Description
+// This function sets the blinking of cursor.
+//
+// Examples
+// RPI_lcdCursorBlink(13,1)
+// See also
+// RPI_lcdCharDef, RPI_lcdClear, RPI_lcdCursor, RPI_lcdDisplay, RPI_lcdHome, RPI_lcdInit, RPI_lcdPutchar, RPI_lcdPosition, RPI_lcdPrintf, RPI_lcdPuts, RPI_lcdSendCommand
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="lCB#2#"+string(fd)+"#"+string(state)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/lcd/RPI_lcdDisplay.sci b/macros/Hardware/RasberryPi/lcd/RPI_lcdDisplay.sci
new file mode 100755
index 0000000..de50af6
--- /dev/null
+++ b/macros/Hardware/RasberryPi/lcd/RPI_lcdDisplay.sci
@@ -0,0 +1,41 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_lcdDisplay(fd,state)
+// Function to turn display on/off
+//
+// Calling Sequence
+// RPI_lcdDisplay(fd,state)
+//
+// Parameters
+// fd : file-descriptor obtained using RPI_lcdInit function
+// state: 0 (for off) or 1 (for on)
+//
+// Description
+// This function turns the display 'on' or 'off'.
+//
+// Examples
+// RPI_lcdDisplay(13,1)
+// See also
+// RPI_lcdCursorBlink, RPI_lcdCharDef, RPI_lcdClear, RPI_lcdCursor, RPI_lcdHome, RPI_lcdInit, RPI_lcdPutchar, RPI_lcdPosition, RPI_lcdPrintf, RPI_lcdPuts, RPI_lcdSendCommand
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="lDs#2#"+string(fd)+"#"+string(state)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/lcd/RPI_lcdHome.sci b/macros/Hardware/RasberryPi/lcd/RPI_lcdHome.sci
new file mode 100755
index 0000000..0c4507f
--- /dev/null
+++ b/macros/Hardware/RasberryPi/lcd/RPI_lcdHome.sci
@@ -0,0 +1,40 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_lcdHome(fd)
+// Function to send cursor back to the starting point (home)
+//
+// Calling Sequence
+// RPI_lcdHome(fd)
+//
+// Parameters
+// fd: file-descriptor obtained using RPI_lcdInit function
+//
+// Description
+// This function sends the cursor to the top left (row=0,col=0) position on the lcd screen.
+//
+// Examples
+// RPI_lcdHome(13)
+// See also
+// RPI_lcdCursorBlink, RPI_lcdCharDef, RPI_lcdClear, RPI_lcdCursor, RPI_lcdDisplay, RPI_lcdInit, RPI_lcdPutchar, RPI_lcdPosition, RPI_lcdPrintf, RPI_lcdPuts, RPI_lcdSendCommand
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="lHo#1#"+string(fd)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/lcd/RPI_lcdInit.sci b/macros/Hardware/RasberryPi/lcd/RPI_lcdInit.sci
new file mode 100755
index 0000000..c5ddb1e
--- /dev/null
+++ b/macros/Hardware/RasberryPi/lcd/RPI_lcdInit.sci
@@ -0,0 +1,54 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function out=RPI_lcdInit(rows,cols,bits,rs,strb,d0,d1,d2,d3,d4,d5,d6,d7)
+// Function to initialize lcd
+//
+// Calling Sequence
+// RPI_lcdInit(rows,cols,bits,rs,strb,d0,d1,d2,d3,d4,d5,d6,d7)
+//
+// Parameters
+// rows: numer of rows in lcd
+// cols: numer of colums in lcd
+// bits: number of bits wide on the interface (4 or 8)
+// rs : pin number of display RS
+// strb: pin number of strobe (E)
+// d0 : pin number of data pin 1
+// d1 : pin number of data pin 2
+// d2 : pin number of data pin 3
+// d3 : pin number of data pin 4
+// d4 : pin number of data pin 5
+// d5 : pin number of data pin 6
+// d6 : pin number of data pin 7
+// d7 : pin number of data pin 8
+//
+// Description
+// This function initalizes an lcd display attaced to the Raspberry pi. The return value is the file-descriptor to be used for all subsequent calls to the lcd library when dealing with that LCD, or -1 to indicate a fault. (Usually incorrect parameters)
+//
+// The numberin sequence to be followed as initiated using RPI_pinNumbering
+//
+// Examples
+// fd=RPI_lcdInit (2,16,8,11,10,0,1,2,3,4,5,6,7) ;
+// See also
+// RPI_lcdCursorBlink, RPI_lcdCharDef, RPI_lcdClear, RPI_lcdCursor, RPI_lcdDisplay, RPI_lcdHome, RPI_lcdPutchar, RPI_lcdPosition, RPI_lcdPrintf, RPI_lcdPuts, RPI_lcdSendCommand, RPI_pinNumbering
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="lIn#13#"+string(rows)+"#"+string(cols)+"#"+string(bits)+"#"+string(rs)+"#"+string(strb)+"#"+string(d0)+"#"+string(d1)+"#"+string(d2)+"#"+string(d3)+"#"+string(d4)+"#"+string(d5)+"#"+string(d6)+"#"+string(d7)+"#";
+ if getos()=="Linux" then
+ out=unix_g("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos()=="Windows" then
+ [out,RPI_winR]=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/lcd/RPI_lcdPosition.sci b/macros/Hardware/RasberryPi/lcd/RPI_lcdPosition.sci
new file mode 100755
index 0000000..0f97832
--- /dev/null
+++ b/macros/Hardware/RasberryPi/lcd/RPI_lcdPosition.sci
@@ -0,0 +1,42 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_lcdPosition(fd,col,row)
+// Function to move the cursor
+//
+// Calling Sequence
+// RPI_lcdPosition(fd,col,row)
+//
+// Parameters
+// fd : file-descriptor obtained using RPI_lcdInit function
+// col: column number to go to
+// row: row number to go to
+//
+// Description
+// This function set the position of the cursor for subsequent text entry. col=0 is the left-most edge any row=0 is the top line.
+//
+// Examples
+// RPI_lcdPosition(13,0,1)
+// See also
+// RPI_lcdCursorBlink, RPI_lcdCharDef, RPI_lcdClear, RPI_lcdCursor, RPI_lcdDisplay, RPI_lcdHome, RPI_lcdInit, RPI_lcdPutchar, RPI_lcdPrintf, RPI_lcdPuts, RPI_lcdSendCommand
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="lPo#3#"+string(fd)+"#"+string(col)+"#"+string(row)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/lcd/RPI_lcdPrintf.sci b/macros/Hardware/RasberryPi/lcd/RPI_lcdPrintf.sci
new file mode 100755
index 0000000..833bf44
--- /dev/null
+++ b/macros/Hardware/RasberryPi/lcd/RPI_lcdPrintf.sci
@@ -0,0 +1,41 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_lcdPrintf(fd,String)
+// Function to print on the lcd screen
+//
+// Calling Sequence
+// RPI_lcdPrintf(fd,String)
+//
+// Parameters
+// fd : file-descriptor obtained using RPI_lcdInit function
+// String: string to print on the screen
+//
+// Description
+// This function outputs a single ASCII character, a string or a formatted string using the usual printf formatting commands.
+//
+// Examples
+// RPI_lcdPrintf(13,'We live in the shadows to serve the light.')
+// See also
+// RPI_lcdCursorBlink, RPI_lcdCharDef, RPI_lcdClear, RPI_lcdCursor, RPI_lcdDisplay, RPI_lcdHome, RPI_lcdInit, RPI_lcdPutchar, RPI_lcdPosition, RPI_lcdPuts, RPI_lcdSendCommand
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="lPf#2#"+string(fd)+"#"+String+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/lcd/RPI_lcdPutchar.sci b/macros/Hardware/RasberryPi/lcd/RPI_lcdPutchar.sci
new file mode 100755
index 0000000..337691d
--- /dev/null
+++ b/macros/Hardware/RasberryPi/lcd/RPI_lcdPutchar.sci
@@ -0,0 +1,41 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_lcdPutchar(fd,character)
+// Function to print on the lcd screen
+//
+// Calling Sequence
+// RPI_lcdPutchar(fd,charcter)
+//
+// Parameters
+// fd : file-descriptor obtained using RPI_lcdInit function
+// charcter: integer, 0 to 255, character to print
+//
+// Description
+// This function outputs a single ASCII character, a string or a formatted string using the usual printf formatting commands.
+//
+// Examples
+// RPI_lcdPutchar(13,200)
+// See also
+// RPI_lcdCursorBlink, RPI_lcdCharDef, RPI_lcdClear, RPI_lcdCursor, RPI_lcdDisplay, RPI_lcdHome, RPI_lcdInit, RPI_lcdPosition, RPI_lcdPrintf, RPI_lcdPuts, RPI_lcdSendCommand
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="lPc#2#"+string(fd)+"#"+string(character)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/lcd/RPI_lcdPuts.sci b/macros/Hardware/RasberryPi/lcd/RPI_lcdPuts.sci
new file mode 100755
index 0000000..8584309
--- /dev/null
+++ b/macros/Hardware/RasberryPi/lcd/RPI_lcdPuts.sci
@@ -0,0 +1,42 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_lcdPuts(fd,character)
+// Function to print on the lcd screen
+//
+// Calling Sequence
+// RPI_lcdPuts(fd,character)
+//
+// Parameters
+// fd : file-descriptor obtained using RPI_lcdInit function
+// character: character to print
+//
+// Description
+// This function outputs a single ASCII character, a string or a formatted string using the usual printf formatting commands.
+//
+// Examples
+// RPI_lcdPuts(13,'K')
+// See also
+// RPI_lcdCursorBlink, RPI_lcdCharDef, RPI_lcdClear, RPI_lcdCursor, RPI_lcdDisplay, RPI_lcdHome, RPI_lcdInit, RPI_lcdPutchar, RPI_lcdPosition, RPI_lcdPrintf, RPI_lcdSendCommand
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="lPu#2#"+string(fd)+"#"+string(character)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
+
diff --git a/macros/Hardware/RasberryPi/lcd/RPI_lcdSendCommand.sci b/macros/Hardware/RasberryPi/lcd/RPI_lcdSendCommand.sci
new file mode 100755
index 0000000..db677be
--- /dev/null
+++ b/macros/Hardware/RasberryPi/lcd/RPI_lcdSendCommand.sci
@@ -0,0 +1,41 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_lcdSendCommand(fd,command)
+// Function to send command to lcd
+//
+// Calling Sequence
+// RPI_lcdSendCommand(fd,command)
+//
+// Parameters
+// fd : file-descriptor obtained using RPI_lcdInit function
+// command: A command, binary, to submit to the LCD.
+//
+// Description
+// This function sends any arbitrary command to the LCD.
+//
+// Examples
+// RPI_lcdSendCommand(13,00)
+// See also
+// RPI_lcdCursorBlink, RPI_lcdCharDef, RPI_lcdClear, RPI_lcdCursor, RPI_lcdDisplay, RPI_lcdHome, RPI_lcdInit, RPI_lcdPutchar, RPI_lcdPosition, RPI_lcdPrintf, RPI_lcdPuts
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="lSC#2#"+string(fd)+"#"+string(command)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/lcd/buildmacros.sce b/macros/Hardware/RasberryPi/lcd/buildmacros.sce
new file mode 100755
index 0000000..7d533f7
--- /dev/null
+++ b/macros/Hardware/RasberryPi/lcd/buildmacros.sce
@@ -0,0 +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
+
+tbx_build_macros(TOOLBOX_NAME, get_absolute_file_path('buildmacros.sce'));
+
+clear tbx_build_macros;
diff --git a/macros/Hardware/RasberryPi/lcd/names b/macros/Hardware/RasberryPi/lcd/names
new file mode 100755
index 0000000..8f87ff8
--- /dev/null
+++ b/macros/Hardware/RasberryPi/lcd/names
@@ -0,0 +1,12 @@
+RPI_lcdCharDef
+RPI_lcdClear
+RPI_lcdCursor
+RPI_lcdCursorBlink
+RPI_lcdDisplay
+RPI_lcdHome
+RPI_lcdInit
+RPI_lcdPosition
+RPI_lcdPrintf
+RPI_lcdPutchar
+RPI_lcdPuts
+RPI_lcdSendCommand
diff --git a/macros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64Orientation.sci b/macros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64Orientation.sci
new file mode 100755
index 0000000..5bfe4dc
--- /dev/null
+++ b/macros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64Orientation.sci
@@ -0,0 +1,48 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_lcd128x64Orientation(mode)
+// Function to set lcd orientation.
+//
+// Calling Sequence
+// RPI_lcd128x64Orientation(mode)
+//
+// Parameters
+// mode: Orientation Mode, integer from 0 to 3
+//
+// Description
+// This function sets the orientation of the lcd display.
+//
+// mode can take values:
+// <itemizedlist>
+// <listitem>0 :Portrait</listitem>
+// <listitem>1 :Landscape</listitem>
+// <listitem>2 :Portrait, flipped</listitem>
+// <listitem>3 :Landscape, flipped</listitem>
+// </itemizedlist>
+//
+// Examples
+// RPI_lcd128x64Orientation(1)
+// See also
+// RPI_lcd128x64setup, RPI_lcd128x64update, RPI_lcd128x64setOrigin, RPI_lcd128x64orientCoord, RPI_lcd128x64ScreenSize, RPI_lcd128x64point, RPI_lcd128x64line, RPI_lcd128x64lineTo, RPI_lcd128x64rectangle, RPI_lcd128x64circle, RPI_lcd128x64ellipse, RPI_lcd128x64putchar, RPI_lcd128x64puts, RPI_lcd128x64clear, RPI_lcdCursorBlink, RPI_lcdCharDef, RPI_lcdClear, RPI_lcdCursor, RPI_lcdDisplay, RPI_lcdInit, RPI_lcdPutchar, RPI_lcdPosition, RPI_lcdPrintf, RPI_lcdPuts, RPI_lcdSendCommand
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="LOn#1#"+string(mode)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64circle.sci b/macros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64circle.sci
new file mode 100755
index 0000000..96358a3
--- /dev/null
+++ b/macros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64circle.sci
@@ -0,0 +1,44 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_lcd128x64circle(x,y,r,color,fill)
+// Function to draw a circle
+//
+// Calling Sequence
+// RPI_lcd128x64circle(x,y,r,color,fill)
+//
+// Parameters
+// x : integer, x coordinate of centre
+// y : integer, y coordinate of centre
+// r : integer, radius of the circle
+// color: integer, color of the rectangle
+// fill : 0 (for empty) or 1 (for filled)
+//
+// Description
+// This function draws a circle of radius r with x,y as centre, specified color and fill.
+//
+// Examples
+// RPI_lcd128x64circle(3,3,2,0,0)
+// See also
+// RPI_lcd128x64setup, RPI_lcd128x64update, RPI_lcd128x64setOrigin, RPI_lcd128x64Orientation, RPI_lcd128x64orientCoord, RPI_lcd128x64ScreenSize, RPI_lcd128x64point, RPI_lcd128x64line, RPI_lcd128x64lineTo, RPI_lcd128x64rectangle, RPI_lcd128x64circle, RPI_lcd128x64ellipse, RPI_lcd128x64putchar, RPI_lcd128x64puts, RPI_lcd128x64clear, RPI_lcdCursorBlink, RPI_lcdCharDef, RPI_lcdClear, RPI_lcdCursor, RPI_lcdDisplay, RPI_lcdInit, RPI_lcdPutchar, RPI_lcdPosition, RPI_lcdPrintf, RPI_lcdPuts, RPI_lcdSendCommand
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="Lci#5#"+string(x)+"#"+string(y)+"#"+string(r)+"#"+string(color)+"#"+string(fill)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64clear.sci b/macros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64clear.sci
new file mode 100755
index 0000000..5b80049
--- /dev/null
+++ b/macros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64clear.sci
@@ -0,0 +1,40 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_lcd128x64clear(color)
+// Function to clear the lcd screen
+//
+// Calling Sequence
+// RPI_lcd128x64clear(color)
+//
+// Parameters
+// color: integer, color of the lcd
+//
+// Description
+// This function clears the lcd display to the given colour.
+//
+// Examples
+// RPI_lcd128x64clear(0)
+// See also
+// RPI_lcd128x64setup, RPI_lcd128x64update, RPI_lcd128x64setOrigin, RPI_lcd128x64Orientation, RPI_lcd128x64orientCoord, RPI_lcd128x64ScreenSize, RPI_lcd128x64point, RPI_lcd128x64line, RPI_lcd128x64lineTo, RPI_lcd128x64rectangle, RPI_lcd128x64circle, RPI_lcd128x64ellipse, RPI_lcd128x64putchar, RPI_lcd128x64puts, RPI_lcd128x64clear, RPI_lcdCursorBlink, RPI_lcdCharDef, RPI_lcdClear, RPI_lcdCursor, RPI_lcdDisplay, RPI_lcdInit, RPI_lcdPutchar, RPI_lcdPosition, RPI_lcdPrintf, RPI_lcdPuts, RPI_lcdSendCommand
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="LCl#1#"+string(color)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64ellipse.sci b/macros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64ellipse.sci
new file mode 100755
index 0000000..b4281e6
--- /dev/null
+++ b/macros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64ellipse.sci
@@ -0,0 +1,45 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_lcd128x64ellipse(cx,cy,xr,yr,color,fill)
+// Function to draw a ellipse
+//
+// Calling Sequence
+// RPI_lcd128x64ellipse(cx,cy,xr,yr,color,fill)
+//
+// Parameters
+// cx : integer, x coordinate of centre
+// cy : integer, y coordinate of centre
+// xr : integer, x radius
+// yr : integer, y radius
+// color: integer, color pf the ellipse
+// fill : 0 (for empty) or 1 (for filled)
+//
+// Description
+// This function draws an ellipse with centre at (cx,cy) x and y radii as xr and yr, specified color and fill
+//
+// Examples
+// RPI_lcd128x64ellipse()
+// See also
+// RPI_lcd128x64setup, RPI_lcd128x64update, RPI_lcd128x64setOrigin, RPI_lcd128x64Orientation, RPI_lcd128x64orientCoord, RPI_lcd128x64ScreenSize, RPI_lcd128x64point, RPI_lcd128x64line, RPI_lcd128x64lineTo, RPI_lcd128x64rectangle, RPI_lcd128x64circle, RPI_lcd128x64ellipse, RPI_lcd128x64putchar, RPI_lcd128x64puts, RPI_lcd128x64clear, RPI_lcdCursorBlink, RPI_lcdCharDef, RPI_lcdClear, RPI_lcdCursor, RPI_lcdDisplay, RPI_lcdInit, RPI_lcdPutchar, RPI_lcdPosition, RPI_lcdPrintf, RPI_lcdPuts, RPI_lcdSendCommand
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="Lel#6#"+string(cx)+"#"+string(cy)+"#"+string(xr)+"#"+string(yr)+"#"+string(color)+"#"+string(fill)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64line.sci b/macros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64line.sci
new file mode 100755
index 0000000..951a663
--- /dev/null
+++ b/macros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64line.sci
@@ -0,0 +1,44 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_lcd128x64line(x0,y0,x1,y1,color)
+// Function to plota line.
+//
+// Calling Sequence
+// RPI_lcd128x64line(x0,y0,x1,y1,color)
+//
+// Parameters
+// x0 : integer, initial x coordinate
+// y0 : integer, initial y coordinate
+// x1 : integer, final x coordinate
+// y1 : integer, final y coordinate
+// color: integer, color of the line
+//
+// Description
+// This function plots a line from (x0,y0) to (x1,y1).
+//
+// Examples
+// RPI_lcd128x64line(0,0,1,1,0)
+// See also
+// RPI_lcd128x64setup, RPI_lcd128x64update, RPI_lcd128x64setOrigin, RPI_lcd128x64Orientation, RPI_lcd128x64orientCoord, RPI_lcd128x64ScreenSize, RPI_lcd128x64point, RPI_lcd128x64line, RPI_lcd128x64lineTo, RPI_lcd128x64rectangle, RPI_lcd128x64circle, RPI_lcd128x64ellipse, RPI_lcd128x64putchar, RPI_lcd128x64puts, RPI_lcd128x64clear, RPI_lcdCursorBlink, RPI_lcdCharDef, RPI_lcdClear, RPI_lcdCursor, RPI_lcdDisplay, RPI_lcdInit, RPI_lcdPutchar, RPI_lcdPosition, RPI_lcdPrintf, RPI_lcdPuts, RPI_lcdSendCommand
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="Lli#5#"+string(x0)+"#"+string(y0)+"#"+string(x1)+"#"+string(y1)+"#"+string(color)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64lineTo.sci b/macros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64lineTo.sci
new file mode 100755
index 0000000..466713e
--- /dev/null
+++ b/macros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64lineTo.sci
@@ -0,0 +1,42 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_lcd128x64lineTo(x,y,color)
+// Function to plot a line
+//
+// Calling Sequence
+// RPI_lcd128x64lineTo(x,y,color)
+//
+// Parameters
+// x : integer, final x coordinate
+// y : integer, final y coordinate
+// color: integer, color of the line
+//
+// Description
+// This function draws a line from the current position to the point (x,y) specified.
+//
+// Examples
+// RPI_lcd128x64lineTo(2,2,0)
+// See also
+// RPI_lcd128x64setup, RPI_lcd128x64update, RPI_lcd128x64setOrigin, RPI_lcd128x64Orientation, RPI_lcd128x64orientCoord, RPI_lcd128x64ScreenSize, RPI_lcd128x64point, RPI_lcd128x64line, RPI_lcd128x64lineTo, RPI_lcd128x64rectangle, RPI_lcd128x64circle, RPI_lcd128x64ellipse, RPI_lcd128x64putchar, RPI_lcd128x64puts, RPI_lcd128x64clear, RPI_lcdCursorBlink, RPI_lcdCharDef, RPI_lcdClear, RPI_lcdCursor, RPI_lcdDisplay, RPI_lcdInit, RPI_lcdPutchar, RPI_lcdPosition, RPI_lcdPrintf, RPI_lcdPuts, RPI_lcdSendCommand
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="LlT#3#"+string(x)+"#"+string(y)+"#"+string(color)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64point.sci b/macros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64point.sci
new file mode 100755
index 0000000..287b022
--- /dev/null
+++ b/macros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64point.sci
@@ -0,0 +1,42 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_lcd128x64point(x,y,color)
+// Function to plot a point
+//
+// Calling Sequence
+// RPI_lcd128x64point(x,y,color)
+//
+// Parameters
+// x : integer, x coordinate
+// y : integer, y coordinate
+// color: integer, color of the point
+//
+// Description
+// This function plots a point at x,y.
+//
+// Examples
+// RPI_lcd128x64point(2,2,0)
+// See also
+// RPI_lcd128x64setup, RPI_lcd128x64update, RPI_lcd128x64setOrigin, RPI_lcd128x64Orientation, RPI_lcd128x64orientCoord, RPI_lcd128x64ScreenSize, RPI_lcd128x64point, RPI_lcd128x64line, RPI_lcd128x64lineTo, RPI_lcd128x64rectangle, RPI_lcd128x64circle, RPI_lcd128x64ellipse, RPI_lcd128x64putchar, RPI_lcd128x64puts, RPI_lcd128x64clear, RPI_lcdCursorBlink, RPI_lcdCharDef, RPI_lcdClear, RPI_lcdCursor, RPI_lcdDisplay, RPI_lcdInit, RPI_lcdPutchar, RPI_lcdPosition, RPI_lcdPrintf, RPI_lcdPuts, RPI_lcdSendCommand
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="Lpo#3#"+string(x)+"#"+string(y)+"#"+string(color)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64putchar.sci b/macros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64putchar.sci
new file mode 100755
index 0000000..a6b2724
--- /dev/null
+++ b/macros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64putchar.sci
@@ -0,0 +1,44 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_lcd128x64putchar(x,y,c,bg,fg)
+// Function to print a single character.
+//
+// Calling Sequence
+// RPI_lcd128x64putchar(x,y,c,bg,fg)
+//
+// Parameters
+// x : integer, x coordinate of starting point
+// y : integer, y coordinate of starting point
+// c : integer, from 0 to 255, character to print
+// bg: integer, background color
+// fg: integer, foreground color
+//
+// Description
+// This function prints a single character to the screen.
+//
+// Examples
+// RPI_lcd128x64putchar(0,1,128,1,0)
+// See also
+// RPI_lcd128x64setup, RPI_lcd128x64update, RPI_lcd128x64setOrigin, RPI_lcd128x64Orientation, RPI_lcd128x64orientCoord, RPI_lcd128x64ScreenSize, RPI_lcd128x64point, RPI_lcd128x64line, RPI_lcd128x64lineTo, RPI_lcd128x64rectangle, RPI_lcd128x64circle, RPI_lcd128x64ellipse, RPI_lcd128x64putchar, RPI_lcd128x64puts, RPI_lcd128x64clear, RPI_lcdCursorBlink, RPI_lcdCharDef, RPI_lcdClear, RPI_lcdCursor, RPI_lcdDisplay, RPI_lcdInit, RPI_lcdPutchar, RPI_lcdPosition, RPI_lcdPrintf, RPI_lcdPuts, RPI_lcdSendCommand
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="Lpc#5#"+string(x)+"#"+string(y)+"#"+string(c)+"#"+string(bg)+"#"+string(fg)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64puts.sci b/macros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64puts.sci
new file mode 100755
index 0000000..6785f06
--- /dev/null
+++ b/macros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64puts.sci
@@ -0,0 +1,44 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_lcd128x64puts(x,y,s,bf,fg)
+// Function to send a string to the lcd display
+//
+// Calling Sequence
+// RPI_lcd128x64puts(x,y,s,bg,fg)
+//
+// Parameters
+// x : integer, x coordinate of starting point
+// y : integer, y coordinate of starting point
+// s : string to send
+// bg: integer, background color
+// fg: integer, foreground color
+//
+// Description
+// This function sends a string to the display. Obeys \n and \r formatting.
+//
+// Examples
+// RPI_lcd128x64puts(0,0,'Talos guide you',0,1)
+// See also
+// RPI_lcd128x64setup, RPI_lcd128x64update, RPI_lcd128x64setOrigin, RPI_lcd128x64Orientation, RPI_lcd128x64orientCoord, RPI_lcd128x64ScreenSize, RPI_lcd128x64point, RPI_lcd128x64line, RPI_lcd128x64lineTo, RPI_lcd128x64rectangle, RPI_lcd128x64circle, RPI_lcd128x64ellipse, RPI_lcd128x64putchar, RPI_lcd128x64puts, RPI_lcd128x64clear, RPI_lcdCursorBlink, RPI_lcdCharDef, RPI_lcdClear, RPI_lcdCursor, RPI_lcdDisplay, RPI_lcdInit, RPI_lcdPutchar, RPI_lcdPosition, RPI_lcdPrintf, RPI_lcdPuts, RPI_lcdSendCommand
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="LPu#5#"+string(x)+"#"+string(y)+"#"+string(s)+"#"+string(bg)+"#"+string(fg)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64rectangle.sci b/macros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64rectangle.sci
new file mode 100755
index 0000000..ccda4c6
--- /dev/null
+++ b/macros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64rectangle.sci
@@ -0,0 +1,45 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_lcd128x64rectangle(x1,y1,x2,y2,color,fill)
+// Function to draw a rectangle
+//
+// Calling Sequence
+// RPI_lcd128x64rectangle(x1,y1,x2,y2,color,fill)
+//
+// Parameters
+// x1 : integer, x coordinate of upper left corner
+// y1 : integer, y coordinate of upper left corner
+// x2 : integer, x coordinate of lower right corner
+// y2 : integer, y coordinate of lower right corner
+// color: integer, color of the rectangle
+// fill : 0 (for empty) or 1 (for filled)
+//
+// Description
+// This function draws a rectangle with (x1,y1) as the upper left point and (x2,y2) as the lower right point with specified color and fill.
+//
+// Examples
+// RPI_lcd128x64rectangle(0,0,1,1,0,1)
+// See also
+// RPI_lcd128x64setup, RPI_lcd128x64update, RPI_lcd128x64setOrigin, RPI_lcd128x64Orientation, RPI_lcd128x64orientCoord, RPI_lcd128x64ScreenSize, RPI_lcd128x64point, RPI_lcd128x64line, RPI_lcd128x64lineTo, RPI_lcd128x64rectangle, RPI_lcd128x64circle, RPI_lcd128x64ellipse, RPI_lcd128x64putchar, RPI_lcd128x64puts, RPI_lcd128x64clear, RPI_lcdCursorBlink, RPI_lcdCharDef, RPI_lcdClear, RPI_lcdCursor, RPI_lcdDisplay, RPI_lcdInit, RPI_lcdPutchar, RPI_lcdPosition, RPI_lcdPrintf, RPI_lcdPuts, RPI_lcdSendCommand
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="Lre#6#"+string(x1)+"#"+string(y1)+"#"+string(x2)+"#"+string(y2)+"#"+string(color)+"#"+string(fill)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64setOrigin.sci b/macros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64setOrigin.sci
new file mode 100755
index 0000000..996b062
--- /dev/null
+++ b/macros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64setOrigin.sci
@@ -0,0 +1,41 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_lcd128x64setOrigin(x,y)
+// Function to set origin
+//
+// Calling Sequence
+// RPI_lcd128x64setOrigin(x,y)
+//
+// Parameters
+// x: x coordinate
+// y: y coordinate
+//
+// Description
+// This function sets the origin of the lcd display
+//
+// Examples
+// RPI_lcd128x64setOrigin(1,0)
+// See also
+// RPI_lcd128x64setup, RPI_lcd128x64update, RPI_lcd128x64setOrigin, RPI_lcd128x64Orientation, RPI_lcd128x64orientCoord, RPI_lcd128x64ScreenSize, RPI_lcd128x64point, RPI_lcd128x64line, RPI_lcd128x64lineTo, RPI_lcd128x64rectangle, RPI_lcd128x64circle, RPI_lcd128x64ellipse, RPI_lcd128x64putchar, RPI_lcd128x64puts, RPI_lcd128x64clear, RPI_lcdCursorBlink, RPI_lcdCharDef, RPI_lcdClear, RPI_lcdCursor, RPI_lcdDisplay, RPI_lcdInit, RPI_lcdPutchar, RPI_lcdPosition, RPI_lcdPrintf, RPI_lcdPuts, RPI_lcdSendCommand
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="LOr#2#"+string(x)+"#"+string(y)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64setup.sci b/macros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64setup.sci
new file mode 100755
index 0000000..60ded7d
--- /dev/null
+++ b/macros/Hardware/RasberryPi/lcd128x64/RPI_lcd128x64setup.sci
@@ -0,0 +1,37 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function out=RPI_lcd128x64setup()
+// Function to initialize the lcd display
+//
+// Calling Sequence
+// RPI_lcd128x64setup()
+//
+// Description
+// This function initialises the lcd display.
+//
+// Examples
+// RPI_lcd128x64setup()
+// See also
+// RPI_lcd128x64setup, RPI_lcd128x64update, RPI_lcd128x64setOrigin, RPI_lcd128x64Orientation, RPI_lcd128x64orientCoord, RPI_lcd128x64ScreenSize, RPI_lcd128x64point, RPI_lcd128x64line, RPI_lcd128x64lineTo, RPI_lcd128x64rectangle, RPI_lcd128x64circle, RPI_lcd128x64ellipse, RPI_lcd128x64putchar, RPI_lcd128x64puts, RPI_lcd128x64clear, RPI_lcdCursorBlink, RPI_lcdCharDef, RPI_lcdClear, RPI_lcdCursor, RPI_lcdDisplay, RPI_lcdInit, RPI_lcdPutchar, RPI_lcdPosition, RPI_lcdPrintf, RPI_lcdPuts, RPI_lcdSendCommand
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="Lse#0#";
+ if getos()=="Linux" then
+ out=unix_g("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos()=="Windows" then
+ [out,RPI_winR]=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/lcd128x64/buildmacros.sce b/macros/Hardware/RasberryPi/lcd128x64/buildmacros.sce
new file mode 100755
index 0000000..7d533f7
--- /dev/null
+++ b/macros/Hardware/RasberryPi/lcd128x64/buildmacros.sce
@@ -0,0 +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
+
+tbx_build_macros(TOOLBOX_NAME, get_absolute_file_path('buildmacros.sce'));
+
+clear tbx_build_macros;
diff --git a/macros/Hardware/RasberryPi/lcd128x64/names b/macros/Hardware/RasberryPi/lcd128x64/names
new file mode 100755
index 0000000..8243971
--- /dev/null
+++ b/macros/Hardware/RasberryPi/lcd128x64/names
@@ -0,0 +1,12 @@
+RPI_lcd128x64Orientation
+RPI_lcd128x64circle
+RPI_lcd128x64clear
+RPI_lcd128x64ellipse
+RPI_lcd128x64line
+RPI_lcd128x64lineTo
+RPI_lcd128x64point
+RPI_lcd128x64putchar
+RPI_lcd128x64puts
+RPI_lcd128x64rectangle
+RPI_lcd128x64setOrigin
+RPI_lcd128x64setup
diff --git a/macros/Hardware/RasberryPi/lib b/macros/Hardware/RasberryPi/lib
deleted file mode 100644
index dc759fe..0000000
--- a/macros/Hardware/RasberryPi/lib
+++ /dev/null
Binary files differ
diff --git a/macros/Hardware/RasberryPi/mcp/RPI_mcp23008Setup.sci b/macros/Hardware/RasberryPi/mcp/RPI_mcp23008Setup.sci
new file mode 100755
index 0000000..03963bd
--- /dev/null
+++ b/macros/Hardware/RasberryPi/mcp/RPI_mcp23008Setup.sci
@@ -0,0 +1,41 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function out=RPI_mcp23008Setup(pinBase,i2cAddress)
+// Function for setting up 8-bit MCP23008 I2C GPIO expansion chip.
+//
+// Calling Sequence
+// RPI_mcp23008Setup(pinBase,i2cAddress)
+//
+// Parameters
+// pinBase : any number above 64. The consecutive 8 pins will be allocated alongwith.
+// i2cAdress: integer, the I2C address obtained using RPI_i2cdetect function
+//
+// Description
+// This function sets up the extension module for the 8-bit MCP23008 I2C GPIO expansion chip.
+//
+// Examples
+// RPI_mcp23008Setup(73,64)
+// See also
+// RPI_sr595Setup, RPI_pcf8574Setup, RPI_pcf8591Setup, RPI_mcp23016Setup, RPI_mcp23017Setup, RPI_mcp23s08Setup, RPI_mcp23s17Setup
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="mp8#2#"+string(pinBase)+"#"+string(i2cAddress)+"#";
+ if getos()=="Linux" then
+ out=unix_g("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos()=="Windows" then
+ [out,RPI_winR]=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/mcp/RPI_mcp23016Setup.sci b/macros/Hardware/RasberryPi/mcp/RPI_mcp23016Setup.sci
new file mode 100755
index 0000000..0424616
--- /dev/null
+++ b/macros/Hardware/RasberryPi/mcp/RPI_mcp23016Setup.sci
@@ -0,0 +1,41 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function out=RPI_mcp23016Setup(pinBase,i2cAddress)
+// Function for setting up 16-bit MCP23016 I2C GPIO expansion chip.
+//
+// Calling Sequence
+// RPI_mcp23016Setup(pinBase,i2cAddress)
+//
+// Parameters
+// pinBase : any number above 64. The consecutive 16 pins will be allocated alongwith.
+// i2cAdress: integer, the I2C address obtained using RPI_i2cdetect function
+//
+// Description
+// This function sets up the extension module for the MCP23017 (16-bit) I2C GPIO expansion chips. The MCP23016 is the fore-runner of the MCP23017 GPIO expansion chip and may be present on some older interface boards.
+//
+// Examples
+// RPI_mcp23016Setup(73,100)
+// See also
+// RPI_sr595Setup, RPI_pcf8574Setup, RPI_pcf8591Setup, RPI_mcp23008Setup, RPI_mcp23017Setup, RPI_mcp23s08Setup, RPI_mcp23s17Setup
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="mp6#2#"+string(pinBase)+"#"+string(i2cAddress)+"#";
+ if getos()=="Linux" then
+ out=unix_g("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos()=="Windows" then
+ [out,RPI_winR]=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/mcp/RPI_mcp23017Setup.sci b/macros/Hardware/RasberryPi/mcp/RPI_mcp23017Setup.sci
new file mode 100755
index 0000000..c453ebb
--- /dev/null
+++ b/macros/Hardware/RasberryPi/mcp/RPI_mcp23017Setup.sci
@@ -0,0 +1,41 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function out=RPI_mcp23017Setup(pinBase,i2cAddress)
+// Function for setting up 16-bit MCP23017 I2C GPIO expansion chip.
+//
+// Calling Sequence
+// RPI_mcp23017Setup(pinBase,i2cAddress)
+//
+// Parameters
+// pinBase : any number above 64. The consecutive 16 pins will be allocated alongwith.
+// i2cAdress: integer, the I2C address obtained using RPI_i2cdetect function
+//
+// Description
+// This function setups the extension module for the 16-bit MCP23017 I2C GPIO expansion chip.
+//
+// Examples
+// RPI_mcp23017Setup(73,100)
+// See also
+// RPI_sr595Setup, RPI_pcf8574Setup, RPI_pcf8591Setup, RPI_mcp23008Setup, RPI_mcp23016Setup, RPI_mcp23s08Setup, RPI_mcp23s17Setup
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="mp7#2#"+string(pinBase)+"#"+string(i2cAddress)+"#";
+ if getos()=="Linux" then
+ out=unix_g("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos()=="Windows" then
+ [out,RPI_winR]=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/mcp/RPI_mcp23s08Setup.sci b/macros/Hardware/RasberryPi/mcp/RPI_mcp23s08Setup.sci
new file mode 100755
index 0000000..b5b215b
--- /dev/null
+++ b/macros/Hardware/RasberryPi/mcp/RPI_mcp23s08Setup.sci
@@ -0,0 +1,42 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function out=RPI_mcp23s08Setup(pinBase,spiPort,devId)
+// Function for setting up 8-bit MCP23s08 SPI GPIO expansion chip.
+//
+// Calling Sequence
+// RPI_mcp23s08Setup(pinBase,spiPort,devId)
+//
+// Parameters
+// pinBase: any number above 64. The consecutive 8 pins will be allocated alongwith.
+// spiPort: 0 or 1 for one of the two SPI ports on the Raspberry Pi.
+// devId : the ID of the MCP23s08 on the SPI port.
+//
+// Description
+// This function setups the extension module for the 8-bit MCP23s08 SPI GPIO expansion chip.
+//
+// Examples
+// RPI_mcp23s08Setup(67,1,0)
+// See also
+// RPI_sr595Setup, RPI_pcf8574Setup, RPI_pcf8591Setup, RPI_mcp23008Setup, RPI_mcp23016Setup, RPI_mcp23017Setup, RPI_mcp23s17Setup
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="ms8#3#"+string(pinBase)+"#"+string(spiPort)+"#"+string(devId)+"#";
+ if getos()=="Linux" then
+ out=unix_g("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos()=="Windows" then
+ [out,RPI_winR]=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/mcp/RPI_mcp23s17Setup.sci b/macros/Hardware/RasberryPi/mcp/RPI_mcp23s17Setup.sci
new file mode 100755
index 0000000..4ba9fd6
--- /dev/null
+++ b/macros/Hardware/RasberryPi/mcp/RPI_mcp23s17Setup.sci
@@ -0,0 +1,42 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function out=RPI_mcp23s17Setup(pinBase,spiPort,devId)
+// Function for setting up 16-bit MCP23s17 SPI GPIO expansion chip.
+//
+// Calling Sequence
+// RPI_mcp23s17Setup(pinBase,spiPort,devId)
+//
+// Parameters
+// pinBase: any number above 64. The consecutive 16 pins will be allocated alongwith.
+// spiPort: 0 or 1 for one of the two SPI ports on the Raspberry Pi.
+// devId : the ID of the MCP23s17 on the SPI port.
+//
+// Description
+// This function setups the extension module for the 16-bit MCP23s17 SPI GPIO expansion chip.
+//
+// Examples
+// RPI_mcp23s17Setup(67,0,0)
+// See also
+// RPI_sr595Setup, RPI_pcf8574Setup, RPI_pcf8591Setup, RPI_mcp23008Setup, RPI_mcp23016Setup, RPI_mcp23017Setup, RPI_mcp23s08Setup
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="ms7#3#"+string(pinBase)+"#"+string(spiPort)+"#"+string(devId)+"#";
+ if getos()=="Linux" then
+ out=unix_g("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos()=="Windows" then
+ [out,RPI_winR]=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/mcp/buildmacros.sce b/macros/Hardware/RasberryPi/mcp/buildmacros.sce
new file mode 100755
index 0000000..7d533f7
--- /dev/null
+++ b/macros/Hardware/RasberryPi/mcp/buildmacros.sce
@@ -0,0 +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
+
+tbx_build_macros(TOOLBOX_NAME, get_absolute_file_path('buildmacros.sce'));
+
+clear tbx_build_macros;
diff --git a/macros/Hardware/RasberryPi/mcp/names b/macros/Hardware/RasberryPi/mcp/names
new file mode 100755
index 0000000..23e7af0
--- /dev/null
+++ b/macros/Hardware/RasberryPi/mcp/names
@@ -0,0 +1,5 @@
+RPI_mcp23008Setup
+RPI_mcp23016Setup
+RPI_mcp23017Setup
+RPI_mcp23s08Setup
+RPI_mcp23s17Setup
diff --git a/macros/Hardware/RasberryPi/names b/macros/Hardware/RasberryPi/names
index fa64776..9f20c93 100644..100755
--- a/macros/Hardware/RasberryPi/names
+++ b/macros/Hardware/RasberryPi/names
@@ -1,21 +1,5 @@
GetRPISupportFunctions
IsRPISupportFunction
-RPI_DelayMicro
-RPI_DelayMilli
-RPI_DigitalIn
-RPI_DigitalOut
-RPI_DigitalSetup
-RPI_GetMicros
-RPI_GetMillis
-RPI_HardPWMSetClock
-RPI_HardPWMSetMode
-RPI_HardPWMSetRange
-RPI_HardPWMWrite
-RPI_PinISR
-RPI_SerialClose
-RPI_SerialFlush
-RPI_SerialGetChar
-RPI_SerialSendChar
-RPI_SerialSendData
-RPI_SerialSetup
-u16RPISerialDataAvail
+RPI_adress
+raspi
+raspi_close
diff --git a/macros/Hardware/RasberryPi/pcf/RPI_pcf8574Setup.sci b/macros/Hardware/RasberryPi/pcf/RPI_pcf8574Setup.sci
new file mode 100755
index 0000000..f3e7942
--- /dev/null
+++ b/macros/Hardware/RasberryPi/pcf/RPI_pcf8574Setup.sci
@@ -0,0 +1,43 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_pcf8574Setup(pinBase,i2cAddress)
+// Function for setting up PCF8574 8-bit GPIO expander IC
+//
+// Calling Sequence
+// RPI_pcf8574Setup(pinBase,i2cAddress)
+//
+// Parameters
+// pinBase : any number above 64. The consecutive 8 pins will be allocated alongwith.
+// i2cAddress: I2C address obtained using RPI_i2cdetect function
+//
+// Description
+// This function sets up the extension module for the PCF8574 8-bit GPIO expander IC. Can be called multiple times for multiple PCF8574 using different pinBase for each.
+//
+//You don’t need to specify the number of pins here – the PCF8754 has 8 pins.
+//
+// Examples
+// RPI_pcf8574Setup(67,100)
+// See also
+// RPI_pcf8591Setup
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="pf7#2#"+string(pinBase)+"#"+string(i2cAddress)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/pcf/RPI_pcf8591Setup.sci b/macros/Hardware/RasberryPi/pcf/RPI_pcf8591Setup.sci
new file mode 100755
index 0000000..8705490
--- /dev/null
+++ b/macros/Hardware/RasberryPi/pcf/RPI_pcf8591Setup.sci
@@ -0,0 +1,43 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_pcf8591Setup(pinBase,i2cAddress)
+// Function for setting up 8-bit PCF8591 Analog IO expander IC
+//
+// Calling Sequence
+// RPI_pcf8591Setup(pinBase,i2cAddress)
+//
+// Parameters
+// pinBase : any number above 64.The consecutive 4 pins will be allocated alongwith.
+// i2cAddress: I2C address obtained using RPI_i2cdetect function
+//
+// Description
+// This function sets up the extension module for the PCF8591 8-bit GPIO expander IC. Can be called multiple times for multiple PCF8591 using different pinBase for each.
+//
+//Specifying the number of pins is not necessary – the PCF8791 has 4 pins – the analog output uses base pin number 0 – the same as analog input 0.
+//
+// Examples
+// RPI_pcf8591Setup(67,64)
+// See also
+// RPI_pcf8574Setup
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="pf9#2#"+string(pinBase)+"#"+string(i2cAddress)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/pcf/buildmacros.sce b/macros/Hardware/RasberryPi/pcf/buildmacros.sce
new file mode 100755
index 0000000..7d533f7
--- /dev/null
+++ b/macros/Hardware/RasberryPi/pcf/buildmacros.sce
@@ -0,0 +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
+
+tbx_build_macros(TOOLBOX_NAME, get_absolute_file_path('buildmacros.sce'));
+
+clear tbx_build_macros;
diff --git a/macros/Hardware/RasberryPi/pcf/names b/macros/Hardware/RasberryPi/pcf/names
new file mode 100755
index 0000000..3e326a0
--- /dev/null
+++ b/macros/Hardware/RasberryPi/pcf/names
@@ -0,0 +1,2 @@
+RPI_pcf8574Setup
+RPI_pcf8591Setup
diff --git a/macros/Hardware/RasberryPi/piGlow/RPI_piGlow1.sci b/macros/Hardware/RasberryPi/piGlow/RPI_piGlow1.sci
new file mode 100755
index 0000000..e093238
--- /dev/null
+++ b/macros/Hardware/RasberryPi/piGlow/RPI_piGlow1.sci
@@ -0,0 +1,42 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_piGlow1(leg,ring,intensity)
+// Function to modify a single LED on the piGlow
+//
+// Calling Sequence
+// RPI_piGlow1(leg,ring,intensity)
+//
+// Parameters
+// leg : leg number
+// ring : ring number
+// intensity: brightness from 0 (off) to 255 (full)
+//
+// Description
+// The function modifies the brightness of the single specified LED.
+//
+// Examples
+// RPI_piGlow1(0,0,125)
+// See also
+// RPI_piGlowLeg, RPI_piGlowRing, RPI_piGlowSetup
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="pG1#3#"+string(leg)+"#"+string(ring)+"#"+string(intensity)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/piGlow/RPI_piGlowLeg.sci b/macros/Hardware/RasberryPi/piGlow/RPI_piGlowLeg.sci
new file mode 100755
index 0000000..d042579
--- /dev/null
+++ b/macros/Hardware/RasberryPi/piGlow/RPI_piGlowLeg.sci
@@ -0,0 +1,41 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_piGlowLeg(leg,intensity)
+// Function to modify a full leg of LEDs on the piGlow
+//
+// Calling Sequence
+// RPI_piGlowLeg(leg,intensity)
+//
+// Parameters
+// leg : leg number
+// intensity: brightness from 0 (off) to 255 (full)
+//
+// Description
+// This function modifies the brightness of all the LEDs in the single specified leg of piGlow.
+//
+// Examples
+// RPI_piGlowLeg(0,100)
+// See also
+// RPI_piGlow1, RPI_piGlowRing, RPI_piGlowSetup
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="pGL#2#"+string(leg)+"#"+string(intensity)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/piGlow/RPI_piGlowRing.sci b/macros/Hardware/RasberryPi/piGlow/RPI_piGlowRing.sci
new file mode 100755
index 0000000..ef81620
--- /dev/null
+++ b/macros/Hardware/RasberryPi/piGlow/RPI_piGlowRing.sci
@@ -0,0 +1,41 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_piGlowRing(ring,intensity)
+// Function to modify a full ring of LEDs on the piGlow
+//
+// Calling Sequence
+// RPI_piGlowRing(ring,intensity)
+//
+// Parameters
+// ring : ring number
+// intensity: brightness from 0 (off) to 255 (full)
+//
+// Description
+// This function modifies the brightness of all the LEDs in the single specified ring of piGlow.
+//
+// Examples
+// RPI_piGlowRing(1,200)
+// See also
+// RPI_piGlowLeg, RPI_piGlow1, RPI_piGlowSetup
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="pGR#2#"+string(ring)+"#"+string(intensity)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/piGlow/RPI_piGlowSetup.sci b/macros/Hardware/RasberryPi/piGlow/RPI_piGlowSetup.sci
new file mode 100755
index 0000000..718fa3b
--- /dev/null
+++ b/macros/Hardware/RasberryPi/piGlow/RPI_piGlowSetup.sci
@@ -0,0 +1,42 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_piGlowSetup(Empty)
+// Function to initialize the piGlow board
+//
+// Calling Sequence
+// RPI_piGlowSetup(Empty)
+//
+// Parameters
+// Empty: integer, 0 or 1. If 1, then all the LEDs will be turned off to start with.
+//
+// Description
+// This initialises the PiGlow devLib software. The I2C kernel module needs to be pre-loaded. ThePiGlow board has an SN3218 I2C LED controller and 18 LEDs arranged in 3 “legs” of 6 LEDs. (or 6 “rings” of 3 LEDs).
+//
+// The LED colours in each leg match and are in the order Red (at the outside), Yellow, Orange, Green, Blue and White (in the center)
+//
+// Examples
+// RPI_piGlowSetup(TRUE)
+// See also
+// RPI_piGlowLeg, RPI_piGlow1, RPI_piGlowRing
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="pGS#1#"+string(Empty)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/piGlow/buildmacros.sce b/macros/Hardware/RasberryPi/piGlow/buildmacros.sce
new file mode 100755
index 0000000..7d533f7
--- /dev/null
+++ b/macros/Hardware/RasberryPi/piGlow/buildmacros.sce
@@ -0,0 +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
+
+tbx_build_macros(TOOLBOX_NAME, get_absolute_file_path('buildmacros.sce'));
+
+clear tbx_build_macros;
diff --git a/macros/Hardware/RasberryPi/piGlow/names b/macros/Hardware/RasberryPi/piGlow/names
new file mode 100755
index 0000000..b63ec8f
--- /dev/null
+++ b/macros/Hardware/RasberryPi/piGlow/names
@@ -0,0 +1,4 @@
+RPI_piGlow1
+RPI_piGlowLeg
+RPI_piGlowRing
+RPI_piGlowSetup
diff --git a/macros/Hardware/RasberryPi/pinMap/RPI_physToGpio.sci b/macros/Hardware/RasberryPi/pinMap/RPI_physToGpio.sci
new file mode 100755
index 0000000..9a59caa
--- /dev/null
+++ b/macros/Hardware/RasberryPi/pinMap/RPI_physToGpio.sci
@@ -0,0 +1,40 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function out=RPI_physToGpio(pin)
+// Function to check the GPIO pin number corresponding to given physical pin number.
+//
+// Calling Sequence
+// p=RPI_physToGpio(pin)
+//
+// Parameters
+// pin: The pin number to check in physical numbering sequence.
+//
+// Description
+// This funtion return the GPIO pin number corresponding to the supplied physical pin number.
+//
+// Examples
+// p=RPI_physToGpio(11)
+// See also
+// RPI_wpiToGpio
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="ptG#1#"+string(pin)+"#";
+ if getos()=="Linux" then
+ out=unix_g("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos()=="Windows" then
+ [out,RPI_winR]=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/pinMap/RPI_wpiToGpio.sci b/macros/Hardware/RasberryPi/pinMap/RPI_wpiToGpio.sci
new file mode 100755
index 0000000..deed426
--- /dev/null
+++ b/macros/Hardware/RasberryPi/pinMap/RPI_wpiToGpio.sci
@@ -0,0 +1,40 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function out=RPI_wpiToGpio(pin)
+// Function to check the GPIO pin number corresponding to given wiringpi pin number.
+//
+// Calling Sequence
+// p=RPI_wpiToGpio(pin)
+//
+// Parameters
+// pin: The pin number to check in wiringpi numbering sequence.
+//
+// Description
+// This funtion return the GPIO pin number corresponding to the supplied wiringpi pin number.
+//
+// Examples
+// p=RPI_wpiToGpio(0)
+// See also
+// RPI_physToGpio
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="wtG#1#"+string(pin)+"#";
+ if getos()=="Linux" then
+ out=unix_g("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos()=="Windows" then
+ [out,RPI_winR]=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/pinMap/buildmacros.sce b/macros/Hardware/RasberryPi/pinMap/buildmacros.sce
new file mode 100755
index 0000000..7d533f7
--- /dev/null
+++ b/macros/Hardware/RasberryPi/pinMap/buildmacros.sce
@@ -0,0 +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
+
+tbx_build_macros(TOOLBOX_NAME, get_absolute_file_path('buildmacros.sce'));
+
+clear tbx_build_macros;
diff --git a/macros/Hardware/RasberryPi/pinMap/names b/macros/Hardware/RasberryPi/pinMap/names
new file mode 100755
index 0000000..71efa23
--- /dev/null
+++ b/macros/Hardware/RasberryPi/pinMap/names
@@ -0,0 +1,2 @@
+RPI_physToGpio
+RPI_wpiToGpio
diff --git a/macros/Hardware/RasberryPi/pwm/RPI_pwmClock.sci b/macros/Hardware/RasberryPi/pwm/RPI_pwmClock.sci
new file mode 100755
index 0000000..d065353
--- /dev/null
+++ b/macros/Hardware/RasberryPi/pwm/RPI_pwmClock.sci
@@ -0,0 +1,40 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_pwmClock(value)
+// Function to set the divisor for the PWM clock.
+//
+// Calling Sequence
+// RPI_pwmClock(value)
+//
+// Parameters
+// value: The divisor for the PWM clock.
+//
+// Description
+// This function sets the divisor for the PWM clock.
+//
+// Examples
+// RPI_pwmClock(100)
+// See also
+// RPI_pwmMode, RPI_pwmRange, RPI_pwmToneWrite, RPI_pwmWrite
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="pwC#1#"+string(value)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/pwm/RPI_pwmMode.sci b/macros/Hardware/RasberryPi/pwm/RPI_pwmMode.sci
new file mode 100755
index 0000000..13d0c36
--- /dev/null
+++ b/macros/Hardware/RasberryPi/pwm/RPI_pwmMode.sci
@@ -0,0 +1,46 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_pwmMode(Mode)
+// Function to set the mode for the PWM generator
+//
+// Calling Sequence
+// RPI_pwmMode(mode)
+//
+// Parameters
+// mode: The mode to set for the PWM generator. 'ms' (for mark:space) or 'bal' (for balanced)
+//
+// Description
+// This function sets the mode for the PWM generator. The PWM generator can run in 2 modes – “balanced” and “mark:space”. The mark:space mode is traditional, however the default mode in the Pi is “balanced”. Switch modes by supplying the parameter: bal or ms
+//
+// Examples
+// RPI_pwmMode('bal')
+// See also
+// RPI_pwmRange, RPI_pwmClock, RPI_pwmToneWrite, RPI_pwmWrite
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ if Mode=='ms' then
+ commande="pwM#1#0#";
+ elseif Mode=='bal' then
+ commande="pwM#1#1#";
+ else:
+ error("mode should be ""ms"" or ""bal""");
+ end
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/pwm/RPI_pwmRange.sci b/macros/Hardware/RasberryPi/pwm/RPI_pwmRange.sci
new file mode 100755
index 0000000..6a1503a
--- /dev/null
+++ b/macros/Hardware/RasberryPi/pwm/RPI_pwmRange.sci
@@ -0,0 +1,40 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_pwmRange(value)
+// Function to set the divisor for the PWM clock.
+//
+// Calling Sequence
+// RPI_pwmRange(value)
+//
+// Parameters
+// value: maximum of the range for the PWM generator.
+//
+// Description
+// This function sets the range register in the PWM generator. The default is 1024.
+//
+// Examples
+// RPI_pwmRange(512)
+// See also
+// RPI_pwmMode, RPI_pwmClock, RPI_pwmToneWrite, RPI_pwmWrite
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="pwR#1#"+string(value)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/pwm/RPI_pwmToneWrite.sci b/macros/Hardware/RasberryPi/pwm/RPI_pwmToneWrite.sci
new file mode 100755
index 0000000..d7ff6ed
--- /dev/null
+++ b/macros/Hardware/RasberryPi/pwm/RPI_pwmToneWrite.sci
@@ -0,0 +1,41 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_pwmToneWrite(pin,freq)
+// Function to write a tone of a given frequency to the pin
+//
+// Calling Sequence
+// RPI_pwmToneWrite(pin,freq)
+//
+// Parameters
+// pin : The pin to set the frequency on. Numbering to be followed as initiated using RPI_pinNumbering.
+// freq: frequency to write
+//
+// Description
+// This function write the given frequency tone to the given pin.
+//
+// Examples
+// RPI_pwmToneWrite(0,100)
+// See also
+// RPI_pwmMode, RPI_pwmRange, RPI_pwmClock, RPI_pwmWrite, PRI_pinNumbering
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ commande="pwT#2#"+string(pin)+"#"+string(freq)+"#";
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/pwm/RPI_pwmWrite.sci b/macros/Hardware/RasberryPi/pwm/RPI_pwmWrite.sci
new file mode 100755
index 0000000..113547a
--- /dev/null
+++ b/macros/Hardware/RasberryPi/pwm/RPI_pwmWrite.sci
@@ -0,0 +1,45 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function RPI_pwmWrite(pin,value)
+// Function to write voltage value to the PWM register for the given pin.
+//
+// Calling Sequence
+// RPI_pwmWrite(pin,value)
+//
+// Parameters
+// pin : The pin number set the voltage at. Numbering sequence to be followed as initiated using RPI_pinNumbering function.
+// value: The voltage to set at the given pin. Range is 0-1024.
+//
+// Description
+// Writes the value to the PWM register for the given pin. The Raspberry Pi has one on-board PWM pin, pin 1 (BMC_GPIO 18, Phys 12). Other PWM devices may have other PWM ranges.
+//
+// Examples
+// RPI_pwmWrite(1,500)
+// See also
+// RPI_pwmMode, RPI_pwmRange, RPI_pwmClock, RPI_pwmToneWrite
+//
+// Authors
+// Jorawar Singh
+//
+// Bibliography
+// http://wiringpi.com/reference/
+
+ if [0<value,value<1024] then
+ commande="pwW#2#"+string(pin)+"#"+string(value)+"#";
+ else
+ error("Voltage has to be between 0 and 1024");
+ end
+ if getos=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/pwm/buildmacros.sce b/macros/Hardware/RasberryPi/pwm/buildmacros.sce
new file mode 100755
index 0000000..7d533f7
--- /dev/null
+++ b/macros/Hardware/RasberryPi/pwm/buildmacros.sce
@@ -0,0 +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
+
+tbx_build_macros(TOOLBOX_NAME, get_absolute_file_path('buildmacros.sce'));
+
+clear tbx_build_macros;
diff --git a/macros/Hardware/RasberryPi/pwm/names b/macros/Hardware/RasberryPi/pwm/names
new file mode 100755
index 0000000..87e7088
--- /dev/null
+++ b/macros/Hardware/RasberryPi/pwm/names
@@ -0,0 +1,5 @@
+RPI_pwmClock
+RPI_pwmMode
+RPI_pwmRange
+RPI_pwmToneWrite
+RPI_pwmWrite
diff --git a/macros/Hardware/RasberryPi/raspi.sci b/macros/Hardware/RasberryPi/raspi.sci
new file mode 100755
index 0000000..4da09ca
--- /dev/null
+++ b/macros/Hardware/RasberryPi/raspi.sci
@@ -0,0 +1,94 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+global RPI_piAdress;
+
+if getos()=="Linux" then
+ RPI_MacrosPath=get_absolute_file_path("raspi.sci");
+ RPI_MacrosPath=part(RPI_MacrosPath,1:(length(RPI_MacrosPath)-7));
+ RPI_MacrosPath=RPI_MacrosPath+'src/python/';
+// disp("Linux");
+ function raspi(adress,local,username)
+ // Function to initiate the connection to the raspberry pi
+ //
+ // Calling Sequence
+ // raspi(adress,local,username)
+ //
+ // Parameters
+ // address : Network address of the raspberry pi. Eg:10.42.0.82
+ // local : username of the local computer.
+ // username: username on the raspberry pi.
+ //
+ // Description
+ // This program initiates the connection to the raspberry pi at the given address by running the python server script on port 9077 on the pi.
+ //
+ // Examples
+ // raspi('10.42.0.82','panda','pi')
+ // See also
+ // raspi_close
+ //
+ // Authors
+ // Jorawar Singh
+
+ global RPI_piAdress;
+ RPI_piAdress=adress;
+
+ disp("Step 1/6")
+ TCL_EvalStr("if {[file exists /home/"+local+"/.ssh/id_rsa]} {} else {exec ssh-keygen -N """" -f /home/"+local+"/.ssh/id_rsa -q}");
+ disp("Step 2/6")
+ TCL_EvalStr("exec ssh-add >logs.txt 2>&1");
+ disp("Step 3/6")
+ TCL_EvalStr("exec ssh-copy-id -i /home/"+local+"/.ssh/id_rsa.pub "+username+"@"+adress+" > logs.txt 2>&1");
+ disp("Step 4/6")
+ TCL_EvalStr("exec rsync -avz "+RPI_MacrosPath+"serverWP.py "+username+"@"+adress+":.scilab/ >logs.txt");
+ disp("Step 5/6")
+ TCL_EvalStr("exec ssh "+username+"@"+adress+" sudo python /home/"+username+"/.scilab/serverWP.py &");
+ disp("Step 6/6")
+ TCL_EvalStr(["file delete logs.txt";"file delete &1"]);
+ endfunction
+elseif getos()=='Windows' then
+ tempPath=get_absolute_file_path("raspi.sci");
+ RPI_MacrosPath=strsubst(tempPath,'\','/');
+ RPI_MacrosPath=part(RPI_MacrosPath,1:(length(RPI_MacrosPath)-7));
+ RPI_MacrosPath=RPI_MacrosPath+'src/python/';
+ function raspi(adress,username)
+ // Function to initiate the connection to the raspberry pi
+ //
+ // Calling Sequence
+ // raspi(adress,username)
+ //
+ // Parameters
+ // address : Network address of the raspberry pi. Eg:10.42.0.82
+ // username: username on the raspberry pi.
+ //
+ // Description
+ // This program initiates the connection to the raspberry pi at the given address by running the python server script on port 9077 on the pi.
+ //
+ // Examples
+ // raspi('169.254.191.116','pi')
+ // See also
+ // raspi_close
+ //
+ // Authors
+ // Jorawar Singh
+
+ global RPI_piAdress;
+ RPI_piAdress=adress;
+
+ disp("Step 1/3")
+ TCL_EvalStr("exec mintty ssh "+username+"@"+adress+" mkdir .scilab");
+ disp("Step 2/3")
+ TCL_EvalStr("exec mintty scp "+RPI_MacrosPath+"serverWP.py "+username+"@"+adress+":/home/"+username+"/.scilab/");
+ disp("Step 3/3 (Wait ~15 seconds)")
+ TCL_EvalStr("exec mintty ssh "+username+"@"+adress+" sudo python /home/"+username+"/.scilab/serverWP.py &");
+ sleep(15000)
+ TCL_EvalStr("exec taskkill /IM mintty.exe");
+ endfunction
+end
diff --git a/macros/Hardware/RasberryPi/raspi_close.sci b/macros/Hardware/RasberryPi/raspi_close.sci
new file mode 100755
index 0000000..b5bb0ee
--- /dev/null
+++ b/macros/Hardware/RasberryPi/raspi_close.sci
@@ -0,0 +1,34 @@
+// 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
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function raspi_close()
+// Function to close an open Raspberry-Pi connection.
+//
+// Calling Sequence
+// raspi_close()
+//
+// Description
+// This function causes the pyhton server script running on Raspberry pi to close, irrespective of it being started natively on pi or by using raspi function.
+//
+// Examples
+// raspi_close()
+// See also
+// raspi
+//
+// Authors
+// Jorawar Singh
+
+ commande="cls#0#";
+ if getos()=="Linux" then
+ unix_w("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ elseif getos()=="Windows" then
+ RPI_winR=dos("python -c ""import socket;s=socket.socket();s.connect((''"+RPI_piAdress+"'',9077));s.send(''"+commande+"'');print(s.recv(1024));s.close()""");
+ end
+endfunction
diff --git a/macros/Hardware/RasberryPi/u16RPISerialDataAvail.sci b/macros/Hardware/RasberryPi/u16RPISerialDataAvail.sci
deleted file mode 100644
index 6eb29a1..0000000
--- a/macros/Hardware/RasberryPi/u16RPISerialDataAvail.sci
+++ /dev/null
@@ -1,37 +0,0 @@
-// 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 bytes = RPI_SerialDataAvail(fd)
-// Function to get number of data bytes available on serial port specified by
-// file descriptor
-// Calling Sequence
-// RPI_SerialDataAvail(fd)
-//
-// Parameters
-// fd : file descriptor for already opened serial port
-// Description
-// This functions returns number of characters available to read,
-// otherwise reads -1 in case of error. This function can be used to check
-// new data is available on serial port
-// Examples
-// serial = RPI_SerialOpen("/dev/ttyAMA0", 9600);
-// charsToRead = RPI_SerialDataAvail(serial);
-// See also
-// RPI_SerialOpen RPI_SerialGetChar
-//
-//
-// Authors
-// Siddhesh Wani
-// -----------------------------------------------------------------
-
-// This is curretly dummy function. It provides no functionality but is required
-// for providing support for generating C code for RPi.
-
-bytes = 0;
-
-endfunction \ No newline at end of file
diff --git a/macros/ImageProcessing/core/lib b/macros/ImageProcessing/core/lib
deleted file mode 100644
index 7f003c8..0000000
--- a/macros/ImageProcessing/core/lib
+++ /dev/null
Binary files differ
diff --git a/macros/ImageProcessing/highgui/lib b/macros/ImageProcessing/highgui/lib
deleted file mode 100644
index 787c25f..0000000
--- a/macros/ImageProcessing/highgui/lib
+++ /dev/null
Binary files differ
diff --git a/macros/ImageProcessing/imgproc/lib b/macros/ImageProcessing/imgproc/lib
deleted file mode 100644
index 93c8390..0000000
--- a/macros/ImageProcessing/imgproc/lib
+++ /dev/null
Binary files differ
diff --git a/macros/Scilab-Arduino/buildmacros.sce b/macros/Scilab-Arduino/buildmacros.sce
index dfeb475..7d533f7 100644..100755
--- a/macros/Scilab-Arduino/buildmacros.sce
+++ b/macros/Scilab-Arduino/buildmacros.sce
@@ -1,28 +1,13 @@
-// This file is released into the public domain
-
-Directories = [ "ASTManagement", ...
- "CCodeGeneration", ...
- "ErrorMessages", ...
- "findDeps", ...
- "FunctionAnnotation", ...
- "FunctionList", ...
- "GeneralFunctions", ...
- "SymbolTable", ...
- "ToolInitialization"...
- "Hardware/AVR"...
- "Scilab-Arduino" ];
-
-
-current_path_buildmacros = get_absolute_file_path("buildmacros.sce");
-
-for K=1:size(Directories,"*")
- myfile = current_path_buildmacros + filesep() + Directories(K) + filesep() + "buildmacros.sce";
- if isfile(myfile) then
- exec(myfile);
- end
-end
-
-clear current_path_buildmacros;
+// 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
tbx_build_macros(TOOLBOX_NAME, get_absolute_file_path('buildmacros.sce'));
diff --git a/macros/Scilab-Arduino/lib b/macros/Scilab-Arduino/lib
deleted file mode 100644
index 5b7beab..0000000
--- a/macros/Scilab-Arduino/lib
+++ /dev/null
Binary files differ
diff --git a/macros/SymbolTable/lib b/macros/SymbolTable/lib
deleted file mode 100644
index c42cf1a..0000000
--- a/macros/SymbolTable/lib
+++ /dev/null
Binary files differ
diff --git a/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci b/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci
index 82b2cd1..89ffc36 100644
--- a/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci
+++ b/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci
@@ -4874,6 +4874,101 @@ INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,E
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+//------------------------------------
+//---- Class ISEQUAL ----------------
+//------------------------------------
+ClassName = 'isequal';
+
+// --- 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');
+//Was FA_TP_USER
+//Cause some trouble if user specify some precision and if input(and also output) is complex.
+PrintStringInfo('OUT(1).TP= ''g''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('d0d0'+ArgSeparator+'g0',ClassFileName,'file','y');
+PrintStringInfo('d2d2'+ArgSeparator+'g0',ClassFileName,'file','y');
+PrintStringInfo('s0s0'+ArgSeparator+'g0',ClassFileName,'file','y');
+PrintStringInfo('s2s2'+ArgSeparator+'g0',ClassFileName,'file','y');
+PrintStringInfo('z0z0'+ArgSeparator+'g0',ClassFileName,'file','y');
+PrintStringInfo('z2z2'+ArgSeparator+'g0',ClassFileName,'file','y');
+PrintStringInfo('u160u160'+ArgSeparator+'g0',ClassFileName,'file','y');
+PrintStringInfo('u162u162'+ArgSeparator+'g0',ClassFileName,'file','y');
+
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'isequal';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+
+//------------------------------------
+//---- Class ERF ----------------
+//------------------------------------
+ClassName = 'erf';
+
+// --- 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 = 'erf';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+
+//------------------------------------
+//---- Class ERFC ----------------
+//------------------------------------
+ClassName = 'erfc';
+
+// --- 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 = 'erfc';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+
// -------------------
// --- Class Spec. ---
// -------------------
diff --git a/macros/ToolInitialization/lib b/macros/ToolInitialization/lib
deleted file mode 100644
index 267c9c9..0000000
--- a/macros/ToolInitialization/lib
+++ /dev/null
Binary files differ
diff --git a/macros/findDeps/getAllHeaders.sci b/macros/findDeps/getAllHeaders.sci
index cd2d1a3..95ec1e9 100644
--- a/macros/findDeps/getAllHeaders.sci
+++ b/macros/findDeps/getAllHeaders.sci
@@ -139,6 +139,7 @@ function allHeaders = getAllHeaders(SharedInfo)
"src/c/elementaryFunctions/includes/ismatrix.h"
"src/c/elementaryFunctions/includes/asind.h"
"src/c/elementaryFunctions/includes/atand.h"
+ "src/c/elementaryFunctions/includes/isequal.h"
"src/c/statisticsFunctions/includes/variance.h"
"src/c/statisticsFunctions/includes/sum.h"
"src/c/statisticsFunctions/includes/mean.h"
@@ -227,6 +228,8 @@ function allHeaders = getAllHeaders(SharedInfo)
"src/c/elementaryFunctions/includes/gcd.h"
"src/c/elementaryFunctions/includes/lcm.h"
"src/c/elementaryFunctions/includes/sinc.h"
+ "src/c/specialFunctions/includes/erf.h"
+ "src/c/specialFunctions/includes/erfc.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 0b1d8c6..8004373 100644
--- a/macros/findDeps/getAllInterfaces.sci
+++ b/macros/findDeps/getAllInterfaces.sci
@@ -130,6 +130,7 @@ function allInterfaces = getAllInterfaces(SharedInfo)
"src/c/elementaryFunctions/interfaces/int_atand.h"
"src/c/elementaryFunctions/interfaces/int_gcd.h"
"src/c/elementaryFunctions/interfaces/int_lcm.h"
+ "src/c/elementaryFunctions/interfaces/int_isequal.h"
"src/c/statisticsFunctions/interfaces/int_mean.h"
"src/c/statisticsFunctions/interfaces/int_median.h"
"src/c/statisticsFunctions/interfaces/int_meanf.h"
@@ -222,6 +223,8 @@ function allInterfaces = getAllInterfaces(SharedInfo)
"src/c/elementaryFunctions/interfaces/int_primes.h"
"src/c/elementaryFunctions/interfaces/int_factor.h"
"src/c/elementaryFunctions/interfaces/int_sinc.h"
+ "src/c/specialFunctions/interfaces/int_erf.h"
+ "src/c/specialFunctions/interfaces/int_erfc.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 fc8cd08..1337161 100644
--- a/macros/findDeps/getAllSources.sci
+++ b/macros/findDeps/getAllSources.sci
@@ -868,6 +868,14 @@ function allSources = getAllSources(SharedInfo,BuildTool)
"src/c/elementaryFunctions/atand/satands.c"
"src/c/elementaryFunctions/discrete_mathematics/gcd/u8gcda.c"
"src/c/elementaryFunctions/discrete_mathematics/lcm/u8lcma.c"
+ "src/c/elementaryFunctions/isequal/disequals.c"
+ "src/c/elementaryFunctions/isequal/disequala.c"
+ "src/c/elementaryFunctions/isequal/sisequals.c"
+ "src/c/elementaryFunctions/isequal/sisequala.c"
+ "src/c/elementaryFunctions/isequal/zisequals.c"
+ "src/c/elementaryFunctions/isequal/zisequala.c"
+ "src/c/elementaryFunctions/isequal/u16isequals.c"
+ "src/c/elementaryFunctions/isequal/u16isequala.c"
"src/c/statisticsFunctions/max/dmaxa.c"
"src/c/statisticsFunctions/max/smaxa.c"
"src/c/statisticsFunctions/max/srowmaxa.c"
@@ -1345,6 +1353,14 @@ function allSources = getAllSources(SharedInfo,BuildTool)
"src/c/elementaryFunctions/discrete_mathematics/primes/sprimess.c"
"src/c/elementaryFunctions/discrete_mathematics/factor/dfactors.c"
"src/c/elementaryFunctions/discrete_mathematics/factor/sfactors.c"
+ "src/c/specialFunctions/erf/derfs.c"
+ "src/c/specialFunctions/erf/derfa.c"
+ "src/c/specialFunctions/erf/serfs.c"
+ "src/c/specialFunctions/erf/serfa.c"
+ "src/c/specialFunctions/erfc/derfcs.c"
+ "src/c/specialFunctions/erfc/derfca.c"
+ "src/c/specialFunctions/erfc/serfcs.c"
+ "src/c/specialFunctions/erfc/serfca.c"
"src/c/CACSD/syslin/dsyslina.c"
"src/c/CACSD/lqr/dlqra.c"
"src/c/CACSD/lqe/dlqea.c"
diff --git a/macros/findDeps/lib b/macros/findDeps/lib
deleted file mode 100644
index 69c3c0e..0000000
--- a/macros/findDeps/lib
+++ /dev/null
Binary files differ
diff --git a/macros/lib b/macros/lib
deleted file mode 100644
index f759663..0000000
--- a/macros/lib
+++ /dev/null
Binary files differ
diff --git a/src/c/elementaryFunctions/includes/isequal.h b/src/c/elementaryFunctions/includes/isequal.h
new file mode 100644
index 0000000..d22a804
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/isequal.h
@@ -0,0 +1,38 @@
+ /* 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 __ISEQUAL_H__
+#define __ISEQUAL_H__
+#include "types.h"
+#include "doubleComplex.h"
+#include "floatComplex.h"
+#include "uint16.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+char disequals(double inp1, double inp2);
+char disequala(double* inp1, int size1r, int size1c, double* inp2, int size2r, int size2c);
+char sisequals(float inp1, float inp2);
+char sisequala(float* inp1, int size1r, int size1c, float* inp2, int size2r, int size2c);
+char zisequals(doubleComplex inp1, doubleComplex inp2);
+char zisequala(doubleComplex* inp1, int size1r, int size1c, doubleComplex* inp2, int size2r, int size2c);
+char u16isequals(uint16 inp1, uint16 inp2);
+char u16isequala(uint16* inp1, int size1r, int size1c, uint16* inp2, int size2r, int size2c);
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__ISEQUAL_H__*/
diff --git a/src/c/elementaryFunctions/interfaces/int_isequal.h b/src/c/elementaryFunctions/interfaces/int_isequal.h
new file mode 100644
index 0000000..d22ab65
--- /dev/null
+++ b/src/c/elementaryFunctions/interfaces/int_isequal.h
@@ -0,0 +1,35 @@
+ /* 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_ISEQUAL_H__
+#define __INT_ISEQUAL_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+#define d0d0isequalg0(in1,in2) disequals(in1,in2)
+#define d2d2isequalg0(in1, s1, in2, s2) disequala(in1, s1[0], s1[1], in2, s2[0], s2[1])
+#define s0s0isequalg0(in1,in2) sisequals(in1,in2)
+#define s2s2isequalg0(in1, s1, in2, s2) sisequala(in1, s1[0], s1[1], in2, s2[0], s2[1])
+#define z0z0isequalg0(in1,in2) zisequals(in1,in2)
+#define z2z2isequalg0(in1, s1, in2, s2) zisequala(in1, s1[0], s1[1], in2, s2[0], s2[1])
+#define u160u160isequalg0(in1,in2) u16isequals(in1,in2)
+#define u162u162isequalg0(in1, s1, in2, s2) u16isequala(in1, s1[0], s1[1], in2, s2[0], s2[1])
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__INT_ISEQUAL_H__*/
diff --git a/src/c/elementaryFunctions/isequal/disequala.c b/src/c/elementaryFunctions/isequal/disequala.c
new file mode 100644
index 0000000..8781ac7
--- /dev/null
+++ b/src/c/elementaryFunctions/isequal/disequala.c
@@ -0,0 +1,39 @@
+/* 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 <isreal.h>
+
+char disequala(double* inp1, int size1r, int size1c, double* inp2, int size2r, int size2c)
+{
+ if ((size1r != size2r) && (size1c != size2c))
+ return 'F';
+ else
+ {
+ int i, f = 0;
+ for (i = 0; i<size1r*size1c; i++)
+ {
+ if (inp1[i] != inp2[i])
+ {
+ f = 1;
+ break;
+ }
+ }
+
+ if (f == 1)
+ return 'F';
+ else
+ return 'T';
+ }
+}
+
diff --git a/src/c/elementaryFunctions/isequal/disequals.c b/src/c/elementaryFunctions/isequal/disequals.c
new file mode 100644
index 0000000..319c330
--- /dev/null
+++ b/src/c/elementaryFunctions/isequal/disequals.c
@@ -0,0 +1,24 @@
+/* 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 <isreal.h>
+
+char disequals(double inp1, double inp2)
+{
+ if (inp1 == inp2)
+ return 'T';
+ else
+ return 'F';
+}
+
diff --git a/src/c/elementaryFunctions/isequal/sisequala.c b/src/c/elementaryFunctions/isequal/sisequala.c
new file mode 100644
index 0000000..2634efd
--- /dev/null
+++ b/src/c/elementaryFunctions/isequal/sisequala.c
@@ -0,0 +1,39 @@
+/* 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 <isreal.h>
+
+char sisequala(float* inp1, int size1r, int size1c, float* inp2, int size2r, int size2c)
+{
+ if ((size1r != size2r) && (size1c != size2c))
+ return 'F';
+ else
+ {
+ int i, f = 0;
+ for (i = 0; i<size1r*size1c; i++)
+ {
+ if (inp1[i] != inp2[i])
+ {
+ f = 1;
+ break;
+ }
+ }
+
+ if (f == 1)
+ return 'F';
+ else
+ return 'T';
+ }
+}
+
diff --git a/src/c/elementaryFunctions/isequal/sisequals.c b/src/c/elementaryFunctions/isequal/sisequals.c
new file mode 100644
index 0000000..66bef36
--- /dev/null
+++ b/src/c/elementaryFunctions/isequal/sisequals.c
@@ -0,0 +1,24 @@
+/* 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 <isreal.h>
+
+char sisequals(float inp1, float inp2)
+{
+ if (inp1 == inp2)
+ return 'T';
+ else
+ return 'F';
+}
+
diff --git a/src/c/elementaryFunctions/isequal/u16isequala.c b/src/c/elementaryFunctions/isequal/u16isequala.c
new file mode 100644
index 0000000..62de1e8
--- /dev/null
+++ b/src/c/elementaryFunctions/isequal/u16isequala.c
@@ -0,0 +1,40 @@
+/* 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 <isreal.h>
+#include "uint16.h"
+
+char u16isequala(uint16* inp1, int size1r, int size1c, uint16* inp2, int size2r, int size2c)
+{
+ if ((size1r != size2r) && (size1c != size2c))
+ return 'F';
+ else
+ {
+ int i, f = 0;
+ for (i = 0; i<size1r*size1c; i++)
+ {
+ if (inp1[i] != inp2[i])
+ {
+ f = 1;
+ break;
+ }
+ }
+
+ if (f == 1)
+ return 'F';
+ else
+ return 'T';
+ }
+}
+
diff --git a/src/c/elementaryFunctions/isequal/u16isequals.c b/src/c/elementaryFunctions/isequal/u16isequals.c
new file mode 100644
index 0000000..4f797d4
--- /dev/null
+++ b/src/c/elementaryFunctions/isequal/u16isequals.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 <isreal.h>
+#include "uint16.h"
+
+char u16isequals(uint16 inp1, uint16 inp2)
+{
+ if (inp1 == inp2)
+ return 'T';
+ else
+ return 'F';
+}
+
diff --git a/src/c/elementaryFunctions/isequal/zisequala.c b/src/c/elementaryFunctions/isequal/zisequala.c
new file mode 100644
index 0000000..13d241f
--- /dev/null
+++ b/src/c/elementaryFunctions/isequal/zisequala.c
@@ -0,0 +1,40 @@
+/* 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 <isreal.h>
+#include "doubleComplex.h"
+
+char zisequala(doubleComplex* inp1, int size1r, int size1c, doubleComplex* inp2, int size2r, int size2c)
+{
+ if ((size1r != size2r) && (size1c != size2c))
+ return 'F';
+ else
+ {
+ int i, f = 0;
+ for (i = 0; i<size1r*size1c; i++)
+ {
+ if (!(zisequals(inp1[i],inp2[i])))
+ {
+ f = 1;
+ break;
+ }
+ }
+
+ if (f == 1)
+ return 'F';
+ else
+ return 'T';
+ }
+}
+
diff --git a/src/c/elementaryFunctions/isequal/zisequals.c b/src/c/elementaryFunctions/isequal/zisequals.c
new file mode 100644
index 0000000..6914dc8
--- /dev/null
+++ b/src/c/elementaryFunctions/isequal/zisequals.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 <isreal.h>
+#include "doubleComplex.h"
+
+char zisequals(doubleComplex inp1, doubleComplex inp2)
+{
+ if ((zreals(inp1) == zreals(inp2)) && (zimags(inp1) == zimags(inp2)))
+ return 'T';
+ else
+ return 'F';
+}
+
diff --git a/src/c/specialFunctions/erf/derfa.c b/src/c/specialFunctions/erf/derfa.c
new file mode 100644
index 0000000..972d743
--- /dev/null
+++ b/src/c/specialFunctions/erf/derfa.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 "erf.h"
+
+void derfa(double* inp1, int sizer, int sizec,double* out)
+{
+ for (int i = 0; i < sizer*sizec; i++)
+ {
+ out[i] = erf(inp1[i]);
+ }
+}
+
diff --git a/src/c/specialFunctions/erf/derfs.c b/src/c/specialFunctions/erf/derfs.c
new file mode 100644
index 0000000..22b5d64
--- /dev/null
+++ b/src/c/specialFunctions/erf/derfs.c
@@ -0,0 +1,22 @@
+/* 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 "erf.h"
+
+double derfs(double inp1)
+{
+ return erf(inp1);
+}
+
diff --git a/src/c/specialFunctions/erf/serfa.c b/src/c/specialFunctions/erf/serfa.c
new file mode 100644
index 0000000..0db4a7b
--- /dev/null
+++ b/src/c/specialFunctions/erf/serfa.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 "erf.h"
+
+void serfa(float* inp1, int sizer, int sizec,float* out)
+{
+ for (int i = 0; i < sizer*sizec; i++)
+ {
+ out[i] = erf(inp1[i]);
+ }
+}
+
diff --git a/src/c/specialFunctions/erf/serfs.c b/src/c/specialFunctions/erf/serfs.c
new file mode 100644
index 0000000..66638a1
--- /dev/null
+++ b/src/c/specialFunctions/erf/serfs.c
@@ -0,0 +1,22 @@
+/* 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 "erf.h"
+
+float serfs(float inp1)
+{
+ return erf(inp1);
+}
+
diff --git a/src/c/specialFunctions/erfc/derfca.c b/src/c/specialFunctions/erfc/derfca.c
new file mode 100644
index 0000000..85c92ef
--- /dev/null
+++ b/src/c/specialFunctions/erfc/derfca.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 "erfc.h"
+
+void derfca(double* inp1, int sizer, int sizec, double* out)
+{
+ for (int i = 0; i < sizer*sizec; i++)
+ {
+ out[i] = derfcs(inp1[i]);
+ }
+}
+
diff --git a/src/c/specialFunctions/erfc/derfcs.c b/src/c/specialFunctions/erfc/derfcs.c
new file mode 100644
index 0000000..31c9846
--- /dev/null
+++ b/src/c/specialFunctions/erfc/derfcs.c
@@ -0,0 +1,22 @@
+/* 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 "erfc.h"
+
+double derfcs(double inp1)
+{
+ return (1-erf(inp1));
+}
+
diff --git a/src/c/specialFunctions/erfc/serfca.c b/src/c/specialFunctions/erfc/serfca.c
new file mode 100644
index 0000000..469c5a1
--- /dev/null
+++ b/src/c/specialFunctions/erfc/serfca.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 "erfc.h"
+
+void serfca(float* inp1, int sizer, int sizec, float* out)
+{
+ for (int i = 0; i < sizer*sizec; i++)
+ {
+ out[i] = serfcs(inp1[i]);
+ }
+}
+
diff --git a/src/c/specialFunctions/erfc/serfcs.c b/src/c/specialFunctions/erfc/serfcs.c
new file mode 100644
index 0000000..3f93a80
--- /dev/null
+++ b/src/c/specialFunctions/erfc/serfcs.c
@@ -0,0 +1,22 @@
+/* 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 "erfc.h"
+
+float serfcs(float inp1)
+{
+ return (1-erf(inp1));
+}
+
diff --git a/src/c/specialFunctions/includes/erf.h b/src/c/specialFunctions/includes/erf.h
new file mode 100644
index 0000000..86bb15d
--- /dev/null
+++ b/src/c/specialFunctions/includes/erf.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 __ERF_H__
+#define __ERF_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 derfs(double inp1);
+float serfs(float inp1);
+void derfa(double* inp1, int sizer, int sizec,double* out);
+void serfa(float* inp1, int sizer, int sizec,float* out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__ERF_H__*/
diff --git a/src/c/specialFunctions/includes/erfc.h b/src/c/specialFunctions/includes/erfc.h
new file mode 100644
index 0000000..77847ab
--- /dev/null
+++ b/src/c/specialFunctions/includes/erfc.h
@@ -0,0 +1,36 @@
+/*
+ * 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 __ERFC_H__
+#define __ERFC_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 derfcs(double inp1);
+void derfca(double* inp1, int sizer, int sizec,double* out);
+float serfcs(float inp1);
+void serfca(float* inp1, int sizer, int sizec, float* out);
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__ERFC_H__*/
diff --git a/src/c/specialFunctions/interfaces/int_erf.h b/src/c/specialFunctions/interfaces/int_erf.h
new file mode 100644
index 0000000..87f11f9
--- /dev/null
+++ b/src/c/specialFunctions/interfaces/int_erf.h
@@ -0,0 +1,32 @@
+/* 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_ERF_H__
+#define __INT_ERF_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+#define d0erfd0(in1) derfs(in1)
+#define s0erfs0(in1) serfs(in1)
+#define d2erfd2(in1,size,out) derfa(in1,size[0],size[1],out)
+#define s2erfs2(in1,size,out) serfa(in1,size[0],size[1],out)
+
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__INT_ERF_H__*/
diff --git a/src/c/specialFunctions/interfaces/int_erfc.h b/src/c/specialFunctions/interfaces/int_erfc.h
new file mode 100644
index 0000000..64ae0fa
--- /dev/null
+++ b/src/c/specialFunctions/interfaces/int_erfc.h
@@ -0,0 +1,32 @@
+/* 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_ERFC_H__
+#define __INT_ERFC_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+#define d0erfcd0(in1) derfcs(in1)
+#define s0erfcs0(in1) serfcs(in1)
+#define d2erfcd2(in1,size,out) derfca(in1,size[0],size[1],out)
+#define s2erfcs2(in1,size,out) serfca(in1,size[0],size[1],out)
+
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__INT_ERFC_H__*/
diff --git a/src/c/string/strcspn/gstrcspna.c b/src/c/string/strcspn/gstrcspna.c
index 2c83c72..91de8af 100644
--- a/src/c/string/strcspn/gstrcspna.c
+++ b/src/c/string/strcspn/gstrcspna.c
@@ -14,19 +14,28 @@
#include "strcspn.h"
uint8 gstrcspna(char *str1,int size1,char *str2,int size2)
{
- int ind,i,j;
- for(i=0;i<=size2;i++)
+ uint8 ind=size1+1;
+ int l,m;
+ for(m=0;m<size2;m++)
{
- for(j=0;j<=size1;j++)
- {
- if(str2[i]==str1[j])
+ int tp;
+ for(l=0;l<size1;l++)
{
- ind=j;
- break;
+ if(str2[m]==str1[l])
+ {
+ tp=l;
+ if(ind>tp)
+ {
+ ind=tp;
+ }
+ }
}
- }
}
- return (ind+1);
+ if(ind==size1+1)
+ {
+ ind=size1;
+ }
+ return ind;
}
diff --git a/src/python/serverWP.py b/src/python/serverWP.py
new file mode 100755
index 0000000..c41c25f
--- /dev/null
+++ b/src/python/serverWP.py
@@ -0,0 +1,203 @@
+import wiringpi as wp
+import socket
+import subprocess as sp
+import logging
+import traceback
+import sys
+import RPi.GPIO as GPIO
+
+logging.basicConfig(filename='log.txt',level=logging.DEBUG)
+logger=logging.getLogger(__name__)
+pinNum=0
+#wp.wiringPiSetup()
+GPIO.setmode(GPIO.BCM)
+
+commands={
+'cls':'s.close()\n\ta="Connection Closed"\n\tgo=0',
+'i2c':'if sys.version_info<(3,0):\n\t\ta=sp.check_output(inputList[0].split())\n\telse:\n\t\ta=sp.run(inputList[0].split(),stdout=sp.PIPE).stdout.decode("utf-8")',
+'anR':'a=wp.analogRead(int(inputList[0]))',
+'anW':'a=wp.analogWrite(int(inputList[0]),int(inputList[1]))',
+'bRv':'a=wp.piBoardRev()',
+'BtR':'a=wp.digitalReadByte()',
+'BtW':'a=wp.digitalWriteByte(int(inputList[0]))',
+'CR1':'a=wp.wiringPiI2CRead(int(inputList[0]))',
+'CR2':'a=wp.wiringPiI2CReadReg8(int(inputList[0]),int(inputList[1]))',
+'CR3':'a=wp.wiringPiI2CReadReg16(int(inputList[0]),int(inputList[1]))',
+'CSe':'a=wp.wiringPiI2CSetup(int(inputList[0]))',
+'CSI':'a=wp.wiringPiI2CSetupInterface(inputList[0],int(inputList[1]))',
+'CW1':'a=wp.wiringPiI2CWrite(int(inputList[0]),int(inputList[1]))',
+'CW2':'a=wp.wiringPiI2CWriteReg8(int(inputList[0]),int(inputList[1]),int(inputList[2]))',
+'CW3':'a=wp.wiringPiI2CWriteReg16(int(inputList[0]),int(inputList[1]),int(inputList[2]))',
+'deS':'a=wp.delay(int(inputList[0]))',
+'deU':'a=wp.delayMicroseconds(int(inputList[0]))',
+'diR':'a=wp.digitalRead(int(inputList[0]))',
+'diW':'a=wp.digitalWrite(int(inputList[0]),int(inputList[1]))',
+'dsS':'a=wp.ds1302Setup(int(inputList[0]),int(inputList[1]),int(inputList[2]),)',
+'dsR':'a=wp.ds1302rtcRead(int(inputList[0]))',
+'dsW':'a=wp.ds1302rtcWrite(int(inputList[0]),int(inputList[1]))',
+'dsr':'a=wp.ds1302ramRead(int(inputList[0]))',
+'dsw':'a=wp.ds1302ramWrite(int(inputList[0]),int(inputList[1]))',
+'dsc':'a=wp.ds1302clockRead(int(inputList[0]))',
+'dsC':'a=wp.ds1302clockWrite(int(inputList[0]))',
+'dst':'a=wp.ds1302trickleCharge(int(inputList[0]),int(inputList[1]))',
+'gAS':'a=wp.gertboardAnalogSetup(int(inputList[0]))',
+'gAR':'a=wp.gertboardAnalogRead(int(inputList[0]))',
+'gAt':'a=wp.getAlt(int(inputList[0]))',
+'gAW':'a=wp.gertboardAnalogWrite(int(inputList[0]),int(inputList[1]))',
+'gSS':'a=wp.gertboardSPISetup()',
+'Int':'if pinNum==1:\n\t\tpin=wp.wpiPinToGpio(int(inputList[0]))\n\telif pinNum==2:\n\t\tpin=int(inputList[0])\n\telif pinNum==3:\n\t\tpin=wp.physPinToGpio(int(inputList[0]))\n\tGPIO.setup(pin,GPIO.IN,pull_up_down=GPIO.PUD_DOWN)\n\tif int(inputList[1])==-1:\n\t\ta=GPIO.wait_for_edge(pin,GPIO.RISING)\n\telse:\n\t\ta=GPIO.wait_for_edge(pin,GPIO.RISING,timeout=int(inputList[1]))\n\tif type(a)==int:\n\t\ta=1\n\telse:\n\t\ta=0',
+#'a=wp.waitForInterrupt(int(inputList[0]),int(inputList[1]))',
+#'ISR':'a=wp.wiringPiISR(int(inputList[0]),int(inputList[1]),inputList[2])',
+'lCB':'a=wp.lcdCursorBlink(int(inputList[0]),int(inputList[1]))',
+'lCD':'a=wp.lcdCharDef(int(inputList[0]),int(inputList[1]),[int(inputList[2]),int(inputList[3]),int(inputList[4]),int(inputList[5]),int(inputList[6]),int(inputList[7]),int(inputList[8]),int(inputList[9])])',
+'lCl':'a=wp.lcdClear(int(inputList[0]))',
+'lCu':'a=wp.lcdCursor(int(inputList[0]),int(inputList[1]))',
+'lDs':'a=wp.lcdDisplay(int(inputList[0]),int(inputList[1]))',
+'lHo':'a=wp.lcdHome(int(inputList[0]))',
+'lIn':'a=wp.lcdInit(int(inputList[0]),int(inputList[1]),int(inputList[2]),int(inputList[3]),int(inputList[4]),int(inputList[5]),int(inputList[6]),int(inputList[7]),int(inputList[8]),int(inputList[9]),int(inputList[10]),int(inputList[11]),int(inputList[12]))',
+'lok':'a=wp.piLock(int(inputList[0]))',
+'lPc':'a=wp.lcdPutchar(int(inputList[0]),int(inputList[1]))',
+'lPo':'a=wp.lcdPosition(int(inputList[0]),int(inputList[1]),int(inputList[2]))',
+'lPf':'a=wp.lcdPrintf(int(inputList[0]),inputList[1])',
+'lPu':'a=wp.lcdPuts(int(inputList[0]),inputList[1])',
+'lSC':'a=wp.lcdSendCommand(int(inputList[0]),inputList[1])',
+'Lse':'a=wp.lcd128x64setup()',
+'Lup':'a=wp.lcd128x64update()',
+'LOr':'a=wp.lcd128x64setOrigin(int(inputList[0]),int(inputList[1]))',
+'LOn':'a=wp.lcd128x64setOrientation(int(inputList[0]))',
+#'LCo':'a=wp.lcd128x64orientCoord(int(inputList[0]),int(inputList[1]))',
+#'LSS':'a=wp.lcd128x64ScreenSize(int(inputList[0]),int(inputList[1]))',
+'Lpo':'a=wp.lcd128x64point(int(inputList[0]),int(inputList[1]),int(inputList[2]))',
+'Lli':'a=wp.lcd128x64line(int(inputList[0]),int(inputList[1]),int(inputList[2]),int(inputList[3]),int(inputList[4]))',
+'LlT':'a=wp.lcd128x64lineTo(int(inputList[0]),int(inputList[1]),int(inputList[2]))',
+'Lre':'a=wp.lcd128x64rectangle(int(inputList[0]),int(inputList[1]),int(inputList[2]),int(inputList[3]),int(inputList[4]),int(inputList[5]))',
+'Lci':'a=wp.lcd128x64circle(int(inputList[0]),int(inputList[1]),int(inputList[2]),int(inputList[0]),int(inputList[3]),int(inputList[4]))',
+'Lel':'a=wp.lcd128x64ellipse(int(inputList[0]),int(inputList[1]),int(inputList[2]),int(inputList[3]),int(inputList[4]),int(inputList[5]))',
+'Lpc':'a=wp.lcd128x64putchar(int(inputList[0]),int(inputList[1]),int(inputList[2]),int(inputList[3]),int(inputList[4]),int(inputList[5]))',
+'LPu':'a=wp.lcd128x64puts(int(inputList[0]),int(inputList[1]),inputList[2],int(inputList[3]),int(inputList[4]))',
+'LCl':'a=wp.lcd128x64clear(int(inputList[0]))',
+'mic':'a=wp.micros()',
+'mil':'a=wp.millis()',
+'mp6':'a=wp.mcp23016Setup(int(inputList[0]),int(inputList[1]))',
+'mp7':'a=wp.mcp23017Setup(int(inputList[0]),int(inputList[1]))',
+'mp8':'a=wp.mcp23008Setup(int(inputList[0]),int(inputList[1]))',
+#'mp2':'a=wp.mcp3002Setup(int(inputList[0]),int(inputList[1]))',
+#'mp4':'a=wp.mcp3004Setup(int(inputList[0]),int(inputList[1]))',
+#'mp3':'a=wp.mcp3422Setup(int(inputList[0]),int(inputList[1]),int(inputList[2]),int(inputList[3]))',
+#'mp0':'a=wp.mcp4802Setup(int(inputList[0]),int(inputList[1]))',
+'ms7':'a=wp.mcp23s17Setup(int(inputList[0]),int(inputList[1]),int(inputList[2]))',
+'ms8':'a=wp.mcp23s08Setup(int(inputList[0]),int(inputList[1]),int(inputList[2]))',
+'mxR':'a=wp.maxDetectRead(int(inputList[0]),inputList[1])',
+'mx3':'a=wp.max31855Setup(int(inputList[0]),int(inputList[1]))',
+'mx5':'a=wp.max5322Setup(int(inputList[0]),int(inputList[1]))',
+'NES':'a=wp.setupNesJoystick(int(inputList[0]),int(inputList[1]),int(inputList[2]))',
+'NER':'a=wp.readNesJoystick(int(inputList[0]))',
+'pDr':'a=wp.setPadDrive(int(inputList[0]),int(inputList[1]))',
+'pf7':'a=wp.pcf8574Setup(int(inputList[0]),int(inputList[1]))',
+'pf9':'a=wp.pcf8591Setup(int(inputList[0]),int(inputList[1]))',
+'pG1':'a=wp.piGlow1(int(inputList[0]),int(inputList[1]),int(inputList[2]))',
+'pGL':'a=wp.piGlowLeg(int(inputList[0]),int(inputList[1]))',
+'pGR':'a=wp.piGlowRing(int(inputList[0]),int(inputList[1]))',
+'pGS':'a=wp.piGlowSetup(int(inputList[0]))',
+'PhS':'a=wp.scrollPhatSetup()',
+'PhU':'a=wp.scrollPhatUpdate()',
+'PhC':'a=wp.scrollPhatClear()',
+'Php':'a=wp.scrollPhatPoint(int(inputList[0]),int(inputList[1]),int(inputList[2]))',
+'PhL':'a=wp.scrollPhatLine(int(inputList[0]),int(inputList[1]),int(inputList[2]),int(inputList[3]),int(inputList[4]))',
+'PhT':'a=wp.scrollPhatLineTo(int(inputList[0]),int(inputList[1]),int(inputList[2]))',
+'PhR':'a=wp.scrollPhatRectangle(int(inputList[0]),int(inputList[1]),int(inputList[2]),int(inputList[3]),int(inputList[4]),int(inputList[5]),)',
+'Phc':'a=wp.scrollPhatPutchar(int(inputList[0]))',
+'PhP':'a=wp.scrollPhatPuts(inputList[0])',
+'Phf':'a=wp.scrollPhatPrintf(inputList[0])',
+'Phs':'a=wp.scrollPhatPrintSpeed(int(inputList[0]))',
+'PhI':'a=wp.scrollPhatIntensity(int(inputList[0]),)',
+'plC':'a=wp.pullUpDnControl(int(inputList[0]),int(inputList[1]))',
+'pMA':'a=wp.pinModeAlt(int(inputList[0]),int(inputList[1]))',
+'pN0':'if pinNum==0:\n\t\ta=wp.wiringPiSetup()\n\t\tpinNum=1\n\telse:\n\t\ta="RPI_pinNumbering has already been called once. Close and restart the connection to change the numbering sequence."',
+'pN1':'if pinNum==0:\n\t\ta=wp.wiringPiSetupGpio()\n\t\tpinNum=2\n\telse:\n\t\ta="RPI_pinNumbering has already been called once. Close and restart the connection to change the numbering sequence."',
+'pN2':'if pinNum==0:\n\t\ta=wp.wiringPiSetupPhys()\n\t\tpinNum=3\n\telse:\n\t\ta="RPI_pinNumbering has already been called once. Close and restart the connection to change the numbering sequence."',
+'pN3':'if pinNum==0:\n\t\ta=wp.wiringPiSetupSys()\n\t\tpinNum=4\n\telse:\n\t\ta="RPI_pinNumbering has already been called once. Close and restart the connection to change the numbering sequence."()',
+'pnM':'a=wp.pinMode(int(inputList[0]),int(inputList[1]))',
+'pri':'a=wp.PiHiPri(int(inputList[0]))',
+'ptG':'a=wp.physPinToGpio(int(inputList[0]))',
+'pwC':'a=wp.pwmSetClock(int(inputList[0]))',
+'pwG':'a=wp.wpiPinToGpio(int(inputList[0]))',
+'pwM':'a=wp.pwmSetMode(int(inputList[0]))',
+'pwR':'a=wp.pwmSetRange(int(inputList[0]))',
+'pwT':'a=wp.pwmToneWrite(int(inputList[0]),int(inputList[1]))',
+'pwW':'a=wp.pwmWrite(int(inputList[0]),int(inputList[1]))',
+'sCl':'a=wp.serialClose(int(inputList[0]))',
+'sDA':'a=wp.serialDataAvail(int(inputList[0]))',
+'sFl':'a=wp.serialFlush(int(inputList[0]))',
+'sGc':'a=wp.serialGetchar(int(inputList[0]))',
+'shI':'a=wp.shiftIn(int(inputList[0]),int(inputList[1]),int(inputList[2]))',
+'shO':'a=wp.shiftOut(int(inputList[0]),int(inputList[1]),int(inputList[2]),int(inputList[3]))',
+'sn3':'a=wp.sn3218Setup(int(inputList[0]))',
+'sOp':'a=wp.serialOpen(inputList[0],int(inputList[1]))',
+'sPc':'a=wp.serialPutchar(int(inputList[0]),inputList[1])',
+'sPC':'a=wp.softPwmCreate(int(inputList[0]),int(inputList[1]),int(inputList[2]))',
+'SPD':'a=wp.wiringPiSPIDataRW(int(inputList[0]),inputList[1])',
+'sPf':'a=wp.serialPrintf(int(inputList[0]),inputList[1])',
+'SPF':'a=wp.wiringPiSPIGetFd(int(inputList[0]))',
+'SPM':'a=wp.wiringPiSPISetupMode(int(inputList[0]),int(inputList[1]),int(inputList[2]))',
+'SPS':'a=wp.wiringPiSPISetup(int(inputList[0]),int(inputList[1]))',
+'sPs':'a=wp.serialPuts(int(inputList[0]),inputList[1])',
+'sPS':'a=wp.softPwmStop(int(inputList[0]))',
+'sPW':'a=wp.softPwmWrite(int(inputList[0]),int(inputList[1]))',
+'sSS':'a=wp.softServoSetup(int(inputList[0]),int(inputList[1]),int(inputList[2]),int(inputList[3]),int(inputList[4]),int(inputList[5]),int(inputList[6]),int(inputList[7]))',
+'sSW':'a=wp.softServoWrite(int(inputList[0]),int(inputList[1]))',
+'sr5':'a=wp.sr595Setup(int(inputList[0]),int(inputList[1]),int(inputList[2]),int(inputList[3]),int(inputList[4]))',
+'sTC':'a=wp.softToneCreate(int(inputList[0]))',
+'sTS':'a=wp.softToneStop(int(inputList[0]))',
+'sTW':'a=wp.softToneWrite(int(inputList[0]),int(inputList[1]))',
+'thC':'a=wp.piThreadCreate(inputList[0])',
+'unl':'a=wp.piUnlock(int(inputList[0]))',
+'wtG':'a=wp.wpiPinToGpio(int(inputList[0]))',
+#'rRT':'a=wp.readRHT03(int(inputList[0]),int(inputList[1]),inputList[2])',
+'drc':'a=wp.drcSetupSerial(int(inputList[0]),int(inputList[1]),inputList[2],inputList[3])',
+'ads':'a=wp.ads1115Setup(int(inputList[0]),int(inputList[1]))',
+'wpF':'a=wp.wiringPiFailure(int(inputList[0]),inputList[1])',
+'wpN':'a=wp.wiringPiFindNode(int(inputList[0]))',
+'wpn':'a=wp.wiringPiNewNode(int(inputList[0]),int(inputList[1]))',
+#'pBI':'a=wp.piBoardId()',
+'gCS':'a=wp.gpioClockSet(int(inputList[0]),int(inputList[1]))',
+#'':'a=wp.',
+#'ISR':'if pinNum==1:\n\t\tpin=wp.wpiPinToGpio(29)\n\telif pinNum==2:\n\t\tpin=int(inputList[0])\n\telif pinNum==3:\n\t\t pin=wp.physPinToGpio(int(inputList[0]))\n\tGPIO.setup(pin,GPIO.IN,pull_up_down=inputList[2])\n\tGPIO.add_event_detect(pin,exec(inputList[1]),send2Client)',
+}
+
+s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
+s.bind(("0.0.0.0",9077))
+"""
+s2=socket.socket()
+s2.connect((addr[0],9078))
+
+def send2Client(pin):
+ s2.send(pin)
+"""
+s.listen(5)
+go=1
+while go==1:
+ c, addr=s.accept()
+ theInput=c.recv(1024)
+ cmd=theInput[:3]
+ hash1=3
+ Len=len(theInput)
+ for j in range(hash1+1,Len):
+ if theInput[j]=='#':
+ hash2=j
+ break
+ numInputs=int(theInput[hash1+1:hash2])
+ hash1=hash2
+ inputList=[]
+ for i in range(0,numInputs):
+ for j in range(hash1+1,Len):
+ if theInput[j]=='#':
+ hash2=j
+ break
+ inputList.append(theInput[hash1+1:hash2])
+ hash1=hash2
+ print ('try:\n\t'+commands[cmd]+'\nexcept Exception as err:\n\ta=traceback.format_exc()')
+ exec('try:\n\t'+commands[cmd]+'\nexcept Exception as err:\n\ta=traceback.format_exc()')
+ c.send(str(a))
+ c.close()
diff --git a/tests/unit_tests/test_RPi/wait_and_blink.sci b/tests/unit_tests/test_RPi/wait_and_blink.sci
new file mode 100644
index 0000000..099feaa
--- /dev/null
+++ b/tests/unit_tests/test_RPi/wait_and_blink.sci
@@ -0,0 +1,16 @@
+function wait_and_blink()
+ raspi("10.42.0.144","panda","pi"); // setup connection to Pi
+ RPI_pinNumbering("wiringpi"); // initialize pin numbering
+ RPI_pinMode(0,"out"); // set pin 0 as OUTPUT
+ RPI_pinMode(1,"in"); // set pin 1 as INPUT
+ RPI_waitForInterrupt(1,-1); // wait for Interrupt at pin 1,with no timeout.
+ for i=1:5 // interrupt recieved
+ RPI_digitalWrite(0,1); // set pin 0 voltage HIGH
+ RPI_delay(1000); // delay for 1 second
+ RPI_digitalWrite(0,0); // set pin 0 voltage LOW
+ RPI_delay(1000); // delay for 1 second
+ end
+ RPI_pinMode(0,"in"); // reset pin 0 to INPUT
+ disp("Demo completed successfully.")
+ raspi_close(); // close the opened connection
+endfunction
diff --git a/thirdparty/lib/raspberrypi/libcblas.a b/thirdparty/lib/raspberrypi/libcblas.a
index bbba3e2..719376d 100644
--- a/thirdparty/lib/raspberrypi/libcblas.a
+++ b/thirdparty/lib/raspberrypi/libcblas.a
Binary files differ
diff --git a/thirdparty/lib/raspberrypi/libgsl.a b/thirdparty/lib/raspberrypi/libgsl.a
index 1eb5d60..c37a696 100644
--- a/thirdparty/lib/raspberrypi/libgsl.a
+++ b/thirdparty/lib/raspberrypi/libgsl.a
Binary files differ
diff --git a/thirdparty/lib/raspberrypi/librefblas.a b/thirdparty/lib/raspberrypi/librefblas.a
index d1921c4..0307f90 100644
--- a/thirdparty/lib/raspberrypi/librefblas.a
+++ b/thirdparty/lib/raspberrypi/librefblas.a
Binary files differ