TDM TEST SOLUTIONS

T1 E1 Testing

T1 E1 Application Development Toolkit

(For Windows® and Linux)

Description

The Application Development Toolkit provides application programming interface (API) for custom T1 E1 software development. GL now provides API for Windows® and Linux Operating Systems. The Windows® toolkit consists of C and C++ header files, a 32 bit dynamic link library (DLL) implementing API, programmer's guide and reference manual and examples of custom applications.

The API supports Microsoft® VS2005 C/C++ Compiler. The API provides device drivers for GL Communication's tProbe™ T1 E1 analyzers and high level functions to simplify applications development in Windows® operating systems. Also included in the API is a C interface that allows applications to be built in C when C++ is not available.

The Linux toolkit consists of C and C++ header files, a 32 bit shared library (so) implementing API and examples of custom applications. The API supports gcc/g++ 4.4.1. The API provides a device driver interface for GL Communication's Universal T1 E1 analyzers and high level functions to simplify applications development in Open Suse Linux 11.2 with kernel release of 2.6.31.

The API has an object oriented design from the ground up and provides a very consistent, intuitive, and robust interface to assist in developing high quality communication software. The library has extensive error handling and diagnostic features to make software development easier. To make the API library feature-rich and simple to use, all the methods follow the naming and parameter passing conventions



API Functions (Linux)

Some examples of what can be done with tProbe™ T1 E1 Analyzer in Linux are listed below-

  • Having ported our "GLComIFC" from Windows® to Linux, the driver and API expose all features of the hardware for both T1 E1 and OC-3/12 STM-1/4 Cards
  • An API Toolkit provides examples how to access the Raw Data, Set / Reset Registers, Set Clocking Modes, Get / Set Alarms, Loopbacks
  • For tProbe™ T1 E1 Analyzer , examples are provided for:
    • Implementing HDLC on single timeslots or multi-timeslot streams, ATM cell delineation
    • Implementing Delay and BERT, record/playback on sub-timeslot, timeslot, and multi-timeslot streams
    • Working with multiple cards in a single PC, you get implementation method for Frame Relay in software, Accessing Pulse Mask and Jitter measurements, Dropping / Adding VF Input and VF Output
    • Configuring special cabling options like Cross Port Thru, Cross Port Transmit, Bridge, and Monitor
    • Access to Error Insertion Logic, Access to Tx Frequency Deviation Logic


Initialization and Termination Functions

Function Name Description
Initialize Initializes cards
CheckCard Checks card I/O and memory
CheckCardIo Check card I/O
CheckCardMemory Checks card memory
LoadDefaultConfig Loads framer and driver chip registers,
ReadHardwareConfig Reads I/O address, base memory address and IRQ
InitializeCodec Initializes codec
ImplementTxIsr Starts/stops interrupt service for Tx
ImplementRxIsr Starts/stops interrupt service for Rx

Example:


try
{
GlComInterface Ifc; //Device Driver interface object
Ifc.Initialize(true); // Must be first member function called!!!
...
}
catch (GlComExceptions except)


Configuration Functions

These functions are used to query device configuration parameters.

Function Name Description
GetMaxTimeslot Returns maximum time slot number for the devices
GetMaxDeviceCount Returns maximum number of devices supported by device driver
GetNoOfDevicesInstalled Returns number of devices installed and configured
GetIoBaseAddr Returns base I/O address
GetMemOffset Returns memory offset
GetInterrupt1 Returns interrupt number
GetMultiFrameSize Returns multiframe size
GetMultiFrameDuration Returns multiframe duration
GetIdleCode Returns idle code used for transmission
GetNoOfFramesPerMF Returns number of frames per multiframe
GetMultiFrameSize Returns multiframe size
GetMultiFrameDuration Returns duration of multiframe
GetUsableSoftBufferSize Returns usable software buffer size
GetNoOfMultiFramesPerSoftBuffer Returns number of multiframes fit in software buffer
GetProtocolBytesPerMs Number of bytes transferred per mSec full frame
GetNoOfFramesPerSoftBuffer Returns number of frames fit in software buffer

