Difference between revisions of "Unit WebStatus"

From Ultibo.org
Jump to: navigation, search
 
(19 intermediate revisions by the same user not shown)
Line 6: Line 6:
  
 
'''Ultibo Web Status unit'''
 
'''Ultibo Web Status unit'''
 
''To be documented''
 
  
 
=== Constants ===
 
=== Constants ===
Line 20: Line 18:
 
| <code>RtlMaxUnits = 1024;</code>
 
| <code>RtlMaxUnits = 1024;</code>
 
| See maxunits in system.inc
 
| See maxunits in system.inc
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>DeviceTreeMaxColumns = 140;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DeviceTreeColumnOffset = 20;</code>
 +
| &nbsp;
 
|-
 
|-
 
|}
 
|}
Line 90: Line 96:
 
|-
 
|-
 
| <code>Response:THTTPServerResponse;</code>
 
| <code>Response:THTTPServerResponse;</code>
 +
| &nbsp;
 +
|-
 +
| <code>ContentStream:TStream;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Data:Pointer;</code>
 
| &nbsp;
 
| &nbsp;
 
|-
 
|-
Line 109: Line 121:
  
  
'''Web status main'''
+
'''Web status specific classes'''
  
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
<code>TWebStatusMain = class(THTTPDocument)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
| [[TWebStatusMain|<code>TWebStatusMain = class(THTTPDocument)</code>]]
 
|-
 
|-
| <code>constructor Create;</code>
+
|}
| style="width: 50%;"|&nbsp;
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>destructor Destroy; override;</code>
+
| [[TWebStatusSub|<code>TWebStatusSub = class(THTTPDocument)</code>]]
| &nbsp;
+
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>FTitle:String;</code>
+
| [[TWebStatusPlatform|<code>TWebStatusPlatform = class(TWebStatusSub)</code>]]
| &nbsp;
+
 
|-
 
|-
| <code>FCaption:String;</code>
+
|}
| &nbsp;
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>FSubPages:TStringList;</code>
+
| [[TWebStatusMemory|<code>TWebStatusMemory = class(TWebStatusSub)</code>]]
| &nbsp;
+
 
|-
 
|-
|colspan="2"|&nbsp;
+
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>function GetTitle:String;</code>
+
| [[TWebStatusHeap|<code>TWebStatusHeap = class(TWebStatusSub)</code>]]
| &nbsp;
+
 
|-
 
|-
| <code>procedure SetTitle(const ATitle:String);</code>
+
|}
| &nbsp;
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>function GetCaption:String;</code>
+
| [[TWebStatusCPU|<code>TWebStatusCPU = class(TWebStatusSub)</code>]]
| &nbsp;
+
 
|-
 
|-
|colspan="2"|&nbsp;
+
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>function NormalizedDateTimeToStr(const DateTime:TDateTime):String;</code>
+
| [[TWebStatusFPU|<code>TWebStatusFPU = class(TWebStatusSub)</code>]]
| &nbsp;
+
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>function MakeBold(const AName:String):String;</code>
+
| [[TWebStatusGPU|<code>TWebStatusGPU = class(TWebStatusSub)</code>]]
| &nbsp;
+
 
|-
 
|-
| <code>function MakeLink(const AName,ALink:String):String;</code>
+
|}
| &nbsp;
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
|colspan="2"|&nbsp;
+
| [[TWebStatusRTL|<code>TWebStatusRTL = class(TWebStatusSub)</code>]]
 
|-
 
|-
| <code>function AddBlank(AResponse:THTTPServerResponse):Boolean;</code>
+
|}
| &nbsp;
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>function AddBlankEx(AResponse:THTTPServerResponse; AColumns:LongWord):Boolean;</code>
+
| [[TWebStatusClock|<code>TWebStatusClock = class(TWebStatusSub)</code>]]
| &nbsp;
+
 
|-
 
