Exemplo n.º 1
0
LoadedDeviceAdapter::LoadedDeviceAdapter(const std::string& name, const std::string& filename) :
   name_(name),
   InitializeModuleData_(0),
   CreateDevice_(0),
   DeleteDevice_(0),
   GetModuleVersion_(0),
   GetDeviceInterfaceVersion_(0),
   GetNumberOfDevices_(0),
   GetDeviceName_(0),
   GetDeviceType_(0),
   GetDeviceDescription_(0)
{
   try
   {
      module_ = boost::make_shared<LoadedModule>(filename);
   }
   catch (const CMMError& e)
   {
      module_.reset();
      throw CMMError("Failed to load device adapter " + ToQuotedString(name_), e);
   }

   try
   {
      CheckInterfaceVersion();
   }
   catch (const CMMError& e)
   {
      module_.reset();
      throw CMMError("Failed to load device adapter " + ToQuotedString(name_) +
            " from " + ToQuotedString(filename), e);
   }

   InitializeModuleData();
}
Exemplo n.º 2
0
int Hub::DetectInstalledDevices()
{
    ClearInstalledDevices();

    InitializeModuleData();

    char hubname[MM::MaxStrLength];
    GetName(hubname);
    for(unsigned i = 0; i < GetNumberOfDevices(); i++)
    {
        char devname[MM::MaxStrLength];
        if(GetDeviceName(i, devname, MM::MaxStrLength) &&
                strcmp(hubname, devname) != 0)
        {
            MM::Device* dev = CreateDevice(devname);
            AddInstalledDevice(dev);
        }
    }

    return DEVICE_OK;
}