Example:


try
{
GlComInterface Ifc; // Device driver interface object
Ifc.Initialize(true); // Must be first member function called!!!
...
printf('Frames in Multiframe = %d', Ifc.GetNoOfFramesPerMF(SelectedDeviceNo));
#ifdef T1
BitsInMltFrm = 193 * Ifc.GetNoOfFramesPerMF();
#else // E1
BitsInMltFrm = 256 * Ifc.GetNoOfFramesPerMF();
#endif
}
catch (GlComExceptions except)
{
...
}


Mode Functions

Function Name Description
CheckMode Checks whether a particular mode is set
SetMode Sets a mode

One of the following three modes is used:

  • Monitor
  • Terminate
  • Bridge

Example:


bool b1;
GlComInterface Ifc; // Device driver interface object
Ifc.Initialize(true); // Must be first member function called!!!
Ifc.SetMode( SelectedDeviceNo, _SetBridgeMode);
b1 = Ifc.CheckMode ( SelectedDeviceNo,_IsBridgeModeSelected);
Ifc.SetMode( SelectedDeviceNo, _SetMonitorMode);
b1 = Ifc.CheckMode ( SelectedDeviceNo,_IsMonitorModeSelected);
Ifc.SetMode( SelectedDeviceNo, _SetTerminateMode);
b1 = Ifc.CheckMode ( SelectedDeviceNo,_IsTerminateModeSelected);


Codec Functions

This group of functions control Codec features.

Function Name Description
InitializeCodec Initializes codec
SetCodec Sets gain, Rx/Tx timeslots, sets clock to recovered, internal or external, sets CASF
ResetCodec Resets to BER
GetCodec Queries gain, timeslot and BER settings
EnableCodec Enables speaker, VF transmit, and drop insert
DisableCodec Disables speaker, VF transmit, and drop insert
SetCodecInterfaceLatch Sets Codec interface latch
ResetCodecInterfaceLatch Resets Codec interface latch
CheckCodecTxRxLatch Checks interface latch status for Tx or Rx

Example:


GlComInterface Ifc; // Device driver interface object
Ifc.Initialize(false); // Must be first member function called!!!
/*****************************************************/
/* Get current settings for the current device */
/*****************************************************/
TxTs = Ifc.GetCodec(DevNo, _GetTxTimeslot); // Read this setting from driver
RxTs = Ifc.GetCodec(DevNo, _GetRxTimeslot); // Read this setting from driver
RxGain = Ifc.GetCodec(DevNo, _GetGainForVfRx); // Read VF gain for Rx
TxGain = Ifc.GetCodec(DevNo, _GetGainForVfTx); // and TX
bSpeaker = Ifc.CheckCodec(DevNo,_IsSpeakerOn );
bInsert = Ifc.CheckCodec(DevNo,_IsVfTxOn );
Ifc.DisableCodec(DevNo, _TurnOffSpeaker); // If was On set Off
Ifc.EnableCodec(DevNo, _TurnOnSpeaker); // If was Off set On
Ifc.DisableCodec(DevNo, _TurnOffVfTx); // If was On set Off
Ifc.EnableCodec(DevNo, _TurnOnVfTx); // If was Off set On
Ifc.SetCodec( DevNo, _SetRxTimeslot,(BYTE)timeslot );
Ifc.SetCodec( DevNo, _SetTxTimeslot,(BYTE)timeslot );
Ifc.SetCodec( DevNo, _SetGainForVfRx,(BYTE)gain );
Ifc.SetCodec( DevNo, _SetGainForVfTx,(BYTE)gain );


Port Input/Output Functions

This group of functions control the reading and writing to 82c55's A, B and C hardware ports.

Function Name Description
ReadPort Reads from a port
WritePort Writes to a port

Example:


GlComInterface Ifc; // Device driver interface object
Ifc.Initialize(false); // Must be first member function called!!!
BYTE SelectedDeviceNo = 1;
. . .
for (cPort='A'; cPort <='C';cPort++)
printf('Port%c= %02X ', cPort, Ifc.ReadPort(SelectedDeviceNo, cPort ) );


