After sitting down for 5 minutes and thinking about it, I realized the names I had been using for internal RFM communication were pretty bad. It was because looking at a model didn't let you know where the RFM connection was coming from or going to. So to correct my previous mistakes, I'm instituting the following naming convention for reflected memory, PCIE reflected memory (dolphin) and shared memory names. These don't actually get used anywhere but the models, and thus don't show up as channel names anywhere else. They are replaced by raw hex memory locations in the actual code through the use of the IPC file (/opt/rtcds/caltech/c1/chans/ipc/C1.ipc). However it will make understanding the models easier for anyone looking at them or modifying them.
The new naming convention for RFM and Dolphin channels is as follows.
SITE:Sending Model-Receiving Model_DESCRIPTION_HERE
The description should be unique to that data being transferred and reused if its the same data. Thus if its transfered to another model, its easy to identify it as the same information.
The model should be the .mdl file name, not the subsystem its a part of. So SCX is used instead of SUS. This is to make it easier to track where data is going.
In the unlikely case of multiple models receiving, it should be of the form SITE:Sending Model-Receiving Model 1-Receiving Model 2_DESCRIPTION_HERE. Seperate models by dashes and description by underscores.
Example:
C1:LSC-RFM_ETMX_LSC
This channel goes from the LSC model (on c1lsc) to the RFM model (on c1sus). It transfers ETMX LSC position feedback. The second LSC may seem redundant until we look at the next channel in the chain.
C1:RFM-SCX_ETMX_LSC
This channel goes from the RFM model to the SCX model (on c1iscex). It contains the same information as the first channel, i.e. ETMX LSC position feedback.
I have updated all the models that had RFM and SHMEM connections, as well as adding all the LSC communciation connections to c1rfm. This includes c1sus, c1rfm, c1mcs, c1ioo, c1gcv, c1lsc, c1scx, c1scy. I have not yet built all the models since I didn't finish the updates until this afternoon. I will build and test the code tomorrow morning.
|