PeRT3 Software Interface Version 1.
Contents General .......................................................................................................................................................... 4 Frequently Asked Questions ......................................................................................................................... 4 Linking ......................................................................................................................................................
How does LCPeRT_GetStats or LCPeRT_GetChannelStats work?....................................................... 11 Miscellaneous ......................................................................................................................................... 11 What units are used? ........................................................................................................................... 11 Do you have a sample Python script using Python ctypes facility? .............................
General PeRT3 automation API is packaged as a C-interface windows DLL similar to an IVI-driver. The DLL and a header file describing the interface are installed when you install the PeRT3 package. Beginning with version 1.4, there is both a 32-bit and 64-bit version of the DLL. The API is a set of C standard functions exported from a windows DLL. The DLL and .
support an arbitrary number of driver DLL's for different devices which you don't know about at compile time. Statically linking doesn't require any extra code, but it does require you have the DLL in advance. The simplest way to statically link to a DLL is to include the corresponding .lib file when you link. The .lib file is created by the linker when the DLL is created. In order to work with PeRT3 add LCPeRT.lib as an additional library to the linker and it should link without an error.
“127.0.0.1” is the IP address of the host pc that the hardware is plugged into. The software should be installed on that pc and you should verify that it is running. If your test executive is running on the same pc, then “127.0.0.1” is the loopback address and should work provided there is no problem with firewall settings on that pc.
its name, it hasn't been saved yet. Either hit the save button on the library window or close the script editor and say "yes" when prompted to save it. The LCPeRT_GetScriptCountError! Bookmark not defined. and LCPeRT_GetScriptNameError! Bookmark not defined. functions can be used to enumerate the names of scripts in the PeRT3 database. Patterns How do I specify a pattern? The pattern needs to be in the PeRT3 database in order to select it.
There are 4 loopback sequence options: o USB 3.0 Disconnect Support - switches when the test is started, after training is complete. o USB 3.0 No Disconnect Support - Switches during training -- this is the default behavior. o USB 3.0 High Speed Path Only - switch to the jitter injection path prior to LFPS polling or training.
o o Initialize a USB 3.0 device into loopback using the handshake with timeout and warm reset mode, and "Disconnect Support" options,and count errors using the devices internal error counter LCPeRT_ConnectToDUTWithOptions(session, LCPERT_INIT_MODE_LOOPBACK, LCPERT_INIT_OPTION_USB3_WITH_TIMEOUT, LCPERT_INIT_COUNT_INTERNAL_DUT_COUNTER, "USB 3.
What size string buffers do I pass in? Most of the functions that fill in a character buffer follow the (... ViInt32 xxxxBufferSize, ViChar xxxx[]...) convention where the xxxxBufferSize gives the size of the buffer that is passed in. The functions that don't follow that convention have buffer sizes that are dictated by the IVI spec. Generally these need to be at least 256 bytes long.
How does LCPeRT_GetStats or LCPeRT_GetChannelStats work? Call LCPeRT_GetStats() or LCPeRT_GetChnlStats() after LCPeRT_Run() returns or after calling LCPeRT_Stop() to get the final results, or after LCPeRT_Start() to get intermediate results. Miscellaneous What units are used? Units are documented in the LCPeRT.h header file. They are basically the same as the units displayed in the user interface.
The software sets everything to default values, when it first connects to the hardware. That happens when the session is started so everything theoretically should be the same when you start up. Why can’t I select “Generator Only” Protocol? There isn't actually any such thing as "Generator Only" protocol. When you select "Generator Only" in the user interface you are actually selecting "custom" protocol and telling the application that you just want to generate a signal and don't care about a return signal.
Index 1: Implemented functions LCPeRT_init LCPeRT_InitWithOptions LCPeRT_close LCPeRT_error_query LCPeRT_error_message LCPeRT_RunTestScript LCPeRT_ConfigurePeRT LCPeRT_ConnectToDUT LCPeRT_DisconnectDUT LCPeRT_GetChannelName LCPeRT_SetAmplitude LCPeRT_SetBias LCPeRT_SetPreEmphasisAmp LCPeRT_SetPreEmphasisDur LCPeRT_SetLowFreqRandomJitter LCPeRT_SetHighFreqRandomJitter LCPeRT_SetLowFreqRandomJitter LCPeRT_SetPeriodicJitterMagnitu
o LCPERT_ATTR_VALIDATE_SAS_FRAMES o LCPERT_ATTR_VALIDATE_SATA_FRAMES o LCPERT_ATTR_INSERT_SATA_ALIGNS o LCPERT_ATTR_INSERT_USB_SKPS LCPeRT_SetAttributeViInt32 for attributes: o LCPERT_ATTR_USB_SKP_FREQUENCY LCPeRT_GetAttributeViBoolean for attributes: o LCPERT_ATTR_VALIDATE_SAS_FRAMES o LCPERT_ATTR_VALIDATE_SATA_FRAMES o LCPERTATTR_INSERT_SATA_ALIGNS o LCPERT_ATTR_INSERT_USB_SKPS LCPeRT_GetAttributeViInt32 for attributes: o LCPERT_ATTR_CHANNEL_COUNT o LCPERT_ATTR_USB_SKP_FREQUENCY
Index 2: Non Implemented Functions These functions just return non-implemented: LCPeRT_SetAttributeViReal64 LCPeRT_SetAttributeViSession LCPeRT_SetAttributeViString LCPeRT_SetAttributeViInt64 LCPeRT_GetAttributeViReal64 LCPeRT_GetAttributeViSession LCPeRT_GetAttributeViInt64 LCPeRT_self_test LCPeRT_reset LCPeRT_ResetWithDefaults LCPeRT_Disable LCPeRT_revision_query LCPeRT_GetError LCPeRT_ClearError LCPeRT_LockSession LCPeRT_UnlockSession LCPeRT_GetNextCoercionRecord