Register Functions

This group of functions control the reading and writing to hardware registers for driver, framer and codec chips.

Function Name Description
ReadRegister Reads from a register
WriteRegister Writes to a register

Example:


try
{
GlComInterface Ifc; // Device driver interface object
Ifc.Initialize(false); // Must be first member function called!!!
...
for (;;)
{
for (i=0; i < 8; i++)
printf('Frm%X=%02X Drv%X=%02X RxC%X=%02X TxC%X=%02X\n',
i, Ifc.ReadRegister( SelectedDeviceNo,IoCtlCode, (BYTE)i ),
i, Ifc.ReadRegister( SelectedDeviceNo,_DrReadRegister, (BYTE)i ),
i, Ifc.ReadRegister( SelectedDeviceNo,_ReadRxAudioRegister, (BYTE)i ),
i, Ifc.ReadRegister( SelectedDeviceNo,_ReadTxAudioRegister, (BYTE)i ) );
for (i=8; i < 11; i++)
printf('Frm%X=%02X RxC%X=%02X TxC%X=%02X\n',
i, Ifc.ReadRegister( SelectedDeviceNo,IoCtlCode, (BYTE)i ),
i, Ifc.ReadRegister( SelectedDeviceNo,_ReadRxAudioRegister, (BYTE)i ),
i, Ifc.ReadRegister( SelectedDeviceNo,_ReadTxAudioRegister, (BYTE)i ) );
for (i=11; i < 16; i++)
printf('Frm%X=%02X\n',
i, Ifc.ReadRegister( SelectedDeviceNo,IoCtlCode, (BYTE)i ) );
}
}


Buffer Functions

This group of functions control the software buffers. Some of these buffers are used by the device driver and therefore these functions should be used carefully.

Function Name Description
GetRxGlobalBuffer0 Get driver global receive buffer0 pointer (obsolete)
GetRxGlobalBuffer1 Get driver global receive buffer1 pointer (obsolete)
GetTxGlobalBuffer0 Get driver global transmit buffer0 pointer (obsolete)
GetTxGlobalBuffer1 Get driver global transmit buffer1 pointer (obsolete)
GetGlobalBufferSize Returns receive/transmit global buffers' size.
GetActiveTxSoftBuffer Returns running count of transmit software buffers
GetActiveRxSoftBuffer Returns running count of receive software buffers
GetMultiRxGlobalBuffer0 Get driver global receive buffer0 pointer for a device
GetMultiRxGlobalBuffer1 Get driver global receive buffer1 pointer for a device
GetMultiTxGlobalBuffer0 Get driver global transmit buffer0 pointer for a device
GetMultiTxGlobalBuffer1 Get driver global transmit buffer1 pointer for a device
GetActiveRxBufPtr Get active global receive buffer pointer
GetActiveTxBufPtr Get active global transmit buffer pointer
GetPrevRxBufPtr Get inactive global receive buffer pointer
GetPrevTxBufPtr Get inactive global transmit buffer pointer
GetRxActiveBufferNumber Get sequence number of the active receive global buffer
GetTxActiveBufferNumber Get sequence number of the active transmit global buffer
GetRxActiveBufferOffs Current driver position in the active global receive buffer
GetTxActiveBufferOffs Current driver position in the active global xmit buffer
FillTxGlobalBuffers Fills transmit buffers with idle code or idle byte strings

Example:


try
{
GlComInterface Ifc; // Device driver interface object
Ifc.Initialize(false); // Must be first member function called!!!
...
if ( bSendIdle )
for( i = 0 ; i < NoOfSamplesPerTs; i++ )
{
pTempBuf = Ifc.GetMultiTxGlobalBuffer0(SelectedDeviceNo-1) + i*NoOfChannels + StartTs;
memset( pTempBuf , Ifc.GetIdleCode(),TsCount );
pTempBuf = Ifc.GetMultiTxGlobalBuffer1(SelectedDeviceNo-1) + i*NoOfChannels + StartTs;
memset( pTempBuf , Ifc.GetIdleCode(),TsCount );
}
}


