Shared Memory Transfer

To transfer shared memory images between computers we can use the shmimTCP system. The goal is to make a copy or dummy shared memory on one machine that is then synchronized with the other machine over a dedicated ethernet connection.

Standard Use

For our standard use cases of transferring DM commands, the script dmdispbridge will setup the system for you. For instance, to send dmtweeter channel 03 commands from ICC to RTC, on ICC you can run

[xsup@exao3]$ dmdispbridge dm01disp03

The arguments can be any dm channel:

  • dm00dispXX for the woofer

  • dm01dispXX for the tweeter

  • dm61dispXX - dm66dispXX for GMT segments

To send dmncpc commands from RTC to ICC, on RTC you can run

[xsup@exao2]$ dmdispbridge dm02disp03

Manual Setup

More complicated and/or new uses require you to perform the steps yourself.

Example 1

A simple case is to send data from a machine that has the source of the data on it to another machine. Here we have a stream named acc000 that we want to send to another machine. We start with the receiving machine:

$ tmux new -s sTCPrc-acc00

Then in the tmux terminal run (which you are now in)

$ shmimTCPreceive 8886

You can now exit the tmux session with ctrl-b followed by d. Next, on the sending machine run

$ shmimTCPtransmit acc000 192.168.2.2 8886

Where you change the IP address (192.168.2.2) and port (8886) as needed.

Example 2

This example shows how to send dmtweeter commands from ICC to RTC. This is subtly different from the above example b/c ICC is not usually the source of the DM commands, so there is no stream already to use. Then the DM commands are written to an already existing stream on RTC. Note that these are the steps performed by dmdispbridge for the same operation above, but this can be adapted to other devices/shmims as needed.

First on RTC:

tmux new -s sTCPrc-dm01disp06

Then in the tmux session:

$ shmimTCPreceive 8886

Second On ICC:

First create the shmim

cacao
cacao> mk2Dim "s>tf32>dm01disp06" 50 50
cacao> exit

Then make the connection (no tmux needed)

$ shmimTCPtransmit dm01disp06 192.168.2.2 8886

This example can be modified for other taskes (e.g. sending camtip to RTC)