Open BOY screens from an Eclipse project or DLS module

Any .opi file opens like a .bob:

bobview screen.opi

BOY screens often name each other through the CS-Studio workspace, though: an Eclipse project whose .project links folder names (mks937a, dlsPLC …) to the directories that hold each module's screens, so ../mks937a/gauge.opi means the mks937a link. This page shows how to open such screens so that their links work. How BOY screens are translated explains the rules behind it.

Through an Eclipse project

Open the screen through its project path:

bobview /workspaces/VacOPIS/vacuum_4-100/vacuum/diamondVacuumOverview.opi

for a project in /workspaces/VacOPIS/vacuum_4-100. bobview follows the project's links (the linked folders need not exist on disk; Open… lists them).

Or give the screen's real path and name the project with --project:

bobview -p /workspaces/VacOPIS/vacuum_4-100 /dls_sw/…/vacuumApp/opi/opi/diamondVacuumOverview.opi

A DLS module

DLS modules need neither. There is no .project on disk, but the generated launcher runcss.sh beside a module's screens (vacuumApp/opi/opi) lists the links it gives CS-Studio. bobview reads that list (it does not run the script), so just open the screen by its real path:

bobview /dls_sw/…/vacuum/4-100/vacuumApp/opi/opi/diamondVacuumOverview.opi

This works for a BOY screen reached by its real path from anywhere (the file chooser, a layout, an absolute path in another screen), with the launcher in its folder or up to two above.

To open another module's BOY screen through this module's links, give -p the module's screens folder (or its runcss.sh).

A screen that needs launcher macros

DLS screens are often opened by a launcher script, such as ./srCellVacuum 04, that supplies macros. For an .opi given on the command line in an Eclipse project (through its project path, with --project, or by its real path beside a DLS runcss.sh), bobview tries the launcher scripts in its directory to find them: the one named <screen>.sh first, with no arguments and with each number in the file name, bare and with an r. So:

screenmacros from
linacVacuum.opilinacVacuum.sh (dom=LI)
srCell05Vacuum.opisrCellVacuum 05
SR05C_rack.opisrCellVacuum 05r

Macros given with -m override these. Screens with no number in their name (srInjCellVacuum.opi is cell 01) need -m with the macros their launcher would give, or opening from the overview. Launcher scripts are not run on Windows, so there every such screen needs -m.