|-
|colspan="2"|&nbsp;
+
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>function AddItem(AResponse:THTTPServerResponse; const AName,AValue:String):Boolean;</code>
+
| [[TWebStatusLocale|<code>TWebStatusLocale = class(TWebStatusSub)</code>]]
| &nbsp;
+
 
|-
 
|-
| <code>function AddItemEx(AResponse:THTTPServerResponse; const AName,AValue:String; AIndent:LongWord):Boolean;</code>
+
|}
| &nbsp;
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
|colspan="2"|&nbsp;
+
| [[TWebStatusThreading|<code>TWebStatusThreading = class(TWebStatusSub)</code>]]
 
|-
 
|-
| <code>function AddItem3Column(AResponse:THTTPServerResponse; const AName,AValue1,AValue2:String):Boolean;</code>
+
|}
| &nbsp;
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>function AddItem4Column(AResponse:THTTPServerResponse; const AName,AValue1,AValue2,AValue3:String):Boolean;</code>
+
| [[TWebStatusThreadList|<code>TWebStatusThreadList = class(TWebStatusSub)</code>]]
| &nbsp;
+
 
|-
 
|-
| <code>function AddItem5Column(AResponse:THTTPServerResponse; const AName,AValue1,AValue2,AValue3,AValue4:String):Boolean;</code>
+
|}
| &nbsp;
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
|colspan="2"|&nbsp;
+
| [[TWebStatusScheduler|<code>TWebStatusScheduler = class(TWebStatusSub)</code>]]
 
|-
 
|-
| <code>function AddBold(AResponse:THTTPServerResponse; const AName,AValue:String):Boolean;</code>
+
|}
| &nbsp;
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>function AddBoldEx(AResponse:THTTPServerResponse; const AName,AValue:String; AIndent:LongWord):Boolean;</code>
+
| [[TWebStatusDevices|<code>TWebStatusDevices = class(TWebStatusSub)</code>]]
| &nbsp;
+
 
|-
 
|-
|colspan="2"|&nbsp;
+
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>function AddBold3Column(AResponse:THTTPServerResponse; const AName,AValue1,AValue2:String):Boolean;</code>
+
| [[TWebStatusDrivers|<code>TWebStatusDrivers = class(TWebStatusSub)</code>]]
| &nbsp;
+
 
|-
 
|-
| <code>function AddBold4Column(AResponse:THTTPServerResponse; const AName,AValue1,AValue2,AValue3:String):Boolean;</code>
+
|}
| &nbsp;
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>function AddBold5Column(AResponse:THTTPServerResponse; const AName,AValue1,AValue2,AValue3,AValue4:String):Boolean;</code>
+
| [[TWebStatusHandles|<code>TWebStatusHandles = class(TWebStatusSub)</code>]]
| &nbsp;
+
 
|-
 
|-
|colspan="2"|&nbsp;
+
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>function AddHeader(AResponse:THTTPServerResponse; const ATitle:String; ASub:TWebStatusSub):Boolean;</code>
+
| [[TWebStatusUSB|<code>TWebStatusUSB = class(TWebStatusSub)</code>]]
| &nbsp;
+
 
|-
 
|-
| <code>function AddHeaderEx(AResponse:THTTPServerResponse; const ATitle:String; ASub:TWebStatusSub; AColumns:LongWord):Boolean;</code>
+
|}
| &nbsp;
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
|colspan="2"|&nbsp;
+
| [[TWebStatusPCI|<code>TWebStatusPCI = class(TWebStatusSub)</code>]]
 
|-
 
|-
| <code>function AddFooter(AResponse:THTTPServerResponse):Boolean;</code>
+
|}
| &nbsp;
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>function AddFooterEx(AResponse:THTTPServerResponse; AColumns:LongWord):Boolean;</code>
+
| [[TWebStatusMMC|<code>TWebStatusMMC = class(TWebStatusSub)</code>]]
| &nbsp;
+
 
|-
 
