source:
trunk/FACT++/scripts/CheckFTU.js
Last change on this file was 16794, checked in by , 11 years ago | |
---|---|
File size: 1.2 KB |
Line | |
---|---|
1 | 'use strict'; |
2 | |
3 | var service_ftm = new Subscription("FTM_CONTROL/FTU_LIST"); |
4 | |
5 | // Make sure that we receive a 'Yes, we are connected and names are available' event |
6 | service_ftm.get(5000); |
7 | |
8 | // Check for all FTUs to be connected when the next event arrives |
9 | service_ftm.onchange = function(event) |
10 | { |
11 | var ping = event.obj['Ping']; |
12 | for (var i=0; i<40; i++) |
13 | { |
14 | if (ping[i]==1) |
15 | continue; |
16 | |
17 | var str = ""; |
18 | for (var h=0; h<4; h++) |
19 | { |
20 | for (var w=0; w<10; w++) |
21 | str += ping[h*10+w]; |
22 | if (h!=3) |
23 | str += '|'; |
24 | } |
25 | |
26 | console.out(str) |
27 | |
28 | console.out("Problems in the FTU communication found."); |
29 | console.out("Send command to disable all FTUs."); |
30 | console.out(" => Crate reset needed."); |
31 | |
32 | dim.send("FTM_CONTROL/ENABLE_FTU", -1, false); |
33 | throw new Error("CrateReset[FTU]"); |
34 | } |
35 | |
36 | // Signal success by closing the connection |
37 | service_ftm.close(); |
38 | } |
39 | |
40 | // Send ping (request FTU status) |
41 | dim.send("FTM_CONTROL/PING"); |
42 | |
43 | // Wait for 1 second for the answer |
44 | var timeout = new Thread(3000, function(){ if (service_ftm.isOpen) throw new Error("Could not check that all FTUs are ok within 3s."); }); |
45 | while (service_ftm.isOpen) |
46 | v8.sleep(); |
47 |
Note:
See TracBrowser
for help on using the repository browser.