Driver Functions

This group of functions control the device driver service functions for the GL Communications cards.

Function Name Description
EnableDrInterruptEvents Enables device driver event notification
DisableDrInterruptEvents Disables device driver event notification
GetDr Queries driver information, equalizer control, line length, inband network loop setup, Rx line attenuation, jitter attenuation
CheckDr Checks if one of the following is set: LOS , network loop, AIS, DFMO, ES overrun, ES underrun, driver open, BIST, 12dB, 26dB or 36dB equalizer gain, analog, remote, local or network loopback is set,

Transmit all ones is set, Rx monitor mode is selected or whether built-in self test is active

SetDr Controls equalizer, sets 12dB, 26dB or 36dB equalizer gain
EnableDr Enables analog, remote, local or network loopback, enables network loopback detect, sets transmission all ones, enables inbound network loopback up/down, enables Rx monitor mode
DisableDr Disables jitter attenuation, disables analog, remote, local or network loopback, disables network loopback detect, resets transmission all ones, disables inbound network loopback up/down
ResetDrRegisters Resets driver registers
CheckDrJitter Checks is driver jitter is set to 3Hz or 6Hz, whether jitter attenuation is enabled, whether jitter attenuation is set on Rx or Tx
SetDrJitter Sets jitter to 3Hz or 6Hz, sets jitter attenuation on Rx or Tx
DrvGetNoOfDevicesInstalled Returns number of cards installed and configured

Example:


try
{
GlComInterface Ifc; // Device driver interface object
Ifc.Initialize(true); // Must be first member function called!!!
bRet = Ifc.CheckDr(SelectedDeviceNo, _DrIsNLoopPerStatusSet);
bRet = Ifc.CheckDr( SelectedDeviceNo, _DrIsEsOvrTransitionSet );
bRet = Ifc.CheckDr( SelectedDeviceNo, _DrIsEsUnTransitionSet );
bRet = Ifc.CheckDr( SelectedDeviceNo, _DrIsLosPerStatusSet );
bRet = Ifc.CheckDr( SelectedDeviceNo, _DrIsLosPerStatusSet );
bRet = Ifc.CheckDr( SelectedDeviceNo, _DrIsAisPerStatusSet);
Ifc.EnableDr( SelectedDeviceNo, _DrEnableLocalLoopback);
Ifc.DisableDr( SelectedDeviceNo, _DrDisableLocalLoopback);
Ifc.EnableDr( SelectedDeviceNo, _DrEnableRemoteLoopback);
Ifc.DisableDr( SelectedDeviceNo, _DrDisableRemoteLoopback);
}


Framer Functions

This group of functions control framing attributes.

