658 Commits
test ... master

Author SHA1 Message Date
40346f2a76 Delete 2016-01-20 15:25:49 +01:00
634de7885d Closedown 2015-12-15 10:37:48 +01:00
f054ecb03d Closedown 2015-12-15 09:31:54 +01:00
98c5bcdee9 Startup 2015-12-03 08:48:52 +01:00
0aa6ed00cd Startup 2015-12-03 08:47:26 +01:00
c1a9b1a3ca Startup 2015-12-03 08:43:55 +01:00
b942301b86 Startup 2015-12-03 08:30:45 +01:00
8d9c34af0d Closedown 2015-12-02 09:05:23 +01:00
8e909e9603 Startup 2015-12-02 09:01:31 +01:00
15285dc291 Startup 2015-12-02 08:52:44 +01:00
d0c217d414 Startup 2015-12-02 08:44:11 +01:00
8ab97fc8c7 Startup 2015-12-01 16:33:52 +01:00
f6fe7812c7 Closedown 2015-12-01 16:21:40 +01:00
0b1fc9b24d Configuration change: Positionable x 2015-12-01 16:10:39 +01:00
f674f617e1 Configuration change: Positionable x 2015-12-01 16:09:59 +01:00
34d405ff93 Startup 2015-12-01 15:54:04 +01:00
bb23b5b555 Closedown 2015-12-01 15:52:27 +01:00
42de2cbb8b Startup 2015-12-01 15:51:15 +01:00
a8d5f46124 Closedown 2015-12-01 15:49:09 +01:00
ccab722e39 Startup 2015-11-19 17:05:42 +01:00
60355edd50 Configuration change: MjpegSource mic-low 2015-11-11 14:13:36 +01:00
fdb6b533f1 Configuration change: MjpegSource mic-high 2015-11-11 14:13:36 +01:00
93c8f01b04 Configuration change: MjpegSource mic-low 2015-11-11 14:13:17 +01:00
1f7f8d6837 Configuration change: MjpegSource mic-high 2015-11-11 14:12:56 +01:00
0201853952 Configuration change: MjpegSource mic-high 2015-11-11 14:11:44 +01:00
0c7e34f6dc Configuration change: MjpegSource mic-high 2015-11-11 14:11:19 +01:00
5bfdae33d6 Configuration change: MjpegSource mic-high 2015-11-11 14:10:46 +01:00
76492720b6 Configuration change: MjpegSource mic-low 2015-11-11 14:10:14 +01:00
cf6eef480f Configuration change: MjpegSource mic-high 2015-11-11 14:09:42 +01:00
1ed373e88d Closedown 2015-11-10 15:03:28 +01:00
5b9ebe0e00 Startup 2015-11-10 14:56:11 +01:00
c2334c91dd Closedown 2015-11-06 17:55:54 +01:00
99fc273da8 Configuration change: MjpegSource mic-high 2015-11-06 17:46:10 +01:00
74fa1d101c Closedown 2015-11-06 17:45:34 +01:00
92c3f3d31e Configuration change: Motor cz 2015-11-06 17:43:41 +01:00
c9ae952805 Configuration change: Motor cy 2015-11-06 17:43:20 +01:00
3656f0075a Closedown 2015-11-06 17:29:24 +01:00
5f14f7f347 Closedown 2015-11-06 17:22:20 +01:00
2a08f09f2b Closedown 2015-11-06 17:17:48 +01:00
656cf528c7 2015-11-06 15:45:38 +01:00
6fd4f1fa3c Startup 2015-11-06 15:37:45 +01:00
c405f58177 Closedown 2015-11-06 15:37:41 +01:00
8f478627ea Startup 2015-11-06 15:07:42 +01:00
13bdb4f909 Closedown 2015-11-06 15:07:27 +01:00
bd90c5a728 Closedown 2015-11-06 15:03:58 +01:00
1951142e3f Closedown 2015-11-06 14:58:41 +01:00
34f6582d38 Startup 2015-11-06 14:57:06 +01:00
544b938a2b Closedown 2015-11-06 14:56:44 +01:00
30e52d495a Configuration change: MjpegSource mic-high 2015-11-06 14:34:01 +01:00
79b85e8435 Configuration change: MjpegSource mic-low 2015-11-06 14:34:00 +01:00
dadce474a6 Startup 2015-11-06 14:32:52 +01:00
cc9c40d26b Closedown 2015-11-06 14:32:42 +01:00
8550e8ff10 Configuration change: MjpegSource mic 2015-10-30 09:32:08 +01:00
0a226464cb Startup 2015-10-30 09:31:37 +01:00
ee2f319e73 Closedown 2015-10-30 09:31:33 +01:00
ca7bf620a7 Startup 2015-09-24 10:13:37 +02:00
24b1e72818 Startup 2015-09-08 14:06:57 +02:00
657c058e42 Closedown 2015-09-01 10:47:31 +02:00
8f25801d18 Closedown 2015-09-01 10:38:33 +02:00
adc23bee64 Startup 2015-09-01 09:37:34 +02:00
b1700f4090 Closedown 2015-08-25 16:07:56 +02:00
4b772eaac8 Closedown 2015-08-25 16:07:08 +02:00
aef3a9ba03 Startup 2015-08-25 16:05:05 +02:00
7f8d64ce3c Closedown 2015-08-25 16:05:00 +02:00
f0911d1f6f Closedown 2015-08-18 18:08:25 +02:00
aad138ff30 Configuration change: MotorGroupDiscretePositioner test 2015-08-18 18:06:23 +02:00
0bec6cb4dd Startup 2015-08-18 17:56:00 +02:00
42c1ac5177 Closedown 2015-08-18 17:55:34 +02:00
732396bbde Closedown 2015-08-18 17:42:37 +02:00
91902c4fa7 Closedown 2015-08-18 17:40:44 +02:00
7e88f9586f Closedown 2015-08-18 17:39:13 +02:00
39a0246b0d Configuration change: MotorGroupDiscretePositioner scintillator 2015-08-18 17:38:23 +02:00
2eb98b16c9 Startup 2015-08-18 17:35:57 +02:00
007caedac2 Closedown 2015-08-18 17:33:24 +02:00
f16d5d0fa5 Configuration change: Positionable scintillatorZ 2015-08-18 17:29:43 +02:00
d31ad4b844 Configuration change: Motor detectorZ 2015-08-18 17:29:31 +02:00
df7fd6e279 Configuration change: Motor detectorY 2015-08-18 17:29:22 +02:00
fb2f1b0a6b Configuration change: Motor detectorZ 2015-08-18 17:28:20 +02:00
d5d7b9af02 Closedown 2015-08-18 17:09:31 +02:00
c41d9882b5 Closedown 2015-08-18 17:09:04 +02:00
636b4369d6 Configuration change: DiscretePositioner lamp 2015-08-18 16:01:38 +02:00
4ff9d71764 Startup 2015-08-18 16:01:22 +02:00
18aeb1c084 Configuration change: Manipulator lamp 2015-08-18 15:51:27 +02:00
7390692af5 Closedown 2015-08-18 15:34:17 +02:00
32fefc28d4 Configuration change: Manipulator lamp 2015-08-18 15:33:05 +02:00
3e807ed7a9 Startup 2015-08-18 15:32:06 +02:00
15a436b869 Closedown 2015-08-18 15:32:02 +02:00
fd01543fc7 Closedown 2015-08-18 15:02:46 +02:00
11d0217c32 Closedown 2015-08-18 14:54:13 +02:00
b28495c566 Closedown 2015-08-18 14:33:06 +02:00
d706a32f2f Configuration change: MotorGroupDiscretePositioner collimator 2015-08-18 14:06:07 +02:00
008ae2b842 Configuration change: MotorGroupDiscretePositioner collimator 2015-08-18 14:05:28 +02:00
3a94e3ef79 Configuration change: MotorGroupDiscretePositioner collimator 2015-08-18 14:04:17 +02:00
c2d416c734 Configuration change: Motor collimatorX 2015-08-18 11:29:13 +02:00
ba34341718 Configuration change: Motor collimatorY 2015-08-18 11:29:03 +02:00
d884b7405c Configuration change: Motor collimatorX 2015-08-18 11:28:14 +02:00
e38e270079 Configuration change: Motor beamstopZ 2015-08-18 11:24:52 +02:00
fe413be034 Configuration change: Motor beamstopZ 2015-08-18 11:24:08 +02:00
5b2d0e8263 Configuration change: Motor beamstopX 2015-08-18 11:23:51 +02:00
a34bc0bf0f Configuration change: Motor beamstopY 2015-08-18 11:23:34 +02:00
6fcf4988bb Configuration change: Motor beamstopZ 2015-08-18 11:23:19 +02:00
f29028325d Configuration change: Motor beamstopZ 2015-08-18 11:15:00 +02:00
e61579a844 Configuration change: Motor beamstopY 2015-08-18 11:14:50 +02:00
9c9812223e Configuration change: Motor beamstopX 2015-08-18 11:14:38 +02:00
668b9eee38 Closedown 2015-08-18 11:10:35 +02:00
c30378b8a3 Configuration change: Motor apertureX 2015-08-18 11:08:03 +02:00
5f05c060b8 Configuration change: Motor apertureY 2015-08-18 11:07:45 +02:00
4ebbe82c9f Configuration change: MotorGroupDiscretePositioner aperture 2015-08-18 10:53:54 +02:00
0adf30765a Configuration change: MotorGroupDiscretePositioner aperture 2015-08-18 10:52:02 +02:00
5e48b898a7 Startup 2015-08-18 10:48:28 +02:00
245249d60d Closedown 2015-08-18 10:48:25 +02:00
2477ee633b Startup 2015-08-18 10:34:56 +02:00
50c69c1fc9 Startup 2015-08-18 10:32:00 +02:00
e6068f80ab Startup 2015-08-18 10:29:06 +02:00
4d6771870a Startup 2015-08-06 14:32:13 +02:00
ee72b0fa46 Startup 2015-07-29 14:48:09 +02:00
bdd56c1dbe Closedown 2015-07-29 14:46:41 +02:00
c09aff0409 Closedown 2015-07-29 14:46:37 +02:00
5dc67f3707 Startup 2015-07-29 14:46:02 +02:00
d2e2fe6a2f Closedown 2015-07-17 15:43:28 +02:00
8cbe5493a3 Closedown 2015-07-17 15:43:26 +02:00
80a76ac2d2 Startup 2015-07-17 15:43:11 +02:00
c963ad62dd Startup 2015-07-17 15:39:01 +02:00
210840d9ac Closedown 2015-07-17 15:38:58 +02:00
1eea58f30e Startup 2015-07-17 15:38:07 +02:00
d39051ef50 Closedown 2015-07-17 15:38:04 +02:00
c16798b33c Startup 2015-07-17 15:37:20 +02:00
3fee819d2e Closedown 2015-07-17 15:37:16 +02:00
854bfb597d Startup 2015-07-17 15:30:03 +02:00
629ce12794 Closedown 2015-07-17 15:29:06 +02:00
a22cccf6cf Closedown 2015-07-17 15:29:03 +02:00
00a4d4c1a2 Startup 2015-07-17 15:28:47 +02:00
423a45573d Closedown 2015-07-17 15:24:31 +02:00
7479d4daf1 Closedown 2015-07-17 15:24:28 +02:00
726e84c48b Startup 2015-07-17 15:22:46 +02:00
4337e11f0c Closedown 2015-07-17 15:22:44 +02:00
082872e966 Startup 2015-07-17 15:22:40 +02:00
b5ea4be1f8 Closedown 2015-07-17 15:22:37 +02:00
7d3bfcbd14 Startup 2015-07-17 15:22:35 +02:00
5971f723e2 Startup 2015-07-17 15:21:47 +02:00
4c70384c87 Closedown 2015-07-17 15:21:44 +02:00
d9c5885d23 Startup 2015-07-17 15:21:19 +02:00
2e7e173ff4 Closedown 2015-07-17 15:21:16 +02:00
c6a0ef1e18 Startup 2015-07-17 15:21:12 +02:00
342677d722 Closedown 2015-07-17 15:21:09 +02:00
244fb7c204 Startup 2015-07-17 15:21:01 +02:00
53e3445c18 Closedown 2015-07-17 15:20:29 +02:00
a0009babe4 Closedown 2015-07-17 15:20:22 +02:00
3b1b608a00 Startup 2015-07-17 15:20:10 +02:00
7dd314cbc8 Closedown 2015-07-17 15:20:07 +02:00
91c80a16fb Startup 2015-07-17 15:15:41 +02:00
c3c4f05b08 Closedown 2015-07-17 15:15:38 +02:00
1068b96658 Startup 2015-07-17 15:13:52 +02:00
4a6914a549 Closedown 2015-07-17 15:13:49 +02:00
8066cf6209 Startup 2015-07-17 15:13:17 +02:00
0149658f1b Closedown 2015-07-17 15:13:14 +02:00
8d616b7400 Configuration change: Motor detectorY 2015-07-17 15:13:08 +02:00
d6c7a7cf6c Configuration change: Motor detectorZ 2015-07-17 15:12:58 +02:00
e804def85c Configuration change: Motor scintillatorY 2015-07-17 15:12:30 +02:00
fa003cbb49 Configuration change: Motor collimatorY 2015-07-17 15:11:47 +02:00
9e0713f983 Configuration change: Motor collimatorX 2015-07-17 15:11:39 +02:00
8af2e3fcde Configuration change: Motor beamstopZ 2015-07-17 15:11:26 +02:00
13634fbfd6 Configuration change: Motor beamstopY 2015-07-17 15:11:11 +02:00
c93102152f Configuration change: Motor beamstopX 2015-07-17 15:10:57 +02:00
72e59b42fe Configuration change: Motor apertureY 2015-07-17 15:09:40 +02:00
b65b6475eb Configuration change: Motor apertureX 2015-07-17 15:08:36 +02:00
79770e8f9b Startup 2015-07-17 15:02:05 +02:00
d583468fbd Closedown 2015-06-16 15:38:57 +02:00
312993a680 Closedown 2015-06-16 15:38:54 +02:00
2e044a2fd0 Startup 2015-06-16 15:32:55 +02:00
8a2062e085 Closedown 2015-06-16 15:31:48 +02:00
74851ebd0c Closedown 2015-06-16 15:31:46 +02:00
15cf557554 Startup 2015-06-16 15:31:41 +02:00
7d3bee7982 Closedown 2015-06-16 15:30:42 +02:00
66bc074df3 Closedown 2015-06-16 15:30:41 +02:00
0b2a086651 Startup 2015-06-16 15:30:30 +02:00
809a35de1f Closedown 2015-06-16 15:29:37 +02:00
561725ed87 Closedown 2015-06-16 15:29:35 +02:00
8861030cac Startup 2015-06-16 15:27:10 +02:00
592a7b9b9c Closedown 2015-06-16 15:24:00 +02:00
f435e23ae9 Closedown 2015-06-16 15:23:57 +02:00
631661ffc4 Startup 2015-06-16 15:22:54 +02:00
4a019bcda9 Closedown 2015-06-16 10:11:40 +02:00
182803f2d4 Closedown 2015-06-16 10:11:38 +02:00
b6ac4dc15f Startup 2015-06-16 10:11:28 +02:00
1627b6d4a2 Closedown 2015-06-16 10:10:34 +02:00
fb5b9245a5 Closedown 2015-06-16 10:10:33 +02:00
b785739315 Startup 2015-06-16 10:10:07 +02:00
ed43a94fa6 Closedown 2015-06-16 10:06:10 +02:00
e9c910ed57 Closedown 2015-06-16 10:06:09 +02:00
5ee3b35d34 Startup 2015-06-16 10:06:05 +02:00
71409aa1d2 Closedown 2015-06-16 10:05:08 +02:00
7e3a2e0066 Startup 2015-06-16 10:05:07 +02:00
385022d69e Closedown 2015-06-16 10:04:11 +02:00
1a2d972af7 Closedown 2015-06-16 10:04:11 +02:00
972cfd66a9 Startup 2015-06-16 10:04:08 +02:00
ed01c8e1bd Closedown 2015-06-16 10:01:39 +02:00
cc31ec76a8 Closedown 2015-06-16 10:01:39 +02:00
836c3cd25a Startup 2015-06-16 10:01:23 +02:00
81d6ed01b6 Closedown 2015-06-16 09:57:45 +02:00
37075f6453 Startup 2015-06-16 09:56:35 +02:00
a137337a91 Closedown 2015-05-22 16:28:25 +02:00
1262b80a24 Configuration change: MjpegSource video 2015-05-22 16:26:46 +02:00
2ff4581bff Configuration change: MjpegSource video 2015-05-22 16:26:17 +02:00
57877c395c Configuration change: MjpegSource video 2015-05-22 16:25:56 +02:00
d377cff12e Configuration change: MjpegSource video 2015-05-22 16:25:31 +02:00
393294c375 Configuration change: MjpegSource video 2015-05-22 16:25:06 +02:00
8a8d239ed1 Configuration change: MjpegSource video 2015-05-22 16:23:59 +02:00
d96ef75cbd Configuration change: MjpegSource video 2015-05-22 16:23:18 +02:00
529a4b61dc Startup 2015-05-22 16:22:31 +02:00
3383322ad9 Closedown 2015-05-22 16:22:16 +02:00
3e9f751b10 Configuration change: MotorGroupDiscretePositioner collimator 2015-05-22 16:16:14 +02:00
a1f8bde8e8 Configuration change: MotorGroupDiscretePositioner collimator 2015-05-22 16:13:57 +02:00
71a88cfb2f Configuration change: Motor collimatorY 2015-05-22 16:10:18 +02:00
f2c05f0687 Startup 2015-05-22 16:03:34 +02:00
5d32985acb Configuration change: Motor collimatorY 2015-05-22 16:02:08 +02:00
0658f1ba3a Configuration change: Motor collimatorY 2015-05-22 16:01:22 +02:00
2b20c5144b Startup 2015-05-22 16:01:09 +02:00
3218543b69 Configuration change: Motor collimatorY 2015-05-22 15:49:42 +02:00
a8844c4936 Configuration change: Motor collimatorY 2015-05-22 15:49:22 +02:00
7468c288f2 Configuration change: Motor collimatorY 2015-05-22 15:48:45 +02:00
18aebd4f6e Configuration change: Motor collimatorY 2015-05-22 15:48:28 +02:00
549d713c60 Configuration change: Motor collimatorY 2015-05-22 15:45:41 +02:00
47132619cc Startup 2015-05-22 15:33:12 +02:00
93a4f89e20 Startup 2015-05-22 15:31:49 +02:00
d01ac2316b Configuration change: MotorGroupDiscretePositioner collimator 2015-05-22 15:28:10 +02:00
d4cc0df1f0 Startup 2015-05-22 15:13:15 +02:00
1042a0ac85 Startup 2015-05-22 15:10:59 +02:00
62fdc2f9a6 Startup 2015-05-22 15:07:39 +02:00
cfe3a7836f Closedown 2015-05-22 15:05:05 +02:00
491c58255f Configuration change: Motor collimatorX 2015-05-22 15:04:39 +02:00
15a8292b6e Configuration change: Motor collimatorY 2015-05-22 15:04:06 +02:00
a505038481 Configuration change: Motor collimatorY 2015-05-22 14:43:02 +02:00
55dbc1a2e7 Configuration change: Motor collimatorY 2015-05-22 14:41:45 +02:00
780a8f082e Startup 2015-05-22 14:35:52 +02:00
92df5dfb41 Closedown 2015-05-22 14:35:49 +02:00
a798ed3204 Startup 2015-05-22 14:33:55 +02:00
ba45121e97 Closedown 2015-05-22 14:33:51 +02:00
d21375066d Startup 2015-05-22 14:31:57 +02:00
99c0d8f08a Closedown 2015-05-22 14:31:53 +02:00
e336bb0173 Startup 2015-05-22 14:23:16 +02:00
0b6c70c44c Closedown 2015-05-22 14:23:13 +02:00
fea621cb46 Configuration change: Controller 2015-05-22 14:23:10 +02:00
ff13db86b9 Startup 2015-05-22 14:22:49 +02:00
8502789104 Closedown 2015-05-22 14:22:46 +02:00
f7de17be21 Script execution 2015-05-22 14:17:03 +02:00
09fc8982f7 Script execution 2015-05-22 13:53:12 +02:00
c439bee641 Script execution 2015-05-22 13:52:06 +02:00
b5bf4e015d Startup 2015-05-22 13:38:36 +02:00
b22ae84e71 Closedown 2015-05-22 13:38:34 +02:00
a67a65e922 Startup 2015-05-22 13:38:13 +02:00
d13a726703 Closedown 2015-05-22 13:38:11 +02:00
8824242dab Startup 2015-05-22 13:36:56 +02:00
dbaf25edfd Closedown 2015-05-22 13:36:54 +02:00
d8163993c5 Startup 2015-05-22 13:36:23 +02:00
911e9b5e57 Closedown 2015-05-22 13:36:20 +02:00
8f6da1cc53 Startup 2015-05-22 13:36:02 +02:00
1efe3e7c2d Closedown 2015-05-22 13:35:59 +02:00
fe25fbf6c1 Configuration change: Motor collimatorY 2015-05-22 13:31:58 +02:00
cc4ac8dda8 Startup 2015-05-22 13:21:44 +02:00
5355f6b68a Closedown 2015-05-22 13:20:51 +02:00
0d5bd67c37 Startup 2015-05-22 13:19:24 +02:00
c71c7fa4aa Closedown 2015-05-22 13:19:21 +02:00
b480b57648 Startup 2015-05-22 13:17:59 +02:00
243d6d52d4 Closedown 2015-05-22 13:17:58 +02:00
ce1eef8a23 Startup 2015-05-22 13:17:39 +02:00
407d2c0cf1 Closedown 2015-05-19 18:15:39 +02:00
6e8f1ccca3 Startup 2015-05-19 18:12:44 +02:00
50dcc4e62c Startup 2015-05-19 18:12:09 +02:00
0c4fe9d5da Startup 2015-05-19 18:11:21 +02:00
7afc4dc90b Startup 2015-05-19 18:09:40 +02:00
9e1cd5495b Startup 2015-05-19 18:04:54 +02:00
bb577eaf3a Configuration change: Motor collimatorY 2015-05-19 18:00:06 +02:00
34163d3a4e Configuration change: Motor collimatorY 2015-05-19 17:59:12 +02:00
ecb4462ba2 Startup 2015-05-19 17:57:55 +02:00
c9056b31d0 Configuration change: Motor collimatorY 2015-05-19 17:56:31 +02:00
5cadf0a6fe Configuration change: Motor collimatorY 2015-05-19 17:55:31 +02:00
9c17686033 Configuration change: Motor collimatorX 2015-05-19 17:55:22 +02:00
34c4985897 Startup 2015-05-19 17:54:22 +02:00
aae4bae369 Closedown 2015-05-19 17:54:20 +02:00
a8a302c50a Configuration change: Motor collimatorX 2015-05-19 17:54:17 +02:00
026ac0a709 Configuration change: Motor collimatorY 2015-05-19 17:54:10 +02:00
5475c2b78d Startup 2015-05-19 17:47:19 +02:00
19f984446e Startup 2015-05-19 17:24:48 +02:00
abf64ceb8e Startup 2015-05-19 16:23:56 +02:00
d5abd663b1 Startup 2015-05-19 16:23:02 +02:00
e872924622 Startup 2015-05-19 16:20:29 +02:00
7f9ce37510 Startup 2015-05-19 16:19:59 +02:00
4f0ab337f3 Startup 2015-05-19 16:17:38 +02:00
b0fce0e0ed Startup 2015-05-19 16:14:47 +02:00
245c1fc64e Configuration change: Motor collimatorY 2015-05-19 16:10:53 +02:00
e62737034b Configuration change: Motor collimatorX 2015-05-19 16:10:51 +02:00
00f3edad78 Startup 2015-05-19 16:09:10 +02:00
689d8529ec Closedown 2015-05-19 16:09:07 +02:00
7395c7c811 Configuration change: Motor collimatorY 2015-05-19 16:08:34 +02:00
1604934339 Startup 2015-05-19 16:08:00 +02:00
4a2cdf6be2 Closedown 2015-05-19 16:07:58 +02:00
3ebd113d2e Configuration change: Motor collimatorX 2015-05-19 16:07:56 +02:00
be561eb7b0 Configuration change: Motor collimatorY 2015-05-19 16:07:38 +02:00
b93ef343de Startup 2015-05-19 16:06:34 +02:00
3596839e28 Closedown 2015-05-19 16:06:32 +02:00
49bbeee0b7 Startup 2015-05-19 16:04:13 +02:00
151a9dab16 Closedown 2015-05-19 16:04:11 +02:00
cc82779378 Startup 2015-05-19 16:00:53 +02:00
24c5f94a99 Startup 2015-05-19 15:59:13 +02:00
f5fc748a0b Startup 2015-05-19 15:58:03 +02:00
524720786e Startup 2015-05-19 15:57:16 +02:00
2c2b9859c7 Startup 2015-05-19 15:56:36 +02:00
e83357d5da Startup 2015-05-19 15:52:56 +02:00
6d71c0c22b Startup 2015-05-19 15:50:43 +02:00
ada5c02195 Startup 2015-05-19 15:48:26 +02:00
3d8180ff5e Startup 2015-05-19 15:35:38 +02:00
77cda16ac3 Startup 2015-05-19 15:34:03 +02:00
96fa50137e Startup 2015-05-19 15:22:35 +02:00
9b9387ca70 Startup 2015-05-19 15:19:44 +02:00
27b765dc01 Startup 2015-05-19 15:14:32 +02:00
221973e9c0 Startup 2015-05-19 15:06:05 +02:00
95e89cf4ef Closedown 2015-05-19 15:04:30 +02:00
d922fb1625 Startup 2015-05-19 15:03:56 +02:00
7ab331dff6 Startup 2015-05-19 15:00:53 +02:00
78c5cfc63e Startup 2015-05-19 14:59:24 +02:00
4247aff564 Closedown 2015-05-19 14:59:01 +02:00
d551a2be2f Startup 2015-05-19 14:57:25 +02:00
d8f5130117 Startup 2015-05-19 14:55:41 +02:00
3a26269dc0 Closedown 2015-05-19 14:54:19 +02:00
f13138620b Closedown 2015-05-19 14:54:18 +02:00
c31b024187 Startup 2015-05-19 14:51:52 +02:00
6edb67ca02 Closedown 2015-05-19 14:49:05 +02:00
022d648010 Startup 2015-05-19 14:41:02 +02:00
020720a4f5 Startup 2015-05-19 14:39:28 +02:00
25c21bb565 Configuration change: Motor collimatorX 2015-05-19 14:35:45 +02:00
3a35137787 Startup 2015-05-19 14:34:34 +02:00
2e6bb08ee6 Startup 2015-05-19 14:32:20 +02:00
b81b8c9bd9 Startup 2015-05-19 14:15:20 +02:00
57bec78484 Closedown 2015-05-19 14:15:00 +02:00
45210739b2 Startup 2015-05-19 14:14:12 +02:00
b6d62fe3bc Startup 2015-05-19 14:00:23 +02:00
7c1870b48c Closedown 2015-05-19 13:58:45 +02:00
085889b1ee Closedown 2015-05-19 13:58:45 +02:00
0e1249c050 Configuration change: Motor collimatorX 2015-05-19 13:57:50 +02:00
2a6d7f428a Configuration change: Motor collimatorY 2015-05-19 13:57:24 +02:00
d8ca26acee Configuration change: Motor collimatorX 2015-05-19 13:53:29 +02:00
04a108c22d Startup 2015-05-19 13:45:57 +02:00
0a434d2cd8 Closedown 2015-05-19 13:45:46 +02:00
3788058946 Startup 2015-05-19 11:58:12 +02:00
ceee0210b1 Closedown 2015-05-19 11:58:09 +02:00
de240895ec Startup 2015-05-19 11:56:27 +02:00
99ad80ac40 Closedown 2015-05-19 11:56:24 +02:00
aca126907b Startup 2015-05-19 11:55:06 +02:00
18adf57ba9 Closedown 2015-05-19 11:55:04 +02:00
159c706149 Startup 2015-05-19 11:53:42 +02:00
1408bcb79c Closedown 2015-05-19 11:53:40 +02:00
7d03f3f344 Startup 2015-05-19 11:53:02 +02:00
17701024b0 Closedown 2015-05-19 11:53:00 +02:00
ad62072e71 Startup 2015-05-19 11:43:41 +02:00
778f6bfbce Closedown 2015-05-19 11:43:39 +02:00
b321053978 Startup 2015-05-19 11:42:38 +02:00
fc583465f0 Closedown 2015-05-19 11:42:34 +02:00
e87a7e799c Script execution 2015-05-19 11:27:10 +02:00
29d2ba0d8c Startup 2015-05-19 10:33:15 +02:00
696ef5786d Closedown 2015-05-19 10:31:57 +02:00
2b8d82d57d Closedown 2015-05-19 10:31:56 +02:00
8e366dd3ab Startup 2015-05-19 10:29:23 +02:00
f0c8e68fc6 Closedown 2015-05-19 09:30:38 +02:00
eabb3587f1 Startup 2015-05-19 09:22:07 +02:00
cbc0201480 Closedown 2015-05-12 15:20:19 +02:00
362cf8b766 Closedown 2015-05-12 15:20:18 +02:00
1b6b13e67e Script execution 2015-05-12 15:10:35 +02:00
5796e6addc Script execution 2015-05-12 14:57:37 +02:00
4887781920 Startup 2015-05-12 14:57:00 +02:00
95d4e2694d Closedown 2015-05-12 14:56:29 +02:00
983ca68fe3 Closedown 2015-05-12 14:56:29 +02:00
2fde7bbfc9 Startup 2015-05-12 14:55:01 +02:00
031a4bd76c Closedown 2015-05-12 14:54:35 +02:00
94698f5f77 Closedown 2015-05-12 14:54:35 +02:00
a5b7db763d Script execution 2015-05-12 14:54:30 +02:00
8e3ca33d45 Startup 2015-05-12 14:50:08 +02:00
bd88c4cc86 Closedown 2015-05-12 14:49:48 +02:00
f15e12f2da Startup 2015-05-12 14:48:48 +02:00
4962afe612 Closedown 2015-05-12 14:48:42 +02:00
9420f301f0 Startup 2015-05-12 14:44:36 +02:00
d6aa1b7094 Closedown 2015-05-12 14:44:14 +02:00
aa0389aa25 Closedown 2015-05-12 14:44:14 +02:00
71b8a91be2 Startup 2015-05-12 14:43:41 +02:00
8a8da6c6a5 Closedown 2015-05-12 14:43:39 +02:00
c030f28542 Configuration change: Controller 2015-05-12 14:43:36 +02:00
bf44e40d6c Configuration change: Controller 2015-05-12 14:43:22 +02:00
6a9cbb163f Startup 2015-05-12 14:42:31 +02:00
44c10812e6 Closedown 2015-05-12 14:42:16 +02:00
fcc7193d7c Configuration change: Controller 2015-05-12 14:41:18 +02:00
49d6fad097 Startup 2015-05-12 14:41:02 +02:00
5117dc9806 Closedown 2015-05-12 14:40:58 +02:00
38319fac5a Configuration change: Controller 2015-05-12 14:40:55 +02:00
58a18663c6 Startup 2015-05-12 14:40:19 +02:00
d03e2006fd Closedown 2015-05-12 14:40:16 +02:00
eb640ca170 Configuration change: Controller 2015-05-12 14:40:11 +02:00
09052fb953 Startup 2015-05-12 14:34:38 +02:00
ff3f26125e Closedown 2015-05-12 14:22:12 +02:00
afcd197fbb Startup 2015-05-12 14:21:46 +02:00
b121ef287d Closedown 2015-05-12 14:20:03 +02:00
1b4cef5fa0 Startup 2015-05-12 14:19:56 +02:00
bc584877cd Closedown 2015-05-12 14:19:33 +02:00
ab2d5f7795 Configuration change: Controller 2015-05-12 14:19:22 +02:00
4bbab2bc7b Startup 2015-05-12 14:18:53 +02:00
364ef9660c Closedown 2015-05-12 14:18:09 +02:00
30d399ee15 Startup 2015-05-12 14:17:59 +02:00
3335114856 Closedown 2015-05-12 14:16:36 +02:00
940a942248 Startup 2015-05-12 14:15:29 +02:00
a1245cf2fc Closedown 2015-05-12 14:12:18 +02:00
b64d8c5836 Startup 2015-05-12 14:10:55 +02:00
ad27b234bf Closedown 2015-04-02 15:00:00 +02:00
cbc7858aec Startup 2015-04-02 14:58:10 +02:00
5ae8c12644 Closedown 2015-04-02 14:57:42 +02:00
6a6e2c62d6 Startup 2015-04-02 14:57:32 +02:00
a4dcfd3dca Closedown 2015-04-02 14:56:16 +02:00
a5d05e57e8 Startup 2015-04-02 14:51:45 +02:00
ee5790e355 Closedown 2015-04-02 14:50:15 +02:00
6d475ee6a5 Startup 2015-04-02 14:47:53 +02:00
b9bcf598f0 Closedown 2015-04-02 14:46:28 +02:00
c3a01802f2 Startup 2015-04-02 14:44:42 +02:00
d7e67af133 Closedown 2015-04-02 14:38:49 +02:00
3a5db6b29d Startup 2015-04-02 14:33:53 +02:00
86f6e1c51c Closedown 2015-04-02 14:33:51 +02:00
b6f03a7858 Startup 2015-04-02 14:30:52 +02:00
69f4fed4f2 Closedown 2015-04-02 14:30:44 +02:00
39ea802f71 Startup 2015-04-02 14:30:10 +02:00
7e072828a3 Closedown 2015-04-02 14:30:08 +02:00
8fb668c8bc Startup 2015-04-02 14:26:53 +02:00
2f70358b16 Closedown 2015-04-02 14:26:51 +02:00
78d6b337ec Startup 2015-04-02 14:23:20 +02:00
8643920744 Closedown 2015-04-02 14:23:18 +02:00
1cee7a14de Startup 2015-04-02 14:22:33 +02:00
0246f9e12d Closedown 2015-04-02 14:22:31 +02:00
fdde17f1ee Startup 2015-04-02 14:22:01 +02:00
bbb32fcf46 Closedown 2015-04-02 14:18:45 +02:00
1bd35955cd Startup 2015-04-02 14:18:39 +02:00
7716e375f5 Closedown 2015-04-02 14:18:37 +02:00
abcd31c9b0 Startup 2015-04-02 14:18:14 +02:00
edb5e9dc87 Closedown 2015-04-02 14:18:12 +02:00
3a5b6bbe15 Startup 2015-04-02 14:15:45 +02:00
1df5934ebb Closedown 2015-04-02 14:15:43 +02:00
f317095922 Startup 2015-04-02 14:12:32 +02:00
550e45f1c5 Closedown 2015-04-02 14:12:29 +02:00
810c020e9b Startup 2015-04-02 14:09:24 +02:00
4df68f92b1 Closedown 2015-04-01 18:45:21 +02:00
e383316764 Startup 2015-04-01 18:41:58 +02:00
3a5527cf90 Closedown 2015-04-01 18:41:03 +02:00
7c9157d392 Configuration change: Motor slit1HBlade2 2015-04-01 18:23:39 +02:00
9a0a072df3 Configuration change: Motor slit1HBlade1 2015-04-01 18:23:29 +02:00
cb4728ebf0 Startup 2015-04-01 18:22:47 +02:00
56024333d6 Closedown 2015-04-01 18:21:17 +02:00
f742438366 Startup 2015-04-01 18:20:40 +02:00
533e494310 Closedown 2015-04-01 18:20:15 +02:00
3a0599f59b Configuration change: Motor slit1VBlade2 2015-04-01 18:19:11 +02:00
cf867ef6b7 Configuration change: Motor slit1VBlade1 2015-04-01 18:19:05 +02:00
b0427aa8b9 Configuration change: Motor slit1HBlade2 2015-04-01 18:18:56 +02:00
542dadb917 Configuration change: Motor slit1HBlade1 2015-04-01 18:18:47 +02:00
b2f6179dd2 Startup 2015-04-01 18:16:00 +02:00
502cf1f3b9 Startup 2015-04-01 18:14:08 +02:00
e655be4c8e Closedown 2015-04-01 18:13:55 +02:00
5ca86b2286 Startup 2015-04-01 18:13:43 +02:00
621e32035d Closedown 2015-04-01 18:11:09 +02:00
ec9d03be5e Startup 2015-04-01 18:10:55 +02:00
ca7edc811b Closedown 2015-04-01 18:08:59 +02:00
2c9bd00063 Startup 2015-04-01 18:08:51 +02:00
4c100a8248 Closedown 2015-04-01 18:07:47 +02:00
07e9aeaf38 Startup 2015-04-01 18:07:22 +02:00
cf59ef626b Closedown 2015-04-01 18:07:01 +02:00
b8d4b5eea5 Startup 2015-04-01 17:01:58 +02:00
aeeb5bd570 Closedown 2015-04-01 17:01:56 +02:00
bcf2c9244f Startup 2015-04-01 17:01:28 +02:00
f1f49bbc6c Startup 2015-04-01 17:00:47 +02:00
c22799a90a Closedown 2015-04-01 17:00:46 +02:00
bda88a8b36 Startup 2015-04-01 17:00:17 +02:00
494effb977 Closedown 2015-04-01 17:00:15 +02:00
df45e6180a Startup 2015-04-01 16:59:19 +02:00
9198ceb1dc Closedown 2015-04-01 16:59:06 +02:00
5cba7326e6 Startup 2015-04-01 16:57:58 +02:00
121ffd13c4 Closedown 2015-04-01 16:57:16 +02:00
30e21d445c Startup 2015-04-01 16:56:51 +02:00
4bdd94eee0 Closedown 2015-04-01 16:56:37 +02:00
fb0db978ef Startup 2015-04-01 16:18:37 +02:00
2b45bf59ae Closedown 2015-04-01 16:15:45 +02:00
e738ef9168 Closedown 2015-04-01 16:15:29 +02:00
43f9c56552 Configuration change: Controller 2015-04-01 16:15:26 +02:00
3fa1b5b31b Startup 2015-04-01 16:12:12 +02:00
7d351d50ce Closedown 2015-04-01 16:12:10 +02:00
d5a6ba73cb Configuration change: Positionable scintillatorZ 2015-04-01 16:12:01 +02:00
9f5089f2a1 Configuration change: Motor scintillatorY 2015-04-01 16:11:50 +02:00
f4e12da460 Startup 2015-04-01 16:11:24 +02:00
cc94614780 Closedown 2015-04-01 16:11:23 +02:00
d237c7eacb Configuration change: Motor apertureX 2015-04-01 16:11:19 +02:00
6e99c501f5 Configuration change: Motor apertureY 2015-04-01 16:11:11 +02:00
7f4176df51 Configuration change: Motor collimatorX 2015-04-01 16:10:51 +02:00
dd0aece313 Configuration change: Motor collimatorY 2015-04-01 16:10:45 +02:00
8f965b0785 Configuration change: Motor detectorY 2015-04-01 16:10:26 +02:00
ef4a079698 Configuration change: Motor detectorZ 2015-04-01 16:10:13 +02:00
167c2a165f Startup 2015-04-01 16:00:14 +02:00
30d85632fc Closedown 2015-04-01 16:00:13 +02:00
696b01d531 Configuration change: MotorGroupDiscretePositioner collimator 2015-04-01 15:56:43 +02:00
0b5d5a7908 Startup 2015-04-01 15:55:25 +02:00
a59b6020d3 Startup 2015-04-01 15:45:53 +02:00
c346225a99 Configuration change: MotorGroupDiscretePositioner collimator 2015-04-01 15:34:29 +02:00
1312a15de0 Configuration change: MotorGroupDiscretePositioner collimator 2015-04-01 15:33:21 +02:00
d069cee761 Startup 2015-04-01 15:33:11 +02:00
5af590a0d0 Closedown 2015-04-01 15:32:10 +02:00
d0dcb6391b Startup 2015-04-01 15:32:08 +02:00
3f814a24ad Closedown 2015-04-01 15:31:44 +02:00
4dfd7e8265 Configuration change: MotorGroupDiscretePositioner collimator 2015-04-01 15:29:23 +02:00
8f67f8e9bc Configuration change: MotorGroupDiscretePositioner collimator 2015-04-01 15:29:03 +02:00
2004445c72 Configuration change: MotorGroupDiscretePositioner collimator 2015-04-01 15:28:35 +02:00
fa1ac1d9ec Startup 2015-04-01 15:28:20 +02:00
96b8e943c7 Closedown 2015-04-01 15:26:43 +02:00
4420d6ab0d Startup 2015-04-01 15:25:54 +02:00
648f990b06 Closedown 2015-04-01 15:25:52 +02:00
0ff81a46bb Configuration change: MotorGroupDiscretePositioner collimator 2015-04-01 15:25:47 +02:00
d305556a4b Startup 2015-04-01 15:25:17 +02:00
ba1f7430b8 Closedown 2015-04-01 15:25:16 +02:00
7c38906998 Configuration change: MotorGroupDiscretePositioner collimator 2015-04-01 15:25:12 +02:00
5c8b13108e Startup 2015-04-01 15:18:23 +02:00
3c2aca6de7 Closedown 2015-04-01 15:18:22 +02:00
f4b3e84322 Startup 2015-04-01 15:16:54 +02:00
3eb4dac71f Startup 2015-04-01 15:15:01 +02:00
07152b7220 Closedown 2015-04-01 15:14:59 +02:00
b74cc8cefd Startup 2015-04-01 15:14:39 +02:00
344281b25d Closedown 2015-04-01 15:14:37 +02:00
fc2182db4f Startup 2015-04-01 15:13:40 +02:00
759ed403e7 Startup 2015-04-01 15:11:19 +02:00
cd69dacca1 Closedown 2015-04-01 15:11:17 +02:00
c9ac071355 Startup 2015-04-01 15:09:29 +02:00
9297774859 Closedown 2015-04-01 15:09:28 +02:00
713aac996e Startup 2015-04-01 15:08:07 +02:00
a113025466 Closedown 2015-04-01 15:08:02 +02:00
55f89918e8 Startup 2015-04-01 15:06:42 +02:00
0450b114b0 Closedown 2015-04-01 15:06:33 +02:00
b995795353 Startup 2015-04-01 15:06:26 +02:00
ac522ee347 Closedown 2015-04-01 15:06:21 +02:00
78de81d261 Startup 2015-04-01 15:05:14 +02:00
e5426c7002 Closedown 2015-04-01 15:05:13 +02:00
00b5aca9af Startup 2015-04-01 15:03:30 +02:00
c5835b8dfe Closedown 2015-04-01 15:03:29 +02:00
f3ae53d4c0 Startup 2015-04-01 15:01:12 +02:00
f8b6ecefee Closedown 2015-04-01 15:01:11 +02:00
d7f8cecd9f Startup 2015-04-01 14:58:05 +02:00
6734648cab Closedown 2015-04-01 14:58:04 +02:00
a4e8225e7b Startup 2015-04-01 14:57:36 +02:00
608ceeeb55 Closedown 2015-04-01 14:57:35 +02:00
a70c066f30 Configuration change: Motor detectorY 2015-04-01 14:57:31 +02:00
d33f044182 Configuration change: Motor detectorZ 2015-04-01 14:57:16 +02:00
62865dc66e Startup 2015-04-01 14:56:48 +02:00
edcbaae9fa Closedown 2015-04-01 14:56:47 +02:00
a359c89fc7 Configuration change: Positionable scintillatorZ 2015-04-01 14:54:55 +02:00
f8c4f8299d Configuration change: Positionable scintillatorZ 2015-04-01 14:54:36 +02:00
755e6041ff Startup 2015-04-01 14:54:00 +02:00
c1dac026ea Startup 2015-04-01 14:50:17 +02:00
463632802e Closedown 2015-04-01 14:45:08 +02:00
2fcf6d6fb8 Startup 2015-04-01 14:44:50 +02:00
e5e782d667 Closedown 2015-04-01 14:44:35 +02:00
ce14a8a1b5 Startup 2015-04-01 14:43:44 +02:00
1464bb1657 Closedown 2015-04-01 14:43:28 +02:00
7e95b277e8 Startup 2015-04-01 14:42:23 +02:00
76e10975ec Closedown 2015-04-01 14:42:08 +02:00
e988c4a8f1 Startup 2015-04-01 14:39:25 +02:00
a52e418625 Closedown 2015-04-01 14:39:23 +02:00
aabdc19d9f Startup 2015-04-01 14:35:49 +02:00
5ea4e8dc7e Closedown 2015-04-01 14:33:36 +02:00
3f179b8c64 Startup 2015-04-01 14:33:28 +02:00
55855298e1 Closedown 2015-04-01 14:24:03 +02:00
6abac8c053 Startup 2015-04-01 14:19:04 +02:00
70dc8bc2b7 Closedown 2015-04-01 14:19:03 +02:00
bb5f760bd1 Startup 2015-04-01 14:18:35 +02:00
66cf9910ea Closedown 2015-04-01 14:18:34 +02:00
f04c78ec54 Startup 2015-04-01 14:15:44 +02:00
c45dca2a18 Closedown 2015-04-01 14:13:19 +02:00
9e28b7cc29 Startup 2015-04-01 14:08:34 +02:00
b4e8c0d7a8 Closedown 2015-04-01 14:08:33 +02:00
af206b7305 Configuration change: Positionable scintillatorZ 2015-04-01 14:08:30 +02:00
5bfa7708fe Startup 2015-04-01 14:07:55 +02:00
a11297b228 Closedown 2015-04-01 14:07:54 +02:00
7370a02952 Startup 2015-04-01 14:07:19 +02:00
fa1f8a64c2 Closedown 2015-04-01 14:07:16 +02:00
d5d6dea1aa Startup 2015-04-01 14:05:34 +02:00
20bbf8d2dc Closedown 2015-04-01 14:01:55 +02:00
9bf3c21d27 Configuration change: Motor scintillatorY 2015-04-01 13:51:49 +02:00
0338b02d84 Startup 2015-04-01 13:51:42 +02:00
2956ac3737 Closedown 2015-04-01 13:51:41 +02:00
d0332f77a1 Startup 2015-04-01 13:50:24 +02:00
2de843a2f1 Closedown 2015-04-01 13:50:22 +02:00
48d2fa2594 Configuration change: Motor collimatorY 2015-04-01 13:50:19 +02:00
d4b19734ce Configuration change: Motor collimatorX 2015-04-01 13:50:12 +02:00
522737d30a Startup 2015-04-01 13:49:17 +02:00
76e414d34f Closedown 2015-04-01 13:49:15 +02:00
3e029abf3c Configuration change: Motor apertureY 2015-04-01 13:46:27 +02:00
6c151f8273 Configuration change: Motor apertureX 2015-04-01 13:46:17 +02:00
e177fbc476 Startup 2015-04-01 13:46:05 +02:00
78639ecde2 Closedown 2015-04-01 13:46:04 +02:00
7b0aa7efef Startup 2015-04-01 13:45:50 +02:00
691549fdee Closedown 2015-04-01 13:45:31 +02:00
fec09f9d8f Configuration change: Motor beamstopX 2015-04-01 13:45:10 +02:00
6e83f11d54 Startup 2015-04-01 13:44:59 +02:00
4cf2ecbd74 Closedown 2015-04-01 13:44:40 +02:00
c65aca8926 Configuration change: Motor beamstopY 2015-04-01 13:44:39 +02:00
f57bc637c7 Configuration change: Motor beamstopZ 2015-04-01 13:44:29 +02:00
8084564fc8 Startup 2015-04-01 13:43:19 +02:00
566b4185cf Closedown 2015-04-01 13:43:00 +02:00
73cfa1fcf7 Startup 2015-04-01 13:42:45 +02:00
eb0dab3a54 Closedown 2015-04-01 13:42:44 +02:00
b32adcf021 Startup 2015-04-01 13:42:19 +02:00
a6f47c6006 Closedown 2015-04-01 13:41:26 +02:00
2133c79d5f Startup 2015-04-01 13:33:11 +02:00
4473696bc7 Closedown 2015-04-01 13:32:50 +02:00
34cdd83ad0 Startup 2015-04-01 13:32:27 +02:00
297fcf82af Closedown 2015-04-01 13:32:06 +02:00
51b503269c Startup 2015-04-01 13:30:03 +02:00
33e6b62255 Closedown 2015-04-01 13:29:43 +02:00
4a23586fdd Startup 2015-04-01 13:29:23 +02:00
dbe9a18806 Closedown 2015-04-01 13:29:02 +02:00
3a5886ef33 Closedown 2015-04-01 13:28:39 +02:00
ac3905dc40 Startup 2015-04-01 13:28:19 +02:00
c376f020da Closedown 2015-04-01 13:28:19 +02:00
4cedf02cbf Startup 2015-04-01 13:26:05 +02:00
048c55b5e9 Closedown 2015-04-01 13:25:34 +02:00
ab162579d1 Startup 2015-04-01 13:23:01 +02:00
9807b981da Closedown 2015-04-01 12:12:05 +02:00
4a498e16d4 Startup 2015-04-01 12:06:43 +02:00
6491beb349 Closedown 2015-04-01 11:41:55 +02:00
2987b97a49 Startup 2015-04-01 11:33:41 +02:00
961e2b8b87 Closedown 2015-04-01 11:31:51 +02:00
d030b8a5ef Startup 2015-04-01 11:31:46 +02:00
3e31b9b04b Closedown 2015-04-01 11:30:59 +02:00
28e903b10b Startup 2015-04-01 11:30:26 +02:00
4dd0eb328a Startup 2015-04-01 11:29:44 +02:00
5b6e7e2636 Closedown 2015-04-01 11:29:21 +02:00
301dc3ea61 Startup 2015-04-01 11:29:15 +02:00
59c84b2100 Startup 2015-04-01 11:25:59 +02:00
e2109d00ab Startup 2015-04-01 11:21:40 +02:00
bb175076ad Closedown 2015-04-01 11:21:23 +02:00
68fb7b8461 Startup 2015-04-01 11:11:06 +02:00
71a7030d07 Closedown 2015-04-01 11:07:21 +02:00
2b74ba8755 Configuration change: Controller 2015-04-01 11:06:15 +02:00
6433308333 Startup 2015-04-01 11:05:36 +02:00
1b49b9f273 Closedown 2015-04-01 11:05:35 +02:00
2cc7b9ee9e Startup 2015-04-01 11:04:59 +02:00
0b70b7bc9a Closedown 2015-03-27 13:59:36 +01:00
2843036a09 Startup 2015-03-27 13:59:34 +01:00
81b4f60699 Closedown 2015-03-27 11:52:49 +01:00
7ca23c3d6e Startup 2015-03-27 11:50:26 +01:00
bd0e5e4f37 Startup 2015-03-27 11:48:39 +01:00
f2e3607c44 Startup 2015-03-27 11:46:58 +01:00
806a6df018 Startup 2015-03-27 11:45:12 +01:00
01b11a9640 Startup 2015-03-27 11:44:11 +01:00
12bf031026 Startup 2015-03-27 11:38:23 +01:00
da5b3d3db4 Startup 2015-03-27 11:36:13 +01:00
a888d4bc99 Closedown 2015-03-27 11:35:06 +01:00
a2f70cea17 Startup 2015-03-27 11:34:03 +01:00
890dc59386 Startup 2015-03-27 11:21:42 +01:00
614e589e3c Startup 2015-03-27 11:20:50 +01:00
959fb0730c Closedown 2015-03-27 11:20:49 +01:00
68 changed files with 1781 additions and 587 deletions

