Compare commits
658 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 40346f2a76 | |||
| 634de7885d | |||
| f054ecb03d | |||
| 98c5bcdee9 | |||
| 0aa6ed00cd | |||
| c1a9b1a3ca | |||
| b942301b86 | |||
| 8d9c34af0d | |||
| 8e909e9603 | |||
| 15285dc291 | |||
| d0c217d414 | |||
| 8ab97fc8c7 | |||
| f6fe7812c7 | |||
| 0b1fc9b24d | |||
| f674f617e1 | |||
| 34d405ff93 | |||
| bb23b5b555 | |||
| 42de2cbb8b | |||
| a8d5f46124 | |||
| ccab722e39 | |||
| 60355edd50 | |||
| fdb6b533f1 | |||
| 93c8f01b04 | |||
| 1f7f8d6837 | |||
| 0201853952 | |||
| 0c7e34f6dc | |||
| 5bfdae33d6 | |||
| 76492720b6 | |||
| cf6eef480f | |||
| 1ed373e88d | |||
| 5b9ebe0e00 | |||
| c2334c91dd | |||
| 99fc273da8 | |||
| 74fa1d101c | |||
| 92c3f3d31e | |||
| c9ae952805 | |||
| 3656f0075a | |||
| 5f14f7f347 | |||
| 2a08f09f2b | |||
| 656cf528c7 | |||
| 6fd4f1fa3c | |||
| c405f58177 | |||
| 8f478627ea | |||
| 13bdb4f909 | |||
| bd90c5a728 | |||
| 1951142e3f | |||
| 34f6582d38 | |||
| 544b938a2b | |||
| 30e52d495a | |||
| 79b85e8435 | |||
| dadce474a6 | |||
| cc9c40d26b | |||
| 8550e8ff10 | |||
| 0a226464cb | |||
| ee2f319e73 | |||
| ca7bf620a7 | |||
| 24b1e72818 | |||
| 657c058e42 | |||
| 8f25801d18 | |||
| adc23bee64 | |||
| b1700f4090 | |||
| 4b772eaac8 | |||
| aef3a9ba03 | |||
| 7f8d64ce3c | |||
| f0911d1f6f | |||
| aad138ff30 | |||
| 0bec6cb4dd | |||
| 42c1ac5177 | |||
| 732396bbde | |||
| 91902c4fa7 | |||
| 7e88f9586f | |||
| 39a0246b0d | |||
| 2eb98b16c9 | |||
| 007caedac2 | |||
| f16d5d0fa5 | |||
| d31ad4b844 | |||
| df7fd6e279 | |||
| fb2f1b0a6b | |||
| d5d7b9af02 | |||
| c41d9882b5 | |||
| 636b4369d6 | |||
| 4ff9d71764 | |||
| 18aeb1c084 | |||
| 7390692af5 | |||
| 32fefc28d4 | |||
| 3e807ed7a9 | |||
| 15a436b869 | |||
| fd01543fc7 | |||
| 11d0217c32 | |||
| b28495c566 | |||
| d706a32f2f | |||
| 008ae2b842 | |||
| 3a94e3ef79 | |||
| c2d416c734 | |||
| ba34341718 | |||
| d884b7405c | |||
| e38e270079 | |||
| fe413be034 | |||
| 5b2d0e8263 | |||
| a34bc0bf0f | |||
| 6fcf4988bb | |||
| f29028325d | |||
| e61579a844 | |||
| 9c9812223e | |||
| 668b9eee38 | |||
| c30378b8a3 | |||
| 5f05c060b8 | |||
| 4ebbe82c9f | |||
| 0adf30765a | |||
| 5e48b898a7 | |||
| 245249d60d | |||
| 2477ee633b | |||
| 50c69c1fc9 | |||
| e6068f80ab | |||
| 4d6771870a | |||
| ee72b0fa46 | |||
| bdd56c1dbe | |||
| c09aff0409 | |||
| 5dc67f3707 | |||
| d2e2fe6a2f | |||
| 8cbe5493a3 | |||
| 80a76ac2d2 | |||
| c963ad62dd | |||
| 210840d9ac | |||
| 1eea58f30e | |||
| d39051ef50 | |||
| c16798b33c | |||
| 3fee819d2e | |||
| 854bfb597d | |||
| 629ce12794 | |||
| a22cccf6cf | |||
| 00a4d4c1a2 | |||
| 423a45573d | |||
| 7479d4daf1 | |||
| 726e84c48b | |||
| 4337e11f0c | |||
| 082872e966 | |||
| b5ea4be1f8 | |||
| 7d3bfcbd14 | |||
| 5971f723e2 | |||
| 4c70384c87 | |||
| d9c5885d23 | |||
| 2e7e173ff4 | |||
| c6a0ef1e18 | |||
| 342677d722 | |||
| 244fb7c204 | |||
| 53e3445c18 | |||
| a0009babe4 | |||
| 3b1b608a00 | |||
| 7dd314cbc8 | |||
| 91c80a16fb | |||
| c3c4f05b08 | |||
| 1068b96658 | |||
| 4a6914a549 | |||
| 8066cf6209 | |||
| 0149658f1b | |||
| 8d616b7400 | |||
| d6c7a7cf6c | |||
| e804def85c | |||
| fa003cbb49 | |||
| 9e0713f983 | |||
| 8af2e3fcde | |||
| 13634fbfd6 | |||
| c93102152f | |||
| 72e59b42fe | |||
| b65b6475eb | |||
| 79770e8f9b | |||
| d583468fbd | |||
| 312993a680 | |||
| 2e044a2fd0 | |||
| 8a2062e085 | |||
| 74851ebd0c | |||
| 15cf557554 | |||
| 7d3bee7982 | |||
| 66bc074df3 | |||
| 0b2a086651 | |||
| 809a35de1f | |||
| 561725ed87 | |||
| 8861030cac | |||
| 592a7b9b9c | |||
| f435e23ae9 | |||
| 631661ffc4 | |||
| 4a019bcda9 | |||
| 182803f2d4 | |||
| b6ac4dc15f | |||
| 1627b6d4a2 | |||
| fb5b9245a5 | |||
| b785739315 | |||
| ed43a94fa6 | |||
| e9c910ed57 | |||
| 5ee3b35d34 | |||
| 71409aa1d2 | |||
| 7e3a2e0066 | |||
| 385022d69e | |||
| 1a2d972af7 | |||
| 972cfd66a9 | |||
| ed01c8e1bd | |||
| cc31ec76a8 | |||
| 836c3cd25a | |||
| 81d6ed01b6 | |||
| 37075f6453 | |||
| a137337a91 | |||
| 1262b80a24 | |||
| 2ff4581bff | |||
| 57877c395c | |||
| d377cff12e | |||
| 393294c375 | |||
| 8a8d239ed1 | |||
| d96ef75cbd | |||
| 529a4b61dc | |||
| 3383322ad9 | |||
| 3e9f751b10 | |||
| a1f8bde8e8 | |||
| 71a88cfb2f | |||
| f2c05f0687 | |||
| 5d32985acb | |||
| 0658f1ba3a | |||
| 2b20c5144b | |||
| 3218543b69 | |||
| a8844c4936 | |||
| 7468c288f2 | |||
| 18aebd4f6e | |||
| 549d713c60 | |||
| 47132619cc | |||
| 93a4f89e20 | |||
| d01ac2316b | |||
| d4cc0df1f0 | |||
| 1042a0ac85 | |||
| 62fdc2f9a6 | |||
| cfe3a7836f | |||
| 491c58255f | |||
| 15a8292b6e | |||
| a505038481 | |||
| 55dbc1a2e7 | |||
| 780a8f082e | |||
| 92df5dfb41 | |||
| a798ed3204 | |||
| ba45121e97 | |||
| d21375066d | |||
| 99c0d8f08a | |||
| e336bb0173 | |||
| 0b6c70c44c | |||
| fea621cb46 | |||
| ff13db86b9 | |||
| 8502789104 | |||
| f7de17be21 | |||
| 09fc8982f7 | |||
| c439bee641 | |||
| b5bf4e015d | |||
| b22ae84e71 | |||
| a67a65e922 | |||
| d13a726703 | |||
| 8824242dab | |||
| dbaf25edfd | |||
| d8163993c5 | |||
| 911e9b5e57 | |||
| 8f6da1cc53 | |||
| 1efe3e7c2d | |||
| fe25fbf6c1 | |||
| cc4ac8dda8 | |||
| 5355f6b68a | |||
| 0d5bd67c37 | |||
| c71c7fa4aa | |||
| b480b57648 | |||
| 243d6d52d4 | |||
| ce1eef8a23 | |||
| 407d2c0cf1 | |||
| 6e8f1ccca3 | |||
| 50dcc4e62c | |||
| 0c4fe9d5da | |||
| 7afc4dc90b | |||
| 9e1cd5495b | |||
| bb577eaf3a | |||
| 34163d3a4e | |||
| ecb4462ba2 | |||
| c9056b31d0 | |||
| 5cadf0a6fe | |||
| 9c17686033 | |||
| 34c4985897 | |||
| aae4bae369 | |||
| a8a302c50a | |||
| 026ac0a709 | |||
| 5475c2b78d | |||
| 19f984446e | |||
| abf64ceb8e | |||
| d5abd663b1 | |||
| e872924622 | |||
| 7f9ce37510 | |||
| 4f0ab337f3 | |||
| b0fce0e0ed | |||
| 245c1fc64e | |||
| e62737034b | |||
| 00f3edad78 | |||
| 689d8529ec | |||
| 7395c7c811 | |||
| 1604934339 | |||
| 4a2cdf6be2 | |||
| 3ebd113d2e | |||
| be561eb7b0 | |||
| b93ef343de | |||
| 3596839e28 | |||
| 49bbeee0b7 | |||
| 151a9dab16 | |||
| cc82779378 | |||
| 24c5f94a99 | |||
| f5fc748a0b | |||
| 524720786e | |||
| 2c2b9859c7 | |||
| e83357d5da | |||
| 6d71c0c22b | |||
| ada5c02195 | |||
| 3d8180ff5e | |||
| 77cda16ac3 | |||
| 96fa50137e | |||
| 9b9387ca70 | |||
| 27b765dc01 | |||
| 221973e9c0 | |||
| 95e89cf4ef | |||
| d922fb1625 | |||
| 7ab331dff6 | |||
| 78c5cfc63e | |||
| 4247aff564 | |||
| d551a2be2f | |||
| d8f5130117 | |||
| 3a26269dc0 | |||
| f13138620b | |||
| c31b024187 | |||
| 6edb67ca02 | |||
| 022d648010 | |||
| 020720a4f5 | |||
| 25c21bb565 | |||
| 3a35137787 | |||
| 2e6bb08ee6 | |||
| b81b8c9bd9 | |||
| 57bec78484 | |||
| 45210739b2 | |||
| b6d62fe3bc | |||
| 7c1870b48c | |||
| 085889b1ee | |||
| 0e1249c050 | |||
| 2a6d7f428a | |||
| d8ca26acee | |||
| 04a108c22d | |||
| 0a434d2cd8 | |||
| 3788058946 | |||
| ceee0210b1 | |||
| de240895ec | |||
| 99ad80ac40 | |||
| aca126907b | |||
| 18adf57ba9 | |||
| 159c706149 | |||
| 1408bcb79c | |||
| 7d03f3f344 | |||
| 17701024b0 | |||
| ad62072e71 | |||
| 778f6bfbce | |||
| b321053978 | |||
| fc583465f0 | |||
| e87a7e799c | |||
| 29d2ba0d8c | |||
| 696ef5786d | |||
| 2b8d82d57d | |||
| 8e366dd3ab | |||
| f0c8e68fc6 | |||
| eabb3587f1 | |||
| cbc0201480 | |||
| 362cf8b766 | |||
| 1b6b13e67e | |||
| 5796e6addc | |||
| 4887781920 | |||
| 95d4e2694d | |||
| 983ca68fe3 | |||
| 2fde7bbfc9 | |||
| 031a4bd76c | |||
| 94698f5f77 | |||
| a5b7db763d | |||
| 8e3ca33d45 | |||
| bd88c4cc86 | |||
| f15e12f2da | |||
| 4962afe612 | |||
| 9420f301f0 | |||
| d6aa1b7094 | |||
| aa0389aa25 | |||
| 71b8a91be2 | |||
| 8a8da6c6a5 | |||
| c030f28542 | |||
| bf44e40d6c | |||
| 6a9cbb163f | |||
| 44c10812e6 | |||
| fcc7193d7c | |||
| 49d6fad097 | |||
| 5117dc9806 | |||
| 38319fac5a | |||
| 58a18663c6 | |||
| d03e2006fd | |||
| eb640ca170 | |||
| 09052fb953 | |||
| ff3f26125e | |||
| afcd197fbb | |||
| b121ef287d | |||
| 1b4cef5fa0 | |||
| bc584877cd | |||
| ab2d5f7795 | |||
| 4bbab2bc7b | |||
| 364ef9660c | |||
| 30d399ee15 | |||
| 3335114856 | |||
| 940a942248 | |||
| a1245cf2fc | |||
| b64d8c5836 | |||
| ad27b234bf | |||
| cbc7858aec | |||
| 5ae8c12644 | |||
| 6a6e2c62d6 | |||
| a4dcfd3dca | |||
| a5d05e57e8 | |||
| ee5790e355 | |||
| 6d475ee6a5 | |||
| b9bcf598f0 | |||
| c3a01802f2 | |||
| d7e67af133 | |||
| 3a5db6b29d | |||
| 86f6e1c51c | |||
| b6f03a7858 | |||
| 69f4fed4f2 | |||
| 39ea802f71 | |||
| 7e072828a3 | |||
| 8fb668c8bc | |||
| 2f70358b16 | |||
| 78d6b337ec | |||
| 8643920744 | |||
| 1cee7a14de | |||
| 0246f9e12d | |||
| fdde17f1ee | |||
| bbb32fcf46 | |||
| 1bd35955cd | |||
| 7716e375f5 | |||
| abcd31c9b0 | |||
| edb5e9dc87 | |||
| 3a5b6bbe15 | |||
| 1df5934ebb | |||
| f317095922 | |||
| 550e45f1c5 | |||
| 810c020e9b | |||
| 4df68f92b1 | |||
| e383316764 | |||
| 3a5527cf90 | |||
| 7c9157d392 | |||
| 9a0a072df3 | |||
| cb4728ebf0 | |||
| 56024333d6 | |||
| f742438366 | |||
| 533e494310 | |||
| 3a0599f59b | |||
| cf867ef6b7 | |||
| b0427aa8b9 | |||
| 542dadb917 | |||
| b2f6179dd2 | |||
| 502cf1f3b9 | |||
| e655be4c8e | |||
| 5ca86b2286 | |||
| 621e32035d | |||
| ec9d03be5e | |||
| ca7edc811b | |||
| 2c9bd00063 | |||
| 4c100a8248 | |||
| 07e9aeaf38 | |||
| cf59ef626b | |||
| b8d4b5eea5 | |||
| aeeb5bd570 | |||
| bcf2c9244f | |||
| f1f49bbc6c | |||
| c22799a90a | |||
| bda88a8b36 | |||
| 494effb977 | |||
| df45e6180a | |||
| 9198ceb1dc | |||
| 5cba7326e6 | |||
| 121ffd13c4 | |||
| 30e21d445c | |||
| 4bdd94eee0 | |||
| fb0db978ef | |||
| 2b45bf59ae | |||
| e738ef9168 | |||
| 43f9c56552 | |||
| 3fa1b5b31b | |||
| 7d351d50ce | |||
| d5a6ba73cb | |||
| 9f5089f2a1 | |||
| f4e12da460 | |||
| cc94614780 | |||
| d237c7eacb | |||
| 6e99c501f5 | |||
| 7f4176df51 | |||
| dd0aece313 | |||
| 8f965b0785 | |||
| ef4a079698 | |||
| 167c2a165f | |||
| 30d85632fc | |||
| 696b01d531 | |||
| 0b5d5a7908 | |||
| a59b6020d3 | |||
| c346225a99 | |||
| 1312a15de0 | |||
| d069cee761 | |||
| 5af590a0d0 | |||
| d0dcb6391b | |||
| 3f814a24ad | |||
| 4dfd7e8265 | |||
| 8f67f8e9bc | |||
| 2004445c72 | |||
| fa1ac1d9ec | |||
| 96b8e943c7 | |||
| 4420d6ab0d | |||
| 648f990b06 | |||
| 0ff81a46bb | |||
| d305556a4b | |||
| ba1f7430b8 | |||
| 7c38906998 | |||
| 5c8b13108e | |||
| 3c2aca6de7 | |||
| f4b3e84322 | |||
| 3eb4dac71f | |||
| 07152b7220 | |||
| b74cc8cefd | |||
| 344281b25d | |||
| fc2182db4f | |||
| 759ed403e7 | |||
| cd69dacca1 | |||
| c9ac071355 | |||
| 9297774859 | |||
| 713aac996e | |||
| a113025466 | |||
| 55f89918e8 | |||
| 0450b114b0 | |||
| b995795353 | |||
| ac522ee347 | |||
| 78de81d261 | |||
| e5426c7002 | |||
| 00b5aca9af | |||
| c5835b8dfe | |||
| f3ae53d4c0 | |||
| f8b6ecefee | |||
| d7f8cecd9f | |||
| 6734648cab | |||
| a4e8225e7b | |||
| 608ceeeb55 | |||
| a70c066f30 | |||
| d33f044182 | |||
| 62865dc66e | |||
| edcbaae9fa | |||
| a359c89fc7 | |||
| f8c4f8299d | |||
| 755e6041ff | |||
| c1dac026ea | |||
| 463632802e | |||
| 2fcf6d6fb8 | |||
| e5e782d667 | |||
| ce14a8a1b5 | |||
| 1464bb1657 | |||
| 7e95b277e8 | |||
| 76e10975ec | |||
| e988c4a8f1 | |||
| a52e418625 | |||
| aabdc19d9f | |||
| 5ea4e8dc7e | |||
| 3f179b8c64 | |||
| 55855298e1 | |||
| 6abac8c053 | |||
| 70dc8bc2b7 | |||
| bb5f760bd1 | |||
| 66cf9910ea | |||
| f04c78ec54 | |||
| c45dca2a18 | |||
| 9e28b7cc29 | |||
| b4e8c0d7a8 | |||
| af206b7305 | |||
| 5bfa7708fe | |||
| a11297b228 | |||
| 7370a02952 | |||
| fa1f8a64c2 | |||
| d5d6dea1aa | |||
| 20bbf8d2dc | |||
| 9bf3c21d27 | |||
| 0338b02d84 | |||
| 2956ac3737 | |||
| d0332f77a1 | |||
| 2de843a2f1 | |||
| 48d2fa2594 | |||
| d4b19734ce | |||
| 522737d30a | |||
| 76e414d34f | |||
| 3e029abf3c | |||
| 6c151f8273 | |||
| e177fbc476 | |||
| 78639ecde2 | |||
| 7b0aa7efef | |||
| 691549fdee | |||
| fec09f9d8f | |||
| 6e83f11d54 | |||
| 4cf2ecbd74 | |||
| c65aca8926 | |||
| f57bc637c7 | |||
| 8084564fc8 | |||
| 566b4185cf | |||
| 73cfa1fcf7 | |||
| eb0dab3a54 | |||
| b32adcf021 | |||
| a6f47c6006 | |||
| 2133c79d5f | |||
| 4473696bc7 | |||
| 34cdd83ad0 | |||
| 297fcf82af | |||
| 51b503269c | |||
| 33e6b62255 | |||
| 4a23586fdd | |||
| dbe9a18806 | |||
| 3a5886ef33 | |||
| ac3905dc40 | |||
| c376f020da | |||
| 4cedf02cbf | |||
| 048c55b5e9 | |||
| ab162579d1 | |||
| 9807b981da | |||
| 4a498e16d4 | |||
| 6491beb349 | |||
| 2987b97a49 | |||
| 961e2b8b87 | |||
| d030b8a5ef | |||
| 3e31b9b04b | |||
| 28e903b10b | |||
| 4dd0eb328a | |||
| 5b6e7e2636 | |||
| 301dc3ea61 | |||
| 59c84b2100 | |||
| e2109d00ab | |||
| bb175076ad | |||
| 68fb7b8461 | |||
| 71a7030d07 | |||
| 2b74ba8755 | |||
| 6433308333 | |||
| 1b49b9f273 | |||
| 2cc7b9ee9e | |||
| 0b70b7bc9a | |||
| 2843036a09 | |||
| 81b4f60699 | |||
| 7ca23c3d6e | |||
| bd0e5e4f37 | |||
| f2e3607c44 | |||
| 806a6df018 | |||
| 01b11a9640 | |||
| 12bf031026 | |||
| da5b3d3db4 | |||
| a888d4bc99 | |||
| a2f70cea17 | |||
| 890dc59386 | |||
| 614e589e3c | |||
| 959fb0730c |
21
.gitignore
vendored
21
.gitignore
vendored
@@ -1,9 +1,14 @@
|
|||||||
/data
|
/*
|
||||||
/sessions
|
!/script
|
||||||
/context
|
!/plugins
|
||||||
/log
|
!/devices
|
||||||
/plugins
|
!/config
|
||||||
/extensions
|
|
||||||
script/cachedir
|
|
||||||
script/Lib
|
script/Lib
|
||||||
script/*.class
|
script/**/cachedir
|
||||||
|
script/**/*.class
|
||||||
|
script/**/*.pyc
|
||||||
|
script/**/*.*~
|
||||||
|
plugins/*.class
|
||||||
|
plugins/**/*.*~
|
||||||
|
config/**/*.*~
|
||||||
|
devices/**/*.*~
|
||||||
|
|||||||
@@ -1,19 +1,28 @@
|
|||||||
#Fri Mar 27 10:38:34 CET 2015
|
#Tue Sep 01 09:37:24 CEST 2015
|
||||||
dataFile={data}/{year}_{month}/{date}/{date}_{time}_{context}
|
autoSaveScanData=true
|
||||||
|
createSessionFiles=false
|
||||||
dataFilesCreation=true
|
dataFilesCreation=true
|
||||||
|
dataPath={data}/{year}_{month}/{date}/{date}_{time}_{exec}
|
||||||
|
dataProvider=default
|
||||||
|
dataScanFlushRecords=false
|
||||||
|
dataScanStrategy=default
|
||||||
devicePoolFile={config}/devices.properties
|
devicePoolFile={config}/devices.properties
|
||||||
deviceUpdateStrategyFile={config}/update.properties
|
deviceUpdateStrategyFile={config}/update.properties
|
||||||
imageSourcesFile={config}/imaging.properties
|
imageSourcesFile={config}/imaging.properties
|
||||||
logDaysToLive=-1
|
logDaysToLive=-1
|
||||||
logLevel=Fine
|
logLevel=Fine
|
||||||
logLevelConsole=Off
|
logLevelConsole=Off
|
||||||
|
logPath={logs}/{date}_{time}
|
||||||
scriptType=py
|
scriptType=py
|
||||||
serverEnabled=false
|
serverEnabled=true
|
||||||
serverPort=8080
|
serverPort=8085
|
||||||
simulation=false
|
simulation=false
|
||||||
tasksFile={config}/tasks.properties
|
tasksFile={config}/tasks.properties
|
||||||
terminalEnabled=false
|
terminalEnabled=false
|
||||||
terminalPort=3579
|
terminalPort=3579
|
||||||
|
userAuthenticator=
|
||||||
|
userManagement=false
|
||||||
versionTrackingEnabled=true
|
versionTrackingEnabled=true
|
||||||
versionTrackingLogin=
|
versionTrackingLogin={config}/agkey
|
||||||
versionTrackingRemote=
|
versionTrackingManual=false
|
||||||
|
versionTrackingRemote=ssh\://git@github.psi.ch\:7999/psd/x10sa.git
|
||||||
|
|||||||
27
config/config.properties~
Normal file
27
config/config.properties~
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
#Wed Jul 29 14:45:52 CEST 2015
|
||||||
|
autoSaveScanData=true
|
||||||
|
createSessionFiles=false
|
||||||
|
dataFile={data}/{year}_{month}/{date}/{date}_{time}_{context}
|
||||||
|
dataFilesCreation=true
|
||||||
|
dataPath={data}/{year}_{month}/{date}/{date}_{time}_{context}
|
||||||
|
dataProvider=default
|
||||||
|
dataScanFlushRecords=false
|
||||||
|
dataScanStrategy=default
|
||||||
|
devicePoolFile={config}/devices.properties
|
||||||
|
deviceUpdateStrategyFile={config}/update.properties
|
||||||
|
imageSourcesFile={config}/imaging.properties
|
||||||
|
logDaysToLive=-1
|
||||||
|
logLevel=Fine
|
||||||
|
logLevelConsole=Off
|
||||||
|
scriptType=py
|
||||||
|
serverEnabled=true
|
||||||
|
serverPort=8085
|
||||||
|
simulation=false
|
||||||
|
tasksFile={config}/tasks.properties
|
||||||
|
terminalEnabled=false
|
||||||
|
terminalPort=3579
|
||||||
|
userAuthenticator=
|
||||||
|
userManagement=false
|
||||||
|
versionTrackingEnabled=true
|
||||||
|
versionTrackingLogin={config}/agkey
|
||||||
|
versionTrackingRemote=ssh\://git@github.psi.ch\:7999/psd/x10sa.git
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
diode=ch.psi.pshell.epics.ChannelDouble|X10SA-ES-KBOX_K:READOUT 6|Read||true
|
||||||
|
$shutter=ch.psi.pshell.epics.ChannelInteger|X10SA-ES-PH1:SET|||true
|
||||||
|
omega=ch.psi.pshell.epics.Positioner|X10SA-ES-DF1:OMEGA-VAL X10SA-ES-DF1:OMEGA-RBV|||true
|
||||||
|
x=ch.psi.pshell.epics.Positioner|X10SA-ES-DF1:GMX-VAL X10SA-ES-DF1:GMX-RBV|||true
|
||||||
|
cy=ch.psi.pshell.epics.Motor|X10SA-ES-DFS:TRY1|||true
|
||||||
|
cz=ch.psi.pshell.epics.Motor|X10SA-ES-DFS:TRZ1|||true
|
||||||
|
apertureX=ch.psi.pshell.epics.Motor|X10SA-ES-MIC:TRX1|||true
|
||||||
|
apertureY=ch.psi.pshell.epics.Motor|X10SA-ES-MIC:TRY1|||true
|
||||||
|
beamstopX=ch.psi.pshell.epics.Motor|X10SA-ES-BS:TRX1|||true
|
||||||
|
beamstopY=ch.psi.pshell.epics.Motor|X10SA-ES-BS:TRY1|||true
|
||||||
|
beamstopZ=ch.psi.pshell.epics.Motor|X10SA-ES-BS:TRZ1|||true
|
||||||
|
collimatorX=ch.psi.pshell.epics.Motor|X10SA-ES-MIC:TRX2|||true
|
||||||
|
collimatorY=ch.psi.pshell.epics.Motor|X10SA-ES-MIC:TRY2|||true
|
||||||
|
scintillatorY=ch.psi.pshell.epics.Motor|X10SA-ES-MIC:TRY3|||true
|
||||||
|
scintillatorZ=ch.psi.pshell.epics.Positioner|X10SA-ES-SCINTI:SET-FOCUS X10SA-ES-SCINTI:GET-FOCUS|||true
|
||||||
|
detectorZ=ch.psi.pshell.epics.Motor|X10SA-ES-D:TRZ1|||true
|
||||||
|
detectorY=ch.psi.pshell.epics.Motor|X10SA-ES-D:TRY1|||true
|
||||||
|
#apertureTable=ch.psi.pshell.device.MotorGroupBase|apertureX apertureY|||
|
||||||
|
beamstopTable=ch.psi.pshell.device.MotorGroupBase|beamstopX beamstopY beamstopZ|||
|
||||||
|
#collimatorTable=ch.psi.pshell.device.MotorGroupBase|collimatorX collimatorY|||
|
||||||
|
collimator=ch.psi.pshell.device.MotorGroupDiscretePositioner|collimatorX collimatorY|||
|
||||||
|
aperture=ch.psi.pshell.device.MotorGroupDiscretePositioner|apertureX apertureY|||
|
||||||
|
scintillator=ch.psi.pshell.device.MotorGroupDiscretePositioner|scintillatorY|||
|
||||||
|
slit1H=ch.psi.pshell.epics.Slit|X10SA-OP-SH1:TRX2 X10SA-OP-SH1:TRX1|||true
|
||||||
|
slit1V=ch.psi.pshell.epics.Slit|X10SA-OP-SV1:TRY1 X10SA-OP-SV1:TRY2|||true
|
||||||
|
slit2H=ch.psi.pshell.epics.Slit|X10SA-OP-SH2:TRX2 X10SA-OP-SH2:TRX1|||true
|
||||||
|
slit2V=ch.psi.pshell.epics.Slit|X10SA-OP-SV2:TRY1 X10SA-OP-SV2:TRY2|||true
|
||||||
|
lamp=ch.psi.pshell.epics.DiscretePositioner||||true
|
||||||
|
backlight=ch.psi.pshell.epics.ProcessVariable|X10SA-ES-KOI:SET-LIGHT|||
|
||||||
|
frontlight=ch.psi.pshell.epics.ProcessVariable|X10SA-ES-FL1:SET-LIGHT|||
|
||||||
|
video=ch.psi.pshell.imaging.MjpegSource|http://x10sa-videoserver-1/axis-cgi/mjpg/video.cgi||-1000|
|
||||||
|
mic-low=ch.psi.pshell.imaging.MjpegSource|http://x10sa-fw-1.psi.ch:8090/GH-13.mjpg||-250|
|
||||||
|
mic-high=ch.psi.pshell.imaging.MjpegSource|http://x10sa-fw-1.psi.ch:8090/GH-12.mjpg||-250|
|
||||||
|
|||||||
33
config/devices.properties~
Normal file
33
config/devices.properties~
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
diode=ch.psi.pshell.epics.ChannelDouble|X10SA-ES-KBOX_K:READOUT 6|Read||
|
||||||
|
$shutter=ch.psi.pshell.epics.ChannelInteger|X10SA-ES-PH1:SET|||
|
||||||
|
omega=ch.psi.pshell.epics.Positionable|X10SA-ES-DF1:OMEGA-VAL X10SA-ES-DF1:OMEGA-RBV|||
|
||||||
|
x=ch.psi.pshell.epics.Positionable|X10SA-ES-DF1:GMX-VAL X10SA-ES-DF1:GMX-RBV|||
|
||||||
|
cy=ch.psi.pshell.epics.Motor|X10SA-ES-DFS:TRY1|||
|
||||||
|
cz=ch.psi.pshell.epics.Motor|X10SA-ES-DFS:TRZ1|||
|
||||||
|
apertureX=ch.psi.pshell.epics.Motor|X10SA-ES-MIC:TRX1|||
|
||||||
|
apertureY=ch.psi.pshell.epics.Motor|X10SA-ES-MIC:TRY1|||
|
||||||
|
beamstopX=ch.psi.pshell.epics.Motor|X10SA-ES-BS:TRX1|||
|
||||||
|
beamstopY=ch.psi.pshell.epics.Motor|X10SA-ES-BS:TRY1|||
|
||||||
|
beamstopZ=ch.psi.pshell.epics.Motor|X10SA-ES-BS:TRZ1|||
|
||||||
|
collimatorX=ch.psi.pshell.epics.Motor|X10SA-ES-MIC:TRX2|||
|
||||||
|
collimatorY=ch.psi.pshell.epics.Motor|X10SA-ES-MIC:TRY2|||
|
||||||
|
scintillatorY=ch.psi.pshell.epics.Motor|X10SA-ES-MIC:TRY3|||
|
||||||
|
scintillatorZ=ch.psi.pshell.epics.Positionable|X10SA-ES-SCINTI:SET-FOCUS X10SA-ES-SCINTI:GET-FOCUS|||
|
||||||
|
detectorZ=ch.psi.pshell.epics.Motor|X10SA-ES-D:TRZ1|||
|
||||||
|
detectorY=ch.psi.pshell.epics.Motor|X10SA-ES-D:TRY1|||
|
||||||
|
#apertureTable=ch.psi.pshell.device.MotorGroupBase|apertureX apertureY|||
|
||||||
|
beamstopTable=ch.psi.pshell.device.MotorGroupBase|beamstopX beamstopY beamstopZ|||
|
||||||
|
#collimatorTable=ch.psi.pshell.device.MotorGroupBase|collimatorX collimatorY|||
|
||||||
|
collimator=ch.psi.pshell.device.MotorGroupDiscretePositioner|collimatorX collimatorY|||
|
||||||
|
aperture=ch.psi.pshell.device.MotorGroupDiscretePositioner|apertureX apertureY|||
|
||||||
|
scintillator=ch.psi.pshell.device.MotorGroupDiscretePositioner|scintillatorY|||
|
||||||
|
slit1H=ch.psi.pshell.epics.Slit|X10SA-OP-SH1:TRX2 X10SA-OP-SH1:TRX1|||
|
||||||
|
slit1V=ch.psi.pshell.epics.Slit|X10SA-OP-SV1:TRY1 X10SA-OP-SV1:TRY2|||
|
||||||
|
slit2H=ch.psi.pshell.epics.Slit|X10SA-OP-SH2:TRX2 X10SA-OP-SH2:TRX1|||
|
||||||
|
slit2V=ch.psi.pshell.epics.Slit|X10SA-OP-SV2:TRY1 X10SA-OP-SV2:TRY2|||
|
||||||
|
lamp=ch.psi.pshell.epics.DiscretePositioner||||
|
||||||
|
backlight=ch.psi.pshell.epics.ProcessVariable|X10SA-ES-KOI:SET-LIGHT|||
|
||||||
|
frontlight=ch.psi.pshell.epics.ProcessVariable|X10SA-ES-FL1:SET-LIGHT|||
|
||||||
|
video=ch.psi.pshell.imaging.MjpegSource http://x10sa-videoserver-1/axis-cgi/mjpg/video.cgi
|
||||||
|
mic-low=ch.psi.pshell.imaging.MjpegSource http://x10sa-fw-1.psi.ch:8090/GH-13.mjpg
|
||||||
|
mic-high=ch.psi.pshell.imaging.MjpegSource http://x10sa-fw-1.psi.ch:8090/GH-12.mjpg
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
ch.psi.jcae.ContextFactory.maxArrayBytes=10000000
|
||||||
|
|
||||||
|
ch.psi.jcae.ChannelFactory.timeout=2000
|
||||||
|
ch.psi.jcae.ChannelFactory.retries=2
|
||||||
|
ch.psi.jcae.ChannelBeanFactory.timeout=10000
|
||||||
|
ch.psi.jcae.ChannelBeanFactory.waitTimeout=3600000
|
||||||
|
ch.psi.jcae.ChannelBeanFactory.retries=2
|
||||||
1
config/plugins.properties
Normal file
1
config/plugins.properties
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Microscope.java=enabled
|
||||||
19
config/setup.properties
Normal file
19
config/setup.properties
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
#Thu Sep 24 10:13:26 CEST 2015
|
||||||
|
configFile={config}/config.properties
|
||||||
|
configFileDevices={config}/devices.properties
|
||||||
|
configFileImageSources={config}/imaging.properties
|
||||||
|
configFilePlugins={config}/plugins.properties
|
||||||
|
configFileTasks={config}/tasks.properties
|
||||||
|
configFileUpdateStrategy={config}/update.properties
|
||||||
|
configPath={home}/config
|
||||||
|
contextPath={home}/context
|
||||||
|
dataPath={home}/data
|
||||||
|
devicesPath={home}/devices
|
||||||
|
extensionsPath={home}/extensions
|
||||||
|
libraryPath={script}; {script}/Lib
|
||||||
|
logPath={home}/log
|
||||||
|
pluginsPath={home}/plugins
|
||||||
|
scriptPath={home}/script
|
||||||
|
scriptType=py
|
||||||
|
sessionsPath={home}/sessions
|
||||||
|
wwwPath={home}/www
|
||||||
12
devices/aperture.properties
Normal file
12
devices/aperture.properties
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
#Tue Sep 01 10:46:53 CEST 2015
|
||||||
|
accessType=ReadWrite
|
||||||
|
motor1=0.6016|0.6153|0.5168|0.5599
|
||||||
|
motor2=-133.7286|2.758|-1.7844|0.4822
|
||||||
|
motor3=null
|
||||||
|
motor4=null
|
||||||
|
motor5=null
|
||||||
|
motor6=null
|
||||||
|
motor7=null
|
||||||
|
motor8=null
|
||||||
|
positions=Park|10um|30um|150um
|
||||||
|
precision=1
|
||||||
15
devices/apertureX.properties
Normal file
15
devices/apertureX.properties
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
#Tue Aug 18 11:08:03 CEST 2015
|
||||||
|
accessType=ReadWrite
|
||||||
|
defaultSpeed=0.5606127886323268
|
||||||
|
estbilizationDelay=0
|
||||||
|
hasEnable=false
|
||||||
|
homingType=None
|
||||||
|
maxSpeed=NaN
|
||||||
|
maxValue=3.7560000000000002
|
||||||
|
minSpeed=0.1
|
||||||
|
minValue=-1.244
|
||||||
|
offset=0.0
|
||||||
|
precision=5
|
||||||
|
resolution=0.001
|
||||||
|
scale=1.0
|
||||||
|
unit=mm
|
||||||
15
devices/apertureY.properties
Normal file
15
devices/apertureY.properties
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
#Tue Aug 18 11:07:45 CEST 2015
|
||||||
|
accessType=ReadWrite
|
||||||
|
defaultSpeed=25.0
|
||||||
|
estbilizationDelay=0
|
||||||
|
hasEnable=false
|
||||||
|
homingType=None
|
||||||
|
maxSpeed=NaN
|
||||||
|
maxValue=3.1000018310546977
|
||||||
|
minSpeed=0.1
|
||||||
|
minValue=-136.4999999809265
|
||||||
|
offset=0.0
|
||||||
|
precision=5
|
||||||
|
resolution=0.005
|
||||||
|
scale=1.0
|
||||||
|
unit=mm
|
||||||
9
devices/backlight.properties
Normal file
9
devices/backlight.properties
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
#Tue Aug 25 16:05:04 CEST 2015
|
||||||
|
accessType=ReadWrite
|
||||||
|
maxValue=4.0
|
||||||
|
minValue=0.0
|
||||||
|
offset=0.0
|
||||||
|
precision=2
|
||||||
|
resolution=NaN
|
||||||
|
scale=1.0
|
||||||
|
unit=V
|
||||||
15
devices/beamstopX.properties
Normal file
15
devices/beamstopX.properties
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
#Tue Aug 18 11:23:51 CEST 2015
|
||||||
|
accessType=ReadWrite
|
||||||
|
defaultSpeed=2.0
|
||||||
|
estbilizationDelay=0
|
||||||
|
hasEnable=false
|
||||||
|
homingType=None
|
||||||
|
maxSpeed=NaN
|
||||||
|
maxValue=6.9611794542536
|
||||||
|
minSpeed=0.1
|
||||||
|
minValue=-9.0388205457464
|
||||||
|
offset=0.0
|
||||||
|
precision=3
|
||||||
|
resolution=0.001
|
||||||
|
scale=1.0
|
||||||
|
unit=mm
|
||||||
15
devices/beamstopY.properties
Normal file
15
devices/beamstopY.properties
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
#Tue Aug 18 11:23:34 CEST 2015
|
||||||
|
accessType=ReadWrite
|
||||||
|
defaultSpeed=2.0
|
||||||
|
estbilizationDelay=0
|
||||||
|
hasEnable=false
|
||||||
|
homingType=None
|
||||||
|
maxSpeed=NaN
|
||||||
|
maxValue=7.82852
|
||||||
|
minSpeed=0.1
|
||||||
|
minValue=-8.17148
|
||||||
|
offset=0.0
|
||||||
|
precision=3
|
||||||
|
resolution=0.001
|
||||||
|
scale=1.0
|
||||||
|
unit=mm
|
||||||
15
devices/beamstopZ.properties
Normal file
15
devices/beamstopZ.properties
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
#Tue Aug 18 11:24:52 CEST 2015
|
||||||
|
accessType=ReadWrite
|
||||||
|
defaultSpeed=26.0
|
||||||
|
estbilizationDelay=0
|
||||||
|
hasEnable=false
|
||||||
|
homingType=None
|
||||||
|
maxSpeed=NaN
|
||||||
|
maxValue=132.0
|
||||||
|
minSpeed=1.0
|
||||||
|
minValue=-2.0
|
||||||
|
offset=0.0
|
||||||
|
precision=3
|
||||||
|
resolution=0.05
|
||||||
|
scale=1.0
|
||||||
|
unit=mm
|
||||||
12
devices/collimator.properties
Normal file
12
devices/collimator.properties
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
#Tue Aug 18 14:06:07 CEST 2015
|
||||||
|
accessType=ReadWrite
|
||||||
|
motor1=NaN|NaN|0.3488
|
||||||
|
motor2=-134.0|-20.0|1.1908
|
||||||
|
motor3=null
|
||||||
|
motor4=null
|
||||||
|
motor5=null
|
||||||
|
motor6=null
|
||||||
|
motor7=null
|
||||||
|
motor8=null
|
||||||
|
positions=Park|Ready|In
|
||||||
|
precision=1
|
||||||
15
devices/collimatorX.properties
Normal file
15
devices/collimatorX.properties
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
#Tue Aug 18 11:29:13 CEST 2015
|
||||||
|
accessType=ReadWrite
|
||||||
|
defaultSpeed=1.0
|
||||||
|
estbilizationDelay=0
|
||||||
|
hasEnable=false
|
||||||
|
homingType=None
|
||||||
|
maxSpeed=NaN
|
||||||
|
maxValue=4.5
|
||||||
|
minSpeed=0.1
|
||||||
|
minValue=-1.5
|
||||||
|
offset=0.0
|
||||||
|
precision=4
|
||||||
|
resolution=5.0E-4
|
||||||
|
scale=1.0
|
||||||
|
unit=mm
|
||||||
15
devices/collimatorY.properties
Normal file
15
devices/collimatorY.properties
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
#Tue Aug 18 11:29:03 CEST 2015
|
||||||
|
accessType=ReadWrite
|
||||||
|
defaultSpeed=25.0
|
||||||
|
estbilizationDelay=150
|
||||||
|
hasEnable=false
|
||||||
|
homingType=None
|
||||||
|
maxSpeed=NaN
|
||||||
|
maxValue=2.0999984741210938
|
||||||
|
minSpeed=0.1
|
||||||
|
minValue=-135.0
|
||||||
|
offset=0.0
|
||||||
|
precision=4
|
||||||
|
resolution=5.0E-4
|
||||||
|
scale=1.0
|
||||||
|
unit=mm
|
||||||
15
devices/cy.properties
Normal file
15
devices/cy.properties
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
#Fri Nov 06 17:43:20 CET 2015
|
||||||
|
accessType=ReadWrite
|
||||||
|
defaultSpeed=5.0
|
||||||
|
estbilizationDelay=0
|
||||||
|
hasEnable=false
|
||||||
|
homingType=None
|
||||||
|
maxSpeed=NaN
|
||||||
|
maxValue=2.0
|
||||||
|
minSpeed=0.1
|
||||||
|
minValue=-2.0
|
||||||
|
offset=0.0
|
||||||
|
precision=5
|
||||||
|
resolution=1.0E-4
|
||||||
|
scale=1.0
|
||||||
|
unit=mm
|
||||||
15
devices/cz.properties
Normal file
15
devices/cz.properties
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
#Fri Nov 06 17:43:41 CET 2015
|
||||||
|
accessType=ReadWrite
|
||||||
|
defaultSpeed=5.0
|
||||||
|
estbilizationDelay=0
|
||||||
|
hasEnable=false
|
||||||
|
homingType=None
|
||||||
|
maxSpeed=NaN
|
||||||
|
maxValue=2.0
|
||||||
|
minSpeed=0.1
|
||||||
|
minValue=-2.0
|
||||||
|
offset=0.0
|
||||||
|
precision=5
|
||||||
|
resolution=1.0E-4
|
||||||
|
scale=1.0
|
||||||
|
unit=mm
|
||||||
15
devices/detectorY.properties
Normal file
15
devices/detectorY.properties
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
#Tue Aug 18 17:29:22 CEST 2015
|
||||||
|
accessType=ReadWrite
|
||||||
|
defaultSpeed=6.25
|
||||||
|
estbilizationDelay=0
|
||||||
|
hasEnable=false
|
||||||
|
homingType=None
|
||||||
|
maxSpeed=NaN
|
||||||
|
maxValue=384.0
|
||||||
|
minSpeed=1.25
|
||||||
|
minValue=-2.0
|
||||||
|
offset=0.0
|
||||||
|
precision=3
|
||||||
|
resolution=0.01
|
||||||
|
scale=1.0
|
||||||
|
unit=mm
|
||||||
15
devices/detectorZ.properties
Normal file
15
devices/detectorZ.properties
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
#Tue Aug 18 17:29:30 CEST 2015
|
||||||
|
accessType=ReadWrite
|
||||||
|
defaultSpeed=40.0
|
||||||
|
estbilizationDelay=0
|
||||||
|
hasEnable=false
|
||||||
|
homingType=None
|
||||||
|
maxSpeed=NaN
|
||||||
|
maxValue=1206.0
|
||||||
|
minSpeed=0.8
|
||||||
|
minValue=165.9
|
||||||
|
offset=0.0
|
||||||
|
precision=3
|
||||||
|
resolution=0.01
|
||||||
|
scale=1.0
|
||||||
|
unit=mm
|
||||||
9
devices/frontlight.properties
Normal file
9
devices/frontlight.properties
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
#Tue Aug 25 16:05:05 CEST 2015
|
||||||
|
accessType=ReadWrite
|
||||||
|
maxValue=10.0
|
||||||
|
minValue=-10.0
|
||||||
|
offset=0.0
|
||||||
|
precision=2
|
||||||
|
resolution=NaN
|
||||||
|
scale=1.0
|
||||||
|
unit=V
|
||||||
8
devices/lamp.properties
Normal file
8
devices/lamp.properties
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
#Tue Aug 18 16:01:38 CEST 2015
|
||||||
|
accessType=ReadWrite
|
||||||
|
position_pvs=X10SA-ES-KOI\:SET-POS|X10SA-ES-KOI\:SET-POS
|
||||||
|
positions=Park|Measure
|
||||||
|
precision=-1
|
||||||
|
readback_pv=X10SA-ES-KOI\:GET-POS
|
||||||
|
setpoint_pv=X10SA-ES-KOI\:SET-POS
|
||||||
|
stop_pv=null
|
||||||
11
devices/mic-high.properties
Normal file
11
devices/mic-high.properties
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
#Wed Nov 11 14:13:36 CET 2015
|
||||||
|
flipHorizontally=false
|
||||||
|
flipVertically=true
|
||||||
|
grayscale=false
|
||||||
|
invert=false
|
||||||
|
pollingBackground=false
|
||||||
|
pollingInterval=250
|
||||||
|
rescaleFactor=1.0
|
||||||
|
rescaleOffset=0.0
|
||||||
|
rotation=0.0
|
||||||
|
scale=1.0
|
||||||
11
devices/mic-low.properties
Normal file
11
devices/mic-low.properties
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
#Wed Nov 11 14:13:36 CET 2015
|
||||||
|
flipHorizontally=false
|
||||||
|
flipVertically=true
|
||||||
|
grayscale=false
|
||||||
|
invert=false
|
||||||
|
pollingBackground=false
|
||||||
|
pollingInterval=250
|
||||||
|
rescaleFactor=1.0
|
||||||
|
rescaleOffset=0.0
|
||||||
|
rotation=0.0
|
||||||
|
scale=1.0
|
||||||
11
devices/mic.properties
Normal file
11
devices/mic.properties
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
#Fri Oct 30 09:32:08 CET 2015
|
||||||
|
flipHorizontally=false
|
||||||
|
flipVertically=false
|
||||||
|
grayscale=false
|
||||||
|
invert=false
|
||||||
|
pollingBackground=false
|
||||||
|
pollingInterval=200
|
||||||
|
rescaleFactor=1.0
|
||||||
|
rescaleOffset=0.0
|
||||||
|
rotation=0.0
|
||||||
|
scale=1.0
|
||||||
9
devices/omega.properties
Normal file
9
devices/omega.properties
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
#Fri Nov 06 15:37:43 CET 2015
|
||||||
|
accessType=ReadWrite
|
||||||
|
maxValue=10000.0
|
||||||
|
minValue=-10000.0
|
||||||
|
offset=0.0
|
||||||
|
precision=3
|
||||||
|
resolution=NaN
|
||||||
|
scale=1.0
|
||||||
|
unit=Deg
|
||||||
15
devices/scintillator.properties
Normal file
15
devices/scintillator.properties
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
#Tue Aug 18 17:38:23 CEST 2015
|
||||||
|
accessType=ReadWrite
|
||||||
|
motor1=-132.7|-20.0|0.0|4.5
|
||||||
|
motor2=null
|
||||||
|
motor3=null
|
||||||
|
motor4=null
|
||||||
|
motor5=null
|
||||||
|
motor6=null
|
||||||
|
motor7=null
|
||||||
|
motor8=null
|
||||||
|
position_pvs=null
|
||||||
|
positions=Park|Ready|Scintillator|Diode
|
||||||
|
precision=-1
|
||||||
|
readback_pv=null
|
||||||
|
stop_pv=null
|
||||||
15
devices/scintillatorY.properties
Normal file
15
devices/scintillatorY.properties
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
#Tue Aug 18 11:01:40 CEST 2015
|
||||||
|
accessType=ReadWrite
|
||||||
|
defaultSpeed=25.0
|
||||||
|
estbilizationDelay=0
|
||||||
|
hasEnable=false
|
||||||
|
homingType=None
|
||||||
|
maxSpeed=NaN
|
||||||
|
maxValue=5.100003051757824
|
||||||
|
minSpeed=0.1
|
||||||
|
minValue=-134.49999995231627
|
||||||
|
offset=0.0
|
||||||
|
precision=5
|
||||||
|
resolution=5.0E-4
|
||||||
|
scale=1.0
|
||||||
|
unit=mm
|
||||||
9
devices/scintillatorZ.properties
Normal file
9
devices/scintillatorZ.properties
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
#Tue Aug 18 17:29:43 CEST 2015
|
||||||
|
accessType=ReadWrite
|
||||||
|
maxValue=10.0
|
||||||
|
minValue=-10.0
|
||||||
|
offset=0.0
|
||||||
|
precision=4
|
||||||
|
resolution=5.0
|
||||||
|
scale=1.0
|
||||||
|
unit=V
|
||||||
15
devices/slit1H neg blade.properties
Normal file
15
devices/slit1H neg blade.properties
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
#Tue Aug 18 14:30:06 CEST 2015
|
||||||
|
accessType=ReadWrite
|
||||||
|
defaultSpeed=1.5
|
||||||
|
estbilizationDelay=0
|
||||||
|
hasEnable=false
|
||||||
|
homingType=None
|
||||||
|
maxSpeed=NaN
|
||||||
|
maxValue=6.0
|
||||||
|
minSpeed=0.5
|
||||||
|
minValue=-6.0
|
||||||
|
offset=0.0
|
||||||
|
precision=5
|
||||||
|
resolution=0.00125
|
||||||
|
scale=1.0
|
||||||
|
unit=mm
|
||||||
15
devices/slit1H pos blade.properties
Normal file
15
devices/slit1H pos blade.properties
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
#Tue Aug 18 14:32:17 CEST 2015
|
||||||
|
accessType=ReadWrite
|
||||||
|
defaultSpeed=1.5
|
||||||
|
estbilizationDelay=0
|
||||||
|
hasEnable=false
|
||||||
|
homingType=None
|
||||||
|
maxSpeed=NaN
|
||||||
|
maxValue=6.0
|
||||||
|
minSpeed=0.5
|
||||||
|
minValue=-6.0
|
||||||
|
offset=0.0
|
||||||
|
precision=5
|
||||||
|
resolution=0.00125
|
||||||
|
scale=1.0
|
||||||
|
unit=mm
|
||||||
15
devices/slit1V neg blade.properties
Normal file
15
devices/slit1V neg blade.properties
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
#Tue Aug 18 14:32:31 CEST 2015
|
||||||
|
accessType=ReadWrite
|
||||||
|
defaultSpeed=1.5
|
||||||
|
estbilizationDelay=0
|
||||||
|
hasEnable=false
|
||||||
|
homingType=None
|
||||||
|
maxSpeed=NaN
|
||||||
|
maxValue=6.0
|
||||||
|
minSpeed=0.5
|
||||||
|
minValue=-6.0
|
||||||
|
offset=0.0
|
||||||
|
precision=5
|
||||||
|
resolution=0.00125
|
||||||
|
scale=1.0
|
||||||
|
unit=mm
|
||||||
15
devices/slit1V pos blade.properties
Normal file
15
devices/slit1V pos blade.properties
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
#Tue Aug 18 14:32:23 CEST 2015
|
||||||
|
accessType=ReadWrite
|
||||||
|
defaultSpeed=1.5
|
||||||
|
estbilizationDelay=0
|
||||||
|
hasEnable=false
|
||||||
|
homingType=None
|
||||||
|
maxSpeed=NaN
|
||||||
|
maxValue=6.0
|
||||||
|
minSpeed=0.5
|
||||||
|
minValue=-6.0
|
||||||
|
offset=0.0
|
||||||
|
precision=5
|
||||||
|
resolution=0.00125
|
||||||
|
scale=1.0
|
||||||
|
unit=mm
|
||||||
15
devices/slit2H neg blade.properties
Normal file
15
devices/slit2H neg blade.properties
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
#Tue Aug 18 14:32:48 CEST 2015
|
||||||
|
accessType=ReadWrite
|
||||||
|
defaultSpeed=5.0
|
||||||
|
estbilizationDelay=0
|
||||||
|
hasEnable=false
|
||||||
|
homingType=None
|
||||||
|
maxSpeed=NaN
|
||||||
|
maxValue=10.0
|
||||||
|
minSpeed=0.5
|
||||||
|
minValue=-10.0
|
||||||
|
offset=0.0
|
||||||
|
precision=5
|
||||||
|
resolution=0.0025
|
||||||
|
scale=1.0
|
||||||
|
unit=mm
|
||||||
15
devices/slit2H pos blade.properties
Normal file
15
devices/slit2H pos blade.properties
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
#Tue Aug 18 14:32:44 CEST 2015
|
||||||
|
accessType=ReadWrite
|
||||||
|
defaultSpeed=5.0
|
||||||
|
estbilizationDelay=0
|
||||||
|
hasEnable=false
|
||||||
|
homingType=None
|
||||||
|
maxSpeed=NaN
|
||||||
|
maxValue=10.0
|
||||||
|
minSpeed=0.5
|
||||||
|
minValue=-10.0
|
||||||
|
offset=0.0
|
||||||
|
precision=5
|
||||||
|
resolution=0.0025
|
||||||
|
scale=1.0
|
||||||
|
unit=mm
|
||||||
15
devices/slit2V neg blade.properties
Normal file
15
devices/slit2V neg blade.properties
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
#Tue Aug 18 14:32:34 CEST 2015
|
||||||
|
accessType=ReadWrite
|
||||||
|
defaultSpeed=5.0
|
||||||
|
estbilizationDelay=0
|
||||||
|
hasEnable=false
|
||||||
|
homingType=None
|
||||||
|
maxSpeed=NaN
|
||||||
|
maxValue=10.0
|
||||||
|
minSpeed=0.5
|
||||||
|
minValue=-10.0
|
||||||
|
offset=0.0
|
||||||
|
precision=5
|
||||||
|
resolution=0.0025
|
||||||
|
scale=1.0
|
||||||
|
unit=mm
|
||||||
15
devices/slit2V pos blade.properties
Normal file
15
devices/slit2V pos blade.properties
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
#Tue Aug 18 14:32:38 CEST 2015
|
||||||
|
accessType=ReadWrite
|
||||||
|
defaultSpeed=5.0
|
||||||
|
estbilizationDelay=0
|
||||||
|
hasEnable=false
|
||||||
|
homingType=None
|
||||||
|
maxSpeed=NaN
|
||||||
|
maxValue=10.0
|
||||||
|
minSpeed=0.5
|
||||||
|
minValue=-10.0
|
||||||
|
offset=0.0
|
||||||
|
precision=5
|
||||||
|
resolution=0.0025
|
||||||
|
scale=1.0
|
||||||
|
unit=mm
|
||||||
12
devices/test.properties
Normal file
12
devices/test.properties
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
#Tue Aug 18 18:06:23 CEST 2015
|
||||||
|
accessType=ReadWrite
|
||||||
|
motor1=0.6016|0.6016|0.5089|0.5511
|
||||||
|
motor2=-133.7286|2.7588|-1.7617|0.5066
|
||||||
|
motor3=null
|
||||||
|
motor4=null
|
||||||
|
motor5=null
|
||||||
|
motor6=null
|
||||||
|
motor7=null
|
||||||
|
motor8=null
|
||||||
|
positions=Park|10um|30um|150um
|
||||||
|
precision=-1
|
||||||
11
devices/video.properties
Normal file
11
devices/video.properties
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
#Fri May 22 16:26:46 CEST 2015
|
||||||
|
flipHorizontally=false
|
||||||
|
flipVertically=false
|
||||||
|
grayscale=false
|
||||||
|
invert=false
|
||||||
|
pollingBackground=false
|
||||||
|
pollingInterval=1000
|
||||||
|
rescaleFactor=1.0
|
||||||
|
rescaleOffset=0.0
|
||||||
|
rotation=0.0
|
||||||
|
scale=1.0
|
||||||
9
devices/x.properties
Normal file
9
devices/x.properties
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
#Tue Dec 01 16:10:38 CET 2015
|
||||||
|
accessType=ReadWrite
|
||||||
|
maxValue=25.0
|
||||||
|
minValue=16.5
|
||||||
|
offset=0.0
|
||||||
|
precision=3
|
||||||
|
resolution=NaN
|
||||||
|
scale=-1.0
|
||||||
|
unit=mm
|
||||||
467
plugins/Microscope.form
Normal file
467
plugins/Microscope.form
Normal file
@@ -0,0 +1,467 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
|
||||||
|
<Form version="1.5" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
|
||||||
|
<AuxValues>
|
||||||
|
<AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
|
||||||
|
<AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
|
||||||
|
<AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
|
||||||
|
<AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
|
||||||
|
<AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
|
||||||
|
<AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
|
||||||
|
<AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
|
||||||
|
<AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
|
||||||
|
<AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
|
||||||
|
</AuxValues>
|
||||||
|
|
||||||
|
<Layout>
|
||||||
|
<DimensionLayout dim="0">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Group type="102" alignment="1" attributes="0">
|
||||||
|
<Component id="renderer" pref="512" max="32767" attributes="0"/>
|
||||||
|
<EmptySpace type="unrelated" max="-2" attributes="0"/>
|
||||||
|
<Group type="103" groupAlignment="0" max="-2" attributes="0">
|
||||||
|
<Component id="jPanel1" linkSize="1" max="32767" attributes="0"/>
|
||||||
|
<Component id="jPanel2" linkSize="1" alignment="0" max="32767" attributes="0"/>
|
||||||
|
<Component id="motorPanel1" linkSize="1" alignment="0" max="32767" attributes="0"/>
|
||||||
|
<Component id="motorPanel2" linkSize="1" alignment="0" max="32767" attributes="0"/>
|
||||||
|
<Component id="processVariablePanel1" linkSize="1" alignment="0" pref="324" max="32767" attributes="0"/>
|
||||||
|
<Component id="processVariablePanel2" linkSize="1" alignment="0" pref="324" max="32767" attributes="0"/>
|
||||||
|
<Component id="jPanel4" alignment="0" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
<DimensionLayout dim="1">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Group type="102" attributes="0">
|
||||||
|
<Component id="renderer" max="32767" attributes="0"/>
|
||||||
|
<EmptySpace min="-2" pref="5" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
<Group type="102" alignment="1" attributes="0">
|
||||||
|
<Component id="motorPanel1" min="-2" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace min="-2" max="-2" attributes="0"/>
|
||||||
|
<Component id="motorPanel2" min="-2" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace min="-2" max="-2" attributes="0"/>
|
||||||
|
<Component id="processVariablePanel1" min="-2" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace min="-2" max="-2" attributes="0"/>
|
||||||
|
<Component id="processVariablePanel2" min="-2" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
<Component id="jPanel2" min="-2" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace max="32767" attributes="0"/>
|
||||||
|
<Component id="jPanel1" min="-2" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace max="32767" attributes="0"/>
|
||||||
|
<Component id="jPanel4" min="-2" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
</Layout>
|
||||||
|
<SubComponents>
|
||||||
|
<Component class="ch.psi.pshell.imaging.Renderer" name="renderer">
|
||||||
|
<Properties>
|
||||||
|
<Property name="autoscrolls" type="boolean" value="true"/>
|
||||||
|
<Property name="deviceName" type="java.lang.String" value="mic-high"/>
|
||||||
|
<Property name="mode" type="ch.psi.pshell.imaging.RendererMode" editor="org.netbeans.modules.form.editors.EnumEditor">
|
||||||
|
<Value id="Fixed"/>
|
||||||
|
</Property>
|
||||||
|
<Property name="showStatus" type="boolean" value="false"/>
|
||||||
|
</Properties>
|
||||||
|
</Component>
|
||||||
|
<Component class="ch.psi.pshell.swing.MotorPanel" name="motorPanel1">
|
||||||
|
<Properties>
|
||||||
|
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
|
||||||
|
<Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
|
||||||
|
<TitledBorder/>
|
||||||
|
</Border>
|
||||||
|
</Property>
|
||||||
|
<Property name="decimals" type="int" value="2"/>
|
||||||
|
<Property name="deviceName" type="java.lang.String" value="cy"/>
|
||||||
|
<Property name="showHoming" type="boolean" value="false"/>
|
||||||
|
<Property name="showJog" type="boolean" value="false"/>
|
||||||
|
<Property name="showStatus" type="boolean" value="false"/>
|
||||||
|
<Property name="showTitle" type="boolean" value="true"/>
|
||||||
|
</Properties>
|
||||||
|
</Component>
|
||||||
|
<Component class="ch.psi.pshell.swing.ProcessVariablePanel" name="processVariablePanel1">
|
||||||
|
<Properties>
|
||||||
|
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
|
||||||
|
<Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
|
||||||
|
<TitledBorder/>
|
||||||
|
</Border>
|
||||||
|
</Property>
|
||||||
|
<Property name="decimals" type="int" value="2"/>
|
||||||
|
<Property name="deviceName" type="java.lang.String" value="x"/>
|
||||||
|
<Property name="showLimitButtons" type="boolean" value="false"/>
|
||||||
|
<Property name="showSlider" type="boolean" value="false"/>
|
||||||
|
<Property name="showTitle" type="boolean" value="true"/>
|
||||||
|
<Property name="stepIncrement" type="double" value="0.001"/>
|
||||||
|
<Property name="stepSize" type="double" value="0.01"/>
|
||||||
|
</Properties>
|
||||||
|
</Component>
|
||||||
|
<Component class="ch.psi.pshell.swing.MotorPanel" name="motorPanel2">
|
||||||
|
<Properties>
|
||||||
|
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
|
||||||
|
<Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
|
||||||
|
<TitledBorder/>
|
||||||
|
</Border>
|
||||||
|
</Property>
|
||||||
|
<Property name="decimals" type="int" value="2"/>
|
||||||
|
<Property name="deviceName" type="java.lang.String" value="cz"/>
|
||||||
|
<Property name="showHoming" type="boolean" value="false"/>
|
||||||
|
<Property name="showJog" type="boolean" value="false"/>
|
||||||
|
<Property name="showStatus" type="boolean" value="false"/>
|
||||||
|
<Property name="showTitle" type="boolean" value="true"/>
|
||||||
|
</Properties>
|
||||||
|
</Component>
|
||||||
|
<Component class="ch.psi.pshell.swing.ProcessVariablePanel" name="processVariablePanel2">
|
||||||
|
<Properties>
|
||||||
|
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
|
||||||
|
<Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
|
||||||
|
<TitledBorder/>
|
||||||
|
</Border>
|
||||||
|
</Property>
|
||||||
|
<Property name="decimals" type="int" value="2"/>
|
||||||
|
<Property name="deviceName" type="java.lang.String" value="omega"/>
|
||||||
|
<Property name="showLimitButtons" type="boolean" value="false"/>
|
||||||
|
<Property name="showSlider" type="boolean" value="false"/>
|
||||||
|
<Property name="showTitle" type="boolean" value="true"/>
|
||||||
|
<Property name="stepIncrement" type="double" value="10.0"/>
|
||||||
|
<Property name="stepSize" type="double" value="90.0"/>
|
||||||
|
</Properties>
|
||||||
|
</Component>
|
||||||
|
<Container class="javax.swing.JPanel" name="jPanel1">
|
||||||
|
<Properties>
|
||||||
|
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
|
||||||
|
<Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
|
||||||
|
<TitledBorder title="Alignment"/>
|
||||||
|
</Border>
|
||||||
|
</Property>
|
||||||
|
</Properties>
|
||||||
|
|
||||||
|
<Layout>
|
||||||
|
<DimensionLayout dim="0">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Group type="102" alignment="1" attributes="0">
|
||||||
|
<EmptySpace min="0" pref="0" max="32767" attributes="0"/>
|
||||||
|
<Component id="jLabel1" min="-2" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
<Component id="spinnerStepAlignment" min="-2" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
<Group type="102" attributes="0">
|
||||||
|
<EmptySpace pref="65" max="32767" attributes="0"/>
|
||||||
|
<Group type="103" groupAlignment="0" max="-2" attributes="0">
|
||||||
|
<Component id="jPanel3" max="32767" attributes="0"/>
|
||||||
|
<Component id="jPanel5" max="32767" attributes="0"/>
|
||||||
|
<Component id="jPanel6" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
<EmptySpace pref="66" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
<DimensionLayout dim="1">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Group type="102" alignment="0" attributes="0">
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
<Component id="jPanel5" min="-2" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace min="-2" pref="12" max="-2" attributes="0"/>
|
||||||
|
<Component id="jPanel3" min="-2" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace type="unrelated" max="-2" attributes="0"/>
|
||||||
|
<Component id="jPanel6" min="-2" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
<Group type="103" groupAlignment="3" attributes="0">
|
||||||
|
<Component id="jLabel1" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||||
|
<Component id="spinnerStepAlignment" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
<EmptySpace min="-2" pref="4" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
</Layout>
|
||||||
|
<SubComponents>
|
||||||
|
<Container class="javax.swing.JPanel" name="jPanel3">
|
||||||
|
|
||||||
|
<Layout>
|
||||||
|
<DimensionLayout dim="0">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Group type="102" attributes="0">
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
<Component id="buttonLeft" min="-2" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace min="77" pref="77" max="-2" attributes="0"/>
|
||||||
|
<Component id="buttonRight" min="-2" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
<DimensionLayout dim="1">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Group type="102" attributes="0">
|
||||||
|
<EmptySpace min="0" pref="0" max="-2" attributes="0"/>
|
||||||
|
<Group type="103" groupAlignment="3" attributes="0">
|
||||||
|
<Component id="buttonRight" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||||
|
<Component id="buttonLeft" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
</Layout>
|
||||||
|
<SubComponents>
|
||||||
|
<Component class="javax.swing.JButton" name="buttonLeft">
|
||||||
|
<Properties>
|
||||||
|
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
|
||||||
|
<Font name="Dialog" size="12" style="0"/>
|
||||||
|
</Property>
|
||||||
|
<Property name="text" type="java.lang.String" value="<"/>
|
||||||
|
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||||
|
<Dimension value="[65, 25]"/>
|
||||||
|
</Property>
|
||||||
|
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||||
|
<Dimension value="[65, 30]"/>
|
||||||
|
</Property>
|
||||||
|
</Properties>
|
||||||
|
<Events>
|
||||||
|
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonLeftActionPerformed"/>
|
||||||
|
</Events>
|
||||||
|
</Component>
|
||||||
|
<Component class="javax.swing.JButton" name="buttonRight">
|
||||||
|
<Properties>
|
||||||
|
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
|
||||||
|
<Font name="Dialog" size="12" style="0"/>
|
||||||
|
</Property>
|
||||||
|
<Property name="text" type="java.lang.String" value=">"/>
|
||||||
|
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||||
|
<Dimension value="[65, 25]"/>
|
||||||
|
</Property>
|
||||||
|
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||||
|
<Dimension value="[65, 30]"/>
|
||||||
|
</Property>
|
||||||
|
</Properties>
|
||||||
|
<Events>
|
||||||
|
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonRightActionPerformed"/>
|
||||||
|
</Events>
|
||||||
|
</Component>
|
||||||
|
</SubComponents>
|
||||||
|
</Container>
|
||||||
|
<Component class="javax.swing.JLabel" name="jLabel1">
|
||||||
|
<Properties>
|
||||||
|
<Property name="text" type="java.lang.String" value="Step:"/>
|
||||||
|
</Properties>
|
||||||
|
</Component>
|
||||||
|
<Component class="javax.swing.JSpinner" name="spinnerStepAlignment">
|
||||||
|
<Properties>
|
||||||
|
<Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor">
|
||||||
|
<SpinnerModel initial="0.01" maximum="1.0" minimum="0.001" numberType="java.lang.Double" stepSize="0.01" type="number"/>
|
||||||
|
</Property>
|
||||||
|
</Properties>
|
||||||
|
</Component>
|
||||||
|
<Container class="javax.swing.JPanel" name="jPanel5">
|
||||||
|
|
||||||
|
<Layout>
|
||||||
|
<DimensionLayout dim="0">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Group type="102" attributes="0">
|
||||||
|
<EmptySpace max="32767" attributes="0"/>
|
||||||
|
<Component id="buttonUp" min="-2" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
<DimensionLayout dim="1">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Group type="102" attributes="0">
|
||||||
|
<EmptySpace min="0" pref="0" max="-2" attributes="0"/>
|
||||||
|
<Component id="buttonUp" min="-2" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace min="0" pref="0" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
</Layout>
|
||||||
|
<SubComponents>
|
||||||
|
<Component class="javax.swing.JButton" name="buttonUp">
|
||||||
|
<Properties>
|
||||||
|
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
|
||||||
|
<Font name="Dialog" size="12" style="0"/>
|
||||||
|
</Property>
|
||||||
|
<Property name="text" type="java.lang.String" value="^"/>
|
||||||
|
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||||
|
<Dimension value="[65, 25]"/>
|
||||||
|
</Property>
|
||||||
|
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||||
|
<Dimension value="[65, 30]"/>
|
||||||
|
</Property>
|
||||||
|
</Properties>
|
||||||
|
<Events>
|
||||||
|
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonUpActionPerformed"/>
|
||||||
|
</Events>
|
||||||
|
</Component>
|
||||||
|
</SubComponents>
|
||||||
|
</Container>
|
||||||
|
<Container class="javax.swing.JPanel" name="jPanel6">
|
||||||
|
|
||||||
|
<Layout>
|
||||||
|
<DimensionLayout dim="0">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Group type="102" attributes="0">
|
||||||
|
<EmptySpace max="32767" attributes="0"/>
|
||||||
|
<Component id="buttonDown" min="-2" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
<DimensionLayout dim="1">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Group type="102" attributes="0">
|
||||||
|
<EmptySpace min="0" pref="0" max="-2" attributes="0"/>
|
||||||
|
<Component id="buttonDown" min="-2" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace min="0" pref="0" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
</Layout>
|
||||||
|
<SubComponents>
|
||||||
|
<Component class="javax.swing.JButton" name="buttonDown">
|
||||||
|
<Properties>
|
||||||
|
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
|
||||||
|
<Font name="Dialog" size="12" style="0"/>
|
||||||
|
</Property>
|
||||||
|
<Property name="text" type="java.lang.String" value="v"/>
|
||||||
|
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||||
|
<Dimension value="[65, 25]"/>
|
||||||
|
</Property>
|
||||||
|
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||||
|
<Dimension value="[65, 30]"/>
|
||||||
|
</Property>
|
||||||
|
</Properties>
|
||||||
|
<Events>
|
||||||
|
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonDownActionPerformed"/>
|
||||||
|
</Events>
|
||||||
|
</Component>
|
||||||
|
</SubComponents>
|
||||||
|
</Container>
|
||||||
|
</SubComponents>
|
||||||
|
</Container>
|
||||||
|
<Container class="javax.swing.JPanel" name="jPanel2">
|
||||||
|
|
||||||
|
<Layout>
|
||||||
|
<DimensionLayout dim="0">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Group type="102" attributes="0">
|
||||||
|
<EmptySpace min="0" pref="0" max="-2" attributes="0"/>
|
||||||
|
<Component id="button0" linkSize="2" min="-2" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace pref="46" max="32767" attributes="0"/>
|
||||||
|
<Component id="button90" linkSize="2" min="-2" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace pref="46" max="32767" attributes="0"/>
|
||||||
|
<Component id="button180" linkSize="2" min="-2" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace pref="48" max="32767" attributes="0"/>
|
||||||
|
<Component id="button270" linkSize="2" min="-2" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace min="0" pref="0" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
<DimensionLayout dim="1">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Group type="102" attributes="0">
|
||||||
|
<EmptySpace min="0" pref="0" max="-2" attributes="0"/>
|
||||||
|
<Group type="103" groupAlignment="3" attributes="0">
|
||||||
|
<Component id="button0" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||||
|
<Component id="button90" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||||
|
<Component id="button180" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||||
|
<Component id="button270" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
</Layout>
|
||||||
|
<SubComponents>
|
||||||
|
<Component class="javax.swing.JButton" name="button0">
|
||||||
|
<Properties>
|
||||||
|
<Property name="text" type="java.lang.String" value="0"/>
|
||||||
|
</Properties>
|
||||||
|
<Events>
|
||||||
|
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="button0ActionPerformed"/>
|
||||||
|
</Events>
|
||||||
|
</Component>
|
||||||
|
<Component class="javax.swing.JButton" name="button270">
|
||||||
|
<Properties>
|
||||||
|
<Property name="text" type="java.lang.String" value="270"/>
|
||||||
|
</Properties>
|
||||||
|
<Events>
|
||||||
|
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="button270ActionPerformed"/>
|
||||||
|
</Events>
|
||||||
|
</Component>
|
||||||
|
<Component class="javax.swing.JButton" name="button180">
|
||||||
|
<Properties>
|
||||||
|
<Property name="text" type="java.lang.String" value="180"/>
|
||||||
|
</Properties>
|
||||||
|
<Events>
|
||||||
|
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="button180ActionPerformed"/>
|
||||||
|
</Events>
|
||||||
|
</Component>
|
||||||
|
<Component class="javax.swing.JButton" name="button90">
|
||||||
|
<Properties>
|
||||||
|
<Property name="text" type="java.lang.String" value="90"/>
|
||||||
|
</Properties>
|
||||||
|
<Events>
|
||||||
|
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="button90ActionPerformed"/>
|
||||||
|
</Events>
|
||||||
|
</Component>
|
||||||
|
</SubComponents>
|
||||||
|
</Container>
|
||||||
|
<Container class="javax.swing.JPanel" name="jPanel4">
|
||||||
|
<Properties>
|
||||||
|
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
|
||||||
|
<Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
|
||||||
|
<TitledBorder title="Camera"/>
|
||||||
|
</Border>
|
||||||
|
</Property>
|
||||||
|
</Properties>
|
||||||
|
|
||||||
|
<Layout>
|
||||||
|
<DimensionLayout dim="0">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Group type="102" attributes="0">
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
<Component id="checkHighDef" min="-2" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace max="32767" attributes="0"/>
|
||||||
|
<Component id="buttonDefineBeam" min="-2" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
<DimensionLayout dim="1">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Group type="102" attributes="0">
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
<Group type="103" groupAlignment="3" attributes="0">
|
||||||
|
<Component id="buttonDefineBeam" alignment="3" min="-2" pref="25" max="-2" attributes="0"/>
|
||||||
|
<Component id="checkHighDef" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
<EmptySpace min="-2" pref="4" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
</Layout>
|
||||||
|
<SubComponents>
|
||||||
|
<Component class="javax.swing.JButton" name="buttonDefineBeam">
|
||||||
|
<Properties>
|
||||||
|
<Property name="text" type="java.lang.String" value="Define Beam"/>
|
||||||
|
</Properties>
|
||||||
|
<Events>
|
||||||
|
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonDefineBeamActionPerformed"/>
|
||||||
|
</Events>
|
||||||
|
</Component>
|
||||||
|
<Component class="javax.swing.JCheckBox" name="checkHighDef">
|
||||||
|
<Properties>
|
||||||
|
<Property name="selected" type="boolean" value="true"/>
|
||||||
|
<Property name="text" type="java.lang.String" value="High definition"/>
|
||||||
|
</Properties>
|
||||||
|
<Events>
|
||||||
|
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="checkHighDefActionPerformed"/>
|
||||||
|
</Events>
|
||||||
|
</Component>
|
||||||
|
</SubComponents>
|
||||||
|
</Container>
|
||||||
|
</SubComponents>
|
||||||
|
</Form>
|
||||||
541
plugins/Microscope.java
Normal file
541
plugins/Microscope.java
Normal file
@@ -0,0 +1,541 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2014 Paul Scherrer Institute. All rights reserved.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
import ch.psi.pshell.device.Motor;
|
||||||
|
import ch.psi.pshell.device.Positionable;
|
||||||
|
import ch.psi.pshell.imaging.Overlay;
|
||||||
|
import ch.psi.pshell.imaging.Overlays;
|
||||||
|
import ch.psi.pshell.imaging.Pen;
|
||||||
|
import ch.psi.pshell.imaging.Renderer;
|
||||||
|
import ch.psi.pshell.imaging.RendererListener;
|
||||||
|
import ch.psi.pshell.ui.Panel;
|
||||||
|
import ch.psi.utils.State;
|
||||||
|
import java.awt.Color;
|
||||||
|
import java.nio.file.Paths;
|
||||||
|
import java.util.logging.Level;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class Microscope extends Panel {
|
||||||
|
public Microscope() {
|
||||||
|
initComponents();
|
||||||
|
}
|
||||||
|
|
||||||
|
//Overridable callbacks
|
||||||
|
@Override
|
||||||
|
public void onInitialize(int runCount) {
|
||||||
|
renderer.setPersistenceFile(Paths.get(getController().getSetup().getContextPath(), "BeamMarker.bin"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onStateChange(State state, State former) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onExecutedFile(String fileName, Object result) {
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//Callback to perform update - in event thread
|
||||||
|
@Override
|
||||||
|
protected void doUpdate() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
|
||||||
|
private void initComponents() {
|
||||||
|
|
||||||
|
renderer = new ch.psi.pshell.imaging.Renderer();
|
||||||
|
motorPanel1 = new ch.psi.pshell.swing.MotorPanel();
|
||||||
|
processVariablePanel1 = new ch.psi.pshell.swing.ProcessVariablePanel();
|
||||||
|
motorPanel2 = new ch.psi.pshell.swing.MotorPanel();
|
||||||
|
processVariablePanel2 = new ch.psi.pshell.swing.ProcessVariablePanel();
|
||||||
|
jPanel1 = new javax.swing.JPanel();
|
||||||
|
jPanel3 = new javax.swing.JPanel();
|
||||||
|
buttonLeft = new javax.swing.JButton();
|
||||||
|
buttonRight = new javax.swing.JButton();
|
||||||
|
jLabel1 = new javax.swing.JLabel();
|
||||||
|
spinnerStepAlignment = new javax.swing.JSpinner();
|
||||||
|
jPanel5 = new javax.swing.JPanel();
|
||||||
|
buttonUp = new javax.swing.JButton();
|
||||||
|
jPanel6 = new javax.swing.JPanel();
|
||||||
|
buttonDown = new javax.swing.JButton();
|
||||||
|
jPanel2 = new javax.swing.JPanel();
|
||||||
|
button0 = new javax.swing.JButton();
|
||||||
|
button270 = new javax.swing.JButton();
|
||||||
|
button180 = new javax.swing.JButton();
|
||||||
|
button90 = new javax.swing.JButton();
|
||||||
|
jPanel4 = new javax.swing.JPanel();
|
||||||
|
buttonDefineBeam = new javax.swing.JButton();
|
||||||
|
checkHighDef = new javax.swing.JCheckBox();
|
||||||
|
|
||||||
|
renderer.setAutoscrolls(true);
|
||||||
|
renderer.setDeviceName("mic-high");
|
||||||
|
renderer.setMode(ch.psi.pshell.imaging.RendererMode.Fixed);
|
||||||
|
renderer.setShowStatus(false);
|
||||||
|
|
||||||
|
motorPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("cy"));
|
||||||
|
motorPanel1.setDecimals(2);
|
||||||
|
motorPanel1.setDeviceName("cy");
|
||||||
|
motorPanel1.setShowHoming(false);
|
||||||
|
motorPanel1.setShowJog(false);
|
||||||
|
motorPanel1.setShowStatus(false);
|
||||||
|
motorPanel1.setShowTitle(true);
|
||||||
|
|
||||||
|
processVariablePanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("x"));
|
||||||
|
processVariablePanel1.setDecimals(2);
|
||||||
|
processVariablePanel1.setDeviceName("x");
|
||||||
|
processVariablePanel1.setShowLimitButtons(false);
|
||||||
|
processVariablePanel1.setShowSlider(false);
|
||||||
|
processVariablePanel1.setShowTitle(true);
|
||||||
|
processVariablePanel1.setStepIncrement(0.001);
|
||||||
|
processVariablePanel1.setStepSize(0.01);
|
||||||
|
|
||||||
|
motorPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("cz"));
|
||||||
|
motorPanel2.setDecimals(2);
|
||||||
|
motorPanel2.setDeviceName("cz");
|
||||||
|
motorPanel2.setShowHoming(false);
|
||||||
|
motorPanel2.setShowJog(false);
|
||||||
|
motorPanel2.setShowStatus(false);
|
||||||
|
motorPanel2.setShowTitle(true);
|
||||||
|
|
||||||
|
processVariablePanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("omega"));
|
||||||
|
processVariablePanel2.setDecimals(2);
|
||||||
|
processVariablePanel2.setDeviceName("omega");
|
||||||
|
processVariablePanel2.setShowLimitButtons(false);
|
||||||
|
processVariablePanel2.setShowSlider(false);
|
||||||
|
processVariablePanel2.setShowTitle(true);
|
||||||
|
processVariablePanel2.setStepIncrement(10.0);
|
||||||
|
processVariablePanel2.setStepSize(90.0);
|
||||||
|
|
||||||
|
jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Alignment"));
|
||||||
|
|
||||||
|
buttonLeft.setFont(new java.awt.Font("Dialog", 0, 12)); // NOI18N
|
||||||
|
buttonLeft.setText("<");
|
||||||
|
buttonLeft.setMinimumSize(new java.awt.Dimension(65, 25));
|
||||||
|
buttonLeft.setPreferredSize(new java.awt.Dimension(65, 30));
|
||||||
|
buttonLeft.addActionListener(new java.awt.event.ActionListener() {
|
||||||
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||||
|
buttonLeftActionPerformed(evt);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
buttonRight.setFont(new java.awt.Font("Dialog", 0, 12)); // NOI18N
|
||||||
|
buttonRight.setText(">");
|
||||||
|
buttonRight.setMinimumSize(new java.awt.Dimension(65, 25));
|
||||||
|
buttonRight.setPreferredSize(new java.awt.Dimension(65, 30));
|
||||||
|
buttonRight.addActionListener(new java.awt.event.ActionListener() {
|
||||||
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||||
|
buttonRightActionPerformed(evt);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
|
||||||
|
jPanel3.setLayout(jPanel3Layout);
|
||||||
|
jPanel3Layout.setHorizontalGroup(
|
||||||
|
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGroup(jPanel3Layout.createSequentialGroup()
|
||||||
|
.addContainerGap()
|
||||||
|
.addComponent(buttonLeft, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addGap(77, 77, 77)
|
||||||
|
.addComponent(buttonRight, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addContainerGap())
|
||||||
|
);
|
||||||
|
jPanel3Layout.setVerticalGroup(
|
||||||
|
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGroup(jPanel3Layout.createSequentialGroup()
|
||||||
|
.addGap(0, 0, 0)
|
||||||
|
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||||
|
.addComponent(buttonRight, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addComponent(buttonLeft, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
|
||||||
|
);
|
||||||
|
|
||||||
|
jLabel1.setText("Step:");
|
||||||
|
|
||||||
|
spinnerStepAlignment.setModel(new javax.swing.SpinnerNumberModel(0.01d, 0.001d, 1.0d, 0.01d));
|
||||||
|
|
||||||
|
buttonUp.setFont(new java.awt.Font("Dialog", 0, 12)); // NOI18N
|
||||||
|
buttonUp.setText("^");
|
||||||
|
buttonUp.setMinimumSize(new java.awt.Dimension(65, 25));
|
||||||
|
buttonUp.setPreferredSize(new java.awt.Dimension(65, 30));
|
||||||
|
buttonUp.addActionListener(new java.awt.event.ActionListener() {
|
||||||
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||||
|
buttonUpActionPerformed(evt);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5);
|
||||||
|
jPanel5.setLayout(jPanel5Layout);
|
||||||
|
jPanel5Layout.setHorizontalGroup(
|
||||||
|
jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGroup(jPanel5Layout.createSequentialGroup()
|
||||||
|
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||||
|
.addComponent(buttonUp, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||||
|
);
|
||||||
|
jPanel5Layout.setVerticalGroup(
|
||||||
|
jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGroup(jPanel5Layout.createSequentialGroup()
|
||||||
|
.addGap(0, 0, 0)
|
||||||
|
.addComponent(buttonUp, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addGap(0, 0, 0))
|
||||||
|
);
|
||||||
|
|
||||||
|
buttonDown.setFont(new java.awt.Font("Dialog", 0, 12)); // NOI18N
|
||||||
|
buttonDown.setText("v");
|
||||||
|
buttonDown.setMinimumSize(new java.awt.Dimension(65, 25));
|
||||||
|
buttonDown.setPreferredSize(new java.awt.Dimension(65, 30));
|
||||||
|
buttonDown.addActionListener(new java.awt.event.ActionListener() {
|
||||||
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||||
|
buttonDownActionPerformed(evt);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
javax.swing.GroupLayout jPanel6Layout = new javax.swing.GroupLayout(jPanel6);
|
||||||
|
jPanel6.setLayout(jPanel6Layout);
|
||||||
|
jPanel6Layout.setHorizontalGroup(
|
||||||
|
jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGroup(jPanel6Layout.createSequentialGroup()
|
||||||
|
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||||
|
.addComponent(buttonDown, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||||
|
);
|
||||||
|
jPanel6Layout.setVerticalGroup(
|
||||||
|
jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGroup(jPanel6Layout.createSequentialGroup()
|
||||||
|
.addGap(0, 0, 0)
|
||||||
|
.addComponent(buttonDown, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addGap(0, 0, 0))
|
||||||
|
);
|
||||||
|
|
||||||
|
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
|
||||||
|
jPanel1.setLayout(jPanel1Layout);
|
||||||
|
jPanel1Layout.setHorizontalGroup(
|
||||||
|
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
|
||||||
|
.addGap(0, 0, Short.MAX_VALUE)
|
||||||
|
.addComponent(jLabel1)
|
||||||
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||||
|
.addComponent(spinnerStepAlignment, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addContainerGap())
|
||||||
|
.addGroup(jPanel1Layout.createSequentialGroup()
|
||||||
|
.addContainerGap(65, Short.MAX_VALUE)
|
||||||
|
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
|
||||||
|
.addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||||
|
.addComponent(jPanel5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||||
|
.addComponent(jPanel6, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||||
|
.addContainerGap(66, Short.MAX_VALUE))
|
||||||
|
);
|
||||||
|
jPanel1Layout.setVerticalGroup(
|
||||||
|
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGroup(jPanel1Layout.createSequentialGroup()
|
||||||
|
.addContainerGap()
|
||||||
|
.addComponent(jPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addGap(12, 12, 12)
|
||||||
|
.addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
||||||
|
.addComponent(jPanel6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||||
|
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||||
|
.addComponent(jLabel1)
|
||||||
|
.addComponent(spinnerStepAlignment, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||||
|
.addGap(4, 4, 4))
|
||||||
|
);
|
||||||
|
|
||||||
|
button0.setText("0");
|
||||||
|
button0.addActionListener(new java.awt.event.ActionListener() {
|
||||||
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||||
|
button0ActionPerformed(evt);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
button270.setText("270");
|
||||||
|
button270.addActionListener(new java.awt.event.ActionListener() {
|
||||||
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||||
|
button270ActionPerformed(evt);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
button180.setText("180");
|
||||||
|
button180.addActionListener(new java.awt.event.ActionListener() {
|
||||||
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||||
|
button180ActionPerformed(evt);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
button90.setText("90");
|
||||||
|
button90.addActionListener(new java.awt.event.ActionListener() {
|
||||||
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||||
|
button90ActionPerformed(evt);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
|
||||||
|
jPanel2.setLayout(jPanel2Layout);
|
||||||
|
jPanel2Layout.setHorizontalGroup(
|
||||||
|
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGroup(jPanel2Layout.createSequentialGroup()
|
||||||
|
.addGap(0, 0, 0)
|
||||||
|
.addComponent(button0)
|
||||||
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 46, Short.MAX_VALUE)
|
||||||
|
.addComponent(button90)
|
||||||
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 46, Short.MAX_VALUE)
|
||||||
|
.addComponent(button180)
|
||||||
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 48, Short.MAX_VALUE)
|
||||||
|
.addComponent(button270)
|
||||||
|
.addGap(0, 0, 0))
|
||||||
|
);
|
||||||
|
|
||||||
|
jPanel2Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {button0, button180, button270, button90});
|
||||||
|
|
||||||
|
jPanel2Layout.setVerticalGroup(
|
||||||
|
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGroup(jPanel2Layout.createSequentialGroup()
|
||||||
|
.addGap(0, 0, 0)
|
||||||
|
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||||
|
.addComponent(button0)
|
||||||
|
.addComponent(button90)
|
||||||
|
.addComponent(button180)
|
||||||
|
.addComponent(button270))
|
||||||
|
.addContainerGap())
|
||||||
|
);
|
||||||
|
|
||||||
|
jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder("Camera"));
|
||||||
|
|
||||||
|
buttonDefineBeam.setText("Define Beam");
|
||||||
|
buttonDefineBeam.addActionListener(new java.awt.event.ActionListener() {
|
||||||
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||||
|
buttonDefineBeamActionPerformed(evt);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
checkHighDef.setSelected(true);
|
||||||
|
checkHighDef.setText("High definition");
|
||||||
|
checkHighDef.addActionListener(new java.awt.event.ActionListener() {
|
||||||
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||||
|
checkHighDefActionPerformed(evt);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
|
||||||
|
jPanel4.setLayout(jPanel4Layout);
|
||||||
|
jPanel4Layout.setHorizontalGroup(
|
||||||
|
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGroup(jPanel4Layout.createSequentialGroup()
|
||||||
|
.addContainerGap()
|
||||||
|
.addComponent(checkHighDef)
|
||||||
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||||
|
.addComponent(buttonDefineBeam)
|
||||||
|
.addContainerGap())
|
||||||
|
);
|
||||||
|
jPanel4Layout.setVerticalGroup(
|
||||||
|
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGroup(jPanel4Layout.createSequentialGroup()
|
||||||
|
.addContainerGap()
|
||||||
|
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||||
|
.addComponent(buttonDefineBeam, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addComponent(checkHighDef))
|
||||||
|
.addGap(4, 4, 4))
|
||||||
|
);
|
||||||
|
|
||||||
|
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
|
||||||
|
this.setLayout(layout);
|
||||||
|
layout.setHorizontalGroup(
|
||||||
|
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
|
||||||
|
.addComponent(renderer, javax.swing.GroupLayout.DEFAULT_SIZE, 512, Short.MAX_VALUE)
|
||||||
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
||||||
|
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
|
||||||
|
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||||
|
.addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||||
|
.addComponent(motorPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||||
|
.addComponent(motorPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||||
|
.addComponent(processVariablePanel1, javax.swing.GroupLayout.DEFAULT_SIZE, 324, Short.MAX_VALUE)
|
||||||
|
.addComponent(processVariablePanel2, javax.swing.GroupLayout.DEFAULT_SIZE, 324, Short.MAX_VALUE)
|
||||||
|
.addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||||
|
.addContainerGap())
|
||||||
|
);
|
||||||
|
|
||||||
|
layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jPanel1, jPanel2, motorPanel1, motorPanel2, processVariablePanel1, processVariablePanel2});
|
||||||
|
|
||||||
|
layout.setVerticalGroup(
|
||||||
|
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGroup(layout.createSequentialGroup()
|
||||||
|
.addComponent(renderer, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||||
|
.addGap(5, 5, 5))
|
||||||
|
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
|
||||||
|
.addComponent(motorPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||||
|
.addComponent(motorPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||||
|
.addComponent(processVariablePanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||||
|
.addComponent(processVariablePanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||||
|
.addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||||
|
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||||
|
.addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addContainerGap())
|
||||||
|
);
|
||||||
|
}// </editor-fold>//GEN-END:initComponents
|
||||||
|
|
||||||
|
Overlay beam;
|
||||||
|
|
||||||
|
private void buttonDefineBeamActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonDefineBeamActionPerformed
|
||||||
|
try{
|
||||||
|
Pen pen = new Pen(Color.RED);
|
||||||
|
final Overlay selection = new Overlays.Rect(pen);
|
||||||
|
|
||||||
|
renderer.addListener(new RendererListener() {
|
||||||
|
@Override
|
||||||
|
public void onSelectionFinished(Renderer renderer, Overlay overlay) {
|
||||||
|
System.out.println(overlay + " - " + selection + " - " + (overlay == selection));
|
||||||
|
if (overlay == selection){
|
||||||
|
try {
|
||||||
|
if (overlay.getLength() > 0) {
|
||||||
|
beam = overlay.copy();
|
||||||
|
beam.setPen(pen);
|
||||||
|
beam.setSolid(false);
|
||||||
|
beam.setMovable(true);
|
||||||
|
renderer.setMarker(beam);
|
||||||
|
}
|
||||||
|
} catch (Exception ex) {
|
||||||
|
getLogger().log(Level.WARNING, null, ex);
|
||||||
|
} finally {
|
||||||
|
renderer.removeListener(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public void onSelectionAborted(Renderer renderer, Overlay overlay) {
|
||||||
|
if (overlay == selection){
|
||||||
|
renderer.removeListener(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
renderer.removeOverlay(beam);
|
||||||
|
renderer.startSelection(selection);
|
||||||
|
|
||||||
|
} catch (Exception ex){
|
||||||
|
showException(ex);
|
||||||
|
}
|
||||||
|
|
||||||
|
}//GEN-LAST:event_buttonDefineBeamActionPerformed
|
||||||
|
|
||||||
|
private void checkHighDefActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_checkHighDefActionPerformed
|
||||||
|
renderer.setDeviceName(checkHighDef.isSelected() ? "mic-high" : "mic-low");
|
||||||
|
}//GEN-LAST:event_checkHighDefActionPerformed
|
||||||
|
|
||||||
|
private void button0ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_button0ActionPerformed
|
||||||
|
try{
|
||||||
|
((Positionable)getDevice("omega")).moveAsync(0.0);
|
||||||
|
} catch (Exception ex){
|
||||||
|
showException(ex);
|
||||||
|
}
|
||||||
|
}//GEN-LAST:event_button0ActionPerformed
|
||||||
|
|
||||||
|
private void button90ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_button90ActionPerformed
|
||||||
|
try{
|
||||||
|
((Positionable)getDevice("omega")).moveAsync(90.0);
|
||||||
|
} catch (Exception ex){
|
||||||
|
showException(ex);
|
||||||
|
}
|
||||||
|
}//GEN-LAST:event_button90ActionPerformed
|
||||||
|
|
||||||
|
private void button180ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_button180ActionPerformed
|
||||||
|
try{
|
||||||
|
((Positionable)getDevice("omega")).moveAsync(180.0);
|
||||||
|
} catch (Exception ex){
|
||||||
|
showException(ex);
|
||||||
|
}
|
||||||
|
}//GEN-LAST:event_button180ActionPerformed
|
||||||
|
|
||||||
|
private void button270ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_button270ActionPerformed
|
||||||
|
try{
|
||||||
|
((Positionable)getDevice("omega")).moveAsync(270.0);
|
||||||
|
} catch (Exception ex){
|
||||||
|
showException(ex);
|
||||||
|
}
|
||||||
|
}//GEN-LAST:event_button270ActionPerformed
|
||||||
|
|
||||||
|
double getStep(){
|
||||||
|
//return 0.01;
|
||||||
|
return (Double)spinnerStepAlignment.getValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void buttonLeftActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonLeftActionPerformed
|
||||||
|
try{
|
||||||
|
((ch.psi.pshell.epics.Positionable)getDevice("x")).moveRelAsync(-getStep());
|
||||||
|
} catch (Exception ex){
|
||||||
|
showException(ex);
|
||||||
|
}
|
||||||
|
}//GEN-LAST:event_buttonLeftActionPerformed
|
||||||
|
|
||||||
|
private void buttonRightActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonRightActionPerformed
|
||||||
|
try{
|
||||||
|
((ch.psi.pshell.epics.Positionable)getDevice("x")).moveRelAsync(getStep());
|
||||||
|
} catch (Exception ex){
|
||||||
|
showException(ex);
|
||||||
|
}
|
||||||
|
}//GEN-LAST:event_buttonRightActionPerformed
|
||||||
|
|
||||||
|
private void buttonUpActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonUpActionPerformed
|
||||||
|
try{
|
||||||
|
doVerticalStep(getStep());
|
||||||
|
} catch (Exception ex){
|
||||||
|
showException(ex);
|
||||||
|
}
|
||||||
|
}//GEN-LAST:event_buttonUpActionPerformed
|
||||||
|
|
||||||
|
private void buttonDownActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonDownActionPerformed
|
||||||
|
try{
|
||||||
|
doVerticalStep(-getStep());
|
||||||
|
} catch (Exception ex){
|
||||||
|
showException(ex);
|
||||||
|
}
|
||||||
|
|
||||||
|
}//GEN-LAST:event_buttonDownActionPerformed
|
||||||
|
|
||||||
|
public void doVerticalStep(double offset) throws Exception
|
||||||
|
{
|
||||||
|
//Todo: create motor group
|
||||||
|
double omega = Math.toRadians((Double) ((Positionable)getDevice("omega")).getPosition());
|
||||||
|
double z = offset * Math.sin(omega);
|
||||||
|
double y = offset * Math.cos(omega);
|
||||||
|
((Motor)getDevice("cy")).moveRelAsync(y);
|
||||||
|
((Motor)getDevice("cz")).moveRelAsync(z);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Variables declaration - do not modify//GEN-BEGIN:variables
|
||||||
|
private javax.swing.JButton button0;
|
||||||
|
private javax.swing.JButton button180;
|
||||||
|
private javax.swing.JButton button270;
|
||||||
|
private javax.swing.JButton button90;
|
||||||
|
private javax.swing.JButton buttonDefineBeam;
|
||||||
|
private javax.swing.JButton buttonDown;
|
||||||
|
private javax.swing.JButton buttonLeft;
|
||||||
|
private javax.swing.JButton buttonRight;
|
||||||
|
private javax.swing.JButton buttonUp;
|
||||||
|
private javax.swing.JCheckBox checkHighDef;
|
||||||
|
private javax.swing.JLabel jLabel1;
|
||||||
|
private javax.swing.JPanel jPanel1;
|
||||||
|
private javax.swing.JPanel jPanel2;
|
||||||
|
private javax.swing.JPanel jPanel3;
|
||||||
|
private javax.swing.JPanel jPanel4;
|
||||||
|
private javax.swing.JPanel jPanel5;
|
||||||
|
private javax.swing.JPanel jPanel6;
|
||||||
|
private ch.psi.pshell.swing.MotorPanel motorPanel1;
|
||||||
|
private ch.psi.pshell.swing.MotorPanel motorPanel2;
|
||||||
|
private ch.psi.pshell.swing.ProcessVariablePanel processVariablePanel1;
|
||||||
|
private ch.psi.pshell.swing.ProcessVariablePanel processVariablePanel2;
|
||||||
|
private ch.psi.pshell.imaging.Renderer renderer;
|
||||||
|
private javax.swing.JSpinner spinnerStepAlignment;
|
||||||
|
// End of variables declaration//GEN-END:variables
|
||||||
|
}
|
||||||
41
script/CollimatorX.py
Normal file
41
script/CollimatorX.py
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
from mathutils import Gaussian,fit_gaussian, calculate_peaks
|
||||||
|
|
||||||
|
##############################################################################################
|
||||||
|
#Setup
|
||||||
|
##############################################################################################
|
||||||
|
#try:
|
||||||
|
# collimator.move("In")
|
||||||
|
#except:
|
||||||
|
# pass
|
||||||
|
|
||||||
|
shutter.write(1)
|
||||||
|
|
||||||
|
step_size = 0.05
|
||||||
|
|
||||||
|
##############################################################################################
|
||||||
|
#Scan
|
||||||
|
##############################################################################################
|
||||||
|
|
||||||
|
result = lscan (collimatorX, diode, -0.3, 0.3 , 30, 0.2, relative = True)
|
||||||
|
shutter.write(0)
|
||||||
|
|
||||||
|
|
||||||
|
##############################################################################################
|
||||||
|
#Peak detection
|
||||||
|
##############################################################################################
|
||||||
|
|
||||||
|
y = result.getReadable(0)
|
||||||
|
x = result.getPositions(0)
|
||||||
|
(normalization, mean, sigma) = fit_gaussian(y, x, True)
|
||||||
|
fitted_gaussian_function = Gaussian(normalization, mean, sigma)
|
||||||
|
print "Mean = " + str(mean)
|
||||||
|
|
||||||
|
|
||||||
|
resolution = step_size/100
|
||||||
|
fit_gaussian = []
|
||||||
|
for p in frange(x[0],x[-1],resolution, True):
|
||||||
|
fit_gaussian.append(fitted_gaussian_function.value(p))
|
||||||
|
gx = frange(x[0], x[-1]+resolution, resolution)
|
||||||
|
|
||||||
|
plots = plot([y, fit_gaussian], ["data", "gaussian"], xdata = [x,gx] )
|
||||||
|
plots[0].addMarker(mean, None, "Mean=" + str(round(mean,2)), None)
|
||||||
45
script/GaussianFit.py
Normal file
45
script/GaussianFit.py
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
"""
|
||||||
|
Multi-peak search and gaussian fitting
|
||||||
|
"""
|
||||||
|
|
||||||
|
from mathutils import estimate_peak_indexes, fit_gaussians, create_fit_point_list
|
||||||
|
|
||||||
|
start = 1
|
||||||
|
end = 30
|
||||||
|
step_size = 0.2
|
||||||
|
|
||||||
|
result= lscan(sout,sinp,start,end,[step_size,],0.05)
|
||||||
|
|
||||||
|
path = get_current_data_group()
|
||||||
|
set_attribute(path, "ApertureX", apertureX.read())
|
||||||
|
|
||||||
|
readable = result.getReadable(0)
|
||||||
|
positions = result.getPositions(0)
|
||||||
|
|
||||||
|
threshold = (min(readable) + max(readable))/2
|
||||||
|
min_peak_distance = 5.0
|
||||||
|
|
||||||
|
peaks = estimate_peak_indexes(readable, positions, threshold, min_peak_distance)
|
||||||
|
print "Peak indexes: " + str(peaks)
|
||||||
|
print "Peak x: " + str(map(lambda x:positions[x], peaks))
|
||||||
|
print "Peak y: " + str(map(lambda x:readable[x], peaks))
|
||||||
|
|
||||||
|
log("Highest peak index = " +str(peaks[0]))
|
||||||
|
|
||||||
|
#Manually adding a dataset
|
||||||
|
data = [ [1,2,3,4,5], [2,3,4,5,6], [3,4,5,6,7]]
|
||||||
|
path="group/data2"
|
||||||
|
save_dataset(path, data)
|
||||||
|
|
||||||
|
gaussians = fit_gaussians(readable, positions, peaks)
|
||||||
|
|
||||||
|
|
||||||
|
plots = plot([readable],["Multi-peak search"],[positions])
|
||||||
|
for i in range(len(peaks)):
|
||||||
|
peak = peaks[i]
|
||||||
|
(norm, mean, sigma) = gaussians[i]
|
||||||
|
if abs(mean - positions[peak]) < min_peak_distance:
|
||||||
|
print "Peak -> " + str(mean)
|
||||||
|
plots[0].addMarker(mean, None, "N="+str(round(norm,2)), None)
|
||||||
|
else:
|
||||||
|
print "Invalid gaussian fit: " + str(mean)
|
||||||
57
script/PolynomialFit.py
Normal file
57
script/PolynomialFit.py
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
"""
|
||||||
|
Function fitting and peak search with mathutils facade
|
||||||
|
"""
|
||||||
|
from mathutils import fit_polynomial,fit_gaussian, fit_harmonic, calculate_peaks
|
||||||
|
from mathutils import PolynomialFunction, Gaussian, HarmonicOscillator
|
||||||
|
import math
|
||||||
|
|
||||||
|
|
||||||
|
start = 0
|
||||||
|
end = 5
|
||||||
|
step_size = 0.1
|
||||||
|
|
||||||
|
result= lscan(sout,sinp,start,end,[step_size,],0.01)
|
||||||
|
|
||||||
|
readable = result.getReadable(0)
|
||||||
|
positions = result.getPositions(0)
|
||||||
|
|
||||||
|
def get_function_data(function, start, end, resolution):
|
||||||
|
ret = []
|
||||||
|
for x in frange(start, end, resolution, True):
|
||||||
|
fit_polinomial.append(function.value(x))
|
||||||
|
|
||||||
|
|
||||||
|
pars_polynomial = (a0, a1, a2, a3, a4, a5, a6) = fit_polynomial(readable, positions, 6)
|
||||||
|
fitted_polynomial_function = PolynomialFunction(pars_polynomial)
|
||||||
|
print pars_polynomial
|
||||||
|
|
||||||
|
(normalization, mean, sigma) = fit_gaussian(readable, positions, True)
|
||||||
|
fitted_gaussian_function = Gaussian(normalization, mean, sigma)
|
||||||
|
print (normalization, mean, sigma)
|
||||||
|
|
||||||
|
(amplitude, angular_frequency, phase) = fit_harmonic(readable, positions)
|
||||||
|
fitted_harmonic_function = HarmonicOscillator(amplitude, angular_frequency, phase)
|
||||||
|
print (amplitude, angular_frequency, phase)
|
||||||
|
|
||||||
|
|
||||||
|
resolution = step_size/100
|
||||||
|
fit_polinomial = []
|
||||||
|
fit_gaussian = []
|
||||||
|
fit_harmonic = []
|
||||||
|
for x in frange(start,end,resolution, True):
|
||||||
|
fit_polinomial.append(fitted_polynomial_function.value(x))
|
||||||
|
fit_gaussian.append(fitted_gaussian_function.value(x))
|
||||||
|
fit_harmonic.append(fitted_harmonic_function.value(x))
|
||||||
|
x = frange(start, end+resolution, resolution)
|
||||||
|
|
||||||
|
|
||||||
|
peaks = calculate_peaks(fitted_polynomial_function)
|
||||||
|
|
||||||
|
plots = plot([readable, fit_polinomial, fit_gaussian, fit_harmonic] ,
|
||||||
|
["data", "polinomial", "gaussian", "harmonic"], xdata = [positions,x,x,x] )
|
||||||
|
|
||||||
|
for p in peaks:
|
||||||
|
print "Max: " + str(p)
|
||||||
|
plots[0].addMarker(p, None, "Max=" + str(round(p,2)), None)
|
||||||
|
import java.awt.Color
|
||||||
|
plots[0].addMarker(mean, None, "Mean=" + str(round(mean,2)), java.awt.Color.LIGHT_GRAY)
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
import java.util.logging.Logger as Logger
|
|
||||||
logger = Logger.getLogger("back")
|
|
||||||
|
|
||||||
|
|
||||||
logger.info("Started")
|
|
||||||
|
|
||||||
asd
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,3 +1,28 @@
|
|||||||
#det.data.monitored=True
|
###################################################################################################
|
||||||
|
# Deployment specific global definitions - executed after startup.py
|
||||||
|
###################################################################################################
|
||||||
|
|
||||||
|
|
||||||
|
#Uncomment this line to create the simulated devices needed to the tutorial scripts.
|
||||||
|
#run("tutorial/devices")
|
||||||
|
|
||||||
asd
|
import random
|
||||||
|
|
||||||
|
|
||||||
|
class SimulatedOutput(Writable):
|
||||||
|
def write(self, value):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class SimulatedInput(Readable):
|
||||||
|
def __init__(self):
|
||||||
|
self.x = 0.0
|
||||||
|
|
||||||
|
def read(self):
|
||||||
|
self.x = self.x + 0.2
|
||||||
|
noise = (random.random() - 0.5) / 20.0
|
||||||
|
return math.sin(self.x) + noise
|
||||||
|
|
||||||
|
|
||||||
|
sout = SimulatedOutput()
|
||||||
|
sinp = SimulatedInput()
|
||||||
|
|||||||
7
script/local.py~
Normal file
7
script/local.py~
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
###################################################################################################
|
||||||
|
# Deployment specific global definitions - executed after startup.py
|
||||||
|
###################################################################################################
|
||||||
|
|
||||||
|
|
||||||
|
#Uncomment this line to create the simulated devices needed to the tutorial scripts.
|
||||||
|
#run("tutorial/devices")
|
||||||
@@ -1,310 +0,0 @@
|
|||||||
import sys
|
|
||||||
import time
|
|
||||||
import math
|
|
||||||
from array import array
|
|
||||||
|
|
||||||
import java.lang.Class as Class
|
|
||||||
import org.python.core.PyArray as PyArray
|
|
||||||
import ch.psi.pshell.dev.MotorGroupBase.MoveMode as MoveMode
|
|
||||||
|
|
||||||
import ch.psi.pshell.scan.LineScan
|
|
||||||
import ch.psi.pshell.scan.AreaScan
|
|
||||||
import ch.psi.pshell.scan.VectorScan
|
|
||||||
import ch.psi.pshell.dev.Readable as Readable
|
|
||||||
|
|
||||||
import ch.psi.pshell.epics.Epics as Epics
|
|
||||||
import ch.psi.pshell.epics.EpicsScan as EpicsScan
|
|
||||||
|
|
||||||
|
|
||||||
def onScanBeforeReadout(scan):
|
|
||||||
try:
|
|
||||||
if (scan.before_read!=None):
|
|
||||||
scan.before_read()
|
|
||||||
except AttributeError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
def onScanAfterReadout(scan):
|
|
||||||
try:
|
|
||||||
if (scan.after_read!=None):
|
|
||||||
scan.after_read()
|
|
||||||
except AttributeError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
class LineScan(ch.psi.pshell.scan.LineScan):
|
|
||||||
def onBeforeReadout(self):
|
|
||||||
onScanBeforeReadout(self)
|
|
||||||
|
|
||||||
def onAfterReadout(self):
|
|
||||||
onScanAfterReadout(self)
|
|
||||||
|
|
||||||
class AreaScan(ch.psi.pshell.scan.AreaScan):
|
|
||||||
def onBeforeReadout(self):
|
|
||||||
onScanBeforeReadout(self)
|
|
||||||
|
|
||||||
def onAfterReadout(self):
|
|
||||||
onScanAfterReadout(self)
|
|
||||||
|
|
||||||
class VectorScan(ch.psi.pshell.scan.VectorScan):
|
|
||||||
def onBeforeReadout(self):
|
|
||||||
onScanBeforeReadout(self)
|
|
||||||
|
|
||||||
def onAfterReadout(self):
|
|
||||||
onScanAfterReadout(self)
|
|
||||||
|
|
||||||
def sleep(sec):
|
|
||||||
time.sleep(sec)
|
|
||||||
|
|
||||||
def toList(obj):
|
|
||||||
if isinstance(obj,tuple):
|
|
||||||
return list(obj)
|
|
||||||
if not isinstance(obj,list):
|
|
||||||
return [obj,]
|
|
||||||
return obj
|
|
||||||
|
|
||||||
|
|
||||||
def lscan(writables, readables, start, end, steps, latency=0.0, plot=None, before_read=None, after_read=None):
|
|
||||||
"""Line Scan: positioners change together, linearly from start to end positions.
|
|
||||||
|
|
||||||
Args:
|
|
||||||
writables(list of Writable): Positioners set on each step.
|
|
||||||
readables(list of Readable): Sensors to be sampled on each step.
|
|
||||||
start(list of float): start positions of writables.
|
|
||||||
end(list of float): final positions of writables.
|
|
||||||
steps(int): number of scan steps.
|
|
||||||
latency(float, optional): sleep time in each step before readout, defaults to 0.0.
|
|
||||||
plot(str, optional): plotting context name.
|
|
||||||
before_read (function): callback on each step, before each readout.
|
|
||||||
after_read (function): callback on each step, after each readout.
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
ArrayList of ScanRecord objects.
|
|
||||||
|
|
||||||
"""
|
|
||||||
latency_ms=int(latency*1000)
|
|
||||||
writables=toList(writables)
|
|
||||||
readables=toList(readables)
|
|
||||||
start=toList(start)
|
|
||||||
end=toList(end)
|
|
||||||
scan = LineScan(writables,readables, start, end , steps,latency_ms, controller)
|
|
||||||
scan.before_read=before_read
|
|
||||||
scan.after_read=after_read
|
|
||||||
scan.setPlotName(plot)
|
|
||||||
scan.start()
|
|
||||||
return scan.getResult()
|
|
||||||
|
|
||||||
def vscan(writables, readables, vector, latency=0.0, plot=None, before_read=None, after_read=None):
|
|
||||||
"""Vector Scan: positioners change following values provided in a vector.
|
|
||||||
|
|
||||||
Args:
|
|
||||||
writables(list of Writable): Positioners set on each step.
|
|
||||||
readables(list of Readable): Sensors to be sampled on each step.
|
|
||||||
vector(list of list of float): table of positioner values.
|
|
||||||
latency(float, optional): sleep time in each step before readout, defaults to 0.0.
|
|
||||||
plot(str, optional): plotting context name.
|
|
||||||
before_read (function): callback on each step, before each readout.
|
|
||||||
after_read (function): callback on each step, after each readout.
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
ArrayList of ScanRecord objects.
|
|
||||||
|
|
||||||
"""
|
|
||||||
latency_ms=int(latency*1000)
|
|
||||||
writables=toList(writables)
|
|
||||||
readables=toList(readables)
|
|
||||||
scan = VectorScan(writables,readables, vector, latency_ms, controller)
|
|
||||||
scan.before_read=before_read
|
|
||||||
scan.after_read=after_read
|
|
||||||
scan.setPlotName(plot)
|
|
||||||
scan.start()
|
|
||||||
return scan.getResult()
|
|
||||||
|
|
||||||
def ascan(writables, readables, start, end, steps, latency=0.0, plot=None, before_read=None, after_read=None):
|
|
||||||
"""Area Scan: multi-dimentional scan, each positioner is a dimention.
|
|
||||||
|
|
||||||
Args:
|
|
||||||
writables(list of Writable): Positioners set on each step.
|
|
||||||
readables(list of Readable): Sensors to be sampled on each step.
|
|
||||||
start(list of float): start positions of writables.
|
|
||||||
end(list of float): final positions of writables.
|
|
||||||
steps(list of int): number of scan steps for each positioner.
|
|
||||||
latency(float, optional): sleep time in each step before readout, defaults to 0.0.
|
|
||||||
plot(str, optional): plotting context name.
|
|
||||||
before_read (function): callback on each step, before each readout.
|
|
||||||
after_read (function): callback on each step, after each readout.
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
ArrayList of ScanRecord objects.
|
|
||||||
|
|
||||||
"""
|
|
||||||
latency_ms=int(latency*1000)
|
|
||||||
writables=toList(writables)
|
|
||||||
readables=toList(readables)
|
|
||||||
start=toList(start)
|
|
||||||
end=toList(end)
|
|
||||||
scan = AreaScan(writables,readables, start, end , steps,latency_ms, controller)
|
|
||||||
scan.before_read=before_read
|
|
||||||
scan.after_read=after_read
|
|
||||||
scan.setPlotName(plot)
|
|
||||||
scan.start()
|
|
||||||
return scan.getResult()
|
|
||||||
|
|
||||||
def tscan(readables, points, interval, plot=None, before_read=None, after_read=None):
|
|
||||||
"""Time Scan: sensors are sampled in fixed time intervals.
|
|
||||||
|
|
||||||
Args:
|
|
||||||
readables(list of Readable): Sensors to be sampled on each step.
|
|
||||||
points(int): number of samples.
|
|
||||||
interval(float): time interval between readouts.
|
|
||||||
plot(str, optional): plotting context name.
|
|
||||||
before_read (function): callback on each step, before each readout.
|
|
||||||
after_read (function): callback on each step, after each readout.
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
ArrayList of ScanRecord objects.
|
|
||||||
|
|
||||||
"""
|
|
||||||
latency_ms=int(interval*1000)
|
|
||||||
writables=[]
|
|
||||||
readables=toList(readables)
|
|
||||||
start=[0,]
|
|
||||||
end=[points,]
|
|
||||||
steps=points
|
|
||||||
scan = LineScan(writables,readables, start, end , steps,latency_ms, controller)
|
|
||||||
scan.before_read=before_read
|
|
||||||
scan.after_read=after_read
|
|
||||||
scan.setPlotName(plot)
|
|
||||||
scan.start()
|
|
||||||
return scan.getResult()
|
|
||||||
|
|
||||||
def escan(name, plot=None):
|
|
||||||
"""Epics Scan: execute an Epics Scan Record.
|
|
||||||
|
|
||||||
Args:
|
|
||||||
name(str): Name of scan record.
|
|
||||||
plot(str, optional): plotting context name.
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
ArrayList of ScanRecord objects.
|
|
||||||
|
|
||||||
"""
|
|
||||||
scan = EpicsScan(name, controller)
|
|
||||||
scan.setPlotName(plot)
|
|
||||||
scan.start()
|
|
||||||
return scan.getResult()
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class ListReader(Readable):
|
|
||||||
def __init__(self,list, plot):
|
|
||||||
self.counter=0
|
|
||||||
self.list=list
|
|
||||||
def getName(self):
|
|
||||||
return None
|
|
||||||
def read(self):
|
|
||||||
if (self.counter>=len(self.list)):
|
|
||||||
return None;
|
|
||||||
ret = self.list[self.counter]
|
|
||||||
self.counter=self.counter+1
|
|
||||||
return ret
|
|
||||||
|
|
||||||
def plot(data, plot=None):
|
|
||||||
"""Plot a list in a graph.
|
|
||||||
|
|
||||||
Args:
|
|
||||||
data(list): data to be plotted
|
|
||||||
plot(str, optional): plotting context name.
|
|
||||||
|
|
||||||
"""
|
|
||||||
latency_ms=0
|
|
||||||
data=toList(data)
|
|
||||||
writables=[]
|
|
||||||
readables=[ListReader(data,plot),]
|
|
||||||
start=[0,]
|
|
||||||
end=[len(data),]
|
|
||||||
steps=len(data)-1
|
|
||||||
scan = LineScan(writables,readables, start, end , steps,latency_ms, controller)
|
|
||||||
scan.setPlotName(plot)
|
|
||||||
scan.start()
|
|
||||||
|
|
||||||
channel_types = {
|
|
||||||
'b': "java.lang.Byte",
|
|
||||||
'i': "java.lang.Short",
|
|
||||||
'l': "java.lang.Integer",
|
|
||||||
'd': "java.lang.Double",
|
|
||||||
's': "java.lang.String",
|
|
||||||
|
|
||||||
'b,': "[B",
|
|
||||||
'i,': "[S",
|
|
||||||
'l,': "[I",
|
|
||||||
'd,': "[D",
|
|
||||||
's,': "[Ljava.lang.String;",
|
|
||||||
}
|
|
||||||
|
|
||||||
array_types = {
|
|
||||||
int: "i",
|
|
||||||
long: "l",
|
|
||||||
float:"d",
|
|
||||||
str:Class.forName("java.lang.String"),
|
|
||||||
}
|
|
||||||
|
|
||||||
def caget(name, type='d', size=None):
|
|
||||||
"""Reads an Epics PV.
|
|
||||||
|
|
||||||
Args:
|
|
||||||
name(str): PV name
|
|
||||||
type(str, optional): type of PV, defaults 'd'.
|
|
||||||
Scalar values: 'b', 'i', 'l', 'd', 's'.
|
|
||||||
Array: values: 'b,', 'i,', 'l,', 'd,', 's,'.
|
|
||||||
"""
|
|
||||||
if (size==None):
|
|
||||||
return Epics.get(name, Class.forName(channel_types.get(type,type)))
|
|
||||||
else:
|
|
||||||
return Epics.get(name, Class.forName(channel_types.get(type,type)),size)
|
|
||||||
|
|
||||||
def adjustPutVal(value):
|
|
||||||
if isinstance(value,tuple):
|
|
||||||
value = list(value)
|
|
||||||
if isinstance(value,list):
|
|
||||||
array = PyArray(array_types.get(type(value[0]),'d'))
|
|
||||||
array.fromlist(value)
|
|
||||||
value=array
|
|
||||||
return value
|
|
||||||
|
|
||||||
def caput(name, value):
|
|
||||||
"""Writes to an Epics PV.
|
|
||||||
|
|
||||||
Args:
|
|
||||||
name(str): PV name
|
|
||||||
value(scalar, string or array): new PV value.
|
|
||||||
"""
|
|
||||||
value=adjustPutVal(value)
|
|
||||||
return Epics.put(name, value)
|
|
||||||
|
|
||||||
def caputq(name, value):
|
|
||||||
"""Writes to an Epics PV and does not wait.
|
|
||||||
|
|
||||||
Args:
|
|
||||||
name(str): PV name
|
|
||||||
value(scalar, string or array): new PV value.
|
|
||||||
"""
|
|
||||||
value=adjustPutVal(value)
|
|
||||||
return Epics.putq(name, value)
|
|
||||||
|
|
||||||
def log(log):
|
|
||||||
"""Writes log to data file.
|
|
||||||
|
|
||||||
Args:
|
|
||||||
log(str): Log string
|
|
||||||
|
|
||||||
"""
|
|
||||||
controller.getDataManager().addLog(str(log))
|
|
||||||
|
|
||||||
def startBackgroudTask(script, interval):
|
|
||||||
interval_ms=int(interval*1000)
|
|
||||||
controller.taskManager.create(script,interval_ms)
|
|
||||||
controller.taskManager.start(scrip)
|
|
||||||
|
|
||||||
def stopBackgroudTask(script):
|
|
||||||
controller.taskManager.stop(scrip)
|
|
||||||
|
|
||||||
execfile(controller.setup.getScriptPath()+"/local.py")
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
|
|
||||||
|
|
||||||
def calc(a){
|
|
||||||
a*2
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
|
|
||||||
|
|
||||||
function calc(a) {
|
|
||||||
return a * 5;
|
|
||||||
}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
def calc(a):
|
|
||||||
return a*2
|
|
||||||
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
package script
|
|
||||||
class cls {
|
|
||||||
double val = 1.0
|
|
||||||
void exec(){
|
|
||||||
println "Exec"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
class cls:
|
|
||||||
def execute(self):
|
|
||||||
print "Execute"
|
|
||||||
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
def calc(a):
|
|
||||||
return a*2
|
|
||||||
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
|
|
||||||
def function(a){
|
|
||||||
a*2
|
|
||||||
}
|
|
||||||
//evaluate (new File("calc.groovy"))
|
|
||||||
//evaluate (new File("cls.groovy"))
|
|
||||||
|
|
||||||
println "--------------"
|
|
||||||
|
|
||||||
lib.load "calc"
|
|
||||||
cls = lib.load "cls"
|
|
||||||
|
|
||||||
|
|
||||||
//This is how to load a new class dinamically
|
|
||||||
// ClassLoader parent = lib.class.getClassLoader();
|
|
||||||
// groovy.lang.GroovyClassLoader loader = new groovy.lang.GroovyClassLoader(parent);
|
|
||||||
// Class cls = loader.parseClass(new File("script\\cls.groovy"));
|
|
||||||
|
|
||||||
|
|
||||||
println dev.get()
|
|
||||||
println dev2.val
|
|
||||||
println calc(6)
|
|
||||||
|
|
||||||
|
|
||||||
//cls = Class.forName('cls')
|
|
||||||
//obj = new cls()
|
|
||||||
obj = cls.newInstance()
|
|
||||||
println obj.val
|
|
||||||
obj.exec()
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
function calcx(a) {
|
|
||||||
return a * 5;
|
|
||||||
}
|
|
||||||
|
|
||||||
print('Hello, World')
|
|
||||||
lib.load ("calc")
|
|
||||||
|
|
||||||
|
|
||||||
a=3
|
|
||||||
a
|
|
||||||
print (dev.get())
|
|
||||||
print (dev2.val)
|
|
||||||
print (calc(5))
|
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
import sys
|
|
||||||
import time
|
|
||||||
|
|
||||||
#To add library folders from within the script
|
|
||||||
#sys.path.append("./site-packages")
|
|
||||||
|
|
||||||
|
|
||||||
import requests
|
|
||||||
r = requests.get('https://api.github.com', auth=('user', 'pass'))
|
|
||||||
print r.status_code
|
|
||||||
print r.headers['content-type']
|
|
||||||
r.close()
|
|
||||||
|
|
||||||
|
|
||||||
def calc2(a):
|
|
||||||
return a*2
|
|
||||||
time.sleep(2)
|
|
||||||
#import os
|
|
||||||
#print os.environ
|
|
||||||
#import calc
|
|
||||||
|
|
||||||
|
|
||||||
lib.load("calc")
|
|
||||||
lib.load("cls")
|
|
||||||
time.sleep(2)
|
|
||||||
for x in range(3):
|
|
||||||
print x
|
|
||||||
while(True):
|
|
||||||
print x*2
|
|
||||||
break
|
|
||||||
time.sleep(2)
|
|
||||||
x=cls()
|
|
||||||
x.execute()
|
|
||||||
print dev.take()
|
|
||||||
print dev2.val
|
|
||||||
time.sleep(1)
|
|
||||||
print calc(4)
|
|
||||||
|
|
||||||
|
|
||||||
"""
|
|
||||||
It lives!!!!
|
|
||||||
"""
|
|
||||||
@@ -1,53 +0,0 @@
|
|||||||
import ch.psi.pshell.scan.LineScan;
|
|
||||||
import ch.psi.pshell.scan.AreaScan;
|
|
||||||
|
|
||||||
|
|
||||||
def sleep(millis){
|
|
||||||
Thread.sleep(millis);
|
|
||||||
}
|
|
||||||
|
|
||||||
def toArray(obj){
|
|
||||||
/* if (!obj.getClass().isArray()){
|
|
||||||
arr = java.lang.reflect.Array.newInstance(obj.getClass(), 1);
|
|
||||||
arr[0]= obj;
|
|
||||||
obj=arr
|
|
||||||
}*/
|
|
||||||
return obj
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
def scan(writables, readables, start, end, steps, latency_ms=0, plot=null){
|
|
||||||
writables=toList(writables)
|
|
||||||
readables=toList(readables)
|
|
||||||
start=toList(start)
|
|
||||||
end=toList(end)
|
|
||||||
scan = LineScan(writables,readables, start, end , steps,latency_ms, controller)
|
|
||||||
scan.setPlotName(plot)
|
|
||||||
scan.start()
|
|
||||||
return scan.getResult()
|
|
||||||
}
|
|
||||||
|
|
||||||
def tscan(readables, points, interval_ms, plot=null){
|
|
||||||
writables=[]
|
|
||||||
//readables=toList(readables)
|
|
||||||
readables=[readables,]
|
|
||||||
start=[0]
|
|
||||||
|
|
||||||
end=[points]
|
|
||||||
steps=points
|
|
||||||
scan = LineScan(writables,readables, start, end , steps,interval_ms, controller)
|
|
||||||
scan.setPlotName(plot)
|
|
||||||
scan.start()
|
|
||||||
return scan.getResult()
|
|
||||||
}
|
|
||||||
|
|
||||||
def ascan(writables, readables, start, end, steps, latency_ms0, plot=null){
|
|
||||||
writables=toList(writables)
|
|
||||||
readables=toList(readables)
|
|
||||||
start=toList(start)
|
|
||||||
end=toList(end)
|
|
||||||
scan = AreaScan(writables,readables, start, end , steps,latency_ms, controller)
|
|
||||||
scan.setPlotName(plot)
|
|
||||||
scan.start()
|
|
||||||
return scan.getResult()
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
"""
|
|
||||||
Line Scan
|
|
||||||
"""
|
|
||||||
|
|
||||||
a= lscan(inp,(sin,out,arr),0,40,20,0.1)
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
"""
|
|
||||||
Line Scan with 2 writables and triggering
|
|
||||||
"""
|
|
||||||
|
|
||||||
index=0
|
|
||||||
|
|
||||||
def BeforeReadout():
|
|
||||||
global index
|
|
||||||
print "Frame = " + str(index)
|
|
||||||
index=index+1
|
|
||||||
#log("trigger " + index)
|
|
||||||
caput("TESTIOC:TESTBO:MyBO","On")
|
|
||||||
caput("TESTIOC:TESTBO:MyBO","Off")
|
|
||||||
|
|
||||||
|
|
||||||
a= lscan((motor,inp),(sin,out,arr),(0,0),(4,40),20,0.1, before_read=BeforeReadout)
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
"""
|
|
||||||
Processing and plotting scan data
|
|
||||||
"""
|
|
||||||
|
|
||||||
inp.write(0.0)
|
|
||||||
scan1= lscan(inp,(sin,out,arr),0,40,20,0.1,"Scan 1")
|
|
||||||
scan2= lscan(inp,(sin,out,arr),0,40,20,0.1,"Scan 2")
|
|
||||||
result=[]
|
|
||||||
for i in range(20):
|
|
||||||
result.append(scan1[i].values[0]+scan2[i].values[0])
|
|
||||||
plot(result)
|
|
||||||
print result
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
"""
|
|
||||||
Vector Scan
|
|
||||||
"""
|
|
||||||
|
|
||||||
vector = [ [1,1] , [1,2] , [1,3] , [1,4] ,
|
|
||||||
[1.5,2.5] ,
|
|
||||||
[2,1] , [2,2] , [2,3] , [2,4] ,
|
|
||||||
[2.5,2.5] ,
|
|
||||||
[3,1] , [3,2] , [3,3] , [3,4] ]
|
|
||||||
|
|
||||||
a= vscan((dev,inp),(sin,out),vector,0.1)
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
"""
|
|
||||||
Area Scan
|
|
||||||
"""
|
|
||||||
|
|
||||||
ascan((dev,out),(sin,out,arr),(0,10),(20,30),(100,100))
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
"""
|
|
||||||
Creating pseudo-devices
|
|
||||||
"""
|
|
||||||
import time
|
|
||||||
|
|
||||||
sin_val=None
|
|
||||||
|
|
||||||
class Sensor(ch.psi.pshell.dev.Readable):
|
|
||||||
def read(self):
|
|
||||||
global sin_val
|
|
||||||
return sin_val + time.clock()
|
|
||||||
def getName(self):
|
|
||||||
return "Sensor"
|
|
||||||
|
|
||||||
class Positioner(ch.psi.pshell.dev.Writable):
|
|
||||||
def write(self,pos):
|
|
||||||
print pos
|
|
||||||
def getName(self):
|
|
||||||
return "Positioner"
|
|
||||||
|
|
||||||
class Listener (ch.psi.pshell.dev.DeviceListener):
|
|
||||||
def onStateChanged(self, device, state, former):
|
|
||||||
pass
|
|
||||||
def onValueChanged(self, device, value, former):
|
|
||||||
global sin_val
|
|
||||||
sin_val=value
|
|
||||||
|
|
||||||
sensor=Sensor()
|
|
||||||
positioner=Positioner()
|
|
||||||
listener = Listener()
|
|
||||||
|
|
||||||
sin.addListener(listener)
|
|
||||||
try:
|
|
||||||
a= lscan((inp,positioner),(sin,sensor),(0,0),(40,10),20,0.1)
|
|
||||||
finally:
|
|
||||||
sin.removeListener(listener)
|
|
||||||
Reference in New Issue
Block a user