Function Name Description
CheckFr T1 and E1 Checks whether: error counter is saturated, autoresync is enabled, local framer loopback is active, T1 only. Checks whether: resync is in progress, blue and/or yellow alarm is detected, B8ZS or COFA is on, frame error is detected, carrier loss is detected, bipolar violation counter is saturated, zero suppression B7 is set, TxB8ZS is active, D4 yellow allarm S bit is set, ESF yellow alarm FDL is set, Rx COFA detect is selected, D4 or ESF is selected, SLC96, T1DM are selected, resync algo10Bits set, resync is using FT bits, OOF criteria is 2of4, resync OOF is on, TX yellow and/or blue alarms are enabled, external S bit is enabled, FF or 7F is Tx idle code, robbed bit signal is enabled, external CRC is enabled, external FT FPS is enabled, outdata NRZ is selected, a channel is selected for Tx idle code, channel is selected for transparent, Rx channel is selected for code insert. E1 only. Checks whether: receive loss of sync, CAS multiframe resync, frame resync, receive unframed all ones, receive signaling all ones, Tx/Rx DMA is set, receive remote alarm, Rx/Tx CCS or CAS mode selected, resync criteria is fixed, CAS MF resync criteria is fixed, CAS multiframe sync criteria is fixed, Rx/TX CRC4 and HDB3 are enabled, Tx multiframe starts with FAS, Tx 100 or 50 duty cycle, Tx signaling all ones, Tx extra, national or international bits are set, external signaling bits are set, unframed all ones, Tx remote alarm is set.
CheckFrTimeslotSelectedForTxIdleCode Checks if timeslot is selected for Tx idle code
DisableFrInterrupts Masks all interrupts, interrupts only or interrupts specified by a mask
EnableFrInterrupts Unmasks all interrupts, interrupts only or interrupts specified by a mask
GetFr Reads receive status register (RSR) or interrupt mask register (IMR)
GetFrErrorCounter T1 and E1 Retrieves bipolar error counter T1 only Retrieves out of frame and errored superframe counters E1 only Retrieves CRC4 and frame error counters
EnableFr T1 and E1 Enables autoresync, local loopback T1 only Enables TxB8ZS, yellow and blue alarms, external S bit, robbed bit signal, external CRC, external FT FPS. E1 only Enables Tx/Rx CRC4 and HDB3, Tx signaling all ones, Tx extra, national and international bits, external signaling bits, unframed all ones, Tx remote alarm, Tx DMA and multiframe start with FAS
DisableFr T1 and E1 Disables autoresync, local loopback T1 only Disables TxB8ZS, yellow and blue alarms, external S bit, robbed bit signal, external CRC, external FT FPS. E1 only Disables Tx/Rx CRC4 and HDB3, Tx signaling all ones, Tx extra, national and international bits, external signaling bits, unframed all ones, Tx remote alarm, Tx DMA and multiframe start with FAS
SetFr T1 Only Sets zero suppression B7, zero suppression transparent, OOF criteria 2of4 or 2of5 E1 Only Rx/Tx CCS or CAS mode, CAS multiframe sync criteria fixed or not fixed
SelectFr T1 Only Selects yellow alarm D4 B2 or S bit, or yellow alarm ESF FDL or S bit, D4/ESF, SLC96, T1DM, Tx idle code 7F or FF, out data unipolar, outdata NRZ E1 Only Tx 100 or 50 duty cycle
DeselectFr T1 Only Deselects all channel for Tx idle code, all channels for transparent, all Rx channels for code insert E1 Only Deselects all timeslots for Tx idle codes
SelectFrTimeslot T1 and E1 Selects channel for Tx idle code T1 Only Selects channel for transparent or code insert.
DeselectFrTimeslot T1 and E1 Deselects channel for Tx idle code T1 Only Deselects channel for transparent or code insert.
DetectFrRx T1 Only Detects Rx B8ZS or COFA
ResyncFr T1 and E1 Causes forced resync T1 Only Resyncs: Algo10 or Algo24 bits, using FT bits, using FT FA bits, on OOF or OOF RCL E1 Only Resyncs with criteria fixed or not fixed, or CAS multiframe criteria fixed or not fixed
EnableUnframedInput Enables unframed input
DisableUnframedInput Disables unframed input
SetFrBits E1 Only Sets Tx national, international or extra bits
GetFrBits Retrieves Tx national, international or extra bits

Example:


GlComInterface Ifc; // Device driver interface object
Ifc.Initialize(false); // Must be first member function called!!!
BYTE DevNo = 1;
. . .
#if defined (T1)
FrameErrors = _Ifc.GetFrErrorCounter(DevNo, TfrGetErroredSuperFrameCounter );
#else //if defined (E1)
FrameErrors = Ifc.GetFrErrorCounter(DevNo, _EfrGetFrameErrorCounter );
#endif


Bit Error Rate Functions

Function Name Description
LoadStaticBerIntFpga Loads static BER pattern
ReadBerErrXlinx Gets number of logic errors
InsertBerError Inserts single or bipolar violation error
SetBerTxRx Selects Tx or Rx to read number of errors
ResetBerTxRx Resets Tx or Rx BER
LoadBerStaticPattern Loads static BER pattern

