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)