Test Tools for HiSLIP

(Please do not reference or make links to this website.)

Update:

2011/03/06 (V3.14): HiSlipServer.exe and HiSlipRandomTest.zip
 - HiSlipServer.exe: Should be stable enough now to survive the random test for several hours.
   Exclusive Locks work correct. (Shared Locks can fail in stress situations) 
 - HiSlipRandomTest: Some random sleeps and suppressing of EventHandler while polling the Event Queue.

2011/02/28 (V3.13): HiSlipServer.exe and HiSlipRandomTest.zip
 - For the open/close test, the red error messages are reduced if client supports graceful shutdown.
 - Extensions in Open/Close test of HiSlipRandomTest.zip

2011/02/25 (V3.12): HiSlipServer.exe
 - bugfix: server now aborts long output if Interrupted Error is detected.

2011/02/24 : Small fixes of HiSlipRandomTest.zip

2011/02/21 (V3.11): HiSlipServer.exe + new HiSlipRandomTest.zip
 - additional option: -b  : simulates blocking unlock. (error handling is not correct if client violates rule)
 - supports graceful closing now
 - additional commands to generate SRQ. ( *SRE[?], *ESE[?], *ESR? )
 - new command DIAG:ARM:SRQ for diagnostic purpose to check robustness of clients. Generates an SRQ when an <Async...> message is received. 
 - several fixes (e.g. handling device clear)
 - checks correct numbers of MessageIDs and checks superflous RMT-deliverred flags.

2010/12/03 (V3.04): HiSlipServer.exe
 - fragmented messages are read correctly now.
 - interrupted transactions are sent to the client according to spec 3.1.1.

2010/11/29 (V3.03): HiSlipServer.exe accepts additional options:
  -p <portno>  : to specifiy the listening port. Port 4880 is default
  -s     : enables a special slowmode to test the robustness of a client. Messages are sent byte by byte.
  -v     : verbose mode on. If verbose mode is off, only detected errors are shown.
  -1    : allows only one connection. Try this to check the error code of your client if connection fails.

2010/11/23 (V3.02): HiSlipServer.exe
  - If the client closes the control channel, the data channel is aborted after 10 seconds if it hangs or is locked.
  - The locks of a connection are removed automatically when the connection is closed.
  - The internal lock state is correct now when the client opens a new connection.

2010/11/04 (V3.01): HiSlipServer.exe: lock count fixed in <AsyncLockInfoResponse>

2010/11/04 (V3.00): SCPI command mmem:data of server fixed. The test application now includes improvments from TRF (AG). Some cruel client tests are added :-).

2010/05/30 (V2.99): Server supports overlap mode and correct lock/unlocking. The test script now checks the new VISA 5.0 attributes, overlap mode, and more cruel locking tests.

1. Test-Server

Here is a tiny HiSLIP server to verify interoperability with other HiSLIP clients: HiSlipServer.exe

The parser is not a real SCPI parser, but the following commands (case insensitive) works with or without \n terminator. A semicolon can be used to create compound queries.

Command line options:

  -p <portno>  : to specifiy the listening port. Port 4880 is default
  -s     : enables a special slowmode to test the robustness of a client. Messages are sent byte by byte.
  -v     : verbose mode on. If verbose mode is off, only detected errors are shown.
  -1    : allows only one connection. Try this to check the error code of your client if connection fails.
  -b    : simulates blocking unlock, otherwise non-blocking unlock. (error handling is not correct if client violates rules)

Supported commands:

*IDN?
SYST:ERR?  - can return query interrupted or unknown command error. (:syst:err? and err? are now allowed, too)
*CLS
*SRE[?] <register>  - Service Request Enable Register. Can invoke SRQ for bit 2 (ErrorEvent), 4 (MAV), 5 (ESR)
*ESE[?]  - Event Status Enable Register. Bit 0 = Operation Complete for *OPC.
*ESR?    - Event Status Register
*STB?    - returns Status Byte Register

SLEEP <time in ms>
MMEM:DATA “filename”, #...  - sends a file name with
MMEM:DATA? “filename” – returns file data with 488.2 block format.
*OPC – sets bit 0 of ESR (Event Status Register)
*OPC? – returns "1\n"
DIAG:ARM:SRQ - For diagnostic purpose to check robustness of clients. Generates an SRQ when an <Async...> message is received.

Note:

2. Basic Tests for HiSLIP Protocol

The following VS2005 (C++) project includes a simple test script for VISA clients to verify the basics of the HiSLIP protocol. HiSlipBasicTest.zip
To verify robustness of VISA clients, this random test should run at least 24h: HiSlipRandomTest.zip

Please feel free to use or modify the project. Any comments and bug reports are welcome at hislip@kiener-muenchen.de !

Regards,

Guido