1 'use strict'; 2 3 // Get ftm connected, idle and with working FTUs 4 function handleFtmIdle(wait_state) 5 { 6 var state = dim.state("FTM_CONTROL"); 7 if (state===undefined) 8 return undefined; 9 10 // Only try to open the service if the server is already in the list 11 if (wait_state && wait_state.length>0 && state.name!=wait_state) 12 return wait_state; 13 14 //dim.log("FTM_CONTROL: "+state.name+"["+state.index+"]"); 15 16 switch (state.name) 17 { 18 case "Disconnected": 19 console.out("Ftmctrl in 'Disconnected'... sending RECONNECT... waiting for 'Valid'."); 20 dim.send("FTM_CONTROL/RECONNECT"); 21 return "Valid"; 22 23 case "Idle": 24 console.out("Ftmctrl in 'Idle'... sending DISCONNECT... waiting for 'Disconnected'."); 25 dim.send("FTM_CONTROL/DISCONNECT"); 26 v8.sleep(3000); 27 return "Disconnected"; 28 29 case "Valid": 30 return ""; 31 32 case "TriggerOn": 33 console.out("Ftmctrl in 'TriggerOn'... sending STOP_TRIGGER... waiting for 'Valid'."); 34 dim.send("FTM_CONTROL/STOP_TRIGGER"); 35 return "Valid"; 36 37 case "Configuring1": 38 case "Configuring2": 39 case "Configured1": 40 console.out("Ftmctrl in '"+state.name+"'... sending RESET_CONFIGURE... waiting for 'Valid'."); 41 dim.send("FTM_CONTROL/RESET_CONFIGURE"); 42 return "Valid"; 43 44 case "Configured2": 45 return "TriggerOn"; 46 47 case "ConfigError1": 48 case "ConfigError2": 49 case "ConfigError3": 50 throw new Error("FTM_CONTROL:"+state.name+"["+state.index+"] in error state."); 51 } 52 53 throw new Error("FTM_CONTROL:"+state.name+"["+state.index+"] unknown or not handled."); 54 } 55