Example:


GlComInterface Ifc; // Device driver interface object
Ifc.Initialize(false); // Must be first member function called!!!
BYTE _DevNo = 1;
. . .
#ifdef T1
DWORD IoCtlCode = _TfrIsResyncInProgress;
#else
DWORD IoCtlCode = _EfrIsReceiveLossOfSync;
#endif
if (Ifc.CheckFr( _DevNo, IoCtlCode))
{
if (Ifc.CheckDr( _DevNo, _DrIsLosTransitionSet) )
_bT1Carrier = false;
else
_bT1Carrier = true;
if (_bUnframed == true)
{
#if defined(T1)
Ifc.SetBerTxRx( _DevNo, _SelectRxBer);
Ifc.ReadBerErrXlinx( _DevNo ); //Clear Error Counter after Resync
#endif
}
else if ( !_bT1Carrier )
{
_bPattern = false;
Ifc.SetBerTxRx( _DevNo, _SelectRxBer);
Ifc.ReadBerErrXlinx( _DevNo ); //Clear Error Counter after Resync
bT1Sync = false;
_bPatternLossInThisSec = true;
}
}


Timeslot Functions

This group of functions sets timeslot relevant attributes. The timeslot parameters are usually 0-23 for T1 and 0-31 for E1.

Function Name Description
EnableTs Enables or disables a timeslot for selected device
EnableTsAll Enables or disables all timeslots for selected device
CheckTsAvailable Checks whether a timeslot is enabled for selected device
CheckTsAllAvailable Checks whether all timeslots are enabled for selected device
SaveTsStatus Saves timeslot status for selected device
RestoreTsStatus Restores timeslot status for selected device
WriteTsAssigner Specifies start or end timeslot
WriteTsAssignerRange Specifies start and end timeslots, i.e. range of timeslots
EnableMultiTs Enables or disables a timeslot for a device
EnableMultiTsAll Enables or disables all timeslots for a device
CheckMultiTsAvailable Checks whether a timeslot is enabled for a device
CheckMultiTsAllAvailable Checks whether all timeslots are enabled for a device
SaveMultiTsStatus Saves timeslot status for a device
RestoreMultiTsStatus Restores timeslot status for a device

Example:


GlComInterface Ifc; // Device driver interface object
Ifc.Initialize(false); // Must be first member function called!!!
BYTE DevNo = 1;
. . .
for (int i = 0; i <= (NoOfChannels-1);i++)
{
if ( Ifc.CheckMultiTsAvailable(DevNo, i) )
SetCheckButtonChecked(i);
}


Pattern File Functions

These functions are used to control Xlinx pattern files.

Function Name Description
GetDefaultPatternFileName Retrieves default pattern file name
SetDefaultPatternFileName Sets default pattern file name
GetCurrentPatternFileName Retrieves current pattern file name
SetCurrentPatternFileName Sets default pattern file name
GetDefaultPpPatternFileName Retrieves default PP pattern file name
SetDefaultPpPatternFileName Sets default parallel port pattern file name (EPP.BIN)

Example:


try
{
GlComInterface Ifc; // Device driver interface object
Ifc.Initialize(true); // Must be first member function called!!!
...
#ifdef CARD_V3
Ifc.SetDefaultPatternFileName('T1PASS.BIN');
#else
Ifc.SetDefaultPatternFileName('LTPASS.BIN');
#endif
}
catch (GlComExceptions except)
{
...
}


Stream I/O Functions

The stream object introduced in the API library v1.1 makes reading and writing from the T1 E1 channels as easy as accessing disk file. This group of functions allows:

  • Sending and receiving data in blocking and non-blocking mode
  • Accessing full frame (all the channels) or a group of channels specified by mask. The channels do not have to be consecutive
  • Enable transmission of a stream or packets interleaved by idle or special code in a single or multiple channels

This group of function can be used for simulating delays, channel switching, data recording and playing etc.

