|
ProtoCore v0.0.1
Deterministic, zero-heap network stack for embedded targets
|
Layer: L7 Application ยท Build flags: PC_ENABLE_HISLIP
HiSLIP (High-Speed LAN Instrument Protocol, IVI-6.1) is VXI-11's higher-throughput successor and the current LXI transport for LAN test instruments. It carries SCPI over two TCP connections to port 4880 - a synchronous channel (the ordered SCPI command/response stream) and an asynchronous channel (out-of-band control: lock, status/SRQ, device-clear) - correlated by a 16-bit SessionID from the handshake. services/hislip is a pure codec: it builds and parses the fixed 16-byte message header and the handshake / data messages; the sketch owns the two sockets.
Every message is a 16-byte header ("HS" + message type + control code + 32-bit MessageParameter + 64-bit PayloadLength, all big-endian) optionally followed by a payload:
The second channel binds to the same session, then SCPI flows as Data / DataEND messages keyed by a MessageID:
The full HislipMsg message-type enum (0-38, including the HiSLIP 2.0 TLS / SASL types), the header byte layout, and the MessageID rule are verified against IVI-6.1. Pair with PC_ENABLE_SCPI to build / parse the SCPI payloads themselves (see the Scpi example).
Point INSTRUMENT_IP at anything that speaks HiSLIP on TCP 4880: a real LXI instrument, a Python pyvisa setup with a HiSLIP server, or the PyHiSLIP reference server for a dry run.
Flash and watch Serial @ 115200:
The complete sketch is HiSlip.ino. The codec itself is in src/services/instrumentation/hislip/hislip.h; the header layout, message-type codes, and handshake vectors are verified against the IVI-6.1 HiSLIP 2.0 specification (cross-checked with the Wireshark dissector, MSL-equipment, and PyHiSLIP).