Exemplo n.º 1
0
  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;
    }
  }
Exemplo n.º 3
0
 protected void releaseTangoUnit(String device) throws DevFailed {
   DeviceData argin = new DeviceData();
   argin.insert(device);
   proxy.command_inout("ReleaseDevice", argin);
 }