21
.gitignore vendored
View File

@@ -1,9 +1,14 @@
/data
/sessions
/context
/log
/plugins
/extensions
script/cachedir
/*
!/script
!/plugins
!/devices
!/config
script/Lib
script/*.class
script/**/cachedir
script/**/*.class
script/**/*.pyc
script/**/*.*~
plugins/*.class
plugins/**/*.*~
config/**/*.*~
devices/**/*.*~

View File

@@ -1,19 +1,28 @@
#Fri Mar 27 10:38:34 CET 2015
dataFile={data}/{year}_{month}/{date}/{date}_{time}_{context}
#Tue Sep 01 09:37:24 CEST 2015
autoSaveScanData=true
createSessionFiles=false
dataFilesCreation=true
dataPath={data}/{year}_{month}/{date}/{date}_{time}_{exec}
dataProvider=default
dataScanFlushRecords=false
dataScanStrategy=default
devicePoolFile={config}/devices.properties
deviceUpdateStrategyFile={config}/update.properties
imageSourcesFile={config}/imaging.properties
logDaysToLive=-1
logLevel=Fine
logLevelConsole=Off
logPath={logs}/{date}_{time}
scriptType=py
serverEnabled=false
serverPort=8080
serverEnabled=true
serverPort=8085
simulation=false
tasksFile={config}/tasks.properties
terminalEnabled=false
terminalPort=3579
userAuthenticator=
userManagement=false
versionTrackingEnabled=true
versionTrackingLogin=
versionTrackingRemote=
versionTrackingLogin={config}/agkey
versionTrackingManual=false
versionTrackingRemote=ssh\://git@github.psi.ch\:7999/psd/x10sa.git

