1 'use strict'; 2 3 // Get Drive control armed 4 function handleDriveArmed(wait_state) 5 { 6 var state = dim.state("DRIVE_CONTROL"); 7 if (state===undefined) 8 return undefined; 9 10 if (wait_state && wait_state.length>0 && state.name!=wait_state) 11 return wait_state; 12 13 //dim.log("DRIVE_CONTROL: "+state.name+"["+state.index+"]"); 14 15 switch (state.name) 16 { 17 case "Disconnected": 18 console.out("Drivectrl in 'Disconnected'... sending RECONNECT... waiting for 'Initialized'."); 19 dim.send("DRIVE_CONTROL/RECONNECT"); 20 return "Initialized"; 21 22 case "Connected": 23 case "Parking": 24 case "Stopping": 25 case "Armed": 26 case "Blocked": 27 v8.sleep(1000); 28 return undefined; 29 30 case "Locked": 31 console.out("WARNING - Drive is LOCKED. Please unlock manually."); 32 // Do NOT unlock the drive here... it is a safety feature which should 33 // never be used in an auotmatic process otherwise it is not realiable! 34 return ""; 35 36 case "Moving": 37 case "Tracking": 38 case "OnTrack": 39 console.out("Drive in '"+state.name+"'... sending STOP... waiting for 'Initialized'."); 40 dim.send("DRIVE_CONTROL/STOP"); 41 return "Initialized"; 42 43 case "ERROR": 44 console.out("Drive in '"+state.name+"'... sending STOP... waiting for 'Initialized'"); 45 dim.send("DRIVE_CONTROL/STOP"); 46 return "Initialized"; // Process that again if necessary 47 48 case "Initialized": 49 return ""; 50 } 51 52 throw new Error("DRIVE_CONTROL:"+state.name+"["+state.index+"] unknown or not handled."); 53 } 54