The scripting library provides the ability to transparently access programs written in a variety of scripting languages. This includes sharing data in both directions with these programs. And this enables the VEE user to utilize the full power of modern scripting languages. Scripting was developed by a University of Calgary team.
VEEOS Scripting enables access to world-class numerical and symbolic computation, as well as statistics, general programming, system analysis and much more.
Written in Python, the script server is the heart of VEEOS scripting capability. This small light code communicates with VEE and in turn has control and communications with the various language engines. The script server comprises three separate pieces of Python code along with an embedded Python installation. This work is open source and available from the Github project site.
With the exception of the embedded Python interpreter, the user is expected to install and control their own selected version of the various languages. The server is written to be compatible with almost any version of the languages including 32 or 64 bits and most any platform. For details related to each language see the below documentation.
After a scripting language is installed it is necessary to configure VEEOS such that the script server can automatically exercise the installed scripting language. In order to use the Script and ScriptPro capabilities of VEEOS, the configuration is done via a plain text (RC) file. This file may be manually edited or it may be edited using the ScriptConfig tool. In either case VEEOS reads this file automatically.
The relevant section of the default RC file looks like this:
# Scripting - modify to use server other than default
# gvar scriptHost Text <remote server IP or name>
gvar scriptPort Int32 65433
gvar scriptHost Text localhost
#
# Script options - uncomment as needed
gvar scriptTimeout Int32 2
#
gvar scriptExecutionMode Text DEBUG
#
gvar scriptLoopDelay Real64 100m
#
gvar scriptServerShutdownTimeout Int32 120
#
# Script engine install details - uncomment as needed
gvar scriptPythonPath Text "VEEROOT/veeos/python/python.exe"
#
gvar scriptInstalledPythonPath Text "full path"
#
gvar scriptOctavePath Text "full path"
#
gvar scriptRPath Text "full path"
#
gvar scriptMaximaPath Text "full path"
#
gvar scriptFijiPath Text "full path"
#
gvar scriptSpicePath Text "full path"
Note that the system-wide RC file is <vee install dir>/veeos/etc/veeos.rc
although other hierarchical locations work also. See the
Bootstrap documentation. The ScriptConfig tool
specifically edits the user's RC file <home directory>/veeos.rc.
As part of the VEEOS library, a copy of Python is included. Since this is an embeddable version it is compact and fast. Version 3.8.10 (64 bit) was chosen since that way Windows 7 can be supported as well as more modern Windows. If Windows XP needs to be supported then the user can install Python 2.7 or 3.4 and configure scripting to use that install rather than the embedded python. NOTE that Python before 2.7 or 3.4 will probably not work due to unmet dependencies.
VEEOS R2 is architected to allow for remote servers. This is generally untested but the intended process is below. Please direct any feedback you have to Stan Bischof
<vee install
dir>/veeos/python
) installation to your
remote server. numpy
scriptPort
and
scriptHost
variablesScripting in VEE was developed as a
student project at the
University of Calgary in spring/summer 2021. Led
by Faculty Advisor
Dr. Richard Wilson with the University's Cumming School of Medicine,
students Faisal Hossain and
Khaled Elmalawany
from Computer Sciences spent many hours designing and developing the scripting
interface as an extension of VEE. As a neuroscientist, Dr Wilson has long been
an example of the classical VEE user: a non-programmer who nevertheless needs to
automate various tasks. His most recent
work has required significant image processing and ImageJ
was the
chosen tool. By
sponsoring the scripting effort, Dr. Wilson gained access to many powerful tools
including ImageJ
(via the Fiji interface) from within his chosen VEE environment.
Stan Bischof
provided technical support as well as integration into VEEOS. Special thanks to
Keysight CEO Ron Nersesian who very graciously granted VEE licenses for use on
this project.