27
config/config.properties~ Normal file
View 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

View File

@@ -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|

View 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

View File

@@ -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

View File

@@ -0,0 +1 @@
Microscope.java=enabled

19
config/setup.properties Normal file
View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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
View 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
View 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

View 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

View 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

View 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
View 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

View 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

View 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
View 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
View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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
View 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
View 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
View 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
View 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="&lt;"/>
<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="&gt;"/>
<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
View 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
View 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
View 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
View 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)

View File

@@ -1,9 +0,0 @@
import java.util.logging.Logger as Logger
logger = Logger.getLogger("back")
logger.info("Started")
asd

View File

@@ -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
View 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")

View File

@@ -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")

View File

@@ -1,6 +0,0 @@
def calc(a){
a*2
}

View File

@@ -1,5 +0,0 @@
function calc(a) {
return a * 5;
}

View File

@@ -1,3 +0,0 @@
def calc(a):
return a*2

View File

@@ -1,7 +0,0 @@
package script
class cls {
double val = 1.0
void exec(){
println "Exec"
}
}

View File

@@ -1,4 +0,0 @@
class cls:
def execute(self):
print "Execute"

View File

@@ -1,3 +0,0 @@
def calc(a):
return a*2

View File

@@ -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()

View File

@@ -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))

View File

@@ -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!!!!
"""

View File

@@ -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()
}

View File

@@ -1,5 +0,0 @@
"""
Line Scan
"""
a= lscan(inp,(sin,out,arr),0,40,20,0.1)

View File

@@ -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)

View File

@@ -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

View File

@@ -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)

View File

@@ -1,5 +0,0 @@
"""
Area Scan
"""
ascan((dev,out),(sin,out,arr),(0,10),(20,30),(100,100))

View File

@@ -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)