|-
|colspan="2"|&nbsp;
+
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>function AddContent(AResponse:THTTPServerResponse; const AContent:String):Boolean;</code>
+
| [[TWebStatusHID|<code>TWebStatusHID = class(TWebStatusSub)</code>]]
| &nbsp;
+
 
|-
 
|-
|colspan="2"|&nbsp;
+
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| [[TWebStatusNetwork|<code>TWebStatusNetwork = class(TWebStatusSub)</code>]]
| &nbsp;
+
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>property Title:String read GetTitle write SetTitle;</code>
+
| [[TWebStatusStorage|<code>TWebStatusStorage = class(TWebStatusSub)</code>]]
| &nbsp;
+
 
|-
 
|-
| <code>property Caption:String read GetCaption;</code>
+
|}
| &nbsp;
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
|colspan="2"|&nbsp;
+
| [[TWebStatusFilesystem|<code>TWebStatusFilesystem = class(TWebStatusSub)</code>]]
 
|-
 
|-
| <code>function RegisterSubPage(ASub:TWebStatusSub):Boolean;</code>
+
|}
| &nbsp;
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>function DeregisterSubPage(ASub:TWebStatusSub):Boolean;</code>
+
| [[TWebStatusCache|<code>TWebStatusCache = class(TWebStatusSub)</code>]]
| &nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div>
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''Web status sub'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TWebStatusSub = class(THTTPDocument)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
| [[TWebStatusKeyboard|<code>TWebStatusKeyboard = class(TWebStatusSub)</code>]]
 
|-
 
|-
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
|}
| style="width: 50%;"|&nbsp;
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>destructor Destroy; override;</code>
+
| [[TWebStatusMouse|<code>TWebStatusMouse = class(TWebStatusSub)</code>]]
| &nbsp;
+
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>FMain:TWebStatusMain;</code>
+
| [[TWebStatusTouch|<code>TWebStatusTouch = class(TWebStatusSub)</code>]]
| &nbsp;
+
 
|-
 
