beautypg.com

Catc ver. 1.40 – Teledyne LeCroy Automation API for Bluetooth Analyzers User Manual

Page 50

background image

44

Automation API for CATC Bluetooth Analyzers

CATC

Ver. 1.40

Next

PacketStr = Left( PacketStr, NumberOfBits )

StatusText.innerText = "Packet ( " & NumberOfBits & " bits ): "

& PacketStr

End If

End Sub

-->

C++:

IBTTrace* bt_trace;

LONG packet_number;

. . .

VARIANT packet;

VariantInit( &packet );

long number_of_bits;

try

{

number_of_bits = bt_trace->GetPacket( packet_number, &packet );

}

catch ( _com_error& er)

{

if (er.Description().length() > 0)

::MessageBox( NULL, er.Description(), _T("BTAnalyzer client"),

MB_OK );

else

::MessageBox( NULL, er.ErrorMessage(),_T("BTAnalyzer client"),

MB_OK );

return 1;

}

if ( packet.vt == ( VT_ARRAY | VT_VARIANT) )

{

SAFEARRAY* packet_safearray = packet.parray;

TCHAR packet_message[256];

TCHAR elem[64];

_stprintf( packet_message, _T("packet #%ld: "), packet_number );

for ( long i=0; i<(long)packet_safearray->rgsabound[0].cElements;

i++)

{

VARIANT var;

HRESULT hr = SafeArrayGetElement(packet_safearray, &i, &var);

if (FAILED(hr))

{

::MessageBox( NULL, _T("Error accessing array"),

_T("BTAnalyzer client"), MB_OK );

return 1;

}

if ( var.vt != ( VT_UI1) )

{

::MessageBox( NULL, _T("Array of bytes expected"),

_T("BTAnalyzer client"), MB_OK );

return 1;

}

_stprintf( elem, _T("%02X "), V_UI1(&var) );

_tcscat( packet_message, elem );