theonetruenerd commited on
Commit
44efec5
·
1 Parent(s): c535626

Upload 49 files

Browse files
Files changed (49) hide show
  1. VenusLibraryDocumentation-DocsForGPT/.gitignore +156 -0
  2. VenusLibraryDocumentation-DocsForGPT/.readthedocs.yaml +17 -0
  3. VenusLibraryDocumentation-DocsForGPT/README.rst +4 -0
  4. VenusLibraryDocumentation-DocsForGPT/docs/Makefile +20 -0
  5. VenusLibraryDocumentation-DocsForGPT/docs/make.bat +35 -0
  6. VenusLibraryDocumentation-DocsForGPT/docs/requirements.txt +2 -0
  7. VenusLibraryDocumentation-DocsForGPT/docs/source/ASWGlobal.rst +18 -0
  8. VenusLibraryDocumentation-DocsForGPT/docs/source/Aliquot_for_EasySteps_v2.txt +50 -0
  9. VenusLibraryDocumentation-DocsForGPT/docs/source/Aliquot_with_EasySteps.rst +33 -0
  10. VenusLibraryDocumentation-DocsForGPT/docs/source/AlphaNumericConversion.rst +63 -0
  11. VenusLibraryDocumentation-DocsForGPT/docs/source/Array.txt +213 -0
  12. VenusLibraryDocumentation-DocsForGPT/docs/source/ArrayTools.rst +154 -0
  13. VenusLibraryDocumentation-DocsForGPT/docs/source/CheckCarrierPresence_V2.rst +34 -0
  14. VenusLibraryDocumentation-DocsForGPT/docs/source/ColourSchemeLibrary.rst +17 -0
  15. VenusLibraryDocumentation-DocsForGPT/docs/source/ConvertFileToASCII.rst +17 -0
  16. VenusLibraryDocumentation-DocsForGPT/docs/source/DataManagerInterface - unfinished.rst +52 -0
  17. VenusLibraryDocumentation-DocsForGPT/docs/source/DebugAssist.rst +19 -0
  18. VenusLibraryDocumentation-DocsForGPT/docs/source/Directory_Unfinished.rst +21 -0
  19. VenusLibraryDocumentation-DocsForGPT/docs/source/EditFileAttributes.rst +47 -0
  20. VenusLibraryDocumentation-DocsForGPT/docs/source/ErrorCodes.rst +9 -0
  21. VenusLibraryDocumentation-DocsForGPT/docs/source/ErrorReportLibrary.rst +45 -0
  22. VenusLibraryDocumentation-DocsForGPT/docs/source/ErrorSimulator.rst +190 -0
  23. VenusLibraryDocumentation-DocsForGPT/docs/source/Framework.txt +25 -0
  24. VenusLibraryDocumentation-DocsForGPT/docs/source/HSLDeckVisualize.rst +55 -0
  25. VenusLibraryDocumentation-DocsForGPT/docs/source/HSLFilLib.rst +215 -0
  26. VenusLibraryDocumentation-DocsForGPT/docs/source/HSLFilLibEx.rst +41 -0
  27. VenusLibraryDocumentation-DocsForGPT/docs/source/HSLStatistics.rst +95 -0
  28. VenusLibraryDocumentation-DocsForGPT/docs/source/HSLStrLib.rst +395 -0
  29. VenusLibraryDocumentation-DocsForGPT/docs/source/HSLZipLib.rst +49 -0
  30. VenusLibraryDocumentation-DocsForGPT/docs/source/HSL_SeqDailyTools.rst +61 -0
  31. VenusLibraryDocumentation-DocsForGPT/docs/source/If_And_If_Or.rst +39 -0
  32. VenusLibraryDocumentation-DocsForGPT/docs/source/Inheco ODTC - unfinished.rst +86 -0
  33. VenusLibraryDocumentation-DocsForGPT/docs/source/Labware_Properties.rst +169 -0
  34. VenusLibraryDocumentation-DocsForGPT/docs/source/Lookup.rst +20 -0
  35. VenusLibraryDocumentation-DocsForGPT/docs/source/Pipetting.rst +88 -0
  36. VenusLibraryDocumentation-DocsForGPT/docs/source/PlateEditor96 - unfinished.rst +32 -0
  37. VenusLibraryDocumentation-DocsForGPT/docs/source/RemoveTextDelimitersFromAcsiiTextFile.rst +18 -0
  38. VenusLibraryDocumentation-DocsForGPT/docs/source/RuntimeErrors.rst +752 -0
  39. VenusLibraryDocumentation-DocsForGPT/docs/source/STAR_Channel_Tools.rst +595 -0
  40. VenusLibraryDocumentation-DocsForGPT/docs/source/StrTokenize.rst +23 -0
  41. VenusLibraryDocumentation-DocsForGPT/docs/source/String.rst +83 -0
  42. VenusLibraryDocumentation-DocsForGPT/docs/source/SyntaxErrors.rst +97 -0
  43. VenusLibraryDocumentation-DocsForGPT/docs/source/Tools_Library.rst +64 -0
  44. VenusLibraryDocumentation-DocsForGPT/docs/source/TraceLevel.txt +262 -0
  45. VenusLibraryDocumentation-DocsForGPT/docs/source/Windows.txt +50 -0
  46. VenusLibraryDocumentation-DocsForGPT/docs/source/ZerouLScanner.txt +15 -0
  47. VenusLibraryDocumentation-DocsForGPT/docs/source/conf.py +36 -0
  48. VenusLibraryDocumentation-DocsForGPT/docs/source/index.rst +52 -0
  49. VenusLibraryDocumentation-DocsForGPT/docs/source/venus.txt +279 -0
