spectcldaq.server -- TCP/IP server of ring data in spectrodaq format.


spectcldaq.server ring-url port


The spectrodaq data acquisition system has a server component that allowes data to be hoisted out of the data acquisition systems to systems that don't run NSCLDAQ. One use of this is to provide data to the S800 Mac OS-X computer in datau-6. spectcldaq.server, provides this functionality for the ring buffer system in spectrodaq compatibility mode.

In spectrodaq, because the data distribution system was global it was possible to run the server from the inetd super server. Because in the ring buffer system it is possible for several data distribution paths to run simultaneously, this is no longer possible for the ring buffers data acquisitino system. Users that intend to hoist data to non NSCLDAQ systems must therefore start the server prior to forming the first client connection.

The server itself is a very small Tcl script that, on receiving a connection sets up the same pipeline that spectcldaq sets up.



Specifies the URL of the ring buffer from which the server will set up pipelines. The URL is of the form tcp://hostname/ringname. hostname is the host in which the data source is running. If the data source is running in the same host as the server use localhost. ringname is the name of the ring in which the data are being put by the readout program. By default this is your username.


The port on which you want the server to listen for connections. This must be a port on which nothing else is listening for connections. It should be greater than 1024 and should not be in the range 30000-31000 as those ports are managed by the NSCLDAQ port manager name service.



Specifies the buffer size in bytes. If not defined this defaults to 8192


The first example starts the server so that it can pipe data from the local system's ring named after the logged in user. we will use the port 1100 for our example.

Example 1. Running spectcldaq.server

$DAQROOT/bin/spectcldaq.server tcp://localhost/`whoami` 1100

The second example is a Tcl proc that uses the source in the first example to provide data for a pipe data source. This depends on the existence of a widely distributed program called netcat.

Example 2. Connecting to spectcldaq.server

proc attnet {host port} {
    attach -pipe netcat $host $port