3 sending gcf streams over a serial link – Guralp Systems CMG-DM24 User Manual
Page 110
![background image](https://www.manualsdir.com/files/788438/content/doc110.png)
CMG-DM24
Recovering missing data
Because the UDP packets have sequence numbers, the client can
detect when a packet has been lost. To recover this data, it initiates a
TCP connection to the server, on the same port number. If the server
accepts the connection, the client sends a single-byte command to the
server. The commands available are:
0xf9 (249) : Requests the server to use TCP only when communicating
with this client. Subsequent GCF data packets will be sent over the
active TCP connection, with the same format as the normal UDP
packets.
This feature is supported by the server in Scream! 4.0 and above.
0xfc (252) : Requests a version string, returned in PASCAL format
(i.e. first octet = length, remainder = null-terminated string)
0xfe (254) : Requests the oldest sequence number held by the server.
The sequence number is returned as 2 octets in big-endian byte order
0xff (255) sequence-number : Requests a block by sequence
number. The block is returned on the TCP connection in one of the
above formats. If the block is not available, the server returns 0xff
0xff 0xff 0xff. The sequence number is 2 octets long, with big-
endian byte order.
When the client has all the blocks it needs, it is free to close the
connection.
7.3 Sending GCF streams over a serial link
Before it can be sent over a serial link, each GCF data block must be
packaged in a 'transport layer', which consists of a 4-byte transmission
header and a 2-byte checksum tail.
The transport layer
The transmission header consists of 4 bytes:
1
2
3
4
ASCII G (0x47)
Block sequence
number
Block size (MSB)
Block size (LSB)
110
Issue N