Farm Receiver


The farm receiver receives the data from the L2 sender(s) and put them in a multiple circular buffer.

Index


Program syntax

farmreceive [-n processname]


Commands

init [l2nodes]
Initialize the process. Must be called at startup and after any error.

Puts the process in the INIT_STATE.

start
Starts receiving. Can be used only when the process is in the INIT_STATE.

Puts the process in the RUNNING_STATE.

pause
Pauses receiving. Can be used only when the process is in the RUNNING_STATE.

Puts the process in the PAUSE_STATE.

resume
Resume receiving (if in PAUSE_STATE).

Puts the process in the RUNNING_STATE.

update
Update shared variables. Can be used only when the process is in the RUNNING_STATE.
end
End receiving. Can be used only when the process is in the RUNNING_STATE.

Puts the process in the INIT_STATE.

exit
End receiving and kill the process.

Call the end command before using exit.


Shared variables

Name Type Access Description Default value
eventnr INTEGER R 1
runstate INTEGER R Status of the process.

Can be on of the following:

  • UNDEFINED_STATE
  • INIT_STATE
  • RUNNING_STATE
  • PAUSE_STATE
UNDEFINED_STATE
l2nodes INTEGER R/W (init only) Number of L2 nodes. The receiving will start only when the specified number of nodes will connect the process. 1

Set also by the init command.

circsize INTEGER R/W Circular buffer size. 256000
rcname STRING R/W Name of the circular buffer. /tmp/RECEIVE
port INTEGER R/W Port address on which the process listens. 2113
msgsize INTEGER R/W Message size. (TCP/IP) 8192
rcvbuf INTEGER R/W Receive buffer. (TCP/IP) 32768
sndbuf INTEGER R/W Send buffer. (TCP/IP) 32768
reuseaddr INTEGER R/W Reuse address. (TCP/IP) 1
nodelay INTEGER R/W No delay (TCP/IP) 0
nonblock INTEGER R Nonblocking mode. (TCP/IP)

Should be set to 0. (nonblocking mode not yet implemented)

0
timeout_us INTEGER R Timeout time in microseconds 10000
timeouts INTEGER R Number of timeouts from the start of receiving. 0

Reset after the start or resume command.

circfulls INTEGER R Number of times the circular buffer went full. 0

Reset after the start or resume command.

upfreq INTEGER R/W Long term status update frequency. (Expressed in number of loops)

If ==0, updated at short term update only.

100
upfreq_l INTEGER R/W Short term status update frequency. (Expressed in number of loops)
It also updates long term status.

If ==0, the automatic update is disabled.

1000
sg_msecs INTEGER R Miliseconds from the last start or resume. 0

Updated every upfreq cycles.

sg_events INTEGER R Number of events received from the last start or resume. 0

Updated every upfreq cycles.

sg_cpu INTEGER R CPU used from the last start or resume. (Expressed in 10-9) 0

Updated every upfreq cycles.

sg_gbytes INTEGER R GBytes (230)received from the last start or resume. 0

Updated every upfreq cycles.

sg_bytes INTEGER R Bytes received (mod GB) from the last start or resume. 0

Updated every upfreq cycles.

sg_uptime INTEGER R The time at the last long term status update. (As reported by time)

Set to 0 if no update yet.

0

Updated every upfreq cycles.

sl_msecs INTEGER R Miliseconds from the last update. 0

Updated every upfreq_l cycles.

sl_events INTEGER R Number of events received from the last update. 0

Updated every upfreq_l cycles.

sl_cpu INTEGER R CPU used from the last update. (Expressed in 10-9) 0

Updated every upfreq_l cycles.

sl_bytes INTEGER R Bytes received from the last update. 0

Updated every upfreq_l cycles.

sl_uptime INTEGER R The time at the last short term status update. (As reported by time)

Set to 0 if no update yet.

0

Updated every upfreq_l cycles.


Top of the page. Farm documentation
Send comments to: Stefano Miscetti or Igor Sfiligoi

Created:7.10.1997
Last modified:28.10.1997