3 ipeanalyzer::getlinkstatus, Parameters, Return values – Teledyne LeCroy Automation API for Teledyne LeCroy PETracer_PETrainer User Manual
Page 25: Remarks, Example, Ipeanalyzer* poanalyzer, Uses_conversion, Sysfreestring( link_status ), Ipeanalyzer::getlinkstatus

Teledyne LeCroy
Automation API for PETracer/PETrainer
20
3.2.3 IPEAnalyzer::GetLinkStatus
HRESULT GetLinkStatus (
[out] VARIANT* fc_status ,
[out, retval] BSTR* link_status )
Returns two text strings with the link and flow control status.
Parameters
fc_status
Flow control status, one of the following values can be returned:
“Pending”, “Complete”, or “Not initialized”
link_status
Link status, one of the following values can be returned: “Detect.Quiet”,
“Detect.Active”, “Polling.Active”, “Polling.Compliance”,
“Polling.Configuration”, “Polling.Speed”,
“Configuration.Linkwidth.Start”, “Configuration.Linkwidth.Accept”,
“Configuration.Lanenum.Wait”, “Configuration.Lanenum.Accept”,
“Configuration.Complete”, “Configuration.Idle”, “L0”, “L0s.Idle”,
“L0s.FTS”, “L1”, “L2”, “Recovery.RcvrLock”, “Recovery.RcvrCfg”,
“Recovery.Idle”, “Loopback”, “Hot Reset”, or “Disabled”
Return values
Remarks
Example
C++:
IPEAnalyzer* poAnalyzer;
. . .
BSTR link_status; // Link Status
VARIANT pe_status; // Flow Control
VariantInit(&pe_status);
try
{
link_status = poAnalyzer->GetLinkStatus( &pe_status );
}
catch ( _com_error& er)
{
if (er.Description().length() > 0)
::MessageBox( NULL, er.Description(), _T("PETracer client"), MB_OK );
else
::MessageBox( NULL, er.ErrorMessage(), _T("PETracer client"), MB_OK );
return 1;
}
USES_CONVERSION;
TCHAR str_status[512];
_tcscpy( str_status, "Link Status: ");
_tcscat( str_status, OLE2T( link_status) );
_tcscat( str_status, "; Flow Control: ");
_tcscat( str_status, OLE2T(V_BSTR(&pe_status)) );
SysFreeString( link_status );
::MessageBox( NULL, str_status, _T("Status"), MB_OK );