User Tools

Site Tools


lbaops:mark5evlbi

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
lbaops:mark5evlbi [2010/12/21 11:29]
chris.phillips
lbaops:mark5evlbi [2015/12/18 16:39] (current)
Line 1: Line 1:
-======  Mark5 control commands ======+======  Mark5B disk data format ======
  
 +Taken from Mark5B System User's Manual (9 June 2006) Section 5.
  
-=====  Mark5 Control commands =====+Data on disk is divided into equal-length disk frames (DF). Each DF has a header of 4 32-bit words followed by 2500 32-bit words of data (10000 bytes). The DF boundary is aligned with the UT second tick.
  
-The Mark5A protocol uses two TCP ports:+===== Disk Frame Header =====
  
-  *  m5data          2630/tcp                        # Mark5 data +| Word 0  |Synchronization word (//0xABADDEED//) | 
-  *  m5drive         2620/tcp                        Mark5 control+| Word 1  |Bits 31-16: User specifed | 
 +|          |Bit 15: T - tvg data (test data if set)| 
 +|          |Bits 14-0: DF within second | 
 +| Word 2-3 |VLBA BCD Time code and 16 bit CRC |
  
  
-Commands are sent to the **m5drive** port as newline terminated strings. 
-The replies are newline terminated also. 
  
-Data is sent to the **m5data** port.+| Sync word (32 bit) ||| 
 +| User-specifed (16 bits) | T | Frame# within second (starting at 0) | 
 +| VLBA BCD Time code word 1 ('JJJSSSSS') ||| 
 +| VLBA BCD Time code word 2 (16 bit) ('.SSSS') | CRC 16 bit ||
  
-The following commands from the Mark5A command need to be sent to the Mark5 at the station:+==== Disk Data Format ====
  
-  *  play_rate +Raw VLBI data is packed within a 32 bit word, with the earliest time sample corresponding to the least significant bit.
-  *  play +
-  *  play? +
-  *  net_protocol +
-  *  in2net +
-  *  mode +
-  *  status? +
-  *  mtu+
  
-A typical session would involve the following commands being sent:+======  Mark5 control commands ======
  
-->''mtu=9000''  (if UDP)\\ 
-''net_protocol=udp:8388608:131072:8''\\ 
-''mode=mark4:32''\\ 
-''play_rate=data:16''\\ 
-''ipd=10'' 
-''in2net=connect:145.146.96.21''\\ 
-''in2net=on'' 
- 
-Time passed 
- 
-->''in2net=disconnect'' 
- 
- 
-A more detailed description for the commands issued: 
- 
- 
-=====  play_rate=data:<rate> ===== 
- 
- 
-Used to set the output data rate of the Mark5 at the station.   
- 
-Expected response: 
- 
-[=!=]play_rate = 0 ; 
- 
- 
- 
-=====  play=off ===== 
- 
- 
-Used to make the Mark5 stop playing if it was playing back data from 
-disk.  
- 
- 
-=====  net_protocol=<protocol>:<sockbuf size>:<workbuf size> ===== 
- 
- 
-Used to set the network data-transport protocol.   The <sockbuf 
-size> argument is the socket send buffer size.  You should probably use this value 
-in a setsockopt(..., SOL_SOCKET, SO_SBDBUF, ...) call on the socket 
-used to send the data.  
- 
-Expected response: 
- 
-[=!=]net_protocol = 0 ; 
- 
-=====  mtu=<mtu size> ===== 
- 
-Set the mtu for UDP transfers 
- 
-Expected response: 
- 
-[=!=] !mtu = 0 : $mtu bytes; 
- 
- 
-=====  in2net=connect:<ip> ===== 
- 
- 
-Used to make the Mark5 at the station connect to the Mark5 at JIVE. 
-The <ip> argument will be the IP address of the Mark5 at JIVE, which 
-should at that point be ready to accept a connection from the Mark5 at 
-the station.  The connection should be made to the m5data port. 
-No data will be sent yet. 
- 
-Expected response: 
- 
-[=!=]in2net = 0 ; 
- 
- 
- 
-=====  in2net=on ===== 
- 
- 
-Used to make the Mark5 at the station start sending data. 
- 
-Expected response: 
- 
-[=!=]in2net = 1 ; 
- 
- 
- 
-=====  in2net=disconnect ===== 
- 
- 
-Used to make the Mark5 at the station stop sending data and terminate 
-the (tcp) connection. 
- 
-Expected response: 
- 
-[=!=]in2net = 0 ; 
- 
-=====  in2net=off ===== 
- 
-?? 
- 
-Expected response: 
- 
-[=!=]in2net = 0 ; 
- 
- 
-=====  mode=<data mode>:<data submode> ===== 
- 
-Used to set the playback mode of the Mark5 at the station.   
- 
-Expected response: 
- 
-[=!=]mode = 0 ; 
- 
-=====  status? ===== 
- 
-Used to query the status of the (remote) Mark5.   
- 
-Expected response: 
- 
-[=!=]status? 0 : 0x00000001 ; (when not sending data)\\ 
-[=!=]status? 0 : 0x00010001 ; (when sending data) 
- 
-=====  play? ===== 
- 
-Request play state (disk only??) 
- 
-Expected response: 
- 
-[=!=]status? 0 : 0x00000001 ; (when not sending data)\\ 
-[=!=]status? 0 : 0x00010001 ; (when sending data) 
-=====  Setting TVG test ===== 
- 
-To setup the Mark5 to sent thr TVG test vector, run: 
- 
- mode=tvg:8 
- play_rate=data:4 
- 
-This will send 8 tracks at 4 Mbps, ie a total of 32 Mbps. 
  
 =====  Mark5 Control commands ===== =====  Mark5 Control commands =====
