1 'use strict'; 2 3 // Get bias control connected and voltage off 4 function handleBiasVoltageOff(wait_state) 5 { 6 var state = dim.state("BIAS_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("BIAS_CONTROL: "+state.name+"["+state.index+"]"); 14 15 switch (state.name) 16 { 17 // Do-nothing conditions 18 case "Connecting": 19 case "Initializing": 20 case "Connected": 21 case "Ramping": 22 return wait_state; 23 24 case "Locked": 25 console.out("WARNING - Bias is LOCKED. Please report, this is serious, unlock manually and go on."); 26 return ""; 27 28 // Do-something conditions 29 case "Disconnected": 30 console.out("Bias in Disconnected... connect."); 31 dim.send("BIAS_CONTROL/RECONNECT"); 32 return "VoltageOff"; 33 34 case "NotReferenced": 35 case "VoltageOn": 36 console.out("Bias in "+state.name+"... switch voltage off."); 37 dim.send("BIAS_CONTROL/SET_ZERO_VOLTAGE"); 38 return "VoltageOff"; 39 40 // Final state reached condition 41 case "VoltageOff": 42 return ""; 43 44 // Conditions which cannot be handled 45 case "OverCurrent": throw "BIAS_CONTROL in OverCurrent"; 46 case "ExpertMode": throw "BIAS_CONTROL in expert mode"; 47 } 48 49 throw new Error("BIAS_CONTROL:"+state.name+"["+state.index+"] unknown or not handled."); 50 } 51