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