IDS peak genericC++  v1.4.0
peak_device_descriptor.hpp
Go to the documentation of this file.
1 
11 #pragma once
12 
13 
19 #include <peak/dll_interface/peak_dll_interface_util.hpp>
20 #include <peak/generic/peak_t_callback_manager.hpp>
21 
22 #include <cstddef>
23 #include <cstdint>
24 #include <memory>
25 #include <string>
26 
27 
28 namespace peak
29 {
30 namespace core
31 {
32 
38 enum class DeviceAccessType
39 {
40  ReadOnly = 2,
41  Control,
42  Exclusive,
43 
44  Custom = 1000
45 };
46 
53 {
54  ID = 0,
55  VendorName,
56  ModelName,
57  TLType,
62  Version,
64 
65  Custom = 1000
66 };
67 
68 class Interface;
69 
103 {
104 public:
106  using InformationChangedCallback = std::function<void(const std::vector<DeviceInformationRole>& changedRoles)>;
110  using DeviceOpenedCallback = std::function<void(const std::shared_ptr<core::Device>& openedDevice)>;
113 
114  DeviceDescriptor() = delete;
115  ~DeviceDescriptor() override;
116  DeviceDescriptor(const DeviceDescriptor& other) = delete;
117  DeviceDescriptor& operator=(const DeviceDescriptor& other) = delete;
118  DeviceDescriptor(DeviceDescriptor&& other) = delete;
119  DeviceDescriptor& operator=(DeviceDescriptor&& other) = delete;
120 
122  std::string Key() const;
123 
125  RawInformation Info(int32_t infoCommand) const;
136  std::string DisplayName() const;
147  std::string VendorName() const;
158  std::string ModelName() const;
169  std::string Version() const;
171  std::string TLType() const;
182  std::string UserDefinedName() const;
193  std::string SerialNumber() const;
215  uint64_t TimestampTickFrequency() const;
216 
227  std::shared_ptr<Interface> ParentInterface() const;
228 
233 
255  bool IsOpenable(DeviceAccessType accessType = DeviceAccessType::Exclusive) const;
269  std::shared_ptr<Device> OpenDevice(DeviceAccessType accessType);
279  std::shared_ptr<Device> OpenedDevice() const;
294  DeviceOpenedCallbackHandle RegisterDeviceOpenedCallback(const DeviceOpenedCallback& callback);
306  void UnregisterDeviceOpenedCallback(DeviceOpenedCallbackHandle callbackHandle);
308 
313 
323  uint64_t MonitoringUpdateInterval() const;
333  void SetMonitoringUpdateInterval(uint64_t monitoringUpdateInterval_ms);
346  bool IsInformationRoleMonitored(DeviceInformationRole informationRole) const;
356  void AddInformationRoleToMonitoring(DeviceInformationRole informationRole);
366  void RemoveInformationRoleFromMonitoring(DeviceInformationRole informationRole);
381  InformationChangedCallbackHandle RegisterInformationChangedCallback(const InformationChangedCallback& callback);
393  void UnregisterInformationChangedCallback(InformationChangedCallbackHandle callbackHandle);
395 
396 private:
397  static void PEAK_CALL_CONV InformationChangedCallbackCWrapper(
398  const PEAK_DEVICE_INFORMATION_ROLE* changedRoles, size_t changedRolesSize, void* context);
399 
400  friend ClassCreator<DeviceDescriptor>;
402  PEAK_DEVICE_DESCRIPTOR_HANDLE deviceDescriptorHandle, const std::weak_ptr<Interface>& parentInterface);
403  PEAK_MODULE_DESCRIPTOR_HANDLE ModuleDescriptorHandle() const override;
404 
405  PEAK_DEVICE_DESCRIPTOR_HANDLE m_backendHandle;
406 
407  std::weak_ptr<Interface> m_parentInterface;
408  std::weak_ptr<Device> m_openedDevice;
409 
410  std::unique_ptr<
411  TCallbackManager<PEAK_DEVICE_DESCRIPTOR_INFORMATION_CHANGED_CALLBACK_HANDLE, InformationChangedCallback>>
412  m_informationChangedCallbackManager;
413 
414  TTriggerCallbackManager<DeviceOpenedCallbackHandle, DeviceOpenedCallback> m_deviceOpenedCallbackManager;
415 
416  std::string m_key;
417 
418  friend class FirmwareUpdater;
419 };
420 
421 } /* namespace core */
422 } /* namespace peak */
423 
424 /* Implementation */
425 namespace peak
426 {
427 namespace core
428 {
429 
430 inline std::string ToString(DeviceAccessType entry)
431 {
432  std::string entryString;
433 
434  if (entry == DeviceAccessType::ReadOnly)
435  {
436  entryString = "ReadOnly";
437  }
438  else if (entry == DeviceAccessType::Control)
439  {
440  entryString = "Control";
441  }
442  else if (entry == DeviceAccessType::Exclusive)
443  {
444  entryString = "Exclusive";
445  }
446  else if (entry >= DeviceAccessType::Custom)
447  {
448  entryString = "Custom";
449  }
450 
451  return entryString;
452 }
453 
454 inline std::string ToString(DeviceInformationRole entry)
455 {
456  std::string entryString;
457 
458  if (entry == DeviceInformationRole::ID)
459  {
460  entryString = "ID";
461  }
462  else if (entry == DeviceInformationRole::VendorName)
463  {
464  entryString = "VendorName";
465  }
466  else if (entry == DeviceInformationRole::ModelName)
467  {
468  entryString = "ModelName";
469  }
470  else if (entry == DeviceInformationRole::TLType)
471  {
472  entryString = "TLType";
473  }
474  else if (entry == DeviceInformationRole::DisplayName)
475  {
476  entryString = "DisplayName";
477  }
478  else if (entry == DeviceInformationRole::AccessStatus)
479  {
480  entryString = "AccessStatus";
481  }
482  else if (entry == DeviceInformationRole::UserDefinedName)
483  {
484  entryString = "UserDefinedName";
485  }
486  else if (entry == DeviceInformationRole::SerialNumber)
487  {
488  entryString = "SerialNumber";
489  }
490  else if (entry == DeviceInformationRole::Version)
491  {
492  entryString = "Version";
493  }
495  {
496  entryString = "TimestampTickFrequency";
497  }
498  else if (entry >= DeviceInformationRole::Custom)
499  {
500  entryString = "Custom";
501  }
502 
503  return entryString;
504 }
505 
507  PEAK_DEVICE_DESCRIPTOR_HANDLE deviceDescriptorHandle, const std::weak_ptr<Interface>& parentInterface)
508  : m_backendHandle(deviceDescriptorHandle)
509  , m_parentInterface(parentInterface)
510  , m_informationChangedCallbackManager()
511  , m_key(QueryStringFromCInterfaceFunction([&](char* key, size_t* keySize) {
512  return PEAK_C_ABI_PREFIX PEAK_DeviceDescriptor_GetKey(deviceDescriptorHandle, key, keySize);
513  }))
514 {
515  m_informationChangedCallbackManager = std::make_unique<
516  TCallbackManager<PEAK_DEVICE_DESCRIPTOR_INFORMATION_CHANGED_CALLBACK_HANDLE, InformationChangedCallback>>(
517  [&](void* callbackContext) {
518  return QueryNumericFromCInterfaceFunction<PEAK_DEVICE_DESCRIPTOR_INFORMATION_CHANGED_CALLBACK_HANDLE>(
520  deviceDescriptorChangedCallbackHandle) {
522  m_backendHandle, InformationChangedCallbackCWrapper, callbackContext,
523  deviceDescriptorChangedCallbackHandle);
524  });
525  },
527  CallAndCheckCInterfaceFunction([&] {
529  m_backendHandle, callbackHandle);
530  });
531  });
532 }
533 
535 {
536  try
537  {
538  m_informationChangedCallbackManager->UnregisterAllCallbacks();
539  }
540  catch (const Exception&)
541  {}
542 }
543 
544 inline std::string DeviceDescriptor::Key() const
545 {
546  return m_key;
547 }
548 
549 inline RawInformation DeviceDescriptor::Info(int32_t infoCommand) const
550 {
551  return QueryRawInformationFromCInterfaceFunction([&](int32_t* dataType, uint8_t* buffer, size_t* bufferSize) {
553  m_backendHandle, infoCommand, dataType, buffer, bufferSize);
554  });
555 }
556 
557 inline std::string DeviceDescriptor::DisplayName() const
558 {
559  return QueryStringFromCInterfaceFunction([&](char* displayName, size_t* displayNameSize) {
561  m_backendHandle, displayName, displayNameSize);
562  });
563 }
564 
565 inline std::string DeviceDescriptor::VendorName() const
566 {
567  return QueryStringFromCInterfaceFunction([&](char* vendorName, size_t* vendorNameSize) {
568  return PEAK_C_ABI_PREFIX PEAK_DeviceDescriptor_GetVendorName(m_backendHandle, vendorName, vendorNameSize);
569  });
570 }
571 
572 inline std::string DeviceDescriptor::ModelName() const
573 {
574  return QueryStringFromCInterfaceFunction([&](char* modelName, size_t* modelNameSize) {
575  return PEAK_C_ABI_PREFIX PEAK_DeviceDescriptor_GetModelName(m_backendHandle, modelName, modelNameSize);
576  });
577 }
578 
579 inline std::string DeviceDescriptor::Version() const
580 {
581  return QueryStringFromCInterfaceFunction([&](char* version, size_t* versionSize) {
582  return PEAK_C_ABI_PREFIX PEAK_DeviceDescriptor_GetVersion(m_backendHandle, version, versionSize);
583  });
584 }
585 
586 inline std::string DeviceDescriptor::TLType() const
587 {
588  return QueryStringFromCInterfaceFunction([&](char* tlType, size_t* tlTypeSize) {
589  return PEAK_C_ABI_PREFIX PEAK_DeviceDescriptor_GetTLType(m_backendHandle, tlType, tlTypeSize);
590  });
591 }
592 
593 inline std::string DeviceDescriptor::UserDefinedName() const
594 {
595  return QueryStringFromCInterfaceFunction([&](char* userDefinedName, size_t* userDefinedNameSize) {
597  m_backendHandle, userDefinedName, userDefinedNameSize);
598  });
599 }
600 
601 inline std::string DeviceDescriptor::SerialNumber() const
602 {
603  return QueryStringFromCInterfaceFunction([&](char* serialNumber, size_t* serialNumberSize) {
605  m_backendHandle, serialNumber, serialNumberSize);
606  });
607 }
608 
610 {
611  return static_cast<DeviceAccessStatus>(QueryNumericFromCInterfaceFunction<PEAK_DEVICE_ACCESS_STATUS>(
612  [&](PEAK_DEVICE_ACCESS_STATUS* accessStatus) {
613  return PEAK_C_ABI_PREFIX PEAK_DeviceDescriptor_GetAccessStatus(m_backendHandle, accessStatus);
614  }));
615 }
616 
618 {
619  return QueryNumericFromCInterfaceFunction<uint64_t>([&](uint64_t* timestampTickFrequency) {
621  m_backendHandle, timestampTickFrequency);
622  });
623 }
624 
625 inline std::shared_ptr<Interface> DeviceDescriptor::ParentInterface() const
626 {
627  return LockOrThrow(m_parentInterface);
628 }
629 
630 inline bool DeviceDescriptor::IsOpenable(DeviceAccessType accessType) const
631 {
632  return QueryNumericFromCInterfaceFunction<PEAK_BOOL8>([&](PEAK_BOOL8* isAccessTypeAvailable) {
634  m_backendHandle, static_cast<PEAK_DEVICE_ACCESS_TYPE>(accessType), isAccessTypeAvailable);
635  }) > 0;
636 }
637 
638 inline std::shared_ptr<Device> DeviceDescriptor::OpenDevice(DeviceAccessType accessType)
639 {
640  auto deviceHandle = QueryNumericFromCInterfaceFunction<PEAK_DEVICE_HANDLE>(
641  [&](PEAK_DEVICE_HANDLE* _deviceHandle) {
643  m_backendHandle, static_cast<PEAK_DEVICE_ACCESS_TYPE>(accessType), _deviceHandle);
644  });
645 
646  auto device = std::make_shared<ClassCreator<Device>>(deviceHandle, m_parentInterface);
647  m_openedDevice = device;
648  m_deviceOpenedCallbackManager.TriggerCallbacks(device);
649 
650  return device;
651 }
652 
653 inline std::shared_ptr<Device> DeviceDescriptor::OpenedDevice() const
654 {
655  return LockOrThrowOpenedModule(m_openedDevice);
656 }
657 
659  const DeviceOpenedCallback& callback)
660 {
661  return m_deviceOpenedCallbackManager.RegisterCallback(callback);
662 }
663 
665 {
666  return m_deviceOpenedCallbackManager.UnregisterCallback(callback);
667 }
668 
670 {
671  return QueryNumericFromCInterfaceFunction<uint64_t>([&](uint64_t* monitoringUpdateInterval_ms) {
673  m_backendHandle, monitoringUpdateInterval_ms);
674  });
675 }
676 
677 inline void DeviceDescriptor::SetMonitoringUpdateInterval(uint64_t monitoringUpdateInterval_ms)
678 {
679  return CallAndCheckCInterfaceFunction([&] {
681  m_backendHandle, monitoringUpdateInterval_ms);
682  });
683 }
684 
686 {
687  return QueryNumericFromCInterfaceFunction<PEAK_BOOL8>([&](PEAK_BOOL8* isInformationRoleMonitored) {
689  m_backendHandle, static_cast<PEAK_DEVICE_INFORMATION_ROLE>(informationRole), isInformationRoleMonitored);
690  }) > 0;
691 }
692 
694 {
695  return CallAndCheckCInterfaceFunction([&] {
697  m_backendHandle, static_cast<PEAK_DEVICE_INFORMATION_ROLE>(informationRole));
698  });
699 }
700 
702 {
703  return CallAndCheckCInterfaceFunction([&] {
705  m_backendHandle, static_cast<PEAK_DEVICE_INFORMATION_ROLE>(informationRole));
706  });
707 }
708 
711 {
712  return reinterpret_cast<InformationChangedCallbackHandle>(
713  m_informationChangedCallbackManager->RegisterCallback(callback));
714 }
715 
717 {
718  m_informationChangedCallbackManager->UnregisterCallback(
719  reinterpret_cast<PEAK_DEVICE_DESCRIPTOR_INFORMATION_CHANGED_CALLBACK_HANDLE>(callbackHandle));
720 }
721 
722 inline void PEAK_CALL_CONV DeviceDescriptor::InformationChangedCallbackCWrapper(
723  const PEAK_DEVICE_INFORMATION_ROLE* changedRoles, size_t changedRolesSize, void* context)
724 {
725  auto callback = static_cast<DeviceDescriptor::InformationChangedCallback*>(context);
726  std::vector<DeviceInformationRole> changedRolesVec;
727  changedRolesVec.reserve(changedRolesSize);
728  for (size_t i = 0; i < changedRolesSize; ++i)
729  {
730  changedRolesVec.emplace_back(static_cast<DeviceInformationRole>(*(changedRoles + i)));
731  }
732  callback->operator()(changedRolesVec);
733 }
734 
735 inline PEAK_MODULE_DESCRIPTOR_HANDLE DeviceDescriptor::ModuleDescriptorHandle() const
736 {
737  auto moduleDescriptorHandle = QueryNumericFromCInterfaceFunction<PEAK_MODULE_DESCRIPTOR_HANDLE>(
738  [&](PEAK_MODULE_DESCRIPTOR_HANDLE* _moduleDescriptorHandle) {
740  m_backendHandle, _moduleDescriptorHandle);
741  });
742 
743  return moduleDescriptorHandle;
744 }
745 
746 } /* namespace core */
747 } /* namespace peak */
std::string Key() const
Returns the unique key.
Definition: peak_device_descriptor.hpp:544
std::function< void(const std::shared_ptr< core::Device > &openedDevice)> DeviceOpenedCallback
Definition: peak_device_descriptor.hpp:110
Encapsulates the GenTL functions associated with a GenTL Device module&#39;s ID.
Definition: peak_device_descriptor.hpp:102
PEAK_C_API PEAK_DeviceDescriptor_GetVendorName(PEAK_DEVICE_DESCRIPTOR_HANDLE deviceDescriptorHandle, char *vendorName, size_t *vendorNameSize)
Asks the given device descriptor for its vendor name.
int8_t PEAK_BOOL8
Definition: peak_backend.h:26
PEAK_C_API PEAK_DeviceDescriptor_OpenDevice(PEAK_DEVICE_DESCRIPTOR_HANDLE deviceDescriptorHandle, PEAK_DEVICE_ACCESS_TYPE accessType, PEAK_DEVICE_HANDLE *deviceHandle)
Opens the device being associated with the given interface descriptor for the given access type...
int32_t PEAK_DEVICE_INFORMATION_ROLE
Definition: peak_backend.h:146
PEAK_C_API PEAK_DeviceDescriptor_IsInformationRoleMonitored(PEAK_DEVICE_DESCRIPTOR_HANDLE deviceDescriptorHandle, PEAK_DEVICE_INFORMATION_ROLE informationRole, PEAK_BOOL8 *isInformationRoleMonitored)
Asks the given device descriptor whether the given information role is monitored. ...
PEAK_C_API PEAK_DeviceDescriptor_GetAccessStatus(PEAK_DEVICE_DESCRIPTOR_HANDLE deviceDescriptorHandle, PEAK_DEVICE_ACCESS_STATUS *accessStatus)
Asks the given device descriptor for its access status.
The "peak" namespace directly contains convenience functionality like the DeviceManager as well as th...
Definition: peak_dynamic_loader.h:32
void UnregisterDeviceOpenedCallback(DeviceOpenedCallbackHandle callbackHandle)
Unregisters a device opened callback.
Definition: peak_device_descriptor.hpp:664
std::string ToString(BufferPayloadType entry)
Definition: peak_buffer.hpp:472
std::string VendorName() const
Returns the vendor name.
Definition: peak_device_descriptor.hpp:565
PEAK_C_API PEAK_DeviceDescriptor_GetVersion(PEAK_DEVICE_DESCRIPTOR_HANDLE deviceDescriptorHandle, char *version, size_t *versionSize)
Asks the given device descriptor for its version.
PEAK_C_API PEAK_DeviceDescriptor_GetTLType(PEAK_DEVICE_DESCRIPTOR_HANDLE deviceDescriptorHandle, char *tlType, size_t *tlTypeSize)
Asks the given device descriptor for its TL type.
std::function< void(const std::vector< DeviceInformationRole > &changedRoles)> InformationChangedCallback
Definition: peak_device_descriptor.hpp:106
bool IsOpenable(DeviceAccessType accessType=DeviceAccessType::Exclusive) const
Checks whether the device can be opened with a specific access type.
Definition: peak_device_descriptor.hpp:630
DeviceAccessStatus
Current accessibility of the device.
Definition: peak_common_device_enums.hpp:24
DeviceInformationRole
Different types of information about the device.
Definition: peak_device_descriptor.hpp:52
void AddInformationRoleToMonitoring(DeviceInformationRole informationRole)
Adds the given information role to the monitoring.
Definition: peak_device_descriptor.hpp:693
bool IsInformationRoleMonitored(DeviceInformationRole informationRole) const
Checks whether the given information role is monitored.
Definition: peak_device_descriptor.hpp:685
DeviceOpenedCallbackHandle RegisterDeviceOpenedCallback(const DeviceOpenedCallback &callback)
Registers a callback for signaling when the Device is opened with this DeviceDescriptor.
Definition: peak_device_descriptor.hpp:658
Allows to update the firmware of a device.
Definition: peak_firmware_updater.hpp:45
Represents a GenTL Interface module.
Definition: peak_interface.hpp:45
InformationChangedCallback * InformationChangedCallbackHandle
Definition: peak_device_descriptor.hpp:108
std::string TLType() const
Returns the TL (transport layer) type.
Definition: peak_device_descriptor.hpp:586
std::shared_ptr< Interface > ParentInterface() const
Returns the parent interface.
Definition: peak_device_descriptor.hpp:625
std::string Version() const
Returns the version.
Definition: peak_device_descriptor.hpp:579
struct PEAK_MODULE_DESCRIPTOR * PEAK_MODULE_DESCRIPTOR_HANDLE
Definition: peak_backend.h:397
PEAK_C_API PEAK_DeviceDescriptor_ToModuleDescriptor(PEAK_DEVICE_DESCRIPTOR_HANDLE deviceDescriptorHandle, PEAK_MODULE_DESCRIPTOR_HANDLE *moduleDescriptorHandle)
Casts the given device descriptor to a module descriptor.
PEAK_C_API PEAK_DeviceDescriptor_GetModelName(PEAK_DEVICE_DESCRIPTOR_HANDLE deviceDescriptorHandle, char *modelName, size_t *modelNameSize)
Asks the given device descriptor for its model name.
PEAK_C_API PEAK_DeviceDescriptor_AddInformationRoleToMonitoring(PEAK_DEVICE_DESCRIPTOR_HANDLE deviceDescriptorHandle, PEAK_DEVICE_INFORMATION_ROLE informationRole)
Tells the given device descriptor to add the given information role to the monitoring.
PEAK_C_API PEAK_DeviceDescriptor_GetDisplayName(PEAK_DEVICE_DESCRIPTOR_HANDLE deviceDescriptorHandle, char *displayName, size_t *displayNameSize)
Asks the given device descriptor for its display name.
std::string DisplayName() const
Returns the display name.
Definition: peak_device_descriptor.hpp:557
PEAK_C_API PEAK_DeviceDescriptor_RegisterInformationChangedCallback(PEAK_DEVICE_DESCRIPTOR_HANDLE deviceDescriptorHandle, PEAK_DEVICE_DESCRIPTOR_INFORMATION_CHANGED_CALLBACK callback, void *callbackContext, PEAK_DEVICE_DESCRIPTOR_INFORMATION_CHANGED_CALLBACK_HANDLE *callbackHandle)
Registers a callback signaling changed information at the given device descriptor.
std::shared_ptr< Device > OpenDevice(DeviceAccessType accessType)
Opens the Device.
Definition: peak_device_descriptor.hpp:638
PEAK_C_API PEAK_DeviceDescriptor_GetSerialNumber(PEAK_DEVICE_DESCRIPTOR_HANDLE deviceDescriptorHandle, char *serialNumber, size_t *serialNumberSize)
Asks the given device descriptor for its serial number.
RawInformation Info(int32_t infoCommand) const
Delivers information based on the given GenTL info command.
Definition: peak_device_descriptor.hpp:549
The base class for all openable modules.
Definition: peak_module_descriptor.hpp:30
std::string SerialNumber() const
Returns the serial number.
Definition: peak_device_descriptor.hpp:601
The base class for all exceptions thrown by the library.
Definition: peak_exception.hpp:25
PEAK_C_API PEAK_DeviceDescriptor_GetIsOpenable(PEAK_DEVICE_DESCRIPTOR_HANDLE deviceDescriptorHandle, PEAK_DEVICE_ACCESS_TYPE accessType, PEAK_BOOL8 *isOpenable)
Asks the given device descriptor whether the device can be opened with this specific access type...
PEAK_C_API PEAK_DeviceDescriptor_GetTimestampTickFrequency(PEAK_DEVICE_DESCRIPTOR_HANDLE deviceDescriptorHandle, uint64_t *timestampTickFrequency)
Asks the given device descriptor for its timestamp tick frequency.
uint64_t TimestampTickFrequency() const
Returns the timestamp tick frequency.
Definition: peak_device_descriptor.hpp:617
PEAK_C_API PEAK_DeviceDescriptor_GetInfo(PEAK_DEVICE_DESCRIPTOR_HANDLE deviceDescriptorHandle, int32_t infoCommand, int32_t *infoDataType, uint8_t *info, size_t *infoSize)
Asks the given device descriptor for an information based on a specific command.
PEAK_C_API PEAK_DeviceDescriptor_UnregisterInformationChangedCallback(PEAK_DEVICE_DESCRIPTOR_HANDLE deviceDescriptorHandle, PEAK_DEVICE_DESCRIPTOR_INFORMATION_CHANGED_CALLBACK_HANDLE callbackHandle)
Unregisters the information changed callback with the given handle from the given device descriptor...
struct PEAK_DEVICE_DESCRIPTOR * PEAK_DEVICE_DESCRIPTOR_HANDLE
Definition: peak_backend.h:365
DeviceOpenedCallback * DeviceOpenedCallbackHandle
Definition: peak_device_descriptor.hpp:112
#define PEAK_CALL_CONV
Definition: peak_dynamic_loader.h:29
#define PEAK_C_ABI_PREFIX
Definition: peak_dll_defines.h:16
PEAK_C_API PEAK_DeviceDescriptor_RemoveInformationRoleFromMonitoring(PEAK_DEVICE_DESCRIPTOR_HANDLE deviceDescriptorHandle, PEAK_DEVICE_INFORMATION_ROLE informationRole)
Tells the given device descriptor to remove the given information role from the monitoring.
PEAK_DEVICE_DESCRIPTOR_INFORMATION_CHANGED_CALLBACK * PEAK_DEVICE_DESCRIPTOR_INFORMATION_CHANGED_CALLBACK_HANDLE
Definition: peak_backend.h:515
std::string UserDefinedName() const
Returns the user defined name.
Definition: peak_device_descriptor.hpp:593
InformationChangedCallbackHandle RegisterInformationChangedCallback(const InformationChangedCallback &callback)
Registers a callback for signaling changed information.
Definition: peak_device_descriptor.hpp:709
int32_t PEAK_DEVICE_ACCESS_STATUS
Definition: peak_backend.h:117
uint64_t MonitoringUpdateInterval() const
Returns the monitoring update interval.
Definition: peak_device_descriptor.hpp:669
PEAK_C_API PEAK_DeviceDescriptor_GetUserDefinedName(PEAK_DEVICE_DESCRIPTOR_HANDLE deviceDescriptorHandle, char *userDefinedName, size_t *userDefinedNameSize)
Asks the given device descriptor for its user-defined name.
DeviceAccessStatus AccessStatus() const
Returns the access status.
Definition: peak_device_descriptor.hpp:609
PEAK_C_API PEAK_DeviceDescriptor_SetMonitoringUpdateInterval(PEAK_DEVICE_DESCRIPTOR_HANDLE deviceDescriptorHandle, uint64_t monitoringUpdateInterval_ms)
Tells the given device descriptor to set the given monitoring update interval.
void RemoveInformationRoleFromMonitoring(DeviceInformationRole informationRole)
Removes the given information role from the monitoring.
Definition: peak_device_descriptor.hpp:701
The struct returned by all raw information functions.
Definition: peak_common_structs.hpp:24
void SetMonitoringUpdateInterval(uint64_t monitoringUpdateInterval_ms)
Sets the monitoring update interval.
Definition: peak_device_descriptor.hpp:677
std::shared_ptr< Device > OpenedDevice() const
Returns the Device that was opened with this DeviceDescriptor.
Definition: peak_device_descriptor.hpp:653
PEAK_C_API PEAK_DeviceDescriptor_GetMonitoringUpdateInterval(PEAK_DEVICE_DESCRIPTOR_HANDLE deviceDescriptorHandle, uint64_t *monitoringUpdateInterval_ms)
Asks the given device descriptor for its monitoring update interval.
struct PEAK_DEVICE * PEAK_DEVICE_HANDLE
Definition: peak_backend.h:369
~DeviceDescriptor() override
Definition: peak_device_descriptor.hpp:534
std::string ModelName() const
Returns the model name.
Definition: peak_device_descriptor.hpp:572
PEAK_C_API PEAK_DeviceDescriptor_GetKey(PEAK_DEVICE_DESCRIPTOR_HANDLE deviceDescriptorHandle, char *key, size_t *keySize)
Asks the given device descriptor for its key.
DeviceAccessType
Different modes to open the device with.
Definition: peak_device_descriptor.hpp:38
void UnregisterInformationChangedCallback(InformationChangedCallbackHandle callbackHandle)
Unregisters an information changed callback.
Definition: peak_device_descriptor.hpp:716