- update instruments configurations
- new six version with status display - bugfixes on TecsClient - some changed samp. env. devices
This commit is contained in:
@ -1,7 +1,4 @@
|
|||||||
name=CCR2_T
|
name=CCR2_K ! name (15 char.max.,will be converted to uppercase)
|
||||||
curv=4
|
|
||||||
|
|
||||||
name=CCR2_S ! name (15 char.max.,will be converted to uppercase)
|
|
||||||
sens=x10409 ! sensor no (max.10 char.)
|
sens=x10409 ! sensor no (max.10 char.)
|
||||||
unit=Ohm ! sensor format (mV,V,Ohm), log formats are choosen automatically
|
unit=Ohm ! sensor format (mV,V,Ohm), log formats are choosen automatically
|
||||||
!tlim=3250 ! setpoint limit (automatic if omitted)
|
!tlim=3250 ! setpoint limit (automatic if omitted)
|
||||||
@ -82,7 +79,7 @@ curv ! curve (sensor,temp/K) follows, must be ordered, but can be inc
|
|||||||
74.1057045 325.9043579
|
74.1057045 325.9043579
|
||||||
73.21666644 329.7353821
|
73.21666644 329.7353821
|
||||||
|
|
||||||
name=CCR2_M ! name (15 char.max.,will be converted to uppercase)
|
name=CCR2_S ! name (15 char.max.,will be converted to uppercase)
|
||||||
sens=x24506 ! sensor no (max.10 char.)
|
sens=x24506 ! sensor no (max.10 char.)
|
||||||
unit=Ohm ! sensor format (mV,V,Ohm), log formats are choosen automatically
|
unit=Ohm ! sensor format (mV,V,Ohm), log formats are choosen automatically
|
||||||
!tlim=3250 ! setpoint limit (automatic if omitted)
|
!tlim=3250 ! setpoint limit (automatic if omitted)
|
||||||
@ -174,3 +171,95 @@ curv ! curve (sensor,temp/K) follows, must be ordered, but can be inc
|
|||||||
47.6297072 321.2613963
|
47.6297072 321.2613963
|
||||||
46.74933639 328.7765688
|
46.74933639 328.7765688
|
||||||
|
|
||||||
|
name=CCR2_T ! name (15 char.max.,will be converted to uppercase)
|
||||||
|
sens=x14231 ! sensor no (max. 10 char.)
|
||||||
|
unit=Ohm ! sensor format (mV,V,Ohm), log formats are choosen automatically
|
||||||
|
type=Cernox ! sensor type (Special,Si,GaAlAs,Pt250,Pt500,Pt2500,RhFe,C,Cernox,RuOx,Ge) (special if omitted)
|
||||||
|
curv ! curve (sensor,temp/K) follows, must be ordered, but can be increasing or decreasing
|
||||||
|
45346.09176 1.198717153
|
||||||
|
36706.00173 1.298616179
|
||||||
|
30407.09586 1.399152924
|
||||||
|
22223.29963 1.598426911
|
||||||
|
17175.65133 1.799308766
|
||||||
|
13877.32694 1.997886019
|
||||||
|
11390.09764 2.214142275
|
||||||
|
9906.509898 2.389526577
|
||||||
|
8539.145773 2.601747251
|
||||||
|
7516.284525 2.807291184
|
||||||
|
6744.498808 3.002487122
|
||||||
|
6100.009293 3.202475086
|
||||||
|
5551.381013 3.408289164
|
||||||
|
5108.853651 3.606142735
|
||||||
|
4731.042051 3.80500669
|
||||||
|
4416.159886 3.996132283
|
||||||
|
4143.794235 4.185137213
|
||||||
|
3640.535495 4.616513504
|
||||||
|
3268.12937 5.022147341
|
||||||
|
2899.676365 5.528662912
|
||||||
|
2512.606636 6.240495878
|
||||||
|
2185.580383 7.048665902
|
||||||
|
1886.592014 8.061087557
|
||||||
|
1663.486413 9.078580603
|
||||||
|
1490.913956 10.09831729
|
||||||
|
1353.808309 11.11262662
|
||||||
|
1241.978882 12.12053341
|
||||||
|
1149.175518 13.12453255
|
||||||
|
1070.200846 14.12385451
|
||||||
|
1002.590927 15.11930797
|
||||||
|
943.6033917 16.10992155
|
||||||
|
891.7175592 17.09784756
|
||||||
|
845.6352302 18.08488235
|
||||||
|
804.3306007 19.07335027
|
||||||
|
767.1307438 20.05756306
|
||||||
|
730.1316279 21.14546834
|
||||||
|
682.2281523 22.72983276
|
||||||
|
640.2446923 24.32652476
|
||||||
|
602.3359845 25.96250613
|
||||||
|
568.6695509 27.61161933
|
||||||
|
538.8443318 29.24410485
|
||||||
|
508.9742411 31.06754222
|
||||||
|
478.3257114 33.18021519
|
||||||
|
440.5589996 36.18972271
|
||||||
|
408.6376322 39.17322288
|
||||||
|
381.0960781 42.16172046
|
||||||
|
356.9619405 45.16110987
|
||||||
|
335.7847002 48.16065735
|
||||||
|
323.0015773 50.15751877
|
||||||
|
295.0585709 55.15427778
|
||||||
|
271.5202017 60.15845647
|
||||||
|
251.4849869 65.1554738
|
||||||
|
234.261859 70.15087616
|
||||||
|
219.2208675 75.13817156
|
||||||
|
206.0170192 80.13574238
|
||||||
|
193.8353068 85.35591401
|
||||||
|
183.8447324 90.12851069
|
||||||
|
174.4541594 95.12557876
|
||||||
|
165.9511715 100.1241728
|
||||||
|
150.2884406 110.7809236
|
||||||
|
138.8086112 120.1158899
|
||||||
|
128.2784478 130.1156516
|
||||||
|
119.2281279 140.1168039
|
||||||
|
111.3536703 150.1159926
|
||||||
|
104.4582753 160.1113105
|
||||||
|
98.36914182 170.1119695
|
||||||
|
92.95834383 180.1280541
|
||||||
|
88.13033956 190.1264348
|
||||||
|
83.79340557 200.1354211
|
||||||
|
79.87162555 210.1502982
|
||||||
|
76.35426251 220.1464909
|
||||||
|
73.13678899 230.1446765
|
||||||
|
70.20472384 240.142717
|
||||||
|
67.52770935 250.1298551
|
||||||
|
65.07150159 260.1424032
|
||||||
|
62.80585804 270.1413526
|
||||||
|
60.72207723 280.1360821
|
||||||
|
58.80254217 290.1099663
|
||||||
|
57.01318852 300.1296204
|
||||||
|
55.36154863 310.1251632
|
||||||
|
54.56232509 315.1323273
|
||||||
|
53.81080087 320.1337028
|
||||||
|
52.93912804 326.1023799
|
||||||
|
52.36765678 330.1165788
|
||||||
|
|
||||||
|
name=CCR2_M ! name (15 char.max.,will be converted to uppercase)
|
||||||
|
curv=4
|
||||||
|
@ -184,25 +184,25 @@ curv ! curve (sensor,temp/K) follows, must be ordered, but can be inc
|
|||||||
4.927322 331.981
|
4.927322 331.981
|
||||||
|
|
||||||
name=MA09_T ! name (15 char.max.,will be converted to uppercase)
|
name=MA09_T ! name (15 char.max.,will be converted to uppercase)
|
||||||
sens=Cplus45
|
sens=Cplus70
|
||||||
unit=Ohm
|
unit=Ohm
|
||||||
type=C
|
type=C
|
||||||
form=loglog
|
form=loglog
|
||||||
curv
|
curv
|
||||||
50045 1
|
50070 1
|
||||||
6545 2
|
6570 2
|
||||||
2245 3
|
2270 3
|
||||||
1145 4.2
|
1170 4.2
|
||||||
670 6
|
695 6
|
||||||
395 10
|
420 10
|
||||||
295 15
|
320 15
|
||||||
255 20
|
280 20
|
||||||
225 27
|
250 27
|
||||||
205 35
|
230 35
|
||||||
185 50
|
210 50
|
||||||
169 77
|
194 77
|
||||||
161 100
|
186 100
|
||||||
152 150
|
177 150
|
||||||
148 200
|
173 200
|
||||||
143 300
|
168 300
|
||||||
135 500
|
135 500
|
||||||
|
@ -52,8 +52,13 @@
|
|||||||
+13, 'ccr4k' m dev="4 K closed cycle refrigerator"
|
+13, 'ccr4k' m dev="4 K closed cycle refrigerator"
|
||||||
tlimit=310 resist=25 maxPower=100
|
tlimit=310 resist=25 maxPower=100
|
||||||
prop=50 int=20 deriv=0
|
prop=50 int=20 deriv=0
|
||||||
+28,-28 'ccr2' mts_ dev="4 K closed cycle refrigerator (FOCUS)"
|
+28,-28 'ccr2' t_ks dev="4 K closed cycle refrigerator (FOCUS)"
|
||||||
tlimit=330 resist=25 maxPower=100
|
tlimit=700 resist=25 maxPower=100
|
||||||
|
sensA.alarm=310
|
||||||
|
prop=50 int=20 deriv=0
|
||||||
|
+28,-28 'ccr2ht' tmks dev="4 K closed cycle refrigerator (FOCUS) with hi-T stage"
|
||||||
|
tlimit=700 resist=25 maxPower=100
|
||||||
|
sensA.alarm=310
|
||||||
prop=50 int=20 deriv=0
|
prop=50 int=20 deriv=0
|
||||||
+14,-11,'hef4c' mns dev="He-flow 4 circle cryostat"
|
+14,-11,'hef4c' mns dev="He-flow 4 circle cryostat"
|
||||||
tlimit=310 resist=50 maxPower=25
|
tlimit=310 resist=50 maxPower=25
|
||||||
@ -91,12 +96,14 @@
|
|||||||
tlimit=310 resist=50 maxpower=50 controlmode=0
|
tlimit=310 resist=50 maxpower=50 controlmode=0
|
||||||
sensA.lim=50 sensB.lim=60
|
sensA.lim=50 sensB.lim=60
|
||||||
prop=25 int=10 deriv=0
|
prop=25 int=10 deriv=0
|
||||||
|
+27, 'ma11' t dev="SANS test carbon resistors" config=ma11.cfg
|
||||||
+23,-23,'ma02' m_s dev="1.8 T horizontal cryomagnet (Risoe)"
|
+23,-23,'ma02' m_s dev="1.8 T horizontal cryomagnet (Risoe)"
|
||||||
tlimit=310 resist=50 maxpower=50
|
tlimit=310 resist=50 maxpower=50
|
||||||
prop=15 int=10 deriv=0
|
prop=15 int=10 deriv=0
|
||||||
+90, 'variox' ms dev="variox cryostat/dilution (Risoe)"
|
+90, 'variox' ms dev="variox cryostat/dilution (Risoe)"
|
||||||
tlimit=375 resist=16 maxpower=25
|
tlimit=375 resist=16 maxpower=25
|
||||||
prop=50 int=10 deriv=0
|
prop=50 int=10 deriv=0
|
||||||
|
+90, 'dil' __s dev="dilution (Risoe)"
|
||||||
+91, 'rdr11' m dev="LTF dilution cryostat"
|
+91, 'rdr11' m dev="LTF dilution cryostat"
|
||||||
tlimit=12.0 resist=708 maxPower=0.01 powfact=0.03
|
tlimit=12.0 resist=708 maxPower=0.01 powfact=0.03
|
||||||
sensA.scale=0.01 config=rdr.cfg
|
sensA.scale=0.01 config=rdr.cfg
|
||||||
|
@ -1,127 +1,94 @@
|
|||||||
name=VARIOX_M ! name (15 char.max.,will be converted to uppercase
|
name=VARIOX_M ! name (15 char.max.,will be converted to uppercase
|
||||||
sens=rhfe0734 ! sensor no (max.10 char.)
|
sens=x12533 ! sensor no (max.10 char.)
|
||||||
unit=Ohm ! sensor format (mV,V,Ohm), log formats are choosen automatically
|
unit=Ohm ! sensor format (mV,V,Ohm), log formats are choosen automatically
|
||||||
!tlim=3250 ! setpoint limit (automatic if omitted)
|
!tlim=3250 ! setpoint limit (automatic if omitted)
|
||||||
type=RhFe ! sensor type (Special,Si,GaAlAs,Pt250,Pt500,Pt2500,RhFe,C,Cernox,RuOx,Ge) (special if omitted)
|
type=Cernox ! sensor type (Special,Si,GaAlAs,Pt250,Pt500,Pt2500,RhFe,C,Cernox,RuOx,Ge) (special if omitted)
|
||||||
!excit=300uA ! (off,30nA,100nA,300nA,1uA,3uA,10uA,30uA,100uA,300uA,1mA,10mV,1mV) (if omitted: default from sensor type)
|
!excit=300uA ! (off,30nA,100nA,300nA,1uA,3uA,10uA,30uA,100uA,300uA,1mA,10mV,1mV) (if omitted: default from sensor type)
|
||||||
!range=0 ! range in sensor units (if rang=0: determine range from table, if omitted: default from sensor type)
|
!range=0 ! range in sensor units (if rang=0: determine range from table, if omitted: default from sensor type)
|
||||||
curv ! curve (sensor,temp/K) follows, must be ordered, but can be increasing or decreasing
|
curv ! curve (sensor,temp/K) follows, must be ordered, but can be increasing or decreasing
|
||||||
+1.68 0.5831
|
58491.11567 1.212535322
|
||||||
+1.73 0.8616
|
47949.5449 1.302323103
|
||||||
+1.78 1.1426
|
39259.49409 1.40324533
|
||||||
+1.83 1.4276
|
28281.43621 1.600896776
|
||||||
+1.88 1.7179
|
21767.98069 1.795822322
|
||||||
+1.93 2.0148
|
17155.67121 2.008253574
|
||||||
+1.98 2.3195
|
14213.75553 2.204490304
|
||||||
+2.03 2.6331
|
12007.63886 2.406743169
|
||||||
+2.08 2.957
|
10415.31809 2.599679828
|
||||||
+2.13 3.292
|
9105.003941 2.805752277
|
||||||
+2.18 3.6391
|
8097.388389 3.006976485
|
||||||
+2.23 3.9993
|
7291.357363 3.205610991
|
||||||
+2.28 4.3734
|
6646.490487 3.398921728
|
||||||
+2.33 4.7622
|
6076.028335 3.602926254
|
||||||
+2.38 5.1668
|
5637.018504 3.787533283
|
||||||
+2.43 5.5881
|
5214.064508 3.994657993
|
||||||
+2.48 6.0273
|
4839.768732 4.207356453
|
||||||
+2.53 6.4856
|
4501.690135 4.432101488
|
||||||
+2.58 6.9644
|
4057.668994 4.784009218
|
||||||
+2.63 7.465
|
3511.923839 5.342074394
|
||||||
+2.68 7.9888
|
2973.614912 6.100896835
|
||||||
+2.73 8.5374
|
2579.128549 6.871365786
|
||||||
+2.78 9.1123
|
2207.384439 7.865557909
|
||||||
+2.83 9.7149
|
1915.850175 8.940035343
|
||||||
+2.88 10.3469
|
1726.748344 9.848879814
|
||||||
+2.93 11.0099
|
1563.465412 10.82483435
|
||||||
+2.98 11.7059
|
1418.13084 11.9001646
|
||||||
+3.03 12.4366
|
1316.964373 12.79871416
|
||||||
+3.08 13.2041
|
1224.187029 13.76333618
|
||||||
+3.13 14.0107
|
1139.695628 14.78597641
|
||||||
+3.18 14.8583
|
1069.281285 15.77101898
|
||||||
+3.23 15.7491
|
1010.884223 16.69764805
|
||||||
+3.28 16.685
|
957.2041233 17.6546526
|
||||||
+3.33 17.6671
|
907.944238 18.63812733
|
||||||
+3.38 18.6961
|
863.1087092 19.63531017
|
||||||
+3.43 19.7717
|
814.3069506 20.84896278
|
||||||
+3.48 20.8922
|
757.6393844 22.4640255
|
||||||
+3.53 22.0546
|
710.4887602 24.00959301
|
||||||
+3.58 23.254
|
665.7070891 25.68195915
|
||||||
+3.63 24.4842
|
627.583247 27.29504395
|
||||||
+3.68 25.7372
|
593.4598081 28.91486263
|
||||||
+3.73 27.0041
|
556.2805114 30.91711807
|
||||||
+3.78 28.275
|
522.5368408 32.97060394
|
||||||
+3.83 29.5403
|
477.5900412 36.16845131
|
||||||
+3.88 30.7913
|
442.8664029 39.07749367
|
||||||
+3.93 32.0212
|
411.6814887 42.11124992
|
||||||
+3.98 33.2277
|
384.9241731 45.10907555
|
||||||
+4.03 34.4064
|
360.8523969 48.1827774
|
||||||
+4.08 35.5549
|
346.3993674 50.23285484
|
||||||
+4.13 36.6724
|
315.6773941 55.20724106
|
||||||
+4.18 37.7591
|
290.0937236 60.16088295
|
||||||
+4.23 38.8156
|
267.7935066 65.242836
|
||||||
+4.28 39.8428
|
249.4506493 70.1031723
|
||||||
+4.33 40.8421
|
233.2979124 75.00526047
|
||||||
+4.43 42.7622
|
218.8083315 80.00709915
|
||||||
+4.53 44.5869
|
205.717029 85.11898804
|
||||||
+4.63 46.3269
|
194.3976616 90.08143997
|
||||||
+4.73 47.992
|
184.3289633 95.00944519
|
||||||
+4.83 49.5908
|
174.4566698 100.3590927
|
||||||
+4.93 51.1309
|
158.5832207 110.3372612
|
||||||
+5.03 52.6189
|
145.2116141 120.3833885
|
||||||
+5.13 54.0603
|
133.8192793 130.4760437
|
||||||
+5.23 55.4602
|
124.1684502 140.4295197
|
||||||
+5.33 56.8226
|
115.6706335 150.5550842
|
||||||
+5.43 58.1513
|
108.2798297 160.5835495
|
||||||
+5.53 59.4494
|
101.75565 170.6484222
|
||||||
+5.63 60.7198
|
95.95185322 180.7810669
|
||||||
+5.73 61.9649
|
90.8262136 190.7918854
|
||||||
+5.83 63.1869
|
86.2172275 200.8603973
|
||||||
+5.93 64.3876
|
82.03414533 210.9830551
|
||||||
+6.03 65.5689
|
78.2895644 221.0397034
|
||||||
+6.13 66.7323
|
74.89527823 231.0341873
|
||||||
+6.23 67.8791
|
71.75384718 241.2140121
|
||||||
+6.33 69.0106
|
68.9091264 251.3133316
|
||||||
+6.43 70.1279
|
66.30965093 261.3838348
|
||||||
+6.53 71.232
|
63.91098586 271.4609528
|
||||||
+6.63 72.324
|
61.72845994 281.4719086
|
||||||
+6.73 73.4046
|
59.67628607 291.6222687
|
||||||
+6.83 74.4746
|
57.78058314 301.7855835
|
||||||
+6.93 75.5348
|
56.02719573 311.8906708
|
||||||
+7.03 76.5858
|
55.19537744 316.946228
|
||||||
+7.13 77.6282
|
54.39166232 321.9963684
|
||||||
+7.23 78.6626
|
53.63383002 326.9981842
|
||||||
+7.33 79.6895
|
|
||||||
+7.43 80.7094
|
|
||||||
+7.53 81.7228
|
|
||||||
+7.63 82.7301
|
|
||||||
+7.73 83.7316
|
|
||||||
+7.83 84.7278
|
|
||||||
+7.93 85.7189
|
|
||||||
+8.03 86.7054
|
|
||||||
+8.13 87.6875
|
|
||||||
+8.23 88.6655
|
|
||||||
+8.33 89.6396
|
|
||||||
+9.33 99.2177
|
|
||||||
+10.33 108.6138
|
|
||||||
+11.33 117.9369
|
|
||||||
+12.33 127.252
|
|
||||||
+13.33 136.5978
|
|
||||||
+14.33 145.9964
|
|
||||||
+15.33 155.4592
|
|
||||||
+16.33 164.9901
|
|
||||||
+17.33 174.5886
|
|
||||||
+18.33 184.251
|
|
||||||
+19.33 193.9718
|
|
||||||
+20.33 203.7444
|
|
||||||
+21.33 213.5617
|
|
||||||
+22.33 223.4166
|
|
||||||
+23.33 233.3019
|
|
||||||
+24.33 243.211
|
|
||||||
+25.33 253.1376
|
|
||||||
+26.33 263.076
|
|
||||||
+27.33 273.0207
|
|
||||||
+29.33 292.9108
|
|
||||||
+31.33 312.7801
|
|
||||||
+33.33 332.6028
|
|
||||||
|
|
||||||
name=VARIOX_S ! name (15 char.max.,will be converted to uppercase)
|
name=VARIOX_S ! name (15 char.max.,will be converted to uppercase)
|
||||||
sens=RX1976 ! sensor no (max.10 char.)
|
sens=RX1976 ! sensor no (max.10 char.)
|
||||||
@ -172,3 +139,4 @@ curv ! curve mV,K (200 kOhm Range)
|
|||||||
28.67 3.75
|
28.67 3.75
|
||||||
28.57 4.00
|
28.57 4.00
|
||||||
28.27 4.20
|
28.27 4.20
|
||||||
|
25.00 10.0
|
||||||
|
@ -5,7 +5,7 @@ AMOR@lnsa14:bin/ DMC@lnsa05:bin/ FOCUS@lnsa16:bin/ \
|
|||||||
HRPT@lnsa11:bin/ TASP@lnsa12:bin/ TRICS@lnsa18:bin/ \
|
HRPT@lnsa11:bin/ TASP@lnsa12:bin/ TRICS@lnsa18:bin/ \
|
||||||
lnslib@lnsa15:bin/ \
|
lnslib@lnsa15:bin/ \
|
||||||
type@linux \
|
type@linux \
|
||||||
TOPSI@pc4120:topsi_sics/ SANS@pc3965:sans_sics/ \
|
TOPSI@pc4120:topsi_sics/ SANS@pc3965:sans_sics/ SANS2@sans2:sans2_sics/ \
|
||||||
)
|
)
|
||||||
|
|
||||||
set dests=""
|
set dests=""
|
||||||
@ -28,7 +28,7 @@ foreach dest ($destlist)
|
|||||||
endif
|
endif
|
||||||
end
|
end
|
||||||
|
|
||||||
set items=(TecsServer TecsClient six cfg)
|
set items=(TecsServer TecsClient six keep_running cfg)
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo " all $items"
|
echo " all $items"
|
||||||
|
@ -11,6 +11,7 @@ static Instrument list[]={
|
|||||||
{ "DMC", "lnsa05.psi.ch", 9753, "DMC" , 1},
|
{ "DMC", "lnsa05.psi.ch", 9753, "DMC" , 1},
|
||||||
{ "TOPSI", "pc4120.psi.ch", 9753, "TOPSI" , 1},
|
{ "TOPSI", "pc4120.psi.ch", 9753, "TOPSI" , 1},
|
||||||
{ "SANS", "sans.psi.ch", 9753, "SANS" , 1},
|
{ "SANS", "sans.psi.ch", 9753, "SANS" , 1},
|
||||||
|
{ "SANS2", "sans2.psi.ch", 9753, "SANS2" , 1},
|
||||||
{ "HRPT", "lnsa11.psi.ch", 9753, "HRPT" , 1},
|
{ "HRPT", "lnsa11.psi.ch", 9753, "HRPT" , 1},
|
||||||
{ "TRICS", "lnsa18.psi.ch", 9753, "TRICS" , 1},
|
{ "TRICS", "lnsa18.psi.ch", 9753, "TRICS" , 1},
|
||||||
{ "AMOR", "lnsa14.psi.ch", 9753, "AMOR" , 1},
|
{ "AMOR", "lnsa14.psi.ch", 9753, "AMOR" , 1},
|
||||||
@ -18,8 +19,8 @@ static Instrument list[]={
|
|||||||
{ "TASP", "lnsa12.psi.ch", 9753, "TASP", 1},
|
{ "TASP", "lnsa12.psi.ch", 9753, "TASP", 1},
|
||||||
{ "TASP0", "lnsa09.psi.ch", 9753, NULL , 0},
|
{ "TASP0", "lnsa09.psi.ch", 9753, NULL , 0},
|
||||||
{ "RITA", "pc4345.psi.ch", 9753, NULL , 0},
|
{ "RITA", "pc4345.psi.ch", 9753, NULL , 0},
|
||||||
{ "PREP", "lnsa15.psi.ch", 9753, "lnslib", 2},
|
{ "PREP", "lnsa15.psi.ch", 9753, "lnsg" , 2},
|
||||||
{ "AREA", "lnsa15.psi.ch", 9751, "lnslib", 2},
|
{ "AREA", "lnsa15.psi.ch", 9751, "lnsg" , 2},
|
||||||
{ "TEST", "lnsa15.psi.ch", 9755, "lnslib", 2}
|
{ "TEST", "lnsa15.psi.ch", 9755, "lnslib", 2}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -63,7 +63,7 @@ int main(int argc, char *argv[]) {
|
|||||||
} else {
|
} else {
|
||||||
arg="";
|
arg="";
|
||||||
}
|
}
|
||||||
str_append(cmd, "bin/startecs");
|
str_append(cmd, "/data/lnslib/bin/startecs");
|
||||||
secure_arg(cmd, sizeof(cmd), arg);
|
secure_arg(cmd, sizeof(cmd), arg);
|
||||||
str_append(cmd, "\n");
|
str_append(cmd, "\n");
|
||||||
} else {
|
} else {
|
||||||
|
196
tecs/six.c
196
tecs/six.c
@ -46,50 +46,101 @@ int CocCreateSockAdr(
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int readWrite(int fd, int skip) {
|
char* readWrite(int fd, int tmo, int skip, char *find) {
|
||||||
char msg[128];
|
char msg[256];
|
||||||
int l, i, go, iret, ires, n;
|
int l, lbuf, pos, i, go, iret, n, ga;
|
||||||
|
char *p, chr;
|
||||||
|
static char result[256];
|
||||||
|
int match;
|
||||||
|
static int laststat=0;
|
||||||
/*
|
/*
|
||||||
* read from fd and write to stdout until a key pressed,
|
* read from fd and write to stdout until a key pressed,
|
||||||
* a timeout occured (1 or 5 sec.), or a <go ahead> message
|
* a timeout occurred (tmo [msec]), or a <go ahead> message
|
||||||
* received.
|
* received.
|
||||||
* skip=0: timeout 1 sec (normal behaviour)
|
* skip=0: skip response that does not match
|
||||||
* skip>0: timeout 10 sec.
|
* skip=1: skip all responses
|
||||||
* skip>1: swallow text
|
*
|
||||||
* skip=1,2: return 0 if SICS not found in message text
|
* if the response starts with the contents of find
|
||||||
* skip=3: return 0 if not acknowledged
|
* the second part of the line is returned
|
||||||
|
* if the response contain the contents of find, but not at the beginning
|
||||||
|
* "1" is returned
|
||||||
|
* if the text is not found, or find=NULL, an empty line is returned
|
||||||
*/
|
*/
|
||||||
n=0;
|
n=0;
|
||||||
go=0;
|
go=0;
|
||||||
ires=0;
|
ga=0;
|
||||||
iret=term_wait_fd(fd, skip?10000:1000);
|
str_copy(result, "");
|
||||||
while (iret==1) {
|
iret=term_wait_fd(fd, tmo);
|
||||||
ERR_SI(l=recv(fd, msg, sizeof(msg)-1, 0));
|
while (iret>0) {
|
||||||
/* if (l==0) return(0); */
|
pos=0;
|
||||||
msg[l]='\0';
|
ERR_SI(lbuf=recv(fd, &chr, 1, 0));
|
||||||
if (skip==3) {
|
if (lbuf==0) return "0";
|
||||||
if (NULL!=strstr(msg, "Acknowledged")) ires=1;
|
while (lbuf>0) {
|
||||||
} else if (skip==1 || skip==2) {
|
if (chr<' ') {
|
||||||
if (NULL!=strstr(msg, "SICS")) ires=1;
|
if (chr=='\n') break;
|
||||||
|
if (chr==-1) {
|
||||||
|
ga=1;
|
||||||
|
} else if (chr==-7 && ga) {
|
||||||
|
go=1; break;
|
||||||
|
} else {
|
||||||
|
ga=0;
|
||||||
|
if (chr!='\r') {
|
||||||
|
msg[pos++]=chr;
|
||||||
}
|
}
|
||||||
for (i=0; i<l-1; i++) {
|
}
|
||||||
if (msg[i]==-1 && msg[i+1]==-7) { /* go ahead */
|
} else {
|
||||||
|
msg[pos++]=chr;
|
||||||
|
}
|
||||||
|
iret=term_wait_fd(fd, tmo);
|
||||||
|
if (iret!=1) break;
|
||||||
|
ERR_SI(lbuf=recv(fd, &chr, 1, 0));
|
||||||
|
}
|
||||||
|
msg[pos]='\0';
|
||||||
|
/* printf("[%s]\n", msg); */
|
||||||
|
match=0;
|
||||||
|
if (find != NULL) {
|
||||||
|
p=strstr(msg, find);
|
||||||
|
if (p!=NULL) { /* copy message to result */
|
||||||
|
if (p==msg) {
|
||||||
|
str_copy(result, msg+strlen(find));
|
||||||
|
p=strchr(result,'\r');
|
||||||
|
if (p != NULL) *p='\0';
|
||||||
|
} else {
|
||||||
|
str_copy(result, "1");
|
||||||
|
}
|
||||||
|
match=1;
|
||||||
|
if (find==strstr(find,"status")) {
|
||||||
|
if (result[0]=='E') {
|
||||||
|
tmo=100;
|
||||||
|
} else if (laststat!=result[0]) {
|
||||||
|
laststat=result[0];
|
||||||
go=1;
|
go=1;
|
||||||
msg[i]='<'; msg[i+1]='>';
|
|
||||||
} else {
|
|
||||||
go=0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (skip<2 || skip==2 && ires==0) {
|
}
|
||||||
fputs(msg, stdout);
|
}
|
||||||
} else {
|
if (skip || match) { /* skip text */
|
||||||
n+=strlen(msg);
|
n+=strlen(msg);
|
||||||
|
} else {
|
||||||
|
term_clear();
|
||||||
|
fputs(msg, stdout);
|
||||||
|
if (chr=='\n') fputs("\n", stdout);
|
||||||
}
|
}
|
||||||
if (go) break;
|
if (go) break;
|
||||||
iret=term_wait_fd(fd, skip?10000:1000);
|
iret=term_wait_fd(fd, tmo);
|
||||||
}
|
}
|
||||||
if (n==0 && ires==1) return 1;
|
if (iret==0) laststat=0;
|
||||||
return ires*n;
|
return result;
|
||||||
|
OnError: return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
int sendCmd(int fd, char *cmd) {
|
||||||
|
int l;
|
||||||
|
char buf[256];
|
||||||
|
ERR_I(str_copy(buf, cmd));
|
||||||
|
ERR_I(str_append(buf, "\r\n"));
|
||||||
|
ERR_SI(l=send(fd, buf, strlen(buf), 0));
|
||||||
|
return l;
|
||||||
OnError: return -1;
|
OnError: return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -105,18 +156,20 @@ int main (int argc, char *argv[]) {
|
|||||||
fd_set mask;
|
fd_set mask;
|
||||||
int fd, l, i, j, port, skip;
|
int fd, l, i, j, port, skip;
|
||||||
char buf[128], lbuf[16], ibuf[64], ilow[64];
|
char buf[128], lbuf[16], ibuf[64], ilow[64];
|
||||||
char *rights, *instr, *sim="", *us, *ps;
|
char stdPrompt[128], prompt[256], instr[32];
|
||||||
|
char *rights, *sim="", *us, *ps;
|
||||||
|
char *p, *statusMatch;
|
||||||
|
|
||||||
struct sockaddr_in sadr;
|
struct sockaddr_in sadr;
|
||||||
|
|
||||||
port=1301;
|
port=1301;
|
||||||
skip=2;
|
skip=1;
|
||||||
j=0;
|
j=0;
|
||||||
for (i=1; i<argc; i++) {
|
for (i=1; i<argc; i++) {
|
||||||
if (0==strcmp(argv[i], "-s")) {
|
if (0==strcmp(argv[i], "-s")) {
|
||||||
port=1303; sim="-sim";
|
port=1303; sim="-sim";
|
||||||
} else if (0==strcmp(argv[i], "-w")) {
|
} else if (0==strcmp(argv[i], "-w")) {
|
||||||
skip=1;
|
skip=0;
|
||||||
} else {
|
} else {
|
||||||
if (strlen(argv[i])>=32) {
|
if (strlen(argv[i])>=32) {
|
||||||
printf("argument too long\n");
|
printf("argument too long\n");
|
||||||
@ -139,23 +192,32 @@ int main (int argc, char *argv[]) {
|
|||||||
printf("missing password\n");
|
printf("missing password\n");
|
||||||
Usage(); return 0;
|
Usage(); return 0;
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
instr=getenv("Instrument");
|
instr=getenv("Instrument");
|
||||||
if (instr==NULL || instr[0]=='\0') {
|
if (instr==NULL || instr[0]=='\0') {
|
||||||
printf("Instrument is undefined\n");
|
printf("Instrument is undefined\n");
|
||||||
Usage(); return 0;
|
Usage(); return 0;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
ERR_I(CocCreateSockAdr(&sadr, "0", port));
|
ERR_I(CocCreateSockAdr(&sadr, "0", port));
|
||||||
ERR_SI(fd=socket(AF_INET, SOCK_STREAM, 0));
|
ERR_SI(fd=socket(AF_INET, SOCK_STREAM, 0));
|
||||||
term_reg_socket(fd);
|
term_reg_socket(fd);
|
||||||
ERR_SI(connect(fd, (struct sockaddr *)&sadr, sizeof(sadr)));
|
ERR_SI(connect(fd, (struct sockaddr *)&sadr, sizeof(sadr)));
|
||||||
strcpy(buf, "sicslogin Spy 007\r\n");
|
ERR_I(sendCmd(fd, "sicslogin Spy 007"));
|
||||||
ERR_SI(send(fd, buf, strlen(buf), 0));
|
ERR_P(p=readWrite(fd,10000,skip,"SICS"));
|
||||||
ERR_I(i=readWrite(fd,skip));
|
if (*p=='\0') {
|
||||||
if (!i) {
|
|
||||||
printf("rejected\n");
|
printf("rejected\n");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if (skip==2) printf("reading welcome message ...\n");
|
if (skip) printf("reading welcome message ...\n");
|
||||||
|
|
||||||
|
ERR_I(sendCmd(fd, "Instrument"));
|
||||||
|
ERR_P(p=readWrite(fd,10000,0,"Instrument = "));
|
||||||
|
str_copy(instr, p);
|
||||||
|
if (*instr=='\0') {
|
||||||
|
printf("can not detect instrument\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
if (j==0) {
|
if (j==0) {
|
||||||
rights=getenv("six_rights");
|
rights=getenv("six_rights");
|
||||||
if (rights!=NULL && 0==strcmp(rights, instr)) {
|
if (rights!=NULL && 0==strcmp(rights, instr)) {
|
||||||
@ -168,62 +230,64 @@ int main (int argc, char *argv[]) {
|
|||||||
ps="03lns1";
|
ps="03lns1";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
sprintf(buf, "config Rights %s %s\r\n", us, ps);
|
if (NULL == strstr(instr, "TASP")) {
|
||||||
ERR_SI(send(fd, buf, strlen(buf), 0));
|
sprintf(buf, "config Rights %s %s", us, ps);
|
||||||
ERR_I(i=readWrite(fd,3));
|
ERR_I(sendCmd(fd, buf));
|
||||||
if (!i && 0 != strcmp(instr, "TASP")) {
|
ERR_P(p=readWrite(fd,10000,0,"Acknowledged"));
|
||||||
|
if (*p=='\0') {
|
||||||
printf("password guess failed, logged in as Spy\n\n");
|
printf("password guess failed, logged in as Spy\n\n");
|
||||||
Usage();
|
Usage();
|
||||||
us="Spy";
|
us="Spy";
|
||||||
}
|
}
|
||||||
printf("\rlogged in to SICS as %s on %s%s\n", us, instr, sim);
|
} else {
|
||||||
/*
|
us="Spy";
|
||||||
if (*sim!='\0') {
|
|
||||||
strcpy(buf, "sync\r\n");
|
|
||||||
ERR_SI(send(fd, buf, strlen(buf), 0));
|
|
||||||
printf("\rsynchronize ...\n");
|
|
||||||
ERR_I(i=readWrite(fd,1));
|
|
||||||
}
|
}
|
||||||
*/
|
printf("\rlogged in to SICS as %s on %s\n", us, instr);
|
||||||
|
|
||||||
|
str_lowcase(ilow,instr);
|
||||||
|
sprintf(stdPrompt, "six[%s] ", ilow);
|
||||||
|
|
||||||
|
ERR_I(sendCmd(fd, "status interest"));
|
||||||
|
ERR_P(readWrite(fd,10000,0,"OK"));
|
||||||
|
ERR_I(sendCmd(fd, "status"));
|
||||||
|
ERR_P(p=readWrite(fd,10000,0,"status = "));
|
||||||
|
|
||||||
iret=1;
|
iret=1;
|
||||||
buf[0]='\0';
|
buf[0]='\0';
|
||||||
pos=0;
|
pos=0;
|
||||||
str_lowcase(ilow,instr);
|
|
||||||
sprintf(ibuf, "six[%s%s] ", ilow, sim);
|
|
||||||
while (1) {
|
while (1) {
|
||||||
|
if (*p=='E') { /* Eager to ... */
|
||||||
|
strcpy(prompt, stdPrompt);
|
||||||
|
} else if (*p>'1') {
|
||||||
|
sprintf(prompt, "%s(%s) ", stdPrompt, p);
|
||||||
|
}
|
||||||
FD_ZERO(&mask);
|
FD_ZERO(&mask);
|
||||||
FD_SET(fd, &mask);
|
FD_SET(fd, &mask);
|
||||||
iret=term_get_line(buf, sizeof(buf)-2, &pos, ibuf, &mask);
|
iret=term_get_line(buf, sizeof(buf)-2, &pos, prompt, &mask);
|
||||||
if (iret==STDIN_FILENO) { /* input line terminated */
|
if (iret==STDIN_FILENO) { /* input line terminated */
|
||||||
str_lowcase(lbuf, buf);
|
str_lowcase(lbuf, buf);
|
||||||
if (0==strcmp(lbuf,"quit")) break;
|
if (0==strcmp(lbuf,"quit")) break;
|
||||||
if (0==strcmp(lbuf,"exit")) break;
|
if (0==strcmp(lbuf,"exit")) break;
|
||||||
|
statusMatch="status = ";
|
||||||
if (0==strcmp(lbuf,"stop")) {
|
if (0==strcmp(lbuf,"stop")) {
|
||||||
strcpy(buf, "INT1712 3");
|
strcpy(buf, "INT1712 3");
|
||||||
} else if (0==strcmp(buf, "")) {
|
} else if (0==strcmp(buf, "")) {
|
||||||
strcpy(buf, "status");
|
strcpy(buf, "status");
|
||||||
|
statusMatch=NULL;
|
||||||
}
|
}
|
||||||
fputs("\n", stdout);
|
fputs("\n", stdout);
|
||||||
skip=0;
|
skip=0;
|
||||||
if (0==strcmp(lbuf,"sync")) {
|
|
||||||
printf("\rsynchronize ...\n");
|
ERR_I(sendCmd(fd, buf));
|
||||||
skip=1;
|
ERR_P(p=readWrite(fd,1000,skip,statusMatch));
|
||||||
}
|
|
||||||
l=strlen(buf);
|
|
||||||
/*
|
|
||||||
printf("sent> %s[%d chars]\n", buf, l);
|
|
||||||
*/
|
|
||||||
buf[l]=13;
|
|
||||||
buf[l+1]=10;
|
|
||||||
ERR_SI(send(fd, buf, l+2, 0));
|
|
||||||
ERR_I(i=readWrite(fd,skip));
|
|
||||||
buf[0]='\0';
|
buf[0]='\0';
|
||||||
pos=0;
|
pos=0;
|
||||||
} else if (iret<0) { /* ?? */
|
} else if (iret<0) { /* ?? */
|
||||||
printf("\nwhat?\n"); exit(1);
|
printf("\nwhat?\n"); exit(1);
|
||||||
} else { /* socket iret ready to read */
|
} else { /* socket iret ready to read */
|
||||||
assert(fd==iret);
|
assert(fd==iret);
|
||||||
ERR_I(readWrite(fd,0));
|
ERR_P(p=readWrite(fd,1000,0,"status = "));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
fputs("\n", stdout);
|
fputs("\n", stdout);
|
||||||
|
34
tecs/tecs.c
34
tecs/tecs.c
@ -60,6 +60,7 @@ static SensorT
|
|||||||
*heliumSens=NULL,
|
*heliumSens=NULL,
|
||||||
*auxSens=NULL,
|
*auxSens=NULL,
|
||||||
*testSens=NULL,
|
*testSens=NULL,
|
||||||
|
*test2Sens=NULL,
|
||||||
*sens=&sensA;
|
*sens=&sensA;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
@ -107,6 +108,7 @@ static float
|
|||||||
tx=DATA_UNDEF, /* controlled temperature */
|
tx=DATA_UNDEF, /* controlled temperature */
|
||||||
tr=DATA_UNDEF, /* set temperature (read back) */
|
tr=DATA_UNDEF, /* set temperature (read back) */
|
||||||
te=DATA_UNDEF, /* test temperature */
|
te=DATA_UNDEF, /* test temperature */
|
||||||
|
tk=DATA_UNDEF, /* test temperature 2 */
|
||||||
he=DATA_UNDEF, /* helium level value */
|
he=DATA_UNDEF, /* helium level value */
|
||||||
aux=DATA_UNDEF, /* auxiliary value */
|
aux=DATA_UNDEF, /* auxiliary value */
|
||||||
ramp=0,
|
ramp=0,
|
||||||
@ -582,7 +584,7 @@ int PrepInput(char *label) {
|
|||||||
s=sensors[i];
|
s=sensors[i];
|
||||||
typ=chans[i];
|
typ=chans[i];
|
||||||
if (typ=='_') typ='\0';
|
if (typ=='_') typ='\0';
|
||||||
if (NULL==strchr("mnslhxft", typ)) ERR_MSG("unknown channel type code");
|
if (NULL==strchr("mnslhxftk", typ)) ERR_MSG("unknown channel type code");
|
||||||
if (typ!='\0') {
|
if (typ!='\0') {
|
||||||
s->present=-1;
|
s->present=-1;
|
||||||
}
|
}
|
||||||
@ -711,6 +713,10 @@ void LogMinMax(int new) {
|
|||||||
sprintf(buf1, " Te %.5g", te);
|
sprintf(buf1, " Te %.5g", te);
|
||||||
str_append(buf, buf1);
|
str_append(buf, buf1);
|
||||||
}
|
}
|
||||||
|
if (tk!=DATA_UNDEF) {
|
||||||
|
sprintf(buf1, " Tk %.5g", tk);
|
||||||
|
str_append(buf, buf1);
|
||||||
|
}
|
||||||
} else if (nScan==0) {
|
} else if (nScan==0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -954,6 +960,11 @@ int ReadTemp(void) {
|
|||||||
} else {
|
} else {
|
||||||
te=DATA_UNDEF;
|
te=DATA_UNDEF;
|
||||||
}
|
}
|
||||||
|
if (test2Sens != NULL) {
|
||||||
|
tk=test2Sens->t * test2Sens->scale;
|
||||||
|
} else {
|
||||||
|
tk=DATA_UNDEF;
|
||||||
|
}
|
||||||
if (heliumSens == NULL) {
|
if (heliumSens == NULL) {
|
||||||
he=DATA_UNDEF;
|
he=DATA_UNDEF;
|
||||||
}
|
}
|
||||||
@ -1305,6 +1316,7 @@ int Settings(void) {
|
|||||||
heliumSens=NULL;
|
heliumSens=NULL;
|
||||||
auxSens=NULL;
|
auxSens=NULL;
|
||||||
testSens=NULL;
|
testSens=NULL;
|
||||||
|
test2Sens=NULL;
|
||||||
for (i=0; i<4+nScan; i++) {
|
for (i=0; i<4+nScan; i++) {
|
||||||
s=sensors[i];
|
s=sensors[i];
|
||||||
if (s->present==1) {
|
if (s->present==1) {
|
||||||
@ -1327,6 +1339,8 @@ int Settings(void) {
|
|||||||
auxSens=s;
|
auxSens=s;
|
||||||
} else if ('t'==typ) {
|
} else if ('t'==typ) {
|
||||||
testSens=s;
|
testSens=s;
|
||||||
|
} else if ('k'==typ) {
|
||||||
|
test2Sens=s;
|
||||||
}
|
}
|
||||||
s->band=10;
|
s->band=10;
|
||||||
}
|
}
|
||||||
@ -1389,6 +1403,11 @@ int Settings(void) {
|
|||||||
flds[k]=testSens->ch;
|
flds[k]=testSens->ch;
|
||||||
k++;
|
k++;
|
||||||
}
|
}
|
||||||
|
fmt[k]=DisplayFmt(test2Sens);
|
||||||
|
if (fmt[k]!='\0' && k<=4) {
|
||||||
|
flds[k]=test2Sens->ch;
|
||||||
|
k++;
|
||||||
|
}
|
||||||
fmt[k]=DisplayFmt(auxSens);
|
fmt[k]=DisplayFmt(auxSens);
|
||||||
if (fmt[k]!='\0' && k<=4) {
|
if (fmt[k]!='\0' && k<=4) {
|
||||||
flds[k]=auxSens->ch;
|
flds[k]=auxSens->ch;
|
||||||
@ -1493,7 +1512,7 @@ int ConfigByName(int plugNr) {
|
|||||||
int PeriodicTask(void) {
|
int PeriodicTask(void) {
|
||||||
char buf[256], lbuf[16];
|
char buf[256], lbuf[16];
|
||||||
char *next, *alms;
|
char *next, *alms;
|
||||||
int i, k;
|
int i, k, iret;
|
||||||
float t3[3], p, d, w, t;
|
float t3[3], p, d, w, t;
|
||||||
|
|
||||||
if (nScan==0) {
|
if (nScan==0) {
|
||||||
@ -1508,8 +1527,10 @@ int PeriodicTask(void) {
|
|||||||
}
|
}
|
||||||
if (noResp) { /* there was no response on an earlier command, or we are initializing */
|
if (noResp) { /* there was no response on an earlier command, or we are initializing */
|
||||||
k=serialNo; /* check serial number */
|
k=serialNo; /* check serial number */
|
||||||
ERR_P(LscCmd(ser, "*IDN?>buf1,buf2,serialNo,"));
|
ERR_P(LscCmd(ser, "*IDN?>buf1,buf2,buf3,"));
|
||||||
if (0!=strcmp(buf1, "LSCI") || 0!=strcmp(buf2, "MODEL340") || serialNo==0) return 0;
|
serialNo=1;
|
||||||
|
sscanf(buf3, "%d", &serialNo); /* illegal serial No. will be 1 for buggy controller */
|
||||||
|
if (0!=strcmp(buf1, "LSCI") || 0!=strcmp(buf2, "MODEL340")) return 0;
|
||||||
if (k!=serialNo) { /* controller exchanged or we are initializing */
|
if (k!=serialNo) { /* controller exchanged or we are initializing */
|
||||||
if (k!=0) {
|
if (k!=0) {
|
||||||
logfileOut(LOG_MAIN, "controller connected\n");
|
logfileOut(LOG_MAIN, "controller connected\n");
|
||||||
@ -2159,6 +2180,9 @@ int StatusHdl(int mode, void *base, int fd) {
|
|||||||
if (testSens!=NULL) {
|
if (testSens!=NULL) {
|
||||||
ERR_I(ShowSensor(&buf, testSens, "T", "K", 0));
|
ERR_I(ShowSensor(&buf, testSens, "T", "K", 0));
|
||||||
}
|
}
|
||||||
|
if (test2Sens!=NULL) {
|
||||||
|
ERR_I(ShowSensor(&buf, test2Sens, "T", "K", 0));
|
||||||
|
}
|
||||||
for (i=4; i<4+nScan; i++) {
|
for (i=4; i<4+nScan; i++) {
|
||||||
ERR_I(ShowSensor(&buf, sensors[i], "T", "K", 0));
|
ERR_I(ShowSensor(&buf, sensors[i], "T", "K", 0));
|
||||||
}
|
}
|
||||||
@ -2401,6 +2425,7 @@ int main(int argc, char *argv[]) {
|
|||||||
CocDefFlt(tr, RD);
|
CocDefFlt(tr, RD);
|
||||||
CocDefFlt(tx, RD);
|
CocDefFlt(tx, RD);
|
||||||
CocDefFlt(te, RD);
|
CocDefFlt(te, RD);
|
||||||
|
CocDefFlt(tk, RD);
|
||||||
CocDefFlt(aux, RD);
|
CocDefFlt(aux, RD);
|
||||||
CocDefFlt(he, RD);
|
CocDefFlt(he, RD);
|
||||||
CocDefFlt(fbuf, RD);
|
CocDefFlt(fbuf, RD);
|
||||||
@ -2568,6 +2593,7 @@ int main(int argc, char *argv[]) {
|
|||||||
ERR_P(DataCreateSet(NULL, "Ts", &ts, 5, LOGLIFETIME, tim));
|
ERR_P(DataCreateSet(NULL, "Ts", &ts, 5, LOGLIFETIME, tim));
|
||||||
ERR_P(DataCreateSet(NULL, "Tr", &tr, 5, LOGLIFETIME, tim));
|
ERR_P(DataCreateSet(NULL, "Tr", &tr, 5, LOGLIFETIME, tim));
|
||||||
ERR_P(DataCreateSet(NULL, "Te", &te, 5, LOGLIFETIME, tim));
|
ERR_P(DataCreateSet(NULL, "Te", &te, 5, LOGLIFETIME, tim));
|
||||||
|
ERR_P(DataCreateSet(NULL, "Tk", &tk, 5, LOGLIFETIME, tim));
|
||||||
ERR_P(DataCreateSet(NULL, "He", &he, 5, LOGLIFETIME, tim));
|
ERR_P(DataCreateSet(NULL, "He", &he, 5, LOGLIFETIME, tim));
|
||||||
ERR_P(DataCreateSet(NULL, "T1", &sensA1.t, 5, LOGLIFETIME, tim));
|
ERR_P(DataCreateSet(NULL, "T1", &sensA1.t, 5, LOGLIFETIME, tim));
|
||||||
ERR_P(DataCreateSet(NULL, "T2", &sensA2.t, 5, LOGLIFETIME, tim));
|
ERR_P(DataCreateSet(NULL, "T2", &sensA2.t, 5, LOGLIFETIME, tim));
|
||||||
|
@ -16,6 +16,29 @@ static char response[COC_RES_LEN];
|
|||||||
static char *rwCode="rwacs";
|
static char *rwCode="rwacs";
|
||||||
static char *rdCode="rdacs";
|
static char *rdCode="rdacs";
|
||||||
|
|
||||||
|
pTecsClient TeccStart(char *startcmd, char *host, int port) {
|
||||||
|
CocConn *conn;
|
||||||
|
char *code, *cmd, thishost[64], *th;
|
||||||
|
int iret;
|
||||||
|
|
||||||
|
NEW(conn, CocConn);
|
||||||
|
code=rwCode;
|
||||||
|
cmd=startcmd;
|
||||||
|
if (host[0]!='\0') {
|
||||||
|
gethostname(thishost, sizeof(thishost));
|
||||||
|
th=getenv(thishost);
|
||||||
|
if (th==NULL) th=thishost;
|
||||||
|
if (0!=strcmp(th, host)) {
|
||||||
|
code=rdCode;
|
||||||
|
cmd="";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ERR_I(iret=CocInitClient(conn, host, port, code, 0, cmd));
|
||||||
|
if (iret==1) ErrShort("TECS_INIT: can not connect to TecsServer");
|
||||||
|
return((pTecsClient)conn);
|
||||||
|
OnError: return(NULL);
|
||||||
|
}
|
||||||
|
|
||||||
pTecsClient TeccInit(char *startcmd, int port) {
|
pTecsClient TeccInit(char *startcmd, int port) {
|
||||||
CocConn *conn=NULL;
|
CocConn *conn=NULL;
|
||||||
char *code, host[64];
|
char *code, host[64];
|
||||||
@ -37,27 +60,6 @@ pTecsClient TeccInit(char *startcmd, int port) {
|
|||||||
return(NULL);
|
return(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
pTecsClient TeccStart(char *startcmd, char *host, int port) {
|
|
||||||
CocConn *conn;
|
|
||||||
char *code, *cmd, thishost[64];
|
|
||||||
int iret;
|
|
||||||
|
|
||||||
NEW(conn, CocConn);
|
|
||||||
code=rwCode;
|
|
||||||
cmd=startcmd;
|
|
||||||
if (host[0]!='\0') {
|
|
||||||
gethostname(thishost, sizeof(thishost));
|
|
||||||
if (0!=strcmp(thishost, host)) {
|
|
||||||
code=rdCode;
|
|
||||||
cmd="";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ERR_I(iret=CocInitClient(conn, host, port, code, 0, cmd));
|
|
||||||
if (iret==1) ErrShort("TECS_INIT: can not connect to TecsServer");
|
|
||||||
return((pTecsClient)conn);
|
|
||||||
OnError: return(NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
int TeccGet3(pTecsClient conn, float *tC, float *tX, float *tP) {
|
int TeccGet3(pTecsClient conn, float *tC, float *tX, float *tP) {
|
||||||
int iret;
|
int iret;
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
character*(*) auxpar
|
character*(*) auxpar
|
||||||
|
|
||||||
integer dmax, nmax, tmax, amax, nmenu, chartperiod, naux
|
integer dmax, nmax, tmax, amax, nmenu, chartperiod, naux
|
||||||
parameter (dmax=400, nmax=9, tmax=8, amax=3, nmenu=13
|
parameter (dmax=400, nmax=10, tmax=9, amax=3, nmenu=13
|
||||||
1 , chartperiod=5, naux=1)
|
1 , chartperiod=5, naux=1)
|
||||||
integer minRange, maxRange, oneDay
|
integer minRange, maxRange, oneDay
|
||||||
parameter (minRange=60, maxRange=7*24*3600, oneDay=24*3600)
|
parameter (minRange=60, maxRange=7*24*3600, oneDay=24*3600)
|
||||||
@ -20,7 +20,7 @@
|
|||||||
integer l,j,i,n,t,leng,i1,i2,rl,startday,thisday
|
integer l,j,i,n,t,leng,i1,i2,rl,startday,thisday
|
||||||
integer ncol, nset, mode
|
integer ncol, nset, mode
|
||||||
integer first,last,step,tbase,lastj
|
integer first,last,step,tbase,lastj
|
||||||
integer colorList(nmax)/5,3,2,4,6,8,14,15,8/
|
integer colorList(nmax)/5,3,2,4,6,8,14,15,9,8/
|
||||||
integer color(nmax)
|
integer color(nmax)
|
||||||
integer retLen(nmax)
|
integer retLen(nmax)
|
||||||
integer sel/0/, sel1, sel2, auxsel/1/
|
integer sel/0/, sel1, sel2, auxsel/1/
|
||||||
@ -43,7 +43,7 @@
|
|||||||
1 'Mon','Tue','Wed','Thu','Fri','Sat','Sun'/
|
1 'Mon','Tue','Wed','Thu','Fri','Sat','Sun'/
|
||||||
character buf*8, device*8, name*40, filnam*128, numb*16
|
character buf*8, device*8, name*40, filnam*128, numb*16
|
||||||
character title*64, pars*64
|
character title*64, pars*64
|
||||||
character*4 tpar(tmax)/'Te','Tr','Tm','Ts','T1','T2','T3','T4'/
|
character*4 tpar(tmax)/'Te','Tr','Tm','Ts','Tk','T1','T2','T3','T4'/
|
||||||
character*4 apar(amax)/'P', 'He', 'Aux'/
|
character*4 apar(amax)/'P', 'He', 'Aux'/
|
||||||
character*16 parnam(nmax)
|
character*16 parnam(nmax)
|
||||||
logical gap, done
|
logical gap, done
|
||||||
@ -75,7 +75,7 @@
|
|||||||
print *,'No PGPLOT-Device defined'
|
print *,'No PGPLOT-Device defined'
|
||||||
goto 9
|
goto 9
|
||||||
endif
|
endif
|
||||||
call sys_setenv('PGPLOT_DEV', device)
|
call sys_setenv('PGPLOT_DEV', '/'//device)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
call pgqcol(i,ncol)
|
call pgqcol(i,ncol)
|
||||||
@ -728,7 +728,7 @@
|
|||||||
real*4 xd(dmax,nmax), yd(dmax,nmax)
|
real*4 xd(dmax,nmax), yd(dmax,nmax)
|
||||||
|
|
||||||
integer oneDay, maxn
|
integer oneDay, maxn
|
||||||
parameter (oneDay = 24*3600, maxn=9)
|
parameter (oneDay = 24*3600, maxn=10)
|
||||||
integer tecs_get_data
|
integer tecs_get_data
|
||||||
|
|
||||||
integer i,j,rl(maxn),m,k,n,mm
|
integer i,j,rl(maxn),m,k,n,mm
|
||||||
|
20
tecs/term.c
20
tecs/term.c
@ -104,7 +104,13 @@ int term_get_key(char *key, int msecTmo) {
|
|||||||
} else if (k >= 'l' && k <= 'y') {
|
} else if (k >= 'l' && k <= 'y') {
|
||||||
k=k-64;
|
k=k-64;
|
||||||
} else {
|
} else {
|
||||||
k='?';
|
switch (k) { /* L,R,U,D arrows */
|
||||||
|
case 'D': k=L_ARROW; break;
|
||||||
|
case 'C': k=R_ARROW; break;
|
||||||
|
case 'A': k=U_ARROW; break;
|
||||||
|
case 'B': k=D_ARROW; break;
|
||||||
|
default: k='?';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case '\177': /* del */
|
case '\177': /* del */
|
||||||
@ -132,6 +138,14 @@ static char *history[HISTORY_LINES]={NULL};
|
|||||||
|
|
||||||
static int hist_pos=0; /* position when scrolling through the history */
|
static int hist_pos=0; /* position when scrolling through the history */
|
||||||
static int hist_end=0; /* end of history. Always history[hist_end]==NULL */
|
static int hist_end=0; /* end of history. Always history[hist_end]==NULL */
|
||||||
|
static int dirty=0; /* line is to be cleared through a call of term_clear_line */
|
||||||
|
|
||||||
|
void term_clear(void) {
|
||||||
|
if (dirty) {
|
||||||
|
fputs("\r\033[K", stdout);
|
||||||
|
dirty=0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int term_get_line(char *buf, int size, int *pos, char *prompt, fd_set *mask) {
|
int term_get_line(char *buf, int size, int *pos, char *prompt, fd_set *mask) {
|
||||||
char key, *lin;
|
char key, *lin;
|
||||||
@ -166,13 +180,13 @@ int term_get_line(char *buf, int size, int *pos, char *prompt, fd_set *mask) {
|
|||||||
}
|
}
|
||||||
switch (key) {
|
switch (key) {
|
||||||
case EVT_CHAR:
|
case EVT_CHAR:
|
||||||
fputs("\r\033[K", stdout);
|
/* caller must clear line before next write with term_clear() */
|
||||||
|
dirty=1;
|
||||||
return(iret);
|
return(iret);
|
||||||
|
|
||||||
/* interrupted EXIT */
|
/* interrupted EXIT */
|
||||||
|
|
||||||
case RET_CHAR:
|
case RET_CHAR:
|
||||||
/* fputs("\r\033[K", stdout); */
|
|
||||||
i=hist_end-1; if (i<0) i=HISTORY_LINES-1;
|
i=hist_end-1; if (i<0) i=HISTORY_LINES-1;
|
||||||
if ((history[i]==NULL || 0!=strcmp(history[i], buf)) && buf[0]!='\0') { /* do not save equal and empty lines */
|
if ((history[i]==NULL || 0!=strcmp(history[i], buf)) && buf[0]!='\0') { /* do not save equal and empty lines */
|
||||||
buflen=strlen(buf)+1;
|
buflen=strlen(buf)+1;
|
||||||
|
@ -14,6 +14,8 @@ int term_wait_fd(int fd, int msecTmo);
|
|||||||
|
|
||||||
int term_get_key(char *key, int msecTmo);
|
int term_get_key(char *key, int msecTmo);
|
||||||
|
|
||||||
|
void term_clear(void);
|
||||||
|
|
||||||
int term_get_line(char *buf, int size, int *pos, char *prompt, fd_set *mask);
|
int term_get_line(char *buf, int size, int *pos, char *prompt, fd_set *mask);
|
||||||
|
|
||||||
#endif /* TERM_H_ */
|
#endif /* TERM_H_ */
|
||||||
|
Reference in New Issue
Block a user