Line 175: Line 40:
 Data is sent to the **m5data** port. Data is sent to the **m5data** port.
  
-The following commands from the Mark5A command need to be sent to the Mark5 at the station:+=====  Mark5 commands =====
  
-  *  play_rate +====  play_rate=data:<rate> ====
-  *  play +
-  *  play? +
-  *  net_protocol +
-  *  in2net +
-  *  mode +
-  *  status? +
-  *  mtu +
- +
-A typical session would involve the following commands being sent: +
- +
-->''mtu=9000''  (if UDP)\\ +
-''net_protocol=udp:8388608:131072:8''\\ +
-''mode=mark4:32''\\ +
-''play_rate=data:16''\\ +
-''ipd=10'' +
-''in2net=connect:145.146.96.21''\\ +
-''in2net=on'' +
- +
-Time passed +
- +
-->''in2net=disconnect'' +
- +
- +
-A more detailed description for the commands issued: +
- +
- +
-=====  play_rate=data:<rate> =====+
  
  
Line 215: Line 53:
  
  
-=====  play=off =====+====  play=off ====
  
  
Line 222: Line 60:
  
  
-=====  net_protocol=<protocol>:<sockbuf size>:<workbuf size> =====+====  net_protocol=<protocol>:<sockbuf size>:<workbuf size> ====
  
  
-Used to set the network data-transport protocol.   The <sockbuf +Used to set the network data-transport protocol.   The <sockbuf size> argument is  
-size> argument is the socket send buffer size.  You should probably use this value+the socket send buffer size.  You should probably use this value
 in a setsockopt(..., SOL_SOCKET, SO_SBDBUF, ...) call on the socket in a setsockopt(..., SOL_SOCKET, SO_SBDBUF, ...) call on the socket
 used to send the data.  used to send the data. 
Line 234: Line 72:
 [=!=]net_protocol = 0 ; [=!=]net_protocol = 0 ;
  
-=====  mtu=<mtu size> =====+====  mtu=<mtu size> ====
  
 Set the mtu for UDP transfers Set the mtu for UDP transfers
Line 243: Line 81:
  
  
-=====  in2net=connect:<ip> =====+====  in2net=connect:<ip> ====
  
  
Line 258: Line 96:
  
  
-=====  in2net=on =====+====  in2net=on ====
  
  
Line 269: Line 107:
  
  
-=====  in2net=disconnect =====+====  in2net=disconnect ====
  
  
 Used to make the Mark5 at the station stop sending data and terminate Used to make the Mark5 at the station stop sending data and terminate
-the (tcp) connection.+the  connection.
  
 Expected response: Expected response:
Line 279: Line 117:
 [=!=]in2net = 0 ; [=!=]in2net = 0 ;
  
-=====  in2net=off =====+====  in2net=off ====
  
 ?? ??
Line 288: Line 126:
  
  
-=====  mode=<data mode>:<data submode> =====+====  mode=<data mode>:<data submode> ====
  
 Used to set the playback mode of the Mark5 at the station.   Used to set the playback mode of the Mark5 at the station.  
Line 296: Line 134:
 [=!=]mode = 0 ; [=!=]mode = 0 ;
  
-=====  status? =====+====  status? ====
  
 Used to query the status of the (remote) Mark5.   Used to query the status of the (remote) Mark5.  
Line 305: Line 143:
 [=!=]status? 0 : 0x00010001 ; (when sending data) [=!=]status? 0 : 0x00010001 ; (when sending data)
  
-=====  play? =====+====  play? ====
  
 Request play state (disk only??) Request play state (disk only??)
Line 313: Line 151:
 [=!=]status? 0 : 0x00000001 ; (when not sending data)\\ [=!=]status? 0 : 0x00000001 ; (when not sending data)\\
 [=!=]status? 0 : 0x00010001 ; (when sending data) [=!=]status? 0 : 0x00010001 ; (when sending data)
 +
 +=====  clock_set=<rate>:int:<rate> =====
 +
 +To set the Mark5b clock rate to "rate"
 +
 +[=!=]clock_set = 0 ;
 +
 +
 =====  Setting TVG test ===== =====  Setting TVG test =====
  
-To setup the Mark5 to sent thr TVG test vector, run:+To setup the Mark5 to send the TVG test vector, run:
  
  mode=tvg:8  mode=tvg:8
Line 321: Line 167:
  
 This will send 8 tracks at 4 Mbps, ie a total of 32 Mbps. This will send 8 tracks at 4 Mbps, ie a total of 32 Mbps.
 +
  
  
lbaops/mark5evlbi.1292891363.txt.gz · Last modified: 2015/12/18 16:39 (external edit)