Wiki source code of 1. User Manual

Version 242.2 by Iaroslav Platonov on 2026/06/08 09:08

Show last authors
1 {{html clean="false"}}
2 <style>
3 /* ── Reading progress bar ── */
4 #rn-prog { position:fixed;top:0;left:0;height:3px;width:0;background:#005AB4;z-index:9999;pointer-events:none; }
5
6 /* ── Page content wrapper ── */
7 .doc-wrap { position:relative; }
8 .doc-content {
9 margin-right:224px;
10 border-left:1px solid #E8E8E8;
11 border-right:1px solid #E8E8E8;
12 padding:0 32px;
13 }
14
15 /* ── Right "On This Page" TOC ── */
16 .doc-toc {
17 position:absolute;top:0;right:0;width:200px;
18 font-size:12.5px;line-height:1.55;
19 padding:20px 0 20px 16px;
20 }
21 .doc-toc.is-fixed { position:fixed;width:200px;overflow-y:auto;z-index:10; }
22 .toc-header { display:flex;justify-content:space-between;align-items:center;margin-bottom:10px; }
23 .toc-header strong { font-size:13px;font-weight:700;color:#222; }
24 .toc-toggle { background:none;border:none;cursor:pointer;color:#555;font-size:14px;padding:0 2px;line-height:1; }
25 .toc-toggle:hover { color:#222; }
26 .doc-toc ul { list-style:none;margin:0;padding:0; }
27 .doc-toc li { margin:0; }
28 .doc-toc a { display:block;padding:3px 0;color:#555;text-decoration:none;border-left:2px solid transparent;transition:color .12s; }
29 .doc-toc a:hover { color:#222;text-decoration:underline; }
30 .doc-toc a.toc-on { color:#222;font-weight:700;border-left:2px solid #005AB4;padding-left:5px; }
31 .tl1 > a { font-weight:600;color:#222; }
32 .tl2 > a { padding-left:14px; }
33 .tl3 > a { padding-left:26px;font-size:12px; }
34
35 /* ── Typography ── */
36 .doc-content h1 { font-size:1.6em;font-weight:700;color:#222;margin:0 0 6px 0;border:none; }
37 .rn-meta { font-size:.8em;color:#555;margin:0 0 28px 0; }
38 .doc-content h2 { font-size:1.15em;font-weight:700;color:#222;margin:36px 0 10px 0;display:flex;align-items:baseline;gap:7px;scroll-margin-top:16px; }
39 .doc-content h3 { font-size:1em;font-weight:700;color:#222;margin:22px 0 8px 0;display:flex;align-items:baseline;gap:6px;scroll-margin-top:16px; }
40 .doc-content h4 { font-size:.93em;font-weight:700;color:#222;margin:14px 0 6px 0;display:flex;align-items:baseline;gap:5px;scroll-margin-top:16px; }
41 .doc-content p { font-size:.93em;color:#333;line-height:1.75;margin:0 0 12px 0; }
42 .doc-content strong { color:#222; }
43 .doc-content code { background:#f5f5f5;border:1px solid #E8E8E8;border-radius:3px;padding:1px 5px;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;font-size:.82em;color:#222;line-height:1; }
44
45 /* ── Anchor icon ── */
46 .anchor-icon { color:#E8E8E8;text-decoration:none;opacity:0;transition:opacity .15s;vertical-align:middle;margin-left:4px;display:inline-flex;align-items:center; }
47 h2:hover .anchor-icon,h3:hover .anchor-icon,h4:hover .anchor-icon { opacity:1; }
48 .anchor-icon:hover { color:#005AB4; }
49
50 /* ── Callout notes ── */
51 .note { border-radius:6px;padding:12px 16px;margin:14px 0;border:1px solid transparent; }
52 .note-info { background:#e1f1f9 !important;border-color:#b3d4ee !important;border-left:4px solid #005AB4 !important; }
53 .note-warning { background:#fff4ec !important;border-color:#f5cba7 !important;border-left:4px solid #DD5600 !important; }
54 .note-tip { background:#e5f3df !important;border-color:#b7dba5 !important;border-left:4px solid #73A839 !important; }
55 .note-hd { font-weight:700;font-size:.85em;display:flex;align-items:center;gap:5px;margin-bottom:5px; }
56 .note-info .note-hd { color:#003d80 !important; }
57 .note-warning .note-hd { color:#a03d00 !important; }
58 .note-tip .note-hd { color:#3d6b1a !important; }
59 .note-body { font-size:.875em;color:#222 !important;line-height:1.65; }
60
61 /* ── Section index list ── */
62 .section-index { list-style:disc;padding-left:20px;margin:0 0 20px 0; }
63 .section-index li { margin-bottom:12px; }
64 .section-index li a { color:#005AB4;font-weight:600;font-size:.93em;text-decoration:underline; }
65 .section-index li p { margin:3px 0 0 0;font-size:.875em;color:#333;line-height:1.6; }
66
67 /* ── Parent topic ── */
68 .parent-topic { font-size:.82em;color:#555;margin:18px 0 24px 0;border-top:1px solid #E8E8E8;padding-top:10px; }
69 .parent-topic a { color:#005AB4; }
70
71 /* ── Accordion ── */
72 details.acc { border:1px solid #E8E8E8;border-radius:4px;margin-bottom:5px; }
73 details.acc summary { display:flex;align-items:center;gap:8px;padding:9px 12px;cursor:pointer;list-style:none;background:none;user-select:none; }
74 details.acc summary::-webkit-details-marker { display:none; }
75 details.acc summary::before { content:'▶';font-size:.58em;color:#555;transition:transform .18s;flex-shrink:0; }
76 details.acc[open] summary::before { transform:rotate(90deg); }
77 details.acc summary:hover { background:#f5f5f5; }
78 .acc-num { font-size:.8em;color:#555;min-width:28px;font-weight:600; }
79 .acc-title { font-size:.9em;font-weight:700;color:#222;flex:1; }
80 .acc-body { padding:10px 14px 12px 14px;font-size:.88em;color:#333;line-height:1.7; }
81
82 /* ── Images ── */
83 .fig { margin:12px auto 24px auto;width:fit-content;max-width:100%; }
84 .fig img { border-radius:4px 4px 0 0;border:1px solid #E8E8E8;display:block;cursor:zoom-in;max-width:100%;box-shadow:0 1px 4px rgba(0,0,0,.10);transition:box-shadow .15s; }
85 .fig img:hover { box-shadow:0 3px 12px rgba(0,90,180,.18); }
86 .fig-cap { font-size:.78em;color:#555;margin:0;padding:5px 8px;background:#f5f5f5;border:1px solid #E8E8E8;border-top:none;border-radius:0 0 4px 4px;display:block;width:100%;box-sizing:border-box; }
87
88 /* ── Lightbox ── */
89 #rn-lb { display:none;position:fixed;inset:0;z-index:9998;background:rgba(0,0,0,.8);cursor:zoom-out;align-items:center;justify-content:center; }
90 #rn-lb.open { display:flex; }
91 #rn-lb-wrap { position:relative;cursor:default;max-width:92vw;max-height:90vh; }
92 #rn-lb-wrap img { max-width:100%;max-height:90vh;border-radius:5px;display:block; }
93 #rn-lb-x { position:absolute;top:-13px;right:-13px;background:#005AB4;color:#fff;width:26px;height:26px;border-radius:50%;border:none;cursor:pointer;font-size:15px;display:flex;align-items:center;justify-content:center; }
94 #rn-lb-cap { position:fixed;bottom:18px;left:50%;transform:translateX(-50%);color:#ddd;font-size:.78em;background:rgba(0,0,0,.55);padding:3px 12px;border-radius:14px;pointer-events:none; }
95
96 /* ── Back to top ── */
97 #rn-top { position:fixed;bottom:24px;right:24px;z-index:9997;width:36px;height:36px;border-radius:50%;background:#005AB4;color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transform:translateY(8px);transition:opacity .22s,transform .22s;pointer-events:none;box-shadow:0 2px 8px rgba(0,90,180,.3); }
98 #rn-top.on { opacity:1;transform:translateY(0);pointer-events:auto; }
99 #rn-top:hover { background:#0066cc; }
100
101 /* ── Toast ── */
102 .rn-toast { position:fixed;bottom:66px;right:24px;z-index:9999;background:#222;color:#fff;font-size:.74em;padding:4px 11px;border-radius:4px;pointer-events:none;opacity:0;transition:opacity .18s; }
103 .rn-toast.on { opacity:1; }
104
105 /* ── Tables ── */
106 .rn-table { width:100%;border-collapse:collapse;margin:8px 0 18px 0;font-size:.875em; }
107 .rn-table th { background:#f5f5f5;text-align:left;padding:7px 12px;font-size:.78em;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#555;border-bottom:2px solid #E8E8E8; }
108 .rn-table td { padding:7px 12px;border-bottom:1px solid #E8E8E8;color:#333;vertical-align:top; }
109 .rn-table tr:last-child td { border-bottom:none; }
110 .rn-table tr:hover td { background:#f5f5f5; }
111 .sc { display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;background:#deeaf7;color:#005AB4;border-radius:3px;font-size:.8em;font-weight:700; }
112 </style>
113
114 <div id="rn-prog"></div>
115 <div id="rn-lb">
116 <div id="rn-lb-wrap">
117 <button id="rn-lb-x" onclick="closeLightbox()">✕</button>
118 <img id="rn-lb-img" src="" alt=""/>
119 </div>
120 <div id="rn-lb-cap"></div>
121 </div>
122 <button id="rn-top" onclick="window.scrollTo({top:0,behavior:'smooth'})" title="Back to top">
123 <svg width="14" height="14" viewBox="0 0 16 16" fill="currentColor"><path d="M8 4l5 5H3z"/></svg>
124 </button>
125 <div class="rn-toast" id="rn-toast">Link copied ✓</div>
126
127 <div class="doc-wrap">
128
129 <!-- ── CONTENT ── -->
130 <div class="doc-content">
131 <ul class="section-index">
132 <li><a href="#s-login">1. System Login</a><p>How to access the CENTO web interface, log in, and switch users.</p></li>
133 <li><a href="#s-ui">2. User Interface</a><p>Overview of the main menu, SCADA diagrams, analysis tools, logs, reports, and notifications.</p></li>
134 <li><a href="#s-abbrev">Basic Abbreviations</a><p>Glossary of abbreviations used throughout this manual.</p></li>
135 <li><a href="#s-statuses">Reference: Status Codes</a><p>Device and tag status code tables for quick reference.</p></li>
136 </ul>
137
138 <!-- ═══ 1. System Login ═══ -->
139 <h2 id="s-login">1. System Login<a class="anchor-icon" href="javascript:void(0)" onclick="copyAnchor('s-login')" title="Copy link"><svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor" style="flex-shrink:0"><path d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"/></svg></a></h2>
140 <p>Users log in to CENTO through a web interface. Supported browsers: Google Chrome, Microsoft Edge, etc.</p>
141 <p>Enter the server IP or DNS address — for example <code>http://192.168.80.10/</code> or <code>https://demotest.centosoftware.com/</code>. When working directly on the server, use <code>http://127.0.0.1</code>.</p>
142 <div class="fig">
143 <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/1762985411819-434.png" alt="CENTO login form with username and password fields and a Login button" style="max-width:320px;" onclick="openLightbox(this)"/>
144 <p class="fig-cap">Figure 1.1. Authorization page</p>
145 </div>
146 <div class="note note-info">
147 <div class="note-hd"><span>ℹ</span> Note</div>
148 <div class="note-body">Enter username and password and click <strong>Login</strong>. If credentials are incorrect, the message <em>User with the entered parameters not found!</em> appears.</div>
149 </div>
150 <div class="fig">
151 <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/Screenshot%202025-12-01%20at%2009.20.57.png" alt="CENTO main interface panel showing top navigation bar with Diagrams, Analysis, Reports, Logs, and Settings menus" style="max-width:100%;" onclick="openLightbox(this)"/>
152 <p class="fig-cap">Figure 1.2. Main panel</p>
153 </div>
154 <p>To switch users, open the drop-down menu in the upper right corner and select <strong>Logout</strong>.</p>
155 <div class="fig">
156 <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/1762985502322-231.png" alt="User drop-down menu in the upper right corner with the Logout option highlighted" style="max-width:280px;" onclick="openLightbox(this)"/>
157 <p class="fig-cap">Figure 1.3. System logout</p>
158 </div>
159 <div class="fig">
160 <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/Screenshot%202025-11-12%20at%2014.12.33.png" alt="Figure 1.4. Access is denied" style="max-width:420px;" onclick="openLightbox(this)"/>
161 <p class="fig-cap">Figure 1.4. Access is denied</p>
162 </div>
163 <div class="parent-topic">Parent topic: <a href="#">CENTO Manuals</a></div>
164
165 <!-- ═══ 2. User Interface ═══ -->
166 <h2 id="s-ui">2. User Interface<a class="anchor-icon" href="javascript:void(0)" onclick="copyAnchor('s-ui')" title="Copy link"><svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor" style="flex-shrink:0"><path d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"/></svg></a></h2>
167 <p>The pinned main menu switches between sections; the status bar on the right displays current events and system time.</p>
168
169 <ul class="section-index">
170 <li><a href="#s-menu">2.1 Main Menu</a><p>Navigation bar layout, status bar, drop-down menus.</p></li>
171 <li><a href="#s-diagrams">2.2 Diagrams</a><p>Mimic diagram types, object menus, dispatch marks, video streams, object log.</p></li>
172 <li><a href="#s-analysis">2.3 Analysis</a><p>Real-time data tables and charts, metering data, receipt forms, device diagnostics.</p></li>
173 <li><a href="#s-logs">2.4 Logs</a><p>Nine log types — availability depends on license and access rights.</p></li>
174 <li><a href="#s-reports">2.5 Reports</a><p>Flexible reports, power quality reports, short-circuit reports.</p></li>
175 <li><a href="#s-journal">2.6 Operative Journal</a><p>Shift-based logbook with templates and electronic signatures.</p></li>
176 <li><a href="#s-widgets">2.7 Widgets</a><p>Configurable KPI dashboard panels, personalised per user.</p></li>
177 <li><a href="#s-sound">2.8 Sound Alerts</a><p>Browser-based audible alerts for configured event conditions.</p></li>
178 <li><a href="#s-popup">2.9 Pop-up Messages</a><p>Critical event banners with operator acknowledgement and log.</p></li>
179 </ul>
180
181 <!-- 2.1 -->
182 <h3 id="s-menu">2.1 Main Menu<a class="anchor-icon" href="javascript:void(0)" onclick="copyAnchor('s-menu')" title="Copy link"><svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor" style="flex-shrink:0"><path d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"/></svg></a></h3>
183 <p>Provides access to: Diagrams, Maps, Analysis, Reports, Logs, and Settings. The interface scales automatically to fit the browser window.</p>
184 <div class="fig">
185 <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/Screenshot%202025-11-12%20at%2014.13.54.png" alt="Figure 2.1. Main menu (left side)" style="max-width:100%;" onclick="openLightbox(this)"/>
186 <p class="fig-cap">Figure 2.1. Main menu (left side)</p>
187 </div>
188 <div class="fig">
189 <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/Screenshot%202025-11-12%20at%2014.18.28.png" alt="Figure 2.2. Main menu (right part)" style="max-width:100%;" onclick="openLightbox(this)"/>
190 <p class="fig-cap">Figure 2.2. Main menu (right part)</p>
191 </div>
192 <div class="fig">
193 <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/Screenshot%202025-11-12%20at%2014.21.24.png" alt="Figure 2.3. Drop-down menu" style="max-width:320px;" onclick="openLightbox(this)"/>
194 <p class="fig-cap">Figure 2.3. Drop-down menu</p>
195 </div>
196
197 <!-- 2.2 -->
198 <h3 id="s-diagrams">2.2 Diagrams<a class="anchor-icon" href="javascript:void(0)" onclick="copyAnchor('s-diagrams')" title="Copy link"><svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor" style="flex-shrink:0"><path d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"/></svg></a></h3>
199 <p>Interactive mimic diagrams (SCADA screens) represent equipment state and process flows in real time. For diagram creation and configuration, see the <strong>Diagrams Development Manual</strong>.</p>
200 <div class="fig">
201 <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/Screenshot%202025-11-12%20at%2014.22.56.png" alt="Figure 2.4. Power industry" style="max-width:100%;" onclick="openLightbox(this)"/>
202 <p class="fig-cap">Figure 2.4. Power industry</p>
203 </div>
204 <div class="fig">
205 <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/Screenshot%202025-11-12%20at%2014.24.08.png" alt="Figure 2.5. Engineering infrastructure" style="max-width:100%;" onclick="openLightbox(this)"/>
206 <p class="fig-cap">Figure 2.5. Engineering infrastructure</p>
207 </div>
208 <div class="fig">
209 <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/Screenshot%202025-11-12%20at%2014.24.37.png" alt="Figure 2.6. Diagnostics" style="max-width:100%;" onclick="openLightbox(this)"/>
210 <p class="fig-cap">Figure 2.6. Diagnostics</p>
211 </div>
212 <div class="fig">
213 <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/Screenshot%202025-11-12%20at%2014.25.05.png" alt="Figure 2.7. Technology" style="max-width:100%;" onclick="openLightbox(this)"/>
214 <p class="fig-cap">Figure 2.7. Technology</p>
215 </div>
216 <div class="fig">
217 <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/Screenshot%202025-11-12%20at%2014.44.51.png" alt="Figure 2.8. Portable grounding" style="max-width:360px;" onclick="openLightbox(this)"/>
218 <p class="fig-cap">Figure 2.8. Portable grounding</p>
219 </div>
220 <div class="fig">
221 <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/Screenshot%202025-11-12%20at%2014.45.40.png" alt="Figure 2.9. Dispatch marks log" style="max-width:100%;" onclick="openLightbox(this)"/>
222 <p class="fig-cap">Figure 2.9. Dispatch marks log</p>
223 </div>
224 <div class="fig">
225 <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/Screenshot%202025-11-12%20at%2014.48.41.png" alt="Figure 2.10. Diagrams player interface" style="max-width:100%;" onclick="openLightbox(this)"/>
226 <p class="fig-cap">Figure 2.10. Diagrams player interface</p>
227 </div>
228 <div class="fig">
229 <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/Screenshot%202025-11-12%20at%2014.55.03.png" alt="Figure 2.11. Diagram viewing window with diagram tree" style="max-width:100%;" onclick="openLightbox(this)"/>
230 <p class="fig-cap">Figure 2.11. Diagram viewing window with diagram tree</p>
231 </div>
232 <div class="fig">
233 <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/Screenshot%202025-11-12%20at%2014.56.11.png" alt="Figure 2.12. Object menu (left click)" style="max-width:380px;" onclick="openLightbox(this)"/>
234 <p class="fig-cap">Figure 2.12. Object menu (left click)</p>
235 </div>
236 <div class="fig">
237 <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/Screenshot%202025-11-12%20at%2014.57.12.png" alt="Figure 2.13. Object context menu (right click)" style="max-width:320px;" onclick="openLightbox(this)"/>
238 <p class="fig-cap">Figure 2.13. Object context menu (right click)</p>
239 </div>
240 <div class="fig">
241 <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/Screenshot%202025-11-12%20at%2014.59.21.png" alt="Figure 2.14. Object passport — Measurements" style="max-width:100%;" onclick="openLightbox(this)"/>
242 <p class="fig-cap">Figure 2.14. Object passport — Measurements</p>
243 </div>
244 <div class="fig">
245 <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/image_2025-11-13_10-52-44.png" alt="Figure 2.15. Viewing video stream" style="max-width:100%;" onclick="openLightbox(this)"/>
246 <p class="fig-cap">Figure 2.15. Viewing video stream</p>
247 </div>
248 <div class="fig">
249 <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/Screenshot%202025-11-12%20at%2015.03.53.png" alt="Figure 2.16. Dispatch marks interface" style="max-width:100%;" onclick="openLightbox(this)"/>
250 <p class="fig-cap">Figure 2.16. Dispatch marks interface</p>
251 </div>
252 <div class="fig">
253 <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/Screenshot%202025-11-12%20at%2015.04.36.png" alt="Figure 2.17. Reference information" style="max-width:360px;" onclick="openLightbox(this)"/>
254 <p class="fig-cap">Figure 2.17. Reference information</p>
255 </div>
256 <div class="fig">
257 <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/Screenshot%202025-11-12%20at%2018.36.19.png" alt="Figure 2.18. Object log" style="max-width:100%;" onclick="openLightbox(this)"/>
258 <p class="fig-cap">Figure 2.18. Object log</p>
259 </div>
260
261 <h4 id="s-control">2.2.1 Control<a class="anchor-icon" href="javascript:void(0)" onclick="copyAnchor('s-control')" title="Copy link"><svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor" style="flex-shrink:0"><path d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"/></svg></a></h4>
262 <div class="note note-warning">
263 <div class="note-hd"><span>⚠</span> Warning</div>
264 <div class="note-body">Control actions affect live equipment. Confirm the correct object is selected before executing any command.</div>
265 </div>
266 <p>Remote switching, setpoint changes, and group commands are executed directly from mimic diagrams. Access is governed by user permissions in the Information Model.</p>
267 <div class="fig">
268 <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/Screenshot%202025-11-12%20at%2018.42.00.png" alt="Figure 2.19. Remote control" style="max-width:100%;" onclick="openLightbox(this)"/>
269 <p class="fig-cap">Figure 2.19. Remote control</p>
270 </div>
271 <div class="fig">
272 <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/Screenshot%202025-11-12%20at%2018.42.35.png" alt="Figure 2.20. Control schedule" style="max-width:100%;" onclick="openLightbox(this)"/>
273 <p class="fig-cap">Figure 2.20. Control schedule</p>
274 </div>
275 <div class="fig">
276 <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/Screenshot%202025-11-12%20at%2018.43.07.png" alt="Figure 2.21. Entering password on diagram" style="max-width:360px;" onclick="openLightbox(this)"/>
277 <p class="fig-cap">Figure 2.21. Entering password on diagram</p>
278 </div>
279 <div class="fig">
280 <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/Screenshot%202025-11-12%20at%2018.44.40.png" alt="Figure 2.22. Value entry field" style="max-width:360px;" onclick="openLightbox(this)"/>
281 <p class="fig-cap">Figure 2.22. Value entry field</p>
282 </div>
283 <div class="fig">
284 <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/Screenshot%202025-11-12%20at%2018.45.29.png" alt="Figure 2.23. Named command selection (1)" style="max-width:360px;" onclick="openLightbox(this)"/>
285 <p class="fig-cap">Figure 2.23. Named command selection (1)</p>
286 </div>
287 <div class="fig">
288 <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/Screenshot%202025-11-12%20at%2018.45.56.png" alt="Figure 2.24. Named command selection (2)" style="max-width:360px;" onclick="openLightbox(this)"/>
289 <p class="fig-cap">Figure 2.24. Named command selection (2)</p>
290 </div>
291 <div class="fig">
292 <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/Screenshot%202025-11-12%20at%2018.46.48.png" alt="Figure 2.25. TC command selection" style="max-width:360px;" onclick="openLightbox(this)"/>
293 <p class="fig-cap">Figure 2.25. TC command selection</p>
294 </div>
295 <div class="fig">
296 <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/Screenshot%202025-11-12%20at%2018.47.59.png" alt="Figure 2.26. Action confirmation" style="max-width:360px;" onclick="openLightbox(this)"/>
297 <p class="fig-cap">Figure 2.26. Action confirmation</p>
298 </div>
299 <div class="fig">
300 <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/Screenshot%202025-12-17%20at%2018.37.08.png" alt="Figure 2.27. Action confirmation" style="max-width:360px;" onclick="openLightbox(this)"/>
301 <p class="fig-cap">Figure 2.27. Action confirmation</p>
302 </div>
303
304 <!-- 2.3 -->
305 <h3 id="s-analysis">2.3 Analysis<a class="anchor-icon" href="javascript:void(0)" onclick="copyAnchor('s-analysis')" title="Copy link"><svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor" style="flex-shrink:0"><path d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"/></svg></a></h3>
306 <p>Displays CENTO data in tabular and chart form with filtering, aggregation, and Excel export.</p>
307
308 <h4 id="s-rtd">2.3.1 Real-time data analysis<a class="anchor-icon" href="javascript:void(0)" onclick="copyAnchor('s-rtd')" title="Copy link"><svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor" style="flex-shrink:0"><path d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"/></svg></a></h4>
309 <p>Displays current tag values, filterable by device/object, status code, or last-update timestamp.</p>
310 <div class="fig">
311 <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/Screenshot%202025-11-12%20at%2018.50.56.png" alt="Figure 2.28. Real-time data analysis" style="max-width:100%;" onclick="openLightbox(this)"/>
312 <p class="fig-cap">Figure 2.28. Real-time data analysis</p>
313 </div>
314 <div class="fig">
315 <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/Screenshot%202025-11-12%20at%2018.52.31.png" alt="Figure 2.29. Device tree" style="max-width:360px;" onclick="openLightbox(this)"/>
316 <p class="fig-cap">Figure 2.29. Device tree</p>
317 </div>
318 <div class="fig">
319 <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/Screenshot%202025-11-12%20at%2018.53.16.png" alt="Figure 2.30. Object tree" style="max-width:360px;" onclick="openLightbox(this)"/>
320 <p class="fig-cap">Figure 2.30. Object tree</p>
321 </div>
322 <div class="fig">
323 <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/Screenshot%202025-11-12%20at%2019.06.00.png" alt="Figure 2.31. Tag table" style="max-width:100%;" onclick="openLightbox(this)"/>
324 <p class="fig-cap">Figure 2.31. Tag table</p>
325 </div>
326 <div class="fig">
327 <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/Screenshot%202025-11-12%20at%2019.11.13.png" alt="Figure 2.32. Real-time data charts" style="max-width:100%;" onclick="openLightbox(this)"/>
328 <p class="fig-cap">Figure 2.32. Real-time data charts</p>
329 </div>
330 <div class="fig">
331 <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/Screenshot%202025-11-12%20at%2019.12.20.png" alt="Figure 2.33. Data aggregation options" style="max-width:340px;" onclick="openLightbox(this)"/>
332 <p class="fig-cap">Figure 2.33. Data aggregation options</p>
333 </div>
334 <div class="fig">
335 <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/Screenshot%202025-11-12%20at%2019.18.15.png" alt="Figure 2.34. Chart settings menu" style="max-width:360px;" onclick="openLightbox(this)"/>
336 <p class="fig-cap">Figure 2.34. Chart settings menu</p>
337 </div>
338 <div class="fig">
339 <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/Screenshot%202025-11-12%20at%2019.19.45.png" alt="Figure 2.35. Calendar — data display depth" style="max-width:340px;" onclick="openLightbox(this)"/>
340 <p class="fig-cap">Figure 2.35. Calendar — data display depth</p>
341 </div>
342 <div class="fig">
343 <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/Screenshot%202025-11-12%20at%2019.23.18.png" alt="Figure 2.36. User message on chart" style="max-width:100%;" onclick="openLightbox(this)"/>
344 <p class="fig-cap">Figure 2.36. User message on chart</p>
345 </div>
346 <div class="fig">
347 <img src="/xwiki/bin/download/CENTO%20Manuals/1.%20User%20Manual/WebHome/Screenshot%202025-11-12%20at%2019.24.15.png" alt="Figure 2.37. Table tab" style="max-width:100%;" onclick="openLightbox(this)"/>
348 <p class="fig-cap">Figure 2.37. Table tab</p>
349 </div>
350
351 <h4 id="s-metering">2.3.2 Metering data analysis<a class="anchor-icon" href="javascript:void(0)" onclick="copyAnchor('s-metering')" title="Copy link"><svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor" style="flex-shrink:0"><path d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"/></svg></a></h4>
352 <p>Metering data (electricity, energy, hours, emissions) in tabular and chart formats. Supports aggregation by hour/day/month/year and Excel export.</p>
353
354 <h4 id="s-receipt">2.3.3 Receipt of metering data form<a class="anchor-icon" href="javascript:void(0)" onclick="copyAnchor('s-receipt')" title="Copy link"><svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor" style="flex-shrink:0"><path d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"/></svg></a></h4>
355 <p>Structured form for reviewing and confirming receipt of interval metering data. Allows marking data as received and adding operator comments.</p>
356
357 <h4 id="s-diagnostic">2.3.4 Device diagnostic<a class="anchor-icon" href="javascript:void(0)" onclick="copyAnchor('s-diagnostic')" title="Copy link"><svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor" style="flex-shrink:0"><path d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"/></svg></a></h4>
358 <p>Communication quality and polling stats: last poll time, response rate, error counts, protocol-level diagnostics.</p>
359
360 <!-- 2.4 -->
361 <h3 id="s-logs">2.4 Logs<a class="anchor-icon" href="javascript:void(0)" onclick="copyAnchor('s-logs')" title="Copy link"><svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor" style="flex-shrink:0"><path d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"/></svg></a></h3>
362 <p>Set of logs available depending on license and access rights.</p>
363 <details class="acc" id="s-techevents">
364 <summary><span class="acc-num">2.4.1</span><span class="acc-title">Technology events</span><a class="anchor-icon" href="javascript:void(0)" onclick="copyAnchor('s-techevents')" title="Copy link"><svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor" style="flex-shrink:0"><path d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"/></svg></a></summary>
365 <div class="acc-body"><p>Records all process-level events: status changes, threshold crossings, control commands, with timestamps and operator attribution.</p></div>
366 </details>
367 <details class="acc" id="s-camcoders">
368 <summary><span class="acc-num">2.4.2</span><span class="acc-title">Camcoders</span><a class="anchor-icon" href="javascript:void(0)" onclick="copyAnchor('s-camcoders')" title="Copy link"><svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor" style="flex-shrink:0"><path d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"/></svg></a></summary>
369 <div class="acc-body"><p>Log of disturbance recorder trigger events linked to oscillogram captures. Each entry links to the corresponding waveform file.</p></div>
370 </details>
371 <details class="acc" id="s-pq">
372 <summary><span class="acc-num">2.4.3</span><span class="acc-title">Power quality</span><a class="anchor-icon" href="javascript:void(0)" onclick="copyAnchor('s-pq')" title="Copy link"><svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor" style="flex-shrink:0"><path d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"/></svg></a></summary>
373 <div class="acc-body"><p>PQ events from connected analyzers: voltage dips, swells, harmonics, flicker. <strong>Requires PQA license.</strong></p></div>
374 </details>
375 <details class="acc" id="s-waveforms">
376 <summary><span class="acc-num">2.4.4</span><span class="acc-title">Waveforms</span><a class="anchor-icon" href="javascript:void(0)" onclick="copyAnchor('s-waveforms')" title="Copy link"><svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor" style="flex-shrink:0"><path d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"/></svg></a></summary>
377 <div class="acc-body"><p>List of captured oscillogram files. Click any entry to open the waveform viewer. See the <strong>Waveform Viewing Manual</strong>.</p></div>
378 </details>
379 <details class="acc" id="s-devevents">
380 <summary><span class="acc-num">2.4.5</span><span class="acc-title">Device events</span><a class="anchor-icon" href="javascript:void(0)" onclick="copyAnchor('s-devevents')" title="Copy link"><svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor" style="flex-shrink:0"><path d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"/></svg></a></summary>
381 <div class="acc-body"><p>Events reported by field devices via native protocols (IEC 61850 GOOSE, IEC-104). Includes device-side timestamps where available.</p></div>
382 </details>
383 <details class="acc" id="s-sysevents">
384 <summary><span class="acc-num">2.4.6</span><span class="acc-title">System events</span><a class="anchor-icon" href="javascript:void(0)" onclick="copyAnchor('s-sysevents')" title="Copy link"><svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor" style="flex-shrink:0"><path d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"/></svg></a></summary>
385 <div class="acc-body"><p>Server start/stop, configuration changes, licence updates, communication link state changes.</p></div>
386 </details>
387 <details class="acc" id="s-comments">
388 <summary><span class="acc-num">2.4.7</span><span class="acc-title">User comments log</span><a class="anchor-icon" href="javascript:void(0)" onclick="copyAnchor('s-comments')" title="Copy link"><svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor" style="flex-shrink:0"><path d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"/></svg></a></summary>
389 <div class="acc-body"><p>Chronological record of operator comments. Searchable by author, date, and text.</p></div>
390 </details>
391 <details class="acc" id="s-allevents">
392 <summary><span class="acc-num">2.4.8</span><span class="acc-title">All events log</span><a class="anchor-icon" href="javascript:void(0)" onclick="copyAnchor('s-allevents')" title="Copy link"><svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor" style="flex-shrink:0"><path d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"/></svg></a></summary>
393 <div class="acc-body"><p>Consolidated view of all log types in a single timeline. Supports cross-type filtering and Excel export.</p></div>
394 </details>
395 <details class="acc" id="s-customlogs">
396 <summary><span class="acc-num">2.4.9</span><span class="acc-title">Custom logs</span><a class="anchor-icon" href="javascript:void(0)" onclick="copyAnchor('s-customlogs')" title="Copy link"><svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor" style="flex-shrink:0"><path d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"/></svg></a></summary>
397 <div class="acc-body"><p>User-defined log views combining selected event types, devices, and filters. Saved per user.</p></div>
398 </details>
399
400 <!-- 2.5 -->
401 <h3 id="s-reports">2.5 Reports<a class="anchor-icon" href="javascript:void(0)" onclick="copyAnchor('s-reports')" title="Copy link"><svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor" style="flex-shrink:0"><path d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"/></svg></a></h3>
402 <details class="acc" id="s-flexible">
403 <summary><span class="acc-num">2.5.1</span><span class="acc-title">Flexible reports</span><a class="anchor-icon" href="javascript:void(0)" onclick="copyAnchor('s-flexible')" title="Copy link"><svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor" style="flex-shrink:0"><path d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"/></svg></a></summary>
404 <div class="acc-body"><p>Included in CENTO basic. Configurable tabular reports based on metering channels. See the <strong>Flexible Reports Guide</strong>.</p></div>
405 </details>
406 <details class="acc" id="s-pqreports">
407 <summary><span class="acc-num">2.5.2</span><span class="acc-title">Power quality reports</span><a class="anchor-icon" href="javascript:void(0)" onclick="copyAnchor('s-pqreports')" title="Copy link"><svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor" style="flex-shrink:0"><path d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"/></svg></a></summary>
408 <div class="acc-body"><p>Automated PQ compliance reports (EN 50160 and similar). <strong>Requires Power Quality license.</strong></p></div>
409 </details>
410 <details class="acc" id="s-shortcircuit">
411 <summary><span class="acc-num">2.5.3</span><span class="acc-title">Short circuit currents</span><a class="anchor-icon" href="javascript:void(0)" onclick="copyAnchor('s-shortcircuit')" title="Copy link"><svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor" style="flex-shrink:0"><path d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"/></svg></a></summary>
412 <div class="acc-body"><p>Max and min short-circuit currents at network nodes. <strong>Requires Short Circuit module license.</strong></p></div>
413 </details>
414
415 <h3 id="s-journal">2.6 Operative Journal<a class="anchor-icon" href="javascript:void(0)" onclick="copyAnchor('s-journal')" title="Copy link"><svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor" style="flex-shrink:0"><path d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"/></svg></a></h3>
416 <p>Shift-based logbook organised by shift, unit, and equipment type. Supports templates, attachments, and electronic signatures.</p>
417
418 <h3 id="s-widgets">2.7 Widgets<a class="anchor-icon" href="javascript:void(0)" onclick="copyAnchor('s-widgets')" title="Copy link"><svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor" style="flex-shrink:0"><path d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"/></svg></a></h3>
419 <p>Configurable dashboard panels displaying KPIs, charts, or tag values. Personalised per user with drag-and-drop layout adjustment.</p>
420
421 <h3 id="s-sound">2.8 Sound Alerts<a class="anchor-icon" href="javascript:void(0)" onclick="copyAnchor('s-sound')" title="Copy link"><svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor" style="flex-shrink:0"><path d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"/></svg></a></h3>
422 <p>Audible browser alerts for events matching configured conditions. Enabled per user in personal settings.</p>
423 <div class="note note-warning">
424 <div class="note-hd"><span>⚠</span> Warning</div>
425 <div class="note-body">Requires the browser tab to remain active. Backgrounded tabs may experience delayed alerts.</div>
426 </div>
427
428 <h3 id="s-popup">2.9 Pop-up Messages<a class="anchor-icon" href="javascript:void(0)" onclick="copyAnchor('s-popup')" title="Copy link"><svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor" style="flex-shrink:0"><path d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"/></svg></a></h3>
429 <p>Critical events trigger pop-up banners, acknowledged by the operator and logged with timestamp and user ID.</p>
430
431 <!-- Abbreviations -->
432 <h2 id="s-abbrev">Basic Abbreviations<a class="anchor-icon" href="javascript:void(0)" onclick="copyAnchor('s-abbrev')" title="Copy link"><svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor" style="flex-shrink:0"><path d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"/></svg></a></h2>
433 <table class="rn-table" style="max-width:480px">
434 <thead><tr><th style="width:80px">Abbr.</th><th>Meaning</th></tr></thead>
435 <tbody>
436 <tr><td><strong>IM</strong></td><td>Information Model</td></tr>
437 <tr><td><strong>PQA</strong></td><td>Power Quality Analyser</td></tr>
438 <tr><td><strong>SCADA</strong></td><td>Supervisory Control and Data Acquisition</td></tr>
439 <tr><td><strong>S2S</strong></td><td>Server-to-Server data exchange</td></tr>
440 <tr><td><strong>HA</strong></td><td>High Availability / Redundancy</td></tr>
441 </tbody>
442 </table>
443
444 <!-- Status Codes -->
445 <h2 id="s-statuses">Reference: Status Codes<a class="anchor-icon" href="javascript:void(0)" onclick="copyAnchor('s-statuses')" title="Copy link"><svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor" style="flex-shrink:0"><path d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"/></svg></a></h2>
446 <h3 id="s-devstat">Table 2.1 — Device Statuses<a class="anchor-icon" href="javascript:void(0)" onclick="copyAnchor('s-devstat')" title="Copy link"><svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor" style="flex-shrink:0"><path d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"/></svg></a></h3>
447 <table class="rn-table" style="max-width:480px">
448 <thead><tr><th style="width:60px">Code</th><th>Status</th></tr></thead>
449 <tbody>
450 <tr><td><span class="sc">0</span></td><td>Disabled</td></tr>
451 <tr><td><span class="sc">1</span></td><td>Normal</td></tr>
452 <tr><td><span class="sc">2</span></td><td>Data in device with errors</td></tr>
453 <tr><td><span class="sc">3</span></td><td>Device unavailable</td></tr>
454 <tr><td><span class="sc">4</span></td><td>Manual input data present</td></tr>
455 <tr><td><span class="sc">9</span></td><td>Status not available</td></tr>
456 </tbody>
457 </table>
458 <h3 id="s-tagstat">Table 2.2 — Tag Statuses<a class="anchor-icon" href="javascript:void(0)" onclick="copyAnchor('s-tagstat')" title="Copy link"><svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor" style="flex-shrink:0"><path d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"/></svg></a></h3>
459 <table class="rn-table" style="max-width:480px">
460 <thead><tr><th style="width:60px">Code</th><th>Status</th></tr></thead>
461 <tbody>
462 <tr><td><span class="sc">0</span></td><td>Disabled</td></tr>
463 <tr><td><span class="sc">1</span></td><td>Normal</td></tr>
464 <tr><td><span class="sc">2</span></td><td>Processing error</td></tr>
465 <tr><td><span class="sc">3</span></td><td>Receiving error</td></tr>
466 <tr><td><span class="sc">4</span></td><td>Manual input of tag value</td></tr>
467 <tr><td><span class="sc">5</span></td><td>Manual input in arguments</td></tr>
468 <tr><td><span class="sc">6</span></td><td>Disabled device or protocol</td></tr>
469 <tr><td><span class="sc">8</span></td><td>Bad tag quality</td></tr>
470 <tr><td><span class="sc">9</span></td><td>Status unknown</td></tr>
471 </tbody>
472 </table>
473
474 </div><!-- /doc-content -->
475
476 <!-- ── TOC right — Oracle style ── -->
477 <nav class="doc-toc">
478 <div class="toc-header">
479 <strong>On This Page</strong>
480 <button class="toc-toggle" id="toc-tog" title="Collapse">«</button>
481 </div>
482 <ul id="toc-list">
483 <li class="tl1"><a href="#s-login" data-toc>1. System Login</a></li>
484 <li class="tl1"><a href="#s-ui" data-toc>2. User Interface</a></li>
485 <li class="tl2"><a href="#s-menu" data-toc>2.1 Main Menu</a></li>
486 <li class="tl2"><a href="#s-diagrams" data-toc>2.2 Diagrams</a></li>
487 <li class="tl3"><a href="#s-control" data-toc>2.2.1 Control</a></li>
488 <li class="tl2"><a href="#s-analysis" data-toc>2.3 Analysis</a></li>
489 <li class="tl3"><a href="#s-rtd" data-toc>2.3.1 Real-time data</a></li>
490 <li class="tl3"><a href="#s-metering" data-toc>2.3.2 Metering data</a></li>
491 <li class="tl3"><a href="#s-receipt" data-toc>2.3.3 Receipt form</a></li>
492 <li class="tl3"><a href="#s-diagnostic" data-toc>2.3.4 Device diagnostic</a></li>
493 <li class="tl2"><a href="#s-logs" data-toc>2.4 Logs</a></li>
494 <li class="tl3"><a href="#s-techevents" data-toc>2.4.1 Technology events</a></li>
495 <li class="tl3"><a href="#s-camcoders" data-toc>2.4.2 Camcoders</a></li>
496 <li class="tl3"><a href="#s-pq" data-toc>2.4.3 Power quality</a></li>
497 <li class="tl3"><a href="#s-waveforms" data-toc>2.4.4 Waveforms</a></li>
498 <li class="tl3"><a href="#s-devevents" data-toc>2.4.5 Device events</a></li>
499 <li class="tl3"><a href="#s-sysevents" data-toc>2.4.6 System events</a></li>
500 <li class="tl3"><a href="#s-comments" data-toc>2.4.7 Comments log</a></li>
501 <li class="tl3"><a href="#s-allevents" data-toc>2.4.8 All events</a></li>
502 <li class="tl3"><a href="#s-customlogs" data-toc>2.4.9 Custom logs</a></li>
503 <li class="tl2"><a href="#s-reports" data-toc>2.5 Reports</a></li>
504 <li class="tl3"><a href="#s-flexible" data-toc>2.5.1 Flexible reports</a></li>
505 <li class="tl3"><a href="#s-pqreports" data-toc>2.5.2 Power quality</a></li>
506 <li class="tl3"><a href="#s-shortcircuit" data-toc>2.5.3 Short circuit</a></li>
507 <li class="tl2"><a href="#s-journal" data-toc>2.6 Operative journal</a></li>
508 <li class="tl2"><a href="#s-widgets" data-toc>2.7 Widgets</a></li>
509 <li class="tl2"><a href="#s-sound" data-toc>2.8 Sound alerts</a></li>
510 <li class="tl2"><a href="#s-popup" data-toc>2.9 Pop-up messages</a></li>
511 <li class="tl1"><a href="#s-abbrev" data-toc>Abbreviations</a></li>
512 <li class="tl1"><a href="#s-statuses" data-toc>Status Codes</a></li>
513 </ul>
514 </nav>
515
516 </div><!-- /doc-wrap -->
517 <script>
518 (function(){
519 var bar = document.getElementById('rn-prog');
520 var top = document.getElementById('rn-top');
521 window.addEventListener('scroll', function(){
522 var d = document.documentElement;
523 var pct = d.scrollTop / (d.scrollHeight - d.clientHeight);
524 bar.style.width = (pct*100)+'%';
525 d.scrollTop > 280 ? top.classList.add('on') : top.classList.remove('on');
526 }, {passive:true});
527
528 /* TOC active via IntersectionObserver */
529 var links = Array.from(document.querySelectorAll('[data-toc]'));
530 var secs = links.map(function(a){
531 return {el: document.getElementById(a.getAttribute('href').slice(1)), a:a};
532 }).filter(function(s){return s.el;});
533
534 var busy = false;
535 var obs = new IntersectionObserver(function(entries){
536 if (busy) return;
537 entries.forEach(function(e){
538 if (!e.isIntersecting) return;
539 var i = secs.findIndex(function(s){return s.el===e.target;});
540 if (i<0) return;
541 secs.forEach(function(s){s.a.classList.remove('toc-on');});
542 secs[i].a.classList.add('toc-on');
543 var toc = document.querySelector('.doc-toc');
544 var link = secs[i].a;
545 toc.scrollTop = link.offsetTop - toc.offsetTop - toc.clientHeight/2 + link.clientHeight/2;
546 });
547 }, {rootMargin:'-8% 0px -60% 0px', threshold:0});
548 secs.forEach(function(s){obs.observe(s.el);});
549
550 links.forEach(function(a){
551 a.addEventListener('click', function(e){
552 var id = a.getAttribute('href').slice(1);
553 var el = document.getElementById(id);
554 if (!el) return;
555 e.preventDefault();
556 busy = true;
557 secs.forEach(function(s){s.a.classList.remove('toc-on');});
558 a.classList.add('toc-on');
559 el.scrollIntoView({behavior:'smooth',block:'start'});
560 setTimeout(function(){busy=false;}, 900);
561 });
562 });
563
564 /* TOC collapse */
565 var tocList = document.getElementById('toc-list');
566 var togBtn = document.getElementById('toc-tog');
567 var collapsed = false;
568 togBtn && togBtn.addEventListener('click', function(){
569 collapsed = !collapsed;
570 tocList.style.display = collapsed ? 'none' : '';
571 togBtn.textContent = collapsed ? '»' : '«';
572 });
573
574 /* Lightbox */
575 var lb = document.getElementById('rn-lb');
576 var lbI = document.getElementById('rn-lb-img');
577 var lbC = document.getElementById('rn-lb-cap');
578 window.openLightbox = function(img){
579 lbI.src = img.src; lbI.alt = img.alt; lbC.textContent = img.alt;
580 lb.classList.add('open'); document.body.style.overflow='hidden';
581 };
582 window.closeLightbox = function(){
583 lb.classList.remove('open'); document.body.style.overflow='';
584 };
585 lb.addEventListener('click', function(e){if(e.target===lb)closeLightbox();});
586 document.addEventListener('keydown', function(e){if(e.key==='Escape')closeLightbox();});
587
588 /* Copy anchor */
589 var toast = document.getElementById('rn-toast');
590 var t;
591 window.copyAnchor = function(id){
592 var url = location.href.split('#')[0]+'#'+id;
593 if(navigator.clipboard) navigator.clipboard.writeText(url).catch(function(){});
594 else { var x=document.createElement('textarea');x.value=url;document.body.appendChild(x);x.select();document.execCommand('copy');document.body.removeChild(x); }
595 toast.classList.add('on');
596 clearTimeout(t);
597 t = setTimeout(function(){toast.classList.remove('on');}, 1600);
598 };
599
600 /* ── Sticky TOC via JS ──
601 Uses position:absolute→fixed switch. No placeholder needed because
602 .doc-content has a fixed margin-right — content width never changes. */
603 (function(){
604 var toc = document.querySelector('.doc-toc');
605 var wrap = document.querySelector('.doc-wrap');
606 if (!toc || !wrap) return;
607
608 var navbar = document.querySelector('.navbar, nav.navbar, #topBar, header');
609 var navH = navbar ? navbar.offsetHeight : 0;
610 var footer = document.querySelector('footer, .xwikifooter, #xwikifooter, .bottombar, .sticky-container');
611
612 function update() {
613 var wr = wrap.getBoundingClientRect();
614
615 if (wr.top <= navH) {
616 /* Doc-wrap has scrolled above navbar — fix the TOC */
617 var footerTop = footer ? footer.getBoundingClientRect().top : window.innerHeight;
618 var h = Math.max(0, Math.min(window.innerHeight, footerTop) - navH);
619
620 toc.classList.add('is-fixed');
621 toc.style.top = navH + 'px';
622 toc.style.left = (wr.right - 200) + 'px'; /* right edge of wrap minus TOC width */
623 toc.style.height = h + 'px';
624 } else {
625 /* Still in natural position */
626 toc.classList.remove('is-fixed');
627 toc.style.top = toc.style.left = toc.style.height = '';
628 }
629 }
630
631 requestAnimationFrame(function(){ requestAnimationFrame(function(){
632 update();
633 window.addEventListener('scroll', update, {passive:true});
634 window.addEventListener('resize', update, {passive:true});
635 }); });
636 })();
637
638 /* ── Left panel navigation hints ── */
639 (function(){
640 var hints = {
641 'Preface': 'Introduction to CENTO Software documentation',
642 '1. User Manual': 'Web interface guide — login, diagrams, analysis, logs, reports',
643 '2. Setup Manual': 'System configuration and setup for administrators',
644 '3. Metering Channels': 'Metering channel configuration and data collection setup',
645 '4. Structure and Modules Description': 'CENTO system architecture and module overview',
646 '5. Diagrams Development Manual': 'Creating and configuring SCADA mimic diagrams',
647 '6. Flexible Reports Guide': 'Building configurable tabular reports from metering data',
648 '7. Events Setup': 'Configuring event rules, thresholds, and notifications',
649 '8. Control Setup Manual': 'Setting up remote control and switching operations',
650 'Network Diagram (CLOUD)': 'CENTO deployment topology for cloud installations',
651 'Network Diagram (On-Prem)': 'CENTO deployment topology for on-premises installations',
652 'Server Configuration Example': 'Reference server setup and configuration example',
653 'Technical Requirements': 'Hardware and software requirements for CENTO deployment',
654 'DEMO server': 'Access the live CENTO demo environment',
655 'Release Notes': 'Changelog and version history for the CENTO platform',
656 };
657 document.querySelectorAll('#leftPanels a').forEach(function(a){
658 var text = a.textContent.trim();
659 var hint = hints[text] || hints[text.replace(/^\d+\.\s*/, '')];
660 if (hint) a.setAttribute('data-hint', hint);
661 });
662 })();
663 })();
664 </script>
665 {{/html}}