protected DeviceProxy createTangoUnit() throws DevFailed, TimeoutException { DeviceProxy result = null; DeviceData data = proxy.command_inout("CreateDevice"); result = new DeviceProxy(data.extractString()); WaitStateUtilities.waitForState(result, DevState.STANDBY, 20000); return result; }
private DeviceData executeCommand( final String cmdAttribute, final String originalCommand, final DeviceData cmdData) { try { final String timeout = System.getProperty("org.dawb.tango.spec.command.timeout"); tangoProxy.set_timeout_millis( timeout != null ? Integer.parseInt(timeout) : Integer.MAX_VALUE); DeviceData ret = tangoProxy.command_inout(cmdAttribute, cmdData); // For fast scans this returns before the spec events have finished being sent // over by tango. while ((System.currentTimeMillis() - lastEvent) < 1000) try { Thread.sleep(500); // Fudge } catch (InterruptedException e) { e.printStackTrace(); } TangoConnectionEvent event = new TangoConnectionEvent( TangoConnectionImpl.this, new TangoMockEvent(), "Finished '" + originalCommand + "'"); event.setFinished(true); fireTangoConnectionListeners(event); return ret; } catch (DevFailed e) { TangoConnectionEvent event = new TangoConnectionEvent( TangoConnectionImpl.this, new TangoMockEvent(), "Failed '" + originalCommand + "'"); if (e.errors != null && e.errors.length > 0) { event.setErrorMessage(e.errors[e.errors.length - 1].desc); } else { event.setErrorMessage(e.getLocalizedMessage()); } event.setFinished(true); fireTangoConnectionListeners(event); return null; } }
protected void releaseTangoUnit(String device) throws DevFailed { DeviceData argin = new DeviceData(); argin.insert(device); proxy.command_inout("ReleaseDevice", argin); }