VenusLibraryDocumentation-DocsForGPT/.gitignore ADDED
@@ -0,0 +1,156 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ # Created by https://www.toptal.com/developers/gitignore/api/python,jupyternotebooks
3
+ # Edit at https://www.toptal.com/developers/gitignore?templates=python,jupyternotebooks
4
+
5
+ ### JupyterNotebooks ###
6
+ # gitignore template for Jupyter Notebooks
7
+ # website: http://jupyter.org/
8
+
9
+ .ipynb_checkpoints
10
+ */.ipynb_checkpoints/*
11
+
12
+ # IPython
13
+ profile_default/
14
+ ipython_config.py
15
+
16
+ # Remove previous ipynb_checkpoints
17
+ # git rm -r .ipynb_checkpoints/
18
+
19
+ ### Python ###
20
+ # Byte-compiled / optimized / DLL files
21
+ __pycache__/
22
+ *.py[cod]
23
+ *$py.class
24
+
25
+ # C extensions
26
+ *.so
27
+
28
+ # Distribution / packaging
29
+ .Python
30
+ build/
31
+ develop-eggs/
32
+ dist/
33
+ downloads/
34
+ eggs/
35
+ .eggs/
36
+ lib/
37
+ lib64/
38
+ parts/
39
+ sdist/
40
+ var/
41
+ wheels/
42
+ share/python-wheels/
43
+ *.egg-info/
44
+ .installed.cfg
45
+ *.egg
46
+ MANIFEST
47
+
48
+ # PyInstaller
49
+ # Usually these files are written by a python script from a template
50
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
51
+ *.manifest
52
+ *.spec
53
+
54
+ # Installer logs
55
+ pip-log.txt
56
+ pip-delete-this-directory.txt
57
+
58
+ # Unit test / coverage reports
59
+ htmlcov/
60
+ .tox/
61
+ .nox/
62
+ .coverage
63
+ .coverage.*
64
+ .cache
65
+ nosetests.xml
66
+ coverage.xml
67
+ *.cover
68
+ *.py,cover
69
+ .hypothesis/
70
+ .pytest_cache/
71
+ cover/
72
+
73
+ # Translations
74
+ *.mo
75
+ *.pot
76
+
77
+ # Django stuff:
78
+ *.log
79
+ local_settings.py
80
+ db.sqlite3
81
+ db.sqlite3-journal
82
+
83
+ # Flask stuff:
84
+ instance/
85
+ .webassets-cache
86
+
87
+ # Scrapy stuff:
88
+ .scrapy
89
+
90
+ # Sphinx documentation
91
+ docs/_build/
92
+
93
+ # PyBuilder
94
+ .pybuilder/
95
+ target/
96
+
97
+ # Jupyter Notebook
98
+
99
+ # IPython
100
+
101
+ # pyenv
102
+ # For a library or package, you might want to ignore these files since the code is
103
+ # intended to run in multiple environments; otherwise, check them in:
104
+ # .python-version
105
+
106
+ # pipenv
107
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
108
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
109
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
110
+ # install all needed dependencies.
111
+ #Pipfile.lock
112
+
113
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow
114
+ __pypackages__/
115
+
116
+ # Celery stuff
117
+ celerybeat-schedule
118
+ celerybeat.pid
119
+
120
+ # SageMath parsed files
121
+ *.sage.py
122
+
123
+ # Environments
124
+ .env
125
+ .venv
126
+ env/
127
+ venv/
128
+ ENV/
129
+ env.bak/
130
+ venv.bak/
131
+
132
+ # Spyder project settings
133
+ .spyderproject
134
+ .spyproject
135
+
136
+ # Rope project settings
137
+ .ropeproject
138
+
139
+ # mkdocs documentation
140
+ /site
141
+
142
+ # mypy
143
+ .mypy_cache/
144
+ .dmypy.json
145
+ dmypy.json
146
+
147
+ # Pyre type checker
148
+ .pyre/
149
+
150
+ # pytype static type analyzer
151
+ .pytype/
152
+
153
+ # Cython debug symbols
154
+ cython_debug/
155
+
156
+ # End of https://www.toptal.com/developers/gitignore/api/python,jupyternotebooks
VenusLibraryDocumentation-DocsForGPT/.readthedocs.yaml ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ version: "2"
2
+
3
+ build:
4
+ os: "ubuntu-22.04"
5
+ tools:
6
+ python: "3.10"
7
+
8
+ python:
9
+ install:
10
+ - requirements: docs/requirements.txt
11
+
12
+ sphinx:
13
+ configuration: docs/source/conf.py
14
+
15
+ formats:
16
+ - pdf
17
+ - epub
VenusLibraryDocumentation-DocsForGPT/README.rst ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ Venus Library Documentation
2
+ =======================================
3
+
4
+ Venus is a coding language wrapper used in the programming of devices such as the Hamilton Microlab STAR. This is unofficial documentation for it and it's libraries, compiled from official sources and personal troubleshooting. If any issues or mistakes are found, please message me and let me know.
VenusLibraryDocumentation-DocsForGPT/docs/Makefile ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Minimal makefile for Sphinx documentation
2
+ #
3
+
4
+ # You can set these variables from the command line, and also
5
+ # from the environment for the first two.
6
+ SPHINXOPTS ?=
7
+ SPHINXBUILD ?= sphinx-build
8
+ SOURCEDIR = source
9
+ BUILDDIR = build
10
+
11
+ # Put it first so that "make" without argument is like "make help".
12
+ help:
13
+ @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
14
+
15
+ .PHONY: help Makefile
16
+
17
+ # Catch-all target: route all unknown targets to Sphinx using the new
18
+ # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
19
+ %: Makefile
20
+ @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
VenusLibraryDocumentation-DocsForGPT/docs/make.bat ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @ECHO OFF
2
+
3
+ pushd %~dp0
4
+
5
+ REM Command file for Sphinx documentation
6
+
7
+ if "%SPHINXBUILD%" == "" (
8
+ set SPHINXBUILD=sphinx-build
9
+ )
10
+ set SOURCEDIR=source
11
+ set BUILDDIR=build
12
+
13
+ if "%1" == "" goto help
14
+
15
+ %SPHINXBUILD% >NUL 2>NUL
16
+ if errorlevel 9009 (
17
+ echo.
18
+ echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
19
+ echo.installed, then set the SPHINXBUILD environment variable to point
20
+ echo.to the full path of the 'sphinx-build' executable. Alternatively you
21
+ echo.may add the Sphinx directory to PATH.
22
+ echo.
23
+ echo.If you don't have Sphinx installed, grab it from
24
+ echo.http://sphinx-doc.org/
25
+ exit /b 1
26
+ )
27
+
28
+ %SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
29
+ goto end
30
+
31
+ :help
32
+ %SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
33
+
34
+ :end
35
+ popd
VenusLibraryDocumentation-DocsForGPT/docs/requirements.txt ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ sphinx==7.1.2
2
+ sphinx-rtd-theme==1.3.0rc1
VenusLibraryDocumentation-DocsForGPT/docs/source/ASWGlobal.rst ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ASWGlobal
2
+ ============================================================
3
+
4
+ https://github.com/theonetruenerd/VenusPackages/blob/main/ASWGlobal.pkg
5
+
6
+ The ASWGlobal library doesn't add any functions, but instead declares common HSL constants used in other libraries, SMTs, and methods. These are often used as the return values for functions. The constants it declares are:
7
+
8
+ - False, No, and Off are all assigned as being hslFalse
9
+ - True, Yes, and On are all assigned as being hslTrue
10
+ - For dialogue buttons, each one is assigned a specific number:
11
+ - Ok = 1
12
+ - Cancel = 2
13
+ - Abort = 3
14
+ - Retry = 4
15
+ - Ignore = 5
16
+ - Yes = 6
17
+ - No = 7
18
+ - Clicking STOP on a timer is assigned as being 3
VenusLibraryDocumentation-DocsForGPT/docs/source/Aliquot_for_EasySteps_v2.txt ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Aliquot for Easy Steps v2
2
+ =================================================
3
+
4
+ https://github.com/theonetruenerd/VenusPackages/blob/main/Aliquot_for_EasySteps_v2.pkg
5
+
6
+ This library adds two functions aimed at making aliquoting steps easier. The functions added are:
7
+
8
+ - :ven:func:`CalcAliquot_v2_1`
9
+ - :ven:func:`CalcChannelPattern`
10
+
11
+ .. ven:function:: CalcAliquot_v2_1(sequence DispenseSequence, variable VolumePerWell, variable VolumePreAliquote, variable VolumePostAliquote, variable MaxVolumeTip, variable NumberOfDispense, variable NumberOfChannels, variable intNumberOfChannelsInstalled, array arrVolumeToAspirateByChannel, array arrVolumeToMixBeforeAspiration, array arrChannelPatternDispense, variable strChannelPatternAspirate)
12
+
13
+ This function calculates the important variables for performing an aliquote pipetting with Easy- or Single Steps
14
+
15
+ :params DispenseSequence: The sequence for the aliquots to be dispensed into
16
+ :params VolumePerWell: The volume of the aliquotes per well
17
+ :params VolumePreAliquote: The volume of the pre-aliquote
18
+ :params VolumePostAliquote: The volume of the post-aliquote
19
+ :params MaxVolumeTip: The maximum volume of the selected CO-RE Tip
20
+ :params NumberOfDispense: The number of dispense steps per aspiration
21
+ :params NumberOfChannels: The number of the channels to use for the process
22
+ :params intNumberOfChannelsInstalled: The number of channels installed in the system
23
+ :params arrVolumeToAspirateByChannel: An output of the array of volumes to aspirate by channel
24
+ :params arrVolumeToMixBeforeAspiration: An output of the array of volumes to mix before aspiration (typically used during the first aspiration only)
25
+ :params arrChannelPatternDispense: The output array of channel patterns for the dispense
26
+ :params strChannelPatternAspirate: An output string of the channel pattern to aspirate
27
+ :type DispenseSequence: Sequence
28
+ :type VolumePerWell: Variable
29
+ :type VolumePreAliquote: Variable
30
+ :type VolumePostAliquote: Variable
31
+ :type MaxVolumeTip: Variable
32
+ :type NumberOfDispense: Variable
33
+ :type NumberOfChannels: Variable
34
+ :type intNumberOfChannelsInstalled: Variable
35
+ :type arrVolumeToAspirateByChannel: Array
36
+ :type arrVolumeToMixBeforeAspiration: Array
37
+ :type arrChannelPatternDispense: Array
38
+ :type strChannelPatternAspirate: String
39
+ :return: None
40
+ :rtype: N/A
41
+
42
+ .. ven:function:: CalcChannelPattern(variable i_int_NumberOfPositions, variable i_int_NumberOfInstalledChannels, variable o_str_ChannelPattern)
43
+
44
+ This function creats a channel pattern based on the number of desired positions and the number of installed channels.
45
+
46
+ :params i_int_NumberOfPositions: The number of positions to use, which must be less than or equal to the Number of Installed Channels
47
+ :params i_int_NumberOfInstalledChannels: The number of channels installed on the instrument
48
+ :params o_str_ChannelPattern: The output channel pattern as a string
49
+ :return: None
50
+ :rtype: N/A
VenusLibraryDocumentation-DocsForGPT/docs/source/Aliquot_with_EasySteps.rst ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Aliquot with Easy Steps
2
+ ==========================================
3
+
4
+ https://github.com/theonetruenerd/VenusPackages/blob/main/Aliquot_for_EasySteps.pkg
5
+
6
+ The Aliquot with Easy Steps library adds one function aimed at making aliquoting with Easy- or Single steps easier. This library is outdated, the Aliquot_for_EasySteps_v2 library should be used instead. The function it adds is:
7
+
8
+ - :ven:func:`CalcAliquote`
9
+
10
+ .. ven:function:: CalcAliquote(sequence DispenseSequence, variable VolumePerWell, variable VolumePreAliquote, variable VolumePostAliquote, variable MaxVolumeTip, variable VolumeToAspirate, variable NumberOfDispense, variable FullTrace, variable NumberOfChannels)
11
+
12
+ This function calculates the important variables for performing aliquoting with Easy- or Single steps.
13
+
14
+ :params DispenseSequence: The sequence for the aliquots to be dispensed into
15
+ :params VolumePerWell: The volume of the aliquots per well
16
+ :params VolumePreAliquote: The volume of the pre-aliquot
17
+ :params VolumePostAliquote: The volume of the post-aliquot
18
+ :params MaxVolumeTip: The maximum volume of the selected CO-RE Tip
19
+ :params VolumeToAspirate: The volume which has to be aspirated
20
+ :params NumberOfDispense: The number of dispense steps per aspiration
21
+ :params FullTrace: The detail level of the trace (1 is full, 0 is normal)
22
+ :params NumberOfChannels: The number of channels installed on the system
23
+ :type DispenseSequence: Sequence
24
+ :type VolumePerWell: Variable
25
+ :type VolumePreAliquote: Variable
26
+ :type VolumePostAliquote: Variable
27
+ :type MaxVolumeTip: Variable
28
+ :type VolumeToAspirate: Variable
29
+ :type NumberOfDispenses: Variable
30
+ :type FullTrace: Boolean
31
+ :type NumberOfChannels: Variable
32
+ :return: None
33
+ :rtype: N/A
VenusLibraryDocumentation-DocsForGPT/docs/source/AlphaNumericConversion.rst ADDED
@@ -0,0 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Alpha Numeric Conversion
2
+ =============================================================
3
+
4
+ https://github.com/theonetruenerd/VenusPackages/blob/main/AlphaNumericConversion.pkg
5
+
6
+ This library adds four functions related to converting plate positions to their integer equivalents and vice versa. The functions it adds are:
7
+
8
+ - :ven:func:`Alpha_Num_Add_0_to_Position`
9
+ - :ven:func:`Alpha_Num_Remove_0_from_Position`
10
+ - :ven:func:`Convert_Alpha_Numeric_to_Numbers`
11
+ - :ven:func:`Convert_Numbers_to_Alpha_Numeric`
12
+
13
+ .. ven:function:: Alpha_Num_Add_0_to_Position(variable io_Str_Position_ID)
14
+
15
+ This function takes a single position and adds the 0 between the letter and number if it needs one. Example would be A1 -> A01, B1 -> B01. Position variable must be a string.
16
+
17
+ :params io_Str_Position_ID: The alphanumeric position that the 0 needs to be added to.
18
+ :type io_Str_Position_ID: Variable
19
+ :return: None
20
+ :rtype: N/A
21
+
22
+ .. ven:function:: Alpha_Num_Remove_0_from_Position(variable io_Str_Position_ID)
23
+
24
+ This function takes a single position and removes the 0 if there is one. Example would be A01 -> A1, B01 -> B1. Position variable must be a string.
25
+
26
+ :params io_Str_Position_ID: The alphanumeric position that the 0 needs to be removed from.
27
+ :type io_Str_Position_ID: Variable
28
+ :return: None
29
+ :rtype: N/A
30
+
31
+ .. ven:function:: Convert_Alpha_Numeric_to_Numbers(variable i_Sort_by_Column, variable i_Alpha_Numeric_Value, variable i_Total_Rows, variable i_Total_Columns, variable o_Numeric_Value)
32
+
33
+ This function takes an alpha numeric value and returns the integer that corresponds to that position number. If a 1 is entered for "i_Sort_by_Column", the submethod will sort by columns, i.e. A1 -> 1, B1 -> 2, etc. If a 0 is entered, it will sort by rows, i.e. A1 -> 1, A2 -> 2.
34
+
35
+ :params i_Sort_by_Column: Whether the positions will be sorted by row (0) or by column (1)
36
+ :params i_Alpha_Numeric_Value: The alpha numeric value to be converted
37
+ :params i_Total_Rows: The total number of rows in the target labware, between 1 and 26.
38
+ :params i_Total_Columns: The total number of columns in the target labware, betweem 1 and 99.
39
+ :params o_Numeric_Value: The output converted position
40
+ :type i_Sort_by_Column: Boolean
41
+ :type i_Alpha_Numeric_Value: Variable
42
+ :type i_Total_Rows: Variable
43
+ :type i_Total_Columns: Variable
44
+ :type o_Numeric_Value: Variable
45
+ :return: None
46
+ :rtype: N/A
47
+
48
+ .. ven:function:: Convert_Numbers_to_Alpha_Numeric(variable i_Sort_by_Column, variable i_Numeric_Value, variable i_Total_Rows, variable i_Total_Columns, variable o_Alpha_Numeric_Value)
49
+
50
+ This function takes an integer value and returns the corresponding alpha numeric position. If a 1 is entered for "i_Sort_by_Column", the submethod will sort by columns, i.e. 1 -> A1, 2 -> B1, etc. If a 0 is entered, it will sort by rows, i.e. 1 -> A1, 2 -> A2.
51
+
52
+ :params i_Sort_by_Column: Whether the positions will be sorted by row (0) or by column (1)
53
+ :params i_Numeric_Value: The numeric value to be converted
54
+ :params i_Total_Rows: The total number of rows in the target labware, between 1 and 26.
55
+ :params i_Total_Columns: The total number of columns in the target labware, between 1 and 99.
56
+ :params o_Alpha_Numeric_Value: The output converted position
57
+ :type i_Sort_by_Column: Boolean
58
+ :type i_Numeric_Value: Variable
59
+ :type i_Total_Rows: Variable
60
+ :type i_Total_Columns: Variable
61
+ :type o_Alpha_Numeric_Value: Variable
62
+ :return: None
63
+ :rtype: N/A
VenusLibraryDocumentation-DocsForGPT/docs/source/Array.txt ADDED
@@ -0,0 +1,213 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Array (from HSLExtensions)
2
+ =========================
3
+
4
+ https://github.com/theonetruenerd/VenusPackages/blob/main/Array.pkg
5
+
6
+ The array library from HSLExtensions adds functions to help manipulate 1-D arrays. The following functions are added:
7
+
8
+ - :ven:func:`Append`
9
+ - :ven:func:`CompareArrays`
10
+ - :ven:func:`Concat`
11
+ - :ven:func:`ContainsDuplicates`
12
+ - :ven:func:`ContainsValue`
13
+ - :ven:func:`ConvertToBooleanArray`
14
+ - :ven:func:`ConvertToFloatArray`
15
+ - :ven:func:`ConvertToIntegerArray`
16
+ - :ven:func:`ConvertToStringArray`
17
+ - :ven:func:`Copy`
18
+ - :ven:func:`FindValue`
19
+ - :ven:func:`InitializeAllValues`
20
+ - :ven:func:`IsBooleanArray`
21
+ - :ven:func:`IsEmpty`
22
+ - :ven:func:`IsFloatArray`
23
+ - :ven:func:`IsIntegerArray`
24
+ - :ven:func:`IsStringArray`
25
+ - :ven:func:`Sort`
26
+
27
+ .. ven:function:: Append(array io_arrValuesA, array i_arrValuesB)
28
+
29
+ This function updates the array io_arrValuesA to add all the values from i_arrValuesB at the end of the array.
30
+
31
+ :params io_arrValuesA: The array to which the values will be added
32
+ :params i_arrValuesB: The array from which the values will be added
33
+ :type io_arrValuesA: Array
34
+ :type i_arrValuesB: Array
35
+ :return: None
36
+ :rtype: N/A
37
+
38
+ .. ven:function:: CompareArrays(array i_arrExpectedValues, array i_arrActualValues, array o_arrMissingValues, array o_arrNotExpectedValues)
39
+
40
+ This function compares two arrays and outputs arrays of values which are missing from the first array but present in the second, and values which are present in the second array but not in the first.
41
+
42
+ :params i_arrExpectedValues: The first array, which the second array will be checked against, usually is the array of expected values
43
+ :params i_arrActualValues: The second array, which will use the first array as a template when comparing against, usually is your "actual" array
44
+ :params o_arrMissingValues: An output array of values which are present in the first array but not the second
45
+ :params o_arrNotExpectedValues: An output array of values which are present in the second array but not the first (i.e. unexpected values in your actual data)
46
+ :type i_arrExpectedValues: Array
47
+ :type i_arrActualValues: Array
48
+ :type o_arrMissingValues: Array
49
+ :type o_arrNotExpectedValues: Array
50
+ :return: True if both arrays contain the same values (resulting in empty output arrays), false if arrays don't contain the same values (in which case the output arrays will have data in them)
51
+ :rtype: Boolean
52
+
53
+ .. ven:function:: Concat(array i_arrValuesA, array i_arrValuesB)
54
+
55
+ This function appends one array to the other and then returns the concatenated array. The difference between this and the :ven:func:`Append` function is that the Append function updates an existing array, whereas this function doesn't change the existing arrays and instead returns a new array.
56
+
57
+ :params i_arrValuesA: The array to which the values will be added
58
+ :params i_arrValuesB: The array from which the values will be added
59
+ :type i_arrValuesA: Array
60
+ :type i_arrValuesB: Array
61
+ :return: A new array which is the concatenated version of the input arrays
62
+ :rtype: Array
63
+
64
+ .. ven:function:: ContainsDuplicates(array i_arrValues)
65
+
66
+ This function checks whether the input array has multiple of the same value in it
67
+
68
+ :params i_arrValues: The array to be checked
69
+ :type i_arrValues: Array
70
+ :return: An array with all values which appear more than once in the input array
71
+ :rtype: Array
72
+
73
+ .. ven:function:: ContainsValue(array i_arrValues, variable i_varValue)
74
+
75
+ This function determines whether a value exists in an array without returning its index
76
+
77
+ :params i_arrValues: The array to be searched
78
+ :params i_varValue: The value to be searched for
79
+ :type i_arrValues: Array
80
+ :type i_varValue: Variable
81
+ :return: True if the value is present, false otherwise
82
+ :rtype: Boolean
83
+
84
+ .. ven:function:: ConvertToBooleanArray(array i_arrValues, variable o_blnSuccessfullyConverted)
85
+
86
+ This function converts the input array to an array with boolean values. If it is not possible to convert one or more values of the input array, the output will be false and the output array will be empty. Cannot interact with strings, will convert a non-zero int or float into a 1, and will turn a 0 float into a 0.
87
+
88
+ :params i_arrValues: The array to be converted
89
+ :params o_blnSuccessfullyConverted: A boolean which tells you whether the conversion was successful or not
90
+ :type i_arrValues: Array
91
+ :type o_blnSuccessfullyConverted: Boolean
92
+ :return: The boolean version of the input array
93
+ :rtype: Array
94
+
95
+ .. ven:function:: ConvertToFloatArray(array i_arrValues, variable o_blnSuccessfullyConverted)
96
+
97
+ This function converts the input array to an array with float values. If it is not possible to convert one or more values of the input array, the output will be false and the output array will be empty. Cannot interact with strings, will convert any int into a float.
98
+
99
+ :params i_arrValues: The array to be converted
100
+ :params o_blnSuccessfullyConverted: A boolean which tells you whether the conversion was successful or not
101
+ :type i_arrValues: Array
102
+ :type o_blnSuccessfullyConverted: Boolean
103
+ :return: The float version of the input array
104
+ :rtype: Array
105
+
106
+ .. ven:function:: ConvertToIntArray(array i_arrValues, variable o_blnSuccessfullyConverted)
107
+
108
+ This function converts the input array to one with integer values. If it is not possible to convert one or more values of the input array, the output will be false and the output array will be empty. Cannot interact with strings, will round any floats to the nearest integer.
109
+
110
+ :params i_arrValues: The array to be converted
111
+ :params o_blnSuccessfullyConverted: A boolean which tells you whether the conversion was successful or not
112
+ :type i_arrValues: Array
113
+ :type o_blnSuccessfullyConverted: Boolean
114
+ :return: The integer version of the input array
115
+ :rtype: Array
116
+
117
+ .. ven:function:: ConvertToStringArray(array i_arrValues)
118
+
119
+ This function converts the input array to one with string values.
120
+
121
+ :params i_arrValues: The array to be converted
122
+ :type i_arrValues: Array
123
+ :return: The float version of the input array
124
+ :rtype: Array
125
+
126
+ .. ven:function:: Copy(array i_arrValues)
127
+
128
+ This function will output an exact copy of the input array.
129
+
130
+ :params i_arrValues: The array to be copied
131
+ :type i_arrValues: Array
132
+ :return: A copy of the input array
133
+ :rtype: Array
134
+
135
+ .. ven:function:: FindValue(array i_arrValues, variable i_varValue)
136
+
137
+ This function will lookup the input variable within the input array and return a 1-based array of the indices of all positions that the input variable was found.
138
+
139
+ :params i_arrValues: The array to be searched
140
+ :params i_varValue: The variable to be searched for
141
+ :type i_arrValues: Array
142
+ :type i_varValue: Variable
143
+ :return: An array of all the locations that the input variable was found
144
+ :rtype: Array
145
+
146
+ .. ven:function:: InitializeAllValues(array io_arrValues, variable i_varValue)
147
+
148
+ This function sets all values within an array to the input variable. Does not work on empty arrays.
149
+
150
+ :params io_arrValues: The array in which all values will be converted.
151
+ :params i_varValue: The variable to which all values will be converted.
152
+ :type io_arrValues: Array
153
+ :type i_varValue: Variable
154
+ :return: None
155
+ :rtype: N/A
156
+
157
+ .. ven:function:: IsBooleanArray(array i_arrValues)
158
+
159
+ This function checks whether all values in the array are booleans.
160
+
161
+ :params i_arrValues: The array to be checked
162
+ :type i_arrValues: Array
163
+ :return: A boolean of whether the input array is all booleans or not
164
+ :rtype: Boolean
165
+
166
+ .. ven:function:: IsEmpty(array i_arrValues)
167
+
168
+ This function checks whether the input array is empty
169
+
170
+ :params i_arrValues: The array to be checked
171
+ :type i_arrValues: Array
172
+ :return: A boolean of whether the input array is empty or not
173
+ :rtype: Boolean
174
+
175
+ .. ven:function:: IsFloatArray(array i_arrValues)
176
+
177
+ This function checks whether all values in the array are floats.
178
+
179
+ :params i_arrValues: The array to be checked
180
+ :type i_arrValues: Array
181
+ :return: A boolean of whether the input array is all floats or not
182
+ :rtype: Boolean
183
+
184
+ .. ven:function:: IsIntegerArray(array i_arrValues)
185
+
186
+ This function checks whether all values in the array are integers.
187
+
188
+ :params i_arrValues: The array to be checked
189
+ :type i_arrValues: Array
190
+ :return: A boolean of whether the input array is all integers or not
191
+ :rtype: Boolean
192
+
193
+ .. ven:function:: IsStringArray(array i_arrValues)
194
+
195
+ This function checks whether all values in the array are strings.
196
+
197
+ :params i_arrValues: The array to be checked
198
+ :type i_arrValues: Array
199
+ :return: A boolean of whether the input array is all strings or not
200
+ :rtype: Boolean
201
+
202
+ .. ven:function:: Sort(array i_arrValues, variable i_intSortMode, o_bSuccessfulSorted)
203
+
204
+ This function outputs a sorted version of the array using the Shakersort sorting algorithm. All values in the array must share the same type for this function to work. Sort mode can either be 1 or 2, 1 is ascending and 2 is descending.
205
+
206
+ :params i_arrValues: The array containing the values to be sorted
207
+ :params i_intSortMode: Whether the array is to be sorted in ascending (1) or descending (2) order
208
+ :params o_bSuccesfulSorted: A boolean of whether the sort was successful or not
209
+ :type i_arrValues: Array
210
+ :type i_intSortMode: Variable
211
+ :type o_bSuccesfulSorted: Boolean
212
+ :return: A sorted copy of the array
213
+ :rtype: Array
VenusLibraryDocumentation-DocsForGPT/docs/source/ArrayTools.rst ADDED
@@ -0,0 +1,154 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ArrayTools
2
+ ====================================
3
+
4
+ https://github.com/theonetruenerd/VenusPackages/blob/main/ArrayTools.pkg
5
+
6
+ The ArrayTools library provides the following functions:
7
+
8
+ - :ven:func:`ArraySeqVLookup`
9
+ - :ven:func:`ArrayVLookup`
10
+ - :ven:func:`ConvertArrayOfNumericIntegersToString`
11
+ - :ven:func:`ConvertArrayOfNumericStringsToInteger`
12
+ - :ven:func:`Lookup`
13
+ - :ven:func:`Sort3ArraysByNumericAscendingOrder`
14
+ - :ven:func:`Update_Value_in_Array`
15
+ - :ven:func:`get_distinct_from_array`
16
+ - :ven:func:`mergeArrays`
17
+ - :ven:func:`removeValueFromArray_basedOnIndex`
18
+
19
+ .. ven:function:: ArraySeqVLookup(array i_arraySequencesA, array i_arrayValuesB, variable i_varCondition, array o_arraySequencesC)
20
+
21
+ Given 2 arrays A (Sequences) and B (Values) with same size
22
+ Retrieve all the sequences in A where B = input value
23
+ A(seq1, seq2, seq3,seq4,seq5, seq6, ...)
24
+ B(1, 2, 3, 1, 2, 3, ...)
25
+
26
+ Get from A all elements where B = 1
27
+ C(seq1, seq4, ...)
28
+
29
+ :param i_arraySequencesA: The input array of sequences to filter
30
+ :param i_arrayValuesB: The input array of variables to act as a filter
31
+ :param i_varCondition: The input value of the variable which is to be selected
32
+ :param o_arraySequencesC: The output array of the sequences whose index matches the indices in which the the value of the variable is equal to the filter
33
+ :type i_arraySequencesA: Array of sequences
34
+ :type i_arrayValuesB: Array of variables
35
+ :type i_varCondition: Variable
36
+ :type o_arraySequencesC: Array of sequences
37
+ :return: None
38
+ :rtype: N/A
39
+
40
+ .. ven:function:: ArrayVLookup(array i_arrayValuesA, array i_arrayValuesB, variable i_varCondition, array o_arrayValuesC)
41
+
42
+ Given 2 arrays of values A and B with same size
43
+ Retrieve all the elements in B where A = input value
44
+
45
+ A(100, 20, 15, 45, 42, 1, ...)
46
+ B(1, 2, 3, 1, 2, 3, ...)
47
+
48
+ Get from A all elements where B = 1
49
+ C(100, 15, ...)
50
+
51
+ :param i_arrayValuesA: The input array of variables to filter
52
+ :param i_arrayValuesB: The input array of variables to act as a filter
53
+ :param i_varCondition: The input value of the variable which is to be selected
54
+ :param o_arrayValuesC: The output array of the variables whose index matches the indices in which the value of the variable is equal to the filter
55
+ :type i_arrayValuesA: Array of variables
56
+ :type i_arrayValuesB: Array of variables
57
+ :type i_varCondition: Variable
58
+ :type o_arrayValuesC: Array of variables
59
+ :return: None
60
+ :rtype: N/A
61
+
62
+ .. ven:function:: ConvertArrayOfNumericIntegersToString(array i_arr1_int, array o_arr1_str)
63
+
64
+ Converts all the numeric integers within an array to strings.
65
+
66
+ :param i_arr1_int: The input array containing the integers to be converted
67
+ :param o_arr1_str: The output array containing the strings
68
+ :type i_arr1_int: Array of variables
69
+ :type o_arr1_str: Array of variables
70
+ :return: None
71
+ :rtype: N/A
72
+
73
+ .. ven:function:: ConvertArrayOfNumericStringsToIntegers(array i_arr1_str, array o_arr1_int)
74
+
75
+ Converts all the numeric strings within an array to integers.
76
+
77
+ :param i_arr1_str: The input array containing the strings to be converted
78
+ :param o_arr1_int: The output array containing the integers
79
+ :type i_arr1_str: Array of variables
80
+ :type o_arr1_int: Array of variables
81
+ :return: None
82
+ :rtype: N/A
83
+
84
+ .. ven:function:: Lookup(array array, variable item)
85
+
86
+ Looks up a value within an array, outputting a 1-based index of the value if found in the array, and a 0 if the value isn't found.
87
+
88
+ :param array: The input array to be searched
89
+ :param item: The variable to be searched for
90
+ :type array: Array
91
+ :type item: Variable
92
+ :return: None
93
+ :rtype: N/A
94
+
95
+ .. ven:function:: Sort3ArraysByNumericAscendingOrder(array io_array1, array io_array2, array io_array3)
96
+
97
+ Sorts 3 arrays by numeric ascending order. io_array1 must contain only numeric values; this one will be sorted and then the other arrays will update to match the new order of io_array1.
98
+
99
+ :param io_array1: The first of the arrays to be sorted, which must contain only numeric values.
100
+ :param io_array2: The second of the arrays to be sorted, which can contain any values.
101
+ :param io_array3: The third of the arrays to be sorted, which can contain any values.
102
+ :type io_array1: Array
103
+ :type io_array2: Array
104
+ :type io_array3: Array
105
+ :return: None
106
+ :rtype: N/A
107
+
108
+ .. ven:function:: Update_Value_in_Array(array i_array, variable i_value, variable i_index)
109
+
110
+ Overwrites a value in the array at a specified index.
111
+
112
+ :param i_array: The array in which the value will be changed.
113
+ :param i_value: The new value to be inserted into the array.
114
+ :param i_index: The 1-based index of the position in the array to be overwritten.
115
+ :type i_array: Array
116
+ :type i_value: Variable
117
+ :type i_index: Variable
118
+ :return: None
119
+ :rtype: N/A
120
+
121
+ .. ven:function:: get_distinct_from_array(array i_arr, array o_arr)
122
+
123
+ Gets all the values in an array that only appear once.
124
+
125
+ :param i_arr: The input array to be searched.
126
+ :param o_arr: The new output array containing the values which only appear once.
127
+ :type i_arr: Array
128
+ :type i_arr: Array
129
+ :return: None
130
+ :rtype: N/A
131
+
132
+ .. ven:function:: mergeArrays(array array1, array array2, array array3)
133
+
134
+ Concatenates two arrays and outputs the result into a third array.
135
+
136
+ :param array1: The first array of interest.
137
+ :param array2: The second array of interest.
138
+ :param array3: The resulting array of values.
139
+ :type array1: Array
140
+ :type array2: Array
141
+ :type array3: Array
142
+ :return: None
143
+ :rtype: N/A
144
+
145
+ .. ven:function:: removeValueFromArray_basedOnIndex(array i_array_elements, variable i_index_to_remove)
146
+
147
+ Removes a value from an array at the specified index.
148
+
149
+ :param i_array_elements: The array from which an item is to be removed.
150
+ :param i_index_to_remove: The 1-based index of the array from which the item is to be removed.
151
+ :type i_array_elements: Array
152
+ :type i_index_to_remove: Variable
153
+ :return: None
154
+ :rtype: N/A
VenusLibraryDocumentation-DocsForGPT/docs/source/CheckCarrierPresence_V2.rst ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Check Carrier Presence v2
2
+ =======================================
3
+
4
+ https://github.com/theonetruenerd/VenusPackages/blob/main/CheckCarrierPresence.pkg
5
+
6
+ This library adds functions which allow you to check whether one or more carriers are loaded on the deck. It requires the sensor at each carrier position to be present and functional. The functions it adds are:
7
+
8
+ - :ven:func:`CheckCarrierPresenceByArrOfLabIDs`
9
+ - :ven:func:`CheckCarrierPresenceByLabID`
10
+
11
+ .. ven:function:: CheckCarrierPresenceByArrOfLabIDs(variable iInstrument, array iArrLabIDs, array oArrLabIDsNotLoaded)
12
+
13
+ This function checks whether several carriers are loaded on the deck. This is done by checking if the sensor at each carrier is giving a signal. It will output an array of all the not-loaded carriers, as well as returning a boolean to say whether all carriers are loaded (0) or at least one carrier is not loaded properly (1)
14
+
15
+ :params iInstrument: The instrument present, must be ML_STAR
16
+ :params iArrLabIDs: The input array of the Lab IDs for the carriers being checked
17
+ :params oArrLabIDsNotLoaded: The output array of the Lab IDs of any carriers which are not loaded. Empty if every Lab ID is loaded.
18
+ :type iInstrument: Variable
19
+ :type iArrLabIDs: Array
20
+ :type oArrLabIDsNotLoaded: Array
21
+ :return: Boolean of whether all carriers are loaded correctly (0) or at least one carrier is not loaded correctly (1)
22
+ :rtype: Boolean
23
+
24
+ .. ven:function:: CheckCarrierPresenceByLabID(variable iInstrument, variable iLabIDOfCarrier)
25
+
26
+ This function checks whether a carrier is loaded on the deck. This is done by checking if the sensor at the carrier is giving a signal. It will return a boolean to say whether the carrier is not loaded (0) or loaded (1).
27
+
28
+ :params iInstrument: The instrument present, must be ML_STAR
29
+ :params iLabIDOfCarrier: The labware ID of the carrier being checked
30
+ :type iInstrument: Variable
31
+ :type iLabIDOfCarrier: variable
32
+ :return: A boolean determining whether the carrier is loaded (0) or not loaded (1)
33
+ :rtype: Boolean
34
+
VenusLibraryDocumentation-DocsForGPT/docs/source/ColourSchemeLibrary.rst ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ColourSchemeLibrary
2
+ =============================
3
+
4
+ https://github.com/theonetruenerd/VenusPackages/blob/main/ColourSchemeLibrary.pkg
5
+
6
+ The ColourSchemeLibrary allows the user to change the colour scheme of the Hamilton standard dialogues. It adds the following function
7
+
8
+ - :ven:func:`Assign`
9
+
10
+ .. ven:function:: Assign(variable i_str_ColorSchemeCode)
11
+
12
+ This function updates the colour scheme of the Standard Dialogues that will be used in the method where the library is executed. Requires HSLExtensions(File), HSLExtensions(Directory), and ASW Global.
13
+
14
+ :params i_str_ColorSchemeCode: The input color scheme code which is the int KitProviderCode. Hamilton = 0.
15
+ :type i_str_ColorSchemeCode: Variable
16
+ :return: None
17
+ :rtype: N/A
VenusLibraryDocumentation-DocsForGPT/docs/source/ConvertFileToASCII.rst ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Convert File To ASCII
2
+ =========================================
3
+
4
+ https://github.com/theonetruenerd/VenusPackages/blob/main/ConvertFileToASCII.pkg
5
+
6
+ The Convert File to ASCII library adds the ability to convert Hamilton files to ASCII files. The function it adds is:
7
+
8
+ - :ven:func:`ConvertFileToASCII`
9
+
10
+ .. ven:function:: ConvertFileToASCII(variable i_Str_SourceFile)
11
+
12
+ This function converts files from binary to ASCII. The file must be a Hamilton file.
13
+
14
+ :params i_Str_SourceFile: The path to the file which is being converted.
15
+ :type i_Str_SourceFile: Variable
16
+ :return: None
17
+ :rtype: N/A
VenusLibraryDocumentation-DocsForGPT/docs/source/DataManagerInterface - unfinished.rst ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Data Manager Interface - unfinished
2
+ =============================
3
+
4
+ Data Manager Interface provides the following functions:
5
+
6
+ - ven:func:`AddColumn`
7
+ - ven:func:`AddTable`
8
+ - ven:func:`DeleteRows`
9
+ - ven:func:`ExecuteAggregateFunction`
10
+ - ven:func:`ExecuteSelectAllLineByLineCommand`
11
+ - ven:func:`ExecuteSelectCommand`
12
+ - ven:func:`ExportColumnsToCSVFile`
13
+ - ven:func:`ExportColumnsToExcelFile`
14
+ - ven:func:`ExportColumnsToXMLFile`
15
+ - ven:func:`ExportSelectedToCSVFile`
16
+ - ven:func:`ExportSelectedToExcelFile`
17
+ - ven:func:`ExportSelectedToXMLFile`
18
+ - ven:func:`ExportToCSVFile`
19
+ - ven:func:`ExportToExcelFile`
20
+ - ven:func:`ExportToXMLFile`
21
+ - ven:func:`GetRowCount`
22
+ - ven:func:`GetSelectCommandRow`
23
+ - ven:func:`ImportFromCSVFile`
24
+ - ven:func:`ImportFromExcelFile`
25
+ - ven:func:`ImportFromXMLFile`
26
+ - ven:func:`Init`
27
+ - ven:func:`InsertRow`
28
+ - ven:func:`InsertSortedRow`
29
+ - ven:func:`LoadDataManagerContent`
30
+ - ven:func:`RemoveColumn`
31
+ - ven:func:`RemoveTable`
32
+ - ven:func:`RenameColumn`
33
+ - ven:func:`ResetManager`
34
+ - ven:func:`SaveDataManagerContent`
35
+ - ven:func:`Terminate`
36
+ - ven:func:`UpdateRows`
37
+
38
+ .. ven:function:: AddColumn(variable i_strTableName, variable i_strColumnName, variable i_iColumnType, variable i_bAllowDBNull, variable i_oValue)
39
+
40
+ This function adds a column to the specified table.
41
+
42
+ :params i_strTableName: The name of the table
43
+ :params i_strColumnName: The name of the column to be added
44
+ :params i_iColumnType: The type of column as an integer (
45
+
46
+ INPUT:
47
+ i_strTableName : name of the table (string)
48
+ i_strColumnName : name of the column (string)
49
+ i_iColumnType : type of the column (int) (see enum DATAMANAGERINTERFACEBASE::VALUTYPE)
50
+ String = 1, Integer = 2, Double = 3, Boolean = 4
51
+ i_bAllowDBNull : set whether null is allowed for the columns (bool)
52
+ i_oValue : value which shall bes set to all row values of the new column (object, regarding to 'i_iColumnType')
VenusLibraryDocumentation-DocsForGPT/docs/source/DebugAssist.rst ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ DebugAssist
2
+ ============================
3
+
4
+ https://github.com/theonetruenerd/VenusPackages/blob/main/DebugAssist.pkg
5
+
6
+ The debug assist library adds one function aimed at helping the user identify, understand, and fix runtime errors. The function it adds is:
7
+
8
+ - :ven:func:`FullErrorAnalysis`
9
+
10
+ This function can use the `ASWStandardDialog library <https://github.com/theonetruenerd/VenusPackages/blob/main/ASWStandardDialogs.pkg>`_ which makes the dialog nicer, but is not a requirement.
11
+
12
+ .. ven:function:: FullErrorAnalysis(variable i_PathForErrorDataAnalysis)
13
+
14
+ This function is designed to be called in the "OnAbort" submethod. It will look at the error that caused the abort to be triggered, convert the trace file error code into the more standard form, identify what that error corresponds with and hopefully suggest some initial things to check. In order for the dialogue to pop up, this function requires ASWStandardDialogues to be initialised.
15
+
16
+ :params i_PathForErrorDataAnalysis: A file path for where the error data will be exported. Currently not very important as the main bonus of the library is the dialogue that pops up, although the intention is to add more detail to this exported file.
17
+ :type i_PathForErrorDataAnalysis: Variable
18
+ :return: None
19
+ :rtype: N/A
VenusLibraryDocumentation-DocsForGPT/docs/source/Directory_Unfinished.rst ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Directory (from HSLExtensions) - unfinished
2
+ =================================
3
+
4
+ https://github.com/theonetruenerd/VenusPackages/blob/main/Directory.pkg
5
+
6
+ The directory library from HSLExtensions adds functions which help interact with directories, files, and subdirectories. The following functions are added:
7
+
8
+ - :ven:func:`Copy`
9
+ - :ven:func:`Create`
10
+ - :ven:func:`Delete`
11
+ - :ven:func:`Exists`
12
+ - :ven:func:`GetDirectoryInformation`
13
+ - :ven:func:`GetFileCount`
14
+ - :ven:func:`GetFileNames`
15
+ - :ven:func:`GetNewestFileName`
16
+ - :ven:func:`GetOldestFileName`
17
+ - :ven:func:`GetSubdirectories`
18
+ - :ven:func:`Move`
19
+ - :ven:func:`Rename`
20
+
21
+ .. ven:function:: Copy(string i_strDirectoryNameSource, string i_strDirectorynameTarget, variable i_bOverwriteExisting)
VenusLibraryDocumentation-DocsForGPT/docs/source/EditFileAttributes.rst ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ EditFileAttributes
2
+ ===============================
3
+
4
+ https://github.com/theonetruenerd/VenusPackages/blob/main/EditFileAttributes.pkg
5
+
6
+ The Edit File Attributes library adds the following functions:
7
+
8
+ - :ven:func:`Make_Hidden`
9
+ - :ven:func:`Make_ReadOnly`
10
+ - :ven:func:`Remove_Hidden`
11
+ - :ven:func:`Remove_ReadOnly`
12
+
13
+ .. ven:function:: Make_Hidden(variable Filename)
14
+
15
+ Applies the hidden attribute to the file found at the path specified.
16
+
17
+ :params filename: The path to the file that is going to be modified.
18
+ :type filename: Variable
19
+ :return: None
20
+ :rtype: N/A
21
+
22
+ .. ven:function:: Make_ReadOnly(variable Filename)
23
+
24
+ Applies the read only attribute to the file found at the path specified.
25
+
26
+ :params filename: The path to the file that is going to be modified.
27
+ :type filename: Variable
28
+ :return: None
29
+ :rtype: N/A
30
+
31
+ .. ven:function:: Remove_Hidden(variable Filename)
32
+
33
+ Removes the hidden attribute from the file found at the path specified.
34
+
35
+ :params filename: The path to the file that is going to be modified.
36
+ :type filename: Variable
37
+ :return: None
38
+ :rtype: N/A
39
+
40
+ .. ven:function:: Remove_ReadOnly(variable Filename)
41
+
42
+ Removes the read only attribute from the file found at the path specified.
43
+
44
+ :params filename: The path to the file that is going to be modified.
45
+ :type filename: Variable
46
+ :return: None
47
+ :rtype: N/A
VenusLibraryDocumentation-DocsForGPT/docs/source/ErrorCodes.rst ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ Error Codes & Debugging
2
+ ===========================
3
+
4
+ I will try compile as many different error codes and their explanations here, as well as potential causes and solutions to deal with them as and when they pop up. If there are any you wish to add, please message me on my discord "theonetruenerd" or email me at "tarunchapman@hotmail.com". Notably, the error codes that show up in the trace look slightly different to the ones presented here. If the trace error code looks like this: (0x12 - 0x3 - 0x45) [which corresponds to (MinorID - MajorID - SpecificErrorID)], then the translated error code will look like this: 0xa3120045. The error code should always be 10 digits long, with zeroes padding the bit between the 2 and 45.
5
+
6
+ The Major ID is usually assigned in the library which is causing the error; for example in HSLUtilLib2 there is a function called "Error" in which there is a static const variable called MajorID. The minor ID corresponds to the general type of error; in HSLUtilLib2 "0x01" is used to refer to a general runtime error.
7
+
8
+ - :ref:`Runtime Errors <RuntimeErrors>`
9
+ - :ref:`Syntax Errors <SyntaxErrors>`
VenusLibraryDocumentation-DocsForGPT/docs/source/ErrorReportLibrary.rst ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Error Report Library
2
+ ===================
3
+
4
+ https://github.com/theonetruenerd/VenusPackages/blob/main/ErrorReportLibrary.pkg
5
+
6
+ The error report library generates concise reports on both general errors and pipetting errors that occur during a run, extracting the information from the trace file. It adds the following functions:
7
+
8
+ - :ven:func:`CopyActiveTraceFile`
9
+ - :ven:func:`GenerateGeneralErrorsReport`
10
+ - :ven:func:`GeneratePipettingErrorsReport`
11
+
12
+ .. ven:function:: CopyActiveTraceFile(variable o_strTraceCopyFilePath)
13
+
14
+ Finds the trace file that is currently active (i.e. associated with the current run) and makes a copy of it, which it saves in the location specified.
15
+
16
+ :params o_strTraceCopyFilePath: The location that the copy of the trace file will be created in
17
+ :type o_strTraceCopyFilePath: Variable
18
+ :return: None
19
+ :rtype: N/A
20
+
21
+ .. ven:function:: GenerateGeneralErrorsReport(variable i_strTraceFilePath, variable o_strPDF_FilePath)
22
+
23
+ Reads the active trace file, locates errors found within it and generates an error report on errors found in non-pipetting steps
24
+
25
+ :params i_strTraceFilePath: The path to the current trace file
26
+ :params o_strPDF_FilePath: The file path for the exported PDF of the error report
27
+ :type i_strTraceFilePath: Variable
28
+ :type o_strPDF_FilePath: Variable
29
+ :return: None
30
+ :rtype: N/A
31
+
32
+ .. ven:function:: GeneratePipettingErrorsReport(variable i_strTraceFilePath, variable i_strTemplateFilePath, variable i_intWriteRowStart, o_strPDF_FilePath)
33
+
34
+ Reads the active trace file, locates errors in the pipetting steps within it and generates an error report for the pipetting steps only
35
+
36
+ :params i_strTraceFilePath: The path to the current trace file
37
+ :params i_strTemplateFilePath: The path to the excel file used as a template for generating the report; should be installed when the library is unpacked
38
+ :params i_intWriteRowStart: Which row of the excel file to begin the report on; usually two, can be more than two
39
+ :params o_strPDF_FilePath: The file path for the exported PDF of the error report
40
+ :type i_strTraceFilePath: Variable
41
+ :type i_strTemplateFilePath: Variable
42
+ :type i_intWriteRowStart: Variable
43
+ :type o_strPDF_FilePath: Variable
44
+ :return: None
45
+ :rtype: N/A
VenusLibraryDocumentation-DocsForGPT/docs/source/ErrorSimulator.rst ADDED
@@ -0,0 +1,190 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Error Simulator
2
+ ======================================
3
+
4
+ https://github.com/theonetruenerd/VenusPackages/blob/main/ErrorSimulator.pkg
5
+
6
+ This library adds the ability to simulate a variety of errors, to assist with debugging or custom error handling. The functions it adds are:
7
+
8
+ - :ven:func:`AA_Abstract`
9
+ - :ven:func:`STEP1_PrepareRegistryAndCfgFile`
10
+ - :ven:func:`STEP2a_SimulateError_Channels`
11
+ - :ven:func:`STEP2b_SimulateError_COREGripper`
12
+ - :ven:func:`STEP2c_SimulateError_iSWAP`
13
+ - :ven:func:`STEP2d_SimulateError_96Head`
14
+ - :ven:func:`STEP2e_SimulateError_384Head`
15
+ - :ven:func:`STEP2f_SimulateError_BarcodeReading`
16
+ - :ven:func:`STEP2g_SimulateError_Autoload`
17
+ - :ven:func:`STEP2h_SimulateError_CRWashstation`
18
+ - :ven:func:`STEP3_Restore_BackupCfgFile`
19
+ - :ven:func:`STEP4_Optional_SwitchChecksum_ON`
20
+
21
+ .. ven:function:: AA_Abstract()
22
+
23
+ This function does nothing. In the submethod library itself it simply lists the changelog.
24
+
25
+ .. ven:function:: STEP1_PrepareRegistryAndCfgFile(device ML_STAR)
26
+
27
+ This function prepares the system files and registry to perform the error simulation. You can put this step at the beginning of your method, and you can disable it after the 1st run, once all registry and configuration settings are done. It switches off the checksum in the registry, asking for confirmation to modify the registry during run. It converts the \Config\ML_STAR_Simulator.cfg file to ASCII. It creates a copy of ML_STAR_Simulator.cfg named ML_STAR_Simulator.cfg.bak for future restoration if needed. It replaces the string reload "0" with reload "1".
28
+
29
+ :params ML_STAR: The instrument being used. Should be ML_STAR.
30
+ :type ML_STAR: Device
31
+ :return: None
32
+ :rtype: N/A
33
+
34
+ .. ven:function:: STEP2a_SimulateError_Channels(variable ChannelNumber, variable WhenSimulateError, variable ErrorToSimulate, device ML_STAR)
35
+
36
+ This function simulates an error in the channels. It can simulate an error of your choice (between errors 1 and 12) in a desired channel at any step of the pipetting process. The error codes are:
37
+ - 1....... Liquid Level not found (error 06/70)
38
+ - 2....... Not enough liquid (error 06/71)
39
+ - 3....... Liquid level not found with Dual LLD ( error 06/73)
40
+ - 4....... Clot error (error 04/81)
41
+ - 5....... Liquid not correctly aspirated (error 06/80)
42
+ - 6.......Tip already present (error 07/00)
43
+ - 7....... No Tip (error 08/00)
44
+ - 8....... Wrong tip type detected (error 08/78)
45
+ - 9....... Syntax / parameter out of range (error 01/00)
46
+ - 10....... Hardware (error 02/00)
47
+ - 11....... Not Executed (error 03/00)
48
+ - 12....... Not Completed (error 10/00)
49
+
50
+ :params ChannelNumber: A string of the channel(s) in which the error is to be simulated, e.g. "1,2,4,7"
51
+ :params WhenSimulateError: The step of the process in which the error is desired to be simulated. 1 = Aspiration, 2 = Dispense, 3 = Tip pickup, 4 = Tip eject
52
+ :params ErrorToSimulate: Integer corresponding to the desired simulated error, key listed in function description.
53
+ :params ML_STAR: The instrument being used. Should be ML_STAR.
54
+ :type ChannelNumber: Variable
55
+ :type WhenSimulateError: Variable
56
+ :type ErrorToSimulate: Variable
57
+ :type ML_STAR: Device
58
+ :return: None
59
+ :rtype: N/A
60
+
61
+ .. ven:function:: STEP2b_SimulateError_COREGripper(variable ChannelNumber, variable WhenSimulateError, variable ErrorToSimulate, device ML_STAR)
62
+
63
+ This function simulates an error in the CO-RE gripper. It can simulate an error of your choice (between errors 1 and 4) in a desired channel at any step of the process. The error codes are:
64
+ - 1....... Can´t get the CORE grippers (error 08/75)
65
+ - 2....... Step lost in Z drive, crash against something (error 02/62)
66
+ - 3....... Hardware (error 02/00)
67
+ - 4....... Read Barcode Error (05/00)
68
+
69
+ :params ChannelNumber: A string of the channel(s) in which the error is to be simulated, e.g. "1,2,4,7"
70
+ :params WhenSimulateError: The step of the process in which the error is desired to be simulated. 1 = Pickup CO-RE, 2 = Get Plate, 3 = Put Plate, 4 = Eject CO-RE gripper
71
+ :params ErrorToSimulate: Integer corresponding to the desired simulated error, key listed in function description.
72
+ :params ML_STAR: The instrument being used. Should be ML_STAR.
73
+ :type ChannelNumber: Variable
74
+ :type WhenSimulateError: Variable
75
+ :type ErrorToSimulate: Variable
76
+ :type ML_STAR: Device
77
+ :return: None
78
+ :rtype: N/A
79
+
80
+ .. ven:function:: STEP2c_SimulateError_iSWAP(variable WhenSimulateError, variable ErrorToSimulate, device ML_STAR)
81
+
82
+ This function simulates an error in the iSWAP. It can simulate an error of your choice (between errors 1 and 4) at any step of the process. The error codes are:
83
+ - 1...... Expected object not found (error 21/94)
84
+ - 2...... Step lost in Z drive, crash against something (error 02/62)
85
+ - 3...... Hardware (error 02/00)
86
+ - 4...... Object lost (error 23/96)
87
+
88
+ :params WhenSimulateError: The step of the process in which the error is desired to be simulated. 1 = Get Plate, 2 = Put Plate
89
+ :params ErrorToSimulate: Integer corresponding to the desired simulated error, key listed in function description.
90
+ :params ML_STAR: The instrument being used. Should be ML_STAR.
91
+ :type WhenSimulateError: Variable
92
+ :type ErrorToSimulate: Variable
93
+ :type ML_STAR: Device
94
+ :return: None
95
+ :rtype: N/A
96
+
97
+ .. ven:function:: STEP2d_SimulateError_96Head(variable WhenSimulateError, variable ErrorToSimulate, device ML_STAR)
98
+
99
+ This function simulates an error in the 96-head. It can simulate an error of your choice (between errors 1 and 12 - not all available) at any step of the process. The error codes are:
100
+ - 1....... Liquid Level not found (error 06/70)
101
+ - 2....... Not enough liquid (error 06/71)
102
+ - 6....... Tip already present (error 07/00)
103
+ - 7....... No Tip (error 08/00)
104
+ - 8....... Wrong tip type detected (error 08/78)
105
+ - 9....... Syntax / parameter out of range (error 01/00)
106
+ - 10...... Hardware (error 02/00)
107
+ - 11...... Not Executed (error 03/00)
108
+ - 12...... Not Completed (error 10/00)
109
+
110
+ :params WhenSimulateError: The step of the process in which the error is desired to be simulated. 1 = Aspiration, 2 = Dispense, 3 = Tip Pickup, 4 = Tip eject, 5 = Wash
111
+ :params ErrorToSimulate: Integer corresponding to the desired simulated error, key listed in function description.
112
+ :params ML_STAR: The instrument being used. Should be ML_STAR.
113
+ :type WhenSimulateError: Variable
114
+ :type ErrorToSimulate: Variable
115
+ :type ML_STAR: Device
116
+ :return: None
117
+ :rtype: N/A
118
+
119
+ .. ven:function:: STEP2e_SimulateError_384head(variable WhenSimulateError, variable ErrorToSimulate, device ML_STAR)
120
+
121
+ This function simulates an error in the 384-head. It can simulate an error of your choice (between errors 1 and 12 - not all available) at any step of the process. The error codes are:
122
+ - 1....... Liquid Level not found (error 06/70)
123
+ - 2....... Not enough liquid (error 06/71)
124
+ - 6....... Tip already present (error 07/00)
125
+ - 7....... No Tip (error 08/00)
126
+ - 8....... Wrong tip type detected (error 08/78)
127
+ - 9....... Syntax / parameter out of range (error 01/00)
128
+ - 10...... Hardware (error 02/00)
129
+ - 11...... Not Executed (error 03/00)
130
+ - 12...... Not Completed (error 10/00)
131
+
132
+ :params WhenSimulateError: The step of the process in which desired error is to be simulated. 1 = Aspiration, 2 = Dispense, 3 = Tip Pickup, 4 = Tip eject, 5 = Wash.
133
+ :params ErrorToSimulate: Integer corresponding to the desired simulated error, key listed in function definition.
134
+ :params ML_STAR: The instrument being used. Should be ML_STAR
135
+ :type WhenSimulatedError: Variable
136
+ :type ErrorToSimulate: Variable
137
+ :type ML_STAR: Device
138
+ :return: None
139
+ :rtype: N/A
140
+
141
+ .. ven:function:: STEP2f_SimulateError_BarcodeReading(variable WhenSimulateError, device ML_STAR)
142
+
143
+ This function simulates an error during the barcode reading step. It can simulate the error as though it was either the CO-RE grips or the iSWAP involved.
144
+
145
+ :params WhenSimulateError: Poorly labelled variable, likely copied and pasted. This is not when the error is simulated; it is instead whether the barcode is being read with CO-RE grips (1) or the iSWAP (2)
146
+ :param ML_STAR: The instrument being used. Should be ML_STAR
147
+ :type WhenSimulateError: Variable
148
+ :type ML_STAR: Device
149
+ :return: None
150
+ :rtype: N/A
151
+
152
+ .. ven:function:: STEP2g_SimulateError_Autoload(variable notReadPosition_Str, variable notPresentPosition_Str, device ML_STAR)
153
+
154
+ This submethod simulates the "Barcode not read" and "Labware not Present Errors".you can enter positions with errors separated by a comma
155
+
156
+ :params notReadPosition_Str: A string of comma separated values with the positions in which you want to simulate barcode errors
157
+ :params notPresentPosition_Str: A string of comma separated values with the positions in which you want to simulate labware not present errors.
158
+ :params ML_STAR: The instrument being used. Should be ML_STAR.
159
+ :type notReadPosition_Str: Variable
160
+ :type notPresentPosition_Str: Variable
161
+ :type ML_STAR: Device
162
+ :return: None
163
+ :rtype: N/A
164
+
165
+ .. ven:function:: STEP2h_SimulateError_CRWashstation(variable errorToSimulate, device ML_STAR)
166
+
167
+ This function simulates an error when starting the washing with the CR washstation
168
+
169
+ :params errorToSimulate: The error being simulated. 1 = Not washing liquid error, 2 = hardware error.
170
+ :params ML_STAR: The instrument being used. Should be ML_STAR.
171
+ :type errorToSimulate: Variable
172
+ :type ML_STAR: Device
173
+ :return: None
174
+ :rtype: N/A
175
+
176
+ .. ven:function:: STEP3_Restore_BackupCfgFile(device ML_STAR)
177
+
178
+ This function restores the backup configuration file created in function STEP1_PrepareRegistryAndCfgFile
179
+
180
+ :params ML_STAR: The instrument being used. Should be ML_STAR.
181
+ :type ML_STAR: Device
182
+ :return: None
183
+ :rtype: N/A
184
+
185
+ .. ven:function:: STEP4_Optional_SwitchChecksum_ON()
186
+
187
+ This function is optional. Use it at the end of your method if you want to Switch the File Checksum ON in the registry
188
+
189
+ :return: None
190
+ :rtype: N/A
VenusLibraryDocumentation-DocsForGPT/docs/source/Framework.txt ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Framework (from HSLExtensions)
2
+ =========================
3
+
4
+ https://github.com/theonetruenerd/VenusPackages/blob/main/Framework.pkg
5
+
6
+ The framework library from HSLExtensions provides two visible functions, but is also required for a few of the other HSLExtension libraries. It uses the functionality of the ASW Standard TraceLevel library. The functions it adds are:
7
+
8
+ - :ven:func:`GetVersion`
9
+ - :ven:func:`SetTraceLevel`
10
+
11
+ .. ven:function:: GetVersion()
12
+
13
+ This function gets the framework version
14
+
15
+ :return: The framework version
16
+ :rtype: String
17
+
18
+ .. ven:function:: SetTraceLevel(variable i_intTraceLevel)
19
+
20
+ This function sets the trace level of the framework.
21
+
22
+ :params i_intTraceLevel: The trace level, for the ASWStandard::TraceLevel library. 0 = TRACE_LEVEL_NONE, 1 = TRACE_LEVEL_RELEASE, 2 = TRACE_LEVEL_DEBUG.
23
+ :type i_intTraceLevel: Variable
24
+ :return: None
25
+ :rtype: N/A
VenusLibraryDocumentation-DocsForGPT/docs/source/HSLDeckVisualize.rst ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ HSLDeckVisualize
2
+ ======================================
3
+
4
+ https://github.com/theonetruenerd/VenusPackages/blob/main/HSLDeckVisualize.pkg
5
+
6
+ The HSLDeckVisualize library adds functions which will update the layout shown in the run control to account for manually performed actions or cause specific effects to occur. The functions it adds are:
7
+
8
+ - :ven:func:`UpdateUsedPositions`
9
+ - :ven:func:`UpdateUsedLabware`
10
+ - :ven:func:`UpdateLoadedLabware`
11
+
12
+ .. ven:function:: UpdateUsedPositions(device dev, sequence positions, variable action, variable description)
13
+
14
+ This function updates the list of used positions and updates the view.
15
+
16
+ :params dev: The instrument for which the associated deck view will be updated. ML_STAR should be the only option visible in the dropdown.
17
+ :params positions: The sequence of labware and positions IDs to be updated.
18
+ :params action: The action to be performed on the specified positions. The same action will be performed for all positions. Action can be an integer from 0-6, with the values each representing a different event. 0 = Position is selected, 1 = Processing, 2 = Reserved, 3 = Error, 4 = Processed, 5 = Reset action state to none, 6 = Position selected and flashing.
19
+ :params description: The description displayed in the first section of the status bar in the deck view.
20
+ :type dev: Device
21
+ :type positions: Sequence
22
+ :type action: Variable
23
+ :type description: Variable
24
+ :return: None
25
+ :rtype: N/A
26
+
27
+ .. ven:function:: UpdateUsedLabware(device dev, array labware, array action, variable description)
28
+
29
+ This function updates the list of used labware and updates the view accordingly. The labware and action arrays must be the same size.
30
+
31
+ :params dev: The instrument for which the associated deck view will be updated. ML_STAR should be the only option visible in the dropdown.
32
+ :params labware: The array of labware IDs for updating
33
+ :params action: The array of actions which will be applied to the associated labware at the same index in the labware array. Action can be an integer from 0-6, with the values each representing a different event. 0 = Position is seleccted, 1 = Processing, 2 = Reserved, 3 = Error, 4 = Processed, 5 = Reset action state to none, 6 = Position selected and flashing.
34
+ :params description: The description displayed in the first section of the status bar in the deck view.
35
+ :type dev: Device
36
+ :type labware: Array
37
+ :type action: Array
38
+ :type description: Variable
39
+ :return: None
40
+ :rtype: N/A
41
+
42
+ .. ven:function:: UpdateLoadedLabware(device dev, array labware, array state, variable description)
43
+
44
+ This function updates the list of loaded labware and updates the view accordingly. The labware and action arrays must be the same size.
45
+
46
+ :params dev: The instrument for which the associated deck view will be updated. ML_STAR should be the only option visible in the dropdown.
47
+ :params labware: The array of labware IDs for updating
48
+ :params state: The array of load state which will be applied to the associated labware at the same index in the labware array. State can be an integer from 0-5, with the values each representing a different state. 0 = unload the labware and make not visible, 1 = load the labware, 2 = preparing to unload, 3 = preparing to load, 4 = labware will flash, 5 = labware will flash
49
+ :params description: The description displayed in the first section of the status bar in the deck view.
50
+ :type dev: Device
51
+ :type labware: Array
52
+ :type state: Array
53
+ :type description: Variable
54
+ :return: None
55
+ :rtype: N/A
VenusLibraryDocumentation-DocsForGPT/docs/source/HSLFilLib.rst ADDED
@@ -0,0 +1,215 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ HSLFilLib
2
+ ================================
3
+
4
+ https://github.com/theonetruenerd/VenusPackages/blob/main/HSLFilLib.pkg
5
+
6
+ This library allows interaction with and manipulation of files present on the host computer. It adds the following functions:
7
+
8
+ - :ven:func:`FilEof`
9
+ - :ven:func:`FilFindFile`
10
+ - :ven:func:`FilFindNextFile`
11
+ - :ven:func:`FilFormatBarcodeFile`
12
+ - :ven:func:`FilGetBinPath`
13
+ - :ven:func:`FilGetCommState`
14
+ - :ven:func:`FilGetCommTimeouts`
15
+ - :ven:func:`FilGetConfigPath`
16
+ - :ven:func:`FilGetLabwarePath`
17
+ - :ven:func:`FilGetLibraryPath`
18
+ - :ven:func:`FilGetLogFilesPath`
19
+ - :ven:func:`FilGetMethodsPath`
20
+ - :ven:func:`FilGetSystemPath`
21
+ - :ven:func:`FilIsNull`
22
+ - :ven:func:`FilReadString`
23
+ - :ven:func:`FilRemoveFields`
24
+ - :ven:func:`FilSearchPath`
25
+ - :ven:func:`FilSetCommState`
26
+ - :ven:func:`FilSetCommTimeouts`
27
+ - :ven:func:`FilUpdateRecord`
28
+ - :ven:func:`FilWriteString`
29
+
30
+ .. ven:function:: FilEof(variable filObj)
31
+
32
+ This function checks whether the current position in the specified file is the final line
33
+
34
+ :params filObj: The opened file to be checked
35
+ :type filObj: Variable (file)
36
+ :return: Boolean as to whether the position is the end of the file or not
37
+ :rtype: Boolean
38
+
39
+ .. ven:function:: FilFindFile(variable filName)
40
+
41
+ This function starts searching the specified path for a file. This function is obsolete, and :ven:func:`FilSearchPath` should be used instead.
42
+
43
+ :params filName: The directory or path and file name to be searched for. Can contain wildcard characters such as * or ?
44
+ :type filName: Variable
45
+ :return: If successful, the path name of the first file found that matches the input
46
+ :rtype: Variable
47
+
48
+ .. ven:function:: FilFindNextFile()
49
+
50
+ Continues the search from :ven:func:`FilFindFile` to the next file.
51
+
52
+ :return: If successful, the path name of the next file found that matches the input from the most recent FilFindFile command
53
+ :rtype: Variable
54
+
55
+ .. ven:function:: FilFormatBarcodeFile(variable dataSource, variable dataTarget)
56
+
57
+ This function takes the barcode ASCII text file written during LoadCarrier and converts it into a strongly formatted barcode file. This strongly formatted file can be an ASCII text file, a Microsoft Excel file, or a Microsoft Access file. Will contain the following columns:
58
+
59
+ - ID (record ID, integer)
60
+ - Specifier (string, P = position, C = carrier)
61
+ - Position (position, integer)
62
+ - Barcode (barcode, string)
63
+ - Timestamp (timestamp, YYYY-MM-DD hh:mm:ss, string)
64
+
65
+ :params dataSource: The name of the barcode ASCII file generated during the load carrier step
66
+ :params dataTarget: The name of the barcode ASCII text file, Microsoft Excel file or Microsoft Access file generated by the function. The name must include a table name for a Microsoft Excel file or a Microsoft Access Database.
67
+ :type dataSource: Variable
68
+ :type dataTarget: Variable
69
+ :return: Boolean showing if the function was successful or not
70
+ :rtype: Boolean
71
+
72
+ .. ven:function:: FilGetBinPath()
73
+
74
+ This function retrieves the vector binary path
75
+
76
+ :return: The vectory binary path (usually C:\Program Files (x86)\Hamilton\Bin)
77
+ :rtype: Variable
78
+
79
+ .. ven:function:: FilGetCommState(file port)
80
+
81
+ This function retrieves the configuration information for the specified communication resource. The entries of the structure that retrieves the configuration information must be accessible in the global scope.
82
+
83
+ :params port: The communication resource opened during the file-Open operation
84
+ :type: Port
85
+ :return: Boolean showing if the function was successful or not
86
+ :rtype: Boolean
87
+
88
+ .. ven:function:: GetCommTimeouts(file port)
89
+
90
+ This function retrieves the time-out parameters for all read and write operations for the specified communication resource. The entries of the structure that contains the configuration information must be accessible in the global scope.
91
+
92
+ :params port: The communication resource opened during the file-Open operation
93
+ :type port: Port
94
+ :return: Boolean showing if the function was successful or not
95
+ :rtype: Boolean
96
+
97
+ .. ven:function:: FilGetConfigPath()
98
+
99
+ This function retrieves the vector configuration path
100
+
101
+ :return: The vector configuration path (usually C:\Program Files (x86)\Hamilton\Config)
102
+ :rtype: Variable
103
+
104
+ .. ven:function:: FilGetLabwarePath()
105
+
106
+ This function retrieves the vector labware path
107
+
108
+ :return: The vector labware path (usually C:\Program Files (x86)\Hamilton\Labware)
109
+ :rtype: Variable
110
+
111
+ .. ven:function:: FilGetLibraryPath()
112
+
113
+ This function retrieves the vector library path
114
+
115
+ :return: The vector library path (usually C:\Program Files (x86)\Hamilton\Library)
116
+ :rtype: Variable
117
+
118
+ .. ven:function:: FilGetLogFilesPath()
119
+
120
+ This function retrieves the vector log files path
121
+
122
+ :return: The vector log files path (usually C:\Program Files (x86)\Hamilton\LogFiles)
123
+ :rtype: Variable
124
+
125
+ .. ven:function:: FilGetMethodsPath()
126
+
127
+ This function retrieves the vector methods path
128
+
129
+ :return: The vector methods path (usually C:\Program Files (x86)\Hamilton\Methods)
130
+ :rtype: Variable
131
+
132
+ .. ven:function:: FilGetSystemPath()
133
+
134
+ This function retrieves the vector system path
135
+
136
+ :return: The vector system path (usually C:\Program Files (x86)\Hamilton\System)
137
+ :rtype: Variable
138
+
139
+ .. ven:function:: FilIsNull(variable value)
140
+
141
+ This function returns a non-zero if the variable is a null value (SQL style Null).
142
+
143
+ :params value: The variable being checked
144
+ :type value: Variable
145
+ :return: A boolean determining if the variable is SQL style Null or not
146
+ :rtype: Boolean
147
+
148
+ .. ven:function:: FilReadString(file fileObj)
149
+
150
+ This function reads the next record from the input file as string-valued data. Row data, but no schema data, is saved to the string. After you call FilReadString, the next unread record becomes the current record, or Eof is set to hslTrue if there are no more records.
151
+
152
+ :params fileObj: The file being looked at
153
+ :type fileObj: File
154
+ :return: The contents of the line being looked at as string-valued data, or the specific run-time error
155
+ :rtype: String
156
+
157
+ .. ven:function:: FilRemoveFields(file fileObj)
158
+
159
+ This function removes all fields from a record definition
160
+
161
+ :params fileObj: The file containing the record which is having its fields removed
162
+ :type fileObj: File
163
+ :return: None
164
+ :rtype: N/A
165
+
166
+ .. ven:function:: FilSearchPath(variable fileName)
167
+
168
+ This function searches for the specified file, and outputs the path and filename of the file if found, or an empty string if not found. Will search the current directory, the methods directory, the library directory, and any directories in the PATH environment variable.
169
+
170
+ :params fileName: The file name to be searched for
171
+ :type fileName: Variable
172
+ :return: The path name of the first file found, or an empty string if no files were found
173
+ :rtype: Variable
174
+
175
+ .. ven:function:: FilSetCommState(file port, variable cfgFile)
176
+
177
+ This function configures a communication resource according to the specifications in a structure that contains the configuration information. The structure that contains the configuration information must be structured as shown below. Each entry in the structure is optional and overwrites the default value in parentheses.
178
+
179
+ :params port: The communication resource opened during the file-Open operation
180
+ :params cfgFile: The name of the file containing the configuration information. If this parameter is empty, the entries in the structure that contains the configuration information must be accessible in the global scope.
181
+ :type port: File
182
+ :type cfgFile: Variable
183
+ :return: Boolean showing whether the function succeeded or not
184
+ :rtype: Boolean
185
+
186
+ .. ven:function:: FilSetCommTimeouts(file port, variable cfgFile)
187
+
188
+ This function sets the time-out parameters for all read and write operations on a specified communication resource. The structure that contains the time-out information is as shown below. Each entry in the structure is optional and overwrites the default value in parentheses.
189
+
190
+ :params port: The communication resource opened during the file-Open operation
191
+ :params cfgFile: The name of the file that contains the time-out information. If this parameter is empty, the entries in the structure that contains the time-out information must be accessible in the global scope.
192
+ :type port: File
193
+ :type cfgFile: Variable
194
+ :return: Boolean showing whether the function succeeded or not
195
+ :rtype: Boolean
196
+
197
+ .. ven:function:: FilUpdateRecord(file fileObj)
198
+
199
+ Updates the current record of the file object with the values of the variable objects specified in the record definition. The current record remains current after you call the FilUpdateRecord function. The provider must support UPDATE.
200
+
201
+ :params fileObj: The file object being updated
202
+ :type fileObj: File
203
+ :return: Boolean showing whether the function succeeded or not
204
+ :rtype: Boolean
205
+
206
+ .. ven:function:: FilWriteString(file fileObj, variable stringObj)
207
+
208
+ Writes a string to the end of the file data source. After you call the FilWriteString function, the new record becomes the current record.
209
+
210
+ :params fileObj: The file which is being written in
211
+ :params stringObj: The string to be written
212
+ :type fileObj: File
213
+ :type stringObj: Variable
214
+ :return: Boolean showing whether the function succeeded or not
215
+ :rtype: Boolean
VenusLibraryDocumentation-DocsForGPT/docs/source/HSLFilLibEx.rst ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ HSLFileLibEx
2
+ =============================
3
+
4
+ https://github.com/theonetruenerd/VenusPackages/blob/main/HSLFilLibEx.pkg
5
+
6
+ HSLFilLibEx allows you to manipulate files. It adds the following functions:
7
+
8
+ - :ven:func:`FilCopyFileEx`
9
+ - :ven:func:`FilDeleteFileEx`
10
+ - :ven:func:`FilFormatReportFileEx`
11
+
12
+ .. ven:function:: FilCopyFileEx(variable SourceFilePathName, variable DestinationFilePathName)
13
+
14
+ This function creates a copy of the specified file, which will be placed in the specified new location
15
+
16
+ :params SourceFilePathName: The path to the file which you wish to copy, including the file name and extension
17
+ :params DestinationFilePathName: The path to which you would like to copy the file, including the file name and extension
18
+ :type SourceFilePathName: Variable
19
+ :type DestinationFilePathName: Variable
20
+ :return: None
21
+ :rtype: N/A
22
+
23
+ .. ven:function:: FilDeleteFileEx(variable FilePathName)
24
+
25
+ This function deletes the file at the specified location
26
+
27
+ :params FilePathName: The path to the file which you wish to delete, including file name and extension
28
+ :type FilePathName: Variable
29
+ :return: None
30
+ :rtype: N/A
31
+
32
+ .. ven:function:: FilFormatReportFileEx(variable SourceFilePathName, variable DestinationFilePathName)
33
+
34
+ This function creates a formatted/filtered copy of the specified report file. It searches the file for the string "Element Name" and copies any subsequent lines to the new file.
35
+
36
+ :params SourceFilePathName: The path to the file which you wish to format, including file name and extension
37
+ :params DestinationFilePathName: The path to the file you would like to create the formatted report in, including file name and extension.
38
+ :type SourceFilePathName: Variable
39
+ :type DestinationFilePathName: Variable
40
+ :return: None
41
+ :rtype: N/A
VenusLibraryDocumentation-DocsForGPT/docs/source/HSLStatistics.rst ADDED
@@ -0,0 +1,95 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ HSLStatistics
2
+ ===================================
3
+
4
+ https://github.com/theonetruenerd/VenusPackages/blob/main/HSLStatistics.pkg
5
+
6
+ The HSLStatistics library is designed to easily allow the user to perform basic statistical functions easily. It adds the following functions:
7
+
8
+ - :ven:func:`Stat_Average`
9
+ - :ven:func:`Stat_StdDeviation`
10
+ - :ven:func:`Stat_CorrelationCoefficent`
11
+ - :ven:func:`Stat_RSQ`
12
+ - :ven:func:`Stat_Slope`
13
+ - :ven:func:`Stat_Intercept`
14
+ - :ven:func:`Stat_Min`
15
+ - :ven:func:`Stat_Max`
16
+
17
+ .. ven:function:: Stat_Average(array DataArray)
18
+
19
+ This function returns the average of a data set input as an array
20
+
21
+ :params DataArray: The input array of data from which the average is calculated
22
+ :type DataArray: Array
23
+ :return: The calculated average of the array
24
+ :rtype: Variable
25
+
26
+ .. ven:function:: Stat_StdDeviation(array DataArray)
27
+
28
+ This function returns the standard deviation of a data set input as an array
29
+
30
+ :params DataArray: The input array of data from which the standard deviation is calculated
31
+ :type DataArray: Array
32
+ :return: The calculated standard deviation of the array
33
+ :rtype: Variable
34
+
35
+ .. ven:function:: Stat_CorrelationCoefficient(array XArray, array YArray)
36
+
37
+ This function returns the correlation coefficient (r-value) of a paired data set
38
+
39
+ :params XArray: The array of X data values in the paired set
40
+ :params YArray: The array of Y data values in the paired set
41
+ :type XArray: Array
42
+ :type YArray: Array
43
+ :return: The r-value of the paired data set
44
+ :rtype: Variable
45
+
46
+ .. ven:function:: Stat_RSQ(array XArray, array YArray)
47
+
48
+ This function returns the pearson coefficient (r^2) of a paired data set
49
+
50
+ :params XArray: The array of X data values in the paired set
51
+ :params YArray: The array of Y data values in the paired set
52
+ :type XArray: Array
53
+ :type YArray: Array
54
+ :return: The pearson coefficient of the paired data set
55
+ :rtype: Variable
56
+
57
+ .. ven:function:: Stat_Slope(array XArray, array YArray)
58
+
59
+ This function returns the slope of the best fit line of a paired data set
60
+
61
+ :params XArray: The array of X data values in the paired set
62
+ :params YArray: The array of Y data values in the paired set
63
+ :type XArray: Array
64
+ :type YArray: Array
65
+ :return: The slope of the best fit line
66
+ :rtype: Variable
67
+
68
+ .. ven:function:: Stat_Intercept(array XArray, array YArray)
69
+
70
+ This function returns the intercept of the best fit line of a paired data set
71
+
72
+ :params XArray: The array of X data values in the paired set
73
+ :params YArray: The array of Y data values in the paired set
74
+ :type XArray: Array
75
+ :type YArray: Array
76
+ :return: The intercept of the line of best fit
77
+ :rtype: Variable
78
+
79
+ .. ven:function:: Stat_Min(array DataArray)
80
+
81
+ This function returns the lowest value of a dataset
82
+
83
+ :params DataArray: The array for the minimum to be searched in
84
+ :type DataArray: Array
85
+ :return: The lowest value of the dataset
86
+ :rtype: Variable
87
+
88
+ .. ven:functions:: Stat_Max(array DataArray)
89
+
90
+ This function returns the hgihest value of a dataset
91
+
92
+ :params DataArray: The array for the minimum to be searched in
93
+ :type DataArray: Array
94
+ :return: The lowest value of the dataset
95
+ :rtype: Variable
VenusLibraryDocumentation-DocsForGPT/docs/source/HSLStrLib.rst ADDED
@@ -0,0 +1,395 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ HSLStrLib
2
+ ==========================================
3
+
4
+ https://github.com/theonetruenerd/VenusPackages/blob/main/HSLStrLib.pkg
5
+
6
+ HSL String Library provides the following functions:
7
+
8
+ - :ven:func:`StrAsciiToStr`
9
+ - :ven:func:`StrConcat2`
10
+ - :ven:func:`StrConcat4`
11
+ - :ven:func:`StrConcat8`
12
+ - :ven:func:`StrConcat12`
13
+ - :ven:func:`StrEvaluateExpr`
14
+ - :ven:func:`StrFillLeft`
15
+ - :ven:func:`StrFillRight`
16
+ - :ven:func:`StrFind`
17
+ - :ven:func:`StrFStr`
18
+ - :ven:func:`StrFStrEx`
19
+ - :ven:func:`StrFVal`
20
+ - :ven:func:`StrGetLength`
21
+ - :ven:func:`StrGetType`
22
+ - :ven:func:`StrHexIStr`
23
+ - :ven:func:`StrIsDigit`
24
+ - :ven:func:`StrIStr`
25
+ - :ven:func:`StrIVal`
26
+ - :ven:func:`StrLeft`
27
+ - :ven:func:`StrMakeLower`
28
+ - :ven:func:`StrMakeLowerCopy`
29
+ - :ven:func:`StrMakeUpper`
30
+ - :ven:func:`StrMakeUpperCopy`
31
+ - :ven:func:`StrMid`
32
+ - :ven:func:`StrReplace`
33
+ - :ven:func:`StrReverseFind`
34
+ - :ven:func:`StrRight`
35
+ - :ven:func:`StrSpanExcluding`
36
+ - :ven:func:`StrStrToAscii`
37
+ - :ven:func:`StrTrimLeft`
38
+ - :ven:func:`StrTrimRight`
39
+
40
+ .. ven:function:: StrAsciiToStr(variable asciiCode)
41
+
42
+ Converts the given ASCII Code (an integer) to a character (string).
43
+
44
+ :param asciiCode: The ASCII code to convert
45
+ :type asciiCode: Integer
46
+ :return: The ASCII code as a string
47
+ :rtype: String
48
+
49
+ .. ven:function:: StrConcat2(variable Var1, variable Var2)
50
+
51
+ Combines two strings into a new string
52
+
53
+ :param Var1: The first string to be combined
54
+ :param Var2: The second string to be combined
55
+ :type Var1: String
56
+ :type Var2: String
57
+ :return: The combined string of Var1 + Var2
58
+ :rtype: String
59
+
60
+ .. ven:function:: StrConcat4(variable Var1, variable Var2, variable Var3, variable Var4)
61
+
62
+ Combines four strings into a new string
63
+
64
+ :param Var1: The first string to be combined
65
+ :param Var2: The second string to be combined
66
+ :param Var3: The third string to be combined
67
+ :param Var4: The fourth string to be combined
68
+ :type Var1: String
69
+ :type Var2: String
70
+ :type Var3: String
71
+ :type Var4: String
72
+ :return: The combined string of Var1 + Var2 + Var3 + Var4
73
+ :rtype: String
74
+
75
+ .. ven:function:: StrConcat8(variable Var1, variable Var2, variable Var3, variable Var4, variable Var5, variable Var6, variable Var7, variable Var8)
76
+
77
+ Combines eight strings into a new string
78
+
79
+ :param Var1: The first string to be combined
80
+ :param Var2: The second string to be combined
81
+ :param Var3: The third string to be combined
82
+ :param Var4: The fourth string to be combined
83
+ :param Var5: The fifth string to be combined
84
+ :param Var6: The sixth string to be combined
85
+ :param Var7: The seventh string to be combined
86
+ :param Var8: The eighth string to be combined
87
+ :type Var1: Variable
88
+ :type Var2: Variable
89
+ :type Var3: Variable
90
+ :type Var4: Variable
91
+ :type Var5: Variable
92
+ :type Var6: Variable
93
+ :type Var7: Variable
94
+ :type Var8: Variable
95
+ :return: The combined string of Var1 + Var2 + Var3 + Var4 + Var5 + Var6 + Var7 + Var8
96
+ :rtype: String
97
+
98
+ .. ven:function:: StrConcat12(variable Var1, variable Var2, variable Var3, variable Var4, variable Var5, variable Var6, variable Var7, variable Var8, variable Var9, variable var10, variable var11, variable var12)
99
+
100
+ Combines twelve strings into a new string
101
+
102
+ :param Var1: The first string to be combined
103
+ :param Var2: The second string to be combined
104
+ :param Var3: The third string to be combined
105
+ :param Var4: The fourth string to be combined
106
+ :param Var5: The fifth string to be combined
107
+ :param Var6: The sixth string to be combined
108
+ :param Var7: The seventh string to be combined
109
+ :param Var8: The eighth string to be combined
110
+ :param Var9: The ninth string to be combined
111
+ :param Var10: The tenth string to be combined
112
+ :param Var11: The eleventh string to be combined
113
+ :param Var12: The twelfth string to be combined
114
+ :type Var1: Variable
115
+ :type Var2: Variable
116
+ :type Var3: Variable
117
+ :type Var4: Variable
118
+ :type Var5: Variable
119
+ :type Var6: Variable
120
+ :type Var7: Variable
121
+ :type Var8: Variable
122
+ :type Var9: Variable
123
+ :type Var10: Variable
124
+ :type Var11: Variable
125
+ :type Var12: Variable
126
+ :return: The combined string of Var1 + Var2 + Var3 + Var4 + Var5 + Var6 + Var7 + Var8 + Var9 + Var10 + Var11 + Var12
127
+ :rtype: Variable
128
+
129
+ .. ven:function:: StrEvaluateExpr(variable expression)
130
+
131
+ This function evaluates an expression within a string. All variables involved must have global scope.
132
+
133
+ :params expression: The expression to evaluate as a string
134
+ :type expression: Variable
135
+ :return: The value of the expression if the function succeeds, otherwise a runtime error
136
+ :rtype: Variable
137
+
138
+ .. ven:function:: StrFillLeft(variable str, variable character, variable width)
139
+
140
+ This function fills leading characters to the string
141
+
142
+ :params str: The string to be modified
143
+ :params character: The user-defined character to be filled
144
+ :params width: The width to be filled
145
+ :type str: Variable
146
+ :type character: Variable
147
+ :type width: Integer
148
+ :return: The modified string
149
+ :rtype: Variable
150
+
151
+ .. ven:function:: StrFillRight(variable str, variable character, variable width)
152
+
153
+ This function fills trailing characters to the string
154
+
155
+ :params str: The string to be modified
156
+ :params character: The user-defined character to be filled
157
+ :params width: The width to be filled
158
+ :type str: Variable
159
+ :type character: Variable
160
+ :type width: Integer
161
+ :return: The modified string
162
+ :rtype: Variable
163
+
164
+ .. ven:function:: StrFind(variable str, variable subStr)
165
+
166
+ This function searches the string for the first match of the sub-string.
167
+
168
+ :params str: The string to be searched
169
+ :params subStr: The substring to be searched for
170
+ :type str: Variable
171
+ :type subStr: Variable
172
+ :return: The zero-based index of the first character in this string object that matches the requested sub-string or characters. -1 if the sub-string is not found.
173
+ :rtype: Integer
174
+
175
+ .. ven:function:: StrFStr(variable number)
176
+
177
+ This function converts the floating point number input into the corresponding character string.
178
+
179
+ :params number: The float to be converted into a string
180
+ :type number: Float
181
+ :return: The string form of the float
182
+ :rtype: Variable
183
+
184
+ .. ven:function:: StrFStrEx(variable number, variable languageSpecific, variable precision)
185
+
186
+ This function converts the floating point number input into the corresponding character string
187
+
188
+ :params number: The float to be converted into a string.
189
+ :params languageSpecific: Boolean which specifies whether the decimal symbol in the Regional Settings should be used to write the string representation of the floating point number.
190
+ :params precision: The total number of significant digits to be used for the floating-point display
191
+ :type number: Float
192
+ :type languageSpecific: Boolean
193
+ :type precision: Integer
194
+ :return: The string representation of the floating point number
195
+ :rtype: Variable
196
+
197
+ .. ven:function:: StrFVal(variable str)
198
+
199
+ Converts the sequence of digits, contained in the character string str, into the corresponding floating point number. Conversion aborts at the first character in str, which is not a digit or not one of the characters +, -, e, E.
200
+
201
+ :params str: The string to be converted
202
+ :type str: Variable
203
+ :return: THe float representation of the input string. Null if the string cannot be converted. DBL_MAX if the conversion results in an overflow. DBL_MIN if the conversion results in an underflow.
204
+ :rtype: Float or variable
205
+
206
+ .. ven:function:: StrGetLength(variable str)
207
+
208
+ Returns the number of characters in a string object (without '\0').
209
+
210
+ :params str: The string being read
211
+ :type str: Variable
212
+ :return: The length of the string
213
+ :rtype: Integer
214
+
215
+ .. ven:function:: StrGetType(variable var)
216
+
217
+ This function retrieves the type of the value of a variable
218
+
219
+ :params var: A reference to a variable (int, float or string)
220
+ :type var: Variable
221
+ :return: One of the following string-valued constants that indicates the type of the value of a variable. i = hslInteger, f = hslFloat, s = hslString, null = no type
222
+ :rtype: Variable
223
+
224
+ .. ven:function:: StrHexIStr(variable number)
225
+
226
+ Converts the input integer into the corresponding hexadecimal character string
227
+
228
+ :params number: The integer to be converted
229
+ :type: Integer
230
+ :return: The hexadecimal string representation of the integer
231
+ :rtype: String
232
+
233
+ .. ven:function:: StrIsDigit(variable character)
234
+
235
+ The StrIsDigit function determines if the specified input string (which should be a character) is a digit or not.
236
+
237
+ :params character: The input character to be a tested, as a string
238
+ :type character: Variable
239
+ :return: Boolean showing whether the character is a digit (1) or not (0)
240
+ :rtype: Boolean
241
+
242
+ .. ven:function:: StrIsStr(variable number)
243
+
244
+ The StrIStr function converts the input integer into the corresponding character string
245
+
246
+ :params number: The integer to be converted
247
+ :type number: Variable
248
+ :return: The string representation of the integer number
249
+ :rtype: Variable
250
+
251
+ .. ven:function:: StrIVal(variable str)
252
+
253
+ The StrIVal function converts the input sequence of digits into the corresponding integer. The input string is treated as a decimal, unless it begins with an 0x in which case it is interpreted as hexadecimal. Conversion aborts at the first character in the input which is neither a digit nor one of the characters "+" or "-".
254
+
255
+ :params str: The input sequence of digits to be converted
256
+ :type str: Variable
257
+ :return: The numeric value of the sequence of digits contained in the character string, as an integer. Null if the character string cannot be converted into a number. LONG_MAX = 2147483647 if the conversion results in an overflow. LONG_MIN = -2147483647 - 1 if the conversion results in an underflow.
258
+ :rtype: Variable
259
+
260
+ .. ven:function:: StrLeft(variable str, variable count)
261
+
262
+ The StrLeft function extracts the first (leftmost) characters of a string and returns a copy of the extracted substring. The number of characters extracted is equal to the input variable "count". If "count" is longer than the string, the entire string is returned.
263
+
264
+ :params str: The input string from which the substring is to be extracted
265
+ :params count: The number of characters to be extracted
266
+ :type str: Variable
267
+ :type count: Variable
268
+ :return: A string containing a copy of the specified range of characters. Can be an empty string.
269
+ :rtype: Variable
270
+
271
+ .. ven:function:: StrMakeLower(variable str)
272
+
273
+ The StrMakeLower function converts the original string to its lowercase form.
274
+
275
+ :params str: The string to be converted
276
+ :type str: Variable
277
+ :return: The original string converted to lowercase
278
+ :rtype: Variable
279
+
280
+ .. ven:function:: StrMakeLowerCopy(variable str)
281
+
282
+ The StrMakeLowerCopy function returns a copy of the original string converted to lowercase.
283
+
284
+ :params str: The string to be copied
285
+ :type str: Variable
286
+ :return: A copy of the original string converted to lowercase
287
+ :rtype: Variable
288
+
289
+ .. ven:function:: StrMakeUpper(variable str)
290
+
291
+ The StrMakeUpper function converts the original string to its uppercase form.
292
+
293
+ :params str: The string to be converted
294
+ :type str: Variable
295
+ :return: The original string converted to uppercase
296
+ :rtype: Variable
297
+
298
+ .. ven:function:: StrMakeUpperCopy(variable str)
299
+
300
+ The StrMakeUpperCopy function returns a copy of the original string converted to uppercase.
301
+
302
+ :params str: The string to be copied
303
+ :type str: Variable
304
+ :return: A copy of the original string converted to uppercase
305
+ :rtype: Variable
306
+
307
+ .. ven:function:: StrMid(variable str, variable first, variable count)
308
+
309
+ The StrMid function extracts a substring of length "count" characters from the input variable "str", starting at position "first" which is 0-based. The function returns a copy of the extracted substring.
310
+
311
+ :params str: The string from which the substring is to be extracted
312
+ :params first: The first character to be extracted (0-based)
313
+ :params count: The number of characters to be extracted
314
+ :type str: Variable
315
+ :type first: Variable
316
+ :type count: Variable
317
+ :return: A string containing a copy of the specified range of characters, can be empty
318
+ :rtype: Variable
319
+
320
+ .. ven:function:: StrReplace(variable str, variable oldSubStr, variable newSubStr)
321
+
322
+ The StrReplace function searches a string for a specified substring and replaces it with another specified substring.
323
+
324
+ :params str: The string to be edited
325
+ :params oldSubStr: The substring to be replaced by newSubStr
326
+ :params newSubStr: The substring to replace oldSubStr
327
+ :type str: Variable
328
+ :type oldSubStr: Variable
329
+ :type newSubStr: Variable
330
+ :return: The number of replaced instances of oldSubStr. Zero if the string is unchanged.
331
+ :rtype: Variable
332
+
333
+ .. ven:function:: StrReverseFind(variable str, variable subStr)
334
+
335
+ The StrReverseFind function searches a string object for the last match of a sub-string
336
+
337
+ :params str: The string to be searched
338
+ :params subStr: The substring to be searched for
339
+ :type str: Variable
340
+ :type subStr: Variable
341
+ :return: The zero-based index of the last character in this string that matches the requested substring or characters. -1 if the substring is not found.
342
+ :rtype: Variable
343
+
344
+ .. ven:function:: StrRight(variable str, variable count)
345
+
346
+ The StrRight function extracts the last (rightmost) characters of a string and returns a copy of the extracted substring. The number of characters extracted is equal to the input variable "count". If "count" is longer than the string, the entire string is returned.
347
+
348
+ :params str: The input string from which the substring is to be extracted
349
+ :params count: The number of characters to be extracted
350
+ :type str: Variable
351
+ :type count: Variable
352
+ :return: A string containing a copy of the specified range of characters. Can be an empty string.
353
+ :rtype: Variable
354
+
355
+ .. ven:function:: StrSpanExcluding(variable str, variable subStr)
356
+
357
+ The StrSpanExcluding function can be used to search the string for the first occurrence of any character in the specified set subStr. StrSpanExcluding extracts and returns all characters preceding the first occurrence of a character from subStr (in other words, the character from subStr and all characters following it in the string, are not returned). If no character from subStr is found in the string, then StrSpanExcluding returns the entire string.
358
+
359
+ :params str: The string to be searched
360
+ :params subStr: A string containing the set of characters to be searched for
361
+ :type str: Variable
362
+ :type subStr: Variable
363
+ :return: A sub-string containing characters in the string that are not in subStr, beginning with the first character in the string and ending with the first character found in the string that is also in subStr (that is, starting with the first character in the string and up to but excluding the first character in the string that is found subStr). It returns the entire string if no character in subStr is found in the string.
364
+ :rtype: Variable
365
+
366
+ .. ven:function:: StrStrToAscii(variable character)
367
+
368
+ The StrStrToAscii function converts the given character (as a string) into an ASCII code (as an integer)
369
+
370
+ :params character: The character to convert, inputted as a string
371
+ :type character: Variable
372
+ :return: The ASCII code for the given character as an integer, -1 if the function fails
373
+ :rtype: Variable
374
+
375
+ .. ven:function:: StrTrimLeft(variable str, variable character)
376
+
377
+ The StrTrimLeft function trims leading whitespace characters from the string (removes newline, space, tab, and user-defined characters)
378
+
379
+ :params str: The string to trim
380
+ :params character: A string containing user-defined characters to be trimmed (may be empty, in which case only newline, space and tabs will be trimmed)
381
+ :type str: Variable
382
+ :type character: Variable
383
+ :return: None
384
+ :rtype: N/A
385
+
386
+ .. ven:function:: StrTrimRight(variable str, variable character)
387
+
388
+ The StrTrimRight function trims lagging whitespace characters from the string (removes newline, space, tab, and user-defined characters)
389
+
390
+ :params str: The string to trim
391
+ :params character: A string containing user-defined characters to be trimmed (may be empty, in which case only newline, space and tabs will be trimmed)
392
+ :type str: Variable
393
+ :type character: Variable
394
+ :return: None
395
+ :rtype: N/A
VenusLibraryDocumentation-DocsForGPT/docs/source/HSLZipLib.rst ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ HSLZipLib
2
+ ================================
3
+
4
+ https://github.com/theonetruenerd/VenusPackages/blob/main/HSLZipLib.pkg
5
+
6
+ HSLZipLib is a library that allows you to create zip folders, as well as unzip and extract folders from them. It adds the following four functions:
7
+
8
+ - :ven:func:`UnpackArchive`
9
+ - :ven:func:`AddItemToArchive`
10
+ - :ven:func:`InitializeArchive`
11
+ - :ven:func:`PackArchive`
12
+
13
+ .. ven:function:: UnpackArchive(variable i_strArchiveName, variable i_strPathOutput)
14
+
15
+ The unpack archive function unzips a zip folder and extracts the contents to the specified location.
16
+
17
+ :params i_strArchiveName: The full name and path to the zip folder you wish to unzip, including the .zip file extension
18
+ :params i_strPathOutput: The full name and path of the folder you would like to create when extracting the zip file, with no extension
19
+ :type i_strArchiveName: Variable
20
+ :type i_strPathOutput: Variable
21
+ :return: Boolean confirming whether unzipping the archive was successful or not
22
+ :rtype: Boolean
23
+
24
+ .. ven:function:: AddItemToArchive(variable i_strFileOrDirectoryName, variable i_strDirectoryPathInArchive)
25
+
26
+ This function specifies a file or directory which will be added to the zip file which will be generated with the :ven:func:`PackArchive` function.
27
+
28
+ :params i_strFileOrDirectoryName: The path to the file or directory that you wish to include in the zip folder. File extension required for files, no extension required for folders.
29
+ :params i_strDirectoryPathInArchive: The path to the desired location of the file within the zip folder.
30
+ :type i_strFileOrDirectoryName: Variable
31
+ :type i_strDirectoryPathInArchive: Variable
32
+ :return: Boolean confirming whether adding the file or directory to the archive was successful
33
+ :rtype: Boolean
34
+
35
+ .. ven:function:: InitializeArchive(variable i_strArchiveName)
36
+
37
+ This function initializes whatever archive is specified. It is required to call this function for each archive you are interacting with, in advance of calling any of the otehr functions.
38
+
39
+ :params i_strArchiveName: The name of the desired zip file; can be a file that already exists or one that doesn't exist yet and will be created
40
+ :type i_strArchiveName: Variable
41
+ :return: None
42
+ :rtype: N/A
43
+
44
+ .. ven:function:: PackArchive()
45
+
46
+ This function zips/packs whichever archive was most recently initialized.
47
+
48
+ :return: Boolean confirming whether zipping the archive was successful or not
49
+ :rtype: Boolean
VenusLibraryDocumentation-DocsForGPT/docs/source/HSL_SeqDailyTools.rst ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ HSL_SeqDailyTools
2
+ =======================================================
3
+
4
+ https://github.com/theonetruenerd/VenusPackages/blob/main/HSL_SeqDailyTools.pkg
5
+
6
+ The HSL_SeqDailyTools library adds four functions aimed at making some parts of sequence handling slightly easier. The four functions it adds are:
7
+
8
+ - :ven:func:`CopyPlatePattern96ToTipRack`
9
+ - :ven:func:`CopyPlatePatternToPlate`
10
+ - :ven:func:`GetNumberOfPositionsLeft`
11
+ - :ven:func:`SeqEasyEdit`
12
+
13
+ .. ven:function:: CopyPlatePattern96ToTipRack(sequence plateSource, sequence tipRack)
14
+
15
+ This function copies the sequence pattern on a 96 well plate and applies it to a tip rack. It is used to ensure that the 96 head only picks up tips in the wells that the plate is going to be interacting with.
16
+
17
+ :params plateSource: The sequence pattern on the plate to be copied
18
+ :params tipRack: The sequence of the tip rack which will have the template applied to it
19
+ :type plateSource: Sequence
20
+ :type tipRack: Sequence
21
+ :return: None
22
+ :rtype: N/A
23
+
24
+ .. ven:function:: CopyPlatePatternToPlate(sequence plateSource, sequence plateTarget)
25
+
26
+ This function copies the pattern of wells from one plate to another plate. It is useful when a plate is being moved around on deck, or when reagents are being pipetted from one plate into the same locations on another plate.
27
+
28
+ :params plateSource: The sequence pattern from the plate to be copied
29
+ :params plateTarget: The sequence of the second plate which is having the template applied to it
30
+ :type plateSource: Sequence
31
+ :type plateTarget: Sequence
32
+ :return: None
33
+ :rtype: N/A
34
+
35
+ .. ven:function:: GetNumberOfPositionsLeft(sequence seq, variable numberOfPositionsLeft)
36
+
37
+ This function calculates the number of positions left in a sequence
38
+
39
+ :params seq: The sequence which is being checked
40
+ :params numberOfPositionsLeft: The output value of how many positions are left in the sequence
41
+ :type seq: Sequence
42
+ :type numberOfPositionsLeft: Variable
43
+ :return: None
44
+ :rtype: N/A
45
+
46
+ .. ven:function:: SeqEasyEdit(sequence seq, variable timeout, variable dialog_title, variable dialog_msg, device ML_STAR)
47
+
48
+ This function is a simplified version of SeqEdit, with only the parameters that are regularly used. It opens a dialog box from which the user can edit whichever sequence is specified in the input.
49
+
50
+ :params seq: The sequence which is being edited
51
+ :params timeout: How long the dialog window will stay open by itself before it closes and continues the method without editing the sequence
52
+ :params dialog_title: The title of the dialog window which pops up
53
+ :params dialog_message: The text within the dialog window which pops up
54
+ :params ML_STAR: The device used. Should be ML_STAR from the dropdown
55
+ :type seq: Sequence
56
+ :type timeout: Variable
57
+ :type dialog_title: Variable
58
+ :type dialog_message: Variable
59
+ :type ML_STAR: Device
60
+ :return: None
61
+ :rtype: N/A
VenusLibraryDocumentation-DocsForGPT/docs/source/If_And_If_Or.rst ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ If_And_If_Or
2
+ ===================================
3
+
4
+ https://github.com/theonetruenerd/VenusPackages/blob/main/If_And_If_Or.pkg
5
+
6
+ The if_and_if_or library adds two functions:
7
+
8
+ - :ven:func:`if_and`
9
+ - :ven:func:`if_or`
10
+
11
+ .. ven:function:: if_and(variable iVar1, variable iVar2, variable iVar3, variable iVar4)
12
+
13
+ This function checks variable iVar1 against iVar2 and iVar3 against iVar4; if both statements are true then the function returns a 1, otherwise it returns a 0
14
+
15
+ :params iVar1: Variable to be checked against iVar2
16
+ :params iVar2: Variable to be checked against iVar1
17
+ :params iVar3: Variable to be checked against iVar4
18
+ :params iVar4: Variable to be checked against iVar3
19
+ :type iVar1: Variable
20
+ :type iVar2: Variable
21
+ :type iVar3: Variable
22
+ :type iVar4: Variable
23
+ :return: 1 if both true, 0 otherwise
24
+ :rtype: Variable
25
+
26
+ .. ven:function:: if_or(variable iVar1, variable iVar2, variable iVar3, variable iVar4)
27
+
28
+ This function checks variable iVar1 against iVar2 and iVar3 against iVar4; if at least one of the statements is true then the function will return a 1, otherwise it will return a 0
29
+
30
+ :params iVar1: Variable to be checked against iVar2
31
+ :params iVar2: Variable to be checked against iVar1
32
+ :params iVar3: Variable to be checked against iVar4
33
+ :params iVar4: Variable to be checked against iVar3
34
+ :type iVar1: Variable
35
+ :type iVar2: Variable
36
+ :type iVar3: Variable
37
+ :type iVar4: Variable
38
+ :return: 1 if at least one is true, 0 if false
39
+ :rtype: Variable
VenusLibraryDocumentation-DocsForGPT/docs/source/Inheco ODTC - unfinished.rst ADDED
@@ -0,0 +1,86 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Inheco ODTC
2
+ ==========================================
3
+
4
+ The Inheco ODTC library is used to operate up to 4 Inheco ODTC devices, adding both "Standard" and "Advanced" functions to manipulate them. The functions added are:
5
+
6
+ Standard Functions
7
+ -----------------------------------------
8
+
9
+ - :ven:func:`Connect`
10
+ - :ven:func:`GetStatus`
11
+ - :ven:func:`Reset`
12
+ - :ven:func:`Initialize`
13
+ - :ven:func:`SetTraceLevel`
14
+ - :ven:func:`OpenDoor`
15
+ - :ven:func:`CloseDoor`
16
+ - :ven:func:`DownloadProtocol`
17
+ - :ven:func:`ExecuteMethod`
18
+ - :ven:func:`WaitForEndOfExecuteMethod`
19
+ - :ven:func:`StopMethod`
20
+ - :ven:func:`Abort`
21
+ - :ven:func:`ReadActualTemperature`
22
+ - :ven:func:`Terminate`
23
+ - :ven:func:`EvaluateError`
24
+ - :ven:func:`AddAllowedReturnCode`
25
+
26
+ Advanced Functions
27
+ -----------------------------------------
28
+
29
+ - :ven:func:`LockDevice`
30
+ - :ven:func:`UnlockDevice`
31
+ - :ven:func:`SetCSVSeparator`
32
+ - :ven:func:`SetDateTime`
33
+ - :ven:func:`SetNetWorkConfig`
34
+ - :ven:func:`GetParameters`
35
+ - :ven:func:`GetDeviceIdentification`
36
+ - :ven:func:`GetConfiguration`
37
+ - :ven:func:`Pause`
38
+ - :ven:func:`DoContinue`
39
+ - :ven:func:`SetParameters`
40
+ - :ven:func:`SetLogLevel`
41
+ - :ven:func:`RegisterStatusEventURL`
42
+ - :ven:func:`UnregisterStatusEventURL`
43
+ - :ven:func:`GetLastData`
44
+ - :ven:func:`DisableTemperatureEvent`
45
+
46
+ .. ven:function:: Connect(variable i_strLocalIP, variable i_strDeviceIP, variable i_strDevicePort, variable i_blnSimulationMode, variable o_intDeviceID, variable o_strMessage)
47
+
48
+ This function is used to connect to the Inheco ODTC device.
49
+
50
+ :params i_strLocalIP: The IP address of the computer. If this parameter is set to an empty string, the library will try to retrieve the computer's IP address automatically. If automatic IP address configuration doesn't work (i.e. two or more network cards in the system have close IP addresses), configure the IP address to a fixed one and supply this address.
51
+ :params i_strDeviceIP: The IP address of the ODTC device. This must be in the format of "xxx.xxx.xxx.xxx". The IP address of the device can be retrieved using the Inhecodevice finder tool located in the library directory. Start the application 'DeviceFinder (xxxxx).exe' where xxxxx represents a five-digit revision number, wait at least 20 seconds to see the retrieved ip address. If address is not found automatically, click button 'Find Device via Name/IP' and supply the string ODTC_XXXXXX where XXXXXX represents the last 6 characters of the device's MAC address. The string to provide may be found on the label SiLA Service Configuration located on the device controller.
52
+ :params i_strDevicePort: The port used by the ODTC device. Should be set to "". This parameter should only be set to a specific port on official request as the device has to be configured to use this special port.
53
+ :params i_blnSimulationMode: Simulation mode for the library. Set to either 0 (device is not simulated) or 1 (device is simulated).
54
+ :params o_intDeviceID: The unique identifier for this device. Use this number as input for all subsequent function calls.
55
+ :params o_strMessage: Informational message
56
+ :type i_strLocalIP: Variable
57
+ :type i_strDeviceIP: Variable
58
+ :type i_strDevicePort: Variable
59
+ :type i_blnSimulationMode: Boolean
60
+ :type o_intDeviceID: Variable
61
+ :type o_strMessage: Variable
62
+ :return: A boolean as to whether the function returned successfully (1) or not (0).
63
+ :rtype: Boolean
64
+
65
+ .. ven:function:: GetStatus(variable i_intDeviceID, variable o_strDeviceID, variable o_strState, variable o_blnLocked, variable o_strPMSId, variable o_strCurrentTime, variable o_intSILAReturnValue, variable o_strSILAMessage)
66
+
67
+ This function is used to retrieve the status of the device.
68
+
69
+ :params i_intDeviceID: The unique identifier for the device as returned by the :ven:func:`Connect` function.
70
+ :params o_strDeviceID: Internal information of the device
71
+ :params o_strState: State as reported by the device. One of the following values:'startup', 'resetting', 'standby', 'idle', 'busy', 'paused', 'errorhandling', 'inerror', 'asynchpaused', 'pauserequested', 'processing', 'responsewaiting'
72
+ :params o_blnLocked: Lock state of the device
73
+ :params o_strPMSId: Name of the PMS connected to the device
74
+ :params o_strCurrentTime: Time as reported by the device
75
+ :params o_intSILAReturnValue: The SILA return code of the device
76
+ :params o_strSILAMessage: The SILA message returned by the device
77
+ :type i_intDeviceID: Variable
78
+ :type o_strDeviceID: Variable
79
+ :type o_strState: Variable
80
+ :type o_blnLocked: Variable
81
+ :type o_strPMSId: Variable
82
+ :type o_strCurrentTime: Variable
83
+ :type o_intSILAReturnValue: Variable
84
+ :type o_strSILAMessage: Variable
85
+ :return: A boolean as to whether the function returned succesfully (1) or not (0).
86
+ :rtype: Boolean
VenusLibraryDocumentation-DocsForGPT/docs/source/Labware_Properties.rst ADDED
@@ -0,0 +1,169 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Labware Properties
2
+ =========================================
3
+
4
+ https://github.com/theonetruenerd/VenusPackages/blob/main/Labware_Properties.pkg
5
+
6
+ The labware properties library adds a variety of functions which assist with obtaining the physical data of the labware, as well as things like its ID. The functions it adds are:
7
+
8
+ - :ven:func:`GetCarrierIDandSiteID_FromLabID`
9
+ - :ven:func:`Get_ContainerBaseOffset`
10
+ - :ven:func:`Get_ContainerBaseThickness`
11
+ - :ven:func:`Get_Height`
12
+ - :ven:func:`Get_NameAndFileName`
13
+ - :ven:func:`Get_NumberOfColumns`
14
+ - :ven:func:`Get_NumberOfRows`
15
+ - :ven:func:`Get_RackBaseToCoverBase`
16
+ - :ven:func:`Get_StackHeight`
17
+ - :ven:func:`Get_XYZ_deckPosition`
18
+ - :ven:func:`Get_XY_dimensions`
19
+
20
+ .. ven:function:: GetCarrierIDandSiteID_FromLabID(device io_instrument, variable i_labware_ID, variable o_carrier_ID, variable o_site_ID)
21
+
22
+ This function takes outputs the carrier ID and site ID which are associated with the given labware ID. It works on both the Nimbus and the STAR.
23
+
24
+ :params io_instrument: The instrument being used. Will either be ML_STAR or Nimbus.
25
+ :params i_labware_ID: The labware ID from which the other IDs are being pulled.
26
+ :params o_carrier_ID: The carrier ID associated with the given labware ID.
27
+ :params o_site_ID: The site ID associated with the given labware ID.
28
+ :type io_instrument: Device
29
+ :type i_labware_ID: Variable
30
+ :type o_carrier_ID: Variable
31
+ :type o_site_ID: Variable
32
+ :return: A boolean determining whether the labware ID exists (1) or not (0)
33
+ :rtype: Boolean
34
+
35
+ .. ven:function:: Get_ContainerBaseOFfset(device io_instrument, sequence i_sequenceLabware, variable i_sequencePosition, variable o_ContainerBaseOffset)
36
+
37
+ This function outputs the distance from the rack base to the container base for the labware at the given sequence position.
38
+
39
+ :params io_instrument: The instrument being used. Will either be ML_STAR or Nimbus.
40
+ :params i_sequenceLabware: The sequence associated with the labware being checked.
41
+ :params i_sequencePosition: The position ID or index of the sequence being checked. Can be either int or str. An input of 0 will auto-select the first position.
42
+ :params o_ContainerBaseOFfset: The distance from the rack base to the container base at the specified position
43
+ :type io_instrument: Device
44
+ :type i_sequenceLabware: Sequence
45
+ :type i_sequencePosition: Variable
46
+ :type o_ContainerBaseOFfset: Variable
47
+ :return: None
48
+ :rtype: N/A
49
+
50
+ .. ven:function:: Get_ContainerBaseThickness(device io_instrument, sequence i_sequenceLabware, variable o_containerBaseThickness)
51
+
52
+ This function outputs the base thickness of the container at the first position of a given sequence.
53
+
54
+ :params io_instrument: The instrument being used. Will be either ML_STAR or Nimbus.
55
+ :params i_sequenceLabware: The sequence asspciated with the labware being checked.
56
+ :params o_containerBaseThickness: The thickness of the base of the container being checked.
57
+ :type io_instrument: Device
58
+ :type i_sequenceLabware: Sequence
59
+ :type o_containerBaseThickness: Variable
60
+ :return: None
61
+ :rtype: N/A
62
+
63
+ .. ven:function:: Get_Height(device io_instrument, sequence i_sequenceLabware, variable o_labwareHeight)
64
+
65
+ This function outputs the height of the labware at the first position of a given sequence. This value is only the labware height, not the absolute Z position.
66
+
67
+ :params io_instrument: The instrument being used. Will be either ML_STAR or Nimbus.
68
+ :params i_sequenceLabware: The sequence associated with the labware being checked.
69
+ :params o_labwareHeight: The height of the labware being checked.
70
+ :type io_instrument: Device
71
+ :type i_sequenceLabware: Sequence
72
+ :type o_labwareHeight: Variable
73
+ :return: None
74
+ :rtype: N/A
75
+
76
+ .. ven:function:: Get_NameAndFileName(device io_instrument, sequence i_sequenceLabware, variable o_viewName, variable o_fileName)
77
+
78
+ This function outputs the labware view name and the file name associated with it (with path)
79
+
80
+ :params io_instrument: The instrument being used. Will be either ML_STAR or Nimbus.
81
+ :params i_sequenceLabware: The sequence associated with the labware of interest.
82
+ :params o_viewName: The view name of the labware being checked.
83
+ :params o_fileName: The file name (with path) of the labware being checked.
84
+ :return: None
85
+ :rtype: N/A
86
+
87
+ .. ven:function:: Get_NumberOfColumns(device io_instrument, sequence i_sequenceLabware, variable o_labwareColumns)
88
+
89
+ This function outputs the number of columns defined in the labware from the first position of a given sequence.
90
+
91
+ :params io_instrument: The instrument being used. Will be either ML_STAR or Nimbus.
92
+ :params i_sequenceLabware: The sequence associated with the labware of interest.
93
+ :params o_labwareColumns: The number of columns defined in the labware being checked.
94
+ :type io_instrument: Device
95
+ :type i_sequenceLabware: Sequence
96
+ :type o_labwareColumns: Variable
97
+ :return: None
98
+ :rtype: N/A
99
+
100
+ .. ven:function:: Get_NumberOfRows(device io_instrument, sequence i_sequenceLabware, variable o_labwareColumns)
101
+
102
+ This function outputs the number of rows defined in the labware at the first position of a given sequence. The variable and function description both say columns; this is incorrect.
103
+
104
+ :params io_instrument: The instrument being used. Will be either ML_STAR or Nimbus.
105
+ :params i_sequenceLabware: The sequence associated with the labware being checked.
106
+ :params o_labwareColumns: The number of rows defined in the labware being checked.
107
+ :type io_instrument: Device
108
+ :type i_sequenceLabware: Sequence
109
+ :type o_labwareColumns: Variable
110
+ :return: None
111
+ :rtype: N/A
112
+
113
+ .. ven:function:: Get_RackBaseToCoverBase(device io_instrument, sequence i_sequenceLabware, variable o_RackBaseToCoverBase_Height)
114
+
115
+ This function outputs the height from the base of the rack to the base of the cover/lid of the labware at the first position of a given sequence.
116
+
117
+ :params io_instrument: The instrument being used. Will be either ML_STAR or Nimbus.
118
+ :params i_sequenceLabware: The sequence associated with the labware being checked.
119
+ :params o_RackBaseToCoverBase_Height: The distance from the rack base to the cover base.
120
+ :type io_instrument: Device
121
+ :type i_sequenceLabware: Sequence
122
+ :type o_RackBaseToCoverBase_Height: Variable
123
+ :return: None
124
+ :rtype: N/A
125
+
126
+ .. ven:function:: Get_StackHeight(device io_instrument, sequence i_sequenceLabware, variable o_labwareStackHeight)
127
+
128
+ This function outputs the stack height of the specified labware at the first position of a given sequence.
129
+
130
+ :params io_instrument: The instrument being used. Will be either ML_STAR or Nimbus.
131
+ :params i_sequenceLabware: The sequence associated with the labware being checked.
132
+ :params o_labwareStackHeight: The stack height of the labware being checked, or the covered stack height if the labware is lidded.
133
+ :type io_instrument: Device
134
+ :type i_sequenceLabware: Sequence
135
+ :type o_labwareStackHeight: Variable
136
+ :return: None
137
+ :rtype: N/A
138
+
139
+ .. ven:function:: Get_XYZ_deckPosition(device io_instrument, sequence i_sequenceLabware, variable o_labware_deckPosition_X, variable o_labware_deckPosition_Y, variable o_labware_deckPosition_Z)
140
+
141
+ This function returns the X, Y and Z coordinates of the upper left well of the specified labware at the first position of a given sequence. The description of this function says it only does the X and Y coordinates, this is incorrect.
142
+
143
+ :params io_instrument: The instrument being used. Will be either ML_STAR or Nimbus.
144
+ :params i_sequenceLabware: The sequence associated with the labware being checked.
145
+ :params o_labware_deckPosition_X: The X coordinate of the labware on the deck.
146
+ :params o_labware_deckPosition_Y: The Y coordinate of the labware on the deck.
147
+ :params o_labware_deckPosition_Z: The Z coordinate of the labware on the deck.
148
+ :type io_instrument: Device
149
+ :type i_sequenceLabware: Sequence
150
+ :type o_labware_deckPosition_X: Variable
151
+ :type o_labware_deckPosition_Y: Variable
152
+ :type o_labware_deckPosition_Z: Variable
153
+ :return: None
154
+ :rtype: N/A
155
+
156
+ .. ven:function:: Get_XY_dimensions(device io_instrument, sequence i_sequenceLabware, variable o_X_width, variable o_Y_depth)
157
+
158
+ This function outputs the X (width) and Y (depth) dimensions of the specified labware at the first position of a given sequence.
159
+
160
+ :params io_instrument: The instrument being used. Will be either ML_STAR or Nimbus.
161
+ :params i_sequenceLabware: The sequence associated with the labware being checked.
162
+ :params o_X_width: The width of the labware being checked.
163
+ :params o_Y_depth: The depth of the labware being checked.
164
+ :type io_instrument: Device
165
+ :type i_sequenceLabware: Sequence
166
+ :type o_X_width: Variable
167
+ :type o_Y_depth: Variable
168
+ :return: None
169
+ :rtype: N/A
VenusLibraryDocumentation-DocsForGPT/docs/source/Lookup.rst ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Lookup
2
+ ================================
3
+
4
+ https://github.com/theonetruenerd/VenusPackages/blob/main/Lookup.pkg
5
+
6
+ The lookup library provides one function which allows you to locate items in an array and get their index.
7
+
8
+ - :ven:func:`Lookup`
9
+
10
+ .. ven:function:: Lookup(array array, variable item)
11
+
12
+ Input an array and a value to look up. If the value occurs in the array, it will return the 1-based index. If it doesn't occur in the array, it will return a 0.
13
+
14
+ :params array: The array to search
15
+ :params item: The variable to search for
16
+ :type array: Array
17
+ :type item: Variable
18
+ :return: 1-based index if found, 0 if not found
19
+ :rtype: Variable
20
+
VenusLibraryDocumentation-DocsForGPT/docs/source/Pipetting.rst ADDED
@@ -0,0 +1,88 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Pipetting (from HSLExtensions)
2
+ ======================================
3
+
4
+ https://github.com/theonetruenerd/VenusPackages/blob/main/Pipetting.pkg
5
+
6
+ The pipetting library from HSL Extensions adds functions related to pipetting, primarily to do with sequences and channel patterns. The functions it adds are:
7
+
8
+ - :ven:func:`CreateMixedChannelPattern`
9
+ - :ven:func:`CreateOrderedChannelPattern`
10
+ - :ven:func:`ParseChannelPattern`
11
+ - :ven:func:`Plate384PositionNumberToPositionText`
12
+ - :ven:func:`Plate384PositionTextToPositionNumber`
13
+ - :ven:func:`Plate96PositionNumberToPositionText`
14
+ - :ven:func:`Plate96PositionTextToPositionNumber`
15
+
16
+ .. ven:function:: CreateMixedChannelPattern(array i_arrUseChannel, variable i_intTotalNumberOfChannels)
17
+
18
+ This function generates a "mixed" channel pattern. The channel pattern generated will be based on the input array, and then will be filled with "0"s up to the total number of channels (normally 8). If the array size is greater than the total number of channels inputted, the channel pattern will be limited to whatever the total number of channels inputted is. E.g. if the array is [1,1,1,1,0,0,1,0,0,0,1] and the input channel number is 8, the channel pattern generated will be "11110010".
19
+
20
+ :params i_arrUseChannel: A boolean array of which channels should be used.
21
+ :params i_intTotalNumberOfChannels: The total number of channels being used.
22
+ :type i_arrUseChannel: Array
23
+ :type i_intTotalNumberOfChannels: Variable
24
+ :return: The channel pattern generated by the function
25
+ :rtype: String
26
+
27
+ .. ven:function:: CreateOrderedChannelPattern(variable i_intNumberOfUsedChannels, variable i_intTotalNumberOfChannels)
28
+
29
+ This function creates an ordered channel pattern, generating a string with as many "1"s in it as the inputted number of used channels, and adding "0"s until the total length of the channel pattern is equal to the total number of channels inputted. If the total number of used channels is greater than the total number of channels, the channel pattern will be truncated to the total number of channels. E.g. if the number of used channels is 3 and the total number of channels is 8, the channel pattern generated will be "11100000". If these numbers were reversed, the channel pattern generated would simply be "111".
30
+ :params i_intNumberOfUsedChannels: The number of "active" channels wishing to be used in the channel pattern
31
+ :params i_intTotalNumberOfChannels: The max number of channels available (usually 8 on a STAR)
32
+ :type i_intNumberOfUsedChannels: Variable
33
+ :type i_intTotalNumberOfChannels: Variable
34
+ :return: The channel pattern generated by the function
35
+ :rtype: String
36
+
37
+ .. ven:function:: ParseChannelPattern(variable i_strChannelPattern)
38
+
39
+ This function parses a channel pattern given as a string and creates a boolean array of the channels being used. If the input has the wrong type, or contains not allowed characters, the result is an empty array.
40
+
41
+ :params i_strChannelPattern: The channel pattern to be parsed
42
+ :type i_strChannelPattern: Variable
43
+ :return: The array of booleans with the channels being used in the channel pattern
44
+ :rtype: Array
45
+
46
+ .. ven:function:: Plate384PositionNumberToPositionText(variable i_intPositionNumber, variable o_strPositionText)
47
+
48
+ This function converts position number to position text for a 384 well plate. E.g. if given a 1 it will convert it to A1, if given a 16 it will convert it to P1, etc.
49
+
50
+ :params i_intPositionNumber: The position number to be converted. Any int in the range of 1-384.
51
+ :params o_strPositionText: The position text which will be the output. Will be a string of any of the well identifiers on a 384 well plate (i.e. A1-P24)
52
+ :type i_intPositionNumber: Variable
53
+ :type o_strPositionText: Variable
54
+ :return: A boolean of whether the conversion was successful
55
+ :rtype: Boolean
56
+
57
+ .. ven:function:: Plate384PositionNumberToPositionText(variable i_strPositionText, variable o_intPositionNumber)
58
+
59
+ This function converts position text to position number for a 384 well plate. E.g. if given A1 it will convert it to a 1, if given P1 it will convert it to a 16, etc.
60
+
61
+ :params i_strPositionText: The position text to be converted. Will be a string of any of the well identifiers on a 384 well plate (i.e. A1-P24)
62
+ :params o_intPositionNumber: The position number which will be the output. Any int in the range of 1-384.
63
+ :type i_intPositionNumber: Variable
64
+ :type o_strPositionText: Variable
65
+ :return: A boolean of whether the conversion was successful
66
+ :rtype: Boolean
67
+
68
+ .. ven:function:: Plate96PositionNumberToPositionText(variable i_intPositionNumber, variable o_strPositionText)
69
+
70
+ This function converts position number to position text for a 96 well plate. E.g. if given a 1 it will convert it to A1, if given an 8 it will convert it to H1, etc.
71
+
72
+ :params i_intPositionNumber: The position number to be converted. Any int in the range of 1-96.
73
+ :params o_strPositionText: The position text which will be the output. Will be a string of any of the well identifiers on a 96 well plate (i.e. A1-H12)
74
+ :type i_intPositionNumber: Variable
75
+ :type o_strPositionText: Variable
76
+ :return: A boolean of whether the conversion was successful
77
+ :rtype: Boolean
78
+
79
+ .. ven:function:: Plate96PositionNumberToPositionText(variable i_strPositionText, variable o_intPositionNumber)
80
+
81
+ This function converts position text to position number for a 96 well plate. E.g. if given A1 it will convert it to a 1, if given H1 it will convert it to a 8, etc.
82
+
83
+ :params i_strPositionText: The position text to be converted. Will be a string of any of the well identifiers on a 96 well plate (i.e. A1-H12)
84
+ :params o_intPositionNumber: The position number which will be the output. Any int in the range of 1-96.
85
+ :type i_intPositionNumber: Variable
86
+ :type o_strPositionText: Variable
87
+ :return: A boolean of whether the conversion was successful
88
+ :rtype: Boolean
VenusLibraryDocumentation-DocsForGPT/docs/source/PlateEditor96 - unfinished.rst ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ PlateEditor96
2
+ ==========================================
3
+
4
+ https://github.com/theonetruenerd/VenusPackages/blob/main/PlateEditor96.pkg
5
+
6
+ This library adds functions which help edit the sequences on a plate dynamically during a method, either with a dialogue or from a csv file. The functions it adds are:
7
+
8
+ - :ven:func:`EditPlate96_Custom`
9
+ - :ven:func:`EditPlate96`
10
+ - :ven:func:`EditPlate96_with_BarcodesFromCsv`
11
+ - :ven:func:`EditPlate96_with_BarcodesFromExcelAccess`
12
+
13
+ .. ven:function:: EditPlate96_Custom(sequence o_SeqEdit, sequence i_OriginalPlateSeq, variable i_message, variable fixed_number, sequence i_forbiddenWellsSeq, sequence i_preSelectionSeq, variable i_Editable)
14
+
15
+ This function shows a GUI to select wells in a 96 plate, and returns a sequence sorted A1,B1,C1... with the selection with addtional options.
16
+
17
+ :params o_SeqEdit: The returned plate sequence with the newly selected wells
18
+ :params i_OriginalPlateSeq: The original input plate sequence which isn't modified
19
+ :params i_message: Message to be shown in the GUI
20
+ :params fixed_number: Set this to 0 if you want a free choice of the number of wells, or to >0 if you want a set value of wells to be chosen
21
+ :params i_forbiddenWellsSeq: Any wells which are unable to be selected
22
+ :params i_preSelectionSeq: Any wells which are automatically selected
23
+ :params i_Editable: A boolean determining whether the user is able to (1) select or deselect wells or not (0). With this at 0, the plate editor effectively becomes a GUI displaying updates of which wells are selected.
24
+ :type o_SeqEdit: Sequence
25
+ :type i_OriginalPlateSeq: Sequence
26
+ :type i_message: Variable
27
+ :type fixed_number: Variable
28
+ :type i_forbiddenWellsSeq: Sequence
29
+ :type i_preSelectionSeq: Sequence
30
+ :type i_Editable: Boolean
31
+ :return: None
32
+ :rtype: N/A
VenusLibraryDocumentation-DocsForGPT/docs/source/RemoveTextDelimitersFromAcsiiTextFile.rst ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ RemoveTextDelimitersFromAsciiTextFile
2
+ ===============================
3
+
4
+ https://github.com/theonetruenerd/VenusPackages/blob/main/RemoveTextDelimitersFromAsciiTextFile.pkg
5
+
6
+ The RemoveTextDelimitersFromAsciiFile library adds a single function which edits a file to remove all delimiters from the Ascii file at the given file path.
7
+
8
+ - :ven:func:`RemoveTextDelimitersFromAsciiTextFile`
9
+
10
+ .. ven:function:: RemoveTextDelimitersFromAsciiTextFile(variable fileName)
11
+
12
+ This function removes any text delimiters from the Ascii text file at the specified file path. It edits the file rather than outputting a copy.
13
+
14
+ :params fileName: The file path of the text file to be edited
15
+ :type fileName: Variable
16
+ :return: Boolean of whether the text file was found (hslTrue) or not found (hslFalse)
17
+ :rtype: Boolean
18
+
VenusLibraryDocumentation-DocsForGPT/docs/source/RuntimeErrors.rst ADDED
@@ -0,0 +1,752 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Runtime Errors
2
+ ========================
3
+
4
+ .. _RuntimeErrors:
5
+
6
+ Venus errors
7
+ --------------------
8
+
9
+ - :ref:`0xa0220001 : No memory <0xa0220001>`
10
+ - :ref:`0xa1230002 : Inserting identifier failed <0xa1230002>`
11
+ - :ref:`0xa1230003 : Identifier not found <0xa1230003>`
12
+ - :ref:`0xa2230004 : L-value not a number <0xa2230004>`
13
+ - :ref:`0xa2230005 : R-value not a number <0xa2230005>`
14
+ - :ref:`0xa1230006 : Not an identifier <0xa1230006>`
15
+ - :ref:`0xa1220007 : Unrecognized token <0xa1220007>`
16
+ - :ref:`0xa1230008 : R-value not bound <0xa1230008>`
17
+ - :ref:`0xa2230009 : Bad number <0xa2230009>`
18
+ - :ref:`0xa123000a : Bad tree <0xa123000a>`
19
+ - :ref:`0xa123000b : Invalid entry <0xa123000b>`
20
+ - :ref:`0xa122000c : Function identifier is protected <0xa122000c>`
21
+ - :ref:`0xa223000d : Underspecified <0xa223000d>`
22
+ - :ref:`0xa2230037 : Overspecified <0xa2230037>`
23
+ - :ref:`0xa123000e : Setting value failed <0xa123000e>`
24
+ - :ref:`0xa123000f : Function identifier not found <0xa123000f>`
25
+ - :ref:`0xa1230010 : Bindings not found <0xa1230010>`
26
+ - :ref:`0xa1230011 : Temporary variable not found <0xa1230011>`
27
+ - :ref:`0xa1230012 : Unknown function type <0xa1230012>`
28
+ - :ref:`0xa2230013 : Unable to find file <0xa2230013>`
29
+ - :ref:`0xa1230014 : Type mismatch <0xa1230014>`
30
+ - :ref:`0xa2230015 : Bad L-value <0xa2230015>`
31
+ - :ref:`0xa2230016 : Bad R-value <0xa2230016>`
32
+ - :ref:`0xa2220017 : Unrecognised type <0xa2220017>`
33
+ - :ref:`0xa1230018 : Bad memory type <0xa1230018>`
34
+ - :ref:`0xa1230019 : Array reference out of bound <0xa1230019>`
35
+ - :ref:`0xa123001a : Bad array identifier type <0xa123001a>`
36
+ - :ref:`0xa123001b : Tag insert failed <0xa123001b>`
37
+ - :ref:`0xa123001c : Dynamic memory identifier not bound <0xa123001c>`
38
+ - :ref:`0xa123001d : Tag identifier not bound <0xa123001d>`
39
+ - :ref:`0xa123001e : Structure reference out of bound <0xa123001e>`
40
+ - :ref:`0xa123001f : Bad tag identifier type <0xa123001f>`
41
+ - :ref:`0xa1230020 : L-value is not a structure identifier <0xa1230020>`
42
+ - :ref:`0xa1230021 : L-value is not an array identifier <0xa1230021>`
43
+ - :ref:`0xa1230022 : Failed to lookup tag identifier in tag table <0xa1230022>`
44
+ - :ref:`0xa1230023 : Signal break <0xa1230023>`
45
+ - :ref:`0xa1230024 : Copy out of bound <0xa1230024>`
46
+ - :ref:`0xa1230025 : Signal return <0xa1230025>`
47
+ - :ref:`0xa2230026 : Array size is not an integer <0xa2230026>`
48
+ - :ref:`0xa1230027 : Failed to copy tag table <0xa1230027>`
49
+ - :ref:`0xa1230029 : Function has not been defined <0xa1230029>`
50
+ - :ref:`0xa123002a : Unable to enter nesting level <0xa123002a>`
51
+ - :ref:`0xa123002b : Unable to exit nesting level <0xa123002b>`
52
+ - :ref:`0xa122002c : No context <0xa122002c>`
53
+ - :ref:`0xa123002d : Failed to read file <0xa123002d>`
54
+ - :ref:`0xa123002e : Failed to create timer <0xa123002e>`
55
+ - :ref:`0xa123002f : Failed to set timer <0xa123002f>`
56
+ - :ref:`0xa1230030 : Failed to wait timer <0xa1230030>`
57
+ - :ref:`0xa1230031 : Failed to create event <0xa1230031>`
58
+ - :ref:`0xa1230032 : Failed to set event <0xa1230032>`
59
+ - :ref:`0xa1230033 : Failed to wait event <0xa1230033>`
60
+ - :ref:`0xa1230034 : Bad argument <0xa1230034>`
61
+ - :ref:`0xa2230035 : Syntax error <0xa2230035>`
62
+ - :ref:`0xa2230036 : Integer divide by zero <0xa2230036>`
63
+ - :ref:`0xa2230038 : Returning address of local variable or temporary <0xa2230038>`
64
+ - :ref:`0xa2230039 <0xa2230039>`
65
+ - :ref:`0xa223003a : Unable to find file <0xa223003a>`
66
+ - :ref:`0xa223003b : File not updatable <0xa223003b>`
67
+ - :ref:`0xa223003c : Recursive call <0xa223003c>`
68
+ - :ref:`0xa223003d : Failed to wait for threads <0xa223003d>`
69
+ - :ref:`0xa223003e : Time-out interval elapsed <0xa223003e>`
70
+ - :ref:`0xa2220044 : Automation type not supported <0xa2220044>`
71
+ - :ref:`0xa1230046 : Bad argument parameter <0xa1230046>`
72
+ - :ref:`0xa123004d : Sequence property not found <0xa123004d>`
73
+ - :ref:`0xa123004e : int64 not supported <0xa123004e>`
74
+
75
+ HSLUtilLib Errors
76
+ -----------------------------
77
+
78
+ - :ref:`0xa0000001 : The parameter is incorrect <0x00000001>`
79
+
80
+ HSLUtilLib2 Errors
81
+ -----------------------------
82
+
83
+ - :ref:`0xa1630001 : Unexpected error <0xa1630001>`
84
+ - :ref:`0xa1630002 : Create object failed or Invalid parameter <0xa1630002>`
85
+ - :ref:`0xa1630003 : Value check failed: Invalid type <0xa1630003>`
86
+ - :ref:`0xa1630004 : Value check failed: Invalid range <0xa1630004>`
87
+ - :ref:`0xa1630005 : Labware error <0xa1630005>`
88
+ - :ref:`0xa1630006 : Array index not a number <0xa1630006>`
89
+ - :ref:`0xa1630007 : Array index not an integer <0xa1630007>`
90
+ - :ref:`0xa1630008 : Array index must not be negative <0xa1630008>`
91
+ - :ref:`0xa1630009 : Array index must not be greater than array size <0xa1630009>`
92
+
93
+ Error explanations and advice
94
+ -----------------------------
95
+
96
+ .. _0xa0220001:
97
+
98
+ **0xa0220001: No memory**
99
+
100
+ This error means that the system cannot allocate or access enough memory or disk space for whatever operation causes the error to arise. To fix this, try:
101
+
102
+ - Opening task manager and closing down other programs that are using a lot of RAM
103
+ - Modify the operation to optimise for less memory usage
104
+ - Increase the amount of RAM that Venus has been allocated
105
+ - In task manager, go to details, right click the hamilton software and assign priority high
106
+
107
+ .. _0xa1230002:
108
+
109
+ **0xa1230002: Inserting identifier failed**
110
+
111
+ This error means that the parser or executer could not insert the specified identifier into the symbol table. Some examples of how this error can arise are: if the table is corrupted, if the identifier being read causes issues for the parser, or similar. To fix this, try:
112
+
113
+ - Replace the identifier with something else temporarily, to determine whether it is the identifier causing the issue or something else
114
+ - Check to make sure the identifier has all the data associated with it that the symbol table needs. Typically this includes name, type and attributes
115
+ - Check to make sure the identifier doesn't include any symbols that might interfere with the parser. These can include anything outside of standard ASCII characters from range 0xa0 - 0x7F.
116
+
117
+ .. _0xa1230003:
118
+
119
+ **0xa1230003: Identifier not found**
120
+
121
+ This error means that the parser or executer could not find the specified identifier in the symbol table. This usually means something like a sequence or variable has either not been added or has been added but misspelt. To fix this, try:
122
+
123
+ - Check what the error says. It should be an error which tells you the name of what it fails to lookup, which is useful for debugging purposes.
124
+ - Check whether the name given in the error is spelt correctly; if not then that needs correcting
125
+ - Check whether the name given in the error has been initialised or defined. It may be there, it may be there but misspelt, it may not be there at all. If it isn't there, add it and try again. If it is there but misspelt, rename it to the correct item.
126
+ - If the name is there and spelt correctly, make sure that the correct symbol table is being called during the method
127
+
128
+ .. _0xa2230004:
129
+
130
+ **0xa2230004: L-value not a number**
131
+
132
+ This error means that the executor has detected that the left hand side of the expression at the specified line is not a number. The error thrown will usually include the line number from which the error arose; this will be the line number in the HSL code. Look up the error to find whereabouts in the Venus code it corresponds to, but don't fix it in the HSL method editor; otherwise you can only use HSL method editor from that point onwards as Venus only compiles one way med --> hsl. This usually occurs when two values are being added and one of them is not a number but instead a string. To fix this, try:
133
+
134
+ - Checking whether you are trying to add two numbers or concatenate two strings, both have similar syntax.
135
+ - If trying to add two numbers, check which one is on the left e.g. s in the equation v = s + 1
136
+ - Make sure the selected number is a number and not a string or similar. You can either convert it to a number manually, or you can input a step into the method which automatically converts strings to their float or int equivalents. This can be performed by the StrFVal function from HSLStrLib.
137
+ - If trying to concatenate two strings, then the leftmost value is still being stored as a number rather than a string
138
+ - Use the StrFStr function from HSLStrLib to convert a floating point number into the correpsponding character string before concatenating.
139
+
140
+ .. _0xa2230005:
141
+
142
+ **0xa2230005: R-value not a number**
143
+
144
+ This error means that the executor has detected that the right hand side of the expression at the specified line is not a number. The error thrown will usually include the line number from which the error arose; this will be the line number in the HSL code. Look up the error to find whereabouts in the Venus code it corresponds to, but don't fix it in the HSL method editor; otherwise you can only use HSL method editor from that point onwards as Venus only compiles one way med --> hsl. This usually occurs when two values are being added and one of them is not a number but instead a string. To fix this, try:
145
+
146
+ - Checking whether you are trying to add two numbers or concatenate two strings, both have similar syntax.
147
+ - If trying to add two numbers, check which one is on the right e.g. 1 in the equation v = s + 1
148
+ - Make sure the selected number is a number and not a string or similar. You can either convert it to a number manually, or you can input a step into the method which automatically converts strings to their float or int equivalents. This can be performed by the StrFVal function from HSLStrLib.
149
+ - If trying to concatenate two strings, then the leftmost value is still being stored as a number rather than a string
150
+ - Use the StrFStr function from HSLStrLib to convert a floating point number into the correpsponding character string before concatenating.
151
+
152
+ .. _0xa1230006:
153
+
154
+ **0xa1230006: Not an identifier**
155
+
156
+ This error means that the symbol table entry of the identifier at the specified line is not an identifier. To fix this, try:
157
+
158
+ - Changing the name of the identifier being used. You can also look through the method to confirm that the identifier is being used and that you are not misspelling anything
159
+
160
+ .. _0xa1220007:
161
+
162
+ **0xa1220007: Unrecognized token**
163
+
164
+ This error means that the executor detected an unrecognized token. This usually means that what it is trying to parse contains characters that are not allowed. A typical example of this is when a JSON Parser tries to parse HTML, and encounters the \"<\" character. To fix this, try:
165
+
166
+ - Identify what code line the error comes from via the HSL code, and then look at that code in Venus.
167
+ - Look through the code that the executor is trying to manage and try identify any characters that might not be standard. This includes anything outside of the normal ASCII range of 0xa0 - 0x7F. Remove or replace those characters
168
+ - Check that any special characters that are part of strings have backslashes in front of them.
169
+
170
+ .. _0xa1230008:
171
+
172
+ **0xa1230008: R-value not bound**
173
+
174
+ This error occurs when the R-value in a line is not bound to a valid value. An example would be v = a + b, where b has not been assigned to any value, or has been assigned to a sequence rather than a variable and thus cannot take part in this operation. To fix this, try:
175
+
176
+ - Identify what code line the error comes from via the HSL code, and identify what variable is on the right hand side of that line
177
+ - Check to see what the type of that variable is. If not obvious from reading the code, you can use the StrGetType function from HSLStrLib, or CheckValueType from HSLUtilLib2, or go through and try specific ones such as IsBoolean from HSLUtilLib.
178
+ - If the variable is the correct type, check to see that it has been assigned to the right value. An easy way to do this is just to add in a step which traces the variable value immediately before the error.
179
+ - If the variable is the right type and the correct value, check to see what value the line is expecting --> could it be mistakenly expecting a string concatenation instead of a summation.
180
+
181
+ .. _0xa2230009:
182
+
183
+ **0xa2230009: Bad number**
184
+
185
+ This error means that the executor detected an error in a number at the specific line. This often occurs if a number is of the wrong format e.g. int rather than flt. To fix this, try:
186
+
187
+ - Check what number is causing the error to occur by looking at the line given in the error code.
188
+ - Work out what type the line is expecting the number to be --> for example, a loop counter will be expecting an integer rather than a float
189
+ - Check what type the number causing the error is. This can be done using the CheckValueType from HSLUtilLib2, or the IsFloat or IsInteger functions from HSLUtilLib.
190
+ - If unsure, just toggle the number type and see if swapping it from int to flt or vice versa helps.
191
+
192
+ .. _0xa123000a:
193
+
194
+ **0xa123000a: Bad tree**
195
+
196
+ This error means that the executor detected an error in the structure of the syntax tree.
197
+
198
+ .. _0xa123000b:
199
+
200
+ **0xa123000b: Invalid entry**
201
+
202
+ This error means that the executor has detected an invalid symbol table entry. This error usually occurs if there is a non-ASCII character present in the symbol table, and the executor was not the one who inserted the value into the symbol table in the first place. To fix this, try:
203
+
204
+ - Work out which characters in the symbol table are invalid
205
+ - Try to replace those characters with their ASCII equivalents, as well as work out where or why they were added in teh first place
206
+
207
+ .. _0xa122000c:
208
+
209
+ **0xa122000c: Function identifier is protected**
210
+
211
+ This error means that the parser or executor detected a protected function identifier in the symbol table at the specified line. This happens if a device is declared in the local scope, for example. To fix this, try:
212
+
213
+ - Checking to make sure nothing is in the local scope which shouldn't be
214
+
215
+ .. _0xa223000d:
216
+
217
+ **0xa223000d: Underspecified**
218
+
219
+ This error means that the executor detected underspecified formal parameters of a function at the specific line. To fix this, try:
220
+
221
+ - Check what line the error gives as the function going wrong, look at that line in HSL and work out the correct location in Venus code
222
+ - Look at whatever functions are present on that line and check how many input parameters the functions are meant to have vs how many they actually have
223
+ - Make sure all input parameters exist and are not just empty variables or arrays or sequences.
224
+
225
+ .. _0xa2230037:
226
+
227
+ **0xa2230037: Overspecified**
228
+
229
+ This error means that the executor detected overspecified formal parameters ofa function at the specific line. To fix this, try:
230
+
231
+ - Check what line the error gives as the function going wrong, look at that line in HSL and work out the correct location in Venus code
232
+ - Look at whatever functions are present on that line and check how many input parameters the functions are meant to have vs how many they actually have
233
+ - Make sure all input parameters exist and are not just empty variables or arrays or sequences.
234
+
235
+ .. _0xa123000e:
236
+
237
+ **0xa123000e: Setting value failed**
238
+
239
+ This error means that the executor failed to set the value of a symbol table entry at the specified line. To fix this, try:
240
+
241
+ - Check what line the error gives as the function going wrong, look at that line in HSL and work out the correct location in Venus code
242
+ - See what value is trying to be set within the symbol table; make sure it has no special characters, the correct type and attributes
243
+
244
+ .. _0xa123000f:
245
+
246
+ **0xa123000f: Function identifier not found**
247
+
248
+ This error occurs when the executor failed to lookup a function identifier in the symbol table at the specified line. This usually means the function has not been defined properly or has failed to import into the symbol table properly. It can also be the result of a misspelt name at any steps involving it. To fix this, try:
249
+
250
+ - See what the name of the function is that isn't being found
251
+ - Check to see if the function name is spelt correctly
252
+ - Check to see earlier in the method that the function has been defined and imported successfully into the symbol table
253
+ - Check to see if this happens everytime this function is called or just this one step. If it happens every time then it is likely a definition or import issue, if only once then it is likely a naming or exporting issue.
254
+
255
+ .. _0xa1230010:
256
+
257
+ **0xa1230010: Bindings not found**
258
+
259
+ This error occurs when the executor failed to lookup the value bound to a formal parameter in the symbol table at the line specified.
260
+
261
+ .. _0xa1230011:
262
+
263
+ **0xa1230011: Temporary variable not found**
264
+
265
+ This error occurs when the executor failed to delete the identifier of a temporary variable in the symbol table at the line specified.
266
+
267
+ .. _0xa1230012:
268
+
269
+ **0xa1230012: Unknown function type**
270
+
271
+ This error occurs when the executor detects a function which hasn't been defined at the specific line. To fix this, try:
272
+
273
+ - Work out which function hasn't been defined based on the line of code which throws the error
274
+ - Check whether function name is misspelt
275
+ - Check whether function is defined post calling rather than pre calling
276
+ - Check whether function has been defined at all
277
+
278
+ .. _0xa2230013:
279
+
280
+ **0xa2230013: Unable to find file**
281
+
282
+ This error occurs when the executor can't find the file specified. To fix this, try:
283
+
284
+ - Check the line of code to determine what the path of the file is that is nonexistent
285
+ - Determine whether the path was computer specific and the method has been ported across computers e.g. was the file in C:\\Users\\tchapman and should be in C:\\Users\\Hamilton. To avoid this in the first place, save things in the Hamilton folder of the C:\\Program Files x86 instead.
286
+ - Check whether the file has been moved since the path was created
287
+ - Check whether the file name has been misspelt
288
+ - If file name is a variable, check to see it has been defined correctly
289
+
290
+ .. _0xa1230014:
291
+
292
+ **0xa1230014: Type mismatch**
293
+
294
+ This error occurs when the executor detects a mismatch between the types of variable fed into a function compared to the defined parameter that the function is meant to have an as input. To fix this, try:
295
+
296
+ - Check which function is causing the error
297
+ - Check what type of input the function is expecting; will hopefully be in the documentation, if not you can delve into the HSL code for that function and see directly
298
+ - Check what type of variable you are feeding in to the function and confirm it matches the type the function is expecting
299
+
300
+ .. _0xa2230015:
301
+
302
+ **0xa2230015: Bad L-value**
303
+
304
+ This error occurs when the left hand side value for an operation is incorrect for the operation. To fix this, try:
305
+
306
+ - Check what type of variable the operator is expecting
307
+ - Check what type of variable you are feeding into the operator equation
308
+ - This error could be using the wrong operator e.g. & rather than +, or by using the wrong variable type e.g. float rather than int
309
+
310
+ .. _0xa2230016:
311
+
312
+ **0xa2230016: Bad R-value**
313
+
314
+ This error occurs when the right hand side value for an operation is incorrect for the operation. To fix this, try:
315
+
316
+ - Check what type of variable the operator is expecting
317
+ - Check what type of variable you are feeding into the operator equation
318
+ - This error could be using the wrong operator e.g. & rather than +, or by using the wrong variable type e.g. float rather than int
319
+
320
+ .. _0xa2220017:
321
+
322
+ **0xa2220017: Unrecognized type**
323
+
324
+ This error occurs when the executor detects an unrecognized storage type at the specified line.
325
+
326
+ .. _0xa1230018:
327
+
328
+ **0xa1230018: Bad memory type**
329
+
330
+ This error occurs when the executor detects a bad memory type for an array at the specified line.
331
+
332
+ .. _0xa1230019:
333
+
334
+ **0xa1230019: Array reference out of bound**
335
+
336
+ This error occurs when the executor detects an invalid index for an array at a specified line. To fix this, try:
337
+
338
+ - Check the size of the array that is being queried
339
+ - Check which value from the array you are expecting to call and check what index that value has
340
+ - Potentially add a step into the method to find that index on a dynamic basis so that you can change the array earlier in the method without messing up that step
341
+
342
+ .. _0xa123001a:
343
+
344
+ **0xa123001a: Bad array identifier type**
345
+
346
+ This error occurs when the executor detects an unrecognized storage type for an array identifier at the specified line.
347
+
348
+ .. _0xa123001b:
349
+
350
+ **0xa123001b: Tag insert failed**
351
+
352
+ This error occurs when the executor fails to insert an identifier into the tag table of a structure definition at the specified line.
353
+
354
+ .. _0xa123001c:
355
+
356
+ **0xa123001c: Dynamic memory identifier not bound**
357
+
358
+ This error occurs when the executor detected at the specified line an identifier of a dynamic memory object that was not bound to a valid value. This is when a variable or data structures has been allocated at runtime, and has been assigned an incorrect value, such as binding an identifier that is meant to be a variable to a submethod instead. As far as I'm aware, this is only possible to do by editing the HSL code, I don't think the method editor has any functions that allow you to bind identifiers incorrectly, I'm not 100% certain on that though. To fix this, try:
359
+
360
+ - Locate the identifier that is causing the error (should be possible in either the method editor or the hsl method editor)
361
+ - Confirm what kind of object the identifier is meant to be
362
+ - Work out what method editor step corresponds to the incorrect HSL code, which is likely to be a block of HSL code inserted directly into the method editor
363
+ - Correct that code (if you have knowledge of HSL) or replace it with method editor steps that have the same functionality. If you're really attached to the HSL block of code but aren't proficient with HSL, try to make the same function with method editor steps in a separate method, look at the HSL code that generates, and copy that HSL code into the original method as an inserted block of HSL.
364
+
365
+ .. _0xa123001d:
366
+
367
+ **0xa123001d: Tag identifier not bound**
368
+
369
+ This error occurs when the executor detected at the specified line an identifier of a structure tag object that was not bound to a valid value. A structure tag object is a piece of metadata associated with a variable. In this error, a variable is expected to have some sort of tag, but the tag doesn't exist. To fix this, try:
370
+
371
+ - Determine which variable the tag is meant to be associated with based on the specified line
372
+ - From that, work out what kind of tag is meant to be present. This is doable by looking at the HSL code. In the HSL Method Editor Help section, you can go to HSL Reference \> Declaration of Objects \> Declaration of Structure Objects to see what the format of tag declaration is meant to be, and therefore can compare this to the code in the method associated with the object declaration
373
+ - Add the assignment of the tag in the method editor code, confirming via the HSL that the tag has been assigned correctly. You can also assign the tag via an HSL code insert step.
374
+
375
+ .. _0xa123001e:
376
+
377
+ **0xa123001e: Structure reference out of bound**
378
+
379
+ This error occurs when the executor detects a reference to an element of a structure which is outside the allowed range. A few examples of this are integers which are too large or too small, or strings which are too long. To fix this, try:
380
+
381
+ - Determine which reference is out of bounds. This should be doable by looking at the HSL code; the error message in the trace file should show you which line is the one causing the problems.
382
+ - Locate in the HSL code where the bounds of the identifier have been set; this can usually be done by searching the HSL file for "struct" functions, and then seeing what character(s) follow the "}" character.
383
+ - Depending on the requirements of the reference, either adjust the reference bounds assignment to include the target value, or adjust the function which is causing the error to ensure the reference is always within the specified bounds (e.g. splitting or truncating strings, editing loops to only contain correct integers)
384
+
385
+ .. _0xa123001f:
386
+
387
+ **0xa123001f: Bad tag identifier type**
388
+
389
+ This error occurs when the identifier of a structure tag object has been assigned to an incorrect type, such as a being assigned a string rather than an integer. To fix this, try:
390
+
391
+ - Determine what tag is causing the problem by looking at the HSL code associated with the line specified in the trace file
392
+ - Identify what type of data the tag is expecting
393
+ - If the tag is expecting a string rather than an int, locate the assignment and add quotation marks around the assignment
394
+ - If the tag is expecting an int rather than a string, locate the assignment and either use a function to convert the string to an int or remove the quotation marks around the assignment
395
+ - If the tag is expecting an int rather than a float or vice versa, locate the assignment and use a function to convert one to the other.
396
+ - Functions to convert the variable type are present in the HSLExtensions:Core library
397
+
398
+ .. _0xa1230020:
399
+
400
+ **0xa1230020: L-value is not a structure identifier**
401
+
402
+ This error occurs when the executor detects a data reference which is not a structure at the specified line, in the left hand side of the assignment.
403
+
404
+ .. _0xa1230021:
405
+
406
+ **0xa1230021: L-value is not an array identifier**
407
+
408
+ This error occurs when the executor detects a data reference which is not an array at the specified line, in the left hand side of the assignment.
409
+
410
+ .. _0xa1230022:
411
+
412
+ **0xa1230022: Failed to lookup tag identifier in the tag table**
413
+
414
+ This error occurs when the executor detects a tag identifier which is not a member of the tag table. To fix this, try:
415
+
416
+ - Checking whether your tag is correctly spelled
417
+ - Attempt to add your tag to the tag table
418
+ - Change your tag to be one which is present in the tag table already
419
+
420
+ .. _0xa1230023:
421
+
422
+ **0xa1230023: Signal break**
423
+
424
+ This error occurs when the executor detects an invalid break statement at the specified line.
425
+
426
+ .. _0xa1230024:
427
+
428
+ **0xa1230024: Copy out of bound**
429
+
430
+ This error occurs when the executor detects a structure copy which is out of bound.
431
+
432
+ .. _0xa1230025:
433
+
434
+ **0xa1230025: Signal return**
435
+
436
+ This error occurs when the executor detects an invalid return-statement.
437
+
438
+ .. _0xa2230026:
439
+
440
+ **0xa2230026: Array size is not an integer**
441
+
442
+ This error occurs when the executer detects an error in the size of an array at the specified line. This is usually if an array is assigned to a float or string by accident. To fix this, try:
443
+
444
+ - Check where the size of the array was assigned. If it was done via a calculation (especially a division), it is often assigned a float even when the numbers divide exactly.
445
+ - If the assignment of size was done via a variable, check to ensure the variable was written as an integer and not as a string
446
+ - If you can't identify where the mistake is in assignment type, you can try use one of the convert-to-integer functions and see whether that works or whether it throws up a fresh error.
447
+ - Make sure the array size is positive
448
+ - Try assigning the array size dynamically, i.e. when declaring the array make it empty, and then add items to it at the end of the array rather than at specific locations
449
+
450
+ .. _0xa1230027:
451
+
452
+ **0xa1230027: Failed to copy tag table**
453
+
454
+ This error occurs when the executor fails to copy the tag table.
455
+
456
+ .. _0xa1230029:
457
+
458
+ **0xa1230029: Function has not been defined**
459
+
460
+ This error occurs when a function has not been defined in the library it is being called from. To fix this, try:
461
+
462
+ - If you are the author of the target library, open the code in HSL and check whether the function has been defined at all, or if it is only defined in one namespace, or if it has been misspelled, or if it has been incorrectly commented out
463
+ - If you are not the author of the library but are proficient in HSL, you can do as above, but would be worth making a copy of the library and editing that instead
464
+ - Otherwise, remove the function from your method and find an alternative way of doing whatever you were aiming to do
465
+
466
+ .. _0xa123002a:
467
+
468
+ **0xa123002a: Unable to enter nesting level**
469
+
470
+ This error occurs when the executor failed to enter the nesting level at the specified line.
471
+
472
+ .. _0xa123002b:
473
+
474
+ **0xa123002b: Unable to exit nesting level**
475
+
476
+ This error occurs when the executor failed to exit the nesting level at the specified line.
477
+
478
+ .. _0xa122002c:
479
+
480
+ **0xa122002c: No context**
481
+
482
+ This error occurs when the executor fails to create a new symbol table at the specified line.
483
+
484
+ .. _0xa123002d:
485
+
486
+ **0xa123002d: Failed to read file**
487
+
488
+ This error occurs when the executor fails to read a specific file. To fix this, try:
489
+
490
+ - Ensure the file path specified is a correct and valid path
491
+ - Ensure the file you are trying to read exists
492
+ - Check whether the file has the hidden attribute. If so, you can use the File Handling library to remove that property dynamically during the run, or do it manually in file explorer
493
+ - Ensure that the file is in a location that Venus has access to
494
+
495
+ .. _0xa123002e:
496
+
497
+ **0xa123002e: Failed to create timer**
498
+
499
+ This error occurs when the executor or parser fails to create a timer at the specified line
500
+
501
+ .. _0xa123002f:
502
+
503
+ **0xa123002f: Failed to set timer**
504
+
505
+ This error occurs when the executor fails to set a timer at the specified line
506
+
507
+ .. _0xa1230030:
508
+
509
+ **0xa1230030: Failed to wait timer**
510
+
511
+ This error occurs when the executor fails to wait for at timer to be signaled at the specified line
512
+
513
+ .. _0xa1230031:
514
+
515
+ **0xa1230031: Failed to create event**
516
+
517
+ This error occurs when the parser or executor fails to create an event at the specified line
518
+
519
+ .. _0xa1230032:
520
+
521
+ **0xa1230032: Failed to set event**
522
+
523
+ This error occurs when the executor fails to set an event at the specified line
524
+
525
+ .. _0xa1230033:
526
+
527
+ **0xa1230033: Failed to wait event**
528
+
529
+ This error occurs when the executor fails to wait for an event to be signaled
530
+
531
+ .. _0xa1230034:
532
+
533
+ **0xa1230034: Bad argument**
534
+
535
+ This error occurs when the executor detects an error in the function argument at the specified line. An example of this would be having a File:Set Position command with a non-integer value as the input; as positions can only take integer values. To fix this, try:
536
+
537
+ - Determine from the trace file which line and function are causing these errors
538
+ - Determine the type of input the function is expecting (e.g. int, str, var)
539
+ - Determine any bounds the function input has (e.g. max 300uL volume for 300uL tips)
540
+ - Check your input and see which of the above it doesn't meet
541
+ - If your input is the right value but the wrong type, there are various functions that can convert variables from one type to another - for example in HSLMthLib you can convert floats to ints, ints to strings, etc.
542
+
543
+ .. _0xa2230035:
544
+
545
+ **0xa2230035: Syntax error**
546
+
547
+ This error occurs when the parser detects syntax errors in the method
548
+
549
+ .. _0xa2230036:
550
+
551
+ **0xa2230036: Integer divide by zero**
552
+
553
+ This error occurs when the executor detects an integer divide by zero at a specified line. To fix this, try:
554
+
555
+ - Determine which variable or integer is being treated as a zero in the calculation
556
+ - Check that that variable or integer has an assignment step associated with it; without one it will default to zero
557
+ - Check that the variable is correctly spelled; if incorrectly spelled (compared to its assignment) it will default to zero
558
+
559
+ .. _0xa2230038:
560
+
561
+ **0xa2230038: Returning address of local variable or temporary**
562
+
563
+ This error occurs when the executor detects a function returning the address of a local or temporary variable. This causes problems as local variables and temporary variables are destroyed upon function return, so the address returned becomes invalid. To fix this, try:
564
+
565
+ - Converting the variable that is being returned to global or task local
566
+ - Removing the function return value if it isn't essentially
567
+
568
+ .. _0xa2230039:
569
+
570
+ **0xa2230039**
571
+
572
+ This error occurs when a library requires an installer to be run before use and the installer hasn't yet been run. An example of this would be the Dynamic Liquid Classes library. To fix this, try:
573
+
574
+ - Contact me directly as there is a reasonable chance I have the installer and can send it over
575
+ - Contact your Hamilton apps specialist
576
+ - Go into the hsl file for the library, find the author (usually in the final line or at the top commented out) and contact them directly
577
+
578
+ .. _0xa223003a:
579
+
580
+ **0xa223003a: Unable to find file**
581
+
582
+ This error occurs when the executor couldn't find the file at the specified line. To fix this, try:
583
+
584
+ - Checking that the file isn't a hidden file
585
+ - Checking that the file exists
586
+ - Checking that the file is in the location specified in the path
587
+ - Checking that the path is correct with no spelling mistakes and has double backslashes instead of single
588
+ - Check that the file is in a location that Venus has access to
589
+
590
+ .. _0xa223003b:
591
+
592
+ **0xa223003b: File not updatable**
593
+
594
+ This error occurs when the executor is asked to update a non-updatable file. To fix this, try:
595
+
596
+ - Removing the read-only tag of the file, which can either be done manually in file explorer or using the File Handling library
597
+ - Moving the file to a location that Venus has edit access in (such as to documents instead of Program Files section)
598
+ - Giving venus the appropriate permissions to edit files in that area
599
+ - Making sure the file isn't in use by another program or open separately
600
+
601
+ .. _0xa223003c:
602
+
603
+ **0xa223003c: Recursive call**
604
+
605
+ This error occurs when the executor detects a recursive or concurrent funtion call. To fix this, try:
606
+
607
+ - If the function is one from an HSL library, remove the function from your method and find an alternative way of doing whatever you were trying to do, or edit the HSL file to fix it if you are proficient in HSL
608
+ - If the recursion is caused by function parameter input, change the parameters to be not that function. If need be you can create two copies of a function and call one from within the other.
609
+ - If the concurrency is caused by a method fork in which both call the same function, you can either stop the fork or add in a "wait for event" clause to ensure that they trigger sequentially rather than concurrently
610
+
611
+ .. _0xa223003d:
612
+
613
+ **0xa223003d: Failed to wait for thread(s)**
614
+
615
+ This error occurs when the executor fails to wait for one or more threads to be signaled.
616
+
617
+ .. _0xa223003e:
618
+
619
+ **0xa223003e: Time-out interval elapsed**
620
+
621
+ This error occurs when the time-out window for a specific function or error elapses without user response. To fix this, try:
622
+
623
+ - Ensure that the user is present at the STAR or that there is a way of notifying the user when a time-out dialog pops up
624
+ - If the dialog is one caused by a function, increase the time-out period of the dialog, or set it to an infinite timeout (usually by setting the timeout to 0)
625
+
626
+ .. _0xa2220044:
627
+
628
+ **0xa2220044: Automation type not supported**
629
+
630
+ This error occurs when there is a reference to an automation function which has a parameter that is not supported.
631
+
632
+ .. _0xa1230046:
633
+
634
+ **80xa1230046: Bad argument parameter**
635
+
636
+ This error occurs when the executor detects an error in a function argument at the specified line. To fix this, try:
637
+
638
+ - Determine which argument within the function is causing the error
639
+ - Confirm that the argument is the correct type (e.g. a string of 0 vs an int of 0)
640
+ - Check that the argument has not been misspelled if it is a variable
641
+ - Check that the function being called is the correct one
642
+
643
+ .. _0xa123004d:
644
+
645
+ **0xa123004d: Sequence property not found**
646
+
647
+ This error occurs when the sequence property being referenced is not found. To fix this, try:
648
+
649
+ - If the sequence is one which is defined in the layout file, go into the layout file and view or edit the sequence properties there
650
+ - If the sequence is one which is defined during the method, confirm that the step defining the referenced property exists
651
+ - Confirm that the step defining the referenced property is not commented out, is called in advance of the sequence property being referenced, and is not misspelled
652
+
653
+ .. _0xa123004e:
654
+
655
+ **0xa123004e: Int64 not supported**
656
+
657
+ This error occurs when a 64 bit integer is used on certain platforms. To fix this, try:
658
+
659
+ - Moving off a windows 2000 platform
660
+ - Changing the integer to a 32 bit integer
661
+
662
+ .. _0x00000001:
663
+
664
+ **0x00000001: The parameter is incorrect**
665
+
666
+ This error occurs when the parameter input into a function is incorrect. To fix this, try:
667
+
668
+ - Check that the variable type inputted into a function is correct, for example not an integer instead of a string or float.
669
+ - Check that the parameter value is within the acceptable range; either length for string or upper and lower limits for int or float or bool
670
+
671
+ .. _0xa1630001:
672
+
673
+ **0xa1630001: Unexpected error**
674
+
675
+ This error occurs when there is an error in an HSLUtilLib2 step which is not covered by any of the other error messages.
676
+
677
+ .. _0xa1630002:
678
+
679
+ **0xa1630002: Create object failed or Invalid parameter**
680
+
681
+ This error is listed as Create Object Failed in the index of HSLUtilLib2, but described as invalid parameter. I'm assuming that the latter is correct, in which case the error occurs when one or more parameters for an HSLUtilLib2 step is invalid. To fix this, try:
682
+
683
+ - Check what parameters the function called is expecting and compare to the ones you're feeding in
684
+ - Check whether you are feeding in the correct number of parameters
685
+
686
+ .. _0xa1630003:
687
+
688
+ **0xa1630003: Value Check Failed Invalid Type**
689
+
690
+ This error occurs when the executor finds a function parameter or read from file that is not of the expected type. To fix this, try:
691
+
692
+ - Check what type of parameter you're feeding in to the function or file and make sure it is the expected type. The expected type should be findable in the documentation, if not then it should be findable in the raw HSL code.
693
+ - Check that the parameter is actually being fed into the function and that it hasn't been misspelt
694
+ - Check that the file is present in the right location and hasn't been corrupted or moved to the incorrect place
695
+
696
+ .. _0xa1630004:
697
+
698
+ **0xa1630004: Value Check Failed Invalid Range**
699
+
700
+ This error occurs when the executor finds a function parameter or read from file that is not within the expected range. To fix this, try:
701
+
702
+ - Check what the expected range of the function or file read. This should be findable in the documentation, but will be in the raw HSL code if not.
703
+ - Check what the value of the parameter being fed in is.
704
+ - Check whether the range is due to the parameter being mistakenly high or the function range being mistakenly low.
705
+
706
+ .. _0xa1630005:
707
+
708
+ **0xa1630005: Labware Error**
709
+
710
+ This error occurs when the access of labware based on LabwareID and PositionID causes an error. To fix this, try:
711
+
712
+ - Check that the labware or position IDs have been spelt correctly
713
+ - Check that the layout file for the method is the correct one
714
+ - Check that the labware still exists on the system deck and hasn't been deleted
715
+ - Check that the labware file still exists in the system database and hasn't been moved or deleted
716
+
717
+ .. _0xa1630006:
718
+
719
+ **0xa006: Array Index Not A Number**
720
+
721
+ This error occurs when the index of the specified array is not a positive integer. To fix this, try:
722
+
723
+ - Identify what the index of the array is e.g. is it a float, a negative integer, a string
724
+ - If the identifier is a numeric string or a float that ends in .0, use a convert to int function
725
+ - If the array index is something other than that, try to assign it to a positive integer as a key code or unique identifier
726
+
727
+ .. _0xa1630007:
728
+
729
+ **0xa1630007: Array Index Not An Integer**
730
+
731
+ This error occurs when the index of the specified array is a float rather than an integer. To fix this, try:
732
+
733
+ - If the index is at a .0, use a convert to int function
734
+ - If the index is at a non .0, either use a floor or ceiling function, or assign a positive integer as a key code or unique identifier
735
+
736
+ .. _0xa1630008:
737
+
738
+ **0xa1630008: Array Index Must Not Be Negative**
739
+
740
+ This error occurs when the index of the specified array is less than 1. To fix this, try:
741
+
742
+ - If the index is less than 0, perhaps take the absolute value of the index, provided that doesn't clash with another identifier.
743
+ - If the index is between 0 and 1, or the abs value of the index would clash, work out where you want the value to be within the array. If it needs inserting, use an insert function from one of the array libraries. If it doesn't need inserting, get the length of the array and append the value and assign it that as the index.
744
+
745
+ .. _0xa1630009:
746
+
747
+ **0xa1630009: Array Index Must Not Be Greater Than Array Size**
748
+
749
+ This error occurs when the index of the specified array is greater than the size of the array. To fix this, try:
750
+
751
+ - Check what the index of the value in the array that you are intending to call is and assign it to that
752
+ - If the value is not within the array correctly, adjust the size of the array to be one larger and append the value at the end of the array or use an insert function from an array library.
VenusLibraryDocumentation-DocsForGPT/docs/source/STAR_Channel_Tools.rst ADDED
@@ -0,0 +1,595 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ STAR_Channel_Tools
2
+ ==================================
3
+
4
+ https://github.com/theonetruenerd/VenusPackages/blob/main/STAR_Channel_Tools.pkg
5
+
6
+ The STAR_Channel_Tools submethod library adds a variety of functions which are related to the use of the 8 channels. The following functions are added:
7
+
8
+ - :ven:func:`CHAN_ACCESS_Sort1Sequence`
9
+ - :ven:func:`CHAN_ACCESS_Sort1Sequence1Array`
10
+ - :ven:func:`CHAN_ACCESS_Sort1Sequence2Arrays`
11
+ - :ven:func:`CHAN_ACCESS_Sort2Sequences`
12
+ - :ven:func:`CHAN_ACCESS_Sort2Sequences1Array`
13
+ - :ven:func:`CHAN_ACCESS_Sort2Sequences2Arrays`
14
+ - :ven:func:`LIQUID_LEVEL_GetLiquidLevelHeight`
15
+ - :ven:func:`LIQUID_LEVEL_MeasureLiquidMulti`
16
+ - :ven:func:`LIQUID_LEVEL_MeasureLiquidSingle`
17
+ - :ven:func:`LIQUID_LEVEL_ReturnVolumesFromLiquidLevel`
18
+ - :ven:func:`MOVE_ChannelsToSequencePosition`
19
+ - :ven:func:`MOVE_ChannelsToSequencePosition_5mL`
20
+ - :ven:func:`MOVE_CheckPlateWithTwoChannels`
21
+ - :ven:func:`MOVE_InitDispenseDrive`
22
+ - :ven:func:`MOVE_InitDispenseDrive_5mL`
23
+ - :ven:func:`PLATE_STACK_CountPlateStacks`
24
+ - :ven:func:`QUERY_GetChannelPosition`
25
+ - :ven:func:`QUERY_GetChannelPosition_5mL`
26
+ - :ven:func:`QUERY_GetTipPresentState`
27
+ - :ven:func:`QUERY_GetTipPresentState_5mL`
28
+ - :ven:func:`QUERY_GetTipVolume`
29
+ - :ven:func:`QUERY_GetTIpVolume_5mL`
30
+ - :ven:func:`SPLIT_WELLS_AddContainersToWell`
31
+ - :ven:func:`SPLIT_WELLS_RemoveContainers`
32
+ - :ven:func:`TRAVEL_LANES_MoveChannelsToTravelLanes`
33
+ - :ven:func:`TRAVEL_LANES_MoveChannelsToTravelLanes_5mL`
34
+ - :ven:func:`TRAVEL_LANES_MoveChannelsToYPosition`
35
+ - :ven:func:`TRAVEL_LANES_MoveChannelsToYPosition_5mL`
36
+ - :ven:func:`TRAVEL_LANES_MoveChannelsWithTravelLanes`
37
+ - :ven:func:`TRAVEL_LANES_MoveChannelsWithTravelLanes_5mL`
38
+ - :ven:func:`TRAVEL_LANES_SingleSource_ChannelDisplacement`
39
+ - :ven:func:`TRAVEL_LANES_SingleSource_ChannelDisplacement_5mL`
40
+
41
+ .. ven:function:: CHAN_ACCESS_Sort1Sequence(device ML_STAR, sequence io_Sequence_to_Sort, variable i_Channel_Type, boolean i_Sort_by_Labware, boolean i_Sort_by_XY, boolean i_Sort_for_Channel_Raster, variable i_Max_Channel, sequence o_Sorted_Sequence, variable o_Channel_Pattern)
42
+
43
+ This submethod takes an input sequence and sorts it based on the input parameters of labware, position, and raster. Once sorted, the submethod will choose a position that the current channel can access up to the maximum. If the current channel cannot access the position, it will skip it and move to the next available position. If the current cannot access any more positions, that channel will be skipped. Make sure the channel use setting is set to "All Sequence Positions" in the pipettting step, otherwise the sequence and channel pattern will not line up.
44
+
45
+ :params ML_STAR: The ML_STAR itself, which will be the only option in the dropdown.
46
+ :params io_Sequence_to_Sort: The input sequence to be sorted.
47
+ :params i_Channel_Type: The channel type associated with the pipetting step (1mL, 5mL, labware handler). 0 = 1mL, 1 = 5mL, 2 = Labware handler.
48
+ :params i_Sort_by_Labware: A boolean determining whether the sequence is to be sorted by labware in ascending order
49
+ :params i_Sort_by_XY: A boolean determining whether the sequence is to be sorted by position (X ascending, Y descending)
50
+ :params i_Sort_for_Channel_Raster: A boolean determining whether the next position will be at least the raster distance unless no other positions are available
51
+ :params i_Max_Channel: The maximum channel that you want to be used from 1 to 16. 0 turns this option off and the maximum number of channels will be used.
52
+ :params o_Sorted_Sequence: The outputted sorted sequence for the pipetting step
53
+ :params o_Channel_Pattern: The outputted channel pattern for the pipetting step
54
+ :type ML_STAR: Device
55
+ :type io_Sequence_to_Sort: Sequence
56
+ :type i_Channel_Type: Variable
57
+ :type i_Sort_by_Labware: Boolean
58
+ :type i_Sort_by_XY: Boolean
59
+ :type i_Sort_for_Channel_Raster: Boolean
60
+ :type i_Max_Channel: Variable
61
+ :type o_Sorted_Sequence: Sequence
62
+ :type o_Channel_Pattern: Variable
63
+ :return: The number of sequence positions remaining in the sequence
64
+ :rtype: Variable
65
+
66
+ .. ven:function:: CHAN_ACCESS_Sort1Sequence1Array(device ML_STAR, sequence io_Sequence_to_Sort, array io_Array_of_Variables, variable i_Channel_Type, boolean i_Sort_by_Labware, boolean i_Sort_by_XY, boolean i_Sort_for_Channel_Raster, variable i_Max_Channel, sequence o_Sorted_Sequence, array o_Sorted_Array, variable o_Channel_Pattern)
67
+
68
+ This submethod takes in input sequence and sorts it by the conditions given below. After sorting, the submethod will choose a position that the current channel can access up to the maximum. If the current channel cannot access the position, it wil skip it and move to the next available position. If the current channel cannot access any more positions, that channel will be skipped. The array will be sorted with the sequence. The array and the sequence must be the same size. Make sure the channel use setting is set to "All sequence positions" otherwise the sequence and channel pattern will not line up.
69
+
70
+ :params ML_STAR: The ML_STAR itself, which will be the only option in the dropdown.
71
+ :params io_Sequence_to_Sort: The input sequence to be sorted.
72
+ :params io_Array_of_Variables: The array to be sorted with the sequence. Used positions will be removed from the array.
73
+ :params i_Channel_Type: The channel type associated with the pipetting step (1mL, 5mL, labware handler). 0 = 1mL, 1 = 5mL, 2 = Labware handler.
74
+ :params i_Sort_by_Labware: A boolean determining whether the sequence is to be sorted by labware in ascending order
75
+ :params i_Sort_by_XY: A boolean determining whether the sequence is to be sorted by position (X ascending, Y descending)
76
+ :params i_Sort_for_Channel_Raster: A boolean determining whether the next position will be at least the raster distance unless no other positions are available
77
+ :params i_Max_Channel: The maximum channel that you want to be used from 1 to 16. 0 turns this option off and the maximum number of channels will be used.
78
+ :params o_Sorted_Sequence: The outputted sorted sequence for the pipetting step
79
+ :params o_Sorted_Array: The outputted sorted array which matches the sequence
80
+ :params o_Channel_Pattern: The outputted channel pattern for the pipetting step
81
+ :type ML_STAR: Device
82
+ :type io_Sequence_to_Sort: Sequence
83
+ :type io_Array_of_Variables: Array
84
+ :type i_Channel_Type: Variable
85
+ :type i_Sort_by_Labware: Boolean
86
+ :type i_Sort_by_XY: Boolean
87
+ :type i_Sort_for_Channel_Raster: Boolean
88
+ :type i_Max_Channel: Variable
89
+ :type o_Sorted_Sequence: Sequence
90
+ :type o_Sorted_Array: Array
91
+ :type o_Channel_Pattern: Variable
92
+ :return: The number of sequence positions remaining in the sequence
93
+ :rtype: Variable
94
+
95
+ .. ven:function:: CHAN_ACCESS_Sort1Sequence2Arrays(device ML_STAR, sequence io_Sequence_to_Sort, array io_Array_of_Variables, array io_Array_of_Variables2, variable i_Channel_Type, boolean i_Sort_by_Labware, boolean i_Sort_by_XY, boolean i_Sort_for_Channel_Raster, variable i_Max_Channel, sequence o_Sorted_Sequence, array o_Sorted_Array, array o_Sorted_Array2, variable o_Channel_Pattern)
96
+
97
+ This submethod takes in input sequence and sorts it by the conditions given below. After sorting, the submethod will choose a position that the current channel can access up to the maximum. If the current channel cannot access the position, it wil skip it and move to the next available position. If the current channel cannot access any more positions, that channel will be skipped. The arrays will be sorted with the sequence. The arrays and the sequence must be the same size. Make sure the channel use setting is set to "All sequence positions" otherwise the sequence and channel pattern will not line up.
98
+
99
+ :params ML_STAR: The ML_STAR itself, which will be the only option in the dropdown.
100
+ :params io_Sequence_to_Sort: The input sequence to be sorted.
101
+ :params io_Array_of_Variables: The first array to be sorted with the sequence. Used positions will be removed from the array.
102
+ :params io_Array_of_Variables2: The second array to be sorted with the sequence. Used positions will be removed from the array.
103
+ :params i_Channel_Type: The channel type associated with the pipetting step (1mL, 5mL, labware handler). 0 = 1mL, 1 = 5mL, 2 = Labware handler.
104
+ :params i_Sort_by_Labware: A boolean determining whether the sequence is to be sorted by labware in ascending order
105
+ :params i_Sort_by_XY: A boolean determining whether the sequence is to be sorted by position (X ascending, Y descending)
106
+ :params i_Sort_for_Channel_Raster: A boolean determining whether the next position will be at least the raster distance unless no other positions are available
107
+ :params i_Max_Channel: The maximum channel that you want to be used from 1 to 16. 0 turns this option off and the maximum number of channels will be used.
108
+ :params o_Sorted_Sequence: The outputted sorted sequence for the pipetting step
109
+ :params o_Sorted_Array: The outputted sorted first array which matches the sequence
110
+ :params o_Sorted_Array2: The outputted sorted second array which matches the sequence
111
+ :params o_Channel_Pattern: The outputted channel pattern for the pipetting step
112
+ :type ML_STAR: Device
113
+ :type io_Sequence_to_Sort: Sequence
114
+ :type io_Array_of_Variables: Array
115
+ :type io_Array_of_Variables2: Array
116
+ :type i_Channel_Type: Variable
117
+ :type i_Sort_by_Labware: Boolean
118
+ :type i_Sort_by_XY: Boolean
119
+ :type i_Sort_for_Channel_Raster: Boolean
120
+ :type i_Max_Channel: Variable
121
+ :type o_Sorted_Sequence: Sequence
122
+ :type o_Sorted_Array: Array
123
+ :type o_Sorted_Array2: Array
124
+ :type o_Channel_Pattern: Variable
125
+ :return: The number of sequence positions remaining in the sequence
126
+ :rtype: Variable
127
+
128
+ .. ven:function:: CHAN_ACCESS_Sort2Sequences(device ML_STAR, sequence io_Sequence_to_Sort, sequence io_Sequence_to_Sort2, variable i_Channel_Type, boolean i_Sort_by_Labware, boolean i_Sort_by_XY, boolean i_Sort_for_Channel_Raster, variable i_Max_Channel, sequence o_Sorted_Sequence, sequence o_Sorted_Sequence2, variable o_Channel_Pattern)
129
+
130
+ This sub method takes the in input sequences and sorts them by the conditions given below. After sorting, the sub will choose a position that the current channel can access in both sequence positions up to the maximum. If the current channel cannot access the positions, it wil skip it and move to the next available position. If the current channel cannot access any more positions, that channel will be skipped. Make sure the channel use setting is set to "All sequence positions" otherwise the sequence and channel pattern will not line up. The first sequence is the driving sequence and the second sequence will be adjusted by the first sort.
131
+
132
+ :params ML_STAR: The ML_STAR itself, which will be the only option in the dropdown.
133
+ :params io_Sequence_to_Sort: The first input sequence to be sorted.
134
+ :params io_Sequence_to_Sort2: The second input sequence to be sorted.
135
+ :params i_Channel_Type: The channel type associated with the pipetting step (1mL, 5mL, labware handler). 0 = 1mL, 1 = 5mL, 2 = Labware handler.
136
+ :params i_Sort_by_Labware: A boolean determining whether the sequence is to be sorted by labware in ascending order
137
+ :params i_Sort_by_XY: A boolean determining whether the sequence is to be sorted by position (X ascending, Y descending)
138
+ :params i_Sort_for_Channel_Raster: A boolean determining whether the next position will be at least the raster distance unless no other positions are available
139
+ :params i_Max_Channel: The maximum channel that you want to be used from 1 to 16. 0 turns this option off and the maximum number of channels will be used.
140
+ :params o_Sorted_Sequence: The outputted second sorted sequence for the pipetting step
141
+ :params o_Sorted_Sequence2: The outputted second sorted sequence for the pipetting step
142
+ :params o_Channel_Pattern: The outputted channel pattern for the pipetting step
143
+ :type ML_STAR: Device
144
+ :type io_Sequence_to_Sort: Sequence
145
+ :type io_Sequence_to_Sort2: Sequence
146
+ :type i_Channel_Type: Variable
147
+ :type i_Sort_by_Labware: Boolean
148
+ :type i_Sort_by_XY: Boolean
149
+ :type i_Sort_for_Channel_Raster: Boolean
150
+ :type i_Max_Channel: Variable
151
+ :type o_Sorted_Sequence: Sequence
152
+ :type o_Sorted_Sequence2: Sequence
153
+ :type o_Channel_Pattern: Variable
154
+ :return: The number of sequence positions remaining in the sequence
155
+ :rtype: Variable
156
+
157
+ .. ven:function:: CHAN_ACCESS_Sort2Sequences1Array(device ML_STAR, sequence io_Sequence_to_Sort, sequence io_Sequence_to_Sort2, array io_Array_of_Variables, variable i_Channel_Type, boolean i_Sort_by_Labware, boolean i_Sort_by_XY, boolean i_Sort_for_Channel_Raster, variable i_Max_Channel, sequence o_Sorted_Sequence, sequence o_Sorted_Sequence2, array o_Sorted_Array, variable o_Channel_Pattern)
158
+
159
+ This sub method takes the in input sequences and sorts them by the conditions given below. After sorting, the sub will choose a position that the current channel can access in both sequence positions up to the maximum. If the current channel cannot access the positions, it wil skip it and move to the next available position. If the current channel cannot access any more positions, that channel will be skipped. Make sure the channel use setting is set to "All sequence positions" otherwise the sequence and channel pattern will not line up. The first sequence is the driving sequence and the second sequence will be adjusted by the first sort.
160
+
161
+ :params ML_STAR: The ML_STAR itself, which will be the only option in the dropdown.
162
+ :params io_Sequence_to_Sort: The first input sequence to be sorted.
163
+ :params io_Sequence_to_Sort2: The second input sequence to be sorted.
164
+ :params i_Channel_Type: The channel type associated with the pipetting step (1mL, 5mL, labware handler). 0 = 1mL, 1 = 5mL, 2 = Labware handler.
165
+ :params i_Sort_by_Labware: A boolean determining whether the sequence is to be sorted by labware in ascending order
166
+ :params i_Sort_by_XY: A boolean determining whether the sequence is to be sorted by position (X ascending, Y descending)
167
+ :params i_Sort_for_Channel_Raster: A boolean determining whether the next position will be at least the raster distance unless no other positions are available
168
+ :params i_Max_Channel: The maximum channel that you want to be used from 1 to 16. 0 turns this option off and the maximum number of channels will be used.
169
+ :params o_Sorted_Sequence: The outputted second sorted sequence for the pipetting step
170
+ :params o_Sorted_Sequence2: The outputted second sorted sequence for the pipetting step
171
+ :params o_Sorted_Array: The sorted array. The array will be the size of the maximum channel.
172
+ :params o_Channel_Pattern: The outputted channel pattern for the pipetting step
173
+ :type ML_STAR: Device
174
+ :type io_Sequence_to_Sort: Sequence
175
+ :type io_Sequence_to_Sort2: Sequence
176
+ :type i_Channel_Type: Variable
177
+ :type i_Sort_by_Labware: Boolean
178
+ :type i_Sort_by_XY: Boolean
179
+ :type i_Sort_for_Channel_Raster: Boolean
180
+ :type i_Max_Channel: Variable
181
+ :type o_Sorted_Sequence: Sequence
182
+ :type o_Sorted_Sequence2: Sequence
183
+ :type o_Sorted_Array: Array
184
+ :type o_Channel_Pattern: Variable
185
+ :return: The number of sequence positions remaining in the sequence
186
+ :rtype: Variable
187
+
188
+ .. ven:function:: CHAN_ACCESS_Sort2Sequences2Arrays(device ML_STAR, sequence io_Sequence_to_Sort, sequence io_Sequence_to_Sort2, array io_Array_of_Variables, array io_Array_of_Variables2, variable i_Channel_Type, boolean i_Sort_by_Labware, boolean i_Sort_by_XY, boolean i_Sort_for_Channel_Raster, variable i_Max_Channel, sequence o_Sorted_Sequence, sequence o_Sorted_Sequence2, array o_Sorted_Array, array o_Sorted_Array2, variable o_Channel_Pattern)
189
+
190
+ This sub method takes the in input sequences and sorts them by the conditions given below. After sorting, the sub will choose a position that the current channel can access in both sequence positions up to the maximum. If the current channel cannot access the positions, it wil skip it and move to the next available position. If the current channel cannot access any more positions, that channel will be skipped. Make sure the channel use setting is set to "All sequence positions" otherwise the sequence and channel pattern will not line up. The first sequence is the driving sequence and the second sequence will be adjusted by the first sort.
191
+
192
+ :params ML_STAR: The ML_STAR itself, which will be the only option in the dropdown.
193
+ :params io_Sequence_to_Sort: The first input sequence to be sorted. This positions removed will be removed from this sequence.
194
+ :params io_Sequence_to_Sort2: The second input sequence to be sorted. The positions used will be removed from this sequence.
195
+ :params io_Array_of_Variables: The input array of variables which will be sorted with the first sequence. The positions used will be removed from the array.
196
+ :params io_Array_of_Variables2: The input array of variables which will be sorted with the second sequence. The positions used will be removed from the array.
197
+ :params i_Channel_Type: The channel type associated with the pipetting step (1mL, 5mL, labware handler). 0 = 1mL, 1 = 5mL, 2 = Labware handler.
198
+ :params i_Sort_by_Labware: A boolean determining whether the sequence is to be sorted by labware in ascending order
199
+ :params i_Sort_by_XY: A boolean determining whether the sequence is to be sorted by position (X ascending, Y descending)
200
+ :params i_Sort_for_Channel_Raster: A boolean determining whether the next position will be at least the raster distance unless no other positions are available
201
+ :params i_Max_Channel: The maximum channel that you want to be used from 1 to 16. 0 turns this option off and the maximum number of channels will be used.
202
+ :params o_Sorted_Sequence: The outputted second sorted sequence for the pipetting step
203
+ :params o_Sorted_Sequence2: The outputted second sorted sequence for the pipetting step
204
+ :params o_Sorted_Array: The sorted array. The array will be the size of the maximum channel.
205
+ :params o_Sorted_Array2: The second sorted array. The array will be the size of the maximum channel.
206
+ :params o_Channel_Pattern: The outputted channel pattern for the pipetting step
207
+ :type ML_STAR: Device
208
+ :type io_Sequence_to_Sort: Sequence
209
+ :type io_Sequence_to_Sort2: Sequence
210
+ :type i_Channel_Type: Variable
211
+ :type i_Sort_by_Labware: Boolean
212
+ :type i_Sort_by_XY: Boolean
213
+ :type i_Sort_for_Channel_Raster: Boolean
214
+ :type i_Max_Channel: Variable
215
+ :type o_Sorted_Sequence: Sequence
216
+ :type o_Sorted_Sequence2: Sequence
217
+ :type o_Sorted_Array: Array
218
+ :type o_Sorted_Array2: Array
219
+ :type o_Channel_Pattern: Variable
220
+ :return: The number of sequence positions remaining in the sequence
221
+ :rtype: Variable
222
+
223
+ .. ven:function:: LIQUID_LEVEL_GetLiquidLevelHeight(device ML_STAR, variable i_str_LiquidLevelReturn, sequence i_seq_Labware, variable i_int_Channel, variable o_flt_LiquidHeight)
224
+
225
+ This function will return the liquid level height relative to the container bottem.
226
+
227
+ :params ML_STAR: The ML_STAR itself, will be the only option in the dropdown.
228
+ :params i_str_LiquidLevelReturn: The return value of the liquid level detect from the pipetting step.
229
+ :params i_seq_Labware: The input sequence from which the height is to be determined
230
+ :params i_int_Channel: The channel which will be used to determine the liquid level height
231
+ :params o_flt_LiquidHeight: The detected liquid level height
232
+ :type ML_STAR: Device
233
+ :type i_str_LiquidLevelReturn: Variable
234
+ :type i_seq_Labware: Sequence
235
+ :type i_int_Channel: Integer
236
+ :type o_flt_LiquidHeight: Float
237
+ :return: None
238
+ :rtype: N/A
239
+
240
+ .. ven:function:: LIQUID_LEVEL_MeasureLiquidMulti(device ML_STAR, array i_arrseq_FullReservoirSequences, sequence i_seq_TipsToUse, sequence i_seq_TipWaste, variable i_str_TipCounter, variable i_int_LLD_Sensitivity, variable i_bool_ConvertTouL, array o_arr_VolumesMeasured)
241
+
242
+ This function will pick up the desired tips and will measure the liquid level at the center most well of the desired reservoirs and will return the volumes in uL. Ensure the sequence used for the reservoir contains the FULL number of positions of the reservoir, otherwise volume estimation will be incomplete! The tip types supported are: 50uL Filter, 50uL, 300uL Filter, 300uL, 1000uL Filter, and 1000uL.
243
+
244
+ :params ML_STAR: The ML_STAR itself, will be the only option in the dropdown.
245
+ :params i_arrseq_FullReservoirSequences: The array of full reservoir sequences to be checked.
246
+ :params i_seq_TipsToUse: The sequence of the tips to be used to measure the liquid level.
247
+ :params i_seq_TipWaste: The sequence of the waste used to eject the tips.
248
+ :params i_str_TipCounter: The tip counter to be used for the tips on pickup. Place "" if no tip counter will be used.
249
+ :params i_int_LLD_Sensitivity: Integer representing the liquid level sensitivity to be used. 1 is very high, 4 is low, 5 is from labware definition.
250
+ :params i_bool_ConvertTouL: Boolean determining whether it converts to uL (hslTrue) or stays as mL (hslFalse).
251
+ :params o_arr_VolumesMeasured: The array of volumes that were measured.
252
+ :type ML_STAR: Device
253
+ :type i_arrseq_FullReservoirSequences: Array
254
+ :type i_seq_TipsToUse: Sequence
255
+ :type i_seq_TipWaste: Sequence
256
+ :type i_str_TipCounter: Variable
257
+ :type i_int_LLD_Sensitivity: Variable
258
+ :type i_bool_ConvertTouL: Boolean
259
+ :type o_arr_VolumesMeasured: Array
260
+ :return: Whether the measurement has been successful or not
261
+ :rtype: Boolean
262
+
263
+ .. ven:function:: LIQUID_LEVEL_MeasureLiquidSingle(device ML_STAR, sequence i_seq_FullReservoirSequence, sequence i_seq_TipsToUse, sequence i_seq_TipWaste, variable i_str_TipCounter, variable i_bool_IncrementTipSequence, variable i_int_LLD_Sensitivity, variable i_bool_ConvertTouL, variable o_flt_VolumeMeasured)
264
+
265
+ This function will pick up the desired tip and will measure the liquid level at the center most well of the desired reservoir and will return the volume in uL. Ensure the sequence used for the reservoir contains the FULL number of positions of the reservoir, otherwise volume estimation will be incomplete! The tip types supported are: 50uL Filter, 50uL, 300uL Filter, 300uL, 1000uL Filter, and 1000uL.
266
+
267
+ :params ML_STAR: The ML_STAR itself, will be the only option in the dropdown.
268
+ :params i_seq_FullReservoirSequences: The full reservoir sequence to be checked.
269
+ :params i_seq_TipsToUse: The sequence of the tips to be used to measure the liquid level.
270
+ :params i_seq_TipWaste: The sequence of the waste used to eject the tips.
271
+ :params i_str_TipCounter: The tip counter to be used for the tips on pickup. Place "" if no tip counter will be used.
272
+ :params i_bool_IncrementTipSequence: Boolean determining whether the tip sequence should be incremented after pickup or not.
273
+ :params i_int_LLD_Sensitivity: Integer representing the liquid level sensitivity to be used. 1 is very high, 4 is low, 5 is from labware definition.
274
+ :params i_bool_ConvertTouL: Boolean determining whether it converts to uL (hslTrue) or stays as mL (hslFalse).
275
+ :params o_flt_VolumeMeasured: A float of the volume that was measured.
276
+ :type ML_STAR: Device
277
+ :type i_seq_FullReservoirSequences: Sequence
278
+ :type i_seq_TipsToUse: Sequence
279
+ :type i_seq_TipWaste: Sequence
280
+ :type i_str_TipCounter: Variable
281
+ :type i_bool_IncrementTipSequence: Boolean
282
+ :type i_int_LLD_Sensitivity: Variable
283
+ :type i_bool_ConvertTouL: Boolean
284
+ :type o_flt_VolumeMeasured: Float
285
+ :return: Whether the measurement has been successful or not
286
+ :rtype: Boolean
287
+
288
+ .. ven:function:: LIQUID_LEVEL_ReturnVolumesFromLiquidLevel(device ML_STAR, variable i_str_PipettingReturn, variable i_str_LiquidLevelReturn, variable i_bool_ConvertTouL, array o_arr_VolumesMeasured)
289
+
290
+ This function will return the volumes that were measured from a previous aspiration step.
291
+
292
+ :params ML_STAR: The ML_STAR itself, will be the only option in the dropdown
293
+ :params i_str_PipettingReturn: The return value of the pipetting step to measure liquid level
294
+ :params i_str_LiquidLevelReturn: The return value of the liquid level detect
295
+ :params i_bool_ConvertTouL: Boolean determining whether it converts to uL (hslTrue) or stays as mL (hslFalse)
296
+ :params o_arr_VolumesMeasured: An array of the volumes which were measured for each channel
297
+ :type ML_STAR: Device
298
+ :type i_str_PipettingReturn: Variable
299
+ :type i_str_LiquidLevelReturn: Variable
300
+ :type i_bool_ConvertTouL: Boolean
301
+ :type o_arr_VolumesMeasured: Array
302
+ :return: None
303
+ :rtype: N/A
304
+
305
+ .. ven:function:: MOVE_ChannelsToSequencePosition(device ML_STAR, variable i_str_ChPattern, sequence i_seq_Positions, variable i_flt_ZHeight)
306
+
307
+ This function moves the 1mL channels to set positions. This function will only move the channels that are activated by the channel pattern. The positions in the sequence will skip over the positions where the channel is turned off.
308
+
309
+ :params ML_STAR: The ML_STAR itself, will be the only option in the dropdown
310
+ :params i_str_ChPattern: The channel pattern of the pipettes to move
311
+ :params i_seq_Positions: The X Y positions to move the channels to
312
+ :params i_flt_ZHeight: The Z positions to end the channels in
313
+ :type ML_STAR: Device
314
+ :type i_str_ChPattern: Variable
315
+ :type i_seq_Positions: Sequence
316
+ :type i_flt_ZHeight: Variable
317
+ :return: None
318
+ :rtype: N/A
319
+
320
+ .. ven:function:: MOVE_ChannelsToSequencePosition_5mL(device ML_STAR, variable i_str_ChPattern, sequence i_seq_Positions, variable i_flt_ZHeight)
321
+
322
+ This function moves the 5mL channels to set positions. This function will only move the channels that are activated by the channel pattern. The positions in the sequence will skip over the positions where the channel is turned off.
323
+
324
+ :params ML_STAR: The ML_STAR itself, will be the only option in the dropdown
325
+ :params i_str_ChPattern: The channel pattern of the pipettes to move
326
+ :params i_seq_Positions: The X Y positions to move the channels to
327
+ :params i_flt_ZHeight: The Z positions to end the channels in
328
+ :type ML_STAR: Device
329
+ :type i_str_ChPattern: Variable
330
+ :type i_seq_Positions: Sequence
331
+ :type i_flt_ZHeight: Variable
332
+ :return: None
333
+ :rtype: N/A
334
+
335
+ .. ven:function:: MOVE_CheckPlateWithTwoChannels(device ML_STAR, variable i_int_FrontMostChannel, sequence i_seq_PlateToCheck, variable i_flt_TapWidth)
336
+
337
+ This function will take the front most channel and the channel behind it to tap the labware at the sequence position. This function requires both channels to either have a tip or tool loaded on them before calling.
338
+
339
+ :params ML_STAR: The ML_STAR itself, will be the only option in the dropdown
340
+ :params i_int_FrontMostChannel: The front-most channel being used to check plates
341
+ :params i_seq_PlateToCheck: The sequence position to perform a tap to check for plate existence
342
+ :params i_flt_TapWidth: The distance in mm for the channels to be separated before tapping
343
+ :type ML_STAR: Device
344
+ :type i_int_FrontMostChannel: Variable
345
+ :type i_seq_PlateToCheck: Sequence
346
+ :type i_flt_TapWidth: Variable
347
+ :return: Boolean determining whether plate was found (hslTrue) or not (hslFalse)
348
+ :rtype: Boolean
349
+
350
+ .. ven:function:: MOVE_InitDispenseDrive(device ML_STAR, variable i_int_ChannelNumber)
351
+
352
+ This function moves the dispense drive for the specified 1mL channel to its home position
353
+
354
+ :params ML_STAR: The ML_STAR itself, will be the only option in the dropdown
355
+ :params i_int_ChannelNumber: The channel to initialise the dispense drive
356
+ :type ML_STAR: Device
357
+ :type i_int_ChannelNumber: Variable
358
+ :return: None
359
+ :rtype: N/A
360
+
361
+ .. ven:function:: MOVE_InitDispenseDrive_5mL(device ML_STAR, variable i_int_ChannelNumber)
362
+
363
+ This function moves the dispense drive for the specified 5mL channel to its home position
364
+
365
+ :params ML_STAR: The ML_STAR itself, will be the only option in the dropdown
366
+ :params i_int_ChannelNumber: The channel to initialise the dispense drive
367
+ :type ML_STAR: Device
368
+ :type i_int_ChannelNumber: Variable
369
+ :return: None
370
+ :rtype: N/A
371
+
372
+ .. ven:function:: PLATE_STACK_CountPlateStacks(device ML_STAR, sequence i_seq_PlateStack_Full, sequence o_seq_PlateStack_Count, variable o_int_PlateCount)
373
+
374
+ This function will use the channels to measure the number of plates in a plate stack
375
+
376
+ :params ML_STAR: The ML_STAR itself, will be the only option in the dropdown
377
+ :params i_seq_PlateStack_Full: The full sequence of the plate stack to measure
378
+ :params o_seq_PlateStack_Count: The sequence of the plate stack measured
379
+ :params o_int_PlateCount: The total number of plates measured in the plate stack
380
+ :type ML_STAR: Device
381
+ :type i_seq_PlateStack_Full: Sequence
382
+ :type o_seq_PlateStack_Count: Sequence
383
+ :type o_int_PlateCount: Variable
384
+ :return: None
385
+ :rtype: N/A
386
+
387
+ .. ven:function:: QUERY_GetChannelPosition(device ML_STAR, variable i_int_ChNumber, variable o_flt_XCoord, variable o_flt_YCoord, variable o_flt_ZCoord)
388
+
389
+ This function will return the current coordinate of the specified 1mL channel
390
+
391
+ :params ML_STAR: The ML_STAR itself, will be the only option in the dropdown
392
+ :params i_int_ChNumber: The number of the channel whose position is being checked
393
+ :params o_flt_XCoord: The X coordinate of the channel
394
+ :params o_flt_YCoord: The Y coordinate of the channel
395
+ :params o_flt_ZCoord: The Z coordinate of the channel
396
+ :type ML_STAR: Device
397
+ :type i_int_ChNumber: Variable
398
+ :type o_flt_XCoord: Variable
399
+ :type o_flt_YCoord: Variable
400
+ :type o_flt_ZCoord: Variable
401
+ :return: None
402
+ :rtype: N/A
403
+
404
+ .. ven:function:: QUERY_GetChannelPosition_5mL(device ML_STAR, variable i_int_ChNumber, variable o_flt_XCoord, variable o_flt_YCoord, variable o_flt_ZCoord)
405
+
406
+ This function will return the current coordinate of the specified 5mL channel
407
+
408
+ :params ML_STAR: The ML_STAR itself, will be the only option in the dropdown
409
+ :params i_int_ChNumber: The number of the channel whose position is being checked
410
+ :params o_flt_XCoord: The X coordinate of the channel
411
+ :params o_flt_YCoord: The Y coordinate of the channel
412
+ :params o_flt_ZCoord: The Z coordinate of the channel
413
+ :type ML_STAR: Device
414
+ :type i_int_ChNumber: Variable
415
+ :type o_flt_XCoord: Variable
416
+ :type o_flt_YCoord: Variable
417
+ :type o_flt_ZCoord: Variable
418
+ :return: None
419
+ :rtype: N/A
420
+
421
+ .. ven:function:: QUERY_GetTipPresentState(device ML_STAR, variable i_int_ChNumber, variable o_bln_TipPresent)
422
+
423
+ This function outputs true if a tip is loaded and false if a tip is not loaded on the specified 1mL channel
424
+
425
+ :params ML_STAR: The ML_STAR itself, will be the only option in the dropdown
426
+ :params i_int_ChNumber: The number of the channel which is being checked
427
+ :params o_bln_TipPresent: A boolean output of whether the tip is present (hslTrue) or not (hslFalse)
428
+ :type ML_STAR: Device
429
+ :type i_int_ChNumber: Variable
430
+ :type o_bln_TipPresent: Variable
431
+ :return: None
432
+ :rtype: N/A
433
+
434
+ .. ven:function:: QUERY_GetTipPresentState_5mL(device ML_STAR, variable i_int_ChNumber, variable o_bln_TipPresent)
435
+
436
+ This function outputs true if a tip is loaded and false if a tip is not loaded on the specified 5mL channel
437
+
438
+ :params ML_STAR: The ML_STAR itself, will be the only option in the dropdown
439
+ :params i_int_ChNumber: The number of the channel which is being checked
440
+ :params o_bln_TipPresent: A boolean output of whether the tip is present (hslTrue) or not (hslFalse)
441
+ :type ML_STAR: Device
442
+ :type i_int_ChNumber: Variable
443
+ :type o_bln_TipPresent: Variable
444
+ :return: None
445
+ :rtype: N/A
446
+
447
+ .. ven:function:: QUERY_GetTipVolume(device ML_STAR, variable i_int_ChNumber, variable o_flt_MaxVolume, variable o_flt_CurrentChannelVolume)
448
+
449
+ This function queries the specified 1mL channel to get the max and the current channel volume. This volume includes the air gap and the conversion made by the correction curve.
450
+
451
+ :params ML_STAR: The ML_STAR itself, will be the only option in the dropdown
452
+ :params i_int_ChNumber: The number of the channel which is being checked
453
+ :params o_flt_MaxVolume: The maximum volume of the channel
454
+ :params o_flt_CurrentChannelVolume: The current volume in the channel
455
+ :type ML_STAR: Device
456
+ :type i_int_ChNumber: Variable
457
+ :type o_flt_MaxVolume: Variable
458
+ :type o_flt_CurrentChannelVolume: Variable
459
+ :return: None
460
+ :rtype: N/A
461
+
462
+ .. ven:function:: QUERY_GetTipVolume(device ML_STAR, variable i_int_ChNumber, variable o_flt_MaxVolume, variable o_flt_CurrentChannelVolume)
463
+
464
+ This function queries the specified 5mL channel to get the max and the current channel volume. This volume includes the air gap and the conversion made by the correction curve.
465
+
466
+ :params ML_STAR: The ML_STAR itself, will be the only option in the dropdown
467
+ :params i_int_ChNumber: The number of the channel which is being checked
468
+ :params o_flt_MaxVolume: The maximum volume of the channel
469
+ :params o_flt_CurrentChannelVolume: The current volume in the channel
470
+ :type ML_STAR: Device
471
+ :type i_int_ChNumber: Variable
472
+ :type o_flt_MaxVolume: Variable
473
+ :type o_flt_CurrentChannelVolume: Variable
474
+ :return: None
475
+ :rtype: N/A
476
+
477
+ .. ven:function:: SPLIT_WELLS_AddContainersToWell(device ML_STAR, sequence i_seq_SequenceToSplit, variable i_int_SequenceIndex, variable i_int_MaxSplitNumber, sequence io_seq_SplitSequence)
478
+
479
+ This function will split a well into a sequence of multiple containers, each of which can be aspirated from individually.
480
+
481
+ :params ML_STAR: The ML_STAR itself, will be the only option in the dropdown
482
+ :params i_seq_SequenceToSplit: The sequence that contains the well to be split into multiple containers
483
+ :params i_int_SequenceIndex: The index of the sequence that is to be split into multiple containers
484
+ :params i_int_MaxSplitNumber: The number of times that the selected container will be split. Won't exceed the width of the well
485
+ :params io_seq_SplitSequence: The sequence containing the split wells. Will append to the end of the sequence.
486
+ :type ML_STAR: Device
487
+ :type i_seq_SequenceToSplit: Sequence
488
+ :type i_int_SequenceIndex: Variable
489
+ :type i_int_MaxSplitNumber: Variable
490
+ :type io_seq_SplitSequence: Sequence
491
+ :return: None
492
+ :rtype: N/A
493
+
494
+ .. ven:function:: SPLIT_WELLS_Remove_Containers(device ML_STAR, variable i_bool_UpdateVolumes)
495
+
496
+ This function will remove the containers added by the split wells function
497
+
498
+ :params ML_STAR: The ML_STAR itself, will be the only option in the dropdown
499
+ :params i_bool_UpdateVolume: A boolean determining whether to update the split source volume with the volume set in sample tracking.
500
+ :type ML_STAR: Device
501
+ :type i_bool_UpdateVolume: Boolean
502
+ :return: None
503
+ :rtype: N/A
504
+
505
+ .. ven:function:: TRAVEL_LANES_MoveChannelsToTravelLanes(device ML_STAR)
506
+
507
+ This function will move the 1mL channels to the travel lanes
508
+
509
+ :params ML_STAR: The ML_STAR itself, will be the only option in the dropdown
510
+ :type ML_STAR: Device
511
+ :return: None
512
+ :rtype: N/A
513
+
514
+ .. ven:function:: TRAVEL_LANES_MoveChannelsToTravelLanes_5mL(device ML_STAR)
515
+
516
+ This function will move the 5mL channels to the travel lanes
517
+
518
+ :params ML_STAR: The ML_STAR itself, will be the only option in the dropdown
519
+ :type ML_STAR: Device
520
+ :return: None
521
+ :rtype: N/A
522
+
523
+ .. ven:function:: TRAVEL_LANES_MoveChannelsToYPosition(device ML_STAR, sequence i_seq_TargetSequence, variable i_flt_XOffsetFromOrigin)
524
+
525
+ Parameters include the Instrument, a destination sequence, and whether or not a shift in the x-direction is wanted before moving the 1mL channels in y-direction (to doubly ensure no crossver of open wells). Channels will be moved to their Y coordinates at the X origin of the next labware in the sequence plus the X offset. The channels will move to the current position of the input Sequence.
526
+
527
+ :params ML_STAR: The ML_STAR itself, will be the only option in the dropdown
528
+ :params i_seq_TargetSequence: The sequence to move the channels to
529
+ :params i_flt_XOffsetFromOrigin: The distance from the plate's origin to start the channel approach
530
+ :type ML_STAR: Device
531
+ :type i_seq_TargetSequence: Sequence
532
+ :type i_flt_XOffsetFromOrigin: Variable
533
+ :return: None
534
+ :rtype: N/A
535
+
536
+ .. ven:function:: TRAVEL_LANES_MoveChannelsToYPosition_5mL(device ML_STAR, sequence i_seq_TargetSequence, variable i_flt_XOffsetFromOrigin)
537
+
538
+ Parameters include the Instrument, a destination sequence, and whether or not a shift in the x-direction is wanted before moving the 5mL channels in y-direction (to doubly ensure no crossver of open wells). Channels will be moved to their Y coordinates at the X origin of the next labware in the sequence plus the X offset. The channels will move to the current position of the input Sequence.
539
+
540
+ :params ML_STAR: The ML_STAR itself, will be the only option in the dropdown
541
+ :params i_seq_TargetSequence: The sequence to move the channels to
542
+ :params i_flt_XOffsetFromOrigin: The distance from the plate's origin to start the channel approach
543
+ :type ML_STAR: Device
544
+ :type i_seq_TargetSequence: Sequence
545
+ :type i_flt_XOffsetFromOrigin: Variable
546
+ :return: None
547
+ :rtype: N/A
548
+
549
+ .. ven:function:: TRAVEL_LANES_MoveChannelsWithTravelLanes(device ML_STAR, sequence i_seq_TargetSequence, variable i_flt_XOffsetFromOrigin)
550
+
551
+ This command is designed to shift all the 1mL channels on the instrument to either the front and/or the back of the instrument in a layout that ensures tips will not crossover any carriers. Parameters include the Instrument, a destination sequence, and whether or not a shift in the x-direction is wanted before moving the channels in y-direction (to doubly ensure no crossver of open wells). Channels will be moved to their Y coordinates at the X origin of the next labware in the sequence plus the X offset. The channels will move to the current position of the input Sequence.
552
+
553
+ :params ML_STAR: The ML_STAR itself, will be the only option in the dropdown
554
+ :params i_seq_TargetSequence: The sequence to move the channels to
555
+ :params i_flt_XOffsetFromOrigin: The distance from the plate's origin to start the channel approach
556
+ :type ML_STAR: Device
557
+ :type i_seq_TargetSequence: Sequence
558
+ :type i_flt_XOffsetFromOrigin: Variable
559
+ :return: None
560
+ :rtype: N/A
561
+
562
+ .. ven:function:: TRAVEL_LANES_MoveChannelsWithTravelLanes_5mL(device ML_STAR, sequence i_seq_TargetSequence, variable i_flt_XOffsetFromOrigin)
563
+
564
+ This command is designed to shift all the 5mL channels on the instrument to either the front and/or the back of the instrument in a layout that ensures tips will not crossover any carriers. Parameters include the Instrument, a destination sequence, and whether or not a shift in the x-direction is wanted before moving the channels in y-direction (to doubly ensure no crossver of open wells). Channels will be moved to their Y coordinates at the X origin of the next labware in the sequence plus the X offset. The channels will move to the current position of the input Sequence.
565
+
566
+ :params ML_STAR: The ML_STAR itself, will be the only option in the dropdown
567
+ :params i_seq_TargetSequence: The sequence to move the channels to
568
+ :params i_flt_XOffsetFromOrigin: The distance from the plate's origin to start the channel approach
569
+ :type ML_STAR: Device
570
+ :type i_seq_TargetSequence: Sequence
571
+ :type i_flt_XOffsetFromOrigin: Variable
572
+ :return: None
573
+ :rtype: N/A
574
+
575
+ .. ven:function:: TRAVEL_LANES_SingleSource_ChannelDisplacement(device ML_STAR, variable i_strStepReturn)
576
+
577
+ This command is designed to move unused 1mL channels to the back of the instrument when pipetting one well at a time while more than one channel has tips/liquid. It requires the Instrument type and Step Return variable from the Aspirate/Dispense step (this is used to determine which channel needs to be moved).
578
+
579
+ :params ML_STAR: The ML_STAR itself, will be the only option in the dropdown
580
+ :params i_strStepReturn: The bound step return from given desired pipetting step
581
+ :type ML_STAR: Device
582
+ :type i_strStepReturn: Variable
583
+ :return: None
584
+ :rtype: N/A
585
+
586
+ .. ven:function:: TRAVEL_LANES_SingleSource_ChannelDisplacement_5mL(device ML_STAR, variable i_strStepReturn)
587
+
588
+ This command is designed to move unused 5mL channels to the back of the instrument when pipetting one well at a time while more than one channel has tips/liquid. It requires the Instrument type and Step Return variable from the Aspirate/Dispense step (this is used to determine which channel needs to be moved).
589
+
590
+ :params ML_STAR: The ML_STAR itself, will be the only option in the dropdown
591
+ :params i_strStepReturn: The bound step return from given desired pipetting step
592
+ :type ML_STAR: Device
593
+ :type i_strStepReturn: Variable
594
+ :return: None
595
+ :rtype: N/A
VenusLibraryDocumentation-DocsForGPT/docs/source/StrTokenize.rst ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ StrTokenize
2
+ =====================
3
+
4
+ https://github.com/theonetruenerd/VenusPackages/blob/main/StrTokenize.pkg
5
+
6
+ The string tokenize library allows you to split a string into an array based on delimiters. It adds one function:
7
+
8
+ - :ven:func:`StrTokenize`
9
+
10
+ .. ven:function:: StrTokenize(variable strIn, variable strDelimiter, array arrTokens, boolean bAttendEmptyTokens)
11
+
12
+ This function takes the input string and splits it at any point where it finds the specified delimiter, returning the substrings as members of an array. Can be told to add empty strings or not (occurs when the delimiter appears twice in a row).
13
+
14
+ :params strIn: The input string to be split
15
+ :params strDelimiter: The character to be used as the delimiter
16
+ :params arrTokens: The output array of split-substrings
17
+ :params bAttendEmptyTokens: Boolean determining whether to include empty substrings or not in the array
18
+ :type strIn: Variable
19
+ :type strDelimiter: Variable
20
+ :type arrTokens: Array
21
+ :type bAttendEmptyTokens: Variable
22
+ :return: None
23
+ :rtype: N/A
VenusLibraryDocumentation-DocsForGPT/docs/source/String.rst ADDED
@@ -0,0 +1,83 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ String (from HSLExtensions)
2
+ ===================================
3
+
4
+ https://github.com/theonetruenerd/VenusPackages/blob/main/String.pkg
5
+
6
+ The String library from HSLExtensions adds a few functions to facilitate easier manipulation of strings. It adds the following functions:
7
+
8
+ - :ven:func:`ConvertToAsciiArray`
9
+ - :ven:func:`ConvertToCharArray`
10
+ - :ven:func:`FromAsciiArray`
11
+ - :ven:func:`Join`
12
+ - :ven:func:`JoinWithDelimiter`
13
+ - :ven:func:`Split`
14
+ - :ven:func:`Trim`
15
+
16
+ .. ven:function:: ConvertToAsciiArray(variable i_strValue)
17
+
18
+ This function converts the input string into an array with the regarding ASCII codes. If the input parameter is not a string the function returns an empty array.
19
+
20
+ :params i_strValue: The input string to be converted into an array
21
+ :type i_strValue: Variable
22
+ :return: An array of ASCII codes, or an empty array if the input parameter is not a string
23
+ :rtype: Array
24
+
25
+ .. ven:function:: ConvertToCharArray(variable i_strValue)
26
+
27
+ This function converts the input string into an array with the regarding characters. If the input parameter is not a string the function returns an empty array.
28
+
29
+ :params i_strValue: The input string to be converted into an array
30
+ :type i_strValue: Variable
31
+ :return: An array of characters (strings with length 1), or an empty array if the input parameter is not a string
32
+ :rtype: Array
33
+
34
+ .. ven:function:: FromAsciiArray(array i_arrAsciiValues)
35
+
36
+ This function converts an input array with ASCII codes into a string. If the input parameter is not an array with ASCII codes, the function returns an empty string.
37
+
38
+ :params i_arrAsciiValues: The input array of ASCII codes to be converted into a string
39
+ :type i_arrAsciiValues: Array
40
+ :return: The output string formed by the concatenation of the converted versions of the ASCII codes. An empty string if the input parameter is not an array with ASCII codes.
41
+ :rtype: Variable
42
+
43
+ .. ven:function:: Join(array i_arrValues)
44
+
45
+ This function joins an array of strings into a single string. Can be used to concatenate any number of strings into a single one. If the input parameter is not an array with strings, the function returns an empty string.
46
+
47
+ :params i_arrValues: The array of strings to be concatenated
48
+ :type i_arrValues: Array
49
+ :return: The concatenated form of all the strings in the array, or an empty string if the input parameter is not an array of strings
50
+ :rtype: Variable
51
+
52
+ .. ven:function:: JoinWithDelimiter(array i_arrValues, variable i_strDelimiter)
53
+
54
+ This function joins an array of strings into a single string and adds a delimiter between each substring. If the input parameter is not an array with strings, the function returns an empty string.
55
+
56
+ :params i_arrValues: The input array of strings to be concatenated
57
+ :params i_strDelimiter: The delimiter to be inserted between each substring
58
+ :type i_arrValues: Array
59
+ :type i_strDelimiter: Variable
60
+ :return: The concatenated strings from the array, with delimiters between each substring. An empty string if the input parameter is not an array of strings.
61
+ :rtype: Variable
62
+
63
+ .. ven:function:: Split(variable i_strValue, variable i_strDelimiter, variable i_bTrimWhitespaces)
64
+
65
+ This function splits a string into substrings, forming an array of strings. The input string is split based on a delimiter that the user inputs.
66
+
67
+ :params i_strValue: The input string to be split into substrings
68
+ :params i_strDelimiter: The delimiter to be used to split the string
69
+ :params i_bTrimWhitespaces: Boolean determining whether leading and trailing whitespaces will be removed or not
70
+ :type i_strValue: Variable
71
+ :type i_strDelimiter: Variable
72
+ :type i_bTrimWhitespaces: Boolean
73
+ :return: An array of strings containing each substring formed from splitting the original string
74
+ :rtype: Array
75
+
76
+ .. ven:function:: Trim(variable i_strValue)
77
+
78
+ This function trims leading and trailing whitespace characters from the input string. If the input parameter is not a string the function returns an empty string.
79
+
80
+ :params i_strValue: The input string to trim
81
+ :type i_strValue: Variable
82
+ :return: The trimmed string
83
+ :rtype: Variable
VenusLibraryDocumentation-DocsForGPT/docs/source/SyntaxErrors.rst ADDED
@@ -0,0 +1,97 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Syntax Errors
2
+ =========================
3
+
4
+ Syntax errors will show up during the analysis of the method and should prevent the method from running. The error code for a syntax error is 4 digits long and should show up along with the line of the HSL file causing the syntax error, whether that is the method or the library. This will then be followed by a line with the runtime error code for syntax errors being present, namely 0x23 - 0x2 - 0x35 (0xa2230035)
5
+
6
+ Venus Errors
7
+ ------------------------
8
+
9
+ - :ref:`1001 : Syntax error <1001>`
10
+ - :ref:`1002 : Syntax error before <1002>`
11
+ - :ref:`1101 : Missing period <1101>`
12
+ - :ref:`1102 : Missing semicolon <1102>`
13
+ - :ref:`1103 : Missing assignment <1103>`
14
+ - :ref:`1104 : Missing opening parenthesis <1104>`
15
+ - :ref:`1105 : Missing closing parenthesis <1105>`
16
+ - :ref:`1106 : Missing opening brace <1106>`
17
+ - :ref:`1107 : Missing closing brace <1107>`
18
+ - :ref:`1108 : Missing opening bracket <1108>`
19
+ - :ref:`1109 : Missing closing bracket <1109>`
20
+ - :ref:`1110 : Missing comma or closing parenthesis <1110>`
21
+ - :ref:`1111 : Missing comma or semicolon <1111>`
22
+ - :ref:`1112 : Missing statement <1112>`
23
+ - :ref:`1201 : Bad variable declaration <1201>`
24
+ - :ref:`1202 : Bad argument list <1202>`
25
+ - :ref:`1203 : Bad function name <1203>`
26
+ - :ref:`1204 : Bad member function name <1204>`
27
+ - :ref:`1205 : Bad argument name <1205>`
28
+ - :ref:`1206 : Bad statement <1206>`
29
+ - :ref:`1207 : Bad structure name <1207>`
30
+ - :ref:`1208 : Bad variable name <1208>`
31
+ - :ref:`1209 : Bad subscript expression <1209>`
32
+ - :ref:`1210 : Bad member selection <1210>`
33
+ - :ref:`1211 : Bad argument statement <1211>`
34
+ - :ref:`1212 : Bad member declaration list <1212>`
35
+ - :ref:`1213 : Bad variable list <1213>`
36
+ - :ref:`1214 : Bad for expression <1214>`
37
+ - :ref:`1215 : Bad expression <1215>`
38
+ - :ref:`1216 : Bad file name <1216>`
39
+ - :ref:`1217 : Bad member declaration <1217>`
40
+ - :ref:`1218 : Bad block <1218>`
41
+ - :ref:`1219 : Bad number <1219>`
42
+ - :ref:`1220 : Bad program <1220>`
43
+ - :ref:`1221 : Bad array size <1221>`
44
+ - :ref:`1222 : Bad string expression <1222>`
45
+ - :ref:`1223 : Bad function reference <1223>`
46
+ - :ref:`1224 : Bad sequence expression <1224>`
47
+ - :ref:`1225 : Bad array expression <1225>`
48
+ - :ref:`1226 : Bad array type <1226>`
49
+ - :ref:`1227 : Bad constant <1227>`
50
+ - :ref:`1228 : Bad namespace name <1228>`
51
+ - :ref:`1229 : Bad object expression <1229>`
52
+ - :ref:`1230 : Bad timer expression <1230>`
53
+ - :ref:`1231 : Bad event expression <1231>`
54
+ - :ref:`1302 : Undeclared identifier <1302>`
55
+ - :ref:`1303 : Redefined identifier <1303>`
56
+ - :ref:`1304 : Redefined formal parameter <1304>`
57
+ - :ref:`1305 : Nested function definition <1305>`
58
+ - :ref:`1306 : Nested comments <1306>`
59
+ - :ref:`1307 : Unterminated character constant <1307>`
60
+ - :ref:`1308 : Unterminated string <1308>`
61
+ - :ref:`1309 : No method <1309>`
62
+ - :ref:`1310 : Redefined method <1310>`
63
+ - :ref:`1311 : Unexpected end of file <1311>`
64
+ - :ref:`1312 : Include file not found <1312>`
65
+ - :ref:`1313 : Internal error <1313>`
66
+ - :ref:`1314 : Empty statement <1314>`
67
+ - :ref:`1315 : Too many arguments <1315>`
68
+ - :ref:`1316 : Not a member function <1316>`
69
+ - :ref:`1317 : Wrong member function <1317>`
70
+ - :ref:`1318 : Not a data member <1318>`
71
+ - :ref:`1319 : L-value is not a structure identifier <1319>`
72
+ - :ref:`1320 : L-value is not an array identifier <1320>`
73
+ - :ref:`1321 : L-value is an array identifier <1321>`
74
+ - :ref:`1322 : L-value is structure identifier <1322>`
75
+ - :ref:`1323 : Integer divide by zero <1323>`
76
+ - :ref:`1324 : Not an L-value <1324>`
77
+ - :ref:`1325 : Handler undefined <1325>`
78
+ - :ref:`1326 : Handler redefined <1326>`
79
+ - :ref:`1327 : Type mismatch <1327>`
80
+ - :ref:`1328 : Layout file not found <1328>`
81
+ - :ref:`1329 : Too few arguments <1329>`
82
+ - :ref:`1330 : Instrument not registered <1330>`
83
+ - :ref:`1331 : Instrument needs a deck layout <1331>`
84
+ - :ref:`1332 : Instrument needs no deck layout <1332>`
85
+ - :ref:`1334 : Skipped block initialisation <1334>`
86
+ - :ref:`1335 : Parser token buffer overflow <1335>`
87
+ - :ref:`1336 : Name too long <1336>`
88
+ - :ref:`1337 : Type mismatch in formal parameter <1337>`
89
+ - :ref:`1338 : Type mismatch in return value <1338>`
90
+ - :ref:`1339 : Must return a value <1339>`
91
+ - :ref:`1340 : Redefined workflow <1340>`
92
+ - :ref:`1341 : Not schedulable <1341>`
93
+ - :ref:`1342 : Private object reference <1342>`
94
+ - :ref:`1343 : Private function reference <1343>`
95
+ - :ref:`1344 : Analyzing completed with error <1344>`
96
+ - :ref:`1345 : Lexer string buffer overflow <1345>`
97
+ - :ref:`1346 : Obsolete statement <1346>`
VenusLibraryDocumentation-DocsForGPT/docs/source/Tools_Library.rst ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Tools Library
2
+ ============================================
3
+
4
+ https://github.com/theonetruenerd/VenusPackages/blob/main/Tools_Library.pkg
5
+
6
+ The tools library is designed to add some QoL functions to Venus. It adds the following functions.
7
+
8
+ - :ven:func:`CalculateNumberOfTubesAndVolumePerTube`
9
+ - :ven:func:`Reformat_Sequence`
10
+ - :ven:func:`Reformat_ValuesForDialog`
11
+
12
+ .. ven:function:: CalculateNumberOfTubesAndVolumePerTube(variable i_str_ReagentName, variable i_int_NumberOfSamples, variable i_flt_VolumePerSample, variable i_flt_MaximumContainerVolume, variable i_flt_DeadLabwareVolume, variable i_flt_DeadVolumeReagent, variable o_int_NumberOfContainersNeeded, array o_arr_VolumesPerContainer, array o_arr_DescriptionForDialog)
13
+
14
+ This function calculates the number of containers needed for a reagent and the volume per container.
15
+
16
+ :params i_str_ReagentName: The name of the reagent being calculated
17
+ :params i_int_NumberOfSamples: The number of samples requiring the reagent
18
+ :params i_flt_VolumePerSample: The volume of reagent required for each sample
19
+ :params i_flt_MaximumContainerVolume: The maximum volume a single container can hold
20
+ :params i_flt_DeadVolumeLabware: The dead volume in the labware
21
+ :params i_flt_DeadVolumeReagent: The percentage dead volume of the reagent
22
+ :params o_int_NumberOfContainersNeeded: The calculated number of containers needed
23
+ :params o_arr_VolumesPerContainer: An array of the volumes required for each tube
24
+ :params o_arr_DescriptionForDialog: An array of the descriptions for the dialog
25
+ :type i_str_ReagentName: Variable
26
+ :type i_int_NumberOfSamples: Variable
27
+ :type i_flt_VolumePerSample: Variable
28
+ :type i_flt_MaximumContainerVolume: Variable
29
+ :type i_flt_DeadVolumeLabware: Variable
30
+ :type i_flt_DeadVolumeReagent: Variable
31
+ :type o_int_NumberOfContainersNeeded: Variable
32
+ :type o_arr_VolumesPerContainer: Array of variables
33
+ :type o_arr_DescriptionForDialog: Array of variables
34
+ :return: None
35
+ :rtype: N/A
36
+
37
+ .. ven:function:: Reformat_Sequence(sequence io_sequenceInput, variable i_intNumberOfPositions)
38
+
39
+ This function reformats a sequence to have as many positions as needed:
40
+ Source Sequence:
41
+ A1, B1
42
+
43
+ Total Number of positions needed = 4
44
+
45
+ Output Sequence:
46
+ A1, B1, A1, B1
47
+
48
+ :params io_sequenceInput: The sequence of interest
49
+ :params i_intNumberOfPositions: The number of positions required
50
+ :type io_sequenceInput: Sequence
51
+ :type i_intNumberOfPositions: Variable
52
+ :return: None
53
+ :rtype: N/A
54
+
55
+ .. ven:function:: Reformat_ValuesForDialog(variable i_flt_valueToReformat, variable o_str_valueFormatted)
56
+
57
+ This function translates floats into strings and gets rid of any trailing 0s. Use the output value to display volumes in dialogs only.
58
+
59
+ :params i_flt_valueToReformat: The float to turn into a string
60
+ :params o_str_valueFormatted: The output string after it has been converted from a float
61
+ :type i_flt_valueToReformat: Variable
62
+ :type o_str_valueFormatted: Variable
63
+ :return: None
64
+ :rtype: N/A
VenusLibraryDocumentation-DocsForGPT/docs/source/TraceLevel.txt ADDED
@@ -0,0 +1,262 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ TraceLevel
2
+ =================================
3
+
4
+ https://github.com/theonetruenerd/VenusPackages/blob/main/TraceLevel.pkg
5
+
6
+ The TraceLevel library adds a variety of functions related to the trace file. The functions it adds are:
7
+
8
+ - :ven:func:`GetTraceLevel`
9
+ - :ven:func:`SetTraceLevel`
10
+ - :ven:func:`SetStringIndicator`
11
+ - :ven:func:`Trace_02`
12
+ - :ven:func:`Trace_04`
13
+ - :ven:func:`Trace_06`
14
+ - :ven:func:`Trace_08`
15
+ - :ven:func:`Trace_10`
16
+ - :ven:func:`TraceArray`
17
+ - :ven:func:`TraceArrayHorizontally`
18
+ - :ven:func:`TraceArraysFaceToFace`
19
+ - :ven:func:`TraceSequence`
20
+ - :ven:func:`TraceSequenceParameter`
21
+ - :ven:func:`TraceSequencePositions`
22
+ - :ven:func:`TraceAction`
23
+ - :ven:func:`SetActionIndicator`
24
+
25
+ .. ven:function:: GetTraceLevel()
26
+
27
+ This function returns the current trace level.
28
+
29
+ :return: This function returns one of the following predefined constants; TRACE_LEVEL_NONE (0), which corresponds to no traces at all. TRACE_LEVEL_RELEASE (1), which corresponds to only items with release trace level being traced. TRACE_LEVEL_DEBUG (2), which corresponds to everything being traced.
30
+ :rtype: Variable
31
+
32
+ .. ven:function:: SetTraceLevel(variable i_intTraceLevel)
33
+
34
+ This function is used to set the trace level for the method or library.
35
+
36
+ :params i_intTraceLevel: The trace level for the library. Set to one of the following constants; TRACE_LEVEL_NONE (0), which corresponds to no traces at all. TRACE_LEVEL_RELEASE (1), which corresponds to only items with release trace level being traced. TRACE_LEVEL_DEBUG (2), which corresponds to everything being traced.
37
+ :type i_intTraceLevel: Variable (integer)
38
+ :return: None
39
+ :rtype: N/A
40
+
41
+ .. ven:function:: SetStringIndicator(variable i_strStringIndicatorCharacter)
42
+
43
+ This function is used to set one or more characters to indicate strings (by flanking them) in all traces. It can be useful to identify leading or trailing spaces in strings. You can do this by setting i_strStringIndicatorCharacter to \' or \*.
44
+
45
+ :params i_strStringIndicatorCharacter: Characters that are being added at the beginning and the end of each string trace.
46
+ :type i_strStringIndicatorCharacter: Variable
47
+ :return: None
48
+ :rtype: N/A
49
+
50
+ .. ven:function:: Trace_02(variable i_intTraceLevel, variable i_varToTrace_01, variable i_varToTrace_02)
51
+
52
+ This function is used to trace the value of 2 variables in one line. Will not automatically insert a space between the two variables.
53
+
54
+ :params i_intTraceLevel: The trace level for the entry. Can be set to either TRACE_LEVEL_RELEASE (1) or TRACE_LEVEL_DEBUG (2). If set to 1, the function will show up in the trace when the trace level is set to either TRACE_LEVEL_RELEASE or TRACE_LEVEL_DEBUG, if set to 2, the function will only show up when the trace level is TRACE_LEVEL_DEBUG.
55
+ :params i_varToTrace_01: The first variable to trace.
56
+ :params i_varToTrace_02: The second variable to trace.
57
+ :type i_intTraceLevel: Variable
58
+ :type i_varToTrace_01: Variable
59
+ :type i_varToTrace_02: Variable
60
+ :return: None
61
+ :rtype: N/A
62
+
63
+ .. ven:function:: Trace_04(variable i_intTraceLevel, variable i_varToTrace_01, variable i_varToTrace_02, variable i_varToTrace_03, variable i_varToTrace_04)
64
+
65
+ This function is used to trace the value of 4 variables in one line. Will not automatically insert a space between the variables.
66
+
67
+ :params i_intTraceLevel: The trace level for the entry. Can be set to either TRACE_LEVEL_RELEASE (1) or TRACE_LEVEL_DEBUG (2). If set to 1, the function will show up in the trace when the trace level is set to either TRACE_LEVEL_RELEASE or TRACE_LEVEL_DEBUG, if set to 2, the function will only show up when the trace level is TRACE_LEVEL_DEBUG.
68
+ :params i_varToTrace_01: The first variable to trace.
69
+ :params i_varToTrace_02: The second variable to trace.
70
+ :params i_varToTrace_03: The third variable to trace.
71
+ :params i_varToTrace_04: The fourth variable to trace.
72
+ :type i_intTraceLevel: Variable
73
+ :type i_varToTrace_01: Variable
74
+ :type i_varToTrace_02: Variable
75
+ :type i_varToTrace_03: Variable
76
+ :type i_varToTrace_04: Variable
77
+ :return: None
78
+ :rtype: N/A
79
+
80
+ .. ven:function:: Trace_06(variable i_intTraceLevel, variable i_varToTrace_01, variable i_varToTrace_02, variable i_varToTrace_03, variable i_varToTrace_04, variable i_varToTrace_05, variable i_varToTrace_06)
81
+
82
+ This function is used to trace the value of 6 variables in one line. Will not automatically insert a space between the variables.
83
+
84
+ :params i_intTraceLevel: The trace level for the entry. Can be set to either TRACE_LEVEL_RELEASE (1) or TRACE_LEVEL_DEBUG (2). If set to 1, the function will show up in the trace when the trace level is set to either TRACE_LEVEL_RELEASE or TRACE_LEVEL_DEBUG, if set to 2, the function will only show up when the trace level is TRACE_LEVEL_DEBUG.
85
+ :params i_varToTrace_01: The first variable to trace.
86
+ :params i_varToTrace_02: The second variable to trace.
87
+ :params i_varToTrace_03: The third variable to trace.
88
+ :params i_varToTrace_04: The fourth variable to trace.
89
+ :params i_varToTrace_05: The fifth variable to trace.
90
+ :params i_varToTrace_06: The sixth variable to trace.
91
+ :type i_intTraceLevel: Variable
92
+ :type i_varToTrace_01: Variable
93
+ :type i_varToTrace_02: Variable
94
+ :type i_varToTrace_03: Variable
95
+ :type i_varToTrace_04: Variable
96
+ :type i_varToTrace_05: Variable
97
+ :type i_varToTrace_06: Variable
98
+ :return: None
99
+ :rtype: N/A
100
+
101
+ .. ven:function:: Trace_08(variable i_intTraceLevel, variable i_varToTrace_01, variable i_varToTrace_02, variable i_varToTrace_03, variable i_varToTrace_04, variable i_varToTrace_05, variable i_varToTrace_06, variable i_varToTrace_07, variable i_varToTrace_08)
102
+
103
+ This function is used to trace the value of 8 variables in one line. Will not automatically insert a space between the variables.
104
+
105
+ :params i_intTraceLevel: The trace level for the entry. Can be set to either TRACE_LEVEL_RELEASE (1) or TRACE_LEVEL_DEBUG (2). If set to 1, the function will show up in the trace when the trace level is set to either TRACE_LEVEL_RELEASE or TRACE_LEVEL_DEBUG, if set to 2, the function will only show up when the trace level is TRACE_LEVEL_DEBUG.
106
+ :params i_varToTrace_01: The first variable to trace.
107
+ :params i_varToTrace_02: The second variable to trace.
108
+ :params i_varToTrace_03: The third variable to trace.
109
+ :params i_varToTrace_04: The fourth variable to trace.
110
+ :params i_varToTrace_05: The fifth variable to trace.
111
+ :params i_varToTrace_06: The sixth variable to trace.
112
+ :params i_varToTrace_07: The seventh variable to trace.
113
+ :params i_varToTrace_08: The eighth variable to trace.
114
+ :type i_intTraceLevel: Variable
115
+ :type i_varToTrace_01: Variable
116
+ :type i_varToTrace_02: Variable
117
+ :type i_varToTrace_03: Variable
118
+ :type i_varToTrace_04: Variable
119
+ :type i_varToTrace_05: Variable
120
+ :type i_varToTrace_06: Variable
121
+ :type i_varToTrace_07: Variable
122
+ :type i_varToTrace_08: Variable
123
+ :return: None
124
+ :rtype: N/A
125
+
126
+ .. ven:function:: Trace_10(variable i_intTraceLevel, variable i_varToTrace_01, variable i_varToTrace_02, variable i_varToTrace_03, variable i_varToTrace_04, variable i_varToTrace_05, variable i_varToTrace_06, variable i_varToTrace_07, variable i_varToTrace_08, variable i_varToTrace_09, variable i_varToTrace_10)
127
+
128
+ This function is used to trace the value of 10 variables in one line. Will not automatically insert a space between the variables.
129
+
130
+ :params i_intTraceLevel: The trace level for the entry. Can be set to either TRACE_LEVEL_RELEASE (1) or TRACE_LEVEL_DEBUG (2). If set to 1, the function will show up in the trace when the trace level is set to either TRACE_LEVEL_RELEASE or TRACE_LEVEL_DEBUG, if set to 2, the function will only show up when the trace level is TRACE_LEVEL_DEBUG.
131
+ :params i_varToTrace_01: The first variable to trace.
132
+ :params i_varToTrace_02: The second variable to trace.
133
+ :params i_varToTrace_03: The third variable to trace.
134
+ :params i_varToTrace_04: The fourth variable to trace.
135
+ :params i_varToTrace_05: The fifth variable to trace.
136
+ :params i_varToTrace_06: The sixth variable to trace.
137
+ :params i_varToTrace_07: The seventh variable to trace.
138
+ :params i_varToTrace_08: The eighth variable to trace.
139
+ :params i_varToTrace_09: The ninth variable to trace.
140
+ :params i_varToTrace_10: The tenth variable to trace.
141
+ :type i_intTraceLevel: Variable
142
+ :type i_varToTrace_01: Variable
143
+ :type i_varToTrace_02: Variable
144
+ :type i_varToTrace_03: Variable
145
+ :type i_varToTrace_04: Variable
146
+ :type i_varToTrace_05: Variable
147
+ :type i_varToTrace_06: Variable
148
+ :type i_varToTrace_07: Variable
149
+ :type i_varToTrace_08: Variable
150
+ :type i_varToTrace_09: Variable
151
+ :type i_varToTrace_10: Variable
152
+ :return: None
153
+ :rtype: N/A
154
+
155
+ .. ven:function:: TraceArray(variable i_intTraceLevel, variable i_strDescription, array i_arrvarToTrace)
156
+
157
+ This function is used to trace an array of variables. It will trace each value of the array in its own line, along with the array description and the index of the value.
158
+
159
+ :params i_intTraceLevel: The trace level for the entry. Can be set to either TRACE_LEVEL_RELEASE (1) or TRACE_LEVEL_DEBUG (2). If set to 1, the function will show up in the trace when the trace level is set to either TRACE_LEVEL_RELEASE or TRACE_LEVEL_DEBUG, if set to 2, the function will only show up when the trace level is TRACE_LEVEL_DEBUG.
160
+ :params i_strDescription: A description of the array, which will be at the start of each line of the array trace.
161
+ :params i_arrvarToTrace: The array to be traced.
162
+ :type i_intTraceLevel: Variable
163
+ :type i_strDescription: Variable
164
+ :type i_arrvarToTrace: Array (of variables)
165
+ :return: None
166
+ :rtype: N/A
167
+
168
+ .. ven:function:: TraceArrayHorizontally(variable i_intTraceLevel, variable i_strDescription, array i_arrvarToTrace)
169
+
170
+ This function is used to trace an array of variables. It will trace the array description, followed by each array index and value pair, all on one line.
171
+
172
+ :params i_intTraceLevel: The trace level for the entry. Can be set to either TRACE_LEVEL_RELEASE (1) or TRACE_LEVEL_DEBUG (2). If set to 1, the function will show up in the trace when the trace level is set to either TRACE_LEVEL_RELEASE or TRACE_LEVEL_DEBUG, if set to 2, the function will only show up when the trace level is TRACE_LEVEL_DEBUG.
173
+ :params i_strDescription: A description of the array, which will be at the start of the array trace.
174
+ :params i_arrvarToTrace: The array to be traced.
175
+ :type i_intTraceLevel: Variable
176
+ :type i_strDescription: Variable
177
+ :type i_arrvarToTrace: Array (of variables)
178
+ :return: None
179
+ :rtype: N/A
180
+
181
+ .. ven:function:: TraceArraysFaceToFace(variable i_intTraceLevel, variable i_strDescription_1, variable i_strDescription_2, array i_arrvarToTrace_1, array i_arrvarToTrace_2)
182
+
183
+ This function is used to trace two arrays of variables at the same time, with values at the same index being shown on the same line as one another.
184
+
185
+ :params i_intTraceLevel: The trace level for the entry. Can be set to either TRACE_LEVEL_RELEASE (1) or TRACE_LEVEL_DEBUG (2). If set to 1, the function will show up in the trace when the trace level is set to either TRACE_LEVEL_RELEASE or TRACE_LEVEL_DEBUG, if set to 2, the function will only show up when the trace level is TRACE_LEVEL_DEBUG.
186
+ :params i_strDescription_1: A description of the first array, which will be at the start of the array trace.
187
+ :params i_strDescription_2: A description of the second array, which will be at the start of the array trace.
188
+ :params i_arrvarToTrace_1: The first array to be traced.
189
+ :params i_arrvarToTrace_2: The second array to be traced.
190
+ :type i_intTraceLevel: Variable
191
+ :type i_strDescription_1: Variable
192
+ :type i_strDescription_2: Variable
193
+ :type i_arrvarToTrace_1: Array (of variables)
194
+ :type i_arrvarToTrace_2: Array (of variables)
195
+ :return: None
196
+ :rtype: N/A
197
+
198
+ .. ven:function:: TraceSequence(variable i_intTraceLevel, sequence i_seqToTrace)
199
+
200
+ This function is used to trace a sequence. It will list the sequence name, current position, the count and total positions in the sequence, the max number of positions available, and the number of used positions. It will then list the labware ID and position ID for each value of the sequence.
201
+
202
+ :params i_intTraceLevel: The trace level for the entry. Can be set to either TRACE_LEVEL_RELEASE (1) or TRACE_LEVEL_DEBUG (2). If set to 1, the function will show up in the trace when the trace level is set to either TRACE_LEVEL_RELEASE or TRACE_LEVEL_DEBUG, if set to 2, the function will only show up when the trace level is TRACE_LEVEL_DEBUG.
203
+ :params i_seqToTrace: The sequence to be traced
204
+ :type i_intTraceLevel: Variable
205
+ :type i_seqToTrace: Sequence
206
+ :return: None
207
+ :rtype: N/A
208
+
209
+ .. ven:function:: TraceSequenceParameter(variable i_intTraceLevel, sequence i_seqToTrace)
210
+
211
+ This function is used to trace the parameters of a sequence. It will list the sequence name, current position, the count and total positions in the sequence, the max number of positions available, and the number of used positions.
212
+
213
+ :params i_intTraceLevel: The trace level for the entry. Can be set to either TRACE_LEVEL_RELEASE (1) or TRACE_LEVEL_DEBUG (2). If set to 1, the function will show up in the trace when the trace level is set to either TRACE_LEVEL_RELEASE or TRACE_LEVEL_DEBUG, if set to 2, the function will only show up when the trace level is TRACE_LEVEL_DEBUG.
214
+ :params i_seqToTrace: The sequence to be traced
215
+ :type i_intTraceLevel: Variable
216
+ :type i_seqToTrace: Sequence
217
+ :return: None
218
+ :rtype: N/A
219
+
220
+ .. ven:function:: TraceSequencePositions(device ML_STAR, variable i_intTraceLevel, sequence i_seqToTrace, variable i_blnCurrentPositionOnly)
221
+
222
+ This function is used to trace the deck positions of a sequence. It will trace the sequence name, then for each part of the sequence it will trace the position ID and the x, y, z, and r coordinates of the position.
223
+
224
+ :params ML_STAR: The STAR device.
225
+ :params i_intTraceLevel: The trace level for the entry. Can be set to either TRACE_LEVEL_RELEASE (1) or TRACE_LEVEL_DEBUG (2). If set to 1, the function will show up in the trace when the trace level is set to either TRACE_LEVEL_RELEASE or TRACE_LEVEL_DEBUG, if set to 2, the function will only show up when the trace level is TRACE_LEVEL_DEBUG.
226
+ :params i_seqToTrace: The sequence to be traced
227
+ :params i_blnCurrentPositionOnly: A boolean determining whether the function will trace positions for all sequence positions (0) or just the current sequence position (1).
228
+ :type ML_STAR: Device
229
+ :type i_intTraceLevel: Variable
230
+ :type i_seqToTrace: Sequence
231
+ :type i_blnCurrentPositionOnly: Boolean
232
+ :return: None
233
+ :rtype: N/A
234
+
235
+ .. ven:function:: TraceAction(variable i_intTraceLevel, variable i_intAction, variable i_strFunctionName, variable i_strMethodName, variable i_strComment)
236
+
237
+ This function is used to trace different action states for a module. :ven:func:`SetActionIndicator` can be used to help identify actions in log files more easily.
238
+
239
+ :params i_intTraceLevel: The trace level for the entry. Can be set to either TRACE_LEVEL_RELEASE (1) or TRACE_LEVEL_DEBUG (2). If set to 1, the function will show up in the trace when the trace level is set to either TRACE_LEVEL_RELEASE or TRACE_LEVEL_DEBUG, if set to 2, the function will only show up when the trace level is TRACE_LEVEL_DEBUG.
240
+ :params i_intAction: The action to be traced. Set to one of the following constants. START (1) corresponds to the entry being traced as starting. COMPLETE (2) corresponds to the entry being traced as finished successfully. ERROR (3) corresponds to the entry being traced as error occurred. PROGRESS (4) corresponds to the entry being traced as progressing. COMPLETE_WITH_ERROR (5) corresponds to the entry being traced as finished unsuccessfully.
241
+ :params i_strFunctionName: The function name for the action trace. Can be set to the return value of the HSL function *GetFunctionName*, which will automatically be formatted correctly.
242
+ :params i_strMethodName: The method name for the action trace. Can be set to the return value of the HSL function *GetMethodFileName*, which will automatically be formatted correctly.
243
+ :params i_strComment: A comment to be traced with the action trace.
244
+ :type i_intTraceLevel: Variable
245
+ :type i_intAction: Variable
246
+ :type i_strFunctionName: Variable
247
+ :type i_strMethodName: Variable
248
+ :type i_strComment: Variable
249
+ :return: None
250
+ :rtype: N/A
251
+
252
+ .. ven:function:: SetActionIndicator(variable i_intAction, variable i_strIndicator)
253
+
254
+ This function is used to set one or more characters to indicate actions. By setting *i_strIndicator* to different characters you can make it easy to identify different actions in the trace.
255
+
256
+ :params i_intAction: The action to be traced. Set to one of the following constants. START (1) corresponds to the entry being traced as starting. COMPLETE (2) corresponds to the entry being traced as finished successfully. ERROR (3) corresponds to the entry being traced as error occurred. PROGRESS (4) corresponds to the entry being traced as progressing. COMPLETE_WITH_ERROR (5) corresponds to the entry being traced as finished unsuccessfully.
257
+ :params i_strIndicator: Character(s) that are being repeated at a total length of up to 100 and traced before and after the action trace.
258
+ :type: i_intAction: Variable
259
+ :type i_strIndicator: Variable
260
+ :return: None
261
+ :rtype: N/A
262
+
VenusLibraryDocumentation-DocsForGPT/docs/source/Windows.txt ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Windows (from HSLExtensions)
2
+ =========================================
3
+
4
+ https://github.com/theonetruenerd/VenusPackages/blob/main/Windows.pkg
5
+
6
+ The windows library from HSLExtensions adds functions related to registries and special directories. The functions it adds are as follows:
7
+
8
+ - :ven:func:`GetRegistryValue`
9
+ - :ven:func:`GetSpecialDirectory`
10
+ - :ven:func:`SetRegistryValue`
11
+
12
+ .. ven:function:: GetRegistryValue(variable i_intHKey, variable i_strKey, variable i_strValueName, variable o_varValue)
13
+
14
+ This function reads a value from the specified registry
15
+
16
+ :params i_intHKey: The main key of the registry. 1 = ClassesRoot, 2 = CurrentUser, 3 = LocalMachine, 4 = Users, 5 = CurrentConfig.
17
+ :params i_strKey: The key to the path (e.g. SOFTWARE\Phoenix\Directories\Methods)
18
+ :params i_strValueName: The name of the value to be read
19
+ :params o_varValue: The value which was read (type according to value type)
20
+ :type i_intHKey: Integer
21
+ :type i_strKey: String
22
+ :type i_strValueName: String
23
+ :type o_varValue: Variable
24
+ :return: Boolean showing whether the key exists (hslTrue) or not (hslFalse)
25
+ :rtype: Boolean
26
+
27
+ .. ven:function:: GetSpecialDirectory(variable i_intSpecialDirectory)
28
+
29
+ This function gets the specified special directory
30
+
31
+ :params i_intSpecialDirectory: The type of the special directory. 1 = WindowsDirectory, 2 = SystemDirectory, 3 = TemporaryDirectory.
32
+ :type i_intSpecialDirectory: Integer
33
+ :return: The special directory
34
+ :rtype: String
35
+
36
+ .. ven:function:: SetRegistryValue(variable i_intHKey, variable i_strKey, variable i_strValueName, variable i_varValue, variable i_intValueType)
37
+
38
+ This function writes a value to the specified registry
39
+
40
+ :params i_intHKey: The main key of the registry. 1 = ClassesRoot, 2 = CurrentUser, 3 = LocalMachine, 4 = Users, 5 = CurrentConfig.
41
+ :params i_strKey: The key to the path (e.g. SOFTWARE\Phoenix\Directories\Methods)
42
+ :params i_strValueName: The name of the value to be read
43
+ :params i_varValue: The value which was will be written in
44
+ :params i_intValueType: The type of the value. 1 = String, 2 = Number, 3 = Binary, 4 = ExpandableString
45
+ :type i_intHKey: Integer
46
+ :type i_strKey: String
47
+ :type i_strValueName: String
48
+ :type o_varValue: Variable
49
+ :return: Boolean showing whether the function was successful (hslTrue) or not (hslFalse)
50
+ :rtype: Boolean
VenusLibraryDocumentation-DocsForGPT/docs/source/ZerouLScanner.txt ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Zero uL Scanner
2
+ =========================
3
+
4
+ https://github.com/theonetruenerd/VenusPackages/blob/main/ZerouLScanner.pkg
5
+
6
+ The zero uL scanner library adds a single function which is designed to be added at the end of a method. It scans the trace file for any steps in which 0uL was pipetted and returns the number of times that happened. This is to check for steps where (for example) it is pipetting a volume based on a variable, and there is a spelling mistake in the variable, or the variable isn't defined correctly. It will work in both simulation mode and normal mode.
7
+
8
+ - :ven:func:`CheckFor0s`
9
+
10
+ .. ven:function:: CheckFor0s()
11
+
12
+ This function checks for any steps in which 0uL has been pipetted and returns the number of times that has happened.
13
+
14
+ :return: Number of times 0uL has been pipetted
15
+ :rtype: Variable
VenusLibraryDocumentation-DocsForGPT/docs/source/conf.py ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Configuration file for the Sphinx documentation builder.
2
+
3
+ # -- Project information
4
+
5
+ project = 'Venus Documentation'
6
+ # copyright = 'None'
7
+ author = 'TChapman'
8
+
9
+ release = '0.1'
10
+ version = '0.1.0'
11
+
12
+ # -- General configuration
13
+
14
+ extensions = [
15
+ 'sphinx.ext.duration',
16
+ 'sphinx.ext.doctest',
17
+ 'sphinx.ext.autodoc',
18
+ 'sphinx.ext.autosummary',
19
+ 'sphinx.ext.intersphinx',
20
+ ]
21
+
22
+ intersphinx_mapping = {
23
+ 'python': ('https://docs.python.org/3/', None),
24
+ 'sphinx': ('https://www.sphinx-doc.org/en/master/', None),
25
+ }
26
+ intersphinx_disabled_domains = ['std']
27
+
28
+ templates_path = ['_templates']
29
+
30
+ # -- Options for HTML output
31
+
32
+ html_theme = 'sphinx_rtd_theme'
33
+
34
+ html_theme_options = {'body_max_width': '40%'}
35
+
36
+ epub_show_urls = 'footnote'
VenusLibraryDocumentation-DocsForGPT/docs/source/index.rst ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Welcome to Venus's documentation!
2
+ ===================================
3
+
4
+ **Venus** is a coding language wrapper used in the coding of Hamilton Microlab STARs and similar devices.
5
+ This is the consolidated unofficial documentation for Venus 4 as well as its libraries, compiled from official sources as well as personal troubleshooting.
6
+
7
+ **This is not an official Hamilton resource**
8
+
9
+ .. note::
10
+
11
+ This project is under active development. If any issues or mistakes are found, please comment or contact me directly at tarunchapman@hotmail.com.
12
+ General place to download libraries: https://github.com/theonetruenerd/VenusPackages
13
+
14
+ .. toctree::
15
+
16
+ :caption: Documented Libraries
17
+ :titlesonly:
18
+
19
+ venus
20
+ ErrorCodes
21
+ ASWGlobal
22
+ Aliquot_for_EasySteps_v2
23
+ Aliquot_with_EasySteps
24
+ Array
25
+ ArrayTools
26
+ CheckCarrierPresence_v2
27
+ ColourSchemeLibrary
28
+ ConvertFileToASCII
29
+ DebugAssist
30
+ EditFileAttributes
31
+ ErrorReportLibrary
32
+ ErrorSimulator
33
+ Framework
34
+ HSLDeckVisualize
35
+ HSLFilLib
36
+ HSLFilLibEx
37
+ HSLStatistics
38
+ HSLStrLib
39
+ HSLZipLib
40
+ HSL_SeqDailyTools
41
+ If_And_If_Or
42
+ Labware_Properties
43
+ Lookup
44
+ Pipetting
45
+ RemoveTextDelimitersFromAsciiTextFile
46
+ STAR_Channel_Tools
47
+ StrTokenize
48
+ String
49
+ Tools_Library
50
+ TraceLevel
51
+ Windows
52
+ ZerouLScanner
VenusLibraryDocumentation-DocsForGPT/docs/source/venus.txt ADDED
@@ -0,0 +1,279 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Venus
2
+ ==============================================
3
+
4
+ This section aims to cover the *functions* that Venus can run. Documentation on more general principles of Venus, including things like the liquid editor and labware editor, will be found separately.
5
+
6
+ Venus functions are organised into several sections. These are the following:
7
+
8
+
9
+ - :ref:`General Steps`
10
+ - :ref:`Scheduler Steps`
11
+ - :ref:`Custom Dialog Steps`
12
+ - :ref:`Favourites`
13
+ - :ref:`Templates`
14
+
15
+ There are also instrument specific functions in their own categories:
16
+
17
+ - :ref:`ML_STAR`
18
+ - :ref:`Microlab STAR Smart Steps`
19
+
20
+ .. General Steps
21
+
22
+ The general steps are composed of relatively standard coding functions that will be present in many other coding languages. These are not associated with the hardware of any instrument and are present on Venus regardless of whether you are using a STAR, a STARLet, or any other instrument which uses Venus. The functions which fall under general steps are listed below:
23
+
24
+ - :ven:func:`Comment`
25
+ - :ven:func:`Assignment`
26
+ - :ven:func:`Assignment with Calculation`
27
+ - :ven:func:`Loop`
28
+ - :ven:func:`Loop: Break`
29
+ - :ven:func:`If, Else`
30
+ - :ven:func:`Array: Declare / Set Size`
31
+ - :ven:func:`Array: Set At`
32
+ - :ven:func:`Array: Get At`
33
+ - :ven:func:`Array: Get Size`
34
+ - :ven:func:`Array: Copy`
35
+ - :ven:func:`Sequence: Get Current Position`
36
+ - :ven:func:`Sequence: Set Current Position`
37
+ - :ven:func:`Sequence: Get End Position`
38
+ - :ven:func:`Sequence: Set End Position`
39
+ - :ven:func:`Adjust Sequences`
40
+ - :ven:func:`File: Open`
41
+ - :ven:func:`File: Read`
42
+ - :ven:func:`File: Write`
43
+ - :ven:func:`File: Set Position`
44
+ - :ven:func:`File: Close`
45
+ - :ven:func:`Timer: Start`
46
+ - :ven:func:`Timer: Wait for`
47
+ - :ven:func:`Timer: Read Elapsed Time`
48
+ - :ven:func:`Timer: Restart`
49
+ - :ven:func:`User Input`
50
+ - :ven:func:`User Output`
51
+ - :ven:func:`Shell`
52
+ - :ven:func:`Set Event`
53
+ - :ven:func:`Wait for Event`
54
+ - :ven:func:`Return`
55
+ - :ven:func:`Abort`
56
+ - :ven:func:`Error Handling by the User`
57
+ - :ven:func:`Begin Parallel`
58
+ - :ven:func:`End Parallel`
59
+
60
+ .. Scheduler Steps
61
+
62
+ The scheduler steps are functions which arrange the method to be executed on a number of resources and submitted to capacity, time and precedence relations in a way that fulfils the optimality criteria. The methods and its activation criterions are defined in a workflow.
63
+
64
+ The Schedule process is divided into two phases: scheduling and executing. The scheduler functions are listed below:
65
+
66
+ - :ven:func:`Select Method`
67
+ - :ven:func:`Activate Task`
68
+ - :ven:func:`Cancel Task`
69
+ - :ven:func:`Schedule Block`
70
+ - :ven:func:`Reschedule`
71
+
72
+ .. Custom Dialog Steps
73
+
74
+ The custom dialog steps only adds the :ven:func:`Custom Dialog` function, which allows creation of more complicated dialogs than the standard :ven:func:`User Input` and :ven:func:`User Output` functions.
75
+
76
+ .. Favourites
77
+
78
+ The favourites drop-down allows you to select functions which you use frequently to be in their own separate tab so that they are easier to find. These steps will be favourited on every method.
79
+
80
+ .. Templates
81
+
82
+ Templates add the ability to preprogram commonly used functions and processes/sets of functions so that the user doesn't have to write them freshly every time. An example might be a tip pickup step with all the parameters for pickup already programmed in so you don't have to fill them in, or a bulk creation of arrays for an ASW Dialog.
83
+
84
+ .. ML_STAR
85
+
86
+ The ML_STAR section adds the core functions which interact with the ML_STAR itself, which is anything that interacts with the hardware or firmware of the STAR. They are split into the power steps and single steps. The single steps are then split into liquid handling functions, preparation functions, transport functions, and miscellaneous functions. The functions which come under the ML_STAR tab are:
87
+
88
+ - :ven:func:`1000ul Channel Aspirate`
89
+ - :ven:func:`1000ul Channel Dispense`
90
+ - :ven:func:`CO-RE 96 Head Aspirate`
91
+ - :ven:func:`CO-RE 96 Head Dispense`
92
+ - :ven:func:`iSWAP Transport`
93
+ - :ven:func:`1000ul Channel CO-RE Grip Transport`
94
+ - :ven:func:`1000ul Channel Tip Pick Up (Single Step)`
95
+ - :ven:func:`1000ul Channel Aspirate (Single Step)`
96
+ - :ven:func:`1000ul Channel Dispense (Single Step)`
97
+ - :ven:func:`1000ul Channel Dispense on the Fly (Single Step)`
98
+ - :ven:func:`1000ul Channel Tip Eject (Single Step)`
99
+ - :ven:func:`1000ul Channel Get Last Liquid Level (Single Step)`
100
+ - :ven:func:`1000ul Channel Aspirate 2nd Phase (Single Step)`
101
+ - :ven:func:`CO-RE 96 Head Tip Pick Up (Single Step)`
102
+ - :ven:func:`CO-RE 96 Head Aspirate (Single Step)`
103
+ - :ven:func:`CO-RE 96 Head Dispense (Single Step)`
104
+ - :ven:func:`CO-RE 96 Head Tip Eject (Single Step)`
105
+ - :ven:func:`Initialize (Single Step)`
106
+ - :ven:func:`Calibrate Carrier (Single Step)`
107
+ - :ven:func:`Lock/Unlock Front Cover (Single Step)`
108
+ - :ven:func:`iSWAP Get Plate (Single Step)`
109
+ - :ven:func:`iSWAP Place Plate (Single Step)`
110
+ - :ven:func:`iSWAP Move Plate (Single Step)`
111
+ - :ven:func:`iSWAP Open Gripper (Single Step)`
112
+ - :ven:func:`iSWAP Close Gripper (Single Step)`
113
+ - :ven:func:`iSWAP Get First Plate Position (Single Step)`
114
+ - :ven:func:`iSWAP Park (Single Step)`
115
+ - :ven:func:`1000ul Channel CO-RE Grip Get Plate (Single Step)`
116
+ - :ven:func:`1000ul Channel CO-RE Grip Place Plate (Single Step)`
117
+ - :ven:func:`1000ul Channel CO-RE Grip Move Plate (Single Step)`
118
+
119
+ .. Microlab STAR Smart Steps
120
+
121
+ Smart steps are functions which are preprogrammed single steps which are combined to be ready for specific tasks such as doing both aspiration and dispensing of a reagent in the same function. The Smart Step functions are:
122
+
123
+ - :ven:func:`Advanced Load Settings`
124
+ - :ven:func:`Load`
125
+ - :ven:func:`Load and Match`
126
+ - :ven:func:`1000ul Channel Pipette - Simple (1-1)`
127
+ - :ven:func:`1000ul Channel Pipette - Replica (1-n)`
128
+ - :ven:func:`1000ul Channel Pipette - Pooling (n-1)`
129
+ - :ven:func:`1000ul Channel Pipette - Aliquot`
130
+ - :ven:func:`Unload`
131
+ - :ven:func:`1000ul Channel Needle Wash Settings`
132
+ - :ven:func:`1000ul Channel Needle Pick Up`
133
+ - :ven:func:`1000ul Channel Needle Eject`
134
+ - :ven:func:`1000ul Channel Tip Pick Up`
135
+ - :ven:func:`1000ul Channel Tip Eject`
136
+
137
+ How venus works
138
+ -------------------------------------------------------
139
+
140
+ Venus is a drag-and-drop wrapper for a separate coding language called HSL, standing for Hamilton Standard Language. When coding a method in Venus, all the available functions (core and any from imported libraries) are listed on the left hand side of the screen in a tree view. When you want to add a step to your method, you drag and drop that function from the left hand side and drop it wherever you want it to be in your method. This will then open a dialog box which allows you to input your desired parameters. The method is saved as a .med file, which can be run through a software called HxRunControl.exe. The run control software can run simulations of the code as well as the code on an actual robot. In the run control software window, you can see the deck layout dynamically changing, an open view of the method showing what step you are on, and a trace file which is a type of log which displays the data from every step that is occuring and is timestamped for each step. The trace file is saved to the Log Files folder within the main Hamilton folder in Program Files (x86). Method files (.med) can compile into HSL files (.hsl) which can also be edited and run through the run control software. Instead of being drag-and-drop, HSL is a more standard coding language, with C++ like syntax. HSL files cannot be converted into .med files; as such, it is usually recommended to insert snippets of HSL code into the main .med file rather than coding in HSL itself, or to only use HSL for creation of fresh libraries.
141
+
142
+ Libraries are groups of functions which reside in the library folder within the main Hamilton folder. They can be imported into specific methods, at which point the functions associated with that library will appear in the function tree on the left hand side of the method editor. Libraries can either be written in HSL (and are thus .hsl files) or can be "sub-method libraries", which is a series of steps coded in Venus that are stored in a way that works like a function. Sub-method libraries are .smt files. You can have submethods in a normal method file, and it is often encouraged so that your code is "parcelled" into blocks which contain the main blocks of your method. These submethods are just like the normal method but reside in a separate tab in the method editor.
143
+
144
+ The following function groups are not libraries and instead are "core" groups which do not need importing; every other function referenced is part of a library.
145
+ - General Steps
146
+ - Scheduler Steps
147
+ - Custom Dialog Steps
148
+ - Favourites
149
+ - Templates
150
+ - ML_STAR
151
+ - Microlab STAR Smart Steps
152
+
153
+ When pipetting using the 1000ul channels, there are 8 channels total. Channel patterns (which determine which channels are in use at any given point in time) are written in the form of a string of 1s and 0s, where 0 is not in use and 1 is in use. For example, if using channels 2, 3, and 5, the channel pattern would be "01101000". All pipetting steps require a channel pattern input as one of the parameters. Unless specified, the priority of the channels should always be to use the channels with lower indices.
154
+
155
+ There are several different tip types available for an ML_STAR, the most commonly used are 300ul (Standard volume, tip id 0), and 50ul (tip id 22). You can also get 10ul tips and 1000ul tips. All tips have the option of being normal, stackable, or filtered. No tip can take up more liquid than its type (i.e. a 300uL tip cannot ever have more than 300ul total volume in it). The 300ul tips should not be used to go below 10ul as they become very inaccurate. When pipetting, the total volume in a channel is the amount of liquid that has been aspirated by that channel minus the amount of liquid that has been dispensed by that channel.
156
+
157
+ For arrays in venus, you have to declare the size of the array (which can be empty) and then add items one by one; with the core functions you can't add more than one item at once. To add an item you can either specify an index or add to the end of the array; when adding to an empty array you can only add to the end of the array. Arrays in venus are 1-based rather than 0-based.
158
+
159
+ For variable naming in venus, the following convention should be followed. If a variable is an integer, it should be prefixed with "int_". If it is a float, it should be prefixed with "flt_". If it is a timer, it should be prefixed with "timer_". If it is a loop counter, it should be prefixed with "loop_". If it is an array, it should be prefixed with "arr_". If it is an array of sequences, it should be prefixed with "arrseq_". If it is a sequence, it should be prefixed with "seq_". If it is an unknown variable type, it should be prefixed with "var_". If it is known to be a variable only used as input to functions, it should have an "i_" between the prefix and the variable name. If it is known to be a variable only used to store outputs from functions, it should have an "o_" between the prefix and the variable name. If it is known to be both an input and output variable, i.e. something which is input into a function and modified during the function and then the modified value is returned, it should have an "io_" between the prefix and variable name. If it is unknown whether it is an input or output variable, there is nothing extra between the prefix and variable name.
160
+
161
+ For creation of reaction mixes, if unspecified, you should add in the following order:
162
+ - Water
163
+ - Buffers
164
+ - Beads
165
+ - DNA
166
+ - ATP
167
+ - Enzymes.
168
+
169
+ If the substance type is unknown, then prioritise adding high volumes before low volumes. In the code, functions do not have the :ven:func` prefix.
170
+
171
+ Microlab STARs have something called TADM; this is a pressure monitoring system of within pipetting steps, standing for Total Air Displacement Monitoring. The pressure data is saved in 10ms timepoints in a microsoft access database, along with the channel number, timestamp, and liquid class being used for the specific pipetting step that the TADM data was generated from. With the TADMCurveExport library, you can export the TADM data from the Microsoft Access Database file into an Excel file or a set of CSV files automatically. The TADM data can also be uploaded into the liquid class database to be associated with the specific liquid classes involved. You can set TADM tolerance bands within the liquid class database, which can cause the method to abort if TADM pressure data goes outside of the tolerance bands. The TADM data can also be used to analyze success of pipetting steps as incorrect/flawed pipetting (e.g. generating bubbles) will cause noticeable changes in the TADM data.
172
+
173
+ By default, make timers have the "is stoppable" parameter set to True.
174
+
175
+ Venus functions are denoted in the documentation by the ven:function:: prefix in the function definition and :ven:func: in the function references.
176
+
177
+ General Steps
178
+ -------------------------------------------------------
179
+
180
+ .. ven:function:: Comment
181
+
182
+ The comment function allows you to input a comment into the method. The comment can be chosen to be a Trace comment or not. If it is a Trace comment, it will be printed in the Trace during simulated or real runtime. Comment steps can also be chosen to be a specific colour in the editor, unlike most functions. The comment function doesn't have any input parameters, just a popup text box which you can input ASCII characters into. Pressing <Ctrl> + <Enter> will insert a new line. Pressing <Ctrl> + <Tab> will indent the text.
183
+
184
+ .. ven:function:: Assignment
185
+
186
+ The assignment function allows you to specify a variable and assign a value to it. It does not have any input parameters but instead a box in which you can input the name of your variable and the value you wish to assign to it. The variable name can be a fresh name, or can be an existing one which you are reassigning a value to, or an element from an array. The value to be assigned can be a signed number, a string, an entry from a given list, another variable name, or an element from an array. If entering a string, the option to have it as a Translatable string is available, which can be translated into different languages using the Translation Support System provided by the Hamilton Company.
187
+
188
+ Scheduler Steps
189
+ -------------------------------------------------
190
+
191
+ Custom Dialog Steps
192
+ -------------------------------------------------
193
+
194
+ Favourites
195
+ -------------------------------------------------
196
+
197
+ Templates
198
+ -------------------------------------------------
199
+
200
+ ML_STAR
201
+ -------------------------------------------------
202
+
203
+ .. ven:function:: 1000ul Channel Tip Pick Up (Single Step)
204
+
205
+ The 1000ul Channel Tip Pick Up (Single Step) function tells the Microlab STAR to pick up tips with the 1000ul channels. It asks for the input sequence where it can find the tips and whether the sequence counting is automatic (i.e. the starting position of the sequence increments when tips are picked up) or manual (no increments). It also allows you to select which channels are being used to pick up tips by assigning it a channel pattern, which can either be input directly in the dialog box or as a variable. It allows you to set custom error handling in response to specific errors that will potentially occur during the step, such as automatically testing the next spot in the sequence if no tips are found.
206
+
207
+ .. ven:function:: 1000ul Channel Aspirate (Single Step)
208
+
209
+ The 1000ul Channel Aspirate (Single Step) function tells the Microlab STAR to use the specified channels to aspirate liquid from the specified sequence. It requires an input sequence telling it where to locate the desired liquid, as well as a boolean determining whether sequence counting is automatic (i.e. increments starting position after aspiration) or manual (i.e. no increment). It asks for a volume input, which can be a variable, and allows individual volumes to be set for each channel if desired. It also allows you to switch between three types of aspiration; normal, consecutive aspiration, and aspirate all. Aspirate all will attempt to aspirate a set volume, and if not enough is present it won't throw an error, it will simply take whatever is present.
210
+ For the pipetting cycle settings, you can pick what tip type you want to use from the dropdown, as well as what dispense mode you wish to use. The dispense mode selected will then act as a filter for what liquid classes are available in the next drop-down. You can select your desired liquid class from the dropdown, either as a string name from the liquid class database, or as a variable.
211
+ The aspirate position settings allow you to control the height in which the pipette will try aspirate, through a variety of different settings and options. The default is to use capacitive liquid level detection (cLLD) at the sensitivity defined by the labware definition (5). You can also change this sensitivity to be higher or lower. You can also turn on pressure liquid level detection (pLLD) which measures increases in pressure in the tip and uses that to determine liquid level height. You can set a submerge depth in mm, which tells the pipettes how far below the surface they are to go once they have identified the liquid height. If both pLLD and cLLD are on, you can set a maximum height difference, in which case if the values do not agree and are outside this set range, the method will abort. If neither pLLD or cLLD is on, you can set it to either aspirate a fixed height from the bottom of the labware, or to touch off the bottom of the labware and then rise a little bit.
212
+ The channel settings available allow you to select which channels are being used in the aspiration, which can be either selected via tickboxes, input directly into the dialog box, or input as a variable. The advanced settings let you control whether or not the pipette tips follow the changing liquid height during aspiration and mixing, as well as letting you add mixing cycles to the pipetting step, of a specified volume, position, and number of cycles. The error section lets you set custom error handling responses to specific errors that will potentially occur during the process, and the responses are automatically triggered upon the error.
213
+
214
+ .. ven:function:: 1000ul Channel Dispense (Single Step)
215
+
216
+ The 1000ul Channel Dispense (Single Step) function tells the Microlab STAR to use the specified channels to aspirate liquid from the specified sequence. It requires an input sequence telling it which piece of labware to dispense the desired liquid into, as well as a boolean determining whether sequence counting is automatic (i.e. increments starting position after aspiration) or manual (i.e. no increment). It asks for a volume input, which can be a variable, and allows individual volumes to be set for each channel if desired. The dispense mode can be chosen from a dropdown, and the default value is 8, which means it will use the liquid class specified in the previous aspiration step.
217
+ The dispense position settings allow you to control the height in which the pipette will try to dispense, through a variety of different settings and options. The default is to use capacitive liquid level detection (cLLD) at the sensitivity defined by the labware definition (5). You can also change this sensitivity to be higher or lower. You can also turn on pressure liquid level detection (pLLD) which measures increases in pressure in the tip and uses that to determine liquid level height. You can set a submerge depth in mm, which tells the pipettes how far below the surface they are to go once they have identified the liquid height. If both pLLD and cLLD are on, you can set a maximum height difference, in which case if the values do not agree and are outside this set range, the method will abort. If neither pLLD or cLLD is on, you can set it to either dispense a fixed height from the bottom of the labware, or to touch off the bottom of the labware and then rise a little bit. If the labware has been defined with the "Side Touch" characteristic, the channels can also do a side touch dispense, in which it will enter the well and then move the pipette tip to touch the side of the well at the specified height, allowing it to dispense on the side of the well, usually for the benefits of not making contact with the well bottom, or for the wicking effect.
218
+ The channel settings available allow you to select which channels are being used in the dispense, which can be either selected via tickboxes, input directly into the dialog box, or input as a variable. The advanced settings let you control whether or not the pipette tips follow the changing liquid height during aspiration and mixing, as well as letting you add mixing cycles to the pipetting step, of a specified volume, position, and number of cycles. The error section lets you set custom error handling responses to specific errors that will potentially occur during the process, and the responses are automatically triggered upon the error.
219
+
220
+ .. ven:function:: 1000ul Channel Dispense on the Fly (Single Step)
221
+
222
+ The 1000ul Channel Dispense on the Fly (Single Step) function tells the Microlab STAR to dispense liquid continuously from the specified channel whilst moving at a set speed and distance, usually defined as a complete plate. You input the destination sequence, as well as whether sequence counting is automatic (1) or manual (0). If sequence counting is automatic, the next time it interacts with the sequence, it will treat the next untouched posiiton in the sequence as the first position in the sequence. You can input your desired total dispense volume, either as a variable or raw value, and you can also specify different volumes for each channel, which can be variables, elements from an array, or raw values. The dispense on the fly mode can either be set to complete plate (0) or sequence order (1). You can set the dispense position with two parameters; the labware surface distance in mm (which can either be input as a variable or raw value), and the Start X-offset in mm (which can also be input as a variable or raw value). In the pipetting arm section you can input the X-speed during the dispense, in mm/s (which can be input as a variable or raw value).
223
+ The channel settings available allow you to select which channels are being used in the dispense, which can be either selected via tickboxes, input directly into the dialog box, or input as a variable. The advanced settings let you control whether the liquid class being used is the same as in the first aspiration of the cycle, and if not then it lets you pick a fresh liquid class. It also allows you to determine the X-acceleration distance before the first shoot in mm, the dispense direction (with 0 being serpentine and 1 being from the left only), as well as specifying any excluded labware positions. The error section lets you set custom error handling responses to specific errors that will potentially occur during the process, and the responses are automatically triggered upon the error.
224
+
225
+ .. ven:function:: 1000ul Channel Tip Eject (Single Step)
226
+
227
+ The 1000ul Channel Tip Eject (Single Step) function tells the Microlab STAR to eject tips from the specified channels. You input the eject destination, which is any piece of labware, but by default is (1) which corresponds to the default waste location on the Microlab STAR. If a separate eject destination is chosen, sequence counting can be turned to automatic (i.e. increment sequence after ejecting tips) or manual (no increment).
228
+ The channel settings allow you to select which channels the tips are being ejected from, whcih can either be selected via tickboxes, input directly into the dialog box, or input as a variable. The error settings let you set custom error handling responses to specific errors that will potentially occur during the process, and the responses are automatically triggered upon the error.
229
+
230
+ .. ven:function:: 1000ul Channel Get Last Liquid Level (Single Step)
231
+
232
+ The 1000ul Channel Get Last Liquid Level (Single Step) function returns the liquid level height detected during the most recently performed aspirate or dispense step with liquid level detection enabled. There is no dialog box that appears as there are no parameters to input. It returns three values; the channel number, the detected liquid level height in mm relative to the deck coordinates of the Microlab STAR, and the block data for each channel.
233
+
234
+ .. ven:function:: 1000ul Channel Aspirate 2nd Phase (Single Step)
235
+
236
+ The 1000ul Channel Aspirate 2nd Phase (Single Step) function allows you to aspirate a second phase of liquid into a tip that already has liquid in it. You input a target sequence for it to aspirate from, and input whether sequence counting is automatic (1) or manual (0). If automatic, the next time it interacts with a sequence it will treat the first untouched well as the start of the sequence. You can input the volume in ul either as a variable or raw value, or can input individual volumes for each channel as variables, raw values, or array elements. You can set the aspiration mode to 0 (aspiration) or 2 (aspirate all). Aspirate all will remove all available liquid in the well up to the specified volume without throwing errors if there is too little liquid.
237
+ In the pipetting cycle settings you can input what tip type you are using and the dispense mode, which will then provide a filter for the liquid classes that are available for you to select to use, which are chosen from the liquid class database. You can also set the aspiration position. You can use capacitive liquid level detection (cLLD) to determine the liquid level height, at a variety of sensitivities, with 5 being the default (which means "set in the labware definition" for the specific piece of labware being interacted with). You can have pressure liquid level detection (pLLD) on instead of or as well as cLLD. This uses pressure changes in the tip to determine what the liquid level is. If using both pLLD and cLLD, you can input a max height difference in mm, which will cause an error if the detected height from the cLLD and pLLD differ by more than the set value. You also input a submerge depth in mm which determines how far below the detected liquid level the tip goes before beginning the aspiration.
238
+ The channel settings available allow you to select which channels are being used in the dispense, which can be either selected via tickboxes, input directly into the dialog box, or input as a variable. The advanced settings let you control the immersion depth for the aspiration in mm, and whether liquid following during aspiration is on (1) or off (0). The advanced settings also let you input the Z speed of Search Level, in mm/s, and the dispenser stream of Search Level, in ul/s. Lastly, the advanced settings let you control the dispense back parameters, allowing you to input a retract distance in mm and a dispense stream in ul/s. The error section lets you set custom error handling responses to specific errors that will potentially occur during the process, and the responses are automatically triggered upon the error.
239
+
240
+ .. ven:function:: Initialize (Single Step)
241
+
242
+ The Initialize (Single Step) function initializes the Microlab STAR. It is required to be called the first time the STAR is used after being turned on. It is sensible to put it at the beginning of every method. It can either always initialize (1) or only initialize for the first run when turned on (0). The error settings dialog allows you to input automatic responses to certain errors.
243
+
244
+ .. ven:function:: Lock/Unlock Front Cover (Single Step)
245
+
246
+ The Lock/Unlock Front Cover (Single Step) function locks or unlocks the protective cover of the Microlab STAR. It can either be set to 1 (locked) or 0 (unlocked). The error settings dialog allows you to input automatic responses to certain errors.
247
+
248
+ .. ven:function:: iSWAP Get Plate (Single Step)
249
+
250
+ The iSWAP Get Plate (Single Step) function uses the iSWAP (if the instrument has one installed) to pick up a plate from a specified position, in preparation for either an iSWAP Move Plate or iSWAP Place Plate function to be called. You specify the sequence of the plate to be picked up, as well as the lid sequence if it has a lid. You specify whether sequence counting is automatic (1) or manual (0); usually it is manual, it is automatic if you plan on moving multiple plates which are in the same sequence. You can set the iSWAP grip parameters, which are the grip height in mm, measured from the top of the labware, and the grip mode - this can be gripping the labware on the small side (0; the default) or the long side (1). Most labware comes with data in the labware file as to what grip width is required and the opening width before access, but this function has the option to override that, in which case you can put in the grip width and opening width before access, both in mm. The movement can either be just to a carrier (0; default) or a complex movement (1). The transport mode can be set to 0 (plate only), 1 (lid only) or 2 (plate and lid). If complex movement is chosen, three more parameters have to be input: the retract distance in mm, the lift-up height in mm, and the labware orientation, which can either be 1, 2, 3 or 4, based on which of the cardinal directions the iSWAP is pickup up the labware from.
251
+ The advanced setting dialog allows you to set the iSWAP grip force (default 5, goes between 0 and 10), as well as the tolerance in mm, whether the grip is inverse (1) or normal (0), and whether collision control is on (1) or off (0). The error settings dialog allows you to program in automatic responses to specific errors.
252
+
253
+ .. ven:function:: iSWAP Place Plate (Single Step)
254
+
255
+ The iSWAP Place Plate (Single Step) function allows the iSWAP to move to a specified location and place down a plate if it is holding one. You input the target sequence which is the location you wish the iSWAP place the plate in, as well as the lid sequence if the plate has a lid. The movement can either be just to a carrier (0; default) or a complex movement (1). The transport mode can be set to 0 (plate only), 1 (lid only) or 2 (plate and lid). If complex movement is chosen, three more parameters have to be input: the retract distance in mm, the lift-up height in mm, and the labware orientation, which can either be 1, 2, 3 or 4, based on which of the cardinal directions the iSWAP is pickup up the labware from. You specify whether sequence counting is automatic (1) or manual (0); usually it is manual, it is automatic if you plan on placing multiple plates which are in the same sequence.
256
+ The advanced option dialog allows you to determine whether collision control is on (1) or off (0). The error settings dialog allows you to program in automatic responses to specific errors.
257
+
258
+ .. ven:function:: iSWAP Move Plate (Single Step)
259
+
260
+ The iSWAP Move Plate (Single Step) function allows the iSWAP to move to a specified location. You input the target sequence which is the location you wish the iSWAP to be moved to. The advanced option dialog allows you to determine whether the labware is gripped on the small side (0) or long side (1), as well as whether collision control is on (1) or off (0). The error settings dialog allows you to program in automatic responses to specific errors.
261
+
262
+ .. ven:function:: iSWAP Open Gripper (Single Step)
263
+
264
+ The iSWAP Open Gripper (Single Step) function allows the iSWAP to open the gripper and release the plate without placing it down; usually to drop it into the operator's hands or to drop the plate from a slight height onto the carrier with the intention of causing the liquid inside it to be disturbed by the motion. You can control whether the transport mode is for the plate only (0), the lid only (1), or the plate and lid together (2). You also pick the plate sequence, and can pick the lid sequence if relevant. You can determine whether sequence counting is manual (0) or automatic (1); unless you are doing it to multiple plates then sequence counting should be manual. You can specify whether the labware is gripped on the small side (0) or the long side (1), as well as whether or not to overwrite the grip data from the labware definition. If you do, then you specify the grip opening width. The error settings dialog allows you to program in automatic responses to specific errors.
265
+
266
+ .. ven:function:: iSWAP Close Gripper (Single Step)
267
+
268
+ The iSWAP Close Gripper (Single Step) function allows the iSWAP to close the gripper and hold the plate without picking it up. You can control whether the transport mode is for the plate only (0), the lid only (1), or the plate and lid together (2). You also pick the plate sequence, and can pick the lid sequence if relevant. You can determine whether sequence counting is manual (0) or automatic (1); unless you are doing it to multiple plates then sequence counting should be manual. You specify the grip height of the labware, which is the number of mm that the iSWAP is gripping below the top of the labware. By default it is 3mm. You can specify whether the labware is gripped on the small side (0) or the long side (1), as well as whether or not to overwrite the grip data from the labware definition. If you do, then you specify the grip opening width. The advanced dialog option allows you to specify the grip force being used on a scale of 0 to 10, with 0 being low and 10 being high. The default is 5. In the advanced dialog you also specify the grip tolerance in mm. The error settings dialog allows you to program in automatic responses to specific errors.
269
+
270
+ .. ven:function:: iSWAP Get First Plate Position (Single Step)
271
+
272
+ The documentation for this function has not yet been written.
273
+
274
+ .. ven:function:: Wait for TADM Upload (Single Step)
275
+
276
+ The Wait for TADM Upload (Single Step) function forces the method to wait until the TADM data for specified pipetting tool (either the 1000ul channels (0), the 5ml channels (1), or the 96 head (2)) has been uploaded to a microsoft access database.
277
+
278
+ Microlab STAR Smart Steps
279
+ -------------------------------------------------