![]() | InitializeIdentification Method |
Queries the instrument for its identification string and initializes the corresponding driver settings.
virtual HRESULT InitializeIdentification();
Returns S_OK if successful, otherwise a failure HRESULT.
Override this function when you need to perform custom parsing of the instrument identification string. The default implementation of this function issues a "*IDN?" query and expects a response in the following format:
<manufacturer>,<model>,<serialNumber>,<firmwareRevision>
This function is used in the implementation of the IIviDriver::Initialize method. When the driver is initialized, the InitializeIdentification function sends a "*IDN?" query. The instrument responds by returning its identification string, which is parsed to retrieve the instrument manufacturer, the instrument model, the serial number, and the firmware revision. If the instrument does not response to "*IDN?" in the form shown above, then the InitializeIdentification function must be overridden to properly parse and store the instrument identification information.
![]() |
---|
Within the implementation of InitializeIdentification, it is important to ultimately call the SetIdentificationInformation function to properly cache the information parsed from the indentification string. See the example below. |
// CoAcme4321.h class ATL_NO_VTABLE Acme4321 : { // ... virtual HRESULT InitializeIdentification() { // Query the instrument for its ID string using the command "SYST:ID?" // The instrument returns an ID string in the following form: // <manufacturer>;<serialNumber>;<firmwareRevision>;<model> CString strManufacturer, strModel, strSerialNumber, strFirmwareRevision; HRESULT hr = io.Queryf(_T("SYST:ID?", _T("%s,%s,%s,%s"), &strManufacturer, &strSerialNumber, &strFirmwareRevision, &strModel); if (SUCCEEDED(hr)) { // Cache the identification information in the driver SetIdentificationInfo(strIdentification, strManufacturer, strModel, strSerialNumber, strFirmwareRevision); } return hr; } // ... }