Merge branch 'master' of gitlab.psi.ch-samenv:samenv/sea
This commit is contained in:
9
tcl/ami136.addon
Normal file
9
tcl/ami136.addon
Normal file
@ -0,0 +1,9 @@
|
||||
addonDesc = ami136 He level meter
|
||||
|
||||
makenv hel -driver ami136
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -2,7 +2,7 @@ Comment: 30.07.2021, FP and CMN, 16mK--2.3K extrapolated elsewhere
|
||||
Sensor Model: RX-1000-BF0.007
|
||||
Serial Number: U08127
|
||||
Data Format: 4 (Log Ohms/Kelvin)
|
||||
SetPoint Limit: 0.0282 (Kelvin)
|
||||
SetPoint Limit: 20 (Kelvin)
|
||||
Temperature coefficient: 1 (Negative)
|
||||
Number of Breakpoints: 198
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
Sensor Model: RX-1000-BF0.007
|
||||
Serial Number: U08130
|
||||
Data Format: 4 (Log Ohms/Kelvin)
|
||||
SetPoint Limit: 0.0167 (Kelvin)
|
||||
SetPoint Limit: 10 (Kelvin)
|
||||
Temperature coefficient: 1 (Negative)
|
||||
Number of Breakpoints: 198
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
Sensor Model: CX-1030-CU 2022-02-21
|
||||
Sensor Model: CX-1030-SD 2018-11-20
|
||||
Serial Number: X137461
|
||||
Data Format: 4 (Log Ohms/Kelvin)
|
||||
SetPoint Limit: 330.0 (Kelvin)
|
||||
@ -7,202 +7,202 @@ Number of Breakpoints: 199
|
||||
|
||||
No. Units Temperature (K)
|
||||
|
||||
1 1.850262 330.0000
|
||||
2 1.872411 310.0000
|
||||
3 1.882317 301.5330
|
||||
4 1.892304 293.2973
|
||||
5 1.902354 285.2865
|
||||
6 1.912463 277.4945
|
||||
7 1.922624 269.9153
|
||||
8 1.932832 262.5431
|
||||
9 1.943081 255.3723
|
||||
10 1.953365 248.3974
|
||||
11 1.963678 241.6129
|
||||
12 1.974018 235.0138
|
||||
13 1.984381 228.5949
|
||||
14 1.994764 222.3513
|
||||
15 2.005163 216.2782
|
||||
16 2.015577 210.3710
|
||||
17 2.026001 204.6252
|
||||
18 2.036432 199.0363
|
||||
19 2.046867 193.6000
|
||||
20 2.057303 188.3123
|
||||
21 2.067736 183.1689
|
||||
22 2.078163 178.1660
|
||||
23 2.088580 173.2998
|
||||
24 2.098985 168.5665
|
||||
25 2.109374 163.9624
|
||||
26 2.119744 159.4842
|
||||
27 2.130095 155.1282
|
||||
28 2.140425 150.8912
|
||||
29 2.150733 146.7699
|
||||
30 2.161020 142.7612
|
||||
31 2.171286 138.8620
|
||||
32 2.181533 135.0693
|
||||
33 2.191754 131.3801
|
||||
34 2.201938 127.7918
|
||||
35 2.212076 124.3014
|
||||
36 2.222164 120.9064
|
||||
37 2.232210 117.6041
|
||||
38 2.242221 114.3920
|
||||
39 2.252206 111.2676
|
||||
40 2.262166 108.2285
|
||||
41 2.272098 105.2725
|
||||
42 2.282004 102.3972
|
||||
43 2.291883 99.60045
|
||||
44 2.301733 96.88007
|
||||
45 2.311557 94.23400
|
||||
46 2.321355 91.66019
|
||||
47 2.331126 89.15669
|
||||
48 2.340872 86.72156
|
||||
49 2.350593 84.35294
|
||||
50 2.360289 82.04902
|
||||
51 2.369962 79.80803
|
||||
52 2.379611 77.62824
|
||||
53 2.389238 75.50799
|
||||
54 2.398844 73.44565
|
||||
55 2.408430 71.43963
|
||||
56 2.417996 69.48841
|
||||
57 2.427542 67.59048
|
||||
58 2.437071 65.74439
|
||||
59 2.446581 63.94872
|
||||
60 2.456075 62.20210
|
||||
61 2.465551 60.50318
|
||||
62 2.475011 58.85066
|
||||
63 2.484456 57.24328
|
||||
64 2.493886 55.67980
|
||||
65 2.503301 54.15902
|
||||
66 2.512701 52.67978
|
||||
67 2.522088 51.24095
|
||||
68 2.531459 49.84141
|
||||
69 2.540815 48.48010
|
||||
70 2.550156 47.15596
|
||||
71 2.559481 45.86800
|
||||
72 2.568790 44.61521
|
||||
73 2.578084 43.39664
|
||||
74 2.587360 42.21135
|
||||
75 2.596621 41.05844
|
||||
76 2.605864 39.93701
|
||||
77 2.615090 38.84622
|
||||
78 2.624300 37.78522
|
||||
79 2.633492 36.75319
|
||||
80 2.642669 35.74936
|
||||
81 2.651832 34.77294
|
||||
82 2.660985 33.82319
|
||||
83 2.670129 32.89938
|
||||
84 2.679266 32.00080
|
||||
85 2.688398 31.12677
|
||||
86 2.697526 30.27661
|
||||
87 2.706648 29.44966
|
||||
88 2.715760 28.64531
|
||||
89 2.724862 27.86292
|
||||
90 2.733951 27.10191
|
||||
91 2.743025 26.36167
|
||||
92 2.752082 25.64166
|
||||
93 2.761123 24.94131
|
||||
94 2.770148 24.26009
|
||||
95 2.779160 23.59748
|
||||
96 2.788161 22.95297
|
||||
97 2.797154 22.32605
|
||||
98 2.806142 21.71626
|
||||
99 2.815129 21.12313
|
||||
100 2.824117 20.54620
|
||||
101 2.833110 19.98502
|
||||
102 2.842110 19.43917
|
||||
103 2.851119 18.90823
|
||||
104 2.860139 18.39179
|
||||
105 2.869171 17.88946
|
||||
106 2.878218 17.40085
|
||||
107 2.887281 16.92558
|
||||
108 2.896361 16.46329
|
||||
109 2.905459 16.01363
|
||||
110 2.914579 15.57626
|
||||
111 2.923720 15.15082
|
||||
112 2.932886 14.73701
|
||||
113 2.942077 14.33450
|
||||
114 2.951295 13.94298
|
||||
115 2.960544 13.56216
|
||||
116 2.969824 13.19174
|
||||
117 2.979138 12.83143
|
||||
118 2.988488 12.48097
|
||||
119 2.997878 12.14008
|
||||
120 3.007311 11.80850
|
||||
121 3.016788 11.48597
|
||||
122 3.026314 11.17226
|
||||
123 3.035891 10.86711
|
||||
124 3.045522 10.57030
|
||||
125 3.055212 10.28159
|
||||
126 3.064964 10.00077
|
||||
127 3.074781 9.727624
|
||||
128 3.084665 9.461935
|
||||
129 3.094618 9.203502
|
||||
130 3.104643 8.952128
|
||||
131 3.114742 8.707619
|
||||
132 3.124920 8.469789
|
||||
133 3.135180 8.238455
|
||||
134 3.145525 8.013439
|
||||
135 3.155959 7.794568
|
||||
136 3.166484 7.581676
|
||||
137 3.177102 7.374599
|
||||
138 3.187813 7.173177
|
||||
139 3.198620 6.977257
|
||||
140 3.209523 6.786688
|
||||
141 3.220523 6.601324
|
||||
142 3.231622 6.421023
|
||||
143 3.242822 6.245646
|
||||
144 3.254129 6.075059
|
||||
145 3.265545 5.909132
|
||||
146 3.277075 5.747736
|
||||
147 3.288724 5.590749
|
||||
148 3.300497 5.438050
|
||||
149 3.312397 5.289521
|
||||
150 3.324427 5.145049
|
||||
151 3.336590 5.004522
|
||||
152 3.348889 4.867834
|
||||
153 3.361329 4.734880
|
||||
154 3.373911 4.605557
|
||||
155 3.386639 4.479766
|
||||
156 3.399516 4.357410
|
||||
157 3.412545 4.238397
|
||||
158 3.425730 4.122634
|
||||
159 3.439074 4.010033
|
||||
160 3.452584 3.900507
|
||||
161 3.466264 3.793973
|
||||
162 3.480120 3.690349
|
||||
163 3.494156 3.589555
|
||||
164 3.508381 3.491514
|
||||
165 3.522798 3.396150
|
||||
166 3.537416 3.303392
|
||||
167 3.552240 3.213166
|
||||
168 3.567277 3.125406
|
||||
169 3.582534 3.040042
|
||||
170 3.598016 2.957009
|
||||
171 3.613729 2.876245
|
||||
172 3.629679 2.797686
|
||||
173 3.645872 2.721273
|
||||
174 3.662313 2.646948
|
||||
175 3.679009 2.574652
|
||||
176 3.695966 2.504331
|
||||
177 3.713188 2.435930
|
||||
178 3.730682 2.369398
|
||||
179 3.748450 2.304683
|
||||
180 3.766493 2.241735
|
||||
181 3.784809 2.180507
|
||||
182 3.803400 2.120951
|
||||
183 3.822270 2.063022
|
||||
184 3.841422 2.006675
|
||||
185 3.860861 1.951866
|
||||
186 3.880608 1.898555
|
||||
187 3.900697 1.846700
|
||||
188 3.921159 1.796262
|
||||
189 3.942012 1.747201
|
||||
190 3.963250 1.699479
|
||||
191 3.984864 1.653062
|
||||
192 4.006851 1.607912
|
||||
193 4.029226 1.563995
|
||||
194 4.052005 1.521278
|
||||
195 4.075207 1.479727
|
||||
196 4.098850 1.439312
|
||||
197 4.122955 1.400000
|
||||
198 4.265975 1.200000
|
||||
199 4.444104 1.000000
|
||||
1 1.548341 330.0000
|
||||
2 1.566886 310.0000
|
||||
3 1.575186 301.5330
|
||||
4 1.583533 293.2973
|
||||
5 1.591922 285.2865
|
||||
6 1.600348 277.4945
|
||||
7 1.608807 269.9153
|
||||
8 1.617293 262.5431
|
||||
9 1.625802 255.3723
|
||||
10 1.634326 248.3974
|
||||
11 1.642863 241.6129
|
||||
12 1.651409 235.0138
|
||||
13 1.659960 228.5949
|
||||
14 1.668514 222.3513
|
||||
15 1.677068 216.2782
|
||||
16 1.685619 210.3710
|
||||
17 1.694164 204.6252
|
||||
18 1.702701 199.0363
|
||||
19 1.711225 193.6000
|
||||
20 1.719734 188.3123
|
||||
21 1.728225 183.1689
|
||||
22 1.736695 178.1660
|
||||
23 1.745141 173.2998
|
||||
24 1.753560 168.5665
|
||||
25 1.761950 163.9624
|
||||
26 1.770307 159.4842
|
||||
27 1.778629 155.1282
|
||||
28 1.786913 150.8912
|
||||
29 1.795158 146.7699
|
||||
30 1.803361 142.7612
|
||||
31 1.811523 138.8620
|
||||
32 1.819645 135.0693
|
||||
33 1.827726 131.3801
|
||||
34 1.835766 127.7918
|
||||
35 1.843766 124.3014
|
||||
36 1.851726 120.9064
|
||||
37 1.859646 117.6041
|
||||
38 1.867526 114.3920
|
||||
39 1.875366 111.2676
|
||||
40 1.883166 108.2285
|
||||
41 1.890927 105.2725
|
||||
42 1.898649 102.3972
|
||||
43 1.906332 99.60045
|
||||
44 1.913976 96.88007
|
||||
45 1.921583 94.23400
|
||||
46 1.929152 91.66019
|
||||
47 1.936686 89.15669
|
||||
48 1.944184 86.72156
|
||||
49 1.951649 84.35294
|
||||
50 1.959080 82.04902
|
||||
51 1.966479 79.80803
|
||||
52 1.973846 77.62824
|
||||
53 1.981182 75.50799
|
||||
54 1.988488 73.44565
|
||||
55 1.995763 71.43963
|
||||
56 2.003008 69.48841
|
||||
57 2.010223 67.59048
|
||||
58 2.017406 65.74439
|
||||
59 2.024559 63.94872
|
||||
60 2.031681 62.20210
|
||||
61 2.038773 60.50318
|
||||
62 2.045833 58.85066
|
||||
63 2.052862 57.24328
|
||||
64 2.059860 55.67980
|
||||
65 2.066827 54.15902
|
||||
66 2.073763 52.67978
|
||||
67 2.080667 51.24095
|
||||
68 2.087541 49.84141
|
||||
69 2.094382 48.48010
|
||||
70 2.101193 47.15596
|
||||
71 2.107971 45.86800
|
||||
72 2.114719 44.61521
|
||||
73 2.121434 43.39664
|
||||
74 2.128118 42.21135
|
||||
75 2.134770 41.05844
|
||||
76 2.141391 39.93701
|
||||
77 2.147979 38.84622
|
||||
78 2.154536 37.78522
|
||||
79 2.161061 36.75319
|
||||
80 2.167554 35.74936
|
||||
81 2.174016 34.77294
|
||||
82 2.180448 33.82319
|
||||
83 2.186849 32.89938
|
||||
84 2.193220 32.00080
|
||||
85 2.199562 31.12677
|
||||
86 2.205874 30.27661
|
||||
87 2.212157 29.44966
|
||||
88 2.218411 28.64531
|
||||
89 2.224634 27.86292
|
||||
90 2.230828 27.10191
|
||||
91 2.236992 26.36167
|
||||
92 2.243126 25.64166
|
||||
93 2.249231 24.94131
|
||||
94 2.255307 24.26009
|
||||
95 2.261356 23.59748
|
||||
96 2.267380 22.95297
|
||||
97 2.273381 22.32605
|
||||
98 2.279361 21.71626
|
||||
99 2.285321 21.12313
|
||||
100 2.291265 20.54620
|
||||
101 2.297194 19.98502
|
||||
102 2.303110 19.43917
|
||||
103 2.309015 18.90823
|
||||
104 2.314910 18.39179
|
||||
105 2.320796 17.88946
|
||||
106 2.326676 17.40085
|
||||
107 2.332551 16.92558
|
||||
108 2.338422 16.46329
|
||||
109 2.344290 16.01363
|
||||
110 2.350157 15.57626
|
||||
111 2.356025 15.15082
|
||||
112 2.361895 14.73701
|
||||
113 2.367769 14.33450
|
||||
114 2.373647 13.94298
|
||||
115 2.379533 13.56216
|
||||
116 2.385427 13.19174
|
||||
117 2.391331 12.83143
|
||||
118 2.397247 12.48097
|
||||
119 2.403176 12.14008
|
||||
120 2.409121 11.80850
|
||||
121 2.415084 11.48597
|
||||
122 2.421066 11.17226
|
||||
123 2.427070 10.86711
|
||||
124 2.433098 10.57030
|
||||
125 2.439152 10.28159
|
||||
126 2.445235 10.00077
|
||||
127 2.451348 9.727624
|
||||
128 2.457494 9.461935
|
||||
129 2.463672 9.203502
|
||||
130 2.469884 8.952128
|
||||
131 2.476132 8.707619
|
||||
132 2.482415 8.469789
|
||||
133 2.488736 8.238455
|
||||
134 2.495095 8.013439
|
||||
135 2.501494 7.794568
|
||||
136 2.507934 7.581676
|
||||
137 2.514417 7.374599
|
||||
138 2.520944 7.173177
|
||||
139 2.527516 6.977257
|
||||
140 2.534135 6.786688
|
||||
141 2.540803 6.601324
|
||||
142 2.547520 6.421023
|
||||
143 2.554290 6.245646
|
||||
144 2.561112 6.075059
|
||||
145 2.567989 5.909132
|
||||
146 2.574924 5.747736
|
||||
147 2.581917 5.590749
|
||||
148 2.588971 5.438050
|
||||
149 2.596087 5.289521
|
||||
150 2.603266 5.145049
|
||||
151 2.610509 5.004522
|
||||
152 2.617817 4.867834
|
||||
153 2.625191 4.734880
|
||||
154 2.632632 4.605557
|
||||
155 2.640141 4.479766
|
||||
156 2.647719 4.357410
|
||||
157 2.655367 4.238397
|
||||
158 2.663087 4.122634
|
||||
159 2.670879 4.010033
|
||||
160 2.678747 3.900507
|
||||
161 2.686691 3.793973
|
||||
162 2.694714 3.690349
|
||||
163 2.702819 3.589555
|
||||
164 2.711006 3.491514
|
||||
165 2.719280 3.396150
|
||||
166 2.727642 3.303392
|
||||
167 2.736094 3.213166
|
||||
168 2.744640 3.125406
|
||||
169 2.753281 3.040042
|
||||
170 2.762020 2.957009
|
||||
171 2.770857 2.876245
|
||||
172 2.779795 2.797686
|
||||
173 2.788836 2.721273
|
||||
174 2.797980 2.646948
|
||||
175 2.807230 2.574652
|
||||
176 2.816587 2.504331
|
||||
177 2.826052 2.435930
|
||||
178 2.835627 2.369398
|
||||
179 2.845314 2.304683
|
||||
180 2.855112 2.241735
|
||||
181 2.865023 2.180507
|
||||
182 2.875048 2.120951
|
||||
183 2.885191 2.063022
|
||||
184 2.895456 2.006675
|
||||
185 2.905846 1.951866
|
||||
186 2.916367 1.898555
|
||||
187 2.927021 1.846700
|
||||
188 2.937815 1.796262
|
||||
189 2.948752 1.747201
|
||||
190 2.959837 1.699479
|
||||
191 2.971076 1.653062
|
||||
192 2.982472 1.607912
|
||||
193 2.994032 1.563995
|
||||
194 3.005760 1.521278
|
||||
195 3.017662 1.479727
|
||||
196 3.029742 1.439312
|
||||
197 3.042006 1.400000
|
||||
198 3.113873 1.200000
|
||||
199 3.207682 1.000000
|
||||
|
0
tcl/calcurves/X145791.340
Executable file → Normal file
0
tcl/calcurves/X145791.340
Executable file → Normal file
@ -1,207 +1,207 @@
|
||||
Sensor Model: CX-1050-CU-HT 2021-04-30
|
||||
Serial Number: X154359
|
||||
Data Format: 4 (Log Ohms/Kelvin)
|
||||
SetPoint Limit: 330.0 (Kelvin)
|
||||
Temperature coefficient: 1 (Negative)
|
||||
Number of Breakpoints: 198
|
||||
|
||||
No. Units Temperature (K)
|
||||
|
||||
1 1.752240 330.0000
|
||||
2 1.776224 310.0000
|
||||
3 1.787015 301.4900
|
||||
4 1.797870 293.2135
|
||||
5 1.808781 285.1643
|
||||
6 1.819743 277.3361
|
||||
7 1.830751 269.7227
|
||||
8 1.841798 262.3184
|
||||
9 1.852878 255.1173
|
||||
10 1.863986 248.1139
|
||||
11 1.875115 241.3027
|
||||
12 1.886262 234.6785
|
||||
13 1.897425 228.2362
|
||||
14 1.908601 221.9707
|
||||
15 1.919786 215.8772
|
||||
16 1.930977 209.9510
|
||||
17 1.942172 204.1875
|
||||
18 1.953367 198.5822
|
||||
19 1.964559 193.1308
|
||||
20 1.975745 187.8290
|
||||
21 1.986922 182.6728
|
||||
22 1.998087 177.6581
|
||||
23 2.009237 172.7811
|
||||
24 2.020368 168.0379
|
||||
25 2.031478 163.4250
|
||||
26 2.042563 158.9387
|
||||
27 2.053621 154.5756
|
||||
28 2.064647 150.3322
|
||||
29 2.075638 146.2053
|
||||
30 2.086593 142.1917
|
||||
31 2.097512 138.2883
|
||||
32 2.108392 134.4921
|
||||
33 2.119230 130.8000
|
||||
34 2.130015 127.2093
|
||||
35 2.140740 123.7172
|
||||
36 2.151409 120.3210
|
||||
37 2.162048 117.0180
|
||||
38 2.172682 113.8056
|
||||
39 2.183331 110.6815
|
||||
40 2.193975 107.6431
|
||||
41 2.204587 104.6881
|
||||
42 2.215140 101.8142
|
||||
43 2.225632 99.01923
|
||||
44 2.236068 96.30098
|
||||
45 2.246457 93.65735
|
||||
46 2.256804 91.08629
|
||||
47 2.267110 88.58582
|
||||
48 2.277379 86.15398
|
||||
49 2.287611 83.78891
|
||||
50 2.297809 81.48876
|
||||
51 2.307974 79.25175
|
||||
52 2.318109 77.07615
|
||||
53 2.328215 74.96028
|
||||
54 2.338291 72.90249
|
||||
55 2.348338 70.90119
|
||||
56 2.358355 68.95483
|
||||
57 2.368343 67.06190
|
||||
58 2.378301 65.22094
|
||||
59 2.388229 63.43051
|
||||
60 2.398127 61.68923
|
||||
61 2.407995 59.99576
|
||||
62 2.417832 58.34877
|
||||
63 2.427639 56.74699
|
||||
64 2.437415 55.18919
|
||||
65 2.447160 53.67415
|
||||
66 2.456874 52.20070
|
||||
67 2.466557 50.76770
|
||||
68 2.476208 49.37404
|
||||
69 2.485828 48.01864
|
||||
70 2.495416 46.70045
|
||||
71 2.504973 45.41844
|
||||
72 2.514498 44.17162
|
||||
73 2.523990 42.95904
|
||||
74 2.533451 41.77974
|
||||
75 2.542879 40.63281
|
||||
76 2.552275 39.51737
|
||||
77 2.561638 38.43255
|
||||
78 2.570969 37.37751
|
||||
79 2.580267 36.35143
|
||||
80 2.589535 35.35352
|
||||
81 2.598774 34.38301
|
||||
82 2.607984 33.43913
|
||||
83 2.617167 32.52117
|
||||
84 2.626325 31.62841
|
||||
85 2.635458 30.76016
|
||||
86 2.644568 29.91574
|
||||
87 2.653656 29.09450
|
||||
88 2.662722 28.29580
|
||||
89 2.671768 27.51903
|
||||
90 2.680793 26.76359
|
||||
91 2.689800 26.02888
|
||||
92 2.698787 25.31435
|
||||
93 2.707753 24.61942
|
||||
94 2.716696 23.94358
|
||||
95 2.725613 23.28628
|
||||
96 2.734506 22.64704
|
||||
97 2.743374 22.02534
|
||||
98 2.752217 21.42070
|
||||
99 2.761040 20.83267
|
||||
100 2.769850 20.26077
|
||||
101 2.778654 19.70458
|
||||
102 2.787455 19.16366
|
||||
103 2.796256 18.63758
|
||||
104 2.805060 18.12595
|
||||
105 2.813869 17.62836
|
||||
106 2.822685 17.14443
|
||||
107 2.831510 16.67379
|
||||
108 2.840346 16.21606
|
||||
109 2.849196 15.77090
|
||||
110 2.858062 15.33796
|
||||
111 2.866945 14.91691
|
||||
112 2.875849 14.50741
|
||||
113 2.884776 14.10916
|
||||
114 2.893729 13.72184
|
||||
115 2.902709 13.34515
|
||||
116 2.911720 12.97880
|
||||
117 2.920765 12.62251
|
||||
118 2.929846 12.27600
|
||||
119 2.938966 11.93901
|
||||
120 2.948129 11.61126
|
||||
121 2.957338 11.29251
|
||||
122 2.966594 10.98251
|
||||
123 2.975896 10.68102
|
||||
124 2.985245 10.38781
|
||||
125 2.994645 10.10265
|
||||
126 3.004106 9.825312
|
||||
127 3.013636 9.555591
|
||||
128 3.023243 9.293273
|
||||
129 3.032929 9.038157
|
||||
130 3.042695 8.790044
|
||||
131 3.052542 8.548742
|
||||
132 3.062471 8.314064
|
||||
133 3.072485 8.085829
|
||||
134 3.082584 7.863859
|
||||
135 3.092770 7.647982
|
||||
136 3.103045 7.438032
|
||||
137 3.113410 7.233845
|
||||
138 3.123867 7.035263
|
||||
139 3.134418 6.842133
|
||||
140 3.145063 6.654305
|
||||
141 3.155808 6.471633
|
||||
142 3.166662 6.293975
|
||||
143 3.177645 6.121195
|
||||
144 3.188773 5.953157
|
||||
145 3.200048 5.789733
|
||||
146 3.211450 5.630795
|
||||
147 3.222958 5.476220
|
||||
148 3.234561 5.325888
|
||||
149 3.246273 5.179683
|
||||
150 3.258116 5.037492
|
||||
151 3.270108 4.899204
|
||||
152 3.282253 4.764712
|
||||
153 3.294552 4.633913
|
||||
154 3.307003 4.506704
|
||||
155 3.319604 4.382987
|
||||
156 3.332353 4.262667
|
||||
157 3.345249 4.145649
|
||||
158 3.358293 4.031844
|
||||
159 3.371492 3.921163
|
||||
160 3.384855 3.813520
|
||||
161 3.398390 3.708832
|
||||
162 3.412106 3.607018
|
||||
163 3.426014 3.508000
|
||||
164 3.440124 3.411699
|
||||
165 3.454443 3.318042
|
||||
166 3.468975 3.226956
|
||||
167 3.483725 3.138370
|
||||
168 3.498697 3.052217
|
||||
169 3.513895 2.968428
|
||||
170 3.529321 2.886940
|
||||
171 3.544979 2.807688
|
||||
172 3.560872 2.730612
|
||||
173 3.577000 2.655652
|
||||
174 3.593367 2.582750
|
||||
175 3.609974 2.511849
|
||||
176 3.626821 2.442894
|
||||
177 3.643911 2.375833
|
||||
178 3.661254 2.310612
|
||||
179 3.678878 2.247182
|
||||
180 3.696815 2.185493
|
||||
181 3.715081 2.125497
|
||||
182 3.733661 2.067149
|
||||
183 3.752526 2.010402
|
||||
184 3.771651 1.955213
|
||||
185 3.791042 1.901539
|
||||
186 3.810742 1.849338
|
||||
187 3.830800 1.798571
|
||||
188 3.851256 1.749197
|
||||
189 3.872108 1.701178
|
||||
190 3.893346 1.654478
|
||||
191 3.914960 1.609060
|
||||
192 3.936960 1.564888
|
||||
193 3.959369 1.521930
|
||||
194 3.982210 1.480150
|
||||
195 4.005509 1.439517
|
||||
196 4.029281 1.400000
|
||||
197 4.166155 1.200000
|
||||
198 4.336041 1.000000
|
||||
Sensor Model: CX-1050-CU-HT 2021-04-30
|
||||
Serial Number: X154359
|
||||
Data Format: 4 (Log Ohms/Kelvin)
|
||||
SetPoint Limit: 330.0 (Kelvin)
|
||||
Temperature coefficient: 1 (Negative)
|
||||
Number of Breakpoints: 199
|
||||
|
||||
No. Units Temperature (K)
|
||||
1 1.728256 351.58
|
||||
2 1.752240 330
|
||||
3 1.776224 310
|
||||
4 1.787015 301.49
|
||||
5 1.797870 293.2135
|
||||
6 1.808781 285.1643
|
||||
7 1.819743 277.3361
|
||||
8 1.830751 269.7227
|
||||
9 1.841798 262.3184
|
||||
10 1.852878 255.1173
|
||||
11 1.863986 248.1139
|
||||
12 1.875115 241.3027
|
||||
13 1.886262 234.6785
|
||||
14 1.897425 228.2362
|
||||
15 1.908601 221.9707
|
||||
16 1.919786 215.8772
|
||||
17 1.930977 209.951
|
||||
18 1.942172 204.1875
|
||||
19 1.953367 198.5822
|
||||
20 1.964559 193.1308
|
||||
21 1.975745 187.829
|
||||
22 1.986922 182.6728
|
||||
23 1.998087 177.6581
|
||||
24 2.009237 172.7811
|
||||
25 2.020368 168.0379
|
||||
26 2.031478 163.425
|
||||
27 2.042563 158.9387
|
||||
28 2.053621 154.5756
|
||||
29 2.064647 150.3322
|
||||
30 2.075638 146.2053
|
||||
31 2.086593 142.1917
|
||||
32 2.097512 138.2883
|
||||
33 2.108392 134.4921
|
||||
34 2.119230 130.8
|
||||
35 2.130015 127.2093
|
||||
36 2.140740 123.7172
|
||||
37 2.151409 120.321
|
||||
38 2.162048 117.018
|
||||
39 2.172682 113.8056
|
||||
40 2.183331 110.6815
|
||||
41 2.193975 107.6431
|
||||
42 2.204587 104.6881
|
||||
43 2.215140 101.8142
|
||||
44 2.225632 99.01923
|
||||
45 2.236068 96.30098
|
||||
46 2.246457 93.65735
|
||||
47 2.256804 91.08629
|
||||
48 2.267110 88.58582
|
||||
49 2.277379 86.15398
|
||||
50 2.287611 83.78891
|
||||
51 2.297809 81.48876
|
||||
52 2.307974 79.25175
|
||||
53 2.318109 77.07615
|
||||
54 2.328215 74.96028
|
||||
55 2.338291 72.90249
|
||||
56 2.348338 70.90119
|
||||
57 2.358355 68.95483
|
||||
58 2.368343 67.0619
|
||||
59 2.378301 65.22094
|
||||
60 2.388229 63.43051
|
||||
61 2.398127 61.68923
|
||||
62 2.407995 59.99576
|
||||
63 2.417832 58.34877
|
||||
64 2.427639 56.74699
|
||||
65 2.437415 55.18919
|
||||
66 2.447160 53.67415
|
||||
67 2.456874 52.2007
|
||||
68 2.466557 50.7677
|
||||
69 2.476208 49.37404
|
||||
70 2.485828 48.01864
|
||||
71 2.495416 46.70045
|
||||
72 2.504973 45.41844
|
||||
73 2.514498 44.17162
|
||||
74 2.523990 42.95904
|
||||
75 2.533451 41.77974
|
||||
76 2.542879 40.63281
|
||||
77 2.552275 39.51737
|
||||
78 2.561638 38.43255
|
||||
79 2.570969 37.37751
|
||||
80 2.580267 36.35143
|
||||
81 2.589535 35.35352
|
||||
82 2.598774 34.38301
|
||||
83 2.607984 33.43913
|
||||
84 2.617167 32.52117
|
||||
85 2.626325 31.62841
|
||||
86 2.635458 30.76016
|
||||
87 2.644568 29.91574
|
||||
88 2.653656 29.0945
|
||||
89 2.662722 28.2958
|
||||
90 2.671768 27.51903
|
||||
91 2.680793 26.76359
|
||||
92 2.689800 26.02888
|
||||
93 2.698787 25.31435
|
||||
94 2.707753 24.61942
|
||||
95 2.716696 23.94358
|
||||
96 2.725613 23.28628
|
||||
97 2.734506 22.64704
|
||||
98 2.743374 22.02534
|
||||
99 2.752217 21.4207
|
||||
100 2.761040 20.83267
|
||||
101 2.769850 20.26077
|
||||
102 2.778654 19.70458
|
||||
103 2.787455 19.16366
|
||||
104 2.796256 18.63758
|
||||
105 2.805060 18.12595
|
||||
106 2.813869 17.62836
|
||||
107 2.822685 17.14443
|
||||
108 2.831510 16.67379
|
||||
109 2.840346 16.21606
|
||||
110 2.849196 15.7709
|
||||
111 2.858062 15.33796
|
||||
112 2.866945 14.91691
|
||||
113 2.875849 14.50741
|
||||
114 2.884776 14.10916
|
||||
115 2.893729 13.72184
|
||||
116 2.902709 13.34515
|
||||
117 2.911720 12.9788
|
||||
118 2.920765 12.62251
|
||||
119 2.929846 12.276
|
||||
120 2.938966 11.93901
|
||||
121 2.948129 11.61126
|
||||
122 2.957338 11.29251
|
||||
123 2.966594 10.98251
|
||||
124 2.975896 10.68102
|
||||
125 2.985245 10.38781
|
||||
126 2.994645 10.10265
|
||||
127 3.004106 9.825312
|
||||
128 3.013636 9.555591
|
||||
129 3.023243 9.293273
|
||||
130 3.032929 9.038157
|
||||
131 3.042695 8.790044
|
||||
132 3.052542 8.548742
|
||||
133 3.062471 8.314064
|
||||
134 3.072485 8.085829
|
||||
135 3.082584 7.863859
|
||||
136 3.092770 7.647982
|
||||
137 3.103045 7.438032
|
||||
138 3.113410 7.233845
|
||||
139 3.123867 7.035263
|
||||
140 3.134418 6.842133
|
||||
141 3.145063 6.654305
|
||||
142 3.155808 6.471633
|
||||
143 3.166662 6.293975
|
||||
144 3.177645 6.121195
|
||||
145 3.188773 5.953157
|
||||
146 3.200048 5.789733
|
||||
147 3.211450 5.630795
|
||||
148 3.222958 5.47622
|
||||
149 3.234561 5.325888
|
||||
150 3.246273 5.179683
|
||||
151 3.258116 5.037492
|
||||
152 3.270108 4.899204
|
||||
153 3.282253 4.764712
|
||||
154 3.294552 4.633913
|
||||
155 3.307003 4.506704
|
||||
156 3.319604 4.382987
|
||||
157 3.332353 4.262667
|
||||
158 3.345249 4.145649
|
||||
159 3.358293 4.031844
|
||||
160 3.371492 3.921163
|
||||
161 3.384855 3.81352
|
||||
162 3.398390 3.708832
|
||||
163 3.412106 3.607018
|
||||
164 3.426014 3.508
|
||||
165 3.440124 3.411699
|
||||
166 3.454443 3.318042
|
||||
167 3.468975 3.226956
|
||||
168 3.483725 3.13837
|
||||
169 3.498697 3.052217
|
||||
170 3.513895 2.968428
|
||||
171 3.529321 2.88694
|
||||
172 3.544979 2.807688
|
||||
173 3.560872 2.730612
|
||||
174 3.577000 2.655652
|
||||
175 3.593367 2.58275
|
||||
176 3.609974 2.511849
|
||||
177 3.626821 2.442894
|
||||
178 3.643911 2.375833
|
||||
179 3.661254 2.310612
|
||||
180 3.678878 2.247182
|
||||
181 3.696815 2.185493
|
||||
182 3.715081 2.125497
|
||||
183 3.733661 2.067149
|
||||
184 3.752526 2.010402
|
||||
185 3.771651 1.955213
|
||||
186 3.791042 1.901539
|
||||
187 3.810742 1.849338
|
||||
188 3.830800 1.798571
|
||||
189 3.851256 1.749197
|
||||
190 3.872108 1.701178
|
||||
191 3.893346 1.654478
|
||||
192 3.914960 1.60906
|
||||
193 3.936960 1.564888
|
||||
194 3.959369 1.52193
|
||||
195 3.982210 1.48015
|
||||
196 4.005509 1.439517
|
||||
197 4.029281 1.4
|
||||
198 4.166155 1.2
|
||||
199 4.336041 1.000001
|
||||
|
15
tcl/ccr4.config
Normal file
15
tcl/ccr4.config
Normal file
@ -0,0 +1,15 @@
|
||||
deviceDesc = sumitomo closed cycle cryostat from IFE norway
|
||||
|
||||
defineTemperature tt
|
||||
GraphAdd tt K T_main
|
||||
makenv tt -driver [lsdriver] {
|
||||
lsc_sensor tm A -sensor dt-670 -sensorname main
|
||||
lsc_loop set -loop 1 -channel A -maxheater 100W -resist 25Ohm
|
||||
}
|
||||
tt set/limit 310
|
||||
tt set/prop 25
|
||||
tt set/integ 10
|
||||
catch {
|
||||
enableTable 0
|
||||
}
|
||||
|
@ -23,7 +23,7 @@ catch {
|
||||
#obj_list ep EuroThermPressure
|
||||
#appendVars ep/%/Pressure
|
||||
|
||||
makeCCU4 ccrpe
|
||||
makeCCU4 ccrpe nv
|
||||
|
||||
|
||||
makenv warmup -driver piloop -invar "tt" -outvar "tt current/manualpower" \
|
||||
|
@ -41,7 +41,6 @@ MA10 22 fNH
|
||||
MB11 NH
|
||||
#CTI1 0.22
|
||||
CTI2 0.33
|
||||
CTI3 0.47
|
||||
CTI4 0.68
|
||||
CTI5 0.82
|
||||
#CTI7 1
|
||||
@ -50,7 +49,8 @@ DISE 1.5
|
||||
APD 1.8
|
||||
CCR2HT 2.7
|
||||
CCR3 3.3
|
||||
CCRPE 3.9
|
||||
CCR4 0.47
|
||||
CCRPE 3.9 f
|
||||
RSE 12
|
||||
RT 15
|
||||
JTVALV 10 n
|
||||
|
@ -6,6 +6,9 @@ GROUP orange and other 4He cryostats
|
||||
hfflow*
|
||||
lemflow*
|
||||
END
|
||||
GROUP muSR
|
||||
flame*
|
||||
END
|
||||
GROUP closed cycle refrigerators
|
||||
apd*
|
||||
ccr*
|
||||
|
@ -1,4 +1,4 @@
|
||||
deviceDesc = 30 K - 475 K closed cycle cryostat
|
||||
deviceDesc = 30 K - 310 K closed cycle cryostat without hot stage
|
||||
|
||||
defineTemperature tt
|
||||
makenv tt -driver [lsdriver] {
|
||||
|
@ -1,4 +1,4 @@
|
||||
deviceDesc = 30 K - 475 K closed cycle cryostat with hot stagge
|
||||
deviceDesc = 30 K - 475 K closed cycle cryostat with hot stage
|
||||
|
||||
defineTemperature tt
|
||||
makenv tt -driver [lsdriver] {
|
||||
|
@ -6,6 +6,8 @@ set diln dil2
|
||||
|
||||
makenv ts -driver dil12 -reg370 /treg -mon370 /tmon -hasturbo 1
|
||||
|
||||
ts auto/pumptime1 3600
|
||||
|
||||
# lakeshore 370 ctrl
|
||||
makenv treg -driver 370_lsc -port ${diln}-ts:3001 {
|
||||
# curves for sample:
|
||||
|
@ -6,6 +6,8 @@ set dilts dil3-ts.psi.ch
|
||||
|
||||
makenv ts -driver dil12 -reg370 /treg -mon370 /tmon -hasturbo 1
|
||||
|
||||
ts auto/pumptime1 3600
|
||||
|
||||
# lakeshore 370 ctrl
|
||||
makenv treg -driver 370_lsc -port ${dilts}:3001 {
|
||||
# curves for sample:
|
||||
@ -73,6 +75,6 @@ dil extVersion 1
|
||||
catch {default ts control}
|
||||
catch {default ts heaterselect}
|
||||
|
||||
#makeMotorValve vb ${dilts}:3004
|
||||
#makeMotorValve vm ${dilts}:3006
|
||||
makeMotorValve vb ${dilts}:3004
|
||||
makeMotorValve vm ${dilts}:3006
|
||||
|
||||
|
@ -6,6 +6,8 @@ set diln dil4
|
||||
|
||||
makenv ts -driver dil12 -reg370 /treg -mon370 /tmon -hasturbo 1
|
||||
|
||||
ts auto/pumptime1 3600
|
||||
|
||||
# lakeshore 370 ctrl
|
||||
makenv treg -driver 370_lsc -port ${diln}-ts:3001 {
|
||||
# curves for sample:
|
||||
|
@ -22,6 +22,7 @@ triton temp tpt1head pt1head T6 cyan
|
||||
triton temp tpt1plate pt1plate T7 cyan
|
||||
triton temp tmix mix T8 cyan
|
||||
triton temp pucksensor puck TA red
|
||||
triton temp tmagnet tmagnet T13 black
|
||||
|
||||
triton press pdump dump P1 cyan
|
||||
triton press pcond cond P2 blue
|
||||
@ -33,17 +34,18 @@ triton press pfore fore P5 green
|
||||
|
||||
makenv res -driver 372_lsc -port dilsc.psi.ch:7777 {
|
||||
|
||||
#lsc_sensor atto_mid 1 -sensor U08127 -excitation 200uV -filter 1
|
||||
#lsc_sensor atto_top 2 -sensor U08130 -excitation 200uV -filter 1
|
||||
#lsc_sensor ch3 3 -sensor raw -excitation 20uV -filter 1
|
||||
#lsc_sensor ch4 4 -sensor raw -excitation 20uV -filter 1
|
||||
lsc_sensor foil 5 -sensor U08130 -excitation 200uV -filter 1
|
||||
#lsc_sensor ch6 6 -sensor raw -excitation 20uV -filter 1
|
||||
#lsc_sensor ch7 7 -sensor raw -excitation 20uV -filter 1
|
||||
#lsc_sensor ch8 8 -sensor raw -excitation 20uV -filter 1
|
||||
lsc_sensor foil 1 -sensor U08130 -excitation 200uV -filter 1
|
||||
#lsc_sensor atto_mid 1 -sensor U08127 -excitation 200uV -filter 1
|
||||
#lsc_sensor atto_top 2 -sensor U08130 -excitation 200uV -filter 1
|
||||
#lsc_sensor ch3 3 -sensor raw -excitation 20uV -filter 1
|
||||
#lsc_sensor ch4 4 -sensor raw -excitation 20uV -filter 1
|
||||
lsc_sensor Al_1 7 -sensor raw -excitation 1uA -filter 1
|
||||
lsc_sensor Al_2 8 -sensor raw -excitation 1uA -filter 1
|
||||
#lsc_sensor ch7 7 -sensor raw -excitation 20uV -filter 1
|
||||
#lsc_sensor ch8 8 -sensor raw -excitation 20uV -filter 1
|
||||
|
||||
# heater output 0 (=sample heater) for channel 4 (still)
|
||||
#lsc_loop set -loop 0 -channel 1 -maxheater 100mA -resist 100
|
||||
# heater output 0 (=sample heater) for channel 4 (still)
|
||||
#lsc_loop set -loop 0 -channel 1 -maxheater 100mA -resist 100
|
||||
|
||||
}
|
||||
|
||||
@ -69,9 +71,9 @@ makenv res -driver 372_lsc -port dilsc.psi.ch:7777 {
|
||||
#GraphAdd res.ch4 Ohm
|
||||
#GraphAdd res.ch5 Ohm
|
||||
#GraphAdd res.ch6 Ohm
|
||||
#GraphAdd res.ch7 Ohm
|
||||
#GraphAdd res.ch8 Ohm
|
||||
GraphAdd res.Al_1 Ohm
|
||||
GraphAdd res.Al_2 Ohm
|
||||
|
||||
|
||||
GraphAdd res.atto_mid.raw Ohm
|
||||
GraphAdd res.atto_top.raw Ohm
|
||||
#GraphAdd res.atto_mid.raw Ohm
|
||||
#GraphAdd res.atto_top.raw Ohm
|
||||
|
@ -228,7 +228,7 @@ proc stdConfig::ccu4 {{title CCU4} args} {
|
||||
|
||||
node hea out
|
||||
prop label "add. He channels"
|
||||
prop enum 0,1,6
|
||||
prop enum 0,1,6=6
|
||||
|
||||
node hch out -int
|
||||
prop label "LHe channel"
|
||||
@ -539,7 +539,13 @@ proc ccu4::update {} {
|
||||
set errvar [silent "" hgetpropval [sct]/$name errvar]
|
||||
if {$errvar ne ""} {
|
||||
set errval [hvali [sct]/$errvar]
|
||||
if {$errval > 0} {
|
||||
if {$errval == 1} {
|
||||
# sens warm
|
||||
updateval [sct]/$name -11
|
||||
} elseif {$errval == 3} {
|
||||
# timeout
|
||||
updateval [sct]/$name 111
|
||||
} elseif {$errval > 0} {
|
||||
hsetprop [sct]/$name geterror [lindex [split [hgetpropval [sct]/$errvar enum] ,] $errval]
|
||||
hupdate [sct]/$name $value
|
||||
} else {
|
||||
|
@ -15,7 +15,7 @@ proc stdConfig::ccu4ext {type {readlevel 0}} {
|
||||
prop write ccu4ext::writeExt $type
|
||||
prop read ccu4ext::fillExt $type
|
||||
|
||||
prop enum watching=0,filling=1,inactive=2
|
||||
prop enum watching=0,filling=1,inactive=2,manualfill=3
|
||||
prop label "filling state"
|
||||
|
||||
if {$type eq "n2"} {
|
||||
@ -72,6 +72,7 @@ proc ccu4ext::changestate {type state} {
|
||||
cc $auto 1
|
||||
}
|
||||
fill {
|
||||
clientlog FILL$type
|
||||
cc $cmd 1
|
||||
cc $auto 1
|
||||
}
|
||||
@ -144,7 +145,6 @@ proc ccu4ext::fillExt {type} {
|
||||
set valve [sctval /cc/hv]
|
||||
set auto [sctval /cc/ha]
|
||||
}
|
||||
set enumtxt "watching,fill,inactive"
|
||||
set errtxt ""
|
||||
set sm [expr [DoubleTime] > [silent 0 sct change_time] + 10]
|
||||
switch -- $valve {
|
||||
@ -165,7 +165,6 @@ proc ccu4ext::fillExt {type} {
|
||||
2 {
|
||||
set txt "no fill valve"
|
||||
if {$sm} {setmode $type 2}
|
||||
set enumtxt "$txt=2"
|
||||
}
|
||||
3 {
|
||||
set errtxt timeout
|
||||
@ -177,7 +176,6 @@ proc ccu4ext::fillExt {type} {
|
||||
set errtxt "unknown error"
|
||||
}
|
||||
}
|
||||
sct enum ${enumtxt}
|
||||
if {$errtxt eq ""} {
|
||||
updateval [sct]/state $txt
|
||||
hupdate [sct]/status ""
|
||||
@ -185,7 +183,10 @@ proc ccu4ext::fillExt {type} {
|
||||
hupdate [sct]/status $errtxt
|
||||
updateval [sct]/state $errtxt
|
||||
}
|
||||
|
||||
if {[sctval [sct]] == 3} { # manualfill
|
||||
changestate $type fill
|
||||
return idle
|
||||
}
|
||||
set level [silent invalid result [hvali [sct]/readlevel]]
|
||||
if {! [string is double $level]} {
|
||||
hsetprop [sct]/readlevel geterror "illegal $type level reading"
|
||||
@ -375,6 +376,10 @@ proc ccu4ext::writeExt {type {activate 1}} {
|
||||
}
|
||||
return idle
|
||||
}
|
||||
# manualfill
|
||||
3 {
|
||||
changestate $type fill
|
||||
}
|
||||
}
|
||||
return idle
|
||||
}
|
||||
|
@ -41,7 +41,7 @@ proc stdConfig::ccu4flow {args} {
|
||||
node flow upd -secop=nvflow
|
||||
|
||||
node set out
|
||||
default 2.0
|
||||
default 1.0
|
||||
prop check ccu4flow::checkset
|
||||
prop write stdSct::complete
|
||||
prop label "flow set"
|
||||
@ -89,11 +89,11 @@ proc stdConfig::ccu4flow {args} {
|
||||
node hystpulse_c par 0
|
||||
prop help {motor pulse to overcome hysteresis when closing}
|
||||
|
||||
node tol par 0.1
|
||||
node tol par 0.25
|
||||
prop label tolerance
|
||||
prop help {valid below 3 mbar}
|
||||
|
||||
node tolhigh par 0.2
|
||||
node tolhigh par 0.5
|
||||
prop label tol. above 4
|
||||
prop help {valid above 4 mbar}
|
||||
|
||||
|
@ -180,9 +180,10 @@ proc fictrl::update_power {} {
|
||||
set vout [expr $keyval(h) * 0.01 * [sct @voltscale]]
|
||||
# set vpercent [expr $v * 100.0 / [sct @voltscale]]
|
||||
# difference output voltage % - read voltage %
|
||||
clientput "v $v vout $vout last [silent None sct last_v]"
|
||||
if {abs($v - $vout) > 0.5} {
|
||||
clientput "v $v vout $vout last [silent "" sct last_v]"
|
||||
if {abs($v - [silent 100 sct last_v]) < 0.02} {
|
||||
if {abs($v - [silent 100 sct last_v]) > 100.02} {
|
||||
clientput "power supply feedback does not follow"
|
||||
enum_decode [sct parent]/ctrlmode power_supply_off new
|
||||
sct @power_supply_off 1
|
||||
if {$new != [sctval [sct parent]/ctrlmode]} {
|
||||
|
@ -27,16 +27,30 @@ proc stdConfig::heliox {} {
|
||||
|
||||
node pot_state -text upd
|
||||
|
||||
node target_hours par 60
|
||||
node target_hours par 48
|
||||
prop help "how many hours the pot should last (< 75)"
|
||||
|
||||
node holdflow out
|
||||
default 1.5
|
||||
prop check heliox::check_holdflow
|
||||
prop help "flow for holding pressure"
|
||||
prop write stdSct::complete
|
||||
|
||||
node condenseflow out
|
||||
default 3
|
||||
prop check heliox::check_condenseflow
|
||||
prop help "flow for condensing"
|
||||
prop write stdSct::complete
|
||||
}
|
||||
catch {
|
||||
hsetprop /tt getsample hvali /ts/pot
|
||||
hsetprop /tt getsample hvali /th/pot
|
||||
} msg
|
||||
clientput $msg
|
||||
}
|
||||
|
||||
proc heliox::check_set {} {
|
||||
# save for later
|
||||
sct goto [sct target]
|
||||
if {[sct target] < 1.6} {
|
||||
set condense_text ""
|
||||
if {[hvali [sct]/lasts_until] > [DoubleTime]} {
|
||||
@ -49,7 +63,7 @@ proc heliox::check_set {} {
|
||||
hupdate [sct]/mode 4
|
||||
set condense_text "started"
|
||||
}
|
||||
sct goto [sct target]
|
||||
# sct goto [sct target]
|
||||
if {$condense_text ne ""} {
|
||||
sct print "going to [sct target] K might take a while - condense process is $condense_text"
|
||||
}
|
||||
@ -65,7 +79,7 @@ proc heliox::check_set {} {
|
||||
set mainsensor /th/pot
|
||||
switch [sctval [sct]/mode] {
|
||||
1 {
|
||||
nv set 2.5
|
||||
nv set [hvali [sct]/holdflow]
|
||||
th setsorb/channel C
|
||||
th setsorb 20
|
||||
th mainloop set
|
||||
@ -73,7 +87,7 @@ proc heliox::check_set {} {
|
||||
run tt [sct target]
|
||||
}
|
||||
2 {
|
||||
nv set 2.5
|
||||
nv set [hvali [sct]/holdflow]
|
||||
th setsorb/channel C
|
||||
th setsorb 20
|
||||
th mainloop set
|
||||
@ -82,7 +96,7 @@ proc heliox::check_set {} {
|
||||
th set [sct target]
|
||||
}
|
||||
3 {
|
||||
nv set 2.5
|
||||
nv set [hvali [sct]/holdflow]
|
||||
th setsorb/channel B
|
||||
th mainloop setsorb
|
||||
th set 0
|
||||
@ -111,13 +125,14 @@ proc heliox::check_set {} {
|
||||
}
|
||||
|
||||
proc heliox::setmainsensor {mainsensor} {
|
||||
set old [silent "" hgetpropval [sct objectPath] mainsensor]
|
||||
if {$mainsensor ne $old} {
|
||||
if {$old ne ""} {
|
||||
catch {[sct controller] killupdatescript $old "updateval [sct objectPath]"}
|
||||
}
|
||||
[sct controller] updatescript $mainsensor "updateval [sct objectPath]"
|
||||
if {$mainsensor eq "/th/low"} {
|
||||
set old /th/pot
|
||||
} else {
|
||||
set old /th/low
|
||||
}
|
||||
catch {[sct controller] killupdatescript $old "updateval [sct objectPath]"}
|
||||
[sct controller] updatescript $mainsensor "updateval [sct objectPath]"
|
||||
hsetprop [sct objectPath] mainsensor $mainsensor
|
||||
}
|
||||
|
||||
proc heliox::check_mode {} {
|
||||
@ -126,7 +141,7 @@ proc heliox::check_mode {} {
|
||||
0 {
|
||||
}
|
||||
1 {
|
||||
nv set 2.5
|
||||
nv set [hvali [sct parent]/holdflow]
|
||||
if {[sct target] != [hvali [sct]]} {
|
||||
th set [hvali /th/target]
|
||||
}
|
||||
@ -136,7 +151,7 @@ proc heliox::check_mode {} {
|
||||
set state "hi-T mode"
|
||||
}
|
||||
2 {
|
||||
nv set 2.5
|
||||
nv set [hvali [sct parent]/holdflow]
|
||||
if {[sct target] != [hvali [sct]]} {
|
||||
th set [hvali /th/target]
|
||||
}
|
||||
@ -146,7 +161,7 @@ proc heliox::check_mode {} {
|
||||
set state "mid-T mode"
|
||||
}
|
||||
3 {
|
||||
nv set 2.5
|
||||
nv set [hvali [sct parent]/holdflow]
|
||||
if {[hvali [sct parent]/lasts_until] > [DoubleTime]} {
|
||||
th set 0
|
||||
th setsorb/channel B
|
||||
@ -178,6 +193,20 @@ proc heliox::check_mode {} {
|
||||
sct update [sct target]
|
||||
}
|
||||
|
||||
proc heliox::check_condenseflow {} {
|
||||
if {[sctval [sct parent]/mode] == 4} {
|
||||
nv set [sct target]
|
||||
}
|
||||
sct update [sct target]
|
||||
}
|
||||
|
||||
proc heliox::check_holdflow {} {
|
||||
if {[sctval [sct parent]/mode] != 4} {
|
||||
nv set [sct target]
|
||||
}
|
||||
sct update [sct target]
|
||||
}
|
||||
|
||||
proc heliox::complete {} {
|
||||
sct print [lindex {undefined "hi-T mode" "mid-T mode" "low-T mode" "-> condense"} [sct target]]
|
||||
return idle
|
||||
@ -215,11 +244,11 @@ proc heliox::read {} {
|
||||
}
|
||||
if {[hvali [sct]] == 4} {
|
||||
if {$ts > 3} {
|
||||
nv set 4
|
||||
nv set [hvali [sct parent]/condenseflow]
|
||||
set lasts_until 0
|
||||
sct condense_deadline [expr $now + 36000] # timeout: should be 3600
|
||||
} elseif {[result th sorb] > 39} {
|
||||
nv set 4
|
||||
nv set [hvali [sct parent]/condenseflow]
|
||||
# 3He vapor pressure: 200 mbar at 2 K, power law
|
||||
set p [expr 200 * ($ts / 2.0) ** 3.5]
|
||||
# dump pressure at condensation start
|
||||
@ -241,8 +270,9 @@ proc heliox::read {} {
|
||||
th setsorb/channel B
|
||||
th mainloop setsorb
|
||||
th setsorb [silent 0.25 hgetpropval [sct parent] goto]
|
||||
sct update 3
|
||||
nv set 2.5
|
||||
# switch to lowT and trigger check_mode
|
||||
hset [sct] 3
|
||||
nv set [hvali [sct parent]/holdflow]
|
||||
clientput "the 3He pot [hvali [sct parent]/pot_state]"
|
||||
}
|
||||
}
|
||||
|
@ -10,7 +10,7 @@ proc stdConfig::hepump {{motname hemot}} {
|
||||
|
||||
obj HePump -int wr
|
||||
default 0
|
||||
prop enum xds35_auto,xds35_manual,sv65,other,no=-1
|
||||
prop enum xds35_auto,xds35_manual,sv65,other,neodry=8,no=-1
|
||||
prop help "xds35: scroll pump, sv65: leybold"
|
||||
prop read hepump::read
|
||||
prop write hepump::set_type
|
||||
@ -67,17 +67,26 @@ proc hepump::visible {pumpcode} {
|
||||
} else {
|
||||
set rv true
|
||||
}
|
||||
set runv true
|
||||
} elseif {$pumpcode == 8} {
|
||||
set rv true
|
||||
set runv true
|
||||
set v true
|
||||
} else {
|
||||
set v false
|
||||
set rv false
|
||||
set runv false
|
||||
}
|
||||
|
||||
|
||||
foreach node "valve [sct @motname]" {
|
||||
if {[silent true hgetpropval [sct]/$node visible] ne $v} {
|
||||
hsetprop [sct]/$node visible $v
|
||||
}
|
||||
}
|
||||
foreach node "running eco auto eco_t_lim" {
|
||||
if {[silent true hgetpropval [sct]/running visible] ne $runv} {
|
||||
hsetprop [sct]/running visible $runv
|
||||
}
|
||||
foreach node "eco auto eco_t_lim" {
|
||||
if {[silent true hgetpropval [sct]/$node visible] ne $rv} {
|
||||
hsetprop [sct]/$node visible $rv
|
||||
}
|
||||
@ -125,6 +134,19 @@ proc hepump::set_calib {} {
|
||||
} else {
|
||||
set f 0.6 ;# 0.95 at 30 mbar
|
||||
}
|
||||
} elseif {$pumpcode == 8} { # neodry
|
||||
set status [string trim [_[sct @motname] status]]
|
||||
if {$status eq "disconnected" || $status eq "offline"} {
|
||||
# clientput [_[sct @motname] hostport]
|
||||
_[sct @motname] reconnect
|
||||
}
|
||||
if {$status eq "no response"} {
|
||||
set pumpcode 1 ;# treat as manual
|
||||
hsetprop [sct]/[sct @motname] group "hepump valve motor (not connected)"
|
||||
} else {
|
||||
hsetprop [sct]/[sct @motname] group "hepump valve motor"
|
||||
}
|
||||
set f 0.6
|
||||
} elseif {$pumpcode == 3} { # other
|
||||
hsetprop [sct]/[sct @motname] group "hepump valve motor"
|
||||
set f [hval [sct]/calib]
|
||||
@ -352,7 +374,10 @@ proc hepump::set_eco {} {
|
||||
}
|
||||
|
||||
proc hepump::get_eco {} {
|
||||
if {[sctval [sct parent]] != 0} {return idle}
|
||||
if {[sctval [sct parent]] != 0} {
|
||||
sct update 0
|
||||
return idle
|
||||
}
|
||||
set eco [sctval [sct parent]/[sct @motname]/output1]
|
||||
sct update $eco
|
||||
[sct controller] queue [sct parent] write hepump::set_calib
|
||||
|
@ -303,7 +303,7 @@ proc ipsmag::update_leads {{n_of_slaves 3}} {
|
||||
set msg "slave currents ($currents) are not within $mincur .. $maxcur"
|
||||
hupdate [sct objectPath]/status $msg
|
||||
if {$status eq ""} {
|
||||
# clientlog "ERROR: $msg"
|
||||
clientlog "WARNING: $msg"
|
||||
}
|
||||
} elseif {[string match {slave currents *} $status]} {
|
||||
hupdate [sct objectPath]/status ""
|
||||
|
@ -624,7 +624,7 @@ proc lsc::read_curve {} {
|
||||
return
|
||||
}
|
||||
switch [sct target] {
|
||||
raw - code - vacuum - undefined {
|
||||
raw - abs - code - vacuum - undefined {
|
||||
sct Serial_Number [sct target]
|
||||
return
|
||||
}
|
||||
@ -852,7 +852,7 @@ proc lsc::set_curve {} {
|
||||
if {[string match "manual*" $sno]} {
|
||||
return lsc::detect_sensor
|
||||
}
|
||||
if {$sno eq "raw"} {
|
||||
if {[regexp (raw|abs) $sno]} {
|
||||
sct update $sno
|
||||
return stdSct::complete
|
||||
}
|
||||
@ -1613,7 +1613,6 @@ proc lsc::invalidate_after_commerror {objectPath} {
|
||||
|
||||
proc lsc::get370T1 {} {
|
||||
stdSct::scanf "%d,%d" chan auto
|
||||
|
||||
set now [DoubleTime]
|
||||
set actchan [silent -1 sct actchan]
|
||||
sct actchan $chan
|
||||
@ -1631,7 +1630,7 @@ proc lsc::get370T1 {} {
|
||||
if {$chan ne $actchan} {
|
||||
set apath [silent 0 sct channel_$actchan]
|
||||
if {$apath ne "0"} {
|
||||
if {[hvali $cpath/active]} {
|
||||
if {$cpath ne "0" && [hvali $cpath/active]} {
|
||||
set updatechan $actchan
|
||||
}
|
||||
}
|
||||
@ -1772,10 +1771,11 @@ proc lsc::update370stat {chan} {
|
||||
set statxt ""
|
||||
}
|
||||
if {[string index $statxt 0] == "t"} {
|
||||
if {[hvali $sensor/curve] eq "raw"} {
|
||||
if {[regexp (raw|abs) [hvali $sensor/curve]]} {
|
||||
silent 0 updateval $sensor/status 0
|
||||
} else {
|
||||
silent 0 updateval $sensor/status "$stat $statxt"
|
||||
hsetprop $sensor geterror "$stat $statxt"
|
||||
}
|
||||
sct send "RDGR?$chan"
|
||||
return "lsc::update370R $chan"
|
||||
@ -1793,7 +1793,7 @@ proc lsc::update370stat {chan} {
|
||||
return stdSct::complete
|
||||
}
|
||||
silent 0 updateval $sensor/status $stat
|
||||
if {[sctval $sensor/curve] eq "raw"} {
|
||||
if {[regexp (raw|abs) [sctval $sensor/curve]]} {
|
||||
sct send "RDGR?$chan"
|
||||
return "lsc::update370R $chan"
|
||||
}
|
||||
@ -1813,6 +1813,8 @@ proc lsc::update370R {chan} {
|
||||
updateval $sensor/raw [sct result]
|
||||
if {[sctval $sensor/curve] eq "raw"} {
|
||||
updateval $sensor [sct result]
|
||||
} elseif {[sctval $sensor/curve] eq "abs"} {
|
||||
updateval $sensor [expr abs([sct result])]
|
||||
}
|
||||
hsetprop $sensor updatetime [clock seconds]
|
||||
if {$chan != "A" && [sct model] eq "372" && [silent "" sct channel_A] ne ""} {
|
||||
@ -3550,7 +3552,7 @@ proc lsc::wrrdgrng370 {} {
|
||||
}
|
||||
|
||||
proc lsc::wrrdgrng372 {} {
|
||||
stdSct::scanf "%d,%d,%d,%d,%d,%d" mode exc rng auto csoff oldunit
|
||||
stdSct::scanf "%d,%d,%d,%d,%d,%d" mode exc auto rng csoff oldunit
|
||||
if {[sctval [sct]/curve] eq "raw"} {
|
||||
set unit 2
|
||||
} else {
|
||||
@ -3605,7 +3607,7 @@ proc lsc::setrdgrng37x {mode exc rng auto csoff {unit 0} {doit 0}} {
|
||||
if {[sct model] eq "370"} {
|
||||
sct send "RDGRNG [sct @channel],$mode,$exc,$rng,$auto,$csoff;*OPC?"
|
||||
} else {
|
||||
sct send "INTYPE [sct @channel],$mode,$exc,$rng,$auto,$csoff,$unit;*OPC?"
|
||||
sct send "INTYPE [sct @channel],$mode,$exc,$auto,$rng,$csoff,$unit;*OPC?"
|
||||
}
|
||||
return stdSct::complete
|
||||
}
|
||||
|
@ -45,8 +45,8 @@ proc luft::writeCf {} {
|
||||
} else {
|
||||
luft::set_error "epics error: $val $errtxt"
|
||||
}
|
||||
if {[scan [lindex [sct target] 0] %d period]} {
|
||||
sct timeout [expr [clock seconds] + $period + 10]
|
||||
catch {
|
||||
sct timeout [expr [clock seconds] + $timeout + 10]
|
||||
}
|
||||
return idle
|
||||
}
|
||||
|
@ -3,7 +3,10 @@
|
||||
namespace eval secop {} {
|
||||
}
|
||||
|
||||
proc stdConfig::secop {{shownUnits ALL} {restart no}} {
|
||||
proc stdConfig::secop {{shownUnits ALL} {restart no} {sepUnits ""}} {
|
||||
# shown units: restrict units shown
|
||||
# restart: whether to restart on reconnect
|
||||
# sepUnits: append sepUnits to unis for different graphic window
|
||||
variable node
|
||||
variable name
|
||||
|
||||
@ -23,6 +26,7 @@ proc stdConfig::secop {{shownUnits ALL} {restart no}} {
|
||||
prop secopPath /$name
|
||||
prop active 0
|
||||
prop shownUnits $shownUnits
|
||||
prop sepUnits $sepUnits
|
||||
|
||||
set node $node/tasks
|
||||
prop start secop::start
|
||||
@ -48,7 +52,7 @@ proc secop::errorscript_ {} {
|
||||
return secop::update_
|
||||
}
|
||||
sct connection_lost 1
|
||||
[sct controller] poll [sct secopPath] 1
|
||||
[sct controller] poll [sct secopPath] 5
|
||||
error [sct result]
|
||||
}
|
||||
|
||||
@ -76,6 +80,7 @@ proc secop::writemsg {} {
|
||||
|
||||
proc secop::readmsg_ {} { # ending with _: invisible on debug
|
||||
if {[sct connection_lost]} {
|
||||
[sct controller] poll [sct] 0.001
|
||||
sct connection_lost 0
|
||||
return [secop::start]
|
||||
}
|
||||
@ -90,14 +95,15 @@ proc secop::test {} {
|
||||
|
||||
proc secop::check {} {
|
||||
if {[silent "" sct secopar] eq ""} return
|
||||
set validator [silent {} sct validator]
|
||||
eval $validator
|
||||
lassign [split [hinfo [sct]] ","] type
|
||||
set msg "change [sct secopar] [sct target]"
|
||||
hsetprop [sct] secoprequested [sct target]
|
||||
if {[string match "f:*" [sct secopar]]} {
|
||||
clientput "REQ: $msg"
|
||||
set value [sct target]
|
||||
set validator [silent "" sct validator]
|
||||
if {$validator ne ""} {
|
||||
lappend validator $value
|
||||
set value [eval $validator]
|
||||
}
|
||||
lassign [split [hinfo [sct]] ","] type
|
||||
set msg "change [sct secopar] $value"
|
||||
hsetprop [sct] secoprequested [sct target]
|
||||
[sct controller] que [sct secopPath] write [list secop::queuedwrite $msg]
|
||||
}
|
||||
|
||||
@ -133,44 +139,80 @@ proc secop::get {} {
|
||||
return secop::update_
|
||||
}
|
||||
|
||||
proc secop::check_range {min max {absolute_resolution 0} {relative_resolution 0}} {
|
||||
set prec [expr max($absolute_resolution, $relative_resolution * abs([sct target]))]
|
||||
if {[sct target] < $min} {
|
||||
if {[sct target] >= $min - $prec} {
|
||||
sct target $min
|
||||
return
|
||||
proc secop::check_double {datainfo value} {
|
||||
set min [silent -inf dict get $datainfo min]
|
||||
set max [silent inf dict get $datainfo max]
|
||||
set absolute_resolution [silent 0 dict get $datainfo absolute_resolution]
|
||||
set relative_resolution [silent 1.2e-7 dict get $datainfo relative_resolution]
|
||||
set prec [expr max($absolute_resolution, $relative_resolution * abs($value))]
|
||||
if {$value < $min} {
|
||||
if {$value >= $min - $prec} {
|
||||
return $min
|
||||
}
|
||||
} elseif {[sct target] > $max} {
|
||||
if {[sct target] <= $max + $prec} {
|
||||
sct target $max
|
||||
return
|
||||
} elseif {$value > $max} {
|
||||
if {$value <= $max + $prec} {
|
||||
return $max
|
||||
}
|
||||
} else {
|
||||
return
|
||||
return $value
|
||||
}
|
||||
error "[sct] value must be within \[$min, $max\]"
|
||||
error "[sct]: value must be within \[$min, $max\]"
|
||||
}
|
||||
|
||||
proc secop::check_string {min max} {
|
||||
set len [string length [sct target]]
|
||||
proc secop::check_int {datainfo value} {
|
||||
return [check_double $datainfo $value]
|
||||
}
|
||||
|
||||
proc secop::check_string {datainfo value} {
|
||||
set len [string length $value]
|
||||
set min [silent -inf dict get $datainfo minlen]
|
||||
set max [silent inf dict get $datainfo maxlen]
|
||||
if {$len < $min || $len > $max} {
|
||||
error "[sct] string length must be within \[$min, $max\]"
|
||||
error "[sct]: string length must be within \[$min, $max\]"
|
||||
}
|
||||
sct target [format {"%s"} [sct target]]
|
||||
return [format {"%s"} $value]
|
||||
}
|
||||
|
||||
proc secop::check_bool {} {
|
||||
switch -- [string tolower [sct target]] {
|
||||
off - false - no - 0 - on - true - yes - 1 {
|
||||
return
|
||||
|
||||
proc secop::check_bool {datainfo value} {
|
||||
switch -- [string tolower $value] {
|
||||
off - false - no - 0 {
|
||||
return 0
|
||||
}
|
||||
on - true - yes - 1 {
|
||||
return 1
|
||||
}
|
||||
}
|
||||
error "illegal value for boolean: [sct target]"
|
||||
error "[sct]: illegal value for boolean: $value"
|
||||
}
|
||||
|
||||
proc secop::check_tuple args {
|
||||
sct target [format {[%s]} [join [sct target] ,]]
|
||||
clientput [sct target]
|
||||
proc secop::check_tuple {datainfo value} {
|
||||
set items [list]
|
||||
foreach v $value dt [dict get $datainfo members] {
|
||||
set type [dict get $dt type]
|
||||
lappend items [check_$type $dt $v]
|
||||
}
|
||||
return [format {[%s]} [join $items ,]]
|
||||
}
|
||||
|
||||
proc secop::check_array {datainfo value} {
|
||||
set items [list]
|
||||
set dt [dict get $datainfo members]
|
||||
set type [dict get $dt type]
|
||||
foreach v $value {
|
||||
lappend items [check_$type $dt $v]
|
||||
}
|
||||
return [format {[%s]} [join $items ,]]
|
||||
}
|
||||
|
||||
proc secop::check_struct {datainfo value} {
|
||||
set items [list]
|
||||
foreach {k dt} [dict get $datainfo members] {
|
||||
set type [dict get $dt type]
|
||||
set v [check_$type $dt [dict get $value $k]]
|
||||
lappend items [format {"%s": %s} $k $v]
|
||||
}
|
||||
return [format {{%s}} [join $items ", "]]
|
||||
}
|
||||
|
||||
proc secop::make_par {secopar desc {kind ""}} {
|
||||
@ -201,9 +243,8 @@ proc secop::make_par {secopar desc {kind ""}} {
|
||||
# can not use SICS drivable for string
|
||||
set kind ""
|
||||
}
|
||||
bool {set type text}
|
||||
bool - tuple - array - struct {set type text}
|
||||
none {set type none}
|
||||
tuple {set type text}
|
||||
default {
|
||||
clientput "unknown type for $secopar (use text): $secoptype ($datadesc)"
|
||||
set type text
|
||||
@ -224,8 +265,17 @@ proc secop::make_par {secopar desc {kind ""}} {
|
||||
set fmtunit [format { [%s]} $unit]
|
||||
}
|
||||
if {$par eq "" || $par eq "target"} {
|
||||
set label [join [split $secopar :] .]
|
||||
set prevlabel [silent "" result graph_label [string tolower $label]]
|
||||
if {$prevlabel ne ""} {
|
||||
set label $prevlabel
|
||||
}
|
||||
if {[sct shownUnits] eq "ALL" || [lsearch [sct shownUnits] $unit] >= 0} {
|
||||
GraphAdd $path $unit [join [split $secopar :] .]
|
||||
set sepUnits [silent "" sct sepUnits]
|
||||
if {$sepUnits ne ""} {
|
||||
set unit "${unit}_$sepUnits"
|
||||
}
|
||||
GraphAdd $path $unit $label
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -251,7 +301,7 @@ proc secop::make_par {secopar desc {kind ""}} {
|
||||
}
|
||||
hsetprop $path enum [join $enumprop ,]
|
||||
if {[silent "" hgetpropval $path type] eq "drivable"} {
|
||||
hsetprop $path visible false
|
||||
hsetprop $path visible readonly
|
||||
}
|
||||
if {$wid > 8} {
|
||||
hsetprop $path width $wid
|
||||
@ -260,29 +310,18 @@ proc secop::make_par {secopar desc {kind ""}} {
|
||||
}
|
||||
bool {
|
||||
hsetprop $path enum 1
|
||||
hsetprop $path validator secop::check_bool
|
||||
hsetprop $path validator [list secop::check_bool $datadesc]
|
||||
}
|
||||
double {
|
||||
set min [silent -inf dict get $datadesc min]
|
||||
set max [silent inf dict get $datadesc max]
|
||||
set absolute_resolution [silent 0 dict get $datadesc absolute_resolution]
|
||||
set relative_resolution [silent 1.2e-7 dict get $datadesc relative_resolution]
|
||||
hsetprop $path validator [concat secop::check_range $min $max $absolute_resolution $relative_resolution]
|
||||
hsetprop $path validator [list secop::check_double $datadesc]
|
||||
}
|
||||
int {
|
||||
set min [silent -inf dict get $datadesc min]
|
||||
set max [silent inf dict get $datadesc max]
|
||||
hsetprop $path validator [concat secop::check_range $min $max]
|
||||
hsetprop $path validator [list secop::check_int $datadesc]
|
||||
}
|
||||
string {
|
||||
set min [silent -inf dict get $datadesc min]
|
||||
set max [silent inf dict get $datadesc max]
|
||||
hsetprop $path width 16
|
||||
hsetprop $path validator [concat secop::check_string $min $max]
|
||||
}
|
||||
tuple { # TODO: make it work for more complex than number tuples
|
||||
set args [dict get $datadesc members]
|
||||
hsetprop $path validator [linsert $args 0 secop::check_tuple]
|
||||
string - tuple - struct - array {
|
||||
set type [dict get $datadesc type]
|
||||
hsetprop $path width 36
|
||||
hsetprop $path validator [list secop::check_$type $datadesc]
|
||||
}
|
||||
}
|
||||
return $path
|
||||
@ -349,12 +388,14 @@ proc secop::make_par0 {type path secopar desc {kind std}} {
|
||||
# logsetup $path 1
|
||||
logsetup $path 5
|
||||
if {[info exists props(value)]} {
|
||||
clientput "VALUE in descr $path"
|
||||
if {[catch {hupdate /$path $props(value)} msg]} {
|
||||
clientput $msg
|
||||
}
|
||||
unset props(value)
|
||||
}
|
||||
if {![catch {set fmtstr [dict get $props(datainfo) fmtstr]}]} {
|
||||
hsetprop $path fmtstr $fmtstr
|
||||
}
|
||||
foreach {prop item} [array get props] {
|
||||
hsetprop $path s_$prop $item
|
||||
}
|
||||
@ -571,6 +612,7 @@ proc secop::update_ {} {
|
||||
if {$messagetype eq "changed"} {
|
||||
if {[string match *:target $par]} {
|
||||
hsetprop /$obj writestatus done
|
||||
hsetprop /$obj changetime 0
|
||||
}
|
||||
hsetprop $path changed 0
|
||||
catch {hdelprop $path secoprequested}
|
||||
@ -609,8 +651,9 @@ proc secop::update_ {} {
|
||||
set shown 0
|
||||
}
|
||||
set writestatus [silent done hgetpropval $objpath writestatus]
|
||||
set changetime [silent 0 hgetpropval $objpath changetime]
|
||||
if {$value < 100 || $value >= 400} { # error
|
||||
updateerror $objpath $text_value
|
||||
# updateerror $objpath $text_value
|
||||
catch {
|
||||
updateerror $objpath/target $text_value
|
||||
}
|
||||
@ -618,12 +661,12 @@ proc secop::update_ {} {
|
||||
hsetprop $objpath status posfault
|
||||
}
|
||||
} else {
|
||||
if {[silent idle hgetpropval $objpath status] eq "run" && $writestatus ne "done"
|
||||
&& ($value < 300 || $value >= 390)} {
|
||||
clientput "$objpath/target changed, but status not BUSY: $value $text_value ($writestatus)"
|
||||
set value 300
|
||||
set text_value "target changed ($text_value)"
|
||||
}
|
||||
# if {[silent idle hgetpropval $objpath status] eq "run" && $writestatus ne "done"
|
||||
# && ($value < 300 || $value >= 390)} {
|
||||
# clientput "$objpath/target changed, but status not BUSY: $value $text_value ($writestatus)"
|
||||
# set value 300
|
||||
# set text_value "target changed ($text_value)"
|
||||
# }
|
||||
if {$value < 300 || $value >= 390} { # not busy or finalizing
|
||||
hsetprop $objpath status idle
|
||||
}
|
||||
@ -638,7 +681,12 @@ proc secop::update_ {} {
|
||||
}
|
||||
GraphItem shown $objpath $shown
|
||||
if {[silent "" hgetpropval $objpath/target logger_name] ne ""} {
|
||||
GraphItem shown $objpath/target $shown
|
||||
if {[string match *Drivable* [silent "" hgetpropval $objpath sm_interface_classes]]
|
||||
&& [silent "enum" hgetpropval $objpath/target secoptype] ne "enum"} {
|
||||
GraphItem shown $objpath/target $shown
|
||||
} else {
|
||||
GraphItem shown $objpath/target 0
|
||||
}
|
||||
}
|
||||
set text_path [regsub {status_code$} $path status_text]
|
||||
if {[catch {updateval $text_path $text_value}]} {
|
||||
@ -715,6 +763,7 @@ proc secop::update_ {} {
|
||||
hsetprop $path geterror "${etype}: $etext"
|
||||
}
|
||||
error_* {
|
||||
clientlog $val
|
||||
lassign $val etype etext
|
||||
set requesttype [string range $messagetype 6 end]
|
||||
if {$requesttype eq "change" && $path ne ""} {
|
||||
@ -768,6 +817,7 @@ proc secop::checklimits {} {
|
||||
[sct target] != [silent "x" hgetpropval [sct]/target target]} {
|
||||
hset [sct]/target [sct target]
|
||||
sct writestatus checked
|
||||
sct changetime [DoubleTime]
|
||||
sct status run
|
||||
}
|
||||
}
|
||||
@ -804,6 +854,7 @@ proc secop::halt {} {
|
||||
sct stop_issued [DoubleTime]
|
||||
} else {
|
||||
sct writestatus done
|
||||
sct changetime 0
|
||||
sct status idle
|
||||
}
|
||||
return idle
|
||||
@ -816,6 +867,7 @@ proc secop::finish_halt {} {
|
||||
return idle
|
||||
}
|
||||
sct writestatus done
|
||||
sct changetime 0
|
||||
sct status idle
|
||||
return unpoll
|
||||
}
|
||||
|
@ -18,7 +18,7 @@ proc stdConfig::sensirion {} {
|
||||
prop read stdSct::read
|
||||
prop update sensirion::updateFlow
|
||||
|
||||
kids "$name settings" {
|
||||
kids "n.v. flow" {
|
||||
|
||||
node stddev upd
|
||||
|
||||
|
@ -1,11 +1,11 @@
|
||||
deviceDesc = SECoP test (version v1.0)
|
||||
deviceDesc = FRAPPY history recorder, with He pump
|
||||
|
||||
set ::secop_version 4
|
||||
|
||||
makenv frappy_main -driver secop -port pc12694:5000
|
||||
#makenv frappy_stick -driver secop -port localhost:15201
|
||||
makenv frappy_addons -driver secop -port localhost:15301
|
||||
#debug _secop
|
||||
|
||||
#dolater 0 _secop poll /secop 1 read test
|
||||
|
||||
foreach {service port} [exec frappy getports [result instrument]] {
|
||||
makenv frappy_$service -driver secop -port localhost:$port
|
||||
}
|
||||
set hepump [silent undefined hval /cfg_env/_hepump]
|
||||
if {$hepump ne "undefined"} {
|
||||
makeHePump
|
||||
}
|
||||
|
@ -12,6 +12,6 @@ makenv tt -driver [lsdriver] {
|
||||
}
|
||||
tt set/limit 310
|
||||
makeCCU4 ill2 nv n2 he
|
||||
hupdate /nv/set 2.0
|
||||
hupdate /nv/set 1.0
|
||||
|
||||
source std_orange.table
|
||||
|
@ -11,6 +11,7 @@ makenv tt -driver [lsdriver] {
|
||||
}
|
||||
tt set/limit 310
|
||||
makeCCU4 ill5 nv n2 he
|
||||
nv set 1
|
||||
|
||||
source maxi_orange.table
|
||||
|
||||
|
@ -32,6 +32,7 @@ makenv pccu -driver ccu4 pressure_ccu
|
||||
makenv p -driver ccupressure pccu 28
|
||||
GraphAdd p bar p auto
|
||||
|
||||
# needed for TASMAD: must be drivable
|
||||
makenv i1 -driver drvpar /p
|
||||
|
||||
hsetprop /tc group "capillary temperature"
|
||||
|
@ -3,3 +3,4 @@ instconfig makeitem n2fill 1
|
||||
instconfig makeitem hefill 1
|
||||
# he vessel with RS232
|
||||
instconfig makeitem hevessel 1
|
||||
instconfig makeitem sensirion 1
|
||||
|
@ -1,2 +1,3 @@
|
||||
# enable automatic N2 filling
|
||||
instconfig makeitem n2fill 1
|
||||
instconfig makeitem sensirion 1
|
||||
|
@ -3,7 +3,8 @@ deviceDesc = flow cryo for LEM
|
||||
defineTemperature tt
|
||||
|
||||
makenv tt -driver [lsdriver] {
|
||||
lsc_sensor tm A -sensor x174783 -sensorname HX
|
||||
# lsc_sensor tm A -sensor x174783 -sensorname HX #(this got replaced 1.3.2023)
|
||||
lsc_sensor tm A -sensor x70263 -sensorname HX
|
||||
# lsc_sensor tsep B -sensor x86021 -sensorname sep
|
||||
lsc_sensor ts C -sensorname sample
|
||||
lsc_sensor tsh D -sensor pt1000e -sensorname shield
|
||||
|
@ -16,6 +16,7 @@ proc readpipe {} {
|
||||
puts stdout "> $line"
|
||||
}
|
||||
if {[eof $sea(pipe)]} {
|
||||
puts stdout EOF
|
||||
exit
|
||||
}
|
||||
lassign $line adr date time value
|
||||
@ -65,7 +66,12 @@ set env(EPICS_CA_AUTO_ADDR_LIST) NO
|
||||
set env(PATH) $env(PATH):/afs/psi.ch/project/sinq/rhel7/stow/base-3.15.5/bin/linux-x86_64-debug/
|
||||
|
||||
set sea(debug) [lindex "$argv 0" 0]
|
||||
set sea(heartbeat) 300
|
||||
if {$sea(debug) eq "1"} {
|
||||
set sea(heartbeat) 20
|
||||
} else {
|
||||
set sea(heartbeat) 300
|
||||
set sea(debug) 0
|
||||
}
|
||||
|
||||
# connect to sea server prep0
|
||||
set sea(sock) [socket samenv.psi.ch 8640]
|
||||
@ -78,15 +84,14 @@ if {$sea(debug)} {
|
||||
set cmd "/afs/psi.ch/project/sinq/rhel7/stow/base-3.15.5/bin/linux-x86_64-debug/camonitor [array names values]"
|
||||
|
||||
set ret [catch {set proc [exec ps ax -o pid,args | grep $cmd]} msg]
|
||||
set killed [list]
|
||||
if {$ret == 0} {
|
||||
foreach line [split $proc "\n"] {
|
||||
set l [split [string trim $line]]
|
||||
set c [lrange $l 1 end]
|
||||
if {"$c" eq "$cmd"} {
|
||||
# process was still running
|
||||
if {$sea(debug)} {
|
||||
puts stdout "kill $proc ($c)"
|
||||
}
|
||||
lappend killed [lindex $l 0]
|
||||
exec kill -9 [lindex $l 0]
|
||||
}
|
||||
}
|
||||
@ -95,5 +100,15 @@ if {$ret == 0} {
|
||||
set sea(pipe) [open "|$cmd" r]
|
||||
fileevent $sea(pipe) readable readpipe
|
||||
|
||||
puts stdout [pid $sea(pipe)]
|
||||
set mypid [pid $sea(pipe)]
|
||||
set f [open $env(HOME)/monitfiles/luft_camonitor.pid w]
|
||||
puts $f $mypid
|
||||
close $f
|
||||
|
||||
puts stdout $mypid
|
||||
if {[llength $killed] > 0 && $sea(debug)} {
|
||||
puts stdout "killed $killed"
|
||||
}
|
||||
|
||||
seacom "clientlog luft started"
|
||||
vwait forever
|
||||
|
@ -19,7 +19,7 @@ tt set/integ 10
|
||||
|
||||
makeCCU4 ma02 nv n2
|
||||
|
||||
hupdate /nv/set 1.8
|
||||
hupdate /nv/set 1.2
|
||||
|
||||
makeIps -limit 1.8 -startRamp 0.5 -port ma02-ts:3002
|
||||
|
||||
|
@ -38,6 +38,8 @@ mf gen/limit 10
|
||||
|
||||
mf gen/wait_switch_on 15
|
||||
mf gen/wait_switch_off 30
|
||||
mf gen/wait_stable_leads 5
|
||||
mf gen/wait_stable_field 15
|
||||
|
||||
makeIpsLev -port ma10-ts:3001 -controller _mf
|
||||
|
||||
|
@ -1,3 +1,4 @@
|
||||
stickDesc = standard MA10 stick
|
||||
|
||||
stick_sensors x88932 code=22000
|
||||
#stick_sensors x88932 code=22000 #until May 2023
|
||||
stick_sensors x154359 none
|
||||
|
@ -16,8 +16,8 @@ makenv tt -driver [lsdriver] {
|
||||
|
||||
#tt set/limit 310
|
||||
|
||||
makeCCU4 ma6 nv
|
||||
hupdate /nv/set 2.0
|
||||
makeCCU4 ma6 nv he_ilm
|
||||
hupdate /nv/set 1.2
|
||||
makeN2Fill ccu4ilm {
|
||||
ln2fill lowlevel 10
|
||||
ln2fill highlevel 100
|
||||
@ -29,6 +29,9 @@ makeN2Fill ccu4ilm {
|
||||
makeHeFill ccu4ilm
|
||||
|
||||
makeIps -limit 6 -startRamp 0.3844 -port ma6-ts:3002
|
||||
if {[result instrument] eq "tasp"} {
|
||||
mf limit 4
|
||||
}
|
||||
|
||||
makeIlm -channels 2 -port ma6-ts:3001
|
||||
|
||||
|
@ -1,3 +1,3 @@
|
||||
stickDesc = standard MA6 stick
|
||||
|
||||
stick_sensors x63161 x63163
|
||||
stick_sensors x63161 undefined
|
||||
|
@ -1,10 +1,15 @@
|
||||
deviceDesc = 5T System (1975)
|
||||
device stick_menu "dilmango dilRDR5 dilRDR2 dilRDRN"
|
||||
|
||||
GraphOrder K W
|
||||
makenv temp -driver 370_lsc {
|
||||
lsc_sensor main -channel 1 -sensor manual -excitation 10uA
|
||||
}
|
||||
|
||||
GraphAdd temp.main K T
|
||||
GraphAdd temp.main.raw Ohm R
|
||||
|
||||
# levelmeter
|
||||
makeCCU4 mango nv he
|
||||
makeCCU4 mango he
|
||||
|
||||
cc hts 40
|
||||
cc htf 10
|
||||
@ -14,6 +19,8 @@ cc hem 550
|
||||
# 250 l vessel:
|
||||
cc hem0 720
|
||||
|
||||
if {0} { # magnet manually
|
||||
|
||||
makenv mf -driver smc -port Prologix-00-21-69-01-19-57:1234
|
||||
mf gen/profile 5:1
|
||||
mf gen/profile_training 5:1
|
||||
@ -21,3 +28,6 @@ GraphAdd mf T mf
|
||||
GraphAdd mf.smc.leads_set T mf_set
|
||||
GraphAdd mf.smc.leads_meas T mf_cur
|
||||
|
||||
}
|
||||
|
||||
|
@ -1,89 +1,12 @@
|
||||
deviceDesc = 11 Tesla vertical 100mm cryomagnet
|
||||
deviceDesc = FRAPPY history recorder, with stick
|
||||
|
||||
device stick_menu "mb11 dil5 varioxB"
|
||||
set ::secop_version 4
|
||||
|
||||
makenv tvs -driver itctemp -port mb11-ts:3001 -controller _tt DB6.T1 DB1.H1
|
||||
GraphAdd tvs K T_VTIs red
|
||||
GraphAdd tvs.set K T_stat_set orange
|
||||
GraphAdd tvs.pow W pow_tvs red
|
||||
# GraphAdd tvs.raw Ohm R_tvs red
|
||||
|
||||
makenv tvd -driver itctemp -port mb11-ts:3001 -controller _tt DB7.T1 DB2.H1
|
||||
GraphAdd tvd K T_VTId magenta
|
||||
GraphAdd tvd.set K T_dyn_set violet
|
||||
GraphAdd tvd.pow W pow_tvd magenta
|
||||
# GraphAdd tvd.raw Ohm R_tvd magenta
|
||||
|
||||
makeIpsLev -port mb11-ts:3003 -controller _mf -slot DB1
|
||||
|
||||
makenv pstat -driver itcpress -port mb11-ts:3001 -controller _tt DB5.P1 DB3.G1
|
||||
GraphAdd pstat mbar p_stat
|
||||
# GraphAdd pstat.pos % nv_stat
|
||||
GraphAdd pstat.set mbar p_stat_set
|
||||
|
||||
makenv pdyn -driver itcpress -port mb11-ts:3001 -controller _tt DB8.P1 DB4.G1
|
||||
GraphAdd pdyn mbar p_dyn
|
||||
# GraphAdd pdyn.pos % nv_dyn
|
||||
GraphAdd pdyn.set mbar p_dyn_set
|
||||
|
||||
makenv tneck1 -driver itctemp -port mb11-ts:3002 -controller _ta MB1.T1 MB0.H1
|
||||
makenv tneck2 -driver itctemp -port mb11-ts:3002 -controller _ta DB6.T1 DB1.H1
|
||||
makenv tnvs -driver itctemp -port mb11-ts:3002 -controller _ta DB7.T1 DB2.H1
|
||||
makenv tnvd -driver itctemp -port mb11-ts:3002 -controller _ta DB8.T1 DB3.H1
|
||||
|
||||
# GraphAdd tneck1 K_2 T_neck1
|
||||
# GraphAdd tneck1.pow W pow_neck1
|
||||
# GraphAdd tneck2 K_2 T_neck2
|
||||
# GraphAdd tneck2.pow W pow_neck2
|
||||
# GraphAdd tnvs K_2 T_nvs
|
||||
# GraphAdd tnvs.pow W pow_nvs
|
||||
# GraphAdd tnvd K_2 T_nvd
|
||||
# GraphAdd tnvd.pow W pow_nvd
|
||||
|
||||
makenv mf -driver ipsmag -port mb11-ts:3003 -controller _mf
|
||||
makeCCU4 mb11
|
||||
makeHeFill ccu4ilm
|
||||
makeN2Fill ccu4ilm {
|
||||
ln2fill lowlevel 10
|
||||
ln2fill highlevel 90
|
||||
ln2fill minfillminutes 8
|
||||
ln2fill maxfillminutes 60
|
||||
ln2fill minholdhours 12
|
||||
ln2fill maxholdhours 96
|
||||
set ins [result instrument]
|
||||
if {[string match "prep*" $ins]} {
|
||||
set nr [string range $ins end end]
|
||||
} else {
|
||||
error "runs on prep0-9 only"
|
||||
}
|
||||
|
||||
makenv frappy_main -driver secop -port localhost:1511$nr
|
||||
makeHePump
|
||||
|
||||
GraphAdd mf T mf
|
||||
GraphAdd mf.ips.leads_meas T mf_leads green
|
||||
GraphAdd mf.ips.slave1 A I_master red
|
||||
GraphAdd mf.ips.slave2 A I_slave2 green
|
||||
GraphAdd mf.ips.slave3 A I_slavw3 blue
|
||||
|
||||
|
||||
hupdate /mf/ips/symode symmetric
|
||||
mf gen/profile 11:0.25
|
||||
mf gen/profile_training 11:0.25
|
||||
|
||||
mf gen/limit 10
|
||||
|
||||
mf gen/wait_switch_on 60
|
||||
mf gen/wait_switch_off 60
|
||||
mf gen/wait_stable_leads 5
|
||||
mf gen/wait_stable_field 30
|
||||
|
||||
makeCCU4 mb11
|
||||
makeN2Fill ccu4ilm {
|
||||
ln2fill lowlevel 10
|
||||
# ln2fill highlevel 95
|
||||
ln2fill minfillminutes 8
|
||||
ln2fill maxfillminutes 40
|
||||
ln2fill minholdhours 24
|
||||
ln2fill maxholdhours 96
|
||||
# appendVars ln2fill.smooth/%/N2smooth/13
|
||||
}
|
||||
|
||||
makenv tcoil -driver itctemp -port mb11-ts:3003 -controller _mf MB1.T1
|
||||
# GraphAdd tcoil K_2 T_coil
|
||||
|
||||
setstickrot mb11-ts:3004
|
||||
|
@ -1,9 +0,0 @@
|
||||
stickDesc = stick for MB11
|
||||
|
||||
defineTemperature ts
|
||||
|
||||
makenv ts -driver itctemp -port mb11-ts:3001 -controller _tt MB1.T1 MB0.H1
|
||||
GraphAdd ts K T_sam blue
|
||||
GraphAdd ts.set K T_sam_set cyan
|
||||
GraphAdd ts.pow W pow_ts blue
|
||||
GraphAdd ts.raw Ohm R_ts blue
|
@ -1695,6 +1695,7 @@ proc autodevice_cnt {value} {
|
||||
proc autodeviceCron {} {
|
||||
global change_device_to_none unplugged_device
|
||||
|
||||
logconfig flush
|
||||
rack_check_connection
|
||||
set act [silent "" result device action]
|
||||
set now [clock seconds]
|
||||
|
@ -57,6 +57,7 @@ ServerOption TelWord sealogin
|
||||
allowexec [pwd]/plugin/safeplugin
|
||||
allowexec ping
|
||||
allowexec dig
|
||||
allowexec frappy
|
||||
|
||||
definealias tem temperature
|
||||
|
||||
|
@ -81,12 +81,20 @@ proc makeCCU4 {args} {
|
||||
helium_register _cc /cc/h0 vessel
|
||||
if {$vessel ne "0"} {
|
||||
catch {cc hea 1}
|
||||
catch {cc hem0 475}
|
||||
catch {cc hfu0 0}
|
||||
}
|
||||
}
|
||||
helium_register _cc /cc/h
|
||||
}
|
||||
he_ilm {
|
||||
makenv hefill -driver ccu4ext he lev
|
||||
set vessel [silent 0 result instconfig hevessel]
|
||||
if {$vessel ne "0"} {
|
||||
catch {cc hea 1}
|
||||
catch {cc hem0 475}
|
||||
catch {cc hfu0 0}
|
||||
}
|
||||
GraphAdd lev % He_Level brown
|
||||
GraphAdd cc.h0 % HeVessel blue
|
||||
hsetprop /hefill fast_cmd "lev mode 1\ncc hf 1"
|
||||
|
@ -91,9 +91,13 @@ proc hdbItem {path title} {
|
||||
set buttons [silent "" hgetpropval $path buttons]
|
||||
set val ""
|
||||
if {[string match "run *" $cmd]} {
|
||||
set val [silent "" hgetpropval $path target]
|
||||
set cmd2 [string range $cmd 4 end]
|
||||
set val [silent $val result $cmd2 target]
|
||||
set cmd2 [string range $cmd 4 end]
|
||||
if {[silent 0 hgetpropval $path visible] eq "readonly"} {
|
||||
set val [silent "" hvali $path]
|
||||
} else {
|
||||
# set val [silent "" hgetpropval $path target]
|
||||
set val [silent $val result $cmd2 target]
|
||||
}
|
||||
clientput "-P"
|
||||
} elseif {$type eq "func"} {
|
||||
clientput "-T$title"
|
||||
@ -102,7 +106,8 @@ proc hdbItem {path title} {
|
||||
return
|
||||
} else {
|
||||
set cmd2 ""
|
||||
if {[catch {set val [result $cmd]} msg]} {
|
||||
# using {set val [result $cmd]} will have strange effects: 'xatto info' is like 'run xatto inf'!
|
||||
if {[catch {set val [hval $path]} msg]} {
|
||||
if {$msg eq "ERROR: not read yet"} {
|
||||
set val ""
|
||||
} else {
|
||||
@ -117,10 +122,20 @@ proc hdbItem {path title} {
|
||||
set priv internal
|
||||
clientput "-P"
|
||||
}
|
||||
set fmtstr [silent "" hgetpropval $path fmtstr]
|
||||
if {$fmtstr ne ""} {
|
||||
set val [format $fmtstr $val]
|
||||
}
|
||||
if {[silent "" hgetpropval $path visible] eq "readonly"} {
|
||||
set priv internal
|
||||
}
|
||||
switch $priv {
|
||||
user - spy {
|
||||
set val [silent $val hgetpropval $path requested]
|
||||
set val [silent $val hgetpropval $path secoprequested]
|
||||
#if {$fmtstr ne ""} {
|
||||
# set val [format $fmtstr $val]
|
||||
#}
|
||||
set enum [silent "" hgetpropval $path enum]
|
||||
if {$enum eq ""} {
|
||||
# experimental
|
||||
@ -292,6 +307,8 @@ proc nodeVisible {path {key visible}} {
|
||||
set vis [silent true hgetpropval $path $key]
|
||||
if {$vis eq "expert"} {
|
||||
return [info exists shown_groups(expertMode)]
|
||||
} elseif {$vis eq "readonly"} {
|
||||
return 1
|
||||
}
|
||||
return $vis
|
||||
}
|
||||
@ -305,7 +322,9 @@ proc hdbLayout {path} {
|
||||
# clientput "L $path G $group [nodeVisible $path groupMode]"
|
||||
if {! [string equal 0 $group] && [nodeVisible $path groupMode]} {
|
||||
lassign [split $path /] _ obj
|
||||
if {![string match *$obj* $group]} {
|
||||
if {[string tolower $obj] eq $group} {
|
||||
set group $obj
|
||||
} elseif {![string match *$obj* $group]} {
|
||||
set group "$group \[$obj\]"
|
||||
}
|
||||
clientput "-T$group"
|
||||
|
@ -8,6 +8,8 @@ proc makeHePump {} {
|
||||
set type 1
|
||||
} elseif {$type eq "sv65"} {
|
||||
set type 2
|
||||
} elseif {$type eq "neodry"} {
|
||||
set type 8
|
||||
} else {
|
||||
error "unknown hepump type: $type"
|
||||
}
|
||||
@ -37,8 +39,8 @@ proc pump_is_off {} {
|
||||
}
|
||||
}
|
||||
hupdate [sct]/status $pmsg
|
||||
return 1
|
||||
}
|
||||
return 1
|
||||
}
|
||||
if {[string match ${msghead}* [hvali [sct]/status]]} {
|
||||
hupdate [sct]/status ""
|
||||
}
|
||||
@ -58,3 +60,4 @@ proc pump_health_update {instrument value} {
|
||||
}
|
||||
|
||||
|
||||
publishLazy pump_health_update Spy
|
||||
|
9
tcl/uniax.stick
Normal file
9
tcl/uniax.stick
Normal file
@ -0,0 +1,9 @@
|
||||
stickDesc = Uniax stick via SECoP on the apu (via network)
|
||||
|
||||
set ::secop_version 4
|
||||
|
||||
makenv frappy-stick -driver secop -port linse-uniax:5000
|
||||
|
||||
stick_sensors undefined undefined
|
||||
|
||||
defineTemperature t
|
Reference in New Issue
Block a user