├── site ├── assets │ ├── javascripts │ │ └── lunr │ │ │ └── min │ │ │ ├── lunr.jp.min.js │ │ │ ├── lunr.vi.min.js │ │ │ ├── lunr.multi.min.js │ │ │ ├── lunr.th.min.js │ │ │ ├── lunr.zh.min.js │ │ │ ├── lunr.ja.min.js │ │ │ ├── lunr.hi.min.js │ │ │ ├── lunr.stemmer.support.min.js │ │ │ ├── lunr.sv.min.js │ │ │ ├── lunr.da.min.js │ │ │ ├── lunr.no.min.js │ │ │ ├── lunr.nl.min.js │ │ │ ├── lunr.de.min.js │ │ │ ├── lunr.du.min.js │ │ │ ├── lunr.ru.min.js │ │ │ ├── lunr.fi.min.js │ │ │ ├── lunr.hu.min.js │ │ │ ├── lunr.pt.min.js │ │ │ ├── lunr.fr.min.js │ │ │ ├── lunr.ro.min.js │ │ │ └── lunr.it.min.js │ ├── images │ │ └── favicon.png │ └── stylesheets │ │ ├── palette.cc9b2e1e.min.css.map │ │ └── palette.cc9b2e1e.min.css ├── pipython.png ├── sitemap.xml.gz ├── styles │ ├── fonts │ │ ├── Roboto │ │ │ ├── Roboto-Bold.ttf │ │ │ └── Roboto-Regular.ttf │ │ ├── Roboto_Mono │ │ │ └── RobotoMono-Regular.ttf │ │ └── Roboto_Slab │ │ │ └── RobotoSlab-Regular.ttf │ └── pi.css ├── files │ └── pi.svg └── sitemap.xml ├── PIPython ├── PIPython.zip └── README.PIPython ├── PIPython-2.10.2.1-INSTALL.tar.bz2 ├── OldVersions ├── PIPython-1.5.3.1-INSTALL.tar.bz2 ├── PIPython-2.0.0.5-INSTALL.tar.bz2 ├── PIPython-2.1.0.1-INSTALL.tar.bz2 ├── PIPython-2.1.1.2-INSTALL.tar.bz2 ├── PIPython-2.2.0.4-INSTALL.tar.bz2 ├── PIPython-2.2.1.1-INSTALL.tar.bz2 ├── PIPython-2.2.2.1-INSTALL.tar.bz2 ├── PIPython-2.3.0.3-INSTALL.tar.bz2 ├── PIPython-2.4.0.2-INSTALL.tar.bz2 ├── PIPython-2.5.0.1-INSTALL.tar.bz2 ├── PIPython-2.5.1.3-INSTALL.tar.bz2 ├── PIPython-2.6.0.1-INSTALL.tar.bz2 ├── PIPython-2.8.0.3-INSTALL.tar.bz2 ├── PIPython-2.9.0.4-INSTALL.tar.bz2 ├── PIPython-1.5.0.10-INSTALL.tar.bz2 ├── PIPython-2.10.0.2-INSTALL.tar.bz2 ├── PIPython-2.10.1.1-INSTALL.tar.bz2 └── PIPython-2.7.0.14-INSTALL.tar.bz2 ├── pi_make_install_package ├── index.html ├── pi_set_install_file_settings ├── samples ├── advanced │ ├── targets_from_csv.csv │ ├── connect_socket.py │ ├── connect_serial.py │ ├── targets_from_csv.py │ ├── TrajectorySample.py │ ├── wavegenerator_circle.py │ ├── wavegenerator_pnt.py │ ├── handle_string_answers.py │ └── wavegenerator_pnt.txt ├── connect_enumerate.py ├── connect_daisychain.py ├── quickstart.py ├── setparameter_gcs30.py ├── datarecorder.py ├── datarecorder_gcs30.py ├── simplemove_gcs30.py ├── simplemove.py └── E-873_10C885_sample.py ├── readme.rst ├── changelog.md └── readme.md /site/assets/javascripts/lunr/min/lunr.jp.min.js: -------------------------------------------------------------------------------- 1 | module.exports=require("./lunr.ja"); -------------------------------------------------------------------------------- /site/pipython.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PI-PhysikInstrumente/PIPython/HEAD/site/pipython.png -------------------------------------------------------------------------------- /site/sitemap.xml.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PI-PhysikInstrumente/PIPython/HEAD/site/sitemap.xml.gz -------------------------------------------------------------------------------- /PIPython/PIPython.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PI-PhysikInstrumente/PIPython/HEAD/PIPython/PIPython.zip -------------------------------------------------------------------------------- /site/assets/images/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PI-PhysikInstrumente/PIPython/HEAD/site/assets/images/favicon.png -------------------------------------------------------------------------------- /PIPython-2.10.2.1-INSTALL.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PI-PhysikInstrumente/PIPython/HEAD/PIPython-2.10.2.1-INSTALL.tar.bz2 -------------------------------------------------------------------------------- /site/styles/fonts/Roboto/Roboto-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PI-PhysikInstrumente/PIPython/HEAD/site/styles/fonts/Roboto/Roboto-Bold.ttf -------------------------------------------------------------------------------- /OldVersions/PIPython-1.5.3.1-INSTALL.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PI-PhysikInstrumente/PIPython/HEAD/OldVersions/PIPython-1.5.3.1-INSTALL.tar.bz2 -------------------------------------------------------------------------------- /OldVersions/PIPython-2.0.0.5-INSTALL.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PI-PhysikInstrumente/PIPython/HEAD/OldVersions/PIPython-2.0.0.5-INSTALL.tar.bz2 -------------------------------------------------------------------------------- /OldVersions/PIPython-2.1.0.1-INSTALL.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PI-PhysikInstrumente/PIPython/HEAD/OldVersions/PIPython-2.1.0.1-INSTALL.tar.bz2 -------------------------------------------------------------------------------- /OldVersions/PIPython-2.1.1.2-INSTALL.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PI-PhysikInstrumente/PIPython/HEAD/OldVersions/PIPython-2.1.1.2-INSTALL.tar.bz2 -------------------------------------------------------------------------------- /OldVersions/PIPython-2.2.0.4-INSTALL.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PI-PhysikInstrumente/PIPython/HEAD/OldVersions/PIPython-2.2.0.4-INSTALL.tar.bz2 -------------------------------------------------------------------------------- /OldVersions/PIPython-2.2.1.1-INSTALL.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PI-PhysikInstrumente/PIPython/HEAD/OldVersions/PIPython-2.2.1.1-INSTALL.tar.bz2 -------------------------------------------------------------------------------- /OldVersions/PIPython-2.2.2.1-INSTALL.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PI-PhysikInstrumente/PIPython/HEAD/OldVersions/PIPython-2.2.2.1-INSTALL.tar.bz2 -------------------------------------------------------------------------------- /OldVersions/PIPython-2.3.0.3-INSTALL.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PI-PhysikInstrumente/PIPython/HEAD/OldVersions/PIPython-2.3.0.3-INSTALL.tar.bz2 -------------------------------------------------------------------------------- /OldVersions/PIPython-2.4.0.2-INSTALL.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PI-PhysikInstrumente/PIPython/HEAD/OldVersions/PIPython-2.4.0.2-INSTALL.tar.bz2 -------------------------------------------------------------------------------- /OldVersions/PIPython-2.5.0.1-INSTALL.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PI-PhysikInstrumente/PIPython/HEAD/OldVersions/PIPython-2.5.0.1-INSTALL.tar.bz2 -------------------------------------------------------------------------------- /OldVersions/PIPython-2.5.1.3-INSTALL.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PI-PhysikInstrumente/PIPython/HEAD/OldVersions/PIPython-2.5.1.3-INSTALL.tar.bz2 -------------------------------------------------------------------------------- /OldVersions/PIPython-2.6.0.1-INSTALL.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PI-PhysikInstrumente/PIPython/HEAD/OldVersions/PIPython-2.6.0.1-INSTALL.tar.bz2 -------------------------------------------------------------------------------- /OldVersions/PIPython-2.8.0.3-INSTALL.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PI-PhysikInstrumente/PIPython/HEAD/OldVersions/PIPython-2.8.0.3-INSTALL.tar.bz2 -------------------------------------------------------------------------------- /OldVersions/PIPython-2.9.0.4-INSTALL.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PI-PhysikInstrumente/PIPython/HEAD/OldVersions/PIPython-2.9.0.4-INSTALL.tar.bz2 -------------------------------------------------------------------------------- /site/styles/fonts/Roboto/Roboto-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PI-PhysikInstrumente/PIPython/HEAD/site/styles/fonts/Roboto/Roboto-Regular.ttf -------------------------------------------------------------------------------- /OldVersions/PIPython-1.5.0.10-INSTALL.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PI-PhysikInstrumente/PIPython/HEAD/OldVersions/PIPython-1.5.0.10-INSTALL.tar.bz2 -------------------------------------------------------------------------------- /OldVersions/PIPython-2.10.0.2-INSTALL.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PI-PhysikInstrumente/PIPython/HEAD/OldVersions/PIPython-2.10.0.2-INSTALL.tar.bz2 -------------------------------------------------------------------------------- /OldVersions/PIPython-2.10.1.1-INSTALL.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PI-PhysikInstrumente/PIPython/HEAD/OldVersions/PIPython-2.10.1.1-INSTALL.tar.bz2 -------------------------------------------------------------------------------- /OldVersions/PIPython-2.7.0.14-INSTALL.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PI-PhysikInstrumente/PIPython/HEAD/OldVersions/PIPython-2.7.0.14-INSTALL.tar.bz2 -------------------------------------------------------------------------------- /site/styles/fonts/Roboto_Mono/RobotoMono-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PI-PhysikInstrumente/PIPython/HEAD/site/styles/fonts/Roboto_Mono/RobotoMono-Regular.ttf -------------------------------------------------------------------------------- /site/styles/fonts/Roboto_Slab/RobotoSlab-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PI-PhysikInstrumente/PIPython/HEAD/site/styles/fonts/Roboto_Slab/RobotoSlab-Regular.ttf -------------------------------------------------------------------------------- /pi_make_install_package: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # pi_make_install_package 4 | # 5 | # z.B.: 6 | # pi_make_install_package 1.0.0 7 | # 8 | 9 | mv PIPython-*-INSTALL.tar.bz2 ./OldVersions/ 10 | 11 | ./pi_set_install_file_settings 12 | tar -cjf PIPython-$1-INSTALL.tar.bz2 PIPython 13 | 14 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Page Redirection 7 | 8 | 9 | If you are not redirected automatically, follow this link to the docs. 10 | 11 | 12 | -------------------------------------------------------------------------------- /pi_set_install_file_settings: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | 4 | rm -fr `find -mindepth 2 -name "*.tar.bz2" | cut -f1 -d'-'` 5 | 6 | find */* -exec chmod a+rw "{}" ";" 7 | find -name INSTALL* -exec chmod a+x "{}" ";" -exec fromdos "{}" ";" 8 | find -name REMOVE* -exec chmod a+x "{}" ";" -exec fromdos "{}" ";" 9 | find -name UPDATE* -exec chmod a+x "{}" ";" -exec fromdos "{}" ";" 10 | find -name DEPENDENCIES* -exec fromdos "{}" ";" 11 | 12 | -------------------------------------------------------------------------------- /site/assets/javascripts/lunr/min/lunr.vi.min.js: -------------------------------------------------------------------------------- 1 | !function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.vi=function(){this.pipeline.reset(),this.pipeline.add(e.vi.stopWordFilter,e.vi.trimmer)},e.vi.wordCharacters="[A-Za-ẓ̀͐́͑̉̃̓ÂâÊêÔôĂ-ăĐ-đƠ-ơƯ-ư]",e.vi.trimmer=e.trimmerSupport.generateTrimmer(e.vi.wordCharacters),e.Pipeline.registerFunction(e.vi.trimmer,"trimmer-vi"),e.vi.stopWordFilter=e.generateStopWordFilter("là cái nhưng mà".split(" "))}}); -------------------------------------------------------------------------------- /site/assets/javascripts/lunr/min/lunr.multi.min.js: -------------------------------------------------------------------------------- 1 | !function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(e.lunr)}(this,function(){return function(e){e.multiLanguage=function(){for(var t=Array.prototype.slice.call(arguments),i=t.join("-"),r="",n=[],s=[],p=0;p 2 | 3 | 5 | 8 | 10 | 11 | -------------------------------------------------------------------------------- /samples/advanced/targets_from_csv.csv: -------------------------------------------------------------------------------- 1 | 0.315,0.892,0.141,0.273,0.601,0.941 2 | 0.189,0.129,0.117,0.299,0.851,0.110 3 | 0.221,0.858,0.180,0.853,0.306,0.534 4 | 0.517,0.895,0.112,0.436,0.269,0.907 5 | 0.568,0.418,0.728,0.354,0.905,0.490 6 | 0.184,0.402,0.830,0.329,0.882,0.200 7 | 0.909,0.903,0.395,0.066,0.164,0.333 8 | 0.361,0.564,0.100,0.771,0.593,0.838 9 | 0.480,0.902,0.738,0.839,0.358,0.294 10 | 0.873,0.343,0.381,0.278,0.551,0.977 11 | 0.610,0.326,0.490,0.335,0.764,0.884 12 | 0.266,0.800,0.170,0.973,0.362,0.415 13 | 0.026,0.914,0.314,0.057,0.816,0.467 14 | 0.517,0.895,0.112,0.436,0.269,0.907 15 | 0.568,0.418,0.728,0.354,0.905,0.490 16 | 0.184,0.402,0.830,0.329,0.882,0.200 17 | 0.909,0.903,0.395,0.066,0.164,0.333 18 | 0.361,0.564,0.100,0.771,0.593,0.838 19 | 0.480,0.902,0.738,0.839,0.358,0.294 20 | 0.873,0.343,0.381,0.278,0.551,0.977 21 | 0.610,0.326,0.490,0.335,0.764,0.884 22 | 0.266,0.800,0.170,0.973,0.362,0.415 23 | 0.026,0.914,0.314,0.057,0.816,0.467 24 | -------------------------------------------------------------------------------- /site/assets/javascripts/lunr/min/lunr.th.min.js: -------------------------------------------------------------------------------- 1 | !function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r="2"==e.version[0];e.th=function(){this.pipeline.reset(),this.pipeline.add(e.th.trimmer),r?this.tokenizer=e.th.tokenizer:(e.tokenizer&&(e.tokenizer=e.th.tokenizer),this.tokenizerFn&&(this.tokenizerFn=e.th.tokenizer))},e.th.wordCharacters="[฀-๿]",e.th.trimmer=e.trimmerSupport.generateTrimmer(e.th.wordCharacters),e.Pipeline.registerFunction(e.th.trimmer,"trimmer-th");var t=e.wordcut;t.init(),e.th.tokenizer=function(i){if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(t){return r?new e.Token(t):t});var n=i.toString().replace(/^\s+/,"");return t.cut(n).split("|")}}}); -------------------------------------------------------------------------------- /site/sitemap.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | None 5 | 2023-11-24 6 | daily 7 | 8 | 9 | None 10 | 2023-11-24 11 | daily 12 | 13 | 14 | None 15 | 2023-11-24 16 | daily 17 | 18 | 19 | None 20 | 2023-11-24 21 | daily 22 | 23 | 24 | None 25 | 2023-11-24 26 | daily 27 | 28 | 29 | None 30 | 2023-11-24 31 | daily 32 | 33 | 34 | None 35 | 2023-11-24 36 | daily 37 | 38 | -------------------------------------------------------------------------------- /readme.rst: -------------------------------------------------------------------------------- 1 | PI Python Libraries 2 | =================== 3 | 4 | PIPython is a collection of Python modules to access a PI device and process 5 | GCS data. It can be used with Python 3.6+ on Windows, Linux and OS X 6 | and without the GCS DLL also on any other platform. 7 | 8 | Version: 2.8.0.1 9 | 10 | 11 | Quickstart 12 | ---------- 13 | 14 | Communicate to a PI device via *GCSDevice* which wraps the GCS commands 15 | and provides methods to connect to the device. Call *GCSDevice* with the 16 | controller name as argument:: 17 | 18 | from pipython.pidevice import GCSDevice 19 | gcs = GCSDevice('C-884') 20 | gcs.InterfaceSetupDlg() 21 | print(gcs.qIDN()) 22 | gcs.CloseConnection() 23 | 24 | 25 | Installation 26 | ------------ 27 | 28 | By using PIPython you agree to the license agreement, see the provided file:: 29 | 30 | eula.md 31 | 32 | Unzip the file PIPython.zip, open a command entry (Linux Console or Windows CMD window) and run:: 33 | 34 | python setup.py install 35 | 36 | For further reading open the *index.html* file in your browser and see the samples in the 37 | *samples* folder. 38 | 39 | We appreciate your feedback at:: 40 | 41 | service@pi.de 42 | -------------------------------------------------------------------------------- /samples/advanced/connect_socket.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | """This example shows how to connect PIPython via socket.""" 4 | 5 | # (c)2016 Physik Instrumente (PI) GmbH & Co. KG 6 | # Software products that are provided by PI are subject to the 7 | # General Software License Agreement of Physik Instrumente (PI) GmbH & Co. KG 8 | # and may incorporate and/or make use of third-party software components. 9 | # For more information, please read the General Software License Agreement 10 | # and the Third Party Software Note linked below. 11 | # General Software License Agreement: 12 | # http://www.physikinstrumente.com/download/EULA_PhysikInstrumenteGmbH_Co_KG.pdf 13 | # Third Party Software Note: 14 | # http://www.physikinstrumente.com/download/TPSWNote_PhysikInstrumenteGmbH_Co_KG.pdf 15 | 16 | 17 | from pipython.pidevice.gcscommands import GCSCommands 18 | from pipython.pidevice.gcsmessages import GCSMessages 19 | from pipython.pidevice.interfaces.pisocket import PISocket 20 | 21 | __signature__ = 0x51d08070e3f282f9d3a42dcfedf682ff 22 | 23 | IPADDR = '192.168.90.166' 24 | 25 | 26 | def main(): 27 | """Connect controller via socket on port 50000.""" 28 | with PISocket(host=IPADDR, port=50000) as gateway: 29 | print('interface: {}'.format(gateway)) 30 | messages = GCSMessages(gateway) 31 | with GCSCommands(messages) as pidevice: 32 | print('connected: {}'.format(pidevice.qIDN().strip())) 33 | 34 | 35 | if __name__ == '__main__': 36 | # from pipython import PILogger, DEBUG, INFO, WARNING, ERROR, CRITICAL 37 | # PILogger.setLevel(DEBUG) 38 | main() 39 | -------------------------------------------------------------------------------- /samples/connect_enumerate.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | """This example shows how to search for controllers.""" 4 | 5 | # (c)2016 Physik Instrumente (PI) GmbH & Co. KG 6 | # Software products that are provided by PI are subject to the 7 | # General Software License Agreement of Physik Instrumente (PI) GmbH & Co. KG 8 | # and may incorporate and/or make use of third-party software components. 9 | # For more information, please read the General Software License Agreement 10 | # and the Third Party Software Note linked below. 11 | # General Software License Agreement: 12 | # http://www.physikinstrumente.com/download/EULA_PhysikInstrumenteGmbH_Co_KG.pdf 13 | # Third Party Software Note: 14 | # http://www.physikinstrumente.com/download/TPSWNote_PhysikInstrumenteGmbH_Co_KG.pdf 15 | 16 | 17 | from pipython import GCSDevice 18 | 19 | __signature__ = 0xcc5f7acd62f49355711f59f582013bc5 20 | 21 | def main(): 22 | """Search controllers on interface, show dialog and connect a controller.""" 23 | with GCSDevice() as pidevice: 24 | print('search for controllers...') 25 | #devices = pidevice.EnumerateTCPIPDevices() 26 | devices = pidevice.EnumerateUSB() 27 | for i, device in enumerate(devices): 28 | print('{} - {}'.format(i, device)) 29 | item = int(input('select device to connect: ')) 30 | #pidevice.ConnectTCPIPByDescription(devices[item]) 31 | pidevice.ConnectUSB(devices[item]) 32 | print('connected: {}'.format(pidevice.qIDN().strip())) 33 | 34 | 35 | if __name__ == '__main__': 36 | # from pipython import PILogger, DEBUG, INFO, WARNING, ERROR, CRITICAL 37 | # PILogger.setLevel(DEBUG) 38 | main() 39 | -------------------------------------------------------------------------------- /site/assets/javascripts/lunr/min/lunr.zh.min.js: -------------------------------------------------------------------------------- 1 | !function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r(require("nodejieba")):r()(e.lunr)}(this,function(e){return function(r,t){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var i="2"==r.version[0];r.zh=function(){this.pipeline.reset(),this.pipeline.add(r.zh.trimmer,r.zh.stopWordFilter,r.zh.stemmer),i?this.tokenizer=r.zh.tokenizer:(r.tokenizer&&(r.tokenizer=r.zh.tokenizer),this.tokenizerFn&&(this.tokenizerFn=r.zh.tokenizer))},r.zh.tokenizer=function(n){if(!arguments.length||null==n||void 0==n)return[];if(Array.isArray(n))return n.map(function(e){return i?new r.Token(e.toLowerCase()):e.toLowerCase()});t&&e.load(t);var o=n.toString().trim().toLowerCase(),s=[];e.cut(o,!0).forEach(function(e){s=s.concat(e.split(" "))}),s=s.filter(function(e){return!!e});var u=0;return s.map(function(e,t){if(i){var n=o.indexOf(e,u),s={};return s.position=[n,e.length],s.index=t,u=n,new r.Token(e,s)}return e})},r.zh.wordCharacters="\\w一-龥",r.zh.trimmer=r.trimmerSupport.generateTrimmer(r.zh.wordCharacters),r.Pipeline.registerFunction(r.zh.trimmer,"trimmer-zh"),r.zh.stemmer=function(){return function(e){return e}}(),r.Pipeline.registerFunction(r.zh.stemmer,"stemmer-zh"),r.zh.stopWordFilter=r.generateStopWordFilter("的 一 不 在 人 有 是 为 以 于 上 他 而 后 之 来 及 了 因 下 可 到 由 这 与 也 此 但 并 个 其 已 无 小 我 们 起 最 再 今 去 好 只 又 或 很 亦 某 把 那 你 乃 它 吧 被 比 别 趁 当 从 到 得 打 凡 儿 尔 该 各 给 跟 和 何 还 即 几 既 看 据 距 靠 啦 了 另 么 每 们 嘛 拿 哪 那 您 凭 且 却 让 仍 啥 如 若 使 谁 虽 随 同 所 她 哇 嗡 往 哪 些 向 沿 哟 用 于 咱 则 怎 曾 至 致 着 诸 自".split(" ")),r.Pipeline.registerFunction(r.zh.stopWordFilter,"stopWordFilter-zh")}}); -------------------------------------------------------------------------------- /samples/advanced/connect_serial.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | """This example shows how to connect PIPython via serial port.""" 4 | 5 | # (c)2016 Physik Instrumente (PI) GmbH & Co. KG 6 | # Software products that are provided by PI are subject to the 7 | # General Software License Agreement of Physik Instrumente (PI) GmbH & Co. KG 8 | # and may incorporate and/or make use of third-party software components. 9 | # For more information, please read the General Software License Agreement 10 | # and the Third Party Software Note linked below. 11 | # General Software License Agreement: 12 | # http://www.physikinstrumente.com/download/EULA_PhysikInstrumenteGmbH_Co_KG.pdf 13 | # Third Party Software Note: 14 | # http://www.physikinstrumente.com/download/TPSWNote_PhysikInstrumenteGmbH_Co_KG.pdf 15 | 16 | 17 | import sys 18 | 19 | from pipython.pidevice.gcscommands import GCSCommands 20 | from pipython.pidevice.gcsmessages import GCSMessages 21 | from pipython.pidevice.interfaces.piserial import PISerial 22 | 23 | __signature__ = 0xa6380f081e64110f19558090beb8fdcd 24 | 25 | 26 | def main(): 27 | """Connect controller via first serial port with 115200 baud.""" 28 | if sys.platform in ('linux', 'linux2', 'darwin'): 29 | port = '/dev/ttyS0' # use '/dev/ttyUSB0' for FTDI-USB connections 30 | else: 31 | port = 'COM1' 32 | with PISerial(port=port, baudrate=115200) as gateway: 33 | print('interface: {}'.format(gateway)) 34 | messages = GCSMessages(gateway) 35 | with GCSCommands(messages) as pidevice: 36 | print('connected: {}'.format(pidevice.qIDN().strip())) 37 | 38 | 39 | if __name__ == '__main__': 40 | # from pipython import PILogger, DEBUG, INFO, WARNING, ERROR, CRITICAL 41 | # PILogger.setLevel(DEBUG) 42 | main() 43 | -------------------------------------------------------------------------------- /PIPython/README.PIPython: -------------------------------------------------------------------------------- 1 | **************************************************************************** 2 | * * 3 | * Physik Instrumente (PI) GmbH & Co. KG (www.pi.ws) * 4 | * * 5 | **************************************************************************** 6 | * * 7 | * Description: Howto update, install PIPython * 8 | * * 9 | * Author: Jens Kapp (JKa) * 10 | * SW Engineer * 11 | * Physik Instrumente (PI) GmbH & Co. KG * 12 | * Auf der Roemerstr. * 13 | * D-76228 Karlsruhe * 14 | * Germany * 15 | * * 16 | **************************************************************************** 17 | 18 | 19 | First, login as superuser 20 | 21 | >> user:> su 22 | >> Password: 23 | >> [root@]# 24 | 25 | To update an already existing PIPython: 26 | >> [root@]# ./INSTALL.PIPython-u 27 | 28 | To install PIPython: 29 | >> [root@]# ./INSTALL.PIPython 30 | 31 | To remove PIPython: 32 | >> [root@]# ./INSTALL.PIPython -r 33 | 34 | 35 | 36 | 37 | 38 | To increase our knowledge of different Linux distributions, we are always 39 | glad to receive feedback about how the software runs on your system. 40 | Are there any missing libraries or header files, do all scripts work on 41 | your system, ?... 42 | Please contact us (service@pi.de) and please do not forget 43 | to let us know which distribution you are working with. 44 | -------------------------------------------------------------------------------- /site/assets/javascripts/lunr/min/lunr.ja.min.js: -------------------------------------------------------------------------------- 1 | !function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r="2"==e.version[0];e.ja=function(){this.pipeline.reset(),this.pipeline.add(e.ja.trimmer,e.ja.stopWordFilter,e.ja.stemmer),r?this.tokenizer=e.ja.tokenizer:(e.tokenizer&&(e.tokenizer=e.ja.tokenizer),this.tokenizerFn&&(this.tokenizerFn=e.ja.tokenizer))};var t=new e.TinySegmenter;e.ja.tokenizer=function(i){var n,o,s,p,a,u,m,l,c,f;if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(t){return r?new e.Token(t.toLowerCase()):t.toLowerCase()});for(o=i.toString().toLowerCase().replace(/^\s+/,""),n=o.length-1;n>=0;n--)if(/\S/.test(o.charAt(n))){o=o.substring(0,n+1);break}for(a=[],s=o.length,c=0,l=0;c<=s;c++)if(u=o.charAt(c),m=c-l,u.match(/\s/)||c==s){if(m>0)for(p=t.segment(o.slice(l,c)).filter(function(e){return!!e}),f=l,n=0;n * { 2 | --md-primary-fg-color: #0051a0; 3 | --md-default-fg-color--light: #0051a0; 4 | --md-primary-fg-color--light: #86b1db; 5 | --md-primary-fg-color--dark: #003970; 6 | 7 | --md-accent-fg-color: #001d3a; 8 | --md-code-hl-color: #c2def9; 9 | 10 | 11 | --md-text-font-family: "Roboto"; 12 | --md-code-font-family: "Roboto Mono"; 13 | } 14 | 15 | /* Schrift Fließtext */ 16 | @font-face { 17 | font-family: "Roboto"; 18 | src: url("./fonts/Roboto/Roboto-Regular.ttf"); 19 | font-style: normal; 20 | font-weight: normal; 21 | } 22 | @font-face { 23 | font-family: "Roboto"; 24 | src: url("./fonts/Roboto/Roboto-Bold.ttf"); 25 | font-style: normal; 26 | font-weight: bold; 27 | } 28 | 29 | /* Schrift Code */ 30 | @font-face { 31 | font-family: "Roboto Mono"; 32 | src: url("./fonts/Roboto_Mono/RobotoMono-Regular.ttf"); 33 | font-style: normal; 34 | font-weight: normal; 35 | } 36 | 37 | /* Schrift Überschriften */ 38 | @font-face { 39 | font-family: "Roboto Slab"; 40 | src: url("./fonts/Roboto_Slab/RobotoSlab-Regular.ttf"); 41 | font-style: normal; 42 | font-weight: normal; 43 | } 44 | 45 | a . { 46 | font-weight: bold; 47 | } 48 | 49 | .md-typeset h1, .md-typeset h2, .md-typeset h3 { 50 | font-family: "Roboto Slab", Calibri, sans-serif; 51 | } 52 | 53 | .md-typeset h1 { 54 | font-size: 2.5em; 55 | margin: 0 0 0.75em 56 | } 57 | 58 | .md-typeset h2 { 59 | font-size: 1.6em; 60 | margin: 1.45em 0 0.5em; 61 | } 62 | 63 | html { 64 | font-size: 120% !important; 65 | } 66 | 67 | li.md-nav__item > a { 68 | font-weight: normal !important; 69 | } 70 | 71 | nav { 72 | padding-top: 0.5rem; 73 | } 74 | 75 | th { 76 | font-weight: bold; 77 | } 78 | 79 | .admonition { 80 | font-size: 0.8rem !important; 81 | box-shadow: 0 0.2rem 0.5rem rgb(0 0 0 / 15%), 0 0.025rem 0.05rem rgb(0 0 0 / 5%) !important; 82 | } 83 | 84 | .highlighttable .linenodiv pre { 85 | line-height: 1.05rem; 86 | position: relative; 87 | top: 0.1rem; 88 | } 89 | 90 | .md-header__button.md-logo img, .md-header__button.md-logo svg { 91 | width: 3rem; 92 | } 93 | 94 | .md-header__title { 95 | font-family: "Roboto Slab"; 96 | } 97 | 98 | .md-typeset .md-button--primary { 99 | background-color: var(--md-primary-fg-color); 100 | background-image: linear-gradient(to top, rgba(0,0,0,0.05), rgba(255,255,255,0.07)); 101 | border-radius: 3px; 102 | font-weight: normal; 103 | } 104 | 105 | .md-typeset code { 106 | font-size: 0.95em !important; 107 | } 108 | 109 | .md-typeset table:not([class]) { 110 | font-size: 0.8rem !important; 111 | } 112 | 113 | .md-typeset .tabbed-set>label { 114 | font-size: 0.8rem !important; 115 | padding: .6em 1em; 116 | } -------------------------------------------------------------------------------- /samples/advanced/targets_from_csv.py: -------------------------------------------------------------------------------- 1 | # !/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | """Move all axes to targets read from CSV file 'DATAFILE'.""" 4 | 5 | # (c)2016 Physik Instrumente (PI) GmbH & Co. KG 6 | # Software products that are provided by PI are subject to the 7 | # General Software License Agreement of Physik Instrumente (PI) GmbH & Co. KG 8 | # and may incorporate and/or make use of third-party software components. 9 | # For more information, please read the General Software License Agreement 10 | # and the Third Party Software Note linked below. 11 | # General Software License Agreement: 12 | # http://www.physikinstrumente.com/download/EULA_PhysikInstrumenteGmbH_Co_KG.pdf 13 | # Third Party Software Note: 14 | # http://www.physikinstrumente.com/download/TPSWNote_PhysikInstrumenteGmbH_Co_KG.pdf 15 | 16 | 17 | from time import sleep 18 | 19 | from pipython import GCSDevice, pitools 20 | 21 | __signature__ = 0x40283f3630b438e8a728570e3e36082f 22 | 23 | CONTROLLERNAME = 'C-884' 24 | STAGES = ['M-110K078', ] # connect stages to axes 25 | REFMODES = ['FRF', ] # reference the connected stages 26 | 27 | DATAFILE = 'targets_from_csv.csv' # Enter the absolute path to this file (targets_from_csv.csv) 28 | RELAXTIME = 200 # time in ms to wait after each motion command or 0 to wait for on target state 29 | SEPARATOR = ',' 30 | 31 | 32 | def main(): 33 | """Connect controller, setup stages and move all axes to targets read from CSV file 'DATAFILE'.""" 34 | with GCSDevice(CONTROLLERNAME) as pidevice: 35 | pidevice.ConnectTCPIP(ipaddress='172.16.244.33') 36 | # pidevice.ConnectUSB(serialnum='123456789') 37 | # pidevice.ConnectRS232(comport=1, baudrate=115200) 38 | print('connected: {}'.format(pidevice.qIDN().strip())) 39 | print('initialize connected stages...') 40 | pitools.startup(pidevice, stages=STAGES, refmodes=REFMODES) 41 | movetotargets(pidevice) 42 | 43 | 44 | def movetotargets(pidevice): 45 | """Move all axes to targets read from CSV file 'DATAFILE'. 46 | Add further columns if there are more than 6 axes connected. 47 | @type pidevice : pipython.gcscommands.GCSCommands 48 | """ 49 | with open(DATAFILE, 'r') as fobj: 50 | for line in fobj: 51 | targets = line.split(SEPARATOR)[:pidevice.numaxes] 52 | print('targets: {}'.format(', '.join(targets))) 53 | targets = [float(x) for x in targets] 54 | pidevice.MOV(pidevice.axes, targets) 55 | sleep(RELAXTIME / 1000.) 56 | if not RELAXTIME: 57 | pitools.waitontarget(pidevice) 58 | print('done') 59 | 60 | 61 | if __name__ == '__main__': 62 | # from pipython import PILogger, DEBUG, INFO, WARNING, ERROR, CRITICAL 63 | # PILogger.setLevel(DEBUG) 64 | main() 65 | -------------------------------------------------------------------------------- /samples/setparameter_gcs30.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | """This example demonstrates how to read and write parameters with a GCS 3.0 device.""" 4 | 5 | # (c)2021 Physik Instrumente (PI) GmbH & Co. KG 6 | # Software products that are provided by PI are subject to the 7 | # General Software License Agreement of Physik Instrumente (PI) GmbH & Co. KG 8 | # and may incorporate and/or make use of third-party software components. 9 | # For more information, please read the General Software License Agreement 10 | # and the Third Party Software Note linked below. 11 | # General Software License Agreement: 12 | # http://www.physikinstrumente.com/download/EULA_PhysikInstrumenteGmbH_Co_KG.pdf 13 | # Third Party Software Note: 14 | # http://www.physikinstrumente.com/download/TPSWNote_PhysikInstrumenteGmbH_Co_KG.pdf 15 | 16 | 17 | 18 | from pipython import GCSDevice 19 | 20 | __signature__ = 0x25ce29daf01c16560076e151708db74b 21 | 22 | def readparametervalue(device, memtype, cont_unit, func_unit, parameter_id): 23 | return device.qSPV(memtype, cont_unit, func_unit, parameter_id)[memtype][cont_unit][func_unit][parameter_id] 24 | 25 | def main(): 26 | """Connect to a PIPython device.""" 27 | 28 | # We recommend to use GCSDevice as context manager with "with". 29 | 30 | with GCSDevice() as pidevice: 31 | # Choose the interface which is appropriate to your cabling. 32 | 33 | pidevice.ConnectTCPIP(ipaddress='localhost') 34 | #pidevice.ConnectUSB(serialnum='104237344') 35 | # pidevice.ConnectRS232(comport=1, baudrate=115200) 36 | 37 | # Each PI controller supports the qIDN() command which returns an 38 | # identification string with a trailing line feed character which 39 | # we "strip" away. 40 | 41 | print('connected: {}'.format(pidevice.qIDN().strip())) 42 | 43 | # Show the version info which is helpful for PI support when there 44 | # are any issues. 45 | 46 | if pidevice.HasqVER(): 47 | print('version info: {}'.format(pidevice.qVER().strip())) 48 | 49 | # read out maximum velocity for AXIS_1 and set velocity to 50% of maximum 50 | 51 | maxvelocity = readparametervalue(pidevice, "RAM", "AXIS_1", "TRAJ_1", "0x105") 52 | velocity = maxvelocity * 0.5 53 | pidevice.SPV("RAM", "AXIS_1", "TRAJ_1", "0x104", velocity) 54 | print('maximum velocity is {0}, set velocity to {1}'.format(maxvelocity, velocity)) 55 | 56 | 57 | if __name__ == '__main__': 58 | # To see what is going on in the background you can remove the following 59 | # two hashtags. Then debug messages are shown. This can be helpful if 60 | # there are any issues. 61 | 62 | # from pipython import PILogger, DEBUG, INFO, WARNING, ERROR, CRITICAL 63 | # PILogger.setLevel(DEBUG) 64 | 65 | main() 66 | -------------------------------------------------------------------------------- /site/assets/stylesheets/palette.cc9b2e1e.min.css.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["src/assets/stylesheets/palette/_accent.scss","../../../src/assets/stylesheets/palette.scss","src/assets/stylesheets/palette/_primary.scss","src/assets/stylesheets/utilities/_break.scss","src/assets/stylesheets/palette/_scheme.scss"],"names":[],"mappings":"AA8CE,2BACE,4BAAA,CACA,oDAAA,CAOE,yBAAA,CACA,8CCnDN,CDyCE,4BACE,4BAAA,CACA,mDAAA,CAOE,yBAAA,CACA,8CC5CN,CDkCE,8BACE,4BAAA,CACA,qDAAA,CAOE,yBAAA,CACA,8CCrCN,CD2BE,mCACE,4BAAA,CACA,qDAAA,CAOE,yBAAA,CACA,8CC9BN,CDoBE,8BACE,4BAAA,CACA,qDAAA,CAOE,yBAAA,CACA,8CCvBN,CDaE,4BACE,4BAAA,CACA,qDAAA,CAOE,yBAAA,CACA,8CChBN,CDME,kCACE,4BAAA,CACA,oDAAA,CAOE,yBAAA,CACA,8CCTN,CDDE,4BACE,4BAAA,CACA,oDAAA,CAOE,yBAAA,CACA,8CCFN,CDRE,4BACE,4BAAA,CACA,oDAAA,CAOE,yBAAA,CACA,8CCKN,CDfE,6BACE,4BAAA,CACA,mDAAA,CAOE,yBAAA,CACA,8CCYN,CDtBE,mCACE,4BAAA,CACA,oDAAA,CAOE,yBAAA,CACA,8CCmBN,CD7BE,4BACE,4BAAA,CACA,oDAAA,CAIE,oCAAA,CACA,2CC6BN,CDpCE,8BACE,4BAAA,CACA,oDAAA,CAIE,oCAAA,CACA,2CCoCN,CD3CE,6BACE,yBAAA,CACA,oDAAA,CAIE,oCAAA,CACA,2CC2CN,CDlDE,8BACE,4BAAA,CACA,oDAAA,CAIE,oCAAA,CACA,2CCkDN,CDzDE,mCACE,4BAAA,CACA,qDAAA,CAOE,yBAAA,CACA,8CCsDN,CC3DE,4BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,+CDwDN,CCnEE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,+CDgEN,CC3EE,+BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,+CDwEN,CCnFE,oCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,+CDgFN,CC3FE,+BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,+CDwFN,CCnGE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,+CDgGN,CC3GE,mCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,+CDwGN,CCnHE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,+CDgHN,CC3HE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,+CDwHN,CCnIE,8BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,+CDgIN,CC3IE,oCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,+CDwIN,CCnJE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAIE,qCAAA,CACA,4CDmJN,CC3JE,+BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAIE,qCAAA,CACA,4CD2JN,CCnKE,8BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAIE,qCAAA,CACA,4CDmKN,CC3KE,+BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAIE,qCAAA,CACA,4CD2KN,CCnLE,oCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,+CDgLN,CC3LE,8BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,+CDwLN,CCnME,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,+CDgMN,CC3ME,kCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,+CDwMN,CC9LA,8BACE,0BAAA,CACA,+CAAA,CACA,2CAAA,CACA,qCAAA,CACA,4CAAA,CAGA,4BD+LF,CE9EI,mCD3GA,+CACE,gCD4LJ,CCzLI,qDACE,gCD2LN,CCtLE,iEACE,qBDwLJ,CACF,CEzFI,sCDxFA,uCACE,0CDoLJ,CACF,CC3KA,8BACE,0BAAA,CACA,4CAAA,CACA,gCAAA,CACA,0BAAA,CACA,+CAAA,CAGA,4BD4KF,CCzKE,yCACE,qBD2KJ,CEvFI,wCD7EA,8CACE,gCDuKJ,CACF,CE/GI,mCDjDA,+CACE,oCDmKJ,CChKI,qDACE,mCDkKN,CACF,CEpGI,wCDtDA,iFACE,qBD6JJ,CACF,CE5HI,sCD1BA,uCACE,qBDyJJ,CACF,CGvSA,cAGE,6BAKE,YAAA,CAGA,mDAAA,CACA,6DAAA,CACA,+DAAA,CACA,gEAAA,CACA,mDAAA,CACA,6DAAA,CACA,+DAAA,CACA,gEAAA,CAGA,gDAAA,CACA,gDAAA,CAGA,uCAAA,CACA,iCAAA,CACA,kCAAA,CACA,mCAAA,CACA,mCAAA,CACA,kCAAA,CACA,iCAAA,CACA,+CAAA,CACA,6DAAA,CACA,gEAAA,CACA,4DAAA,CACA,4DAAA,CACA,6DAAA,CAGA,6CAAA,CAGA,+CAAA,CAGA,2CAAA,CAGA,uDAAA,CACA,6DAAA,CACA,2DAAA,CAGA,yDAAA,CAGA,0DAAA,CAGA,qDAAA,CACA,wDHgRF,CG7QE,oHAIE,4BH4QJ,CGxQE,kHAEE,YH0QJ,CGtQE,gHAEE,eHwQJ,CGnQA,+FAGE,iCHsQF,CACF","file":"palette.css"} -------------------------------------------------------------------------------- /site/assets/javascripts/lunr/min/lunr.stemmer.support.min.js: -------------------------------------------------------------------------------- 1 | !function(r,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(r.lunr)}(this,function(){return function(r){r.stemmerSupport={Among:function(r,t,i,s){if(this.toCharArray=function(r){for(var t=r.length,i=new Array(t),s=0;s=i&&(e-=i,t[e>>3]&1<<(7&e)))return this.cursor++,!0}return!1},in_grouping_b:function(t,i,s){if(this.cursor>this.limit_backward){var e=r.charCodeAt(this.cursor-1);if(e<=s&&e>=i&&(e-=i,t[e>>3]&1<<(7&e)))return this.cursor--,!0}return!1},out_grouping:function(t,i,s){if(this.cursors||e>3]&1<<(7&e)))return this.cursor++,!0}return!1},out_grouping_b:function(t,i,s){if(this.cursor>this.limit_backward){var e=r.charCodeAt(this.cursor-1);if(e>s||e>3]&1<<(7&e)))return this.cursor--,!0}return!1},eq_s:function(t,i){if(this.limit-this.cursor>1),f=0,l=o0||e==s||c)break;c=!0}}for(;;){var _=t[s];if(o>=_.s_size){if(this.cursor=n+_.s_size,!_.method)return _.result;var b=_.method();if(this.cursor=n+_.s_size,b)return _.result}if((s=_.substring_i)<0)return 0}},find_among_b:function(t,i){for(var s=0,e=i,n=this.cursor,u=this.limit_backward,o=0,h=0,c=!1;;){for(var a=s+(e-s>>1),f=0,l=o=0;m--){if(n-l==u){f=-1;break}if(f=r.charCodeAt(n-1-l)-_.s[m])break;l++}if(f<0?(e=a,h=l):(s=a,o=l),e-s<=1){if(s>0||e==s||c)break;c=!0}}for(;;){var _=t[s];if(o>=_.s_size){if(this.cursor=n-_.s_size,!_.method)return _.result;var b=_.method();if(this.cursor=n-_.s_size,b)return _.result}if((s=_.substring_i)<0)return 0}},replace_s:function(t,i,s){var e=s.length-(i-t),n=r.substring(0,t),u=r.substring(i);return r=n+s+u,this.limit+=e,this.cursor>=i?this.cursor+=e:this.cursor>t&&(this.cursor=t),e},slice_check:function(){if(this.bra<0||this.bra>this.ket||this.ket>this.limit||this.limit>r.length)throw"faulty slice operation"},slice_from:function(r){this.slice_check(),this.replace_s(this.bra,this.ket,r)},slice_del:function(){this.slice_from("")},insert:function(r,t,i){var s=this.replace_s(r,t,i);r<=this.bra&&(this.bra+=s),r<=this.ket&&(this.ket+=s)},slice_to:function(){return this.slice_check(),r.substring(this.bra,this.ket)},eq_v_b:function(r){return this.eq_s_b(r.length,r)}}}},r.trimmerSupport={generateTrimmer:function(r){var t=new RegExp("^[^"+r+"]+"),i=new RegExp("[^"+r+"]+$");return function(r){return"function"==typeof r.update?r.update(function(r){return r.replace(t,"").replace(i,"")}):r.replace(t,"").replace(i,"")}}}}}); -------------------------------------------------------------------------------- /samples/datarecorder.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | """This example shows how to use the data recorder and how to plot and save the data.""" 4 | 5 | # (c)2016 Physik Instrumente (PI) GmbH & Co. KG 6 | # Software products that are provided by PI are subject to the 7 | # General Software License Agreement of Physik Instrumente (PI) GmbH & Co. KG 8 | # and may incorporate and/or make use of third-party software components. 9 | # For more information, please read the General Software License Agreement 10 | # and the Third Party Software Note linked below. 11 | # General Software License Agreement: 12 | # http://www.physikinstrumente.com/download/EULA_PhysikInstrumenteGmbH_Co_KG.pdf 13 | # Third Party Software Note: 14 | # http://www.physikinstrumente.com/download/TPSWNote_PhysikInstrumenteGmbH_Co_KG.pdf 15 | 16 | """This sample requires the python package matplotlib to work""" 17 | 18 | try: 19 | from matplotlib import pyplot 20 | except ImportError: 21 | pyplot = None 22 | 23 | from pipython import GCSDevice, datarectools, pitools 24 | 25 | __signature__ = 0xca7f9fccc2eda0053abb09677a2b80ec 26 | 27 | CONTROLLERNAME = 'C-884' 28 | STAGES = ['M-111.1DG', ] # connect stages to axes 29 | REFMODES = ['FNL', ] # reference the connected stages 30 | 31 | NUMVALUES = 1024 # number of data sets to record as integer 32 | RECRATE = 2000 # number of recordings per second, i.e. in Hz 33 | 34 | 35 | def main(): 36 | """Connect device, set up stage and read and display datarecorder data.""" 37 | with GCSDevice(CONTROLLERNAME) as pidevice: 38 | pidevice.ConnectTCPIP(ipaddress='192.168.90.207') 39 | # pidevice.ConnectUSB(serialnum='123456789') 40 | # pidevice.ConnectRS232(comport=1, baudrate=115200) 41 | print('connected: {}'.format(pidevice.qIDN().strip())) 42 | print('initialize connected stages...') 43 | pitools.startup(pidevice, STAGES, REFMODES) 44 | drec = datarectools.Datarecorder(pidevice) 45 | recorddata(drec) 46 | print('move stage on axis {}...'.format(pidevice.axes[0])) 47 | pidevice.MVR(pidevice.axes[0], 0.1) 48 | processdata(drec) 49 | 50 | 51 | def recorddata(drec): 52 | """Set up data recorder to record 2 tables for first axis after next motion command. 53 | @type drec : pipython.datarectools.Datarecorder 54 | """ 55 | drec.numvalues = NUMVALUES 56 | drec.samplefreq = RECRATE 57 | print('data recorder rate: {:.2f} Hz'.format(drec.samplefreq)) 58 | drec.options = (datarectools.RecordOptions.ACTUAL_POSITION_2, 59 | datarectools.RecordOptions.COMMANDED_POSITION_1) 60 | drec.sources = drec.gcs.axes[0] 61 | drec.trigsources = datarectools.TriggerSources.POSITION_CHANGING_COMMAND_1 62 | drec.arm() 63 | 64 | 65 | def processdata(drec): 66 | """Read out, plot and save data recorder data. 67 | @type drec : pipython.datarectools.Datarecorder 68 | """ 69 | if pyplot is None: 70 | print('matplotlib is not installed') 71 | return 72 | pyplot.plot(drec.timescale, drec.data[0], color='red') 73 | pyplot.plot(drec.timescale, drec.data[1], color='blue') 74 | pyplot.xlabel('time (s)') 75 | pyplot.ylabel(', '.join((drec.header['NAME0'], drec.header['NAME1']))) 76 | pyplot.title('Datarecorder data over time') 77 | pyplot.grid(True) 78 | pyplot.show() 79 | print('save GCSArray to file "gcsarray.dat"') 80 | pitools.savegcsarray('gcsarray.dat', drec.header, drec.data) 81 | 82 | 83 | if __name__ == '__main__': 84 | # from pipython import PILogger, DEBUG, INFO, WARNING, ERROR, CRITICAL 85 | # PILogger.setLevel(DEBUG) 86 | main() 87 | -------------------------------------------------------------------------------- /samples/advanced/TrajectorySample.py: -------------------------------------------------------------------------------- 1 | __signature__ = 0xc5bbd81b94ebdc676b4dea739c7fe2c3 2 | #!/usr/bin python 3 | # -*- coding: utf-8 -*- 4 | """This example shows how to realize a cyclic circular motion with trajectories.""" 5 | 6 | # (c)2016 Physik Instrumente (PI) GmbH & Co. KG 7 | # Software products that are provided by PI are subject to the 8 | # General Software License Agreement of Physik Instrumente (PI) GmbH & Co. KG 9 | # and may incorporate and/or make use of third-party software components. 10 | # For more information, please read the General Software License Agreement 11 | # and the Third Party Software Note linked below. 12 | # General Software License Agreement: 13 | # http://www.physikinstrumente.com/download/EULA_PhysikInstrumenteGmbH_Co_KG.pdf 14 | # Third Party Software Note: 15 | # http://www.physikinstrumente.com/download/TPSWNote_PhysikInstrumenteGmbH_Co_KG.pdf 16 | 17 | 18 | from math import cos, sin, pi 19 | 20 | from pipython import GCSDevice, pitools 21 | from pipython.datarectools import getservotime 22 | 23 | CONTROLLERNAME = 'C-867.2U2' 24 | STAGES = [] # connect stages to axes 25 | REFMODE = [] # reference the connected stages 26 | 27 | PERIOD = 5.0 # duration of one sine period in seconds as float 28 | CENTERPOS = (0.0, 0.0) # center position of the circular motion as float for both axes 29 | AMPLITUDE = (10.0, 10.0) # amplitude (i.e. diameter) of the circular motion as float for both axes 30 | BUFFERMIN = 200 # minimum number of points in buffer until motion is started 31 | 32 | 33 | def main(): 34 | """Connect controller, setup stages and start trajectories.""" 35 | with GCSDevice(CONTROLLERNAME) as pidevice: 36 | #pidevice.ConnectRS232(comport=1, baudrate=115200) 37 | pidevice.ConnectUSB(serialnum='0116023162') 38 | # pidevice.ConnectTCPIP(ipaddress='192.168.178.42') 39 | print('connected: {}'.format(pidevice.qIDN().strip())) 40 | print('maximum buffer size: {}'.format(pidevice.qSPA(1, 0x22000020)[1][0x22000020])) 41 | print('initialize connected stages...') 42 | # pitools.startup(pidevice, stages=STAGES, refmode=REFMODE) 43 | runprofile(pidevice) 44 | 45 | 46 | def runprofile(pidevice): 47 | """Move to start position, set up and run trajectories and wait until they are finished. 48 | @type pidevice : pipython.gcscommands.GCSCommands 49 | """ 50 | assert 2 == len(pidevice.axes[:2]), 'this sample requires two connected axes' 51 | trajectories = (1, 2) 52 | numpoints = pidevice.qSPA(1, 0x22000020)[1][0x22000020] # maximum buffer size 53 | xvals = [2 * pi * float(i) / float(numpoints) for i in range(numpoints)] 54 | xtrajectory = [CENTERPOS[0] + AMPLITUDE[0] / 2.0 * sin(xval) for xval in xvals] 55 | ytrajectory = [CENTERPOS[1] + AMPLITUDE[1] / 2.0 * cos(xval) for xval in xvals] 56 | print('move axes {} to their start positions {}'.format(pidevice.axes[:2], (xtrajectory[0], ytrajectory[0]))) 57 | pidevice.MOV(pidevice.axes[:2], (xtrajectory[0], ytrajectory[0])) 58 | pitools.waitontarget(pidevice, pidevice.axes[:2]) 59 | servotime = getservotime(pidevice) 60 | tgtvalue = int(float(PERIOD) / float(numpoints) / servotime) 61 | print('set %d servo cycles per point -> period of %.2f seconds' % (tgtvalue, tgtvalue * servotime * numpoints)) 62 | pidevice.TGT(tgtvalue) 63 | print('trajectory timing: {}'.format(pidevice.qTGT())) 64 | print('clear existing trajectories') 65 | pidevice.TGC(trajectories) 66 | pointnum = 0 67 | print('\r%s' % (' ' * 40)), 68 | while pointnum < numpoints: 69 | if pidevice.qTGL(1)[1] < BUFFERMIN: 70 | pidevice.TGA(trajectories, (xtrajectory[pointnum], ytrajectory[pointnum])) 71 | pointnum += 1 72 | print('\rappend point {}/{}'.format(pointnum, numpoints)), 73 | if BUFFERMIN == pointnum: 74 | print('\nstarting trajectories') 75 | pidevice.TGS(trajectories) 76 | if numpoints == pointnum: 77 | print('\nfinishing trajectories') 78 | pidevice.TGF(trajectories) 79 | pitools.waitontrajectory(pidevice, trajectories) 80 | print('done') 81 | 82 | 83 | if __name__ == '__main__': 84 | # from pipython import PILogger, DEBUG, INFO, WARNING, ERROR, CRITICAL 85 | # PILogger.setLevel(DEBUG) 86 | main() 87 | -------------------------------------------------------------------------------- /site/assets/javascripts/lunr/min/lunr.sv.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Lunr languages, `Swedish` language 3 | * https://github.com/MihaiValentin/lunr-languages 4 | * 5 | * Copyright 2014, Mihai Valentin 6 | * http://www.mozilla.org/MPL/ 7 | */ 8 | /*! 9 | * based on 10 | * Snowball JavaScript Library v0.3 11 | * http://code.google.com/p/urim/ 12 | * http://snowball.tartarus.org/ 13 | * 14 | * Copyright 2010, Oleg Mazko 15 | * http://www.mozilla.org/MPL/ 16 | */ 17 | 18 | !function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.sv=function(){this.pipeline.reset(),this.pipeline.add(e.sv.trimmer,e.sv.stopWordFilter,e.sv.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.sv.stemmer))},e.sv.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.sv.trimmer=e.trimmerSupport.generateTrimmer(e.sv.wordCharacters),e.Pipeline.registerFunction(e.sv.trimmer,"trimmer-sv"),e.sv.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,t=new function(){function e(){var e,r=w.cursor+3;if(o=w.limit,0<=r||r<=w.limit){for(a=r;;){if(e=w.cursor,w.in_grouping(l,97,246)){w.cursor=e;break}if(w.cursor=e,w.cursor>=w.limit)return;w.cursor++}for(;!w.out_grouping(l,97,246);){if(w.cursor>=w.limit)return;w.cursor++}o=w.cursor,o=o&&(w.limit_backward=o,w.cursor=w.limit,w.ket=w.cursor,e=w.find_among_b(u,37),w.limit_backward=r,e))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:w.in_grouping_b(d,98,121)&&w.slice_del()}}function i(){var e=w.limit_backward;w.cursor>=o&&(w.limit_backward=o,w.cursor=w.limit,w.find_among_b(c,7)&&(w.cursor=w.limit,w.ket=w.cursor,w.cursor>w.limit_backward&&(w.bra=--w.cursor,w.slice_del())),w.limit_backward=e)}function s(){var e,r;if(w.cursor>=o){if(r=w.limit_backward,w.limit_backward=o,w.cursor=w.limit,w.ket=w.cursor,e=w.find_among_b(m,5))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:w.slice_from("lös");break;case 3:w.slice_from("full")}w.limit_backward=r}}var a,o,u=[new r("a",-1,1),new r("arna",0,1),new r("erna",0,1),new r("heterna",2,1),new r("orna",0,1),new r("ad",-1,1),new r("e",-1,1),new r("ade",6,1),new r("ande",6,1),new r("arne",6,1),new r("are",6,1),new r("aste",6,1),new r("en",-1,1),new r("anden",12,1),new r("aren",12,1),new r("heten",12,1),new r("ern",-1,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",18,1),new r("or",-1,1),new r("s",-1,2),new r("as",21,1),new r("arnas",22,1),new r("ernas",22,1),new r("ornas",22,1),new r("es",21,1),new r("ades",26,1),new r("andes",26,1),new r("ens",21,1),new r("arens",29,1),new r("hetens",29,1),new r("erns",21,1),new r("at",-1,1),new r("andet",-1,1),new r("het",-1,1),new r("ast",-1,1)],c=[new r("dd",-1,-1),new r("gd",-1,-1),new r("nn",-1,-1),new r("dt",-1,-1),new r("gt",-1,-1),new r("kt",-1,-1),new r("tt",-1,-1)],m=[new r("ig",-1,1),new r("lig",0,1),new r("els",-1,1),new r("fullt",-1,3),new r("löst",-1,2)],l=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,24,0,32],d=[119,127,149],w=new n;this.setCurrent=function(e){w.setCurrent(e)},this.getCurrent=function(){return w.getCurrent()},this.stem=function(){var r=w.cursor;return e(),w.limit_backward=r,w.cursor=w.limit,t(),w.cursor=w.limit,i(),w.cursor=w.limit,s(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return t.setCurrent(e),t.stem(),t.getCurrent()}):(t.setCurrent(e),t.stem(),t.getCurrent())}}(),e.Pipeline.registerFunction(e.sv.stemmer,"stemmer-sv"),e.sv.stopWordFilter=e.generateStopWordFilter("alla allt att av blev bli blir blivit de dem den denna deras dess dessa det detta dig din dina ditt du där då efter ej eller en er era ert ett från för ha hade han hans har henne hennes hon honom hur här i icke ingen inom inte jag ju kan kunde man med mellan men mig min mina mitt mot mycket ni nu när någon något några och om oss på samma sedan sig sin sina sitta själv skulle som så sådan sådana sådant till under upp ut utan vad var vara varför varit varje vars vart vem vi vid vilka vilkas vilken vilket vår våra vårt än är åt över".split(" ")),e.Pipeline.registerFunction(e.sv.stopWordFilter,"stopWordFilter-sv")}}); -------------------------------------------------------------------------------- /site/assets/javascripts/lunr/min/lunr.da.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Lunr languages, `Danish` language 3 | * https://github.com/MihaiValentin/lunr-languages 4 | * 5 | * Copyright 2014, Mihai Valentin 6 | * http://www.mozilla.org/MPL/ 7 | */ 8 | /*! 9 | * based on 10 | * Snowball JavaScript Library v0.3 11 | * http://code.google.com/p/urim/ 12 | * http://snowball.tartarus.org/ 13 | * 14 | * Copyright 2010, Oleg Mazko 15 | * http://www.mozilla.org/MPL/ 16 | */ 17 | 18 | !function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.da=function(){this.pipeline.reset(),this.pipeline.add(e.da.trimmer,e.da.stopWordFilter,e.da.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.da.stemmer))},e.da.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.da.trimmer=e.trimmerSupport.generateTrimmer(e.da.wordCharacters),e.Pipeline.registerFunction(e.da.trimmer,"trimmer-da"),e.da.stemmer=function(){var r=e.stemmerSupport.Among,i=e.stemmerSupport.SnowballProgram,n=new function(){function e(){var e,r=f.cursor+3;if(d=f.limit,0<=r&&r<=f.limit){for(a=r;;){if(e=f.cursor,f.in_grouping(w,97,248)){f.cursor=e;break}if(f.cursor=e,e>=f.limit)return;f.cursor++}for(;!f.out_grouping(w,97,248);){if(f.cursor>=f.limit)return;f.cursor++}d=f.cursor,d=d&&(r=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,e=f.find_among_b(c,32),f.limit_backward=r,e))switch(f.bra=f.cursor,e){case 1:f.slice_del();break;case 2:f.in_grouping_b(p,97,229)&&f.slice_del()}}function t(){var e,r=f.limit-f.cursor;f.cursor>=d&&(e=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,f.find_among_b(l,4)?(f.bra=f.cursor,f.limit_backward=e,f.cursor=f.limit-r,f.cursor>f.limit_backward&&(f.cursor--,f.bra=f.cursor,f.slice_del())):f.limit_backward=e)}function s(){var e,r,i,n=f.limit-f.cursor;if(f.ket=f.cursor,f.eq_s_b(2,"st")&&(f.bra=f.cursor,f.eq_s_b(2,"ig")&&f.slice_del()),f.cursor=f.limit-n,f.cursor>=d&&(r=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,e=f.find_among_b(m,5),f.limit_backward=r,e))switch(f.bra=f.cursor,e){case 1:f.slice_del(),i=f.limit-f.cursor,t(),f.cursor=f.limit-i;break;case 2:f.slice_from("løs")}}function o(){var e;f.cursor>=d&&(e=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,f.out_grouping_b(w,97,248)?(f.bra=f.cursor,u=f.slice_to(u),f.limit_backward=e,f.eq_v_b(u)&&f.slice_del()):f.limit_backward=e)}var a,d,u,c=[new r("hed",-1,1),new r("ethed",0,1),new r("ered",-1,1),new r("e",-1,1),new r("erede",3,1),new r("ende",3,1),new r("erende",5,1),new r("ene",3,1),new r("erne",3,1),new r("ere",3,1),new r("en",-1,1),new r("heden",10,1),new r("eren",10,1),new r("er",-1,1),new r("heder",13,1),new r("erer",13,1),new r("s",-1,2),new r("heds",16,1),new r("es",16,1),new r("endes",18,1),new r("erendes",19,1),new r("enes",18,1),new r("ernes",18,1),new r("eres",18,1),new r("ens",16,1),new r("hedens",24,1),new r("erens",24,1),new r("ers",16,1),new r("ets",16,1),new r("erets",28,1),new r("et",-1,1),new r("eret",30,1)],l=[new r("gd",-1,-1),new r("dt",-1,-1),new r("gt",-1,-1),new r("kt",-1,-1)],m=[new r("ig",-1,1),new r("lig",0,1),new r("elig",1,1),new r("els",-1,1),new r("løst",-1,2)],w=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],p=[239,254,42,3,0,0,0,0,0,0,0,0,0,0,0,0,16],f=new i;this.setCurrent=function(e){f.setCurrent(e)},this.getCurrent=function(){return f.getCurrent()},this.stem=function(){var r=f.cursor;return e(),f.limit_backward=r,f.cursor=f.limit,n(),f.cursor=f.limit,t(),f.cursor=f.limit,s(),f.cursor=f.limit,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.da.stemmer,"stemmer-da"),e.da.stopWordFilter=e.generateStopWordFilter("ad af alle alt anden at blev blive bliver da de dem den denne der deres det dette dig din disse dog du efter eller en end er et for fra ham han hans har havde have hende hendes her hos hun hvad hvis hvor i ikke ind jeg jer jo kunne man mange med meget men mig min mine mit mod ned noget nogle nu når og også om op os over på selv sig sin sine sit skal skulle som sådan thi til ud under var vi vil ville vor være været".split(" ")),e.Pipeline.registerFunction(e.da.stopWordFilter,"stopWordFilter-da")}}); -------------------------------------------------------------------------------- /site/assets/javascripts/lunr/min/lunr.no.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Lunr languages, `Norwegian` language 3 | * https://github.com/MihaiValentin/lunr-languages 4 | * 5 | * Copyright 2014, Mihai Valentin 6 | * http://www.mozilla.org/MPL/ 7 | */ 8 | /*! 9 | * based on 10 | * Snowball JavaScript Library v0.3 11 | * http://code.google.com/p/urim/ 12 | * http://snowball.tartarus.org/ 13 | * 14 | * Copyright 2010, Oleg Mazko 15 | * http://www.mozilla.org/MPL/ 16 | */ 17 | 18 | !function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.no=function(){this.pipeline.reset(),this.pipeline.add(e.no.trimmer,e.no.stopWordFilter,e.no.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.no.stemmer))},e.no.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.no.trimmer=e.trimmerSupport.generateTrimmer(e.no.wordCharacters),e.Pipeline.registerFunction(e.no.trimmer,"trimmer-no"),e.no.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,i=new function(){function e(){var e,r=w.cursor+3;if(a=w.limit,0<=r||r<=w.limit){for(s=r;;){if(e=w.cursor,w.in_grouping(d,97,248)){w.cursor=e;break}if(e>=w.limit)return;w.cursor=e+1}for(;!w.out_grouping(d,97,248);){if(w.cursor>=w.limit)return;w.cursor++}a=w.cursor,a=a&&(r=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,e=w.find_among_b(m,29),w.limit_backward=r,e))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:n=w.limit-w.cursor,w.in_grouping_b(c,98,122)?w.slice_del():(w.cursor=w.limit-n,w.eq_s_b(1,"k")&&w.out_grouping_b(d,97,248)&&w.slice_del());break;case 3:w.slice_from("er")}}function t(){var e,r=w.limit-w.cursor;w.cursor>=a&&(e=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,w.find_among_b(u,2)?(w.bra=w.cursor,w.limit_backward=e,w.cursor=w.limit-r,w.cursor>w.limit_backward&&(w.cursor--,w.bra=w.cursor,w.slice_del())):w.limit_backward=e)}function o(){var e,r;w.cursor>=a&&(r=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,e=w.find_among_b(l,11),e?(w.bra=w.cursor,w.limit_backward=r,1==e&&w.slice_del()):w.limit_backward=r)}var s,a,m=[new r("a",-1,1),new r("e",-1,1),new r("ede",1,1),new r("ande",1,1),new r("ende",1,1),new r("ane",1,1),new r("ene",1,1),new r("hetene",6,1),new r("erte",1,3),new r("en",-1,1),new r("heten",9,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",12,1),new r("s",-1,2),new r("as",14,1),new r("es",14,1),new r("edes",16,1),new r("endes",16,1),new r("enes",16,1),new r("hetenes",19,1),new r("ens",14,1),new r("hetens",21,1),new r("ers",14,1),new r("ets",14,1),new r("et",-1,1),new r("het",25,1),new r("ert",-1,3),new r("ast",-1,1)],u=[new r("dt",-1,-1),new r("vt",-1,-1)],l=[new r("leg",-1,1),new r("eleg",0,1),new r("ig",-1,1),new r("eig",2,1),new r("lig",2,1),new r("elig",4,1),new r("els",-1,1),new r("lov",-1,1),new r("elov",7,1),new r("slov",7,1),new r("hetslov",9,1)],d=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],c=[119,125,149,1],w=new n;this.setCurrent=function(e){w.setCurrent(e)},this.getCurrent=function(){return w.getCurrent()},this.stem=function(){var r=w.cursor;return e(),w.limit_backward=r,w.cursor=w.limit,i(),w.cursor=w.limit,t(),w.cursor=w.limit,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.no.stemmer,"stemmer-no"),e.no.stopWordFilter=e.generateStopWordFilter("alle at av bare begge ble blei bli blir blitt både båe da de deg dei deim deira deires dem den denne der dere deres det dette di din disse ditt du dykk dykkar då eg ein eit eitt eller elles en enn er et ett etter for fordi fra før ha hadde han hans har hennar henne hennes her hjå ho hoe honom hoss hossen hun hva hvem hver hvilke hvilken hvis hvor hvordan hvorfor i ikke ikkje ikkje ingen ingi inkje inn inni ja jeg kan kom korleis korso kun kunne kva kvar kvarhelst kven kvi kvifor man mange me med medan meg meget mellom men mi min mine mitt mot mykje ned no noe noen noka noko nokon nokor nokre nå når og også om opp oss over på samme seg selv si si sia sidan siden sin sine sitt sjøl skal skulle slik so som som somme somt så sånn til um upp ut uten var vart varte ved vere verte vi vil ville vore vors vort vår være være vært å".split(" ")),e.Pipeline.registerFunction(e.no.stopWordFilter,"stopWordFilter-no")}}); -------------------------------------------------------------------------------- /samples/advanced/wavegenerator_circle.py: -------------------------------------------------------------------------------- 1 | # !/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | """This example shows how to realize a cyclic circular motion with the wave generator.""" 4 | 5 | # (c)2016 Physik Instrumente (PI) GmbH & Co. KG 6 | # Software products that are provided by PI are subject to the 7 | # General Software License Agreement of Physik Instrumente (PI) GmbH & Co. KG 8 | # and may incorporate and/or make use of third-party software components. 9 | # For more information, please read the General Software License Agreement 10 | # and the Third Party Software Note linked below. 11 | # General Software License Agreement: 12 | # http://www.physikinstrumente.com/download/EULA_PhysikInstrumenteGmbH_Co_KG.pdf 13 | # Third Party Software Note: 14 | # http://www.physikinstrumente.com/download/TPSWNote_PhysikInstrumenteGmbH_Co_KG.pdf 15 | 16 | 17 | from time import sleep 18 | 19 | from pipython import GCSDevice, pitools 20 | 21 | __signature__ = 0xadc2596931d0068f159c92c682574882 22 | 23 | CONTROLLERNAME = 'C-887' # This sample is only valid for the C-887 controller 24 | STAGES = None # set something like ('M-122.2DD', 'M-122.2DD') if your stages need CST 25 | REFMODES = ['FRF', ] # reference first axis or hexapod 26 | 27 | NUMPOINTS = 1000 # number of points for one sine period as integer 28 | STARTPOS = (0.0, 0.0) # start position of the circular motion as float for both axes 29 | AMPLITUDE = (1.0, 1.0) # amplitude of the circular motion as float for both axes 30 | NUMCYLES = 10 # number of cycles for wave generator output 31 | TABLERATE = 10 # duration of a wave table point in multiples of servo cycle times as integer 32 | 33 | 34 | def main(): 35 | """Connect controller, setup stages and start wave generator.""" 36 | with GCSDevice(CONTROLLERNAME) as pidevice: 37 | pidevice.ConnectTCPIP(ipaddress='192.168.178.42') 38 | # pidevice.ConnectUSB(serialnum='108014631') 39 | # pidevice.ConnectRS232(comport=1, baudrate=115200) 40 | print('connected: {}'.format(pidevice.qIDN().strip())) 41 | print('initialize connected stages...') 42 | pitools.startup(pidevice, stages=STAGES, refmodes=REFMODES) 43 | runwavegen(pidevice) 44 | 45 | 46 | def runwavegen(pidevice): 47 | """Configure two wave forms, move to start position and start the wave generators. 48 | @type pidevice : pipython.gcscommands.GCSCommands 49 | """ 50 | assert 2 == len(pidevice.axes[:2]), 'this sample requires two connected axes' 51 | wavegens = (1, 2) 52 | wavetables = (1, 2) 53 | print('define sine and cosine waveforms for wave tables {}'.format(wavetables)) 54 | pidevice.WAV_SIN_P(table=wavetables[0], firstpoint=0, numpoints=NUMPOINTS, append='X', 55 | center=NUMPOINTS / 2, amplitude=AMPLITUDE[0], offset=STARTPOS[0], seglength=NUMPOINTS) 56 | pidevice.WAV_SIN_P(table=wavetables[1], firstpoint=NUMPOINTS / 4, numpoints=NUMPOINTS, append='X', 57 | center=NUMPOINTS / 2, amplitude=AMPLITUDE[1], offset=STARTPOS[1], seglength=NUMPOINTS) 58 | pitools.waitonready(pidevice) 59 | if pidevice.HasWSL(): # you can remove this code block if your controller does not support WSL() 60 | print('connect wave generators {} to wave tables {}'.format(wavegens, wavetables)) 61 | pidevice.WSL(wavegens, wavetables) 62 | if pidevice.HasWGC(): # you can remove this code block if your controller does not support WGC() 63 | print('set wave generators {} to run for {} cycles'.format(wavegens, NUMCYLES)) 64 | pidevice.WGC(wavegens, [NUMCYLES] * len(wavegens)) 65 | if pidevice.HasWTR(): # you can remove this code block if your controller does not support WTR() 66 | # Note that the WTR command has controller-specific implementations. 67 | # Refer to the controller manual for supported parameter values. 68 | print('set wave table rate to {} for wave generators {}'.format(TABLERATE, wavegens)) 69 | pidevice.WTR(wavegens, [TABLERATE] * len(wavegens), interpol=[0] * len(wavegens)) 70 | startpos = (STARTPOS[0], STARTPOS[1] + AMPLITUDE[1] / 2.0) 71 | print('move axes {} to their start positions {}'.format(pidevice.axes[:2], startpos)) 72 | pidevice.MOV(pidevice.axes[:2], startpos) 73 | pitools.waitontarget(pidevice, pidevice.axes[:2]) 74 | print('start wave generators {}'.format(wavegens)) 75 | pidevice.WGO(wavegens, mode=[1] * len(wavegens)) 76 | while any(list(pidevice.IsGeneratorRunning(wavegens).values())): 77 | print('.', end='') 78 | sleep(1.0) 79 | print('\nreset wave generators {}'.format(wavegens)) 80 | pidevice.WGO(wavegens, mode=[0] * len(wavegens)) 81 | print('done') 82 | 83 | 84 | if __name__ == '__main__': 85 | # from pipython import PILogger, DEBUG, INFO, WARNING, ERROR, CRITICAL 86 | # PILogger.setLevel(DEBUG) 87 | main() 88 | -------------------------------------------------------------------------------- /samples/advanced/wavegenerator_pnt.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | """This example helps you to define arbitrary waveforms read out from a file.""" 4 | 5 | # (c)2016 Physik Instrumente (PI) GmbH & Co. KG 6 | # Software products that are provided by PI are subject to the 7 | # General Software License Agreement of Physik Instrumente (PI) GmbH & Co. KG 8 | # and may incorporate and/or make use of third-party software components. 9 | # For more information, please read the General Software License Agreement 10 | # and the Third Party Software Note linked below. 11 | # General Software License Agreement: 12 | # http://www.physikinstrumente.com/download/EULA_PhysikInstrumenteGmbH_Co_KG.pdf 13 | # Third Party Software Note: 14 | # http://www.physikinstrumente.com/download/TPSWNote_PhysikInstrumenteGmbH_Co_KG.pdf 15 | 16 | 17 | from time import sleep 18 | 19 | from pipython import GCSDevice, pitools 20 | 21 | __signature__ = 0x3ca8b29e8dce284b4c380701e26b337c 22 | 23 | CONTROLLERNAME = 'C-887' # This sample ist only valid vor C-887 controller 24 | STAGES = None # connect stages to axes 25 | REFMODES = None # reference the connected stages 26 | 27 | DATAFILE = r'wavegenerator_pnt.txt' 28 | NUMCYLES = 2 # number of cycles for wave generator output 29 | TABLERATE = 100 # duration of a wave table point in multiples of servo cycle times as integer 30 | 31 | 32 | def main(): 33 | """Connect controller, setup wave generator, move axes to startpoint and start wave generator.""" 34 | with GCSDevice(CONTROLLERNAME) as pidevice: 35 | pidevice.ConnectTCPIP(ipaddress='192.168.178.42') 36 | # pidevice.ConnectUSB(serialnum='000000004') 37 | # pidevice.ConnectRS232(comport=1, baudrate=115200) 38 | print('connected: %s' % pidevice.qIDN().strip()) 39 | print('initialize connected stages...') 40 | pitools.startup(pidevice, stages=STAGES, refmodes=REFMODES) 41 | runwavegen(pidevice) 42 | 43 | 44 | def runwavegen(pidevice): 45 | """Read wave data, set up wave generator and run them. 46 | @type pidevice : pipython.gcscommands.GCSCommands 47 | """ 48 | wavedata = readwavedata() 49 | axes = pidevice.axes[:len(wavedata)] 50 | assert len(wavedata) == len(axes), 'this sample requires {} connected axes'.format(len(wavedata)) 51 | wavetables = range(1, len(wavedata) + 1) 52 | wavegens = range(1, len(wavedata) + 1) 53 | if pidevice.HasWCL(): # you can remove this code block if your controller does not support WCL() 54 | print('clear wave tables {}'.format(wavetables)) 55 | pidevice.WCL(wavetables) 56 | for i, wavetable in enumerate(wavetables): 57 | print('write wave points of wave table {} and axis {}'.format(wavetable, axes[i])) 58 | pitools.writewavepoints(pidevice, wavetable, wavedata[i], bunchsize=10) 59 | if pidevice.HasWSL(): # you can remove this code block if your controller does not support WSL() 60 | print('connect wave tables {} to wave generators {}'.format(wavetables, wavegens)) 61 | pidevice.WSL(wavegens, wavetables) 62 | if pidevice.HasWGC(): # you can remove this code block if your controller does not support WGC() 63 | print('set wave generators {} to run for {} cycles'.format(wavegens, NUMCYLES)) 64 | pidevice.WGC(wavegens, [NUMCYLES] * len(wavegens)) 65 | if pidevice.HasWTR(): # you can remove this code block if your controller does not support WTR() 66 | print('set wave table rate to {} for wave generators {}'.format(TABLERATE, wavegens)) 67 | pidevice.WTR(wavegens, [TABLERATE] * len(wavegens), interpol=[0] * len(wavegens)) 68 | startpos = [wavedata[i][0] for i in range(len(wavedata))] 69 | print('move axes {} to start positions {}'.format(axes, startpos)) 70 | pidevice.MOV(axes, startpos) 71 | pitools.waitontarget(pidevice, axes) 72 | print('start wave generators {}'.format(wavegens)) 73 | pidevice.WGO(wavegens, mode=[1] * len(wavegens)) 74 | while any(list(pidevice.IsGeneratorRunning(wavegens).values())): 75 | print('.', end='') 76 | sleep(1.0) 77 | print('\nreset wave generators {}'.format(wavegens)) 78 | pidevice.WGO(wavegens, mode=[0] * len(wavegens)) 79 | print('done') 80 | 81 | 82 | def readwavedata(): 83 | """Read DATAFILE, must have a column for each wavetable. 84 | @return : Datapoints as list of lists of values. 85 | """ 86 | print('read wave points from file {}'.format(DATAFILE)) 87 | data = None 88 | with open(DATAFILE) as datafile: 89 | for line in datafile: 90 | items = line.strip().split() 91 | if data is None: 92 | print('found {} data columns in file'.format(len(items))) 93 | data = [[] for _ in range(len(items))] 94 | for i, item in enumerate(items): 95 | data[i].append(item) 96 | return data 97 | 98 | 99 | if __name__ == '__main__': 100 | # from pipython import PILogger, DEBUG, INFO, WARNING, ERROR, CRITICAL 101 | # PILogger.setLevel(DEBUG) 102 | main() 103 | -------------------------------------------------------------------------------- /samples/advanced/handle_string_answers.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | """This example shows how to send string commands and handle the answer.""" 4 | 5 | # (c)2016 Physik Instrumente (PI) GmbH & Co. KG 6 | # Software products that are provided by PI are subject to the 7 | # General Software License Agreement of Physik Instrumente (PI) GmbH & Co. KG 8 | # and may incorporate and/or make use of third-party software components. 9 | # For more information, please read the General Software License Agreement 10 | # and the Third Party Software Note linked below. 11 | # General Software License Agreement: 12 | # http://www.physikinstrumente.com/download/EULA_PhysikInstrumenteGmbH_Co_KG.pdf 13 | # Third Party Software Note: 14 | # http://www.physikinstrumente.com/download/TPSWNote_PhysikInstrumenteGmbH_Co_KG.pdf 15 | 16 | 17 | from pipython import GCSDevice 18 | from pipython.pidevice import gcscommands 19 | 20 | __signature__ = 0x131230192bfd7ae19ee76c614dfdefa6 21 | 22 | def one_item_one_value(): 23 | """Sample for a command that answers with one item (e.g. axis) and one value.""" 24 | with GCSDevice() as pidevice: 25 | answer = pidevice.ReadGCSCommand('FOO? 1 2 3') 26 | # This will return: 27 | # 1 = 1.23 28 | # 2 = 2.00 29 | # 3 = 3.45 30 | 31 | # There is a helper function to get a dict of this answer. 32 | 33 | gcscommands.getdict_oneitem(answer, items=None) 34 | # Answer: {'1': '1.23', '2': '2.00', '3': '3.45'} 35 | # Remember, all keys and values are strings because the function 36 | # does not now how to convert. 37 | 38 | gcscommands.getdict_oneitem(answer, items=None, itemconv=int) 39 | # Answer: {1: '1.23', 2: '2.00', 3: '3.45'} 40 | # Now the keys are int. 41 | 42 | gcscommands.getdict_oneitem(answer, items=None, itemconv=int, valueconv=(float,)) 43 | # Answer: {1: 1.23, 2: 2.0, 3: 3.45} 44 | # Now the keys are int and the values are float. 45 | # Remember the 'valueconv' argument must be a list or a tuple! 46 | 47 | gcscommands.getdict_oneitem(answer, items=None, itemconv=int, valueconv=(True,)) 48 | # Answer: {1: 1.23, 2: 2.0, 3: 3.45} 49 | # With "True" as conversion function it will be converted as far as possible, i.e. 50 | # str, float, int is chosen automatically. The "2.0" is converted to float because 51 | # there is a "." in the string. An answer of "2" would have been converted to int. 52 | 53 | 54 | def one_item_two_values(): 55 | """Sample for a command that answers with one item (e.g. axis) and two values.""" 56 | with GCSDevice() as pidevice: 57 | answer = pidevice.ReadGCSCommand('FOO? 1 2 3') 58 | # This will return: 59 | # 1 = 1.23 4 60 | # 2 = 2.00 5 61 | # 3 = 3.45 6 62 | 63 | gcscommands.getdict_oneitem(answer, items=None) 64 | # Answer: {'1': ['1.23', '4'], '2': ['2.00', '5'], '3': ['3.45', '6']} 65 | # Remember, all keys and values are strings because the function 66 | # does not now how to convert. 67 | 68 | gcscommands.getdict_oneitem(answer, items=None, itemconv=int, valueconv=(float, int)) 69 | # Answer: {'1': [1.23, 4], '2': [2.00, 5], '3': [3.45, 6]} 70 | # Now the keys are int, the first values are float and the second values are int. 71 | 72 | 73 | def one_item_multi_values(): 74 | """Sample for a command that answers with one item (e.g. axis) and a different number of values.""" 75 | with GCSDevice() as pidevice: 76 | answer = pidevice.ReadGCSCommand('FOO? 1 2 3') 77 | # This will return: 78 | # 1 = 1.23 4 7 8 79 | # 2 = 2.00 5 9 80 | # 3 = 3.45 6 81 | 82 | gcscommands.getdict_oneitem(answer, items=None, itemconv=int, valueconv=(float, int)) 83 | # Answer: {'1': [1.23, 4, 7, 8], '2': [2.00, 5, 9], '3': [3.45, 6]} 84 | # Now the keys are int, the first values are float and the second and following values are int. 85 | 86 | 87 | def two_items_one_value(): 88 | """Sample for a command that answers with two items (e.g. axis and option) and one value.""" 89 | with GCSDevice() as pidevice: 90 | answer = pidevice.ReadGCSCommand('FOO? 1 2 1 4 2 6') 91 | # This will return: 92 | # 1 2 = 1.23 93 | # 1 4 = 2.00 94 | # 2 6 = 3.45 95 | 96 | # There is a helper function to get a dict of this answer. 97 | 98 | gcscommands.getdict_twoitems(answer, items1=None, items2=None, itemconv=[], valueconv=[]) 99 | # Answer: {'1': {'2': '1.23', '4': '2.00'}, '2': {'6': '3.45'}} 100 | # Remember, all keys and values are strings because the function 101 | # does not now how to convert. 102 | 103 | gcscommands.getdict_twoitems(answer, items1=None, items2=None, itemconv=[int, str], valueconv=(float,)) 104 | # Answer: {1: {'2': 1.23, '4': 2.00}, 2: {'6': 3.45}} 105 | # Now the keys are int and str and the values are float. Remember, itemconv must not be a tuple! 106 | 107 | 108 | if __name__ == '__main__': 109 | print('this sample is not executable') 110 | -------------------------------------------------------------------------------- /samples/datarecorder_gcs30.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | """This example shows how to use the data recorder and how to plot and save the data.""" 5 | 6 | # (c) 2021 Physik Instrumente (PI) GmbH & Co. KG 7 | # Software products that are provided by PI are subject to the 8 | # General Software License Agreement of Physik Instrumente (PI) GmbH & Co. KG 9 | # and may incorporate and/or make use of third-party software components. 10 | # For more information, please read the General Software License Agreement 11 | # and the Third Party Software Note linked below. 12 | # General Software License Agreement: 13 | # http://www.physikinstrumente.com/download/EULA_PhysikInstrumenteGmbH_Co_KG.pdf 14 | # Third Party Software Note: 15 | # http://www.physikinstrumente.com/download/TPSWNote_PhysikInstrumenteGmbH_Co_KG.pdf 16 | 17 | """This sample requires the python package matplotlib to work""" 18 | 19 | from pipython import GCSDevice, datarectools, pitools 20 | 21 | try: 22 | from matplotlib import pyplot 23 | except ImportError: 24 | pyplot = None 25 | 26 | 27 | 28 | __signature__ = 0xa325f76851b9413c83ef115ebab6c83 29 | 30 | CONTROLLERNAME = 'E-880' # 'C-884' will also work 31 | STAGES = None 32 | REFMODES = ['FRF', 'FRF'] 33 | 34 | 35 | NUMVALUES = 1024 # number of data sets to record as integer 36 | RECORD_RATE = 1 # number of servo cycles between two recorded values 37 | 38 | DATA_RECORDER_ID_1 = 'REC_1' 39 | TRACE_ID_1 = 1 40 | TRACE_ID_2 = 2 41 | 42 | PARAMETER_1 = [ 'AXIS_1', '-', '0x102' ] 43 | PARAMETER_2 = [ 'AXIS_1', '-', '0x103' ] 44 | 45 | TRIGGER_NAME = 'MOV' 46 | TRIGGER_OPTIONS_1 = 'AXIS_1' 47 | TRIGGER_OPTIONS_2 = '0' 48 | 49 | def main(): 50 | """Connect device, set up stage and read and display datarecorder data.""" 51 | 52 | # We recommend to use GCSDevice as context manager with "with". 53 | # The CONTROLLERNAME decides which PI GCS DLL is loaded. If your controller works 54 | # with the PI_GCS2_DLL (as most controllers actually do) you can leave this empty. 55 | 56 | with GCSDevice(CONTROLLERNAME) as pidevice: 57 | # Choose the interface according to your cabling. 58 | pidevice.ConnectTCPIP(ipaddress='localhost') 59 | # pidevice.ConnectUSB(serialnum='123456789') 60 | # pidevice.ConnectRS232(comport=1, baudrate=115200) 61 | 62 | # Each PI controller supports the qIDN() command which returns an 63 | # identification string with a trailing line feed character which 64 | # we "strip" away. 65 | print('connected: {}'.format(pidevice.qIDN().strip())) 66 | 67 | # Show the version info which is helpful for PI support when there 68 | # are any issues. 69 | if pidevice.HasqVER(): 70 | print('version info:\n{}'.format(pidevice.qVER().strip())) 71 | 72 | # In the module pipython.pitools there are some helper 73 | # functions to make using a PI device more convenient. The "startup" 74 | # function will initialize your system. There are controllers that 75 | # cannot discover the connected stages hence we set them with the 76 | # "stages" argument. The desired referencing method (see controller 77 | # user manual) is passed as "refmode" argument. All connected axes 78 | # will be stopped if they are moving and their servo will be enabled. 79 | print('initialize connected stages...') 80 | pitools.startup(pidevice, stages=STAGES, refmodes=REFMODES) 81 | 82 | drec = datarectools.Datarecorder(pidevice, DATA_RECORDER_ID_1) 83 | 84 | print('Servo time [s]: {}'.format(drec.servotime)) 85 | recorddata(drec) 86 | 87 | print('move stage on axis {}...'.format(pidevice.axes[0])) 88 | pitools.movetomiddle(pidevice, pidevice.axes[0]) 89 | 90 | processdata(drec) 91 | 92 | 93 | def recorddata(drec): 94 | """Set up data recorder to record 2 tables for first axis after next motion command. 95 | @type drec : pipython.datarectools.Datarecorder 96 | """ 97 | drec.number_of_values = NUMVALUES 98 | drec.record_rate = RECORD_RATE 99 | print('data recorder rate: {:.2f} Hz'.format(drec.record_rate)) 100 | 101 | drec.traces = { TRACE_ID_1: PARAMETER_1, TRACE_ID_2: PARAMETER_2 } 102 | drec.trigger = [ TRIGGER_NAME, TRIGGER_OPTIONS_1, TRIGGER_OPTIONS_2 ] 103 | drec.arm() 104 | 105 | 106 | def processdata(drec): 107 | """Read out, plot and save data recorder data. 108 | @type drec : pipython.datarectools.Datarecorder 109 | """ 110 | if pyplot is None: 111 | print('matplotlib is not installed') 112 | return 113 | pyplot.plot(drec.timescale, drec.data[0], color='red') 114 | pyplot.plot(drec.timescale, drec.data[1], color='blue') 115 | pyplot.xlabel('time (s)') 116 | pyplot.ylabel(', '.join((drec.header['NAME0'], drec.header['NAME1']))) 117 | pyplot.title('Datarecorder data over time') 118 | pyplot.grid(True) 119 | pyplot.show() 120 | print('save GCSArray to file "gcsarray.dat"') 121 | pitools.savegcsarray('gcsarray.dat', drec.header, drec.data) 122 | 123 | 124 | if __name__ == '__main__': 125 | # from pipython import PILogger, DEBUG, INFO, WARNING, ERROR, CRITICAL 126 | # PILogger.setLevel(DEBUG) 127 | main() 128 | -------------------------------------------------------------------------------- /samples/simplemove_gcs30.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | """This example helps you to get used to PIPython.""" 5 | 6 | # (c)2021 Physik Instrumente (PI) GmbH & Co. KG 7 | # Software products that are provided by PI are subject to the 8 | # General Software License Agreement of Physik Instrumente (PI) GmbH & Co. KG 9 | # and may incorporate and/or make use of third-party software components. 10 | # For more information, please read the General Software License Agreement 11 | # and the Third Party Software Note linked below. 12 | # General Software License Agreement: 13 | # http://www.physikinstrumente.com/download/EULA_PhysikInstrumenteGmbH_Co_KG.pdf 14 | # Third Party Software Note: 15 | # http://www.physikinstrumente.com/download/TPSWNote_PhysikInstrumenteGmbH_Co_KG.pdf 16 | 17 | 18 | from pipython import GCSDevice, pitools 19 | from collections import OrderedDict 20 | 21 | __signature__ = 0x78f311ef9154cfabb67422d50367fa8a 22 | 23 | CONTROLLERNAME = 'E-880' # 'C-884' will also work 24 | STAGES = None 25 | REFMODES = ['FRF', 'FRF'] 26 | 27 | def readparametervalue(device, memtype, cont_unit, func_unit, parameter_id): 28 | return device.qSPV(memtype, cont_unit, func_unit, parameter_id)[memtype][cont_unit][func_unit][parameter_id] 29 | 30 | def getminpos(device): 31 | minpos = OrderedDict() 32 | for axis in device.axes: 33 | minpos[axis] = readparametervalue(device, "RAM", axis, "-", "0x121") 34 | return minpos 35 | 36 | def getmaxpos(device): 37 | maxpos = OrderedDict() 38 | for axis in device.axes: 39 | maxpos[axis] = readparametervalue(device, "RAM", axis, "-", "0x122") 40 | return maxpos 41 | 42 | def main(): 43 | """Connect, setup system and move stages and display the positions in a loop.""" 44 | 45 | # We recommend to use GCSDevice as context manager with "with". 46 | # The CONTROLLERNAME decides which PI GCS DLL is loaded. If your controller works 47 | # with the PI_GCS2_DLL (as most controllers actually do) you can leave this empty. 48 | 49 | with GCSDevice(CONTROLLERNAME) as pidevice: 50 | # Choose the interface according to your cabling. 51 | 52 | pidevice.ConnectTCPIP(ipaddress='localhost') 53 | # pidevice.ConnectUSB(serialnum='123456789') 54 | # pidevice.ConnectRS232(comport=1, baudrate=115200) 55 | 56 | # Each PI controller supports the qIDN() command which returns an 57 | # identification string with a trailing line feed character which 58 | # we "strip" away. 59 | 60 | print('connected: {}'.format(pidevice.qIDN().strip())) 61 | 62 | # Show the version info which is helpful for PI support when there 63 | # are any issues. 64 | 65 | if pidevice.HasqVER(): 66 | print('version info:\n{}'.format(pidevice.qVER().strip())) 67 | 68 | # In the module pipython.pitools there are some helper 69 | # functions to make using a PI device more convenient. The "startup" 70 | # function will initialize your system. There are controllers that 71 | # cannot discover the connected stages hence we set them with the 72 | # "stages" argument. The desired referencing method (see controller 73 | # user manual) is passed as "refmode" argument. All connected axes 74 | # will be stopped if they are moving and their servo will be enabled. 75 | 76 | print('initialize connected stages...') 77 | pitools.startup(pidevice, stages=STAGES, refmodes=REFMODES) 78 | 79 | # Now we query the allowed motion range of all connected stages. 80 | # GCS commands often return an (ordered) dictionary 81 | # with axes/channels as "keys" and the according values as "values". 82 | 83 | rangemin = getminpos(pidevice) 84 | rangemax = getmaxpos(pidevice) 85 | 86 | # The GCS commands qTMN() and qTMX() used above are query commands. 87 | # They don't need an argument and will then return all available 88 | # information, e.g. the limits for _all_ axes. With setter commands 89 | # however you have to specify the axes/channels. GCSDevice provides 90 | # a property "axes" which returns the names of all connected axes. 91 | # So lets move our stages... 92 | 93 | for axis in pidevice.axes: 94 | for target in (rangemin[axis], rangemax[axis]): 95 | print('move axis {} to {:.2f}'.format(axis, target)) 96 | pidevice.MOV(axis, target) 97 | 98 | # To check the "on target state" of an axis there is the GCS command 99 | # qONT(). But it is more convenient to just call "waitontarget". 100 | 101 | pitools.waitontarget(pidevice, axes=axis) 102 | 103 | # GCS commands usually can be called with single arguments, with 104 | # lists as arguments or with a dictionary. 105 | # If a query command is called with an argument the keys in the 106 | # returned dictionary resemble the arguments. If it is called 107 | # without an argument the keys are always strings. 108 | 109 | position = pidevice.qPOS(axis)[axis] # query single axis 110 | print('current position of axis {} is {:.2f}'.format(axis, position)) 111 | 112 | print('done') 113 | 114 | 115 | if __name__ == '__main__': 116 | # To see what is going on in the background you can remove the following 117 | # two hashtags. Then debug messages are shown. This can be helpful if 118 | # there are any issues. 119 | 120 | # from pipython import PILogger, DEBUG, INFO, WARNING, ERROR, CRITICAL 121 | # PILogger.setLevel(DEBUG) 122 | main() 123 | -------------------------------------------------------------------------------- /site/assets/javascripts/lunr/min/lunr.nl.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Lunr languages, `Dutch` language 3 | * https://github.com/MihaiValentin/lunr-languages 4 | * 5 | * Copyright 2014, Mihai Valentin 6 | * http://www.mozilla.org/MPL/ 7 | */ 8 | /*! 9 | * based on 10 | * Snowball JavaScript Library v0.3 11 | * http://code.google.com/p/urim/ 12 | * http://snowball.tartarus.org/ 13 | * 14 | * Copyright 2010, Oleg Mazko 15 | * http://www.mozilla.org/MPL/ 16 | */ 17 | 18 | !function(r,e){"function"==typeof define&&define.amd?define(e):"object"==typeof exports?module.exports=e():e()(r.lunr)}(this,function(){return function(r){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");r.nl=function(){this.pipeline.reset(),this.pipeline.add(r.nl.trimmer,r.nl.stopWordFilter,r.nl.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(r.nl.stemmer))},r.nl.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",r.nl.trimmer=r.trimmerSupport.generateTrimmer(r.nl.wordCharacters),r.Pipeline.registerFunction(r.nl.trimmer,"trimmer-nl"),r.nl.stemmer=function(){var e=r.stemmerSupport.Among,i=r.stemmerSupport.SnowballProgram,n=new function(){function r(){for(var r,e,i,o=C.cursor;;){if(C.bra=C.cursor,r=C.find_among(b,11))switch(C.ket=C.cursor,r){case 1:C.slice_from("a");continue;case 2:C.slice_from("e");continue;case 3:C.slice_from("i");continue;case 4:C.slice_from("o");continue;case 5:C.slice_from("u");continue;case 6:if(C.cursor>=C.limit)break;C.cursor++;continue}break}for(C.cursor=o,C.bra=o,C.eq_s(1,"y")?(C.ket=C.cursor,C.slice_from("Y")):C.cursor=o;;)if(e=C.cursor,C.in_grouping(q,97,232)){if(i=C.cursor,C.bra=i,C.eq_s(1,"i"))C.ket=C.cursor,C.in_grouping(q,97,232)&&(C.slice_from("I"),C.cursor=e);else if(C.cursor=i,C.eq_s(1,"y"))C.ket=C.cursor,C.slice_from("Y"),C.cursor=e;else if(n(e))break}else if(n(e))break}function n(r){return C.cursor=r,r>=C.limit||(C.cursor++,!1)}function o(){_=C.limit,d=_,t()||(_=C.cursor,_<3&&(_=3),t()||(d=C.cursor))}function t(){for(;!C.in_grouping(q,97,232);){if(C.cursor>=C.limit)return!0;C.cursor++}for(;!C.out_grouping(q,97,232);){if(C.cursor>=C.limit)return!0;C.cursor++}return!1}function s(){for(var r;;)if(C.bra=C.cursor,r=C.find_among(p,3))switch(C.ket=C.cursor,r){case 1:C.slice_from("y");break;case 2:C.slice_from("i");break;case 3:if(C.cursor>=C.limit)return;C.cursor++}}function u(){return _<=C.cursor}function c(){return d<=C.cursor}function a(){var r=C.limit-C.cursor;C.find_among_b(g,3)&&(C.cursor=C.limit-r,C.ket=C.cursor,C.cursor>C.limit_backward&&(C.cursor--,C.bra=C.cursor,C.slice_del()))}function l(){var r;w=!1,C.ket=C.cursor,C.eq_s_b(1,"e")&&(C.bra=C.cursor,u()&&(r=C.limit-C.cursor,C.out_grouping_b(q,97,232)&&(C.cursor=C.limit-r,C.slice_del(),w=!0,a())))}function m(){var r;u()&&(r=C.limit-C.cursor,C.out_grouping_b(q,97,232)&&(C.cursor=C.limit-r,C.eq_s_b(3,"gem")||(C.cursor=C.limit-r,C.slice_del(),a())))}function f(){var r,e,i,n,o,t,s=C.limit-C.cursor;if(C.ket=C.cursor,r=C.find_among_b(h,5))switch(C.bra=C.cursor,r){case 1:u()&&C.slice_from("heid");break;case 2:m();break;case 3:u()&&C.out_grouping_b(j,97,232)&&C.slice_del()}if(C.cursor=C.limit-s,l(),C.cursor=C.limit-s,C.ket=C.cursor,C.eq_s_b(4,"heid")&&(C.bra=C.cursor,c()&&(e=C.limit-C.cursor,C.eq_s_b(1,"c")||(C.cursor=C.limit-e,C.slice_del(),C.ket=C.cursor,C.eq_s_b(2,"en")&&(C.bra=C.cursor,m())))),C.cursor=C.limit-s,C.ket=C.cursor,r=C.find_among_b(k,6))switch(C.bra=C.cursor,r){case 1:if(c()){if(C.slice_del(),i=C.limit-C.cursor,C.ket=C.cursor,C.eq_s_b(2,"ig")&&(C.bra=C.cursor,c()&&(n=C.limit-C.cursor,!C.eq_s_b(1,"e")))){C.cursor=C.limit-n,C.slice_del();break}C.cursor=C.limit-i,a()}break;case 2:c()&&(o=C.limit-C.cursor,C.eq_s_b(1,"e")||(C.cursor=C.limit-o,C.slice_del()));break;case 3:c()&&(C.slice_del(),l());break;case 4:c()&&C.slice_del();break;case 5:c()&&w&&C.slice_del()}C.cursor=C.limit-s,C.out_grouping_b(z,73,232)&&(t=C.limit-C.cursor,C.find_among_b(v,4)&&C.out_grouping_b(q,97,232)&&(C.cursor=C.limit-t,C.ket=C.cursor,C.cursor>C.limit_backward&&(C.cursor--,C.bra=C.cursor,C.slice_del())))}var d,_,w,b=[new e("",-1,6),new e("á",0,1),new e("ä",0,1),new e("é",0,2),new e("ë",0,2),new e("í",0,3),new e("ï",0,3),new e("ó",0,4),new e("ö",0,4),new e("ú",0,5),new e("ü",0,5)],p=[new e("",-1,3),new e("I",0,2),new e("Y",0,1)],g=[new e("dd",-1,-1),new e("kk",-1,-1),new e("tt",-1,-1)],h=[new e("ene",-1,2),new e("se",-1,3),new e("en",-1,2),new e("heden",2,1),new e("s",-1,3)],k=[new e("end",-1,1),new e("ig",-1,2),new e("ing",-1,1),new e("lijk",-1,3),new e("baar",-1,4),new e("bar",-1,5)],v=[new e("aa",-1,-1),new e("ee",-1,-1),new e("oo",-1,-1),new e("uu",-1,-1)],q=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],z=[1,0,0,17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],j=[17,67,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],C=new i;this.setCurrent=function(r){C.setCurrent(r)},this.getCurrent=function(){return C.getCurrent()},this.stem=function(){var e=C.cursor;return r(),C.cursor=e,o(),C.limit_backward=e,C.cursor=C.limit,f(),C.cursor=C.limit_backward,s(),!0}};return function(r){return"function"==typeof r.update?r.update(function(r){return n.setCurrent(r),n.stem(),n.getCurrent()}):(n.setCurrent(r),n.stem(),n.getCurrent())}}(),r.Pipeline.registerFunction(r.nl.stemmer,"stemmer-nl"),r.nl.stopWordFilter=r.generateStopWordFilter(" aan al alles als altijd andere ben bij daar dan dat de der deze die dit doch doen door dus een eens en er ge geen geweest haar had heb hebben heeft hem het hier hij hoe hun iemand iets ik in is ja je kan kon kunnen maar me meer men met mij mijn moet na naar niet niets nog nu of om omdat onder ons ook op over reeds te tegen toch toen tot u uit uw van veel voor want waren was wat werd wezen wie wil worden wordt zal ze zelf zich zij zijn zo zonder zou".split(" ")),r.Pipeline.registerFunction(r.nl.stopWordFilter,"stopWordFilter-nl")}}); -------------------------------------------------------------------------------- /samples/simplemove.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | """This example helps you to get used to PIPython.""" 4 | 5 | # (c)2016 Physik Instrumente (PI) GmbH & Co. KG 6 | # Software products that are provided by PI are subject to the 7 | # General Software License Agreement of Physik Instrumente (PI) GmbH & Co. KG 8 | # and may incorporate and/or make use of third-party software components. 9 | # For more information, please read the General Software License Agreement 10 | # and the Third Party Software Note linked below. 11 | # General Software License Agreement: 12 | # http://www.physikinstrumente.com/download/EULA_PhysikInstrumenteGmbH_Co_KG.pdf 13 | # Third Party Software Note: 14 | # http://www.physikinstrumente.com/download/TPSWNote_PhysikInstrumenteGmbH_Co_KG.pdf 15 | 16 | 17 | from pipython import GCSDevice, pitools 18 | 19 | __signature__ = 0x986c0f898592ce476e1c88820b09bf94 20 | 21 | CONTROLLERNAME = 'C-884.DB' # 'C-884' will also work 22 | STAGES = ['M-111.1DG', 'M-122.2DD', 'NOSTAGE', 'NOSTAGE'] 23 | REFMODES = ['FNL', 'FRF'] 24 | 25 | 26 | # CONTROLLERNAME = 'E-709' 27 | # STAGES = None # this controller does not need a 'stages' setting 28 | # REFMODES = None 29 | 30 | # CONTROLLERNAME = 'C-887' 31 | # STAGES = None # this controller does not need a 'stages' setting 32 | # REFMODES = 'FRF' 33 | 34 | # CONTROLLERNAME = 'Hydra' 35 | # STAGES = ['6233-9-2203', 'NOSTAGE'] 36 | # REFMODES = ['FNL',] 37 | 38 | # CONTROLLERNAME = 'C-863.11' 39 | # STAGES = ['M-111.1DG',] # connect stages to axes 40 | # REFMODES = ['FNL',] # reference the connected stages 41 | 42 | 43 | def main(): 44 | """Connect, setup system and move stages and display the positions in a loop.""" 45 | 46 | # We recommend to use GCSDevice as context manager with "with". 47 | # The CONTROLLERNAME decides which PI GCS DLL is loaded. If your controller works 48 | # with the PI_GCS2_DLL (as most controllers actually do) you can leave this empty. 49 | 50 | with GCSDevice(CONTROLLERNAME) as pidevice: 51 | # Choose the interface according to your cabling. 52 | 53 | pidevice.ConnectTCPIP(ipaddress='192.168.90.207') 54 | # pidevice.ConnectUSB(serialnum='123456789') 55 | # pidevice.ConnectRS232(comport=1, baudrate=115200) 56 | 57 | # Controllers like C-843 and E-761 are connected via PCI. 58 | # pidevice.ConnectPciBoard(board=1) 59 | 60 | # Each PI controller supports the qIDN() command which returns an 61 | # identification string with a trailing line feed character which 62 | # we "strip" away. 63 | 64 | print('connected: {}'.format(pidevice.qIDN().strip())) 65 | 66 | # Show the version info which is helpful for PI support when there 67 | # are any issues. 68 | 69 | if pidevice.HasqVER(): 70 | print('version info:\n{}'.format(pidevice.qVER().strip())) 71 | 72 | # In the module pipython.pitools there are some helper 73 | # functions to make using a PI device more convenient. The "startup" 74 | # function will initialize your system. There are controllers that 75 | # cannot discover the connected stages hence we set them with the 76 | # "stages" argument. The desired referencing method (see controller 77 | # user manual) is passed as "refmode" argument. All connected axes 78 | # will be stopped if they are moving and their servo will be enabled. 79 | 80 | print('initialize connected stages...') 81 | pitools.startup(pidevice, stages=STAGES, refmodes=REFMODES) 82 | 83 | # Now we query the allowed motion range of all connected stages. 84 | # GCS commands often return an (ordered) dictionary 85 | # with axes/channels as "keys" and the according values as "values". 86 | 87 | rangemin = pidevice.qTMN() 88 | rangemax = pidevice.qTMX() 89 | 90 | # The GCS commands qTMN() and qTMX() used above are query commands. 91 | # They don't need an argument and will then return all available 92 | # information, e.g. the limits for _all_ axes. With setter commands 93 | # however you have to specify the axes/channels. GCSDevice provides 94 | # a property "axes" which returns the names of all connected axes. 95 | # So lets move our stages... 96 | 97 | for axis in pidevice.axes: 98 | for target in (rangemin[axis], rangemax[axis]): 99 | print('move axis {} to {:.2f}'.format(axis, target)) 100 | pidevice.MOV(axis, target) 101 | 102 | # To check the "on target state" of an axis there is the GCS command 103 | # qONT(). But it is more convenient to just call "waitontarget". 104 | 105 | pitools.waitontarget(pidevice, axes=axis) 106 | 107 | # GCS commands usually can be called with single arguments, with 108 | # lists as arguments or with a dictionary. 109 | # If a query command is called with an argument the keys in the 110 | # returned dictionary resemble the arguments. If it is called 111 | # without an argument the keys are always strings. 112 | 113 | position = pidevice.qPOS(axis)[axis] # query single axis 114 | # position = pidevice.qPOS()[str(axis)] # query all axes 115 | print('current position of axis {} is {:.2f}'.format(axis, position)) 116 | 117 | print('done') 118 | 119 | 120 | if __name__ == '__main__': 121 | # To see what is going on in the background you can remove the following 122 | # two hashtags. Then debug messages are shown. This can be helpful if 123 | # there are any issues. 124 | 125 | # from pipython import PILogger, DEBUG, INFO, WARNING, ERROR, CRITICAL 126 | # PILogger.setLevel(DEBUG) 127 | main() 128 | -------------------------------------------------------------------------------- /site/assets/javascripts/lunr/min/lunr.de.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Lunr languages, `German` language 3 | * https://github.com/MihaiValentin/lunr-languages 4 | * 5 | * Copyright 2014, Mihai Valentin 6 | * http://www.mozilla.org/MPL/ 7 | */ 8 | /*! 9 | * based on 10 | * Snowball JavaScript Library v0.3 11 | * http://code.google.com/p/urim/ 12 | * http://snowball.tartarus.org/ 13 | * 14 | * Copyright 2010, Oleg Mazko 15 | * http://www.mozilla.org/MPL/ 16 | */ 17 | 18 | !function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.de=function(){this.pipeline.reset(),this.pipeline.add(e.de.trimmer,e.de.stopWordFilter,e.de.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.de.stemmer))},e.de.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.de.trimmer=e.trimmerSupport.generateTrimmer(e.de.wordCharacters),e.Pipeline.registerFunction(e.de.trimmer,"trimmer-de"),e.de.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,i=new function(){function e(e,r,n){return!(!v.eq_s(1,e)||(v.ket=v.cursor,!v.in_grouping(p,97,252)))&&(v.slice_from(r),v.cursor=n,!0)}function i(){for(var r,n,i,s,t=v.cursor;;)if(r=v.cursor,v.bra=r,v.eq_s(1,"ß"))v.ket=v.cursor,v.slice_from("ss");else{if(r>=v.limit)break;v.cursor=r+1}for(v.cursor=t;;)for(n=v.cursor;;){if(i=v.cursor,v.in_grouping(p,97,252)){if(s=v.cursor,v.bra=s,e("u","U",i))break;if(v.cursor=s,e("y","Y",i))break}if(i>=v.limit)return void(v.cursor=n);v.cursor=i+1}}function s(){for(;!v.in_grouping(p,97,252);){if(v.cursor>=v.limit)return!0;v.cursor++}for(;!v.out_grouping(p,97,252);){if(v.cursor>=v.limit)return!0;v.cursor++}return!1}function t(){m=v.limit,l=m;var e=v.cursor+3;0<=e&&e<=v.limit&&(d=e,s()||(m=v.cursor,m=v.limit)return;v.cursor++}}}function c(){return m<=v.cursor}function u(){return l<=v.cursor}function a(){var e,r,n,i,s=v.limit-v.cursor;if(v.ket=v.cursor,(e=v.find_among_b(w,7))&&(v.bra=v.cursor,c()))switch(e){case 1:v.slice_del();break;case 2:v.slice_del(),v.ket=v.cursor,v.eq_s_b(1,"s")&&(v.bra=v.cursor,v.eq_s_b(3,"nis")&&v.slice_del());break;case 3:v.in_grouping_b(g,98,116)&&v.slice_del()}if(v.cursor=v.limit-s,v.ket=v.cursor,(e=v.find_among_b(f,4))&&(v.bra=v.cursor,c()))switch(e){case 1:v.slice_del();break;case 2:if(v.in_grouping_b(k,98,116)){var t=v.cursor-3;v.limit_backward<=t&&t<=v.limit&&(v.cursor=t,v.slice_del())}}if(v.cursor=v.limit-s,v.ket=v.cursor,(e=v.find_among_b(_,8))&&(v.bra=v.cursor,u()))switch(e){case 1:v.slice_del(),v.ket=v.cursor,v.eq_s_b(2,"ig")&&(v.bra=v.cursor,r=v.limit-v.cursor,v.eq_s_b(1,"e")||(v.cursor=v.limit-r,u()&&v.slice_del()));break;case 2:n=v.limit-v.cursor,v.eq_s_b(1,"e")||(v.cursor=v.limit-n,v.slice_del());break;case 3:if(v.slice_del(),v.ket=v.cursor,i=v.limit-v.cursor,!v.eq_s_b(2,"er")&&(v.cursor=v.limit-i,!v.eq_s_b(2,"en")))break;v.bra=v.cursor,c()&&v.slice_del();break;case 4:v.slice_del(),v.ket=v.cursor,e=v.find_among_b(b,2),e&&(v.bra=v.cursor,u()&&1==e&&v.slice_del())}}var d,l,m,h=[new r("",-1,6),new r("U",0,2),new r("Y",0,1),new r("ä",0,3),new r("ö",0,4),new r("ü",0,5)],w=[new r("e",-1,2),new r("em",-1,1),new r("en",-1,2),new r("ern",-1,1),new r("er",-1,1),new r("s",-1,3),new r("es",5,2)],f=[new r("en",-1,1),new r("er",-1,1),new r("st",-1,2),new r("est",2,1)],b=[new r("ig",-1,1),new r("lich",-1,1)],_=[new r("end",-1,1),new r("ig",-1,2),new r("ung",-1,1),new r("lich",-1,3),new r("isch",-1,2),new r("ik",-1,2),new r("heit",-1,3),new r("keit",-1,4)],p=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32,8],g=[117,30,5],k=[117,30,4],v=new n;this.setCurrent=function(e){v.setCurrent(e)},this.getCurrent=function(){return v.getCurrent()},this.stem=function(){var e=v.cursor;return i(),v.cursor=e,t(),v.limit_backward=e,v.cursor=v.limit,a(),v.cursor=v.limit_backward,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.de.stemmer,"stemmer-de"),e.de.stopWordFilter=e.generateStopWordFilter("aber alle allem allen aller alles als also am an ander andere anderem anderen anderer anderes anderm andern anderr anders auch auf aus bei bin bis bist da damit dann das dasselbe dazu daß dein deine deinem deinen deiner deines dem demselben den denn denselben der derer derselbe derselben des desselben dessen dich die dies diese dieselbe dieselben diesem diesen dieser dieses dir doch dort du durch ein eine einem einen einer eines einig einige einigem einigen einiger einiges einmal er es etwas euch euer eure eurem euren eurer eures für gegen gewesen hab habe haben hat hatte hatten hier hin hinter ich ihm ihn ihnen ihr ihre ihrem ihren ihrer ihres im in indem ins ist jede jedem jeden jeder jedes jene jenem jenen jener jenes jetzt kann kein keine keinem keinen keiner keines können könnte machen man manche manchem manchen mancher manches mein meine meinem meinen meiner meines mich mir mit muss musste nach nicht nichts noch nun nur ob oder ohne sehr sein seine seinem seinen seiner seines selbst sich sie sind so solche solchem solchen solcher solches soll sollte sondern sonst um und uns unse unsem unsen unser unses unter viel vom von vor war waren warst was weg weil weiter welche welchem welchen welcher welches wenn werde werden wie wieder will wir wird wirst wo wollen wollte während würde würden zu zum zur zwar zwischen über".split(" ")),e.Pipeline.registerFunction(e.de.stopWordFilter,"stopWordFilter-de")}}); -------------------------------------------------------------------------------- /samples/E-873_10C885_sample.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | from pipython.pidevice.gcscommands import GCSCommands 5 | from pipython.pidevice.gcsmessages import GCSMessages 6 | from pipython.pidevice.interfaces.pisocket import PISocket 7 | from pipython.pidevice.interfaces.piusb import PIUSB 8 | 9 | __signature__ = 0xc2c1a0a44938c888c9ce69d225bc7c82 10 | 11 | 12 | # TCP/IP Connect 13 | # >>>>>>>>>>>>>>>>>>>>> 14 | gateway = PISocket(host='192.168.90.116') 15 | # <<<<<<<<<<<<<<<<<<<<< 16 | 17 | # USB Connect 18 | # >>>>>>>>>>>>>>>>>>>>> 19 | #gateway = PIUSB() 20 | #gateway.connect('987654321', 0x1024) 21 | # <<<<<<<<<<<<<<<<<<<<< 22 | 23 | messages = GCSMessages(gateway) 24 | gcs = GCSCommands(messages) 25 | 26 | 27 | ####################### 28 | # C-885 Motion Master # 29 | ####################### 30 | 31 | # To Communicate with the C-885 motion master it is possible to use the GCS-Python functions or 32 | # to send a GCS String 33 | 34 | # PIPython function 35 | print(gcs.qIDN()) 36 | # answer e.g: 37 | # '(c)2015 - 2018 Physik Instrumente (PI) GmbH & Co. KG, C-885.M1 TCP-IP Master,987654321,1.0.1.0' 38 | 39 | # GCS String 40 | print(gcs.read('*IDN?')) 41 | # answer e.g: 42 | # '(c)2015 - 2018 Physik Instrumente (PI) GmbH & Co. KG, C-885.M1 TCP-IP Master,987654321,1.0.1.0' 43 | 44 | 45 | # The identifiers of all axes in the system are unique. Call 'SAI?' to find out which identifiers are valid 46 | axes_of_master = gcs.qSAI() 47 | # answer e.g: 48 | # 1 49 | # 3 50 | 51 | print(gcs.qPOS(axes_of_master)) 52 | # answer e.g: 53 | # 1=-0.0004680 54 | # 3=-2.2942890 55 | 56 | 57 | 58 | ################################## 59 | # Sub module (e.g. E-873.10C855) # 60 | ################################## 61 | 62 | # To Communicate with a sub module (e.g. E-87210C855) it is only possible to ust the GCS-Strings 63 | # The address of the sub module has to precede the GCS command. 64 | # In the answer you will find a preceding '0' and the number of the sub module form where the answer 65 | # comes from. 66 | print(gcs.read('2 *IDN?')) 67 | # answer e.g: 68 | # '0 2 (c)2016 Physik Instrumente (PI) GmbH & Co. KG, E-873.10C885, 117007101, 02.016' 69 | 70 | 71 | # The identifier of the axes in a sub module are relative to the sub module. This means the identifiers of the axes 72 | # are not the same as the identifiers of the axis at the C-855 motion module, even if they are physically 73 | # the same. To find out the identifiers of the axis in a sub module call e.g. '2 SAI?' 74 | 75 | axes_of_sub_module_2 = gcs.read('2 SAI?').split(' ')[2].replace('\n' , '') 76 | # answer e.g: 77 | # 0 2 X 78 | # This means the identifier of the axis of the sub module is 'X' and not '1' as it is when commanding the motion master 79 | 80 | axes_of_sub_module_3 = gcs.read('3 SAI?').split(' ')[2].replace('\n' , '') 81 | # answer e.g: 82 | # 0 3 X 83 | # This means the identifier of the axis of the sub module is 'X' and not '3' as it is when commanding the motion master 84 | 85 | # The following commands are reading the position form the same physically axes as the 86 | # C-855 motion master sample above (gcs.read('POS? 1 3')). 87 | 88 | print(gcs.read('2 POS? %s' % axes_of_sub_module_2)) 89 | # answer e.g: 90 | # 0 2 X=-0.0004680 91 | 92 | print(gcs.read('3 POS? %s' % axes_of_sub_module_3)) 93 | # answer e.g: 94 | # 0 3 X=-2.2942890 95 | 96 | 97 | 98 | #For Linear Stage Q-545 99 | #1. Home Macros will turn on servo, find reference position, define home position, search forward limit switch, 100 | # then reverse limit switch, then move to home position, report error code 101 | 102 | # The Command HIN is not supported by the controller 103 | gcs.send('2 SVO %s 1' % axes_of_sub_module_2) 104 | 105 | gcs.send('2 FRF %s' % axes_of_sub_module_2) 106 | ontarget=0 107 | while not ontarget: 108 | ontarget=int(gcs.read('2 ONT? %s' % axes_of_sub_module_2).split('=')[1].replace('\n' , '')) 109 | 110 | gcs.send('2 DFH %s' % axes_of_sub_module_2) 111 | 112 | print(gcs.read('2 POS? %s' % axes_of_sub_module_2)) 113 | 114 | gcs.send('2 VEL %s 6.5' % axes_of_sub_module_2) 115 | 116 | # The Command FPL is not supported by the controller. Call TMX and mov to the the returned position instead. 117 | max_position= gcs.read('2 TMX? %s' % axes_of_sub_module_2).split('=')[1].replace('\n' , '') 118 | gcs.send('2 MOV %s %s' % (axes_of_sub_module_2, max_position)) 119 | ontarget=0 120 | while not ontarget: 121 | ontarget=int(gcs.read('2 ONT? %s' % axes_of_sub_module_2).split('=')[1].replace('\n' , '')) 122 | 123 | print(gcs.read('2 TMX? %s' % axes_of_sub_module_2)) 124 | 125 | # The Command FNL is not supported by the controller. Call TMN and mov to the the returned position instead. 126 | min_position= gcs.read('2 TMN? %s' % axes_of_sub_module_2).split('=')[1].replace('\n' , '') 127 | gcs.send('2 MOV %s %s' % (axes_of_sub_module_2, min_position)) 128 | ontarget=0 129 | while not ontarget: 130 | ontarget=int(gcs.read('2 ONT? %s' % axes_of_sub_module_2).split('=')[1].replace('\n' , '')) 131 | 132 | print(gcs.read('2 TMN? %s' % axes_of_sub_module_2)) 133 | 134 | gcs.send('2 GOH %s' % axes_of_sub_module_2) 135 | ontarget=0 136 | while not ontarget: 137 | ontarget=int(gcs.read('2 ONT? %s' % axes_of_sub_module_2).split('=')[1].replace('\n' , '')) 138 | 139 | print(gcs.read('2 POS? %s' % axes_of_sub_module_2)) 140 | 141 | print(gcs.read('2 ERR?')) 142 | 143 | 144 | # 145 | #2.Move Macros is simple, Check the error status, current position, and move to target position and check 146 | # the move status and report error code 147 | # 148 | print(gcs.read('2 ERR?')) 149 | print(gcs.read('2 POS? %s' % axes_of_sub_module_2)) 150 | 151 | gcs.send('2 MOV %s 5' % axes_of_sub_module_2) 152 | ontarget=0 153 | while not ontarget: 154 | ontarget=int(gcs.read('2 ONT? %s' % axes_of_sub_module_2).split('=')[1].replace('\n' , '')) 155 | 156 | print(gcs.read('2 POS? %s' % axes_of_sub_module_2)) 157 | print(gcs.read('2 ERR?')) 158 | 159 | 160 | 161 | gateway.close() 162 | -------------------------------------------------------------------------------- /site/assets/javascripts/lunr/min/lunr.du.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Lunr languages, `Dutch` language 3 | * https://github.com/MihaiValentin/lunr-languages 4 | * 5 | * Copyright 2014, Mihai Valentin 6 | * http://www.mozilla.org/MPL/ 7 | */ 8 | /*! 9 | * based on 10 | * Snowball JavaScript Library v0.3 11 | * http://code.google.com/p/urim/ 12 | * http://snowball.tartarus.org/ 13 | * 14 | * Copyright 2010, Oleg Mazko 15 | * http://www.mozilla.org/MPL/ 16 | */ 17 | 18 | !function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");console.warn('[Lunr Languages] Please use the "nl" instead of the "du". The "nl" code is the standard code for Dutch language, and "du" will be removed in the next major versions.'),e.du=function(){this.pipeline.reset(),this.pipeline.add(e.du.trimmer,e.du.stopWordFilter,e.du.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.du.stemmer))},e.du.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.du.trimmer=e.trimmerSupport.generateTrimmer(e.du.wordCharacters),e.Pipeline.registerFunction(e.du.trimmer,"trimmer-du"),e.du.stemmer=function(){var r=e.stemmerSupport.Among,i=e.stemmerSupport.SnowballProgram,n=new function(){function e(){for(var e,r,i,o=C.cursor;;){if(C.bra=C.cursor,e=C.find_among(b,11))switch(C.ket=C.cursor,e){case 1:C.slice_from("a");continue;case 2:C.slice_from("e");continue;case 3:C.slice_from("i");continue;case 4:C.slice_from("o");continue;case 5:C.slice_from("u");continue;case 6:if(C.cursor>=C.limit)break;C.cursor++;continue}break}for(C.cursor=o,C.bra=o,C.eq_s(1,"y")?(C.ket=C.cursor,C.slice_from("Y")):C.cursor=o;;)if(r=C.cursor,C.in_grouping(q,97,232)){if(i=C.cursor,C.bra=i,C.eq_s(1,"i"))C.ket=C.cursor,C.in_grouping(q,97,232)&&(C.slice_from("I"),C.cursor=r);else if(C.cursor=i,C.eq_s(1,"y"))C.ket=C.cursor,C.slice_from("Y"),C.cursor=r;else if(n(r))break}else if(n(r))break}function n(e){return C.cursor=e,e>=C.limit||(C.cursor++,!1)}function o(){_=C.limit,f=_,t()||(_=C.cursor,_<3&&(_=3),t()||(f=C.cursor))}function t(){for(;!C.in_grouping(q,97,232);){if(C.cursor>=C.limit)return!0;C.cursor++}for(;!C.out_grouping(q,97,232);){if(C.cursor>=C.limit)return!0;C.cursor++}return!1}function s(){for(var e;;)if(C.bra=C.cursor,e=C.find_among(p,3))switch(C.ket=C.cursor,e){case 1:C.slice_from("y");break;case 2:C.slice_from("i");break;case 3:if(C.cursor>=C.limit)return;C.cursor++}}function u(){return _<=C.cursor}function c(){return f<=C.cursor}function a(){var e=C.limit-C.cursor;C.find_among_b(g,3)&&(C.cursor=C.limit-e,C.ket=C.cursor,C.cursor>C.limit_backward&&(C.cursor--,C.bra=C.cursor,C.slice_del()))}function l(){var e;w=!1,C.ket=C.cursor,C.eq_s_b(1,"e")&&(C.bra=C.cursor,u()&&(e=C.limit-C.cursor,C.out_grouping_b(q,97,232)&&(C.cursor=C.limit-e,C.slice_del(),w=!0,a())))}function m(){var e;u()&&(e=C.limit-C.cursor,C.out_grouping_b(q,97,232)&&(C.cursor=C.limit-e,C.eq_s_b(3,"gem")||(C.cursor=C.limit-e,C.slice_del(),a())))}function d(){var e,r,i,n,o,t,s=C.limit-C.cursor;if(C.ket=C.cursor,e=C.find_among_b(h,5))switch(C.bra=C.cursor,e){case 1:u()&&C.slice_from("heid");break;case 2:m();break;case 3:u()&&C.out_grouping_b(z,97,232)&&C.slice_del()}if(C.cursor=C.limit-s,l(),C.cursor=C.limit-s,C.ket=C.cursor,C.eq_s_b(4,"heid")&&(C.bra=C.cursor,c()&&(r=C.limit-C.cursor,C.eq_s_b(1,"c")||(C.cursor=C.limit-r,C.slice_del(),C.ket=C.cursor,C.eq_s_b(2,"en")&&(C.bra=C.cursor,m())))),C.cursor=C.limit-s,C.ket=C.cursor,e=C.find_among_b(k,6))switch(C.bra=C.cursor,e){case 1:if(c()){if(C.slice_del(),i=C.limit-C.cursor,C.ket=C.cursor,C.eq_s_b(2,"ig")&&(C.bra=C.cursor,c()&&(n=C.limit-C.cursor,!C.eq_s_b(1,"e")))){C.cursor=C.limit-n,C.slice_del();break}C.cursor=C.limit-i,a()}break;case 2:c()&&(o=C.limit-C.cursor,C.eq_s_b(1,"e")||(C.cursor=C.limit-o,C.slice_del()));break;case 3:c()&&(C.slice_del(),l());break;case 4:c()&&C.slice_del();break;case 5:c()&&w&&C.slice_del()}C.cursor=C.limit-s,C.out_grouping_b(j,73,232)&&(t=C.limit-C.cursor,C.find_among_b(v,4)&&C.out_grouping_b(q,97,232)&&(C.cursor=C.limit-t,C.ket=C.cursor,C.cursor>C.limit_backward&&(C.cursor--,C.bra=C.cursor,C.slice_del())))}var f,_,w,b=[new r("",-1,6),new r("á",0,1),new r("ä",0,1),new r("é",0,2),new r("ë",0,2),new r("í",0,3),new r("ï",0,3),new r("ó",0,4),new r("ö",0,4),new r("ú",0,5),new r("ü",0,5)],p=[new r("",-1,3),new r("I",0,2),new r("Y",0,1)],g=[new r("dd",-1,-1),new r("kk",-1,-1),new r("tt",-1,-1)],h=[new r("ene",-1,2),new r("se",-1,3),new r("en",-1,2),new r("heden",2,1),new r("s",-1,3)],k=[new r("end",-1,1),new r("ig",-1,2),new r("ing",-1,1),new r("lijk",-1,3),new r("baar",-1,4),new r("bar",-1,5)],v=[new r("aa",-1,-1),new r("ee",-1,-1),new r("oo",-1,-1),new r("uu",-1,-1)],q=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],j=[1,0,0,17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],z=[17,67,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],C=new i;this.setCurrent=function(e){C.setCurrent(e)},this.getCurrent=function(){return C.getCurrent()},this.stem=function(){var r=C.cursor;return e(),C.cursor=r,o(),C.limit_backward=r,C.cursor=C.limit,d(),C.cursor=C.limit_backward,s(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.du.stemmer,"stemmer-du"),e.du.stopWordFilter=e.generateStopWordFilter(" aan al alles als altijd andere ben bij daar dan dat de der deze die dit doch doen door dus een eens en er ge geen geweest haar had heb hebben heeft hem het hier hij hoe hun iemand iets ik in is ja je kan kon kunnen maar me meer men met mij mijn moet na naar niet niets nog nu of om omdat onder ons ook op over reeds te tegen toch toen tot u uit uw van veel voor want waren was wat werd wezen wie wil worden wordt zal ze zelf zich zij zijn zo zonder zou".split(" ")),e.Pipeline.registerFunction(e.du.stopWordFilter,"stopWordFilter-du")}}); -------------------------------------------------------------------------------- /samples/advanced/wavegenerator_pnt.txt: -------------------------------------------------------------------------------- 1 | 0.100 0.200 2 | 0.102 0.200 3 | 0.103 0.200 4 | 0.105 0.200 5 | 0.107 0.200 6 | 0.109 0.200 7 | 0.110 0.199 8 | 0.112 0.199 9 | 0.114 0.199 10 | 0.116 0.199 11 | 0.117 0.198 12 | 0.119 0.198 13 | 0.121 0.198 14 | 0.122 0.197 15 | 0.124 0.197 16 | 0.126 0.197 17 | 0.128 0.196 18 | 0.129 0.196 19 | 0.131 0.195 20 | 0.133 0.195 21 | 0.134 0.194 22 | 0.136 0.193 23 | 0.137 0.193 24 | 0.139 0.192 25 | 0.141 0.191 26 | 0.142 0.191 27 | 0.144 0.190 28 | 0.145 0.189 29 | 0.147 0.188 30 | 0.148 0.187 31 | 0.150 0.187 32 | 0.152 0.186 33 | 0.153 0.185 34 | 0.154 0.184 35 | 0.156 0.183 36 | 0.157 0.182 37 | 0.159 0.181 38 | 0.160 0.180 39 | 0.162 0.179 40 | 0.163 0.178 41 | 0.164 0.177 42 | 0.166 0.175 43 | 0.167 0.174 44 | 0.168 0.173 45 | 0.169 0.172 46 | 0.171 0.171 47 | 0.172 0.169 48 | 0.173 0.168 49 | 0.174 0.167 50 | 0.175 0.166 51 | 0.177 0.164 52 | 0.178 0.163 53 | 0.179 0.162 54 | 0.180 0.160 55 | 0.181 0.159 56 | 0.182 0.157 57 | 0.183 0.156 58 | 0.184 0.154 59 | 0.185 0.153 60 | 0.186 0.152 61 | 0.187 0.150 62 | 0.187 0.148 63 | 0.188 0.147 64 | 0.189 0.145 65 | 0.190 0.144 66 | 0.191 0.142 67 | 0.191 0.141 68 | 0.192 0.139 69 | 0.193 0.137 70 | 0.193 0.136 71 | 0.194 0.134 72 | 0.195 0.133 73 | 0.195 0.131 74 | 0.196 0.129 75 | 0.196 0.128 76 | 0.197 0.126 77 | 0.197 0.124 78 | 0.197 0.122 79 | 0.198 0.121 80 | 0.198 0.119 81 | 0.198 0.117 82 | 0.199 0.116 83 | 0.199 0.114 84 | 0.199 0.112 85 | 0.199 0.110 86 | 0.200 0.109 87 | 0.200 0.107 88 | 0.200 0.105 89 | 0.200 0.103 90 | 0.200 0.102 91 | 0.200 0.100 92 | 0.200 0.098 93 | 0.200 0.097 94 | 0.200 0.095 95 | 0.200 0.093 96 | 0.200 0.091 97 | 0.199 0.090 98 | 0.199 0.088 99 | 0.199 0.086 100 | 0.199 0.084 101 | 0.198 0.083 102 | 0.198 0.081 103 | 0.198 0.079 104 | 0.197 0.078 105 | 0.197 0.076 106 | 0.197 0.074 107 | 0.196 0.072 108 | 0.196 0.071 109 | 0.195 0.069 110 | 0.195 0.067 111 | 0.194 0.066 112 | 0.193 0.064 113 | 0.193 0.063 114 | 0.192 0.061 115 | 0.191 0.059 116 | 0.191 0.058 117 | 0.190 0.056 118 | 0.189 0.055 119 | 0.188 0.053 120 | 0.187 0.052 121 | 0.187 0.050 122 | 0.186 0.048 123 | 0.185 0.047 124 | 0.184 0.046 125 | 0.183 0.044 126 | 0.182 0.043 127 | 0.181 0.041 128 | 0.180 0.040 129 | 0.179 0.038 130 | 0.178 0.037 131 | 0.177 0.036 132 | 0.175 0.034 133 | 0.174 0.033 134 | 0.173 0.032 135 | 0.172 0.031 136 | 0.171 0.029 137 | 0.169 0.028 138 | 0.168 0.027 139 | 0.167 0.026 140 | 0.166 0.025 141 | 0.164 0.023 142 | 0.163 0.022 143 | 0.162 0.021 144 | 0.160 0.020 145 | 0.159 0.019 146 | 0.157 0.018 147 | 0.156 0.017 148 | 0.154 0.016 149 | 0.153 0.015 150 | 0.152 0.014 151 | 0.150 0.013 152 | 0.148 0.013 153 | 0.147 0.012 154 | 0.145 0.011 155 | 0.144 0.010 156 | 0.142 0.009 157 | 0.141 0.009 158 | 0.139 0.008 159 | 0.137 0.007 160 | 0.136 0.007 161 | 0.134 0.006 162 | 0.133 0.005 163 | 0.131 0.005 164 | 0.129 0.004 165 | 0.128 0.004 166 | 0.126 0.003 167 | 0.124 0.003 168 | 0.122 0.003 169 | 0.121 0.002 170 | 0.119 0.002 171 | 0.117 0.002 172 | 0.116 0.001 173 | 0.114 0.001 174 | 0.112 0.001 175 | 0.110 0.001 176 | 0.109 0.000 177 | 0.107 0.000 178 | 0.105 0.000 179 | 0.103 0.000 180 | 0.102 0.000 181 | 0.100 0.000 182 | 0.098 0.000 183 | 0.097 0.000 184 | 0.095 0.000 185 | 0.093 0.000 186 | 0.091 0.000 187 | 0.090 0.001 188 | 0.088 0.001 189 | 0.086 0.001 190 | 0.084 0.001 191 | 0.083 0.002 192 | 0.081 0.002 193 | 0.079 0.002 194 | 0.078 0.003 195 | 0.076 0.003 196 | 0.074 0.003 197 | 0.072 0.004 198 | 0.071 0.004 199 | 0.069 0.005 200 | 0.067 0.005 201 | 0.066 0.006 202 | 0.064 0.007 203 | 0.063 0.007 204 | 0.061 0.008 205 | 0.059 0.009 206 | 0.058 0.009 207 | 0.056 0.010 208 | 0.055 0.011 209 | 0.053 0.012 210 | 0.052 0.013 211 | 0.050 0.013 212 | 0.048 0.014 213 | 0.047 0.015 214 | 0.046 0.016 215 | 0.044 0.017 216 | 0.043 0.018 217 | 0.041 0.019 218 | 0.040 0.020 219 | 0.038 0.021 220 | 0.037 0.022 221 | 0.036 0.023 222 | 0.034 0.025 223 | 0.033 0.026 224 | 0.032 0.027 225 | 0.031 0.028 226 | 0.029 0.029 227 | 0.028 0.031 228 | 0.027 0.032 229 | 0.026 0.033 230 | 0.025 0.034 231 | 0.023 0.036 232 | 0.022 0.037 233 | 0.021 0.038 234 | 0.020 0.040 235 | 0.019 0.041 236 | 0.018 0.043 237 | 0.017 0.044 238 | 0.016 0.046 239 | 0.015 0.047 240 | 0.014 0.048 241 | 0.013 0.050 242 | 0.013 0.052 243 | 0.012 0.053 244 | 0.011 0.055 245 | 0.010 0.056 246 | 0.009 0.058 247 | 0.009 0.059 248 | 0.008 0.061 249 | 0.007 0.063 250 | 0.007 0.064 251 | 0.006 0.066 252 | 0.005 0.067 253 | 0.005 0.069 254 | 0.004 0.071 255 | 0.004 0.072 256 | 0.003 0.074 257 | 0.003 0.076 258 | 0.003 0.078 259 | 0.002 0.079 260 | 0.002 0.081 261 | 0.002 0.083 262 | 0.001 0.084 263 | 0.001 0.086 264 | 0.001 0.088 265 | 0.001 0.090 266 | 0.000 0.091 267 | 0.000 0.093 268 | 0.000 0.095 269 | 0.000 0.097 270 | 0.000 0.098 271 | 0.000 0.100 272 | 0.000 0.102 273 | 0.000 0.103 274 | 0.000 0.105 275 | 0.000 0.107 276 | 0.000 0.109 277 | 0.001 0.110 278 | 0.001 0.112 279 | 0.001 0.114 280 | 0.001 0.116 281 | 0.002 0.117 282 | 0.002 0.119 283 | 0.002 0.121 284 | 0.003 0.122 285 | 0.003 0.124 286 | 0.003 0.126 287 | 0.004 0.128 288 | 0.004 0.129 289 | 0.005 0.131 290 | 0.005 0.133 291 | 0.006 0.134 292 | 0.007 0.136 293 | 0.007 0.137 294 | 0.008 0.139 295 | 0.009 0.141 296 | 0.009 0.142 297 | 0.010 0.144 298 | 0.011 0.145 299 | 0.012 0.147 300 | 0.013 0.148 301 | 0.013 0.150 302 | 0.014 0.152 303 | 0.015 0.153 304 | 0.016 0.154 305 | 0.017 0.156 306 | 0.018 0.157 307 | 0.019 0.159 308 | 0.020 0.160 309 | 0.021 0.162 310 | 0.022 0.163 311 | 0.023 0.164 312 | 0.025 0.166 313 | 0.026 0.167 314 | 0.027 0.168 315 | 0.028 0.169 316 | 0.029 0.171 317 | 0.031 0.172 318 | 0.032 0.173 319 | 0.033 0.174 320 | 0.034 0.175 321 | 0.036 0.177 322 | 0.037 0.178 323 | 0.038 0.179 324 | 0.040 0.180 325 | 0.041 0.181 326 | 0.043 0.182 327 | 0.044 0.183 328 | 0.046 0.184 329 | 0.047 0.185 330 | 0.048 0.186 331 | 0.050 0.187 332 | 0.052 0.187 333 | 0.053 0.188 334 | 0.055 0.189 335 | 0.056 0.190 336 | 0.058 0.191 337 | 0.059 0.191 338 | 0.061 0.192 339 | 0.063 0.193 340 | 0.064 0.193 341 | 0.066 0.194 342 | 0.067 0.195 343 | 0.069 0.195 344 | 0.071 0.196 345 | 0.072 0.196 346 | 0.074 0.197 347 | 0.076 0.197 348 | 0.078 0.197 349 | 0.079 0.198 350 | 0.081 0.198 351 | 0.083 0.198 352 | 0.084 0.199 353 | 0.086 0.199 354 | 0.088 0.199 355 | 0.090 0.199 356 | 0.091 0.200 357 | 0.093 0.200 358 | 0.095 0.200 359 | 0.097 0.200 360 | 0.098 0.200 361 | -------------------------------------------------------------------------------- /changelog.md: -------------------------------------------------------------------------------- 1 | # Feature Version History 2 | 3 | ### PIPython 2.10.2 4 | - fix ubs connection error for E-816 controller 5 | - add "PITools" to PIPython Manual 6 | 7 | ### PIPython 2.10.1 8 | - fix 'segmentation fault' which occurred on Linux while unloading the GCSDll class 9 | 10 | ### PIPython 2.10.0 11 | - add GCSCommands.STF() 12 | - add new status bits returned by GCSCommands.STV(). 13 | 14 | ### PIPython 2.9.0 15 | - add support for open loop control mode in pitools 16 | - fix bug in simplemove sample. 17 | 18 | ### PIPython 2.8.0 19 | - add pitools.getmaxtravelrange() 20 | - add pitools.getmintravelrange() 21 | 22 | ### PIPython 2.7.0 23 | - add GCSCommands.qIPR() 24 | - add GCSCommands.RES() 25 | - add PILogger 26 | 27 | 28 | ### PIPython 2.6.0 29 | - add support for GCS 3.0 controllers 30 | - add data recorder tools for controllers with GCS 3.0 syntax 31 | 32 | 33 | ### PIPython 2.5.1 34 | - fix missing files in pitools 35 | 36 | 37 | ### PIPython 2.5.0 38 | - Support for GCS30 UMF Controllers 39 | 40 | 41 | ### PIPython 2.4.0 42 | - add GCSCommands.qUSG() 43 | - add GCSCommands.SPV() 44 | - add GCSCommands.qSPV() 45 | - add GCSCommands.CPA() 46 | - add GCSCommands.UCL() 47 | - add GCSCommands.qUCL() 48 | - add GCSCommands.REC_STAT() 49 | - add GCSCommands.qREC_STAT() 50 | - add GCSCommands.REC_TRACE() 51 | - add GCSCommands.qREC_TRACE() 52 | - add GCSCommands.REC_TRG() 53 | - add GCSCommands.qREC_TRG() 54 | - add GCSCommands.REC_RATE() 55 | - add GCSCommands.qREC_RATE() 56 | - add GCSCommands.REC_START() 57 | - add GCSCommands.REC_STOP() 58 | - add GCSCommands.qREC_NUM() 59 | - add GCSCommands.qREC_DAT() 60 | - add GCSCommands.qLOG() 61 | 62 | 63 | ### PIPython 2.3.0 64 | - Internal refactoring 65 | 66 | 67 | ### PIPython 2.2.2 68 | - fix: No module named gcs30.gcs30commands_helpers 69 | 70 | 71 | ### PIPython 2.2.1 72 | - fix missing argument in isgcs30 73 | 74 | 75 | ### PIPython 2.2.0 76 | - Support for PI_SetConnectTimeout() and PI_EnableBaudRateScan() 77 | 78 | 79 | ### PIPython 2.1.1 80 | - fix timing probles while reading the data recorder with pythom3 81 | 82 | 83 | ### PIPython 2.1.0 84 | - pipython.datarectools.Datarecorder: maxnumvalues now also reads the maximum number 85 | of data recorder points from the 'HDR?' answer. 86 | - fix pipython.pitools.pitoopls.itemstostr. If 'data' is an integer of 0 or a float of 0.0 87 | 'itemstostr' now returns the string '0' or '0.0' instead of 'None' 88 | 89 | 90 | ### PIPython 2.0.0 91 | - New package structure 92 | - support for WriteConfigurationFromDatabaseToControllerAndSave() 93 | 94 | 95 | ### PIPython 1.5.2 96 | - Linux: fix string decoding in piusb 97 | 98 | 99 | ### PIPython 1.5.1 100 | - fix parameter value conversion of hex parameter values 101 | 102 | 103 | ### PIPython 1.5.0 104 | - add GCSCommands.POL() 105 | - add GCSCommands.STD() 106 | - add GCSCommands.RTD() 107 | - add GCSCommands.qRTD() 108 | - add GCSCommands.qLST() 109 | - add GCSCommands.DTL() 110 | 111 | 112 | ### PIPython 1.4.0 113 | 114 | - fix string decoding in GCSDll() 115 | - add pitools.getservo() 116 | - pitools.waitonreferencing() does not call waitontarget() 117 | - in pitools call waitonready() with the "polldelay" argument 118 | - fix signature of GCSCommands.qTWS() 119 | - GCSCommands.CCL() will reset the list of supported GCS commands 120 | - interfaces.pisocket.PISocket() uses socket.TCP_NODELAY 121 | - add "ATZ" as "referencing command" to pitools.DeviceStartup() 122 | - add GCSMessages.logfile property 123 | - rename license.md to eula.md 124 | - add datarectools.get_hdr_options() 125 | - add Datarecorder.recopts property 126 | - add Datarecorder.trigopts property 127 | - all timeout default values are set to 300 seconds 128 | 129 | 130 | ### PIPython 1.3.9 131 | 132 | - add pitools.waitonmacro() 133 | - catch GCS error 2 (unknown command) after EAX during startup 134 | - GCS commands arguments can be sets, too 135 | - DDL(tables, offsets, values) -> DDL(table, offsets, values) 136 | - add GCSDevice.isavailable 137 | - convert parameter values according to types in qHPA answer 138 | - fix signature of GCSCommands.qJLT() 139 | 140 | 141 | ### PIPython 1.3.8 142 | 143 | - add interfaces.piusb 144 | - add pitools.readgcsarray() 145 | - add pitools.waitonwavegen() 146 | - add pitools.moveandwait() 147 | - add piparams.applyconfig() 148 | - pitools.startup() defines and references stages only if necessary 149 | - add GCSCommands.allaxes 150 | - add GCSDevice.hasref() 151 | - add GCSDevice.haslim() 152 | - add GCSDevice.canfrf() 153 | - add GCSDevice.canfnl() 154 | - add GCSDevice.canfpl() 155 | - add pitools.waitonphase() 156 | - add pitools.setservo() 157 | - controller specific startup sequence 158 | 159 | 160 | ### PIPython 1.3.7 161 | 162 | - add pitools.movetomiddle() 163 | - add pipython.fastaligntools 164 | - PI_GCS2_DLL is used by default 165 | - add pitools.savegcsarray() 166 | - add pitools.itemstostr() 167 | 168 | 169 | ### PIPython 1.3.6 170 | 171 | - add controller C-886, E-872 172 | - GCSDevice supports external Gateway 173 | 174 | 175 | ### PIPython 1.3.5 176 | 177 | - add DLL functions for PIStages3 178 | - "wait on" functions support polldelay times 179 | - fix GCSCommands.SGA() 180 | - fix GCSCommands.qSPA() 181 | - fix GCSCommands.qSEP() 182 | - add optional argument "noraise" for StopAll(), HLT(), STP() 183 | - add pitools.waitonfastalign() 184 | - add pitools.waitonautozero() 185 | - add GCS Error codes 186 | 187 | 188 | ### PIPython 1.3.4 189 | 190 | - add pipython.interfaces.piserial 191 | - "wait on" functions support predelay and postdelay times 192 | - add GCSCommands.TSP() 193 | - setup writes key for PIUpdateFinder always into 32 bit part of registry 194 | - change formatting of numbers in GCS strings 195 | - GCSDll supports "K" devices 196 | - GCSMessages.bufstate will not write to log 197 | - rename ReadGCSData() -> read_gcsdata() 198 | - add controller C-663.12 199 | - add parameters for E-873.3QTU, C-663.10C885 200 | - add GCS Error codes 201 | - bugfixing 202 | 203 | 204 | ### PIPython 1.3.3 205 | 206 | - add GCSCommands.SGP() 207 | - add GCSCommands.qSGP() 208 | - add GCSCommands.WAV_SIN() 209 | - add GCSCommands.WAV_POL() 210 | - add GCSCommands.WAV_TAN() 211 | - add GCSCommands.WAV_SWEEP() 212 | - add GCSCommands.checkerror() 213 | - add GCSCommands.DEL() 214 | - add new controllers 215 | - add controller parameters 216 | - fix for handling unicode in Python 3 217 | - bugfixing of some GCS commands 218 | 219 | 220 | ### PIPython 1.3.2 221 | 222 | - add GCSCommands.FSF() 223 | - add GCSCommands.qFSF() 224 | - add GCSCommands.qFSR() 225 | - add pitools.getaxeslist() 226 | - add pitools.ontarget() 227 | - add pitools.waitonwalk() 228 | - add pitools.waitonoma() 229 | - add pitools.waitontrajectory() 230 | - fix DLL function prefix 231 | -------------------------------------------------------------------------------- /site/assets/javascripts/lunr/min/lunr.ru.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Lunr languages, `Russian` language 3 | * https://github.com/MihaiValentin/lunr-languages 4 | * 5 | * Copyright 2014, Mihai Valentin 6 | * http://www.mozilla.org/MPL/ 7 | */ 8 | /*! 9 | * based on 10 | * Snowball JavaScript Library v0.3 11 | * http://code.google.com/p/urim/ 12 | * http://snowball.tartarus.org/ 13 | * 14 | * Copyright 2010, Oleg Mazko 15 | * http://www.mozilla.org/MPL/ 16 | */ 17 | 18 | !function(e,n){"function"==typeof define&&define.amd?define(n):"object"==typeof exports?module.exports=n():n()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.ru=function(){this.pipeline.reset(),this.pipeline.add(e.ru.trimmer,e.ru.stopWordFilter,e.ru.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.ru.stemmer))},e.ru.wordCharacters="Ѐ-҄҇-ԯᴫᵸⷠ-ⷿꙀ-ꚟ︮︯",e.ru.trimmer=e.trimmerSupport.generateTrimmer(e.ru.wordCharacters),e.Pipeline.registerFunction(e.ru.trimmer,"trimmer-ru"),e.ru.stemmer=function(){var n=e.stemmerSupport.Among,r=e.stemmerSupport.SnowballProgram,t=new function(){function e(){for(;!W.in_grouping(S,1072,1103);){if(W.cursor>=W.limit)return!1;W.cursor++}return!0}function t(){for(;!W.out_grouping(S,1072,1103);){if(W.cursor>=W.limit)return!1;W.cursor++}return!0}function w(){b=W.limit,_=b,e()&&(b=W.cursor,t()&&e()&&t()&&(_=W.cursor))}function i(){return _<=W.cursor}function u(e,n){var r,t;if(W.ket=W.cursor,r=W.find_among_b(e,n)){switch(W.bra=W.cursor,r){case 1:if(t=W.limit-W.cursor,!W.eq_s_b(1,"а")&&(W.cursor=W.limit-t,!W.eq_s_b(1,"я")))return!1;case 2:W.slice_del()}return!0}return!1}function o(){return u(h,9)}function s(e,n){var r;return W.ket=W.cursor,!!(r=W.find_among_b(e,n))&&(W.bra=W.cursor,1==r&&W.slice_del(),!0)}function c(){return s(g,26)}function m(){return!!c()&&(u(C,8),!0)}function f(){return s(k,2)}function l(){return u(P,46)}function a(){s(v,36)}function p(){var e;W.ket=W.cursor,(e=W.find_among_b(F,2))&&(W.bra=W.cursor,i()&&1==e&&W.slice_del())}function d(){var e;if(W.ket=W.cursor,e=W.find_among_b(q,4))switch(W.bra=W.cursor,e){case 1:if(W.slice_del(),W.ket=W.cursor,!W.eq_s_b(1,"н"))break;W.bra=W.cursor;case 2:if(!W.eq_s_b(1,"н"))break;case 3:W.slice_del()}}var _,b,h=[new n("в",-1,1),new n("ив",0,2),new n("ыв",0,2),new n("вши",-1,1),new n("ивши",3,2),new n("ывши",3,2),new n("вшись",-1,1),new n("ившись",6,2),new n("ывшись",6,2)],g=[new n("ее",-1,1),new n("ие",-1,1),new n("ое",-1,1),new n("ые",-1,1),new n("ими",-1,1),new n("ыми",-1,1),new n("ей",-1,1),new n("ий",-1,1),new n("ой",-1,1),new n("ый",-1,1),new n("ем",-1,1),new n("им",-1,1),new n("ом",-1,1),new n("ым",-1,1),new n("его",-1,1),new n("ого",-1,1),new n("ему",-1,1),new n("ому",-1,1),new n("их",-1,1),new n("ых",-1,1),new n("ею",-1,1),new n("ою",-1,1),new n("ую",-1,1),new n("юю",-1,1),new n("ая",-1,1),new n("яя",-1,1)],C=[new n("ем",-1,1),new n("нн",-1,1),new n("вш",-1,1),new n("ивш",2,2),new n("ывш",2,2),new n("щ",-1,1),new n("ющ",5,1),new n("ующ",6,2)],k=[new n("сь",-1,1),new n("ся",-1,1)],P=[new n("ла",-1,1),new n("ила",0,2),new n("ыла",0,2),new n("на",-1,1),new n("ена",3,2),new n("ете",-1,1),new n("ите",-1,2),new n("йте",-1,1),new n("ейте",7,2),new n("уйте",7,2),new n("ли",-1,1),new n("или",10,2),new n("ыли",10,2),new n("й",-1,1),new n("ей",13,2),new n("уй",13,2),new n("л",-1,1),new n("ил",16,2),new n("ыл",16,2),new n("ем",-1,1),new n("им",-1,2),new n("ым",-1,2),new n("н",-1,1),new n("ен",22,2),new n("ло",-1,1),new n("ило",24,2),new n("ыло",24,2),new n("но",-1,1),new n("ено",27,2),new n("нно",27,1),new n("ет",-1,1),new n("ует",30,2),new n("ит",-1,2),new n("ыт",-1,2),new n("ют",-1,1),new n("уют",34,2),new n("ят",-1,2),new n("ны",-1,1),new n("ены",37,2),new n("ть",-1,1),new n("ить",39,2),new n("ыть",39,2),new n("ешь",-1,1),new n("ишь",-1,2),new n("ю",-1,2),new n("ую",44,2)],v=[new n("а",-1,1),new n("ев",-1,1),new n("ов",-1,1),new n("е",-1,1),new n("ие",3,1),new n("ье",3,1),new n("и",-1,1),new n("еи",6,1),new n("ии",6,1),new n("ами",6,1),new n("ями",6,1),new n("иями",10,1),new n("й",-1,1),new n("ей",12,1),new n("ией",13,1),new n("ий",12,1),new n("ой",12,1),new n("ам",-1,1),new n("ем",-1,1),new n("ием",18,1),new n("ом",-1,1),new n("ям",-1,1),new n("иям",21,1),new n("о",-1,1),new n("у",-1,1),new n("ах",-1,1),new n("ях",-1,1),new n("иях",26,1),new n("ы",-1,1),new n("ь",-1,1),new n("ю",-1,1),new n("ию",30,1),new n("ью",30,1),new n("я",-1,1),new n("ия",33,1),new n("ья",33,1)],F=[new n("ост",-1,1),new n("ость",-1,1)],q=[new n("ейше",-1,1),new n("н",-1,2),new n("ейш",-1,1),new n("ь",-1,3)],S=[33,65,8,232],W=new r;this.setCurrent=function(e){W.setCurrent(e)},this.getCurrent=function(){return W.getCurrent()},this.stem=function(){return w(),W.cursor=W.limit,!(W.cursor=A.limit)return!0;A.cursor++}for(A.cursor=i;!A.out_grouping(W,97,246);){if(A.cursor>=A.limit)return!0;A.cursor++}return!1}function t(){return d<=A.cursor}function s(){var i,e;if(A.cursor>=f)if(e=A.limit_backward,A.limit_backward=f,A.ket=A.cursor,i=A.find_among_b(h,10)){switch(A.bra=A.cursor,A.limit_backward=e,i){case 1:if(!A.in_grouping_b(x,97,246))return;break;case 2:if(!t())return}A.slice_del()}else A.limit_backward=e}function o(){var i,e,r;if(A.cursor>=f)if(e=A.limit_backward,A.limit_backward=f,A.ket=A.cursor,i=A.find_among_b(v,9))switch(A.bra=A.cursor,A.limit_backward=e,i){case 1:r=A.limit-A.cursor,A.eq_s_b(1,"k")||(A.cursor=A.limit-r,A.slice_del());break;case 2:A.slice_del(),A.ket=A.cursor,A.eq_s_b(3,"kse")&&(A.bra=A.cursor,A.slice_from("ksi"));break;case 3:A.slice_del();break;case 4:A.find_among_b(p,6)&&A.slice_del();break;case 5:A.find_among_b(g,6)&&A.slice_del();break;case 6:A.find_among_b(j,2)&&A.slice_del()}else A.limit_backward=e}function l(){return A.find_among_b(q,7)}function a(){return A.eq_s_b(1,"i")&&A.in_grouping_b(L,97,246)}function u(){var i,e,r;if(A.cursor>=f)if(e=A.limit_backward,A.limit_backward=f,A.ket=A.cursor,i=A.find_among_b(C,30)){switch(A.bra=A.cursor,A.limit_backward=e,i){case 1:if(!A.eq_s_b(1,"a"))return;break;case 2:case 9:if(!A.eq_s_b(1,"e"))return;break;case 3:if(!A.eq_s_b(1,"i"))return;break;case 4:if(!A.eq_s_b(1,"o"))return;break;case 5:if(!A.eq_s_b(1,"ä"))return;break;case 6:if(!A.eq_s_b(1,"ö"))return;break;case 7:if(r=A.limit-A.cursor,!l()&&(A.cursor=A.limit-r,!A.eq_s_b(2,"ie"))){A.cursor=A.limit-r;break}if(A.cursor=A.limit-r,A.cursor<=A.limit_backward){A.cursor=A.limit-r;break}A.cursor--,A.bra=A.cursor;break;case 8:if(!A.in_grouping_b(W,97,246)||!A.out_grouping_b(W,97,246))return}A.slice_del(),k=!0}else A.limit_backward=e}function c(){var i,e,r;if(A.cursor>=d)if(e=A.limit_backward,A.limit_backward=d,A.ket=A.cursor,i=A.find_among_b(P,14)){if(A.bra=A.cursor,A.limit_backward=e,1==i){if(r=A.limit-A.cursor,A.eq_s_b(2,"po"))return;A.cursor=A.limit-r}A.slice_del()}else A.limit_backward=e}function m(){var i;A.cursor>=f&&(i=A.limit_backward,A.limit_backward=f,A.ket=A.cursor,A.find_among_b(F,2)?(A.bra=A.cursor,A.limit_backward=i,A.slice_del()):A.limit_backward=i)}function w(){var i,e,r,n,t,s;if(A.cursor>=f){if(e=A.limit_backward,A.limit_backward=f,A.ket=A.cursor,A.eq_s_b(1,"t")&&(A.bra=A.cursor,r=A.limit-A.cursor,A.in_grouping_b(W,97,246)&&(A.cursor=A.limit-r,A.slice_del(),A.limit_backward=e,n=A.limit-A.cursor,A.cursor>=d&&(A.cursor=d,t=A.limit_backward,A.limit_backward=A.cursor,A.cursor=A.limit-n,A.ket=A.cursor,i=A.find_among_b(S,2))))){if(A.bra=A.cursor,A.limit_backward=t,1==i){if(s=A.limit-A.cursor,A.eq_s_b(2,"po"))return;A.cursor=A.limit-s}return void A.slice_del()}A.limit_backward=e}}function _(){var i,e,r,n;if(A.cursor>=f){for(i=A.limit_backward,A.limit_backward=f,e=A.limit-A.cursor,l()&&(A.cursor=A.limit-e,A.ket=A.cursor,A.cursor>A.limit_backward&&(A.cursor--,A.bra=A.cursor,A.slice_del())),A.cursor=A.limit-e,A.ket=A.cursor,A.in_grouping_b(y,97,228)&&(A.bra=A.cursor,A.out_grouping_b(W,97,246)&&A.slice_del()),A.cursor=A.limit-e,A.ket=A.cursor,A.eq_s_b(1,"j")&&(A.bra=A.cursor,r=A.limit-A.cursor,A.eq_s_b(1,"o")?A.slice_del():(A.cursor=A.limit-r,A.eq_s_b(1,"u")&&A.slice_del())),A.cursor=A.limit-e,A.ket=A.cursor,A.eq_s_b(1,"o")&&(A.bra=A.cursor,A.eq_s_b(1,"j")&&A.slice_del()),A.cursor=A.limit-e,A.limit_backward=i;;){if(n=A.limit-A.cursor,A.out_grouping_b(W,97,246)){A.cursor=A.limit-n;break}if(A.cursor=A.limit-n,A.cursor<=A.limit_backward)return;A.cursor--}A.ket=A.cursor,A.cursor>A.limit_backward&&(A.cursor--,A.bra=A.cursor,b=A.slice_to(),A.eq_v_b(b)&&A.slice_del())}}var k,b,d,f,h=[new e("pa",-1,1),new e("sti",-1,2),new e("kaan",-1,1),new e("han",-1,1),new e("kin",-1,1),new e("hän",-1,1),new e("kään",-1,1),new e("ko",-1,1),new e("pä",-1,1),new e("kö",-1,1)],p=[new e("lla",-1,-1),new e("na",-1,-1),new e("ssa",-1,-1),new e("ta",-1,-1),new e("lta",3,-1),new e("sta",3,-1)],g=[new e("llä",-1,-1),new e("nä",-1,-1),new e("ssä",-1,-1),new e("tä",-1,-1),new e("ltä",3,-1),new e("stä",3,-1)],j=[new e("lle",-1,-1),new e("ine",-1,-1)],v=[new e("nsa",-1,3),new e("mme",-1,3),new e("nne",-1,3),new e("ni",-1,2),new e("si",-1,1),new e("an",-1,4),new e("en",-1,6),new e("än",-1,5),new e("nsä",-1,3)],q=[new e("aa",-1,-1),new e("ee",-1,-1),new e("ii",-1,-1),new e("oo",-1,-1),new e("uu",-1,-1),new e("ää",-1,-1),new e("öö",-1,-1)],C=[new e("a",-1,8),new e("lla",0,-1),new e("na",0,-1),new e("ssa",0,-1),new e("ta",0,-1),new e("lta",4,-1),new e("sta",4,-1),new e("tta",4,9),new e("lle",-1,-1),new e("ine",-1,-1),new e("ksi",-1,-1),new e("n",-1,7),new e("han",11,1),new e("den",11,-1,a),new e("seen",11,-1,l),new e("hen",11,2),new e("tten",11,-1,a),new e("hin",11,3),new e("siin",11,-1,a),new e("hon",11,4),new e("hän",11,5),new e("hön",11,6),new e("ä",-1,8),new e("llä",22,-1),new e("nä",22,-1),new e("ssä",22,-1),new e("tä",22,-1),new e("ltä",26,-1),new e("stä",26,-1),new e("ttä",26,9)],P=[new e("eja",-1,-1),new e("mma",-1,1),new e("imma",1,-1),new e("mpa",-1,1),new e("impa",3,-1),new e("mmi",-1,1),new e("immi",5,-1),new e("mpi",-1,1),new e("impi",7,-1),new e("ejä",-1,-1),new e("mmä",-1,1),new e("immä",10,-1),new e("mpä",-1,1),new e("impä",12,-1)],F=[new e("i",-1,-1),new e("j",-1,-1)],S=[new e("mma",-1,1),new e("imma",0,-1)],y=[17,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8],W=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32],L=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32],x=[17,97,24,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32],A=new r;this.setCurrent=function(i){A.setCurrent(i)},this.getCurrent=function(){return A.getCurrent()},this.stem=function(){var e=A.cursor;return i(),k=!1,A.limit_backward=e,A.cursor=A.limit,s(),A.cursor=A.limit,o(),A.cursor=A.limit,u(),A.cursor=A.limit,c(),A.cursor=A.limit,k?(m(),A.cursor=A.limit):(A.cursor=A.limit,w(),A.cursor=A.limit),_(),!0}};return function(i){return"function"==typeof i.update?i.update(function(i){return n.setCurrent(i),n.stem(),n.getCurrent()}):(n.setCurrent(i),n.stem(),n.getCurrent())}}(),i.Pipeline.registerFunction(i.fi.stemmer,"stemmer-fi"),i.fi.stopWordFilter=i.generateStopWordFilter("ei eivät emme en et ette että he heidän heidät heihin heille heillä heiltä heissä heistä heitä hän häneen hänelle hänellä häneltä hänen hänessä hänestä hänet häntä itse ja johon joiden joihin joiksi joilla joille joilta joina joissa joista joita joka joksi jolla jolle jolta jona jonka jos jossa josta jota jotka kanssa keiden keihin keiksi keille keillä keiltä keinä keissä keistä keitä keneen keneksi kenelle kenellä keneltä kenen kenenä kenessä kenestä kenet ketkä ketkä ketä koska kuin kuka kun me meidän meidät meihin meille meillä meiltä meissä meistä meitä mihin miksi mikä mille millä miltä minkä minkä minua minulla minulle minulta minun minussa minusta minut minuun minä minä missä mistä mitkä mitä mukaan mutta ne niiden niihin niiksi niille niillä niiltä niin niin niinä niissä niistä niitä noiden noihin noiksi noilla noille noilta noin noina noissa noista noita nuo nyt näiden näihin näiksi näille näillä näiltä näinä näissä näistä näitä nämä ole olemme olen olet olette oli olimme olin olisi olisimme olisin olisit olisitte olisivat olit olitte olivat olla olleet ollut on ovat poikki se sekä sen siihen siinä siitä siksi sille sillä sillä siltä sinua sinulla sinulle sinulta sinun sinussa sinusta sinut sinuun sinä sinä sitä tai te teidän teidät teihin teille teillä teiltä teissä teistä teitä tuo tuohon tuoksi tuolla tuolle tuolta tuon tuona tuossa tuosta tuota tähän täksi tälle tällä tältä tämä tämän tänä tässä tästä tätä vaan vai vaikka yli".split(" ")),i.Pipeline.registerFunction(i.fi.stopWordFilter,"stopWordFilter-fi")}}); -------------------------------------------------------------------------------- /site/assets/javascripts/lunr/min/lunr.hu.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Lunr languages, `Hungarian` language 3 | * https://github.com/MihaiValentin/lunr-languages 4 | * 5 | * Copyright 2014, Mihai Valentin 6 | * http://www.mozilla.org/MPL/ 7 | */ 8 | /*! 9 | * based on 10 | * Snowball JavaScript Library v0.3 11 | * http://code.google.com/p/urim/ 12 | * http://snowball.tartarus.org/ 13 | * 14 | * Copyright 2010, Oleg Mazko 15 | * http://www.mozilla.org/MPL/ 16 | */ 17 | 18 | !function(e,n){"function"==typeof define&&define.amd?define(n):"object"==typeof exports?module.exports=n():n()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.hu=function(){this.pipeline.reset(),this.pipeline.add(e.hu.trimmer,e.hu.stopWordFilter,e.hu.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.hu.stemmer))},e.hu.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.hu.trimmer=e.trimmerSupport.generateTrimmer(e.hu.wordCharacters),e.Pipeline.registerFunction(e.hu.trimmer,"trimmer-hu"),e.hu.stemmer=function(){var n=e.stemmerSupport.Among,r=e.stemmerSupport.SnowballProgram,i=new function(){function e(){var e,n=L.cursor;if(d=L.limit,L.in_grouping(W,97,252))for(;;){if(e=L.cursor,L.out_grouping(W,97,252))return L.cursor=e,L.find_among(g,8)||(L.cursor=e,e=L.limit)return void(d=e);L.cursor++}if(L.cursor=n,L.out_grouping(W,97,252)){for(;!L.in_grouping(W,97,252);){if(L.cursor>=L.limit)return;L.cursor++}d=L.cursor}}function i(){return d<=L.cursor}function a(){var e;if(L.ket=L.cursor,(e=L.find_among_b(h,2))&&(L.bra=L.cursor,i()))switch(e){case 1:L.slice_from("a");break;case 2:L.slice_from("e")}}function t(){var e=L.limit-L.cursor;return!!L.find_among_b(p,23)&&(L.cursor=L.limit-e,!0)}function s(){if(L.cursor>L.limit_backward){L.cursor--,L.ket=L.cursor;var e=L.cursor-1;L.limit_backward<=e&&e<=L.limit&&(L.cursor=e,L.bra=e,L.slice_del())}}function c(){var e;if(L.ket=L.cursor,(e=L.find_among_b(_,2))&&(L.bra=L.cursor,i())){if((1==e||2==e)&&!t())return;L.slice_del(),s()}}function o(){L.ket=L.cursor,L.find_among_b(v,44)&&(L.bra=L.cursor,i()&&(L.slice_del(),a()))}function w(){var e;if(L.ket=L.cursor,(e=L.find_among_b(z,3))&&(L.bra=L.cursor,i()))switch(e){case 1:L.slice_from("e");break;case 2:case 3:L.slice_from("a")}}function l(){var e;if(L.ket=L.cursor,(e=L.find_among_b(y,6))&&(L.bra=L.cursor,i()))switch(e){case 1:case 2:L.slice_del();break;case 3:L.slice_from("a");break;case 4:L.slice_from("e")}}function u(){var e;if(L.ket=L.cursor,(e=L.find_among_b(j,2))&&(L.bra=L.cursor,i())){if((1==e||2==e)&&!t())return;L.slice_del(),s()}}function m(){var e;if(L.ket=L.cursor,(e=L.find_among_b(C,7))&&(L.bra=L.cursor,i()))switch(e){case 1:L.slice_from("a");break;case 2:L.slice_from("e");break;case 3:case 4:case 5:case 6:case 7:L.slice_del()}}function k(){var e;if(L.ket=L.cursor,(e=L.find_among_b(P,12))&&(L.bra=L.cursor,i()))switch(e){case 1:case 4:case 7:case 9:L.slice_del();break;case 2:case 5:case 8:L.slice_from("e");break;case 3:case 6:L.slice_from("a")}}function f(){var e;if(L.ket=L.cursor,(e=L.find_among_b(F,31))&&(L.bra=L.cursor,i()))switch(e){case 1:case 4:case 7:case 8:case 9:case 12:case 13:case 16:case 17:case 18:L.slice_del();break;case 2:case 5:case 10:case 14:case 19:L.slice_from("a");break;case 3:case 6:case 11:case 15:case 20:L.slice_from("e")}}function b(){var e;if(L.ket=L.cursor,(e=L.find_among_b(S,42))&&(L.bra=L.cursor,i()))switch(e){case 1:case 4:case 5:case 6:case 9:case 10:case 11:case 14:case 15:case 16:case 17:case 20:case 21:case 24:case 25:case 26:case 29:L.slice_del();break;case 2:case 7:case 12:case 18:case 22:case 27:L.slice_from("a");break;case 3:case 8:case 13:case 19:case 23:case 28:L.slice_from("e")}}var d,g=[new n("cs",-1,-1),new n("dzs",-1,-1),new n("gy",-1,-1),new n("ly",-1,-1),new n("ny",-1,-1),new n("sz",-1,-1),new n("ty",-1,-1),new n("zs",-1,-1)],h=[new n("á",-1,1),new n("é",-1,2)],p=[new n("bb",-1,-1),new n("cc",-1,-1),new n("dd",-1,-1),new n("ff",-1,-1),new n("gg",-1,-1),new n("jj",-1,-1),new n("kk",-1,-1),new n("ll",-1,-1),new n("mm",-1,-1),new n("nn",-1,-1),new n("pp",-1,-1),new n("rr",-1,-1),new n("ccs",-1,-1),new n("ss",-1,-1),new n("zzs",-1,-1),new n("tt",-1,-1),new n("vv",-1,-1),new n("ggy",-1,-1),new n("lly",-1,-1),new n("nny",-1,-1),new n("tty",-1,-1),new n("ssz",-1,-1),new n("zz",-1,-1)],_=[new n("al",-1,1),new n("el",-1,2)],v=[new n("ba",-1,-1),new n("ra",-1,-1),new n("be",-1,-1),new n("re",-1,-1),new n("ig",-1,-1),new n("nak",-1,-1),new n("nek",-1,-1),new n("val",-1,-1),new n("vel",-1,-1),new n("ul",-1,-1),new n("nál",-1,-1),new n("nél",-1,-1),new n("ból",-1,-1),new n("ról",-1,-1),new n("tól",-1,-1),new n("bõl",-1,-1),new n("rõl",-1,-1),new n("tõl",-1,-1),new n("ül",-1,-1),new n("n",-1,-1),new n("an",19,-1),new n("ban",20,-1),new n("en",19,-1),new n("ben",22,-1),new n("képpen",22,-1),new n("on",19,-1),new n("ön",19,-1),new n("képp",-1,-1),new n("kor",-1,-1),new n("t",-1,-1),new n("at",29,-1),new n("et",29,-1),new n("ként",29,-1),new n("anként",32,-1),new n("enként",32,-1),new n("onként",32,-1),new n("ot",29,-1),new n("ért",29,-1),new n("öt",29,-1),new n("hez",-1,-1),new n("hoz",-1,-1),new n("höz",-1,-1),new n("vá",-1,-1),new n("vé",-1,-1)],z=[new n("án",-1,2),new n("én",-1,1),new n("ánként",-1,3)],y=[new n("stul",-1,2),new n("astul",0,1),new n("ástul",0,3),new n("stül",-1,2),new n("estül",3,1),new n("éstül",3,4)],j=[new n("á",-1,1),new n("é",-1,2)],C=[new n("k",-1,7),new n("ak",0,4),new n("ek",0,6),new n("ok",0,5),new n("ák",0,1),new n("ék",0,2),new n("ök",0,3)],P=[new n("éi",-1,7),new n("áéi",0,6),new n("ééi",0,5),new n("é",-1,9),new n("ké",3,4),new n("aké",4,1),new n("eké",4,1),new n("oké",4,1),new n("áké",4,3),new n("éké",4,2),new n("öké",4,1),new n("éé",3,8)],F=[new n("a",-1,18),new n("ja",0,17),new n("d",-1,16),new n("ad",2,13),new n("ed",2,13),new n("od",2,13),new n("ád",2,14),new n("éd",2,15),new n("öd",2,13),new n("e",-1,18),new n("je",9,17),new n("nk",-1,4),new n("unk",11,1),new n("ánk",11,2),new n("énk",11,3),new n("ünk",11,1),new n("uk",-1,8),new n("juk",16,7),new n("ájuk",17,5),new n("ük",-1,8),new n("jük",19,7),new n("éjük",20,6),new n("m",-1,12),new n("am",22,9),new n("em",22,9),new n("om",22,9),new n("ám",22,10),new n("ém",22,11),new n("o",-1,18),new n("á",-1,19),new n("é",-1,20)],S=[new n("id",-1,10),new n("aid",0,9),new n("jaid",1,6),new n("eid",0,9),new n("jeid",3,6),new n("áid",0,7),new n("éid",0,8),new n("i",-1,15),new n("ai",7,14),new n("jai",8,11),new n("ei",7,14),new n("jei",10,11),new n("ái",7,12),new n("éi",7,13),new n("itek",-1,24),new n("eitek",14,21),new n("jeitek",15,20),new n("éitek",14,23),new n("ik",-1,29),new n("aik",18,26),new n("jaik",19,25),new n("eik",18,26),new n("jeik",21,25),new n("áik",18,27),new n("éik",18,28),new n("ink",-1,20),new n("aink",25,17),new n("jaink",26,16),new n("eink",25,17),new n("jeink",28,16),new n("áink",25,18),new n("éink",25,19),new n("aitok",-1,21),new n("jaitok",32,20),new n("áitok",-1,22),new n("im",-1,5),new n("aim",35,4),new n("jaim",36,1),new n("eim",35,4),new n("jeim",38,1),new n("áim",35,2),new n("éim",35,3)],W=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,1,17,52,14],L=new r;this.setCurrent=function(e){L.setCurrent(e)},this.getCurrent=function(){return L.getCurrent()},this.stem=function(){var n=L.cursor;return e(),L.limit_backward=n,L.cursor=L.limit,c(),L.cursor=L.limit,o(),L.cursor=L.limit,w(),L.cursor=L.limit,l(),L.cursor=L.limit,u(),L.cursor=L.limit,k(),L.cursor=L.limit,f(),L.cursor=L.limit,b(),L.cursor=L.limit,m(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.hu.stemmer,"stemmer-hu"),e.hu.stopWordFilter=e.generateStopWordFilter("a abban ahhoz ahogy ahol aki akik akkor alatt amely amelyek amelyekben amelyeket amelyet amelynek ami amikor amit amolyan amíg annak arra arról az azok azon azonban azt aztán azután azzal azért be belül benne bár cikk cikkek cikkeket csak de e ebben eddig egy egyes egyetlen egyik egyre egyéb egész ehhez ekkor el ellen elsõ elég elõ elõször elõtt emilyen ennek erre ez ezek ezen ezt ezzel ezért fel felé hanem hiszen hogy hogyan igen ill ill. illetve ilyen ilyenkor ismét ison itt jobban jó jól kell kellett keressünk keresztül ki kívül között közül legalább legyen lehet lehetett lenne lenni lesz lett maga magát majd majd meg mellett mely melyek mert mi mikor milyen minden mindenki mindent mindig mint mintha mit mivel miért most már más másik még míg nagy nagyobb nagyon ne nekem neki nem nincs néha néhány nélkül olyan ott pedig persze rá s saját sem semmi sok sokat sokkal szemben szerint szinte számára talán tehát teljes tovább továbbá több ugyanis utolsó után utána vagy vagyis vagyok valaki valami valamint való van vannak vele vissza viszont volna volt voltak voltam voltunk által általában át én éppen és így õ õk õket össze úgy új újabb újra".split(" ")),e.Pipeline.registerFunction(e.hu.stopWordFilter,"stopWordFilter-hu")}}); -------------------------------------------------------------------------------- /site/assets/javascripts/lunr/min/lunr.pt.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Lunr languages, `Portuguese` language 3 | * https://github.com/MihaiValentin/lunr-languages 4 | * 5 | * Copyright 2014, Mihai Valentin 6 | * http://www.mozilla.org/MPL/ 7 | */ 8 | /*! 9 | * based on 10 | * Snowball JavaScript Library v0.3 11 | * http://code.google.com/p/urim/ 12 | * http://snowball.tartarus.org/ 13 | * 14 | * Copyright 2010, Oleg Mazko 15 | * http://www.mozilla.org/MPL/ 16 | */ 17 | 18 | !function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.pt=function(){this.pipeline.reset(),this.pipeline.add(e.pt.trimmer,e.pt.stopWordFilter,e.pt.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.pt.stemmer))},e.pt.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.pt.trimmer=e.trimmerSupport.generateTrimmer(e.pt.wordCharacters),e.Pipeline.registerFunction(e.pt.trimmer,"trimmer-pt"),e.pt.stemmer=function(){var r=e.stemmerSupport.Among,s=e.stemmerSupport.SnowballProgram,n=new function(){function e(){for(var e;;){if(z.bra=z.cursor,e=z.find_among(k,3))switch(z.ket=z.cursor,e){case 1:z.slice_from("a~");continue;case 2:z.slice_from("o~");continue;case 3:if(z.cursor>=z.limit)break;z.cursor++;continue}break}}function n(){if(z.out_grouping(y,97,250)){for(;!z.in_grouping(y,97,250);){if(z.cursor>=z.limit)return!0;z.cursor++}return!1}return!0}function i(){if(z.in_grouping(y,97,250))for(;!z.out_grouping(y,97,250);){if(z.cursor>=z.limit)return!1;z.cursor++}return g=z.cursor,!0}function o(){var e,r,s=z.cursor;if(z.in_grouping(y,97,250))if(e=z.cursor,n()){if(z.cursor=e,i())return}else g=z.cursor;if(z.cursor=s,z.out_grouping(y,97,250)){if(r=z.cursor,n()){if(z.cursor=r,!z.in_grouping(y,97,250)||z.cursor>=z.limit)return;z.cursor++}g=z.cursor}}function t(){for(;!z.in_grouping(y,97,250);){if(z.cursor>=z.limit)return!1;z.cursor++}for(;!z.out_grouping(y,97,250);){if(z.cursor>=z.limit)return!1;z.cursor++}return!0}function a(){var e=z.cursor;g=z.limit,b=g,h=g,o(),z.cursor=e,t()&&(b=z.cursor,t()&&(h=z.cursor))}function u(){for(var e;;){if(z.bra=z.cursor,e=z.find_among(q,3))switch(z.ket=z.cursor,e){case 1:z.slice_from("ã");continue;case 2:z.slice_from("õ");continue;case 3:if(z.cursor>=z.limit)break;z.cursor++;continue}break}}function w(){return g<=z.cursor}function m(){return b<=z.cursor}function c(){return h<=z.cursor}function l(){var e;if(z.ket=z.cursor,!(e=z.find_among_b(F,45)))return!1;switch(z.bra=z.cursor,e){case 1:if(!c())return!1;z.slice_del();break;case 2:if(!c())return!1;z.slice_from("log");break;case 3:if(!c())return!1;z.slice_from("u");break;case 4:if(!c())return!1;z.slice_from("ente");break;case 5:if(!m())return!1;z.slice_del(),z.ket=z.cursor,e=z.find_among_b(j,4),e&&(z.bra=z.cursor,c()&&(z.slice_del(),1==e&&(z.ket=z.cursor,z.eq_s_b(2,"at")&&(z.bra=z.cursor,c()&&z.slice_del()))));break;case 6:if(!c())return!1;z.slice_del(),z.ket=z.cursor,e=z.find_among_b(C,3),e&&(z.bra=z.cursor,1==e&&c()&&z.slice_del());break;case 7:if(!c())return!1;z.slice_del(),z.ket=z.cursor,e=z.find_among_b(P,3),e&&(z.bra=z.cursor,1==e&&c()&&z.slice_del());break;case 8:if(!c())return!1;z.slice_del(),z.ket=z.cursor,z.eq_s_b(2,"at")&&(z.bra=z.cursor,c()&&z.slice_del());break;case 9:if(!w()||!z.eq_s_b(1,"e"))return!1;z.slice_from("ir")}return!0}function f(){var e,r;if(z.cursor>=g){if(r=z.limit_backward,z.limit_backward=g,z.ket=z.cursor,e=z.find_among_b(S,120))return z.bra=z.cursor,1==e&&z.slice_del(),z.limit_backward=r,!0;z.limit_backward=r}return!1}function d(){var e;z.ket=z.cursor,(e=z.find_among_b(W,7))&&(z.bra=z.cursor,1==e&&w()&&z.slice_del())}function v(e,r){if(z.eq_s_b(1,e)){z.bra=z.cursor;var s=z.limit-z.cursor;if(z.eq_s_b(1,r))return z.cursor=z.limit-s,w()&&z.slice_del(),!1}return!0}function p(){var e;if(z.ket=z.cursor,e=z.find_among_b(L,4))switch(z.bra=z.cursor,e){case 1:w()&&(z.slice_del(),z.ket=z.cursor,z.limit-z.cursor,v("u","g")&&v("i","c"));break;case 2:z.slice_from("c")}}function _(){if(!l()&&(z.cursor=z.limit,!f()))return z.cursor=z.limit,void d();z.cursor=z.limit,z.ket=z.cursor,z.eq_s_b(1,"i")&&(z.bra=z.cursor,z.eq_s_b(1,"c")&&(z.cursor=z.limit,w()&&z.slice_del()))}var h,b,g,k=[new r("",-1,3),new r("ã",0,1),new r("õ",0,2)],q=[new r("",-1,3),new r("a~",0,1),new r("o~",0,2)],j=[new r("ic",-1,-1),new r("ad",-1,-1),new r("os",-1,-1),new r("iv",-1,1)],C=[new r("ante",-1,1),new r("avel",-1,1),new r("ível",-1,1)],P=[new r("ic",-1,1),new r("abil",-1,1),new r("iv",-1,1)],F=[new r("ica",-1,1),new r("ância",-1,1),new r("ência",-1,4),new r("ira",-1,9),new r("adora",-1,1),new r("osa",-1,1),new r("ista",-1,1),new r("iva",-1,8),new r("eza",-1,1),new r("logía",-1,2),new r("idade",-1,7),new r("ante",-1,1),new r("mente",-1,6),new r("amente",12,5),new r("ável",-1,1),new r("ível",-1,1),new r("ución",-1,3),new r("ico",-1,1),new r("ismo",-1,1),new r("oso",-1,1),new r("amento",-1,1),new r("imento",-1,1),new r("ivo",-1,8),new r("aça~o",-1,1),new r("ador",-1,1),new r("icas",-1,1),new r("ências",-1,4),new r("iras",-1,9),new r("adoras",-1,1),new r("osas",-1,1),new r("istas",-1,1),new r("ivas",-1,8),new r("ezas",-1,1),new r("logías",-1,2),new r("idades",-1,7),new r("uciones",-1,3),new r("adores",-1,1),new r("antes",-1,1),new r("aço~es",-1,1),new r("icos",-1,1),new r("ismos",-1,1),new r("osos",-1,1),new r("amentos",-1,1),new r("imentos",-1,1),new r("ivos",-1,8)],S=[new r("ada",-1,1),new r("ida",-1,1),new r("ia",-1,1),new r("aria",2,1),new r("eria",2,1),new r("iria",2,1),new r("ara",-1,1),new r("era",-1,1),new r("ira",-1,1),new r("ava",-1,1),new r("asse",-1,1),new r("esse",-1,1),new r("isse",-1,1),new r("aste",-1,1),new r("este",-1,1),new r("iste",-1,1),new r("ei",-1,1),new r("arei",16,1),new r("erei",16,1),new r("irei",16,1),new r("am",-1,1),new r("iam",20,1),new r("ariam",21,1),new r("eriam",21,1),new r("iriam",21,1),new r("aram",20,1),new r("eram",20,1),new r("iram",20,1),new r("avam",20,1),new r("em",-1,1),new r("arem",29,1),new r("erem",29,1),new r("irem",29,1),new r("assem",29,1),new r("essem",29,1),new r("issem",29,1),new r("ado",-1,1),new r("ido",-1,1),new r("ando",-1,1),new r("endo",-1,1),new r("indo",-1,1),new r("ara~o",-1,1),new r("era~o",-1,1),new r("ira~o",-1,1),new r("ar",-1,1),new r("er",-1,1),new r("ir",-1,1),new r("as",-1,1),new r("adas",47,1),new r("idas",47,1),new r("ias",47,1),new r("arias",50,1),new r("erias",50,1),new r("irias",50,1),new r("aras",47,1),new r("eras",47,1),new r("iras",47,1),new r("avas",47,1),new r("es",-1,1),new r("ardes",58,1),new r("erdes",58,1),new r("irdes",58,1),new r("ares",58,1),new r("eres",58,1),new r("ires",58,1),new r("asses",58,1),new r("esses",58,1),new r("isses",58,1),new r("astes",58,1),new r("estes",58,1),new r("istes",58,1),new r("is",-1,1),new r("ais",71,1),new r("eis",71,1),new r("areis",73,1),new r("ereis",73,1),new r("ireis",73,1),new r("áreis",73,1),new r("éreis",73,1),new r("íreis",73,1),new r("ásseis",73,1),new r("ésseis",73,1),new r("ísseis",73,1),new r("áveis",73,1),new r("íeis",73,1),new r("aríeis",84,1),new r("eríeis",84,1),new r("iríeis",84,1),new r("ados",-1,1),new r("idos",-1,1),new r("amos",-1,1),new r("áramos",90,1),new r("éramos",90,1),new r("íramos",90,1),new r("ávamos",90,1),new r("íamos",90,1),new r("aríamos",95,1),new r("eríamos",95,1),new r("iríamos",95,1),new r("emos",-1,1),new r("aremos",99,1),new r("eremos",99,1),new r("iremos",99,1),new r("ássemos",99,1),new r("êssemos",99,1),new r("íssemos",99,1),new r("imos",-1,1),new r("armos",-1,1),new r("ermos",-1,1),new r("irmos",-1,1),new r("ámos",-1,1),new r("arás",-1,1),new r("erás",-1,1),new r("irás",-1,1),new r("eu",-1,1),new r("iu",-1,1),new r("ou",-1,1),new r("ará",-1,1),new r("erá",-1,1),new r("irá",-1,1)],W=[new r("a",-1,1),new r("i",-1,1),new r("o",-1,1),new r("os",-1,1),new r("á",-1,1),new r("í",-1,1),new r("ó",-1,1)],L=[new r("e",-1,1),new r("ç",-1,2),new r("é",-1,1),new r("ê",-1,1)],y=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,3,19,12,2],z=new s;this.setCurrent=function(e){z.setCurrent(e)},this.getCurrent=function(){return z.getCurrent()},this.stem=function(){var r=z.cursor;return e(),z.cursor=r,a(),z.limit_backward=r,z.cursor=z.limit,_(),z.cursor=z.limit,p(),z.cursor=z.limit_backward,u(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.pt.stemmer,"stemmer-pt"),e.pt.stopWordFilter=e.generateStopWordFilter("a ao aos aquela aquelas aquele aqueles aquilo as até com como da das de dela delas dele deles depois do dos e ela elas ele eles em entre era eram essa essas esse esses esta estamos estas estava estavam este esteja estejam estejamos estes esteve estive estivemos estiver estivera estiveram estiverem estivermos estivesse estivessem estivéramos estivéssemos estou está estávamos estão eu foi fomos for fora foram forem formos fosse fossem fui fôramos fôssemos haja hajam hajamos havemos hei houve houvemos houver houvera houveram houverei houverem houveremos houveria houveriam houvermos houverá houverão houveríamos houvesse houvessem houvéramos houvéssemos há hão isso isto já lhe lhes mais mas me mesmo meu meus minha minhas muito na nas nem no nos nossa nossas nosso nossos num numa não nós o os ou para pela pelas pelo pelos por qual quando que quem se seja sejam sejamos sem serei seremos seria seriam será serão seríamos seu seus somos sou sua suas são só também te tem temos tenha tenham tenhamos tenho terei teremos teria teriam terá terão teríamos teu teus teve tinha tinham tive tivemos tiver tivera tiveram tiverem tivermos tivesse tivessem tivéramos tivéssemos tu tua tuas tém tínhamos um uma você vocês vos à às éramos".split(" ")),e.Pipeline.registerFunction(e.pt.stopWordFilter,"stopWordFilter-pt")}}); -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # PIPython 2 | 3 | PIPython is a collection of Python modules to access a PI device and process 4 | GCS data. It can be used with Python 3.6+ on Windows, Linux and OS X 5 | and without the GCS DLL also on any other platform. 6 | 7 | ## Installation 8 | 9 | By using PIPython you agree to the license agreement, see the provided file: 10 | 11 | eula.md 12 | 13 | ### From local folder 14 | 15 | Unzip the file PIPython.zip, open a command entry (Linux Console or Windows CMD window) and run: 16 | 17 | python setup.py install 18 | 19 | For further reading open the *index.html* file in your browser and see the samples in the 20 | *samples* folder. 21 | 22 | ### From GitHub 23 | 24 | [PIPython on GitHub](https://github.com/PI-PhysikInstrumente/PIPython) 25 | 26 | git clone git@github.com:PI-PhysikInstrumente/PIPython.git 27 | python setup.py install 28 | 29 | ### From pypi.org 30 | 31 | pip install PIPython 32 | 33 | ### Feedback 34 | 35 | We appreciate your feedback at: 36 | 37 | service@pi.de 38 | 39 | ## Quickstart 40 | 41 | Communicate to a PI device via `GCSDevice` which wraps the GCS DLL functions 42 | and provides methods to connect to the device. Call `GCSDevice` with the 43 | controller name as argument. 44 | 45 | ~~~python 46 | from pipython import GCSDevice 47 | pidevice = GCSDevice('C-884') 48 | pidevice.InterfaceSetupDlg() 49 | print pidevice.qIDN() 50 | pidevice.CloseConnection() 51 | ~~~ 52 | 53 | `GCSDevice` is a context manager which closes the connection if an exception 54 | raises inside the `with` statement. 55 | 56 | ~~~python 57 | from pipython import GCSDevice 58 | with GCSDevice('C-884') as pidevice: 59 | pidevice.InterfaceSetupDlg() 60 | print(pidevice.qIDN()) 61 | ~~~ 62 | 63 | See also the provided samples in the `samples` subdirectory. Be aware that some controllers may not work with every sample and vice versa. See [Available commands](#available-commands) and look out for comments in the samples. Start with `quickstart.py`. 64 | 65 | 66 | 67 | ## Requirements 68 | 69 | ### Required packages 70 | 71 | Download these python packages with pip install: 72 | 73 | - PyUSB 74 | - PySocket 75 | - PySerial 76 | 77 | With pipython.interfaces.piusb you can connect a USB device without using the GCS DLL. 78 | This works only with Linux and requires LibUSB which usually is provided by the OS. 79 | 80 | 81 | ### Available commands 82 | 83 | Some GCS commands are only available for certain types of PI devices. For example, the `qPOS()` and `MOV()` commands are only available for devices working in closed-loop operation. Available GCS commands can be found in the manual or technical note of the controller. For a given device, to query for all available commands or for a specific command, use the `qHLP()` or `Has()` commands, respectively. 84 | 85 | 86 | ## Arguments 87 | 88 | From now on `pidevice` refers to a connected `GCSDevice` instance. 89 | 90 | 91 | ### Setter functions 92 | 93 | Usually you can call a setter function with 94 | - a dictionary of axes/channels and values 95 | - a list for axes/channels and a list of the values 96 | - a single item for axis/channel and a single value 97 | 98 | ~~~python 99 | gcs.MOV({'X': 1.23, 'Y': 2.34}) 100 | gcs.MOV(['X', 'Y'], [1.23, 2.34]) 101 | gcs.MOV('X', 1.23) 102 | ~~~ 103 | 104 | For channels and numeric axis names you can omit the quotes. 105 | 106 | ~~~python 107 | gcs.MOV({1: 1.23, 2: 2.34}) 108 | gcs.MOV([1, 2], [1.23, 2.34]) 109 | gcs.MOV(1, 1.23) 110 | ~~~ 111 | 112 | 113 | ### Getter functions 114 | 115 | #### GCS 2.0 116 | 117 | Usually getter commands can be called with 118 | 119 | - a list of axes/channels. 120 | - a single item for axis/channel, without quotes if numeric 121 | - without any arguments which will return the answer for all available axes/channels 122 | 123 | ~~~python 124 | gcs.qPOS(['X', 'Y']) 125 | gcs.qPOS('X') 126 | gcs.qPOS(1) 127 | gcs.qPOS() 128 | ~~~ 129 | 130 | 131 | #### GCS 3.0 132 | 133 | Usually getter commands can be called with 134 | 135 | - a single axis 136 | - without any arguments which will return the answer for all available axes 137 | 138 | ~~~python 139 | gcs.qPOS('AXIS_1') 140 | gcs.qPOS() 141 | ~~~ 142 | 143 | ## Return values 144 | 145 | Axes or channel related answers are returned as (ordered) dictionary. 146 | 147 | ~~~python 148 | pidevice.qPOS() 149 | >>>{'X': 1.23, 'Y': 2.34} 150 | ~~~ 151 | 152 | 153 | If you do not provide arguments you always have to use strings as keys. 154 | 155 | ~~~python 156 | pos = pidevice.qPOS() 157 | print(pos['1']) 158 | ~~~ 159 | 160 | The following sample will move all `axes` to `targets` and waits until the motion has finished. 161 | It shows how to use only the values from the returned dictionary. 162 | 163 | ~~~python 164 | from time import sleep 165 | ... 166 | pidevice.MOV(axes, targets) 167 | while not all(list(pidevice.qONT(axes).values())): 168 | sleep(0.1) 169 | ~~~ 170 | 171 | #### GCS 2.0 172 | 173 | If you provide arguments their types are preserved and you can use these as keys. 174 | 175 | ~~~python 176 | pos = pidevice.qPOS([1, 2, 3]) 177 | print(pos[1]) 178 | ~~~ 179 | 180 | #### GCS 3.0 181 | 182 | If you provide arguments their types are preserved and you can use these as keys. 183 | 184 | ~~~python 185 | pos = pidevice.qPOS('AXIS_1') # only one axis is possible 186 | print(pos['AXIS_1']) 187 | ~~~ 188 | 189 | 190 | ## Some hints... 191 | 192 | 193 | ### Helpers 194 | 195 | In `pipython.pitools` you will find some helper funtions for your convenience. See the provided 196 | samples for how to use them. The sample above can then be written as: 197 | 198 | ~~~python 199 | from pipython import pitools 200 | ... 201 | pidevice.MOV(axes, targets) 202 | pitools.waitontarget(pidevice, axes) 203 | ~~~ 204 | 205 | 206 | ### Enable debug logging 207 | 208 | To log debug messages on the console just enter these lines prior to calling `GCSDevice`. 209 | 210 | ~~~python 211 | from pipython import PILogger, DEBUG, INFO, WARNING, ERROR, CRITICAL 212 | 213 | PILogger.setLevel(DEBUG) 214 | ~~~ 215 | 216 | 217 | ### GCSError and error check 218 | 219 | By default an "ERR?" command is sent after each command to query if an error 220 | occurred on the device which then will be raised as `GCSError` exception. If communication 221 | speed is an issue you can disable error checking. 222 | 223 | ~~~python 224 | pidevice.errcheck = False 225 | ~~~ 226 | 227 | To handle a catched `GCSError` exception you can use the defines provided by 228 | `gcserror` instead of pure numeric values. Remember the difference between `GCSError` which 229 | is the exception class and `gcserror` which is the according module. 230 | 231 | ~~~python 232 | from pipython import GCSDevice, GCSError, gcserror 233 | with GCSDevice('C-884') as pidevice: 234 | try: 235 | pidevice.MOV('X', 1.23) 236 | except GCSError as exc: 237 | if exc == gcserror.E_1024_PI_MOTION_ERROR: 238 | print('There was a motion error, please check the mechanics.') 239 | else: 240 | raise 241 | ~~~ 242 | 243 | The exception class `GCSError` will translate the error code into a readable message. 244 | 245 | ~~~python 246 | from pipython import GCSError, gcserror 247 | raise GCSError(gcserror.E_1024_PI_MOTION_ERROR) 248 | >>>GCSError: Motion error: position error too large, servo is switched off automatically (-1024) 249 | ~~~ 250 | 251 | #### GCS 3.0 252 | 253 | - to reset the error state of 1 or more axes 254 | ~~~python 255 | for axis in device.axes: 256 | if axis_has_error(device): 257 | while check_axis_status_bit(device, axis, AXIS_STATUS_FAULT_REACTION_ACTIVE): 258 | pass 259 | print('reset axis error: ', axis) 260 | device.RES(axis) 261 | ~~~ 262 | 263 | 264 | ### Big data 265 | 266 | Commands like `qDRR()` for GCS 2.0 syntax, or `qREC_DAT()` for GCS 3.0 syntax 267 | which read a large amount of GCS data return immediately with 268 | the header dictionary containing information about the data. Then they will start 269 | a background task that carries on reading data from the device into an internal buffer. The 270 | `bufstate` property returns the progress of the reading as floating point number in the range 271 | 0 to 1 and turns to `True` when reading has finished. Hence, when using it in a loop check for 272 | `is not True`. (Remember, this is not the same as `!= True`.) 273 | 274 | #### GCS 2.0 275 | 276 | ~~~python 277 | header = pidevice.qDRR(1, 1, 8192) 278 | while pidevice.bufstate is not True: 279 | print('read data {:.1f}%...'.format(pidevice.bufstate * 100)) 280 | sleep(0.1) 281 | data = pidevice.bufdata 282 | ~~~ 283 | 284 | #### GCS 3.0 285 | 286 | ~~~python 287 | header = pidevice.qREC_DAT('REC_1', 'ASCII', 1, 1, 8192) 288 | while pidevice.bufstate is not True: 289 | print('read data {:.1f}%...'.format(pidevice.bufstate * 100)) 290 | sleep(0.1) 291 | data = pidevice.bufdata 292 | ~~~ 293 | 294 | 295 | ### Textual interface 296 | 297 | Besides the functions implemented in GCSCommands you can send GCS commands as strings to the 298 | controller. Use `read()` for commands returning an answer, `read_gcsdata()` for commands returning 299 | GCS data and `send()` for non-answering commands. 300 | 301 | ~~~python 302 | print(pidevice.read('POS?')) 303 | print(pidevice.read_gcsdata('DRR? 1 100 1')) 304 | pidevice.send('MOV X 1.23') 305 | ~~~ 306 | 307 | They return the raw string or GCS data from the controller. If `errorcheck` is enabled the 308 | error state is queried from the device automatically. We recommend to use the provided 309 | functions instead of sending raw strings. 310 | 311 | In line with the C++ GCS DLL the functions `ReadGCSCommand()` and `GcsCommandset()` are also 312 | available. They will never query an error from the device. 313 | 314 | ~~~python 315 | print(pidevice.ReadGCSCommand('POS?')) 316 | pidevice.GcsCommandset('MOV X 1.23') 317 | ~~~ 318 | -------------------------------------------------------------------------------- /site/assets/javascripts/lunr/min/lunr.fr.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Lunr languages, `French` language 3 | * https://github.com/MihaiValentin/lunr-languages 4 | * 5 | * Copyright 2014, Mihai Valentin 6 | * http://www.mozilla.org/MPL/ 7 | */ 8 | /*! 9 | * based on 10 | * Snowball JavaScript Library v0.3 11 | * http://code.google.com/p/urim/ 12 | * http://snowball.tartarus.org/ 13 | * 14 | * Copyright 2010, Oleg Mazko 15 | * http://www.mozilla.org/MPL/ 16 | */ 17 | 18 | !function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.fr=function(){this.pipeline.reset(),this.pipeline.add(e.fr.trimmer,e.fr.stopWordFilter,e.fr.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.fr.stemmer))},e.fr.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.fr.trimmer=e.trimmerSupport.generateTrimmer(e.fr.wordCharacters),e.Pipeline.registerFunction(e.fr.trimmer,"trimmer-fr"),e.fr.stemmer=function(){var r=e.stemmerSupport.Among,s=e.stemmerSupport.SnowballProgram,i=new function(){function e(e,r,s){return!(!W.eq_s(1,e)||(W.ket=W.cursor,!W.in_grouping(F,97,251)))&&(W.slice_from(r),W.cursor=s,!0)}function i(e,r,s){return!!W.eq_s(1,e)&&(W.ket=W.cursor,W.slice_from(r),W.cursor=s,!0)}function n(){for(var r,s;;){if(r=W.cursor,W.in_grouping(F,97,251)){if(W.bra=W.cursor,s=W.cursor,e("u","U",r))continue;if(W.cursor=s,e("i","I",r))continue;if(W.cursor=s,i("y","Y",r))continue}if(W.cursor=r,W.bra=r,!e("y","Y",r)){if(W.cursor=r,W.eq_s(1,"q")&&(W.bra=W.cursor,i("u","U",r)))continue;if(W.cursor=r,r>=W.limit)return;W.cursor++}}}function t(){for(;!W.in_grouping(F,97,251);){if(W.cursor>=W.limit)return!0;W.cursor++}for(;!W.out_grouping(F,97,251);){if(W.cursor>=W.limit)return!0;W.cursor++}return!1}function u(){var e=W.cursor;if(q=W.limit,g=q,p=q,W.in_grouping(F,97,251)&&W.in_grouping(F,97,251)&&W.cursor=W.limit){W.cursor=q;break}W.cursor++}while(!W.in_grouping(F,97,251))}q=W.cursor,W.cursor=e,t()||(g=W.cursor,t()||(p=W.cursor))}function o(){for(var e,r;;){if(r=W.cursor,W.bra=r,!(e=W.find_among(h,4)))break;switch(W.ket=W.cursor,e){case 1:W.slice_from("i");break;case 2:W.slice_from("u");break;case 3:W.slice_from("y");break;case 4:if(W.cursor>=W.limit)return;W.cursor++}}}function c(){return q<=W.cursor}function a(){return g<=W.cursor}function l(){return p<=W.cursor}function w(){var e,r;if(W.ket=W.cursor,e=W.find_among_b(C,43)){switch(W.bra=W.cursor,e){case 1:if(!l())return!1;W.slice_del();break;case 2:if(!l())return!1;W.slice_del(),W.ket=W.cursor,W.eq_s_b(2,"ic")&&(W.bra=W.cursor,l()?W.slice_del():W.slice_from("iqU"));break;case 3:if(!l())return!1;W.slice_from("log");break;case 4:if(!l())return!1;W.slice_from("u");break;case 5:if(!l())return!1;W.slice_from("ent");break;case 6:if(!c())return!1;if(W.slice_del(),W.ket=W.cursor,e=W.find_among_b(z,6))switch(W.bra=W.cursor,e){case 1:l()&&(W.slice_del(),W.ket=W.cursor,W.eq_s_b(2,"at")&&(W.bra=W.cursor,l()&&W.slice_del()));break;case 2:l()?W.slice_del():a()&&W.slice_from("eux");break;case 3:l()&&W.slice_del();break;case 4:c()&&W.slice_from("i")}break;case 7:if(!l())return!1;if(W.slice_del(),W.ket=W.cursor,e=W.find_among_b(y,3))switch(W.bra=W.cursor,e){case 1:l()?W.slice_del():W.slice_from("abl");break;case 2:l()?W.slice_del():W.slice_from("iqU");break;case 3:l()&&W.slice_del()}break;case 8:if(!l())return!1;if(W.slice_del(),W.ket=W.cursor,W.eq_s_b(2,"at")&&(W.bra=W.cursor,l()&&(W.slice_del(),W.ket=W.cursor,W.eq_s_b(2,"ic")))){W.bra=W.cursor,l()?W.slice_del():W.slice_from("iqU");break}break;case 9:W.slice_from("eau");break;case 10:if(!a())return!1;W.slice_from("al");break;case 11:if(l())W.slice_del();else{if(!a())return!1;W.slice_from("eux")}break;case 12:if(!a()||!W.out_grouping_b(F,97,251))return!1;W.slice_del();break;case 13:return c()&&W.slice_from("ant"),!1;case 14:return c()&&W.slice_from("ent"),!1;case 15:return r=W.limit-W.cursor,W.in_grouping_b(F,97,251)&&c()&&(W.cursor=W.limit-r,W.slice_del()),!1}return!0}return!1}function f(){var e,r;if(W.cursor=q){if(s=W.limit_backward,W.limit_backward=q,W.ket=W.cursor,e=W.find_among_b(P,7))switch(W.bra=W.cursor,e){case 1:if(l()){if(i=W.limit-W.cursor,!W.eq_s_b(1,"s")&&(W.cursor=W.limit-i,!W.eq_s_b(1,"t")))break;W.slice_del()}break;case 2:W.slice_from("i");break;case 3:W.slice_del();break;case 4:W.eq_s_b(2,"gu")&&W.slice_del()}W.limit_backward=s}}function b(){var e=W.limit-W.cursor;W.find_among_b(U,5)&&(W.cursor=W.limit-e,W.ket=W.cursor,W.cursor>W.limit_backward&&(W.cursor--,W.bra=W.cursor,W.slice_del()))}function d(){for(var e,r=1;W.out_grouping_b(F,97,251);)r--;if(r<=0){if(W.ket=W.cursor,e=W.limit-W.cursor,!W.eq_s_b(1,"é")&&(W.cursor=W.limit-e,!W.eq_s_b(1,"è")))return;W.bra=W.cursor,W.slice_from("e")}}function k(){if(!w()&&(W.cursor=W.limit,!f()&&(W.cursor=W.limit,!m())))return W.cursor=W.limit,void _();W.cursor=W.limit,W.ket=W.cursor,W.eq_s_b(1,"Y")?(W.bra=W.cursor,W.slice_from("i")):(W.cursor=W.limit,W.eq_s_b(1,"ç")&&(W.bra=W.cursor,W.slice_from("c")))}var p,g,q,v=[new r("col",-1,-1),new r("par",-1,-1),new r("tap",-1,-1)],h=[new r("",-1,4),new r("I",0,1),new r("U",0,2),new r("Y",0,3)],z=[new r("iqU",-1,3),new r("abl",-1,3),new r("Ièr",-1,4),new r("ièr",-1,4),new r("eus",-1,2),new r("iv",-1,1)],y=[new r("ic",-1,2),new r("abil",-1,1),new r("iv",-1,3)],C=[new r("iqUe",-1,1),new r("atrice",-1,2),new r("ance",-1,1),new r("ence",-1,5),new r("logie",-1,3),new r("able",-1,1),new r("isme",-1,1),new r("euse",-1,11),new r("iste",-1,1),new r("ive",-1,8),new r("if",-1,8),new r("usion",-1,4),new r("ation",-1,2),new r("ution",-1,4),new r("ateur",-1,2),new r("iqUes",-1,1),new r("atrices",-1,2),new r("ances",-1,1),new r("ences",-1,5),new r("logies",-1,3),new r("ables",-1,1),new r("ismes",-1,1),new r("euses",-1,11),new r("istes",-1,1),new r("ives",-1,8),new r("ifs",-1,8),new r("usions",-1,4),new r("ations",-1,2),new r("utions",-1,4),new r("ateurs",-1,2),new r("ments",-1,15),new r("ements",30,6),new r("issements",31,12),new r("ités",-1,7),new r("ment",-1,15),new r("ement",34,6),new r("issement",35,12),new r("amment",34,13),new r("emment",34,14),new r("aux",-1,10),new r("eaux",39,9),new r("eux",-1,1),new r("ité",-1,7)],x=[new r("ira",-1,1),new r("ie",-1,1),new r("isse",-1,1),new r("issante",-1,1),new r("i",-1,1),new r("irai",4,1),new r("ir",-1,1),new r("iras",-1,1),new r("ies",-1,1),new r("îmes",-1,1),new r("isses",-1,1),new r("issantes",-1,1),new r("îtes",-1,1),new r("is",-1,1),new r("irais",13,1),new r("issais",13,1),new r("irions",-1,1),new r("issions",-1,1),new r("irons",-1,1),new r("issons",-1,1),new r("issants",-1,1),new r("it",-1,1),new r("irait",21,1),new r("issait",21,1),new r("issant",-1,1),new r("iraIent",-1,1),new r("issaIent",-1,1),new r("irent",-1,1),new r("issent",-1,1),new r("iront",-1,1),new r("ît",-1,1),new r("iriez",-1,1),new r("issiez",-1,1),new r("irez",-1,1),new r("issez",-1,1)],I=[new r("a",-1,3),new r("era",0,2),new r("asse",-1,3),new r("ante",-1,3),new r("ée",-1,2),new r("ai",-1,3),new r("erai",5,2),new r("er",-1,2),new r("as",-1,3),new r("eras",8,2),new r("âmes",-1,3),new r("asses",-1,3),new r("antes",-1,3),new r("âtes",-1,3),new r("ées",-1,2),new r("ais",-1,3),new r("erais",15,2),new r("ions",-1,1),new r("erions",17,2),new r("assions",17,3),new r("erons",-1,2),new r("ants",-1,3),new r("és",-1,2),new r("ait",-1,3),new r("erait",23,2),new r("ant",-1,3),new r("aIent",-1,3),new r("eraIent",26,2),new r("èrent",-1,2),new r("assent",-1,3),new r("eront",-1,2),new r("ât",-1,3),new r("ez",-1,2),new r("iez",32,2),new r("eriez",33,2),new r("assiez",33,3),new r("erez",32,2),new r("é",-1,2)],P=[new r("e",-1,3),new r("Ière",0,2),new r("ière",0,2),new r("ion",-1,1),new r("Ier",-1,2),new r("ier",-1,2),new r("ë",-1,4)],U=[new r("ell",-1,-1),new r("eill",-1,-1),new r("enn",-1,-1),new r("onn",-1,-1),new r("ett",-1,-1)],F=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,128,130,103,8,5],S=[1,65,20,0,0,0,0,0,0,0,0,0,0,0,0,0,128],W=new s;this.setCurrent=function(e){W.setCurrent(e)},this.getCurrent=function(){return W.getCurrent()},this.stem=function(){var e=W.cursor;return n(),W.cursor=e,u(),W.limit_backward=e,W.cursor=W.limit,k(),W.cursor=W.limit,b(),W.cursor=W.limit,d(),W.cursor=W.limit_backward,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.fr.stemmer,"stemmer-fr"),e.fr.stopWordFilter=e.generateStopWordFilter("ai aie aient aies ait as au aura aurai auraient aurais aurait auras aurez auriez aurions aurons auront aux avaient avais avait avec avez aviez avions avons ayant ayez ayons c ce ceci celà ces cet cette d dans de des du elle en es est et eu eue eues eurent eus eusse eussent eusses eussiez eussions eut eux eûmes eût eûtes furent fus fusse fussent fusses fussiez fussions fut fûmes fût fûtes ici il ils j je l la le les leur leurs lui m ma mais me mes moi mon même n ne nos notre nous on ont ou par pas pour qu que quel quelle quelles quels qui s sa sans se sera serai seraient serais serait seras serez seriez serions serons seront ses soi soient sois soit sommes son sont soyez soyons suis sur t ta te tes toi ton tu un une vos votre vous y à étaient étais était étant étiez étions été étée étées étés êtes".split(" ")),e.Pipeline.registerFunction(e.fr.stopWordFilter,"stopWordFilter-fr")}}); -------------------------------------------------------------------------------- /site/assets/javascripts/lunr/min/lunr.ro.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Lunr languages, `Romanian` language 3 | * https://github.com/MihaiValentin/lunr-languages 4 | * 5 | * Copyright 2014, Mihai Valentin 6 | * http://www.mozilla.org/MPL/ 7 | */ 8 | /*! 9 | * based on 10 | * Snowball JavaScript Library v0.3 11 | * http://code.google.com/p/urim/ 12 | * http://snowball.tartarus.org/ 13 | * 14 | * Copyright 2010, Oleg Mazko 15 | * http://www.mozilla.org/MPL/ 16 | */ 17 | 18 | !function(e,i){"function"==typeof define&&define.amd?define(i):"object"==typeof exports?module.exports=i():i()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.ro=function(){this.pipeline.reset(),this.pipeline.add(e.ro.trimmer,e.ro.stopWordFilter,e.ro.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.ro.stemmer))},e.ro.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.ro.trimmer=e.trimmerSupport.generateTrimmer(e.ro.wordCharacters),e.Pipeline.registerFunction(e.ro.trimmer,"trimmer-ro"),e.ro.stemmer=function(){var i=e.stemmerSupport.Among,r=e.stemmerSupport.SnowballProgram,n=new function(){function e(e,i){L.eq_s(1,e)&&(L.ket=L.cursor,L.in_grouping(W,97,259)&&L.slice_from(i))}function n(){for(var i,r;;){if(i=L.cursor,L.in_grouping(W,97,259)&&(r=L.cursor,L.bra=r,e("u","U"),L.cursor=r,e("i","I")),L.cursor=i,L.cursor>=L.limit)break;L.cursor++}}function t(){if(L.out_grouping(W,97,259)){for(;!L.in_grouping(W,97,259);){if(L.cursor>=L.limit)return!0;L.cursor++}return!1}return!0}function a(){if(L.in_grouping(W,97,259))for(;!L.out_grouping(W,97,259);){if(L.cursor>=L.limit)return!0;L.cursor++}return!1}function o(){var e,i,r=L.cursor;if(L.in_grouping(W,97,259)){if(e=L.cursor,!t())return void(h=L.cursor);if(L.cursor=e,!a())return void(h=L.cursor)}L.cursor=r,L.out_grouping(W,97,259)&&(i=L.cursor,t()&&(L.cursor=i,L.in_grouping(W,97,259)&&L.cursor=L.limit)return!1;L.cursor++}for(;!L.out_grouping(W,97,259);){if(L.cursor>=L.limit)return!1;L.cursor++}return!0}function c(){var e=L.cursor;h=L.limit,k=h,g=h,o(),L.cursor=e,u()&&(k=L.cursor,u()&&(g=L.cursor))}function s(){for(var e;;){if(L.bra=L.cursor,e=L.find_among(z,3))switch(L.ket=L.cursor,e){case 1:L.slice_from("i");continue;case 2:L.slice_from("u");continue;case 3:if(L.cursor>=L.limit)break;L.cursor++;continue}break}}function w(){return h<=L.cursor}function m(){return k<=L.cursor}function l(){return g<=L.cursor}function f(){var e,i;if(L.ket=L.cursor,(e=L.find_among_b(C,16))&&(L.bra=L.cursor,m()))switch(e){case 1:L.slice_del();break;case 2:L.slice_from("a");break;case 3:L.slice_from("e");break;case 4:L.slice_from("i");break;case 5:i=L.limit-L.cursor,L.eq_s_b(2,"ab")||(L.cursor=L.limit-i,L.slice_from("i"));break;case 6:L.slice_from("at");break;case 7:L.slice_from("aţi")}}function p(){var e,i=L.limit-L.cursor;if(L.ket=L.cursor,(e=L.find_among_b(P,46))&&(L.bra=L.cursor,m())){switch(e){case 1:L.slice_from("abil");break;case 2:L.slice_from("ibil");break;case 3:L.slice_from("iv");break;case 4:L.slice_from("ic");break;case 5:L.slice_from("at");break;case 6:L.slice_from("it")}return _=!0,L.cursor=L.limit-i,!0}return!1}function d(){var e,i;for(_=!1;;)if(i=L.limit-L.cursor,!p()){L.cursor=L.limit-i;break}if(L.ket=L.cursor,(e=L.find_among_b(F,62))&&(L.bra=L.cursor,l())){switch(e){case 1:L.slice_del();break;case 2:L.eq_s_b(1,"ţ")&&(L.bra=L.cursor,L.slice_from("t"));break;case 3:L.slice_from("ist")}_=!0}}function b(){var e,i,r;if(L.cursor>=h){if(i=L.limit_backward,L.limit_backward=h,L.ket=L.cursor,e=L.find_among_b(q,94))switch(L.bra=L.cursor,e){case 1:if(r=L.limit-L.cursor,!L.out_grouping_b(W,97,259)&&(L.cursor=L.limit-r,!L.eq_s_b(1,"u")))break;case 2:L.slice_del()}L.limit_backward=i}}function v(){var e;L.ket=L.cursor,(e=L.find_among_b(S,5))&&(L.bra=L.cursor,w()&&1==e&&L.slice_del())}var _,g,k,h,z=[new i("",-1,3),new i("I",0,1),new i("U",0,2)],C=[new i("ea",-1,3),new i("aţia",-1,7),new i("aua",-1,2),new i("iua",-1,4),new i("aţie",-1,7),new i("ele",-1,3),new i("ile",-1,5),new i("iile",6,4),new i("iei",-1,4),new i("atei",-1,6),new i("ii",-1,4),new i("ului",-1,1),new i("ul",-1,1),new i("elor",-1,3),new i("ilor",-1,4),new i("iilor",14,4)],P=[new i("icala",-1,4),new i("iciva",-1,4),new i("ativa",-1,5),new i("itiva",-1,6),new i("icale",-1,4),new i("aţiune",-1,5),new i("iţiune",-1,6),new i("atoare",-1,5),new i("itoare",-1,6),new i("ătoare",-1,5),new i("icitate",-1,4),new i("abilitate",-1,1),new i("ibilitate",-1,2),new i("ivitate",-1,3),new i("icive",-1,4),new i("ative",-1,5),new i("itive",-1,6),new i("icali",-1,4),new i("atori",-1,5),new i("icatori",18,4),new i("itori",-1,6),new i("ători",-1,5),new i("icitati",-1,4),new i("abilitati",-1,1),new i("ivitati",-1,3),new i("icivi",-1,4),new i("ativi",-1,5),new i("itivi",-1,6),new i("icităi",-1,4),new i("abilităi",-1,1),new i("ivităi",-1,3),new i("icităţi",-1,4),new i("abilităţi",-1,1),new i("ivităţi",-1,3),new i("ical",-1,4),new i("ator",-1,5),new i("icator",35,4),new i("itor",-1,6),new i("ător",-1,5),new i("iciv",-1,4),new i("ativ",-1,5),new i("itiv",-1,6),new i("icală",-1,4),new i("icivă",-1,4),new i("ativă",-1,5),new i("itivă",-1,6)],F=[new i("ica",-1,1),new i("abila",-1,1),new i("ibila",-1,1),new i("oasa",-1,1),new i("ata",-1,1),new i("ita",-1,1),new i("anta",-1,1),new i("ista",-1,3),new i("uta",-1,1),new i("iva",-1,1),new i("ic",-1,1),new i("ice",-1,1),new i("abile",-1,1),new i("ibile",-1,1),new i("isme",-1,3),new i("iune",-1,2),new i("oase",-1,1),new i("ate",-1,1),new i("itate",17,1),new i("ite",-1,1),new i("ante",-1,1),new i("iste",-1,3),new i("ute",-1,1),new i("ive",-1,1),new i("ici",-1,1),new i("abili",-1,1),new i("ibili",-1,1),new i("iuni",-1,2),new i("atori",-1,1),new i("osi",-1,1),new i("ati",-1,1),new i("itati",30,1),new i("iti",-1,1),new i("anti",-1,1),new i("isti",-1,3),new i("uti",-1,1),new i("işti",-1,3),new i("ivi",-1,1),new i("ităi",-1,1),new i("oşi",-1,1),new i("ităţi",-1,1),new i("abil",-1,1),new i("ibil",-1,1),new i("ism",-1,3),new i("ator",-1,1),new i("os",-1,1),new i("at",-1,1),new i("it",-1,1),new i("ant",-1,1),new i("ist",-1,3),new i("ut",-1,1),new i("iv",-1,1),new i("ică",-1,1),new i("abilă",-1,1),new i("ibilă",-1,1),new i("oasă",-1,1),new i("ată",-1,1),new i("ită",-1,1),new i("antă",-1,1),new i("istă",-1,3),new i("ută",-1,1),new i("ivă",-1,1)],q=[new i("ea",-1,1),new i("ia",-1,1),new i("esc",-1,1),new i("ăsc",-1,1),new i("ind",-1,1),new i("ând",-1,1),new i("are",-1,1),new i("ere",-1,1),new i("ire",-1,1),new i("âre",-1,1),new i("se",-1,2),new i("ase",10,1),new i("sese",10,2),new i("ise",10,1),new i("use",10,1),new i("âse",10,1),new i("eşte",-1,1),new i("ăşte",-1,1),new i("eze",-1,1),new i("ai",-1,1),new i("eai",19,1),new i("iai",19,1),new i("sei",-1,2),new i("eşti",-1,1),new i("ăşti",-1,1),new i("ui",-1,1),new i("ezi",-1,1),new i("âi",-1,1),new i("aşi",-1,1),new i("seşi",-1,2),new i("aseşi",29,1),new i("seseşi",29,2),new i("iseşi",29,1),new i("useşi",29,1),new i("âseşi",29,1),new i("işi",-1,1),new i("uşi",-1,1),new i("âşi",-1,1),new i("aţi",-1,2),new i("eaţi",38,1),new i("iaţi",38,1),new i("eţi",-1,2),new i("iţi",-1,2),new i("âţi",-1,2),new i("arăţi",-1,1),new i("serăţi",-1,2),new i("aserăţi",45,1),new i("seserăţi",45,2),new i("iserăţi",45,1),new i("userăţi",45,1),new i("âserăţi",45,1),new i("irăţi",-1,1),new i("urăţi",-1,1),new i("ârăţi",-1,1),new i("am",-1,1),new i("eam",54,1),new i("iam",54,1),new i("em",-1,2),new i("asem",57,1),new i("sesem",57,2),new i("isem",57,1),new i("usem",57,1),new i("âsem",57,1),new i("im",-1,2),new i("âm",-1,2),new i("ăm",-1,2),new i("arăm",65,1),new i("serăm",65,2),new i("aserăm",67,1),new i("seserăm",67,2),new i("iserăm",67,1),new i("userăm",67,1),new i("âserăm",67,1),new i("irăm",65,1),new i("urăm",65,1),new i("ârăm",65,1),new i("au",-1,1),new i("eau",76,1),new i("iau",76,1),new i("indu",-1,1),new i("ându",-1,1),new i("ez",-1,1),new i("ească",-1,1),new i("ară",-1,1),new i("seră",-1,2),new i("aseră",84,1),new i("seseră",84,2),new i("iseră",84,1),new i("useră",84,1),new i("âseră",84,1),new i("iră",-1,1),new i("ură",-1,1),new i("âră",-1,1),new i("ează",-1,1)],S=[new i("a",-1,1),new i("e",-1,1),new i("ie",1,1),new i("i",-1,1),new i("ă",-1,1)],W=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,2,32,0,0,4],L=new r;this.setCurrent=function(e){L.setCurrent(e)},this.getCurrent=function(){return L.getCurrent()},this.stem=function(){var e=L.cursor;return n(),L.cursor=e,c(),L.limit_backward=e,L.cursor=L.limit,f(),L.cursor=L.limit,d(),L.cursor=L.limit,_||(L.cursor=L.limit,b(),L.cursor=L.limit),v(),L.cursor=L.limit_backward,s(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.ro.stemmer,"stemmer-ro"),e.ro.stopWordFilter=e.generateStopWordFilter("acea aceasta această aceea acei aceia acel acela acele acelea acest acesta aceste acestea aceşti aceştia acolo acord acum ai aia aibă aici al ale alea altceva altcineva am ar are asemenea asta astea astăzi asupra au avea avem aveţi azi aş aşadar aţi bine bucur bună ca care caut ce cel ceva chiar cinci cine cineva contra cu cum cumva curând curînd când cât câte câtva câţi cînd cît cîte cîtva cîţi că căci cărei căror cărui către da dacă dar datorită dată dau de deci deja deoarece departe deşi din dinaintea dintr- dintre doi doilea două drept după dă ea ei el ele eram este eu eşti face fata fi fie fiecare fii fim fiu fiţi frumos fără graţie halbă iar ieri la le li lor lui lângă lîngă mai mea mei mele mereu meu mi mie mine mult multă mulţi mulţumesc mâine mîine mă ne nevoie nici nicăieri nimeni nimeri nimic nişte noastre noastră noi noroc nostru nouă noştri nu opt ori oricare orice oricine oricum oricând oricât oricînd oricît oriunde patra patru patrulea pe pentru peste pic poate pot prea prima primul prin puţin puţina puţină până pînă rog sa sale sau se spate spre sub sunt suntem sunteţi sută sînt sîntem sînteţi să săi său ta tale te timp tine toate toată tot totuşi toţi trei treia treilea tu tăi tău un una unde undeva unei uneia unele uneori unii unor unora unu unui unuia unul vi voastre voastră voi vostru vouă voştri vreme vreo vreun vă zece zero zi zice îi îl îmi împotriva în înainte înaintea încotro încât încît între întrucât întrucît îţi ăla ălea ăsta ăstea ăştia şapte şase şi ştiu ţi ţie".split(" ")),e.Pipeline.registerFunction(e.ro.stopWordFilter,"stopWordFilter-ro")}}); -------------------------------------------------------------------------------- /site/assets/stylesheets/palette.cc9b2e1e.min.css: -------------------------------------------------------------------------------- 1 | [data-md-color-accent=red]{--md-accent-fg-color:#ff1947;--md-accent-fg-color--transparent:rgba(255,25,71,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-accent=pink]{--md-accent-fg-color:#f50056;--md-accent-fg-color--transparent:rgba(245,0,86,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-accent=purple]{--md-accent-fg-color:#df41fb;--md-accent-fg-color--transparent:rgba(223,65,251,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-accent=deep-purple]{--md-accent-fg-color:#7c4dff;--md-accent-fg-color--transparent:rgba(124,77,255,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-accent=indigo]{--md-accent-fg-color:#526cfe;--md-accent-fg-color--transparent:rgba(82,108,254,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-accent=blue]{--md-accent-fg-color:#4287ff;--md-accent-fg-color--transparent:rgba(66,135,255,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-accent=light-blue]{--md-accent-fg-color:#0091eb;--md-accent-fg-color--transparent:rgba(0,145,235,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-accent=cyan]{--md-accent-fg-color:#00bad6;--md-accent-fg-color--transparent:rgba(0,186,214,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-accent=teal]{--md-accent-fg-color:#00bda4;--md-accent-fg-color--transparent:rgba(0,189,164,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-accent=green]{--md-accent-fg-color:#00c753;--md-accent-fg-color--transparent:rgba(0,199,83,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-accent=light-green]{--md-accent-fg-color:#63de17;--md-accent-fg-color--transparent:rgba(99,222,23,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-accent=lime]{--md-accent-fg-color:#b0eb00;--md-accent-fg-color--transparent:rgba(176,235,0,.1);--md-accent-bg-color:rgba(0,0,0,.87);--md-accent-bg-color--light:rgba(0,0,0,.54)}[data-md-color-accent=yellow]{--md-accent-fg-color:#ffd500;--md-accent-fg-color--transparent:rgba(255,213,0,.1);--md-accent-bg-color:rgba(0,0,0,.87);--md-accent-bg-color--light:rgba(0,0,0,.54)}[data-md-color-accent=amber]{--md-accent-fg-color:#fa0;--md-accent-fg-color--transparent:rgba(255,170,0,.1);--md-accent-bg-color:rgba(0,0,0,.87);--md-accent-bg-color--light:rgba(0,0,0,.54)}[data-md-color-accent=orange]{--md-accent-fg-color:#ff9100;--md-accent-fg-color--transparent:rgba(255,145,0,.1);--md-accent-bg-color:rgba(0,0,0,.87);--md-accent-bg-color--light:rgba(0,0,0,.54)}[data-md-color-accent=deep-orange]{--md-accent-fg-color:#ff6e42;--md-accent-fg-color--transparent:rgba(255,110,66,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=red]{--md-primary-fg-color:#ef5552;--md-primary-fg-color--light:#e57171;--md-primary-fg-color--dark:#e53734;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=pink]{--md-primary-fg-color:#e92063;--md-primary-fg-color--light:#ec417a;--md-primary-fg-color--dark:#c3185d;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=purple]{--md-primary-fg-color:#ab47bd;--md-primary-fg-color--light:#bb69c9;--md-primary-fg-color--dark:#8c24a8;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=deep-purple]{--md-primary-fg-color:#7e56c2;--md-primary-fg-color--light:#9574cd;--md-primary-fg-color--dark:#673ab6;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=indigo]{--md-primary-fg-color:#4051b5;--md-primary-fg-color--light:#5d6cc0;--md-primary-fg-color--dark:#303fa1;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=blue]{--md-primary-fg-color:#2094f3;--md-primary-fg-color--light:#42a5f5;--md-primary-fg-color--dark:#1975d2;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=light-blue]{--md-primary-fg-color:#02a6f2;--md-primary-fg-color--light:#28b5f6;--md-primary-fg-color--dark:#0287cf;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=cyan]{--md-primary-fg-color:#00bdd6;--md-primary-fg-color--light:#25c5da;--md-primary-fg-color--dark:#0097a8;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=teal]{--md-primary-fg-color:#009485;--md-primary-fg-color--light:#26a699;--md-primary-fg-color--dark:#007a6c;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=green]{--md-primary-fg-color:#4cae4f;--md-primary-fg-color--light:#68bb6c;--md-primary-fg-color--dark:#398e3d;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=light-green]{--md-primary-fg-color:#8bc34b;--md-primary-fg-color--light:#9ccc66;--md-primary-fg-color--dark:#689f38;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=lime]{--md-primary-fg-color:#cbdc38;--md-primary-fg-color--light:#d3e156;--md-primary-fg-color--dark:#b0b52c;--md-primary-bg-color:rgba(0,0,0,.87);--md-primary-bg-color--light:rgba(0,0,0,.54)}[data-md-color-primary=yellow]{--md-primary-fg-color:#ffec3d;--md-primary-fg-color--light:#ffee57;--md-primary-fg-color--dark:#fbc02d;--md-primary-bg-color:rgba(0,0,0,.87);--md-primary-bg-color--light:rgba(0,0,0,.54)}[data-md-color-primary=amber]{--md-primary-fg-color:#ffc105;--md-primary-fg-color--light:#ffc929;--md-primary-fg-color--dark:#ffa200;--md-primary-bg-color:rgba(0,0,0,.87);--md-primary-bg-color--light:rgba(0,0,0,.54)}[data-md-color-primary=orange]{--md-primary-fg-color:#ffa724;--md-primary-fg-color--light:#ffa724;--md-primary-fg-color--dark:#fa8900;--md-primary-bg-color:rgba(0,0,0,.87);--md-primary-bg-color--light:rgba(0,0,0,.54)}[data-md-color-primary=deep-orange]{--md-primary-fg-color:#ff6e42;--md-primary-fg-color--light:#ff8a66;--md-primary-fg-color--dark:#f4511f;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=brown]{--md-primary-fg-color:#795649;--md-primary-fg-color--light:#8d6e62;--md-primary-fg-color--dark:#5d4037;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=grey]{--md-primary-fg-color:#757575;--md-primary-fg-color--light:#9e9e9e;--md-primary-fg-color--dark:#616161;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=blue-grey]{--md-primary-fg-color:#546d78;--md-primary-fg-color--light:#607c8a;--md-primary-fg-color--dark:#455a63;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=white]{--md-primary-fg-color:#fff;--md-primary-fg-color--light:hsla(0,0%,100%,.7);--md-primary-fg-color--dark:rgba(0,0,0,.07);--md-primary-bg-color:rgba(0,0,0,.87);--md-primary-bg-color--light:rgba(0,0,0,.54);--md-typeset-a-color:#4051b5}@media screen and (min-width:60em){[data-md-color-primary=white] .md-search__form{background-color:rgba(0,0,0,.07)}[data-md-color-primary=white] .md-search__form:hover{background-color:rgba(0,0,0,.32)}[data-md-color-primary=white] .md-search__input+.md-search__icon{color:rgba(0,0,0,.87)}}@media screen and (min-width:76.25em){[data-md-color-primary=white] .md-tabs{border-bottom:.05rem solid rgba(0,0,0,.07)}}[data-md-color-primary=black]{--md-primary-fg-color:#000;--md-primary-fg-color--light:rgba(0,0,0,.54);--md-primary-fg-color--dark:#000;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7);--md-typeset-a-color:#4051b5}[data-md-color-primary=black] .md-header{background-color:#000}@media screen and (max-width:59.9375em){[data-md-color-primary=black] .md-nav__source{background-color:rgba(0,0,0,.87)}}@media screen and (min-width:60em){[data-md-color-primary=black] .md-search__form{background-color:hsla(0,0%,100%,.12)}[data-md-color-primary=black] .md-search__form:hover{background-color:hsla(0,0%,100%,.3)}}@media screen and (max-width:76.1875em){html [data-md-color-primary=black] .md-nav--primary .md-nav__title[for=__drawer]{background-color:#000}}@media screen and (min-width:76.25em){[data-md-color-primary=black] .md-tabs{background-color:#000}}@media screen{[data-md-color-scheme=slate]{--md-hue:232;--md-default-fg-color:hsla(var(--md-hue),75%,95%,1);--md-default-fg-color--light:hsla(var(--md-hue),75%,90%,0.62);--md-default-fg-color--lighter:hsla(var(--md-hue),75%,90%,0.32);--md-default-fg-color--lightest:hsla(var(--md-hue),75%,90%,0.12);--md-default-bg-color:hsla(var(--md-hue),15%,21%,1);--md-default-bg-color--light:hsla(var(--md-hue),15%,21%,0.54);--md-default-bg-color--lighter:hsla(var(--md-hue),15%,21%,0.26);--md-default-bg-color--lightest:hsla(var(--md-hue),15%,21%,0.07);--md-code-fg-color:hsla(var(--md-hue),18%,86%,1);--md-code-bg-color:hsla(var(--md-hue),15%,15%,1);--md-code-hl-color:rgba(66,135,255,.15);--md-code-hl-number-color:#e6695b;--md-code-hl-special-color:#f06090;--md-code-hl-function-color:#c973d9;--md-code-hl-constant-color:#9383e2;--md-code-hl-keyword-color:#6791e0;--md-code-hl-string-color:#2fb170;--md-code-hl-name-color:var(--md-code-fg-color);--md-code-hl-operator-color:var(--md-default-fg-color--light);--md-code-hl-punctuation-color:var(--md-default-fg-color--light);--md-code-hl-comment-color:var(--md-default-fg-color--light);--md-code-hl-generic-color:var(--md-default-fg-color--light);--md-code-hl-variable-color:var(--md-default-fg-color--light);--md-typeset-color:var(--md-default-fg-color);--md-typeset-a-color:var(--md-primary-fg-color);--md-typeset-mark-color:rgba(66,135,255,.3);--md-typeset-kbd-color:hsla(var(--md-hue),15%,94%,0.12);--md-typeset-kbd-accent-color:hsla(var(--md-hue),15%,94%,0.2);--md-typeset-kbd-border-color:hsla(var(--md-hue),15%,14%,1);--md-typeset-table-color:hsla(var(--md-hue),75%,95%,0.12);--md-admonition-bg-color:hsla(var(--md-hue),0%,100%,0.025);--md-footer-bg-color:hsla(var(--md-hue),15%,12%,0.87);--md-footer-bg-color--dark:hsla(var(--md-hue),15%,10%,1)}[data-md-color-scheme=slate][data-md-color-primary=black],[data-md-color-scheme=slate][data-md-color-primary=white]{--md-typeset-a-color:#5d6cc0}[data-md-color-scheme=slate] img[src$="#gh-light-mode-only"],[data-md-color-scheme=slate] img[src$="#only-light"]{display:none}[data-md-color-scheme=slate] img[src$="#gh-dark-mode-only"],[data-md-color-scheme=slate] img[src$="#only-dark"]{display:initial}[data-md-color-switching] *,[data-md-color-switching] :after,[data-md-color-switching] :before{transition-duration:0ms!important}} -------------------------------------------------------------------------------- /site/assets/javascripts/lunr/min/lunr.it.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Lunr languages, `Italian` language 3 | * https://github.com/MihaiValentin/lunr-languages 4 | * 5 | * Copyright 2014, Mihai Valentin 6 | * http://www.mozilla.org/MPL/ 7 | */ 8 | /*! 9 | * based on 10 | * Snowball JavaScript Library v0.3 11 | * http://code.google.com/p/urim/ 12 | * http://snowball.tartarus.org/ 13 | * 14 | * Copyright 2010, Oleg Mazko 15 | * http://www.mozilla.org/MPL/ 16 | */ 17 | 18 | !function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.it=function(){this.pipeline.reset(),this.pipeline.add(e.it.trimmer,e.it.stopWordFilter,e.it.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.it.stemmer))},e.it.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.it.trimmer=e.trimmerSupport.generateTrimmer(e.it.wordCharacters),e.Pipeline.registerFunction(e.it.trimmer,"trimmer-it"),e.it.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,i=new function(){function e(e,r,n){return!(!x.eq_s(1,e)||(x.ket=x.cursor,!x.in_grouping(L,97,249)))&&(x.slice_from(r),x.cursor=n,!0)}function i(){for(var r,n,i,o,t=x.cursor;;){if(x.bra=x.cursor,r=x.find_among(h,7))switch(x.ket=x.cursor,r){case 1:x.slice_from("à");continue;case 2:x.slice_from("è");continue;case 3:x.slice_from("ì");continue;case 4:x.slice_from("ò");continue;case 5:x.slice_from("ù");continue;case 6:x.slice_from("qU");continue;case 7:if(x.cursor>=x.limit)break;x.cursor++;continue}break}for(x.cursor=t;;)for(n=x.cursor;;){if(i=x.cursor,x.in_grouping(L,97,249)){if(x.bra=x.cursor,o=x.cursor,e("u","U",i))break;if(x.cursor=o,e("i","I",i))break}if(x.cursor=i,x.cursor>=x.limit)return void(x.cursor=n);x.cursor++}}function o(e){if(x.cursor=e,!x.in_grouping(L,97,249))return!1;for(;!x.out_grouping(L,97,249);){if(x.cursor>=x.limit)return!1;x.cursor++}return!0}function t(){if(x.in_grouping(L,97,249)){var e=x.cursor;if(x.out_grouping(L,97,249)){for(;!x.in_grouping(L,97,249);){if(x.cursor>=x.limit)return o(e);x.cursor++}return!0}return o(e)}return!1}function s(){var e,r=x.cursor;if(!t()){if(x.cursor=r,!x.out_grouping(L,97,249))return;if(e=x.cursor,x.out_grouping(L,97,249)){for(;!x.in_grouping(L,97,249);){if(x.cursor>=x.limit)return x.cursor=e,void(x.in_grouping(L,97,249)&&x.cursor=x.limit)return;x.cursor++}k=x.cursor}function a(){for(;!x.in_grouping(L,97,249);){if(x.cursor>=x.limit)return!1;x.cursor++}for(;!x.out_grouping(L,97,249);){if(x.cursor>=x.limit)return!1;x.cursor++}return!0}function u(){var e=x.cursor;k=x.limit,p=k,g=k,s(),x.cursor=e,a()&&(p=x.cursor,a()&&(g=x.cursor))}function c(){for(var e;;){if(x.bra=x.cursor,!(e=x.find_among(q,3)))break;switch(x.ket=x.cursor,e){case 1:x.slice_from("i");break;case 2:x.slice_from("u");break;case 3:if(x.cursor>=x.limit)return;x.cursor++}}}function w(){return k<=x.cursor}function l(){return p<=x.cursor}function m(){return g<=x.cursor}function f(){var e;if(x.ket=x.cursor,x.find_among_b(C,37)&&(x.bra=x.cursor,(e=x.find_among_b(z,5))&&w()))switch(e){case 1:x.slice_del();break;case 2:x.slice_from("e")}}function v(){var e;if(x.ket=x.cursor,!(e=x.find_among_b(S,51)))return!1;switch(x.bra=x.cursor,e){case 1:if(!m())return!1;x.slice_del();break;case 2:if(!m())return!1;x.slice_del(),x.ket=x.cursor,x.eq_s_b(2,"ic")&&(x.bra=x.cursor,m()&&x.slice_del());break;case 3:if(!m())return!1;x.slice_from("log");break;case 4:if(!m())return!1;x.slice_from("u");break;case 5:if(!m())return!1;x.slice_from("ente");break;case 6:if(!w())return!1;x.slice_del();break;case 7:if(!l())return!1;x.slice_del(),x.ket=x.cursor,e=x.find_among_b(P,4),e&&(x.bra=x.cursor,m()&&(x.slice_del(),1==e&&(x.ket=x.cursor,x.eq_s_b(2,"at")&&(x.bra=x.cursor,m()&&x.slice_del()))));break;case 8:if(!m())return!1;x.slice_del(),x.ket=x.cursor,e=x.find_among_b(F,3),e&&(x.bra=x.cursor,1==e&&m()&&x.slice_del());break;case 9:if(!m())return!1;x.slice_del(),x.ket=x.cursor,x.eq_s_b(2,"at")&&(x.bra=x.cursor,m()&&(x.slice_del(),x.ket=x.cursor,x.eq_s_b(2,"ic")&&(x.bra=x.cursor,m()&&x.slice_del())))}return!0}function b(){var e,r;x.cursor>=k&&(r=x.limit_backward,x.limit_backward=k,x.ket=x.cursor,e=x.find_among_b(W,87),e&&(x.bra=x.cursor,1==e&&x.slice_del()),x.limit_backward=r)}function d(){var e=x.limit-x.cursor;if(x.ket=x.cursor,x.in_grouping_b(y,97,242)&&(x.bra=x.cursor,w()&&(x.slice_del(),x.ket=x.cursor,x.eq_s_b(1,"i")&&(x.bra=x.cursor,w()))))return void x.slice_del();x.cursor=x.limit-e}function _(){d(),x.ket=x.cursor,x.eq_s_b(1,"h")&&(x.bra=x.cursor,x.in_grouping_b(U,99,103)&&w()&&x.slice_del())}var g,p,k,h=[new r("",-1,7),new r("qu",0,6),new r("á",0,1),new r("é",0,2),new r("í",0,3),new r("ó",0,4),new r("ú",0,5)],q=[new r("",-1,3),new r("I",0,1),new r("U",0,2)],C=[new r("la",-1,-1),new r("cela",0,-1),new r("gliela",0,-1),new r("mela",0,-1),new r("tela",0,-1),new r("vela",0,-1),new r("le",-1,-1),new r("cele",6,-1),new r("gliele",6,-1),new r("mele",6,-1),new r("tele",6,-1),new r("vele",6,-1),new r("ne",-1,-1),new r("cene",12,-1),new r("gliene",12,-1),new r("mene",12,-1),new r("sene",12,-1),new r("tene",12,-1),new r("vene",12,-1),new r("ci",-1,-1),new r("li",-1,-1),new r("celi",20,-1),new r("glieli",20,-1),new r("meli",20,-1),new r("teli",20,-1),new r("veli",20,-1),new r("gli",20,-1),new r("mi",-1,-1),new r("si",-1,-1),new r("ti",-1,-1),new r("vi",-1,-1),new r("lo",-1,-1),new r("celo",31,-1),new r("glielo",31,-1),new r("melo",31,-1),new r("telo",31,-1),new r("velo",31,-1)],z=[new r("ando",-1,1),new r("endo",-1,1),new r("ar",-1,2),new r("er",-1,2),new r("ir",-1,2)],P=[new r("ic",-1,-1),new r("abil",-1,-1),new r("os",-1,-1),new r("iv",-1,1)],F=[new r("ic",-1,1),new r("abil",-1,1),new r("iv",-1,1)],S=[new r("ica",-1,1),new r("logia",-1,3),new r("osa",-1,1),new r("ista",-1,1),new r("iva",-1,9),new r("anza",-1,1),new r("enza",-1,5),new r("ice",-1,1),new r("atrice",7,1),new r("iche",-1,1),new r("logie",-1,3),new r("abile",-1,1),new r("ibile",-1,1),new r("usione",-1,4),new r("azione",-1,2),new r("uzione",-1,4),new r("atore",-1,2),new r("ose",-1,1),new r("ante",-1,1),new r("mente",-1,1),new r("amente",19,7),new r("iste",-1,1),new r("ive",-1,9),new r("anze",-1,1),new r("enze",-1,5),new r("ici",-1,1),new r("atrici",25,1),new r("ichi",-1,1),new r("abili",-1,1),new r("ibili",-1,1),new r("ismi",-1,1),new r("usioni",-1,4),new r("azioni",-1,2),new r("uzioni",-1,4),new r("atori",-1,2),new r("osi",-1,1),new r("anti",-1,1),new r("amenti",-1,6),new r("imenti",-1,6),new r("isti",-1,1),new r("ivi",-1,9),new r("ico",-1,1),new r("ismo",-1,1),new r("oso",-1,1),new r("amento",-1,6),new r("imento",-1,6),new r("ivo",-1,9),new r("ità",-1,8),new r("istà",-1,1),new r("istè",-1,1),new r("istì",-1,1)],W=[new r("isca",-1,1),new r("enda",-1,1),new r("ata",-1,1),new r("ita",-1,1),new r("uta",-1,1),new r("ava",-1,1),new r("eva",-1,1),new r("iva",-1,1),new r("erebbe",-1,1),new r("irebbe",-1,1),new r("isce",-1,1),new r("ende",-1,1),new r("are",-1,1),new r("ere",-1,1),new r("ire",-1,1),new r("asse",-1,1),new r("ate",-1,1),new r("avate",16,1),new r("evate",16,1),new r("ivate",16,1),new r("ete",-1,1),new r("erete",20,1),new r("irete",20,1),new r("ite",-1,1),new r("ereste",-1,1),new r("ireste",-1,1),new r("ute",-1,1),new r("erai",-1,1),new r("irai",-1,1),new r("isci",-1,1),new r("endi",-1,1),new r("erei",-1,1),new r("irei",-1,1),new r("assi",-1,1),new r("ati",-1,1),new r("iti",-1,1),new r("eresti",-1,1),new r("iresti",-1,1),new r("uti",-1,1),new r("avi",-1,1),new r("evi",-1,1),new r("ivi",-1,1),new r("isco",-1,1),new r("ando",-1,1),new r("endo",-1,1),new r("Yamo",-1,1),new r("iamo",-1,1),new r("avamo",-1,1),new r("evamo",-1,1),new r("ivamo",-1,1),new r("eremo",-1,1),new r("iremo",-1,1),new r("assimo",-1,1),new r("ammo",-1,1),new r("emmo",-1,1),new r("eremmo",54,1),new r("iremmo",54,1),new r("immo",-1,1),new r("ano",-1,1),new r("iscano",58,1),new r("avano",58,1),new r("evano",58,1),new r("ivano",58,1),new r("eranno",-1,1),new r("iranno",-1,1),new r("ono",-1,1),new r("iscono",65,1),new r("arono",65,1),new r("erono",65,1),new r("irono",65,1),new r("erebbero",-1,1),new r("irebbero",-1,1),new r("assero",-1,1),new r("essero",-1,1),new r("issero",-1,1),new r("ato",-1,1),new r("ito",-1,1),new r("uto",-1,1),new r("avo",-1,1),new r("evo",-1,1),new r("ivo",-1,1),new r("ar",-1,1),new r("ir",-1,1),new r("erà",-1,1),new r("irà",-1,1),new r("erò",-1,1),new r("irò",-1,1)],L=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,128,128,8,2,1],y=[17,65,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,8,2],U=[17],x=new n;this.setCurrent=function(e){x.setCurrent(e)},this.getCurrent=function(){return x.getCurrent()},this.stem=function(){var e=x.cursor;return i(),x.cursor=e,u(),x.limit_backward=e,x.cursor=x.limit,f(),x.cursor=x.limit,v()||(x.cursor=x.limit,b()),x.cursor=x.limit,_(),x.cursor=x.limit_backward,c(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.it.stemmer,"stemmer-it"),e.it.stopWordFilter=e.generateStopWordFilter("a abbia abbiamo abbiano abbiate ad agl agli ai al all alla alle allo anche avemmo avendo avesse avessero avessi avessimo aveste avesti avete aveva avevamo avevano avevate avevi avevo avrai avranno avrebbe avrebbero avrei avremmo avremo avreste avresti avrete avrà avrò avuta avute avuti avuto c che chi ci coi col come con contro cui da dagl dagli dai dal dall dalla dalle dallo degl degli dei del dell della delle dello di dov dove e ebbe ebbero ebbi ed era erano eravamo eravate eri ero essendo faccia facciamo facciano facciate faccio facemmo facendo facesse facessero facessi facessimo faceste facesti faceva facevamo facevano facevate facevi facevo fai fanno farai faranno farebbe farebbero farei faremmo faremo fareste faresti farete farà farò fece fecero feci fosse fossero fossi fossimo foste fosti fu fui fummo furono gli ha hai hanno ho i il in io l la le lei li lo loro lui ma mi mia mie miei mio ne negl negli nei nel nell nella nelle nello noi non nostra nostre nostri nostro o per perché più quale quanta quante quanti quanto quella quelle quelli quello questa queste questi questo sarai saranno sarebbe sarebbero sarei saremmo saremo sareste saresti sarete sarà sarò se sei si sia siamo siano siate siete sono sta stai stando stanno starai staranno starebbe starebbero starei staremmo staremo stareste staresti starete starà starò stava stavamo stavano stavate stavi stavo stemmo stesse stessero stessi stessimo steste stesti stette stettero stetti stia stiamo stiano stiate sto su sua sue sugl sugli sui sul sull sulla sulle sullo suo suoi ti tra tu tua tue tuo tuoi tutti tutto un una uno vi voi vostra vostre vostri vostro è".split(" ")),e.Pipeline.registerFunction(e.it.stopWordFilter,"stopWordFilter-it")}}); --------------------------------------------------------------------------------