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 48