Exemplo n.º 1
0
bool mitk::USDevice::Activate()
{
  if (! this->GetIsConnected()) return false;
  m_IsActive = true; // <- Necessary to safely allow Subclasses to start threading based on activity state
  m_IsActive = OnActivation();

  ServiceProperties props = ConstructServiceProperties();
  this->m_ServiceRegistration.SetProperties(props);
  return m_IsActive;
}
Exemplo n.º 2
0
bool mitk::USDevice::Activate()
{
  if (!this->GetIsConnected())
  {
    MITK_INFO("mitkUSDevice")
      << "Cannot activate device if it is not in connected state.";
    return true;
  }

  if (OnActivation())
  {
    m_DeviceState = State_Activated;

    m_FreezeBarrier = itk::ConditionVariable::New();

    // spawn thread for aquire images if us device is active
    if (m_SpawnAcquireThread)
    {
      this->m_ThreadID =
        this->m_MultiThreader->SpawnThread(this->Acquire, this);
    }

    this->UpdateServiceProperty(
      mitk::USDevice::GetPropertyKeys().US_PROPKEY_ISACTIVE, true);
    this->UpdateServiceProperty(
      mitk::USDevice::GetPropertyKeys().US_PROPKEY_LABEL,
      this->GetServicePropertyLabel());
    // initialize the b mode control properties of the micro service
    mitk::USControlInterfaceBMode::Pointer bmodeControls =
      this->GetControlInterfaceBMode();
    if (bmodeControls.IsNotNull())
    {
      bmodeControls->Initialize();
    }
  }

  this->ProvideViaOIGTL();

  return m_DeviceState == State_Activated;
}