105 lines
5.9 KiB
XML
105 lines
5.9 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!--
|
|
"Basic elements" - after the eco intro slide, updated to current eco: the two
|
|
local element types are Adjustable and Detector (leaves wired to
|
|
EPICS-interfaced hardware). eco also holds *client* objects that represent
|
|
external systems it talks to: a DAQ client (to the external DAQ) and a
|
|
pipeline client (to the pipeline server; clients still under development).
|
|
There is no separate "scan engine" element - scanning is done by acquisition
|
|
routines built on the elements below (see concepts.md). Shapes/colours match
|
|
assembly.svg for a consistent visual language across the two figures.
|
|
-->
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 900 470" font-family="Helvetica, Arial, sans-serif">
|
|
<rect x="0" y="0" width="900" height="470" rx="10" fill="#ffffff" stroke="#d0d7de"/>
|
|
|
|
<!-- environment box -->
|
|
<rect x="30" y="40" width="470" height="330" rx="14" fill="none" stroke="#1a1a1a" stroke-width="1.5"/>
|
|
<text x="48" y="66" font-size="13" font-weight="700" fill="#1a1a1a">Experiment control environment</text>
|
|
|
|
<!-- adjustables (red, pentagon "badge") and detectors (blue, "D" shape) -->
|
|
<g stroke-linejoin="round" stroke-width="1.5">
|
|
<polygon points="60,141 130,141 130,120.3 95,95 60,120.3" fill="#d62828" stroke="#8a1a1a"/>
|
|
<polygon points="150,141 220,141 220,120.3 185,95 150,120.3" fill="#d62828" stroke="#8a1a1a"/>
|
|
<polygon points="240,141 310,141 310,120.3 275,95 240,120.3" fill="#d62828" stroke="#8a1a1a"/>
|
|
<path d="M330,95 H377 A23,23 0 0 1 377,141 H330 Z" fill="#1d4ed8" stroke="#122f80"/>
|
|
<path d="M420,95 H467 A23,23 0 0 1 467,141 H420 Z" fill="#1d4ed8" stroke="#122f80"/>
|
|
</g>
|
|
|
|
<!-- EPICS interfaced band -->
|
|
<rect x="30" y="235" width="470" height="120" rx="10" fill="#f6dfe8" stroke="#c98aa6" opacity="0.7"/>
|
|
<text x="48" y="345" font-size="12" font-weight="700" fill="#7a3350">EPICS interfaced</text>
|
|
|
|
<!-- hardware glyphs, one per leaf directly above -->
|
|
<!-- 1: motor (Adjustable) -->
|
|
<circle cx="95" cy="286" r="18" fill="#ffffff" stroke="#1a1a1a" stroke-width="1.5"/>
|
|
<text x="95" y="291" text-anchor="middle" font-size="13" font-weight="700" fill="#1a1a1a">M</text>
|
|
|
|
<!-- 2: amplifier / Schmitt trigger (Adjustable, e.g. a shutter driver) -->
|
|
<polygon points="167,266 167,306 203,286" fill="#ffffff" stroke="#1a1a1a" stroke-width="1.5"/>
|
|
<path d="M174,298 L174,290 L190,290" fill="none" stroke="#1a1a1a" stroke-width="1.3"/>
|
|
|
|
<!-- 3: gauge / meter (Adjustable, e.g. an attenuator wheel) -->
|
|
<rect x="258" y="268" width="34" height="34" rx="3" fill="#ffffff" stroke="#1a1a1a" stroke-width="1.5"/>
|
|
<circle cx="275" cy="285" r="11" fill="none" stroke="#1a1a1a"/>
|
|
<path d="M275,285 L281,278" stroke="#1a1a1a" stroke-width="1.3"/>
|
|
<circle cx="275" cy="285" r="1.6" fill="#1a1a1a"/>
|
|
|
|
<!-- 4: photodiode (Detector) -->
|
|
<path d="M347,271 L347,301 L365,286 Z" fill="none" stroke="#1a1a1a" stroke-width="1.5"/>
|
|
<path d="M365,269 L365,303" stroke="#1a1a1a" stroke-width="1.5"/>
|
|
<path d="M335,286 L347,286 M365,286 L379,286" stroke="#1a1a1a" stroke-width="1.3"/>
|
|
<path d="M342,262 L350,272 M352,258 L360,268" stroke="#1a1a1a" stroke-width="1.2" fill="none"/>
|
|
|
|
<!-- 5: camera (Detector, e.g. an area detector IOC) -->
|
|
<rect x="433" y="273" width="44" height="30" rx="4" fill="#ffffff" stroke="#1a1a1a" stroke-width="1.5"/>
|
|
<rect x="448" y="265" width="14" height="8" rx="2" fill="#ffffff" stroke="#1a1a1a" stroke-width="1.5"/>
|
|
<circle cx="455" cy="288" r="9" fill="none" stroke="#1a1a1a" stroke-width="1.5"/>
|
|
<circle cx="455" cy="288" r="3.5" fill="#1a1a1a"/>
|
|
|
|
<!-- element -> hardware, one straight connector per leaf -->
|
|
<g stroke="#1a1a1a" fill="none" stroke-width="1">
|
|
<path d="M95,141 L95,268"/>
|
|
<path d="M185,141 L185,268"/>
|
|
<path d="M275,141 L275,268"/>
|
|
<path d="M365,141 L365,269"/>
|
|
<path d="M455,141 L455,273"/>
|
|
</g>
|
|
|
|
<!-- external systems (clients) -->
|
|
<!-- DAQ -->
|
|
<rect x="620" y="80" width="230" height="86" rx="10" fill="#eef2f2" stroke="#2f5b5b" stroke-width="1.5"/>
|
|
<text x="735" y="108" text-anchor="middle" font-size="13" font-weight="700" fill="#2f5b5b">External DAQ</text>
|
|
<text x="735" y="130" text-anchor="middle" font-size="11" fill="#4a5b6b">eco holds a DAQ *client*</text>
|
|
<text x="735" y="147" text-anchor="middle" font-size="11" fill="#4a5b6b">(client application to it)</text>
|
|
|
|
<!-- Pipeline server -->
|
|
<rect x="620" y="210" width="230" height="100" rx="10" fill="#f3eefc" stroke="#5b3f8a" stroke-width="1.5"/>
|
|
<text x="735" y="238" text-anchor="middle" font-size="13" font-weight="700" fill="#5b3f8a">Pipeline server</text>
|
|
<text x="735" y="260" text-anchor="middle" font-size="11" fill="#4a5b6b">eco holds a pipeline *client*</text>
|
|
<text x="735" y="277" text-anchor="middle" font-size="11" fill="#4a5b6b">(offload online analysis;</text>
|
|
<text x="735" y="294" text-anchor="middle" font-size="11" fill="#4a5b6b">clients still in development)</text>
|
|
|
|
<!-- client links from environment -->
|
|
<g stroke="#1a1a1a" fill="none" stroke-width="1.2" stroke-dasharray="5 4">
|
|
<path d="M500,120 L620,120" marker-end="url(#a1)"/>
|
|
<path d="M500,180 C560,180 560,255 620,255" marker-end="url(#a1)"/>
|
|
</g>
|
|
<defs>
|
|
<marker id="a1" markerWidth="10" markerHeight="10" refX="7" refY="3" orient="auto">
|
|
<path d="M0,0 L7,3 L0,6 Z" fill="#1a1a1a"/>
|
|
</marker>
|
|
</defs>
|
|
|
|
<!-- legend -->
|
|
<g font-size="12" fill="#1a1a1a">
|
|
<polygon points="40,410 66,410 66,401.9 53,392 40,401.9" fill="#d62828" stroke="#8a1a1a" stroke-linejoin="round"/>
|
|
<text x="74" y="406">Adjustable (set + read)</text>
|
|
<path d="M280,392 H297 A9,9 0 0 1 297,410 H280 Z" fill="#1d4ed8" stroke="#122f80"/>
|
|
<text x="314" y="406">Detector (read only)</text>
|
|
<rect x="520" y="392" width="26" height="18" rx="3" fill="#eef2f2" stroke="#2f5b5b"/>
|
|
<text x="554" y="406">DAQ client</text>
|
|
<rect x="680" y="392" width="26" height="18" rx="3" fill="#f3eefc" stroke="#5b3f8a"/>
|
|
<text x="714" y="406">Pipeline client</text>
|
|
</g>
|
|
</svg>
|