DIR : /home/kozerus/public_html/ko_center/ko_center.html
/home/kozerus/public_html/ko_center
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ko_center System User Documentation</title>
<style type="text/css">
body { font-family: Arial, sans-serif; margin: 20px; background-color: #f0f0f0; }
h1 { color: #333; border-bottom: 2px solid #0066cc; padding-bottom: 5px; }
h2 { color: #0066cc; margin-top: 30px; }
h3 { color: #333; }
code { background-color: #eee; padding: 2px 4px; border-radius: 3px; font-size: 14px; }
pre { background-color: #f8f8f8; border: 1px solid #ddd; padding: 10px; border-radius: 4px; overflow-x: auto; }
table { border-collapse: collapse; margin: 10px 0; }
th, td { border: 1px solid #ccc; padding: 6px 10px; text-align: left; }
th { background-color: #0066cc; color: white; }
tr:nth-child(even) { background-color: #f9f9f9; }
.note { background-color: #fff3cd; border: 1px solid #ffc107; padding: 10px; margin: 10px 0; border-radius: 4px; }
.warning { background-color: #f8d7da; border: 1px solid #dc3545; padding: 10px; margin: 10px 0; border-radius: 4px; }
.info { background-color: #d1ecf1; border: 1px solid #17a2b8; padding: 10px; margin: 10px 0; border-radius: 4px; }
a { color: #0066cc; text-decoration: none; }
a:hover { text-decoration: underline; }
.toc { margin: 20px 0; padding: 15px; background: white; border: 1px solid #ddd; border-radius: 4px; }
.toc ul { list-style-type: none; padding-left: 10px; }
.toc li { margin: 4px 0; }
</style>
</head>
<body>
<h1>ko_center System User Documentation</h1>
<p><strong>Version:</strong> v0.70 (2026-08-01)<br />
<strong>Type:</strong> PHP/Perl Web Application<br />
<strong>Database:</strong> SQLite (ko_center.db3)<br />
<strong>Location:</strong> /os/ai/io/ko_center.php</p>
<div class="toc">
<h2>Table of Contents</h2>
<ul>
<li><a href="#overview">Overview</a></li>
<li><a href="#access">Access & Login</a></li>
<li><a href="#navigation">Navigation & Interface</a></li>
<li><a href="#urls">URL Routing & Query Parameters</a></li>
<li><a href="#leds">LED Display System</a></li>
<li><a href="#grids">Database Grid Views</a></li>
<li><a href="#reports">Reports</a></li>
<li><a href="#kb">Knowledge Base</a></li>
<li><a href="#certs">Certificates</a></li>
<li><a href="#nodes">Nodes / Hosts</a></li>
<li><a href="#hw">Hardware Inventory</a></li>
<li><a href="#plans">Plans</a></li>
<li><a href="#tools">Tools</a></li>
<li><a href="#trigger">Trigger / Auto-Refresh</a></li>
<li><a href="#database">Database Schema</a></li>
<li><a href="#files">Key Files</a></li>
</ul>
</div>
<!-- ================================================================== -->
<h2 id="overview">1. Overview</h2>
<!-- ================================================================== -->
<p>ko_center is a single-file web application that provides a centralized
dashboard for managing and monitoring system resources. It uses SQLite
as its backend database and generates HTML pages dynamically via PHP.</p>
<p>The system provides:</p>
<ul>
<li><strong>LED indicator display</strong> — visual status indicators with
configurable colors, speeds, and types (manual, date, cmd, null)</li>
<li><strong>Database grid views</strong> — sortable, filterable table views
of any database table</li>
<li><strong>Reports</strong> — SQL-based reports with CSV and XML export</li>
<li><strong>Knowledge Base</strong> — CRUD operations for KB articles</li>
<li><strong>Certificate management</strong> — view and manage certificates</li>
<li><strong>Node/Host management</strong> — view and manage network nodes</li>
<li><strong>Hardware inventory</strong> — detailed hardware tracking</li>
<li><strong>Zoom viewer</strong> — interactive zoomable image viewer with
hotspots</li>
<li><strong>Trigger endpoint</strong> — forces browser refresh when called
by another user</li>
</ul>
<!-- ================================================================== -->
<h2 id="access">2. Access & Login</h2>
<!-- ================================================================== -->
<h3>Login</h3>
<p>Access the system by navigating to the ko_center URL. If not logged in,
the system presents a login form.</p>
<p><strong>URL:</strong> <code>http://<host>/ko_center/ko_center.php</code></p>
<p>Login credentials are validated against the <code>hosts.allow</code> file
located at <code>/os/ai/io/../safer/hosts.allow</code>.</p>
<p>Once logged in, the user's role determines which features and data they
can access.</p>
<h3>Logout</h3>
<p>Click the logout button (white icon) in the navigation bar to end your
session.</p>
<div class="note">
<strong>Note:</strong> The system uses PHP sessions (<code>$_SESSION</code>)
to track logged-in users. The session stores the user's role, which controls
access to different features.
</div>
<!-- ================================================================== -->
<h2 id="navigation">3. Navigation & Interface</h2>
<!-- ================================================================== -->
<h3>Button Squares</h3>
<p>The main navigation bar provides quick access to all major features via
button squares. Available buttons depend on user role:</p>
<table>
<tr><th>Button</th><th>URL</th><th>Description</th></tr>
<tr><td>Leds</td><td><code>?q=leds</code></td><td>LED indicator display</td></tr>
<tr><td>Grid</td><td><code>?q=db/grid</code></td><td>Database grid views</td></tr>
<tr><td>KB</td><td><code>?q=kb</code></td><td>Knowledge Base</td></tr>
<tr><td>Reports</td><td><code>?q=reports</code></td><td>Reports & exports</td></tr>
<tr><td>Certs</td><td><code>?q=certs</code></td><td>Certificate management</td></tr>
<tr><td>Nodes</td><td><code>?q=nodes</code></td><td>Node/Host management</td></tr>
<tr><td>HW</td><td><code>?q=hw</code></td><td>Hardware inventory</td></tr>
<tr><td>Plans</td><td><code>?q=plans</code></td><td>Plan management</td></tr>
<tr><td>Config</td><td><code>?q=config</code></td><td>System configuration</td></tr>
<tr><td>Login</td><td><code>?q=login</code></td><td>Login form</td></tr>
<tr><td>Logout</td><td><code>?q=logout</code></td><td>End session</td></tr>
<tr><td>Tools</td><td><code>?q=tools</code></td><td>System tools</td></tr>
</table>
<!-- ================================================================== -->
<h2 id="urls">4. URL Routing & Query Parameters</h2>
<!-- ================================================================== -->
<p>The system uses the <code>q</code> query parameter for routing. The
parameter value is split by <code>/</code> to determine the page and
sub-actions.</p>
<h3>URL Format</h3>
<pre>ko_center.php?q=<page>/<action>/<id></pre>
<h3>Routing Examples</h3>
<table>
<tr><th>URL</th><th>Page</th><th>Action</th></tr>
<tr><td><code>?q=leds</code></td><td>LED Display</td><td>Show all current LEDs</td></tr>
<tr><td><code>?q=leds/detail/cab1</code></td><td>LED Detail</td><td>Show detail for cab1</td></tr>
<tr><td><code>?q=kb</code></td><td>Knowledge Base</td><td>List KB entries</td></tr>
<tr><td><code>?q=kb/new</code></td><td>KB</td><td>Create new KB entry</td></tr>
<tr><td><code>?q=kb/view/123</code></td><td>KB</td><td>View KB entry #123</td></tr>
<tr><td><code>?q=reports/rpt</code></td><td>Reports</td><td>Run a report</td></tr>
<tr><td><code>?q=reports/sql</code></td><td>Reports</td><td>SQL query interface</td></tr>
<tr><td><code>?q=db/grid/ko_center/leds</code></td><td>Grid</td><td>Grid view of leds table</td></tr>
<tr><td><code>?q=hw</code></td><td>Hardware</td><td>Hardware inventory</td></tr>
<tr><td><code>?q=hw/cab1</code></td><td>Hardware</td><td>Hardware for cab1</td></tr>
<tr><td><code>?q=trigger</code></td><td>Trigger</td><td>Broadcast refresh signal</td></tr>
<tr><td><code>?q=login</code></td><td>Login</td><td>Login form</td></tr>
<tr><td><code>?q=logout</code></td><td>Logout</td><td>End session</td></tr>
<tr><td><code>?q=config</code></td><td>Config</td><td>System configuration</td></tr>
<tr><td><code>?q=zoom/code/type/rowid</code></td><td>Zoom</td><td>Zoom viewer with hotspot</td></tr>
<tr><td><code>?q=zview/file/xml</code></td><td>ZView</td><td>Full-screen zoom view</td></tr>
<tr><td><code>?q=ptviewer</code></td><td>PTViewer</td><td>Panorama viewer</td></tr>
<tr><td><code>?q=ptobject</code></td><td>PTObject</td><td>Panorama object</td></tr>
<tr><td><code>?q=about</code></td><td>About</td><td>About page</td></tr>
<tr><td><code>?q=konet</code></td><td>Konet</td><td>Contact information</td></tr>
<tr><td><code>?q=form_request_access</code></td><td>Access</td><td>Request access form</td></tr>
</table>
<!-- ================================================================== -->
<h2 id="leds">5. LED Display System</h2>
<!-- ================================================================== -->
<p>The LED display system is the core visual component of ko_center. Each
LED record represents a monitored item with configurable visual properties.</p>
<h3>LED Record Fields</h3>
<table>
<tr><th>Field</th><th>Description</th></tr>
<tr><td><code>led_id</code></td><td>Unique identifier (auto-increment)</td></tr>
<tr><td><code>led_status</code></td><td>Current status (active/inactive)</td></tr>
<tr><td><code>led_code</code></td><td>Short code identifier</td></tr>
<tr><td><code>led_name</code></td><td>Display name of the LED</td></tr>
<tr><td><code>led_dttm</code></td><td>Timestamp marker ("current" for active records)</td></tr>
<tr><td><code>led_color</code></td><td>Indicator color (red, yellow, blue, green, pink, orange, black, white, trans)</td></tr>
<tr><td><code>led_speed</code></td><td>Blink speed (0-3: no blink, slow, medium, fast)</td></tr>
<tr><td><code>led_type</code></td><td>LED type: <code>manual</code>, <code>date</code>, <code>cmd</code>, <code>null</code></td></tr>
<tr><td><code>led_date</code></td><td>Date value (used with date-type LEDs)</td></tr>
<tr><td><code>led_cmd</code></td><td>Shell command to execute (used with cmd-type LEDs)</td></tr>
<tr><td><code>led_cmdout</code></td><td>Command output</td></tr>
<tr><td><code>led_desc</code></td><td>Description text</td></tr>
<tr><td><code>led_misc</code></td><td>Miscellaneous data</td></tr>
<tr><td><code>led_city</code></td><td>Location: city</td></tr>
<tr><td><code>led_bldg</code></td><td>Location: building</td></tr>
<tr><td><code>led_loc_code</code></td><td>Location code</td></tr>
<tr><td><code>led_floor</code></td><td>Location: floor</td></tr>
<tr><td><code>led_group</code></td><td>Group assignment</td></tr>
<tr><td><code>led_orgs</code></td><td>Organization assignment</td></tr>
<tr><td><code>led_title</code></td><td>Title/label</td></tr>
<tr><td><code>led_published</code></td><td>Published flag (1/0)</td></tr>
<tr><td><code>led_width</code></td><td>Display width</td></tr>
<tr><td><code>led_height</code></td><td>Display height</td></tr>
<tr><td><code>led_comment</code></td><td>User comment</td></tr>
<tr><td><code>led_filename</code></td><td>Associated file name</td></tr>
<tr><td><code>led_user</code></td><td>User who created/modified</td></tr>
<tr><td><code>led_user_ip</code></td><td>IP address of user</td></tr>
<tr><td><code>led_referer</code></td><td>HTTP referer</td></tr>
<tr><td><code>led_remote_port</code></td><td>Remote port number</td></tr>
<tr><td><code>led_viewrole</code></td><td>Role required to view</td></tr>
<tr><td><code>led_user_agent</code></td><td>Browser user agent string</td></tr>
<tr><td><code>led_unique_id</code></td><td>Unique identifier string</td></tr>
<tr><td><code>led_err</code></td><td>Error flag</td></tr>
<tr><td><code>led_fix</code></td><td>Fix status</td></tr>
<tr><td><code>led_os</code></td><td>Operating system</td></tr>
</table>
<h3>LED Types</h3>
<table>
<tr><th>Type</th><th>Behavior</th></tr>
<tr><td><code>manual</code></td><td>Static indicator with configurable color and blink speed</td></tr>
<tr><td><code>date</code></td><td>Calculates days from a target date; color and speed change based on proximity</td></tr>
<tr><td><code>cmd</code></td><td>Executes a shell command; shows green if command succeeds, red if it fails</td></tr>
<tr><td><code>null</code></td><td>Shows a null/blank indicator</td></tr>
</table>
<h3>LED Blinking</h3>
<p>LEDs use animated GIF files for blinking effects. The GIF filename is
constructed from the color and speed:</p>
<pre>ani_<em>color</em><em>speed</em>.gif</pre>
<p>Example: <code>ani_red1.gif</code> (red, slow blink)</p>
<h3>LED Detail View</h3>
<p>Clicking an LED name navigates to the detail view (<code>?q=detail/<name></code>),
which shows associated hardware items, images, and metadata.</p>
<!-- ================================================================== -->
<h2 id="grids">6. Database Grid Views</h2>
<!-- ================================================================== -->
<p>The grid system provides sortable, filterable table views of any database
table. It supports pagination, column sorting, and inline editing.</p>
<h3>Accessing Grid Views</h3>
<pre>ko_center.php?q=db/grid/<dbcode>/<table></pre>
<p>Or use the shortcut:</p>
<pre>ko_center.php?q=grid?dbcode=<dbcode>&table=<table></pre>
<h3>Grid Features</h3>
<ul>
<li><strong>Column sorting</strong> — click column headers to sort</li>
<li><strong>Pagination</strong> — navigate through large result sets</li>
<li><strong>Search/filter</strong> — filter rows by column values</li>
<li><strong>XML/CSV export</strong> — export grid data in multiple formats</li>
<li><strong>Inline editing</strong> — edit cell values directly in the grid</li>
</ul>
<h3>Supported Database Tables</h3>
<p>The system supports multiple database files with role-based access:</p>
<ul>
<li><code>ko_center.db3</code> — Main center database (leds, randomus, ko_plans, ko_hw, etc.)</li>
<li><code>koaac_kb.db3</code> — Knowledge Base database</li>
<li><code>ko_center_certs.db3</code> — Certificates database</li>
</ul>
<!-- ================================================================== -->
<h2 id="reports">7. Reports</h2>
<!-- ================================================================== -->
<p>The reports system provides three types of report views:</p>
<h3>SQL Report</h3>
<p>Run custom SQL queries against the database and view results in a table.</p>
<pre>ko_center.php?q=reports/sql</pre>
<h3>CSV Report</h3>
<p>Export query results as CSV files for spreadsheet processing.</p>
<pre>ko_center.php?q=reports/rpt/<rptcode>&fmt=header_csv</pre>
<h3>XML Report</h3>
<p>Export query results as XML for programmatic consumption.</p>
<pre>ko_center.php?q=kb/rpts/rpt_id&fmt=xml</pre>
<h3>Report Types</h3>
<table>
<tr><th>Report</th><th>URL</th><th>Description</th></tr>
<tr><td>LED Reports</td><td><code>?q=leds/rpts</code></td><td>LED status and configuration reports</td></tr>
<tr><td>KB Reports</td><td><code>?q=kb/rpts</code></td><td>Knowledge Base article reports</td></tr>
<tr><td>Datacenter Reports</td><td><code>?q=dc/rpts</code></td><td>Datacenter infrastructure reports</td></tr>
<tr><td>Certificate Reports</td><td><code>?q=certs/rpts</code></td><td>Certificate status reports</td></tr>
<tr><td>Console Reports</td><td><code>?q=cons/rpts</code></td><td>Console/log reports</td></tr>
<tr><td>Host Reports</td><td><code>?q=hosts/rpts</code></td><td>Host inventory reports</td></tr>
<tr><td>ko_centerd Reports</td><td><code>?q=ko_centerd/rpts</code></td><td>ko_center daemon reports</td></tr>
<tr><td>Node Reports</td><td><code>?q=nodes/rpts</code></td><td>Node/network reports</td></tr>
</table>
<!-- ================================================================== -->
<h2 id="kb">8. Knowledge Base</h2>
<!-- ================================================================== -->
<p>The Knowledge Base (KB) system allows users to create, view, and manage
articles. KB entries are stored in the <code>koaac_kb</code> table in the
<code>ko_center.db3</code> database.</p>
<h3>KB Table Schema</h3>
<table>
<tr><th>Field</th><th>Type</th><th>Description</th></tr>
<tr><td><code>kb_id</code></td><td>INTEGER PK</td><td>Auto-increment primary key</td></tr>
<tr><td><code>kb_title</code></td><td>VARCHAR</td><td>Article title</td></tr>
<tr><td><code>kb_body</code></td><td>TEXT</td><td>Article content</td></tr>
<tr><td><code>kb_dttm</code></td><td>VARCHAR</td><td>Timestamp</td></tr>
<tr><td><code>kb_user</code></td><td>VARCHAR</td><td>Author username</td></tr>
<tr><td><code>kb_type</code></td><td>VARCHAR</td><td>Article type/category</td></tr>
</table>
<h3>KB Actions</h3>
<ul>
<li><strong>List</strong> — <code>?q=kb</code> — View all KB entries</li>
<li><strong>New</strong> — <code>?q=kb/new</code> — Create a new article</li>
<li><strong>View</strong> — <code>?q=kb/view/<id></code> — Read an article</li>
<li><strong>Modify</strong> — <code>?q=kb/mod/<id></code> — Edit an article</li>
<li><strong>Reports</strong> — <code>?q=kb/rpts</code> — View KB reports</li>
</ul>
<!-- ================================================================== -->
<h2 id="certs">9. Certificates</h2>
<!-- ================================================================== -->
<p>The certificate management system allows viewing and managing digital
certificates stored in the <code>ko_center_certs.db3</code> database.</p>
<h3>Certificate Actions</h3>
<ul>
<li><strong>List</strong> — <code>?q=certs</code> — View all certificates</li>
<li><strong>View</strong> — <code>?q=certs/view/<code></code> — View certificate details</li>
<li><strong>Reports</strong> — <code>?q=certs/rpts</code> — Certificate status reports</li>
</ul>
<!-- ================================================================== -->
<h2 id="nodes">10. Nodes / Hosts</h2>
<!-- ================================================================== -->
<p>The node management system tracks network nodes and hosts. Nodes are
displayed with their status, location, and associated metadata.</p>
<h3>Node Actions</h3>
<ul>
<li><strong>List</strong> — <code>?q=nodes</code> — View all nodes</li>
<li><strong>Reports</strong> — <code>?q=nodes/rpts</code> — Node reports</li>
</ul>
<!-- ================================================================== -->
<h2 id="hw">11. Hardware Inventory</h2>
<!-- ================================================================== -->
<p>The hardware inventory system tracks physical equipment with details such
as model, serial number, IP address, HRC tag, and associated cabinet/location.</p>
<h3>Hardware Actions</h3>
<ul>
<li><strong>List</strong> — <code>?q=hw</code> — View all hardware</li>
<li><strong>Filter</strong> — <code>?q=hw&cab=cab1</code> — Filter by cabinet</li>
<li><strong>Filter</strong> — <code>?q=hw&item=item1</code> — Filter by item</li>
<li><strong>Filter</strong> — <code>?q=hw&sn=SN123</code> — Filter by serial number</li>
<li><strong>Filter</strong> — <code>?q=hw&ip=10.0.0.1</code> — Filter by IP address</li>
<li><strong>Filter</strong> — <code>?q=hw&hrctag=TAG123</code> — Filter by HRC tag</li>
</ul>
<!-- ================================================================== -->
<h2 id="plans">12. Plans</h2>
<!-- ================================================================== -->
<p>The plans system tracks project plans with steps, items, and status
tracking.</p>
<h3>Plan Actions</h3>
<ul>
<li><strong>List</strong> — <code>?q=plans</code> — View all plans</li>
<li><strong>View</strong> — <code>?q=plans/view</code> — View plan details</li>
<li><strong>Steps</strong> — <code>?q=plans/steps</code> — View plan steps</li>
<li><strong>Items</strong> — <code>?q=plans/items</code> — View plan items</li>
<li><strong>Reports</strong> — <code>?q=plans/reports</code> — Plan reports</li>
</ul>
<!-- ================================================================== -->
<h2 id="tools">13. Tools</h2>
<!-- ================================================================== -->
<p>The tools section provides access to various system utilities:</p>
<h3>Scrub</h3>
<p>Data cleanup and maintenance tool.</p>
<pre>ko_center.php?q=scrub</pre>
<h3>Upload</h3>
<p>File upload utility for KB attachments and other files.</p>
<pre>ko_center.php?q=upload</pre>
<h3>Zoom Viewer</h3>
<p>Interactive zoomable image viewer with hotspot navigation.</p>
<pre>ko_center.php?q=zoom/<code>/<type>/<rowid></pre>
<h3>ZView</h3>
<p>Full-screen zoom view with XML-based hotspot configuration.</p>
<pre>ko_center.php?q=zview/<file>/<xml></pre>
<h3>PTViewer</h3>
<p>Panorama/tour viewer for 360-degree images.</p>
<pre>ko_center.php?q=ptviewer</pre>
<h3>PTObject</h3>
<p>Individual panorama object viewer.</p>
<pre>ko_center.php?q=ptobject</pre>
<!-- ================================================================== -->
<h2 id="trigger">14. Trigger / Auto-Refresh</h2>
<!-- ================================================================== -->
<p>The trigger system allows one browser to signal all other browsers to
refresh their views. This is useful when one user makes a change that
should be immediately visible to all other users.</p>
<h3>How It Works</h3>
<ol>
<li>Browser A is viewing the ko_center dashboard</li>
<li>Browser B (or any client) calls <code>ko_center.php?q=trigger</code></li>
<li>The trigger endpoint writes a timestamp to
<code>ko_trigger.dat</code></li>
<li>Browser A's JavaScript polling detects the new timestamp</li>
<li>Browser A automatically reloads the page</li>
</ol>
<h3>Trigger Endpoint</h3>
<pre>ko_center.php?q=trigger</pre>
<p>The endpoint accepts an optional <code>last_check</code> parameter:</p>
<pre>ko_center.php?q=trigger&last_check=2026-08-01 07:00:00</pre>
<h3>Response Format</h3>
<pre>{
"triggered": true,
"timestamp": "2026-08-01 07:05:00",
"since": "2026-08-01 07:00:00"
}</pre>
<h3>Client-Side Polling</h3>
<p>The client page includes JavaScript that polls the trigger endpoint every
few seconds. When a new trigger is detected, the browser automatically
reloads.</p>
<!-- ================================================================== -->
<h2 id="database">15. Database Schema</h2>
<!-- ================================================================== -->
<h3>Main Database: ko_center.db3</h3>
<p>Location: <code>/os/ai/io/ko_center.db3</code> (39.6 MB)</p>
<h3>Key Tables</h3>
<table>
<tr><th>Table</th><th>Description</th><th>Row Count</th></tr>
<tr><td><code>leds</code></td><td>LED indicator records</td><td>262</td></tr>
<tr><td><code>randomus</code></td><td>Random user data</td><td>101</td></tr>
<tr><td><code>leds_randomus</code></td><td>Combined LED + randomus data</td><td>101</td></tr>
<tr><td><code>ko_plans</code></td><td>Project plans</td><td>—</td></tr>
<tr><td><code>ko_hw</code></td><td>Hardware inventory</td><td>—</td></tr>
<tr><td><code>koaac_kb</code></td><td>Knowledge Base articles</td><td>—</td></tr>
<tr><td><code>nodes</code></td><td>Network nodes</td><td>—</td></tr>
<tr><td><code>roles</code></td><td>User roles</td><td>—</td></tr>
<tr><td><code>users</code></td><td>User accounts</td><td>—</td></tr>
<tr><td><code>cabs</code></td><td>Cabinet/rack data</td><td>—</td></tr>
<tr><td><code>hrc_datacenters_equipment</code></td><td>Datacenter equipment</td><td>—</td></tr>
<tr><td><code>defrag_plan</code></td><td>Defragmentation plans</td><td>—</td></tr>
<tr><td><code>periods</code></td><td>Time periods</td><td>—</td></tr>
<tr><td><code>rpts</code></td><td>Report definitions</td><td>—</td></tr>
<tr><td><code>cfg</code></td><td>Configuration settings</td><td>—</td></tr>
<tr><td><code>dbs</code></td><td>Database registry</td><td>—</td></tr>
<tr><td><code>menus</code></td><td>Menu definitions</td><td>—</td></tr>
<tr><td><code>fp</code></td><td>Floor plan data</td><td>—</td></tr>
<tr><td><code>grid</code></td><td>Grid configuration</td><td>—</td></tr>
<tr><td><code>us</code></td><td>User-specific data</td><td>—</td></tr>
<tr><td><code>n11</code></td><td>N11 monitoring data</td><td>—</td></tr>
<tr><td><code>pano</code></td><td>Panorama data</td><td>—</td></tr>
<tr><td><code>obj</code></td><td>Object data</td><td>—</td></tr>
<tr><td><code>zoom</code></td><td>Zoom configuration</td><td>—</td></tr>
<tr><td><code>zoomxml</code></td><td>Zoom XML data</td><td>—</td></tr>
<tr><td><code>shelves</code></td><td>Shelf data</td><td>—</td></tr>
<tr><td><code>hallo</code></td><td>Hallo data</td><td>—</td></tr>
<tr><td><code>halo</code></td><td>Halo data</td><td>—</td></tr>
<tr><td><code>nimbus</code></td><td>Nimbus data</td><td>—</td></tr>
<tr><td><code>aureole</code></td><td>Aureole data</td><td>—</td></tr>
<tr><td><code>leds_defaults</code></td><td>LED default settings</td><td>—</td></tr>
<tr><td><code>leds_racks</code></td><td>LED rack mappings</td><td>—</td></tr>
<tr><td><code>leds_randomus</code></td><td>Combined LED + randomus</td><td>101</td></tr>
</table>
<h3>leds_randomus Table</h3>
<p>The <code>leds_randomus</code> table combines the schema of the
<code>leds</code> table (all columns, with LED fields blank/NULL) with all
columns from the <code>randomus</code> table. It contains only records from
the <code>randomus</code> table (101 rows).</p>
<p><strong>Creation script:</strong> <code>/os/ai/io/new_leds.py</code></p>
<!-- ================================================================== -->
<h2 id="files">16. Key Files</h2>
<!-- ================================================================== -->
<table>
<tr><th>File</th><th>Description</th></tr>
<tr><td><code>/os/ai/io/ko_center.php</code></td><td>Main application (PHP, 16,322 lines, 205 functions)</td></tr>
<tr><td><code>/os/ai/io/ko_center.db3</code></td><td>SQLite database (39.6 MB)</td></tr>
<tr><td><code>/os/ai/io/ko_center.py</code></td><td>Python Flask equivalent of ko_center.php</td></tr>
<tr><td><code>/os/ai/io/new_leds.py</code></td><td>Script to create leds_randomus from leds + randomus</td></tr>
<tr><td><code>/os/ai/io/new_leds_tbl.py</code></td><td>Generalized script to create leds_<tbl2> from leds + any table</td></tr>
<tr><td><code>/os/ai/io/cr_leds.py</code></td><td>Script to create blinking LED GIF images</td></tr>
<tr><td><code>/os/ai/io/response_trigger_plan.txt</code></td><td>Trigger mechanism design document</td></tr>
<tr><td><code>/os/ai/io/prompt_php_trigger.txt</code></td><td>Original prompt for trigger feature</td></tr>
<tr><td><code>/os/ai/io/prompt_cr_icons.txt</code></td><td>Original prompt for LED GIF creation</td></tr>
<tr><td><code>/os/ai/io/prompt_sql3_leds_randomus.txt</code></td><td>Original prompt for leds_randomus table</td></tr>
<tr><td><code>/os/ai/io/ko_center.html</code></td><td>This user documentation file</td></tr>
<tr><td><code>/os/ai/io/ko_trigger.dat</code></td><td>Trigger timestamp file (created at runtime)</td></tr>
<tr><td><code>/os/ai/io/../safer/hosts.allow</code></td><td>Authentication/authorization file</td></tr>
<tr><td><code>/os/ai/io/ko_center/kb/</code></td><td>Knowledge Base file storage directory</td></tr>
<tr><td><code>/os/ai/io/ko_center/db3/</code></td><td>Database files directory</td></tr>
<tr><td><code>/os/ai/io/images/btn/</code></td><td>Button image assets</td></tr>
<tr><td><code>/os/ai/io/images/ani/</code></td><td>Animated LED GIF images</td></tr>
<tr><td><code>/os/ai/io/images/fpb/</code></td><td>Floor plan button images</td></tr>
</table>
<!-- ================================================================== -->
<h2>Appendix A: Python ko_center.py</h2>
<!-- ================================================================== -->
<p>A Python Flask equivalent of ko_center.php has been created at
<code>/os/ai/io/ko_center.py</code>. It provides the same core functionality:</p>
<ul>
<li>Flask-based web server (replaces PHP built-in server)</li>
<li>Same <code>?q=</code> URL routing</li>
<li>SQLite database access via Python <code>sqlite3</code> module</li>
<li>Same HTML generation for all major views</li>
<li>LED display, grid views, reports, KB, certs, nodes, HW, plans</li>
<li>Login/logout session management</li>
<li>Trigger endpoint (<code>?q=trigger</code>)</li>
<li>Database table creation utilities</li>
</ul>
<p><strong>Running the Python version:</strong></p>
<pre>python3 /os/ai/io/ko_center.py</pre>
<p>Then browse to <code>http://localhost:5000</code></p>
<!-- ================================================================== -->
<h2>Appendix B: LED GIF Creation</h2>
<!-- ================================================================== -->
<p>The <code>cr_leds.py</code> script generates blinking LED GIF images using
ImageMagick. For each color (red, yellow, blue, green, pink, orange, black,
white, transparent) and each speed (0=no blink, 1=slow, 2=medium, 3=fast),
it creates an animated GIF file.</p>
<p><strong>Usage:</strong></p>
<pre>python3 cr_leds.py <static_image.png> <dynamic_image.png></pre>
<p><strong>Output files:</strong></p>
<pre>led_<prefix>_red_0.gif (no blink)
led_<prefix>_red_1.gif (slow blink)
led_<prefix>_red_2.gif (medium blink)
led_<prefix>_red_3.gif (fast blink)
led_<prefix>_yellow_0.gif
...
led_<prefix>_trans_3.gif</pre>
<p>There are 9 colors × 4 speeds = 36 GIF files per static image.</p>
<a href=ko_center_admin.html target=_blank>admin.html</a>
<br>
<a href=ko_center_sysadm.html target=_blank>sysadm.html</a>
</body>
</html>
//
koh5_pano
Drag mouse to navigate.
Navigation
- Left/Right Mouse drag: Changes camera heading.
- Up/Sown Mouse drag: Changes camera pitch.
- Scroll wheel: Changes camera field of view.
- I-Key: Displays Info panel with canvas size, image size and FPS.
17.Aug.2010, Martin Wengenmayer