Function Name Description
BioStream Initialize and set read/write channel masks
SetReadChannelMask Sets channel mask to read
SetWriteChannelMask Sets channel mask to write
SetReadSafeMarginMultiFrames Sets safe margins for reading
SetWriteSafeMarginMultiFrames Sets safe margins for writing
SetReadSafeMarginBytes Sets safe margins for reading
SetWriteSafeMarginBytes Sets safe margins for writing
GetReadMissedBytesCount Bytes missed when client application is too slow
GetWriteMissedBytesCount (Non-blocking only) when client application is too fast
Reset Resets current position and counters
Read Reads T1 E1 channel(s) data
Write Writes T1 E1 channel(s) data
ReopenRead Reopens receave stream
ReopenWrite Reopens transmit stream
Reopen Reopens both receive and transmit streams
FillTxChannels Fills channels with idle code or idle byte string

Example:


// Receive and retransmit received data
GlComInterface Ifc; // Device driver interface object
Ifc.Initialize(true );
.
BioStream Bs(&Ifc, SelectedDeviceNo, 0xC0000000 ); // Use channels 1 and 2
DWORD WriteSize = 12*24;
BYTE Buf[65536];
DWORD XmitLen;
Bs.SetWriteSafeMarginBytes( 16*WriteSize);
Bs.SetReadSafeMarginBytes( 0 );
for(;;)
{
try
{
XmitLen = Bs.Read( Buf, WriteSize,true );
Bs.Write( Buf, XmitLen, true, true);
}
catch (GlComExceptions exception)
{
printf( '%s missed %d ', GetExceptionDescription(exception ),
Bs.GetWriteMissedBytesCount() );
Bs.Reopen();
}
}


Miscellaneous Functions

Function Name Description
GlcEnableDbgMsg Enables/Disables built-in error diagnostic in DEBUG builds
CheckGlcEnableDbgMsg Checks if built-in error diagnostic in DEBUG builds is enabled
GlcMsg Displays error message box with parameter list similar to printf
GlcDebugMsg Same as GlcMsg but works only for the DEBUG builds
GlcCriticalMsg DEBUG: displays error message box and throws an exception with the last system error 

throw (DWORD)GetLastError()

RELEASE: throws the exception only

GlcGetLastErrorMsg Get textual description of the API internal errors
DisplayError In DEBUG builds displays the error message box and optionally throws an exception (controlled by parameter)
GetExceptionDescription Returns textual description of internal API library exceptions
GetApiVersion Gets API library version
GetVersion Gets the device driver version
SetOnHook Set on-hook or off-hook

Example:


if ((ConfigFile = fopen('HARDWARE.CFG','rt')) == NULL)
{
char szFullFilename[MAX_PATH]='';
GetCurrentDirectory(MAX_PATH, (LPTSTR)szFullFilename);
strcat(szFullFilename,'\\HARDWARE.CFG');
GlcDebugMsg( pszFuncName, 'Cannot open %s file', (LPCTSTR)szFullFilename );
bIsValid = false;
}


Resources

Please Note: The XX in the Item No. refers to the hardware platform, listed at the bottom of the Buyer's Guide, which the software will be running on. Therefore, XX can either be ETA or EEA (Octal/Quad Boards), PTA or PEA (tProbe Units), XUT or XUE (Dual PCIe Express) depending upon the hardware.


Item No. Item Description
XX010 Application Development Toolkit for Windows® OS (Programmer's Manual)
Develop applications for T1 or E1 Products for Windows® Platforms; tProbe™ T1 E1 Analyzer; Requires C++ dev skills
XX011 Application Development Toolkit for Linux
Develop applications for T1 or E1 Products for Linux Platforms; Requires C++ dev skills
  Related Hardware
PTE001
PTA001
PEA001
tProbe™ T1 E1 Base Unit
tProbe™ Basic T1 Software
tProbe™ Basic E1 Software
Brochures
API Tool Kit

Back to List of T1 E1 Basic and Optional Applications Index Page Back to List of T1 E1 Basic and Optional Applications Index Page