DeviceInfo.h 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578
  1. //-----------------------------------------------------------------------------
  2. // Basler pylon SDK
  3. // Copyright (c) 2006-2021 Basler AG
  4. // http://www.baslerweb.com
  5. // Author: Hartmut Nebelung, AH
  6. //-----------------------------------------------------------------------------
  7. /*!
  8. \file
  9. \brief Definition of CDeviceInfo class
  10. */
  11. #ifndef __DEVICEINFO_H__
  12. #define __DEVICEINFO_H__
  13. #if _MSC_VER > 1000
  14. #pragma once
  15. #endif
  16. #include <pylon/Platform.h>
  17. #ifdef _MSC_VER
  18. # pragma pack(push, PYLON_PACKING)
  19. #endif /* _MSC_VER */
  20. #include <pylon/PylonBase.h>
  21. #include <pylon/stdinclude.h>
  22. #include <pylon/Info.h>
  23. namespace Pylon
  24. {
  25. ///This namespace contains keys for accessing the properties of pylon info objects
  26. namespace Key
  27. {
  28. //General
  29. ///Identifies the serial number if it supported by the underlying implementation
  30. const char* const SerialNumberKey = "SerialNumber";
  31. ///Identifies the user-defined name if present.
  32. const char* const UserDefinedNameKey = "UserDefinedName";
  33. ///Identifies the model name of the device.
  34. const char* const ModelNameKey = "ModelName";
  35. ///Identifies the version string of the device.
  36. const char* const DeviceVersionKey = "DeviceVersion";
  37. ///Identifies the identifier for the transport layer able to create this device.
  38. const char* const DeviceFactoryKey = "DeviceFactory";
  39. ///Identifies the source of the XML used to create the node map of this device.
  40. const char* const XMLSourceKey = "XMLSource";
  41. ///Identifies the manufacturer info.
  42. const char* const ManufacturerInfoKey = "ManufacturerInfo";
  43. ///Identifies the device ID (e.g., used by Camera Link and GenTL Consumer).
  44. const char* const DeviceIDKey = "DeviceID";
  45. //GigE
  46. ///Identifies the IP address of the device IP address in a human-readable representation including the port number.
  47. const char* const AddressKey = "Address";
  48. ///Identifies the IP address of the device IP address in a human-readable representation.
  49. const char* const IpAddressKey = "IpAddress";
  50. ///Identifies the default gateway of the device IP address in a human-readable representation.
  51. const char* const DefaultGatewayKey = "DefaultGateway";
  52. ///Identifies the subnet mask of the device IP address in a human-readable representation.
  53. const char* const SubnetMaskKey = "SubnetMask";
  54. ///Identifies the subnet address of the device in a human-readable representation.
  55. const char* const SubnetAddressKey = "SubnetAddress";
  56. ///Identifies the port number used.
  57. const char* const PortNrKey = "PortNr";
  58. ///Identifies the MAC address of the device of the device IP address in a human-readable representation.
  59. const char* const MacAddressKey = "MacAddress";
  60. ///Identifies the address of the network interface the device is connected.
  61. const char* const InterfaceKey = "Interface";
  62. ///Identifies the persistent IP configuration options.
  63. const char* const IpConfigOptionsKey = "IpConfigOptions";
  64. ///Identifies the current IP configuration of the device.
  65. const char* const IpConfigCurrentKey = "IpConfigCurrent";
  66. //USB
  67. const char* const DeviceGUIDKey = "DeviceGUID";
  68. const char* const VendorIdKey = "VendorId";
  69. const char* const ProductIdKey = "ProductId";
  70. const char* const DriverKeyNameKey = "DriverKeyName";
  71. const char* const UsbDriverTypeKey = "UsbDriverTypeName";
  72. // Internal use only
  73. const char* const UsbPortVersionBcdKey = "UsbPortVersionBcd";
  74. // Internal use only
  75. const char* const SpeedSupportBitmaskKey = "SpeedSupportBitmask";
  76. // Internal use only
  77. const char* const TransferModeKey = "TransferModeKey";
  78. //1394
  79. ///Identifies the name of the device used by the underlying device driver. Internal use only.
  80. const char* const InternalNameKey = "InternalName";
  81. //BCON
  82. ///Identifies the name of BCON adapter library including extension without path information.
  83. const char* const BconAdapterLibraryNameKey = "BconAdapterLibraryName";
  84. ///Identifies the version of the externally provided BCON adapter library. The format is:v{major}.{minor}
  85. const char* const BconAdapterLibraryVersionKey = "BconAdapterLibraryVersion";
  86. ///Identifies the version of the BCON Adapter API the BCON adapter library has been implemented for. The format is:v{major}.{minor}
  87. const char* const BconAdapterLibraryApiVersionKey = "BconAdapterLibraryApiVersion";
  88. ///Identifies the version of the BCON Adapter API currently supported by pylon. The format is:v{major}.{minor}
  89. const char* const SupportedBconAdapterApiVersionKey = "SupportedBconAdapterApiVersion";
  90. //CameraLink
  91. ///Identifies the ID of the serial port the device is connected to.
  92. const char* const PortIDKey = "PortID";
  93. ///Identifies the initial baud rate of the serial port the device is connected to.
  94. const char* const InitialBaudRateKey = "InitialBaudRate";
  95. ///Identifies the device xml file override used. Internal use only.
  96. const char* const DeviceXMLFileOverrideKey = "DeviceXMLFileOverride";
  97. ///Identifies the device specific string. Internal use only.
  98. const char* const DeviceSpecificStringKey = "DeviceSpecificString";
  99. ///Identifies the port specific string of the device. Internal use only.
  100. const char* const PortSpecificStringKey = "PortSpecificString";
  101. // Internal use only
  102. const char* const DeviceIdxKey = "DeviceIdx";
  103. }
  104. /// Holds information about an enumerated device.
  105. /*!
  106. The device enumeration process creates a list of CDeviceInfo objects
  107. (Pylon::DeviceInfoList_t). Each CDeviceInfo objects stores information
  108. about a device. The information is retrieved during the device enumeration process (ITransportLayer::EnumerateDevices resp.
  109. CTlFactory::EnumerateDevices)
  110. \ingroup Pylon_TransportLayer
  111. */
  112. class PYLONBASE_API CDeviceInfo : public CInfoBase
  113. {
  114. public:
  115. CDeviceInfo();
  116. CDeviceInfo( const CDeviceInfo& );
  117. virtual ~CDeviceInfo()
  118. {
  119. }
  120. /*!
  121. \brief Compares CDeviceInfo objects by device class and serial number.
  122. \param[in] rhs The right-hand side object of the comparison.
  123. \return Returns true according to this rule: USB < GigE < CameraLink < 1394 < Bcon < Less than compare of device class text < CamEmu.
  124. CDeviceInfo objects of the same transport layer are compared by serial number. Numeric serial numbers are less than alphanumeric
  125. serial numbers. Two alphanumeric serial numbers return the result of a less than text comparison.
  126. \error
  127. Does not throw C++ exceptions.
  128. */
  129. bool operator<( const CDeviceInfo& rhs ) const;
  130. /* The underlying implementation does not need to support all the listed properties.
  131. The properties that are not supported always have the value "N/A" which is the value of CInfoBase::PropertyNotAvailable */
  132. ///Retrieves the serial number if it supported by the underlying implementation
  133. ///This property is identified by Key::SerialNumberKey.
  134. String_t GetSerialNumber() const;
  135. ///Sets the above property.
  136. CDeviceInfo& SetSerialNumber( const String_t& SerialNumberValue );
  137. ///Returns true if the above property is available.
  138. bool IsSerialNumberAvailable() const;
  139. ///Retrieves the user-defined name if present.
  140. ///This property is identified by Key::UserDefinedNameKey.
  141. String_t GetUserDefinedName() const;
  142. ///Sets the above property.
  143. CDeviceInfo& SetUserDefinedName( const String_t& UserDefinedNameValue );
  144. ///Returns true if the above property is available.
  145. bool IsUserDefinedNameAvailable() const;
  146. ///Retrieves the model name of the device.
  147. ///This property is identified by Key::ModelNameKey.
  148. String_t GetModelName() const;
  149. ///Sets the above property.
  150. CDeviceInfo& SetModelName( const String_t& ModelNameValue );
  151. ///Returns true if the above property is available.
  152. bool IsModelNameAvailable() const;
  153. ///Retrieves the version string of the device.
  154. ///This property is identified by Key::DeviceVersionKey.
  155. String_t GetDeviceVersion() const;
  156. ///Sets the above property.
  157. CDeviceInfo& SetDeviceVersion( const String_t& DeviceVersionValue );
  158. ///Returns true if the above property is available.
  159. bool IsDeviceVersionAvailable() const;
  160. ///Retrieves the identifier for the transport layer able to create this device.
  161. ///This property is identified by Key::DeviceFactoryKey.
  162. String_t GetDeviceFactory() const;
  163. ///Sets the above property.
  164. CDeviceInfo& SetDeviceFactory( const String_t& DeviceFactoryValue );
  165. ///Returns true if the above property is available.
  166. bool IsDeviceFactoryAvailable() const;
  167. ///Retrieves the location where the XML file was loaded from.
  168. ///This property is identified by Key::XMLSourceKey.
  169. ///You must use the DeviceInfo of an opened IPylonDevice to retrieve this property.
  170. String_t GetXMLSource() const;
  171. ///Sets the above property.
  172. CDeviceInfo& SetXMLSource( const String_t& XMLSource );
  173. ///Returns true if the above property is available.
  174. bool IsXMLSourceAvailable() const;
  175. ///Sets the display friendly name of the device.
  176. ///This property is identified by Key::FriendlyNameKey.
  177. ///This method overrides a method of a base class returning a reference to CDeviceInfo
  178. CDeviceInfo& SetFriendlyName( const String_t& FriendlyNameValue );
  179. ///Sets the full name identifying the device.
  180. ///This property is identified by Key::FullNameKey.
  181. ///This method overrides a method of a base class returning a reference to CDeviceInfo
  182. CDeviceInfo& SetFullName( const String_t& FullNameValue );
  183. ///Sets the vendor name of the device.
  184. ///This property is identified by Key::VendorNameKey.
  185. ///This method overrides a method of a base class returning a reference to CDeviceInfo
  186. CDeviceInfo& SetVendorName( const String_t& VendorNameValue );
  187. ///Sets the device class device, e.g. Basler1394.
  188. ///This property is identified by Key::DeviceClassKey.
  189. ///This method overrides a method of a base class returning a reference to CDeviceInfo
  190. CDeviceInfo& SetDeviceClass( const String_t& DeviceClassValue );
  191. ///Retrieves the ID of the interface that the device is connected to.
  192. ///This property is identified by Key::InterfaceIDKey.
  193. String_t GetInterfaceID() const;
  194. ///Sets the above property.
  195. CDeviceInfo& SetInterfaceID( const String_t& InterfaceIDValue );
  196. ///Returns true if the above property is available.
  197. bool IsInterfaceIDAvailable() const;
  198. ///Retrieves the IP address the device IP address in a human-readable representation including the port number.
  199. ///This property is identified by Key::AddressKey.
  200. ///Applies to: GigE
  201. String_t GetAddress() const;
  202. ///Sets the above property.
  203. ///Applies to: GigE
  204. CDeviceInfo& SetAddress( const String_t& AddressValue );
  205. ///Returns true if the above property is available.
  206. ///Applies to: GigE
  207. bool IsAddressAvailable() const;
  208. ///Retrieves the IP address the device IP address in a human-readable representation.
  209. ///This property is identified by Key::IpAddressKey.
  210. ///Applies to: GigE
  211. String_t GetIpAddress() const;
  212. ///Sets the above property.
  213. ///Applies to: GigE
  214. CDeviceInfo& SetIpAddress( const String_t& IpAddressValue );
  215. ///Returns true if the above property is available.
  216. ///Applies to: GigE
  217. bool IsIpAddressAvailable() const;
  218. ///Retrieves the IP address of the subnet.
  219. /// This property is identified by Key::SubnetAddressKey
  220. ///Applies to: GigE
  221. String_t GetSubnetAddress() const;
  222. ///Sets the above property.
  223. ///Applies to: GigE
  224. CDeviceInfo& SetSubnetAddress( const String_t& SubnetAddressValue );
  225. ///Returns true if the above property is available.
  226. ///Applies to: GigE
  227. bool IsSubnetAddressAvailable() const;
  228. ///Retrieves the default gateway the device IP address in a human-readable representation.
  229. ///This property is identified by Key::DefaultGatewayKey.
  230. ///Applies to: GigE
  231. String_t GetDefaultGateway() const;
  232. ///Sets the above property.
  233. ///Applies to: GigE
  234. CDeviceInfo& SetDefaultGateway( const String_t& DefaultGatewayValue );
  235. ///Returns true if the above property is available.
  236. ///Applies to: GigE
  237. bool IsDefaultGatewayAvailable() const;
  238. ///Retrieves the subnet mask the device IP address in a human-readable representation.
  239. ///This property is identified by Key::SubnetMaskKey.
  240. ///Applies to: GigE
  241. String_t GetSubnetMask() const;
  242. ///Sets the above property.
  243. ///Applies to: GigE
  244. CDeviceInfo& SetSubnetMask( const String_t& SubnetMaskValue );
  245. ///Returns true if the above property is available.
  246. ///Applies to: GigE
  247. bool IsSubnetMaskAvailable() const;
  248. ///Retrieves the port number used.
  249. ///This property is identified by Key::PortNrKey.
  250. ///Applies to: GigE
  251. String_t GetPortNr() const;
  252. ///Sets the above property.
  253. ///Applies to: GigE
  254. CDeviceInfo& SetPortNr( const String_t& PortNrValue );
  255. ///Returns true if the above property is available.
  256. ///Applies to: GigE
  257. bool IsPortNrAvailable() const;
  258. ///Retrieves the MAC address of the device the device IP address in a human-readable representation.
  259. ///This property is identified by Key::MacAddressKey.
  260. ///Applies to: GigE
  261. String_t GetMacAddress() const;
  262. ///Sets the above property.
  263. ///Applies to: GigE
  264. CDeviceInfo& SetMacAddress( const String_t& MacAddressValue );
  265. ///Returns true if the above property is available.
  266. ///Applies to: GigE
  267. bool IsMacAddressAvailable() const;
  268. ///Retrieves the address of the network interface the device is connected.
  269. ///This property is identified by Key::InterfaceKey.
  270. ///Applies to: GigE
  271. String_t GetInterface() const;
  272. ///Sets the above property.
  273. ///Applies to: GigE
  274. CDeviceInfo& SetInterface( const String_t& InterfaceValue );
  275. ///Returns true if the above property is available.
  276. ///Applies to: GigE
  277. bool IsInterfaceAvailable() const;
  278. ///Retrieves the persistent IP configuration options.
  279. ///This property is identified by Key::IpConfigOptionsKey.
  280. ///Applies to: GigE
  281. String_t GetIpConfigOptions() const;
  282. ///Sets the above property.
  283. ///Applies to: GigE
  284. CDeviceInfo& SetIpConfigOptions( const String_t& IpConfigOptionsValue );
  285. ///Returns true if the above property is available.
  286. ///Applies to: GigE
  287. bool IsIpConfigOptionsAvailable() const;
  288. ///Retrieves the current IP configuration of the device.
  289. ///This property is identified by Key::IpConfigCurrentKey.
  290. ///Applies to: GigE
  291. String_t GetIpConfigCurrent() const;
  292. ///Sets the above property.
  293. ///Applies to: GigE
  294. CDeviceInfo& SetIpConfigCurrent( const String_t& IpConfigCurrentValue );
  295. ///Returns true if the above property is available.
  296. ///Applies to: GigE
  297. bool IsIpConfigCurrentAvailable() const;
  298. ///Retrieves the device GUID.
  299. ///This property is identified by Key::DeviceGUIDKey.
  300. ///Applies to: Usb
  301. String_t GetDeviceGUID() const;
  302. ///Returns true if the above property is available.
  303. ///Applies to: Usb
  304. bool IsDeviceGUIDAvailable() const;
  305. ///Retrieves the manufacturer info.
  306. ///This property is identified by Key::ManufacturerInfoKey.
  307. ///Applies to: Usb and BCON
  308. String_t GetManufacturerInfo() const;
  309. ///Returns true if the above property is available.
  310. ///Applies to: Usb and BCON
  311. bool IsManufacturerInfoAvailable() const;
  312. ///Retrieves the device index. For internal use only.
  313. ///This property is identified by Key::DeviceIdxKey.
  314. ///Applies to: Usb and BCON
  315. String_t GetDeviceIdx() const;
  316. ///Returns true if the above property is available.
  317. ///Applies to: Usb and BCON
  318. bool IsDeviceIdxAvailable() const;
  319. ///Retrieves the product ID. For internal use only.
  320. ///This property is identified by Key::ProductIdKey.
  321. ///Applies to: Usb
  322. String_t GetProductId() const;
  323. ///Returns true if the above property is available.
  324. ///Applies to: Usb
  325. bool IsProductIdAvailable() const;
  326. ///Retrieves the vendor ID. For internal use only.
  327. ///This property is identified by Key::VendorIdKey.
  328. ///Applies to: Usb
  329. String_t GetVendorId() const;
  330. ///Returns true if the above property is available.
  331. ///Applies to: Usb
  332. bool IsVendorIdAvailable() const;
  333. ///Retrieves the driver key name. For internal use only.
  334. ///This property is identified by Key::DriverKeyNameKey.
  335. ///Applies to: Usb
  336. String_t GetDriverKeyName() const;
  337. ///Returns true if the above property is available.
  338. ///Applies to: Usb
  339. bool IsDriverKeyNameAvailable() const;
  340. ///Retrieves the usb driver type. For internal use only.
  341. ///This property is identified by Key::UsbDriverTypeKey.
  342. ///Applies to: Usb
  343. String_t GetUsbDriverType() const;
  344. ///Returns true if the above property is available.
  345. ///Applies to: Usb
  346. bool IsUsbDriverTypeAvailable() const;
  347. ///Retrieves the transfer mode. For internal use only.
  348. ///This property is identified by Key::TransferModeKey
  349. // Returns either dtx or btx (direct vs. buffered transfer)
  350. ///Applies to: Usb
  351. String_t GetTransferMode() const;
  352. ///Returns true if the above property is available.
  353. ///Applies to: Usb
  354. bool IsTransferModeAvailable() const;
  355. ///Retrieves the name of the device used by the underlying device driver. Internal use only.
  356. ///This property is identified by Key::InternalNameKey.
  357. ///Applies to: 1394
  358. String_t GetInternalName() const;
  359. ///Sets the above property.
  360. ///Applies to: 1394
  361. CDeviceInfo& SetInternalName( const String_t& InternalNameValue );
  362. ///Returns true if the above property is available.
  363. ///Applies to: 1394
  364. bool IsInternalNameAvailable() const;
  365. ///Retrieves the name of BCON adapter library including extension without path information.
  366. ///This property is identified by Key::BconAdapterLibraryNameKey.
  367. ///Applies to: BCON
  368. String_t GetBconAdapterLibraryName() const;
  369. ///Sets the above property.
  370. ///Applies to: BCON
  371. CDeviceInfo& SetBconAdapterLibraryName( const String_t& BconAdapterLibraryNameValue );
  372. ///Returns true if the above property is available.
  373. ///Applies to: BCON
  374. bool IsBconAdapterLibraryNameAvailable() const;
  375. ///Retrieves the version of the externally provided BCON adapter library. The format is:v{major}.{minor}
  376. ///This property is identified by Key::BconAdapterLibraryVersionKey.
  377. ///Applies to: BCON
  378. String_t GetBconAdapterLibraryVersion() const;
  379. ///Sets the above property.
  380. ///Applies to: BCON
  381. CDeviceInfo& SetBconAdapterLibraryVersion( const String_t& BconAdapterLibraryVersionValue );
  382. ///Returns true if the above property is available.
  383. ///Applies to: BCON
  384. bool IsBconAdapterLibraryVersionAvailable() const;
  385. ///Retrieves the version of the BCON Adapter API the BCON adapter library has been implemented for. The format is:v{major}.{minor}
  386. ///This property is identified by Key::BconAdapterLibraryApiVersionKey.
  387. ///Applies to: BCON
  388. String_t GetBconAdapterLibraryApiVersion() const;
  389. ///Sets the above property.
  390. ///Applies to: BCON
  391. CDeviceInfo& SetBconAdapterLibraryApiVersion( const String_t& BconAdapterLibraryApiVersionValue );
  392. ///Returns true if the above property is available.
  393. ///Applies to: BCON
  394. bool IsBconAdapterLibraryApiVersionAvailable() const;
  395. ///Retrieves the version of the BCON Adapter API currently supported by pylon. The format is:v{major}.{minor}
  396. ///This property is identified by Key::SupportedBconAdapterApiVersionKey.
  397. ///Applies to: BCON
  398. String_t GetSupportedBconAdapterApiVersion() const;
  399. ///Sets the above property.
  400. ///Applies to: BCON
  401. CDeviceInfo& SetSupportedBconAdapterApiVersion( const String_t& SupportedBconAdapterApiVersionValue );
  402. ///Returns true if the above property is available.
  403. ///Applies to: BCON
  404. bool IsSupportedBconAdapterApiVersionAvailable() const;
  405. ///Retrieves the ID of the serial port the device is connected to.
  406. ///This property is identified by Key::PortIDKey.
  407. ///Applies to: CameraLink
  408. String_t GetPortID() const;
  409. ///Sets the above property.
  410. ///Applies to: CameraLink
  411. CDeviceInfo& SetPortID( const String_t& PortIDValue );
  412. ///Returns true if the above property is available.
  413. ///Applies to: CameraLink
  414. bool IsPortIDAvailable() const;
  415. ///Retrieves the device ID.
  416. ///This property is identified by Key::DeviceIDKey.
  417. ///Applies to: CameraLink
  418. String_t GetDeviceID() const;
  419. ///Sets the above property.
  420. ///Applies to: CameraLink
  421. CDeviceInfo& SetDeviceID( const String_t& DeviceIDValue );
  422. ///Returns true if the above property is available.
  423. ///Applies to: CameraLink
  424. bool IsDeviceIDAvailable() const;
  425. ///Retrieves the initial baud rate of the serial port the device is connected to.
  426. ///This property is identified by Key::InitialBaudRateKey.
  427. ///Applies to: CameraLink
  428. String_t GetInitialBaudRate() const;
  429. ///Sets the above property.
  430. ///Applies to: CameraLink
  431. CDeviceInfo& SetInitialBaudRate( const String_t& InitialBaudRateValue );
  432. ///Returns true if the above property is available.
  433. ///Applies to: CameraLink
  434. bool IsInitialBaudRateAvailable() const;
  435. ///Retrieves the device xml file override used. Internal use only.
  436. ///This property is identified by Key::DeviceXMLFileOverrideKey.
  437. ///Applies to: CameraLink
  438. String_t GetDeviceXMLFileOverride() const;
  439. ///Sets the above property.
  440. ///Applies to: CameraLink
  441. CDeviceInfo& SetDeviceXMLFileOverride( const String_t& DeviceXMLFileOverrideValue );
  442. ///Returns true if the above property is available.
  443. ///Applies to: CameraLink
  444. bool IsDeviceXMLFileOverrideAvailable() const;
  445. ///Retrieves the device specific string. Internal use only.
  446. ///This property is identified by Key::DeviceSpecificStringKey.
  447. ///Applies to: CameraLink
  448. String_t GetDeviceSpecificString() const;
  449. ///Sets the above property.
  450. ///Applies to: CameraLink
  451. CDeviceInfo& SetDeviceSpecificString( const String_t& DeviceSpecificStringValue );
  452. ///Returns true if the above property is available.
  453. ///Applies to: CameraLink
  454. bool IsDeviceSpecificStringAvailable() const;
  455. ///Retrieves the port specific string of the device. Internal use only.
  456. ///This property is identified by Key::PortSpecificStringKey.
  457. ///Applies to: CameraLink
  458. String_t GetPortSpecificString() const;
  459. ///Sets the above property.
  460. ///Applies to: CameraLink
  461. CDeviceInfo& SetPortSpecificString( const String_t& PortSpecificStringValue );
  462. ///Returns true if the above property is available.
  463. ///Applies to: CameraLink
  464. bool IsPortSpecificStringAvailable() const;
  465. /// Modifies a property value
  466. ///This method overrides a method of a base class returning a reference to CDeviceInfo
  467. virtual CDeviceInfo& SetPropertyValue( const String_t& Name, const String_t& Value )
  468. {
  469. CInfoBase::SetPropertyValue( Name, Value );
  470. return *this;
  471. }
  472. public:
  473. //! \brief Returns true when the device is configured for a persistent IP address
  474. bool IsPersistentIpActive( void ) const;
  475. //! \brief Returns true when the device is configured for using DHCP
  476. bool IsDhcpActive( void ) const;
  477. //! \brief Returns true when the device is configured for using Auto IP (aka LLA)
  478. bool IsAutoIpActive( void ) const;
  479. //! \brief Returns true when the device supports configuring a persistent IP address
  480. bool IsPersistentIpSupported( void ) const;
  481. //! \brief Returns true when the device supports DHCP
  482. bool IsDhcpSupported( void ) const;
  483. //! \brief Returns true when the device supports Auto IP (aka LLA)
  484. bool IsAutoIpSupported( void ) const;
  485. //! \brief Returns true when subset, applies special knowledge on how to compare GigE specific values
  486. virtual bool IsSubset( const IProperties& Subset ) const;
  487. protected:
  488. CDeviceInfo& SetDeviceGUID( const String_t& );
  489. CDeviceInfo& SetManufacturerInfo( const String_t& );
  490. CDeviceInfo& SetDeviceIdx( const String_t& );
  491. CDeviceInfo& SetProductId( const String_t& );
  492. CDeviceInfo& SetVendorId( const String_t& );
  493. CDeviceInfo& SetDriverKeyName( const String_t& );
  494. CDeviceInfo& SetUsbDriverType( const String_t& );
  495. CDeviceInfo& SetTransferMode( const String_t& );
  496. };
  497. }
  498. #ifdef _MSC_VER
  499. # pragma pack(pop)
  500. #endif /* _MSC_VER */
  501. #endif //__DEVICEINFO_H__