|-
|colspan="2"|&nbsp;
+
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>function GetTitle:String;</code>
+
| [[TWebStatusJoystick|<code>TWebStatusJoystick = class(TWebStatusSub)</code>]]
| &nbsp;
+
|-
+
| <code>function GetCaption:String;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function NormalizedDateTimeToStr(const DateTime:TDateTime):String;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>FCaption:String;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function MakeBold(const AName:String):String;</code>
+
| &nbsp;
+
|-
+
| <code>function MakeLink(const AName,ALink:String):String;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function AddBlank(AResponse:THTTPServerResponse):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function AddBlankEx(AResponse:THTTPServerResponse; AColumns:LongWord):Boolean;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function AddItem(AResponse:THTTPServerResponse; const AName,AValue:String):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function AddItemEx(AResponse:THTTPServerResponse; const AName,AValue:String; AIndent:LongWord):Boolean;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function AddItem3Column(AResponse:THTTPServerResponse; const AName,AValue1,AValue2:String):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function AddItem4Column(AResponse:THTTPServerResponse; const AName,AValue1,AValue2,AValue3:String):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function AddItem5Column(AResponse:THTTPServerResponse; const AName,AValue1,AValue2,AValue3,AValue4:String):Boolean;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function AddBold(AResponse:THTTPServerResponse; const AName,AValue:String):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function AddBoldEx(AResponse:THTTPServerResponse; const AName,AValue:String; AIndent:LongWord):Boolean;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function AddBold3Column(AResponse:THTTPServerResponse; const AName,AValue1,AValue2:String):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function AddBold4Column(AResponse:THTTPServerResponse; const AName,AValue1,AValue2,AValue3:String):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function AddBold5Column(AResponse:THTTPServerResponse; const AName,AValue1,AValue2,AValue3,AValue4:String):Boolean;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function AddHeader(AResponse:THTTPServerResponse; const ATitle:String; ASub:TWebStatusSub):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function AddHeaderEx(AResponse:THTTPServerResponse; const ATitle:String; ASub:TWebStatusSub; AColumns:LongWord):Boolean;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function AddFooter(AResponse:THTTPServerResponse):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function AddFooterEx(AResponse:THTTPServerResponse; AColumns:LongWord):Boolean;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function AddContent(AResponse:THTTPServerResponse; const AContent:String):Boolean;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function DoGet(AHost:THTTPHost;ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>property Main:TWebStatusMain read FMain;</code>
+
| &nbsp;
+
|-
+
| <code>property Caption:String read GetCaption;</code>
+
| &nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div>
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''Web status platform'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TWebStatusPlatform = class(TWebStatusSub)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
| [[TWebStatusFramebuffer|<code>TWebStatusFramebuffer = class(TWebStatusSub)</code>]]
|-
+
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div>
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''Web status memory'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TWebStatusMemory = class(TWebStatusSub)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
| [[TWebStatusEnvironment|<code>TWebStatusEnvironment = class(TWebStatusSub)</code>]]
|-
+
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div>
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''Web status heap'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TWebStatusHeap = class(TWebStatusSub)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
| [[TWebStatusPageTables|<code>TWebStatusPageTables = class(TWebStatusSub)</code>]]
|-
+
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
| <code>function FlagsToFlagName(AFlags:LongWord):String;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div>
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''Web status CPU'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TWebStatusCPU = class(TWebStatusSub)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
| [[TWebStatusVectorTables|<code>TWebStatusVectorTables = class(TWebStatusSub)</code>]]
|-
+
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div>
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''Web status FPU'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TWebStatusFPU = class(TWebStatusSub)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
| [[TWebStatusIRQFIQSWI|<code>TWebStatusIRQFIQSWI = class(TWebStatusSub)</code>]]
|-
+
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div>
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''Web status GPU'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TWebStatusGPU = class(TWebStatusSub)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
| [[TWebStatusGPIO|<code>TWebStatusGPIO = class(TWebStatusSub)</code>]]
|-
+
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div>
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''Web status RTL'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TWebStatusRTL = class(TWebStatusSub)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
| [[TWebStatusConfiguration|<code>TWebStatusConfiguration = class(TWebStatusSub)</code>]]
|-
+
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div>
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''Web status clock'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TWebStatusClock = class(TWebStatusSub)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
| [[TWebStatusDeviceTree|<code>TWebStatusDeviceTree = class(TWebStatusSub)</code>]]
|-
+
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div>
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''Web status locale'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TWebStatusLocale = class(TWebStatusSub)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
| [[TWebStatusDebug|<code>TWebStatusDebug = class(TWebStatusSub)</code>]]
|-
+
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div>
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''Web status threading'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TWebStatusThreading = class(TWebStatusSub)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
| [[TWebStatusCustom|<code>TWebStatusCustom = class(TWebStatusSub)</code>]]
|-
+
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div>
+
<br />
  
'''Web status thread list'''
+
=== Public variables ===
 +
----
  
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 
  
<code>TWebStatusThreadList = class(TWebStatusSub)</code>
+
'''Web status specific variables'''
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|}
+
</div></div>
+
  
'''Web status scheduler'''
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TWebStatusScheduler = class(TWebStatusSub)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
| <code>WEBSTATUS_FONT_NAME:String = 'Arial';</code>
|-
+
| style="width: 40%;"|
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div>
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''Web status devices'''
+
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TWebStatusDevices = class(TWebStatusSub)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
| <code>WEBSTATUS_HEAP_FREE_COUNT:LongWord = 250;</code>
|-
+
| style="width: 40%;"|Maximum number of free heap blocks to display
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div>
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''Web status drivers'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TWebStatusDrivers = class(TWebStatusSub)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
| <code>WEBSTATUS_HEAP_USED_COUNT:LongWord = 250;</code>
|-
+
| style="width: 40%;"|Maximum number of used heap blocks to display
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div>
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''Web status USB'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TWebStatusUSB = class(TWebStatusSub)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
| <code> WEBSTATUS_ALLOW_RESTART:LongBool = True;</code>
 +
| style="width: 40%;"|If True enable the Restart button on the main page
 
|-
 
|-
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
| style="width: 50%;"|&nbsp;
+
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
| <code>WEBSTATUS_ALLOW_SHUTDOWN:LongBool = True;</code>
|-
+
| style="width: 40%;"|If True enable the Shutdown button on the main page
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div>
+
<br />
  
'''Web status MMC'''
+
=== Function declarations ===
 +
----
  
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 
  
<code>TWebStatusMMC = class(TWebStatusSub)</code>
+
'''Web status functions'''
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|}
+
</div></div>
+
+
'''Web status network'''
+
  
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusRegister(AListener:THTTPListener; const AHost,AURL:String; ARedirect:Boolean):Boolean;</pre>
<code>TWebStatusNetwork = class(TWebStatusSub)</code>
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
! Note
|-
+
| None documented
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
 
</div></div>
 
</div></div>
 
+
<br />
'''Web status storage'''
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusDeregister(AListener:THTTPListener; const AHost:String):Boolean;</pre>
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
+
<code>TWebStatusStorage = class(TWebStatusSub)</code>
+
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
! Note
|-
+
| None documented
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
 
</div></div>
 
</div></div>
 +
<br />
  
'''Web status filesystem'''
+
'''Web status helper functions'''
  
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
+
<pre style="border: 0; padding-bottom:0px;">procedure WebStatusDeviceTreeLogOutput(const AText:String; Data:Pointer);</pre>
<code>TWebStatusFilesystem = class(TWebStatusSub)</code>
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
! Note
|-
+
| None documented
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
 
</div></div>
 
</div></div>
 
+
<br />
'''Web status cache'''
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusDeviceEnumerate(Device:PDevice; Data:Pointer):LongWord;</pre>
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
+
<code>TWebStatusCache = class(TWebStatusSub)</code>
+
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
! Note
|-
+
| None documented
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
 
</div></div>
 
</div></div>
 
+
<br />
'''Web status keyboard'''
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusDriverEnumerate(Driver:PDriver; Data:Pointer):LongWord;</pre>
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
+
<code>TWebStatusKeyboard = class(TWebStatusSub)</code>
+
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
! Note
|-
+
| None documented
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
 
</div></div>
 
</div></div>
 
+
<br />
'''Web status mouse'''
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusHandleEnumerate(Handle:PHandleEntry; Data:Pointer):LongWord;</pre>
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
+
<code>TWebStatusMouse = class(TWebStatusSub)</code>
+
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
! Note
|-
+
| None documented
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
 
</div></div>
 
</div></div>
 
+
<br />
'''Web status framebuffer'''
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusUSBDeviceEnumerate(Device:PUSBDevice; Data:Pointer):LongWord;</pre>
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
+
<code>TWebStatusFramebuffer = class(TWebStatusSub)</code>
+
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
! Note
|-
+
| None documented
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
 
</div></div>
 
</div></div>
 
+
<br />
'''Web status environment'''
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusUSBHostEnumerate(Host:PUSBHost; Data:Pointer):LongWord;</pre>
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
+
<code>TWebStatusEnvironment = class(TWebStatusSub)</code>
+
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
! Note
|-
+
| None documented
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
 
</div></div>
 
</div></div>
 
+
<br />
'''Web status page tables'''
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusUSBDriverEnumerate(Driver:PUSBDriver; Data:Pointer):LongWord;</pre>
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
+
<code>TWebStatusPageTables = class(TWebStatusSub)</code>
+
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
! Note
|-
+
| None documented
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
| <code>function FlagsToFlagNames(AFlags:LongWord):TStringList;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
 
</div></div>
 
</div></div>
 
+
<br />
'''Web status vector tables'''
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusMMCEnumerate(MMC:PMMCDevice; Data:Pointer):LongWord;</pre>
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
+
<code>TWebStatusVectorTables = class(TWebStatusSub)</code>
+
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
! Note
|-
+
| None documented
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
 
</div></div>
 
</div></div>
 
+
<br />
'''Web status IRQ/FIQ/SWI'''
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
+
<pre style="border: 0; padding-bottom:0px;">procedure WebStatusUSBLogOutput(const AText:String; Data:Pointer);</pre>
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
+
<code>TWebStatusIRQFIQSWI = class(TWebStatusSub)</code>
+
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
! Note
|-
+
| None documented
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
 
</div></div>
 
</div></div>
 
+
<br />
'''Web status configuration'''
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusUSBLogDeviceCallback(Device:PUSBDevice; Data:Pointer):LongWord;</pre>
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
+
<code>TWebStatusConfiguration = class(TWebStatusSub)</code>
+
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
! Note
|-
+
| None documented
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
 
</div></div>
 
</div></div>
 
+
<br />
'''Web status debug'''
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusUSBLogTreeCallback(Device:PUSBDevice; Data:Pointer):LongWord;</pre>
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
+
<code>TWebStatusDebug = class(TWebStatusSub)</code>
+
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
! Note
|-
+
| None documented
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
 
</div></div>
 
</div></div>
 
+
<br />
'''Web status custom'''
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusPCIDeviceEnumerate(Device:PPCIDevice; Data:Pointer):LongWord;</pre>
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
+
<code>TWebStatusCustom = class(TWebStatusSub)</code>
+
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
! Note
|-
+
| None documented
| <code>constructor Create(const AName,APath:String; AColumns:LongWord);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
| <code>FColumns:LongWord;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function DoContent(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; virtual;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>property Columns:LongWord read FColumns write FColumns;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>property OnContent:TWebStatusContent read FOnContent write FOnContent;</code>
+
| &nbsp;
+
 
|-
 
|-
 
|}
 
|}
 
</div></div>
 
</div></div>
 
<br />
 
<br />
 
=== Public variables ===
 
----
 
 
''None defined''
 
 
=== Function declarations ===
 
----
 
 
 
'''Web status functions'''
 
 
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function WebStatusRegister(AListener:THTTPListener; const AHost,AURL:String; ARedirect:Boolean):Boolean;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusPCIHostEnumerate(Host:PPCIHost; Data:Pointer):LongWord;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,290: Line 547:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function WebStatusDeregister(AListener:THTTPListener; const AHost:String):Boolean;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusPCIDriverEnumerate(Driver:PPCIDriver; Data:Pointer):LongWord;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,301: Line 558:
 
</div></div>
 
</div></div>
 
<br />
 
<br />
 
'''Web status helper functions'''
 
 
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function WebStatusDeviceEnumerate(Device:PDevice; Data:Pointer):LongWord;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusMMCEnumerate(MMC:PMMCDevice; Data:Pointer):LongWord;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,317: Line 571:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function WebStatusDriverEnumerate(Driver:PDriver; Data:Pointer):LongWord;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusSDHCIEnumerate(SDHCI:PSDHCIHost; Data:Pointer):LongWord;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,329: Line 583:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function WebStatusHandleEnumerate(Handle:PHandleEntry; Data:Pointer):LongWord;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusSDIODriverEnumerate(Driver:PSDIODriver; Data:Pointer):LongWord;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,341: Line 595:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function WebStatusUSBDeviceEnumerate(Device:PUSBDevice; Data:Pointer):LongWord;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusHIDDeviceEnumerate(Device:PHIDDevice; Data:Pointer):LongWord;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,353: Line 607:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function WebStatusUSBHostEnumerate(Host:PUSBHost; Data:Pointer):LongWord;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusHIDConsumerEnumerate(Consumer:PHIDConsumer; Data:Pointer):LongWord;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,365: Line 619:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function WebStatusUSBDriverEnumerate(Driver:PUSBDriver; Data:Pointer):LongWord;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusNetworkEnumerate(Network:PNetworkDevice; Data:Pointer):LongWord;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,377: Line 631:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function WebStatusMMCEnumerate(MMC:PMMCDevice; Data:Pointer):LongWord;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusStorageEnumerate(Storage:PStorageDevice; Data:Pointer):LongWord;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,389: Line 643:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function WebStatusSDHCIEnumerate(SDHCI:PSDHCIHost; Data:Pointer):LongWord;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusMouseEnumerate(Mouse:PMouseDevice; Data:Pointer):LongWord;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,401: Line 655:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function WebStatusNetworkEnumerate(Network:PNetworkDevice; Data:Pointer):LongWord;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusTouchEnumerate(Touch:PTouchDevice; Data:Pointer):LongWord;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,413: Line 667:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function WebStatusStorageEnumerate(Storage:PStorageDevice; Data:Pointer):LongWord;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusKeyboardEnumerate(Keyboard:PKeyboardDevice; Data:Pointer):LongWord;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,425: Line 679:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function WebStatusMouseEnumerate(Mouse:PMouseDevice; Data:Pointer):LongWord;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusJoystickEnumerate(Joystick:PJoystickDevice; Data:Pointer):LongWord;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,437: Line 691:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function WebStatusKeyboardEnumerate(Keyboard:PKeyboardDevice; Data:Pointer):LongWord;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusConsoleWindowEnumerate(Console:PConsoleDevice; Handle:TWindowHandle; Data:Pointer):LongWord;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-

Latest revision as of 05:45, 16 November 2022

Return to Unit Reference


Description


Ultibo Web Status unit

Constants



Web status specific constants RtlMaxUnits*
RtlMaxUnits = 1024; See maxunits in system.inc
 
DeviceTreeMaxColumns = 140;  
DeviceTreeColumnOffset = 20;  


Type definitions



RTL initialize final record

TRtlInitFinalRec = record

Note: See TInitFinalRec in system.inc
InitProc:TProcedure;  
FinalProc:TProcedure;  

RTL initialize final table

PRtlInitFinalTable = ^TRtlInitFinalTable;

TRtlInitFinalTable = record

Note: See TInitFinalTable in system.inc
TableCount:LongWord;  
InitCount:LongWord;  
Procs:array[1..RtlMaxUnits] of TRtlInitFinalRec;  

Web status data

PWebStatusData = ^TWebStatusData;

TWebStatusData = record

Document:TWebStatusSub;  
Host:THTTPHost;  
Request:THTTPServerRequest;  
Response:THTTPServerResponse;  
ContentStream:TStream;  
Data:Pointer;  

Web status content

TWebStatusContent = function(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean of Object;


Class definitions



Web status specific classes

TWebStatusMain = class(THTTPDocument)
TWebStatusSub = class(THTTPDocument)
TWebStatusPlatform = class(TWebStatusSub)
TWebStatusMemory = class(TWebStatusSub)
TWebStatusHeap = class(TWebStatusSub)
TWebStatusCPU = class(TWebStatusSub)
TWebStatusFPU = class(TWebStatusSub)
TWebStatusGPU = class(TWebStatusSub)
TWebStatusRTL = class(TWebStatusSub)
TWebStatusClock = class(TWebStatusSub)
TWebStatusLocale = class(TWebStatusSub)
TWebStatusThreading = class(TWebStatusSub)
TWebStatusThreadList = class(TWebStatusSub)
TWebStatusScheduler = class(TWebStatusSub)
TWebStatusDevices = class(TWebStatusSub)
TWebStatusDrivers = class(TWebStatusSub)
TWebStatusHandles = class(TWebStatusSub)
TWebStatusUSB = class(TWebStatusSub)
TWebStatusPCI = class(TWebStatusSub)
TWebStatusMMC = class(TWebStatusSub)
TWebStatusHID = class(TWebStatusSub)
TWebStatusNetwork = class(TWebStatusSub)
TWebStatusStorage = class(TWebStatusSub)
TWebStatusFilesystem = class(TWebStatusSub)
TWebStatusCache = class(TWebStatusSub)
TWebStatusKeyboard = class(TWebStatusSub)
TWebStatusMouse = class(TWebStatusSub)
TWebStatusTouch = class(TWebStatusSub)
TWebStatusJoystick = class(TWebStatusSub)
TWebStatusFramebuffer = class(TWebStatusSub)
TWebStatusEnvironment = class(TWebStatusSub)
TWebStatusPageTables = class(TWebStatusSub)
TWebStatusVectorTables = class(TWebStatusSub)
TWebStatusIRQFIQSWI = class(TWebStatusSub)
TWebStatusGPIO = class(TWebStatusSub)
TWebStatusConfiguration = class(TWebStatusSub)
TWebStatusDeviceTree = class(TWebStatusSub)
TWebStatusDebug = class(TWebStatusSub)
TWebStatusCustom = class(TWebStatusSub)


Public variables



Web status specific variables

WEBSTATUS_FONT_NAME:String = 'Arial';
WEBSTATUS_HEAP_FREE_COUNT:LongWord = 250; Maximum number of free heap blocks to display
WEBSTATUS_HEAP_USED_COUNT:LongWord = 250; Maximum number of used heap blocks to display
WEBSTATUS_ALLOW_RESTART:LongBool = True; If True enable the Restart button on the main page
WEBSTATUS_ALLOW_SHUTDOWN:LongBool = True; If True enable the Shutdown button on the main page


Function declarations



Web status functions

function WebStatusRegister(AListener:THTTPListener; const AHost,AURL:String; ARedirect:Boolean):Boolean;
Description: To be documented
Note None documented


function WebStatusDeregister(AListener:THTTPListener; const AHost:String):Boolean;
Description: To be documented
Note None documented


Web status helper functions

procedure WebStatusDeviceTreeLogOutput(const AText:String; Data:Pointer);
Description: To be documented
Note None documented


function WebStatusDeviceEnumerate(Device:PDevice; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function WebStatusDriverEnumerate(Driver:PDriver; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function WebStatusHandleEnumerate(Handle:PHandleEntry; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function WebStatusUSBDeviceEnumerate(Device:PUSBDevice; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function WebStatusUSBHostEnumerate(Host:PUSBHost; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function WebStatusUSBDriverEnumerate(Driver:PUSBDriver; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function WebStatusMMCEnumerate(MMC:PMMCDevice; Data:Pointer):LongWord;
Description: To be documented
Note None documented


procedure WebStatusUSBLogOutput(const AText:String; Data:Pointer);
Description: To be documented
Note None documented


function WebStatusUSBLogDeviceCallback(Device:PUSBDevice; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function WebStatusUSBLogTreeCallback(Device:PUSBDevice; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function WebStatusPCIDeviceEnumerate(Device:PPCIDevice; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function WebStatusPCIHostEnumerate(Host:PPCIHost; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function WebStatusPCIDriverEnumerate(Driver:PPCIDriver; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function WebStatusMMCEnumerate(MMC:PMMCDevice; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function WebStatusSDHCIEnumerate(SDHCI:PSDHCIHost; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function WebStatusSDIODriverEnumerate(Driver:PSDIODriver; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function WebStatusHIDDeviceEnumerate(Device:PHIDDevice; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function WebStatusHIDConsumerEnumerate(Consumer:PHIDConsumer; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function WebStatusNetworkEnumerate(Network:PNetworkDevice; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function WebStatusStorageEnumerate(Storage:PStorageDevice; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function WebStatusMouseEnumerate(Mouse:PMouseDevice; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function WebStatusTouchEnumerate(Touch:PTouchDevice; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function WebStatusKeyboardEnumerate(Keyboard:PKeyboardDevice; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function WebStatusJoystickEnumerate(Joystick:PJoystickDevice; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function WebStatusConsoleWindowEnumerate(Console:PConsoleDevice; Handle:TWindowHandle; Data:Pointer):LongWord;
Description: To be documented
Note None documented


Return to Unit Reference