Difference between revisions of "Unit Services"
(13 intermediate revisions by the same user not shown) | |||
Line 5: | Line 5: | ||
---- | ---- | ||
− | '''Ultibo Services | + | '''Ultibo Services Interface unit''' |
− | + | ||
− | + | ||
=== Constants === | === Constants === | ||
Line 13: | Line 11: | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;"> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Ping constants''' <code> PING_* </code></div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | | <code>PING_DEFAULT_SIZE = 32;</code> | ||
+ | | Default number of bytes of data to send with echo (Ping) request | ||
+ | |- | ||
+ | | <code>PING_MAXIMUM_SIZE = 65500;</code> | ||
+ | | Maximum number of bytes of data to send with echo (Ping) request | ||
+ | |- | ||
+ | | <code>PING_DEFAULT_COUNT = 4;</code> | ||
+ | | Default number of echo (ping) requests to send in a sequence | ||
+ | |- | ||
+ | | <code>PING_DEFAULT_TIMEOUT = 3000;</code> | ||
+ | | Default time to wait for echo (Ping) response (Milliseconds) | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;"> | ||
<div style="font-size: 14px; padding-left: 12px;">'''NTP specific constants''' <code> NTP_* </code></div> | <div style="font-size: 14px; padding-left: 12px;">'''NTP specific constants''' <code> NTP_* </code></div> | ||
Line 60: | Line 78: | ||
<br /> | <br /> | ||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;"> | ||
− | <div style="font-size: 14px; padding-left: 12px;">'''NTP leap indicator | + | <div style="font-size: 14px; padding-left: 12px;">'''NTP leap indicator''' <code> NTP_LEAP_* </code></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;" | ||
Line 85: | Line 103: | ||
<br /> | <br /> | ||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;"> | ||
− | <div style="font-size: 14px; padding-left: 12px;">'''NTP mode | + | <div style="font-size: 14px; padding-left: 12px;">'''NTP mode''' <code> NTP_MODE_* </code></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;" | ||
Line 122: | Line 140: | ||
<br /> | <br /> | ||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;"> | ||
− | <div style="font-size: 14px; padding-left: 12px;">'''NTP stratum | + | <div style="font-size: 14px; padding-left: 12px;">'''NTP stratum''' <code> NTP_STRATUM_* </code></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;" | ||
Line 184: | Line 202: | ||
<br /> | <br /> | ||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;"> | ||
− | <div style="font-size: 14px; padding-left: 12px;">'''Telnet | + | <div style="font-size: 14px; padding-left: 12px;">'''Telnet character''' <code> TELNET_CHAR_* </code></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;" | ||
Line 195: | Line 213: | ||
|- | |- | ||
| <code>TELNET_CHAR_LF = #10;</code> | | <code>TELNET_CHAR_LF = #10;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>TELNET_CHAR_BELL = #7;</code> | ||
| | | | ||
|- | |- | ||
Line 215: | Line 236: | ||
<br /> | <br /> | ||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;"> | ||
− | <div style="font-size: 14px; padding-left: 12px;">'''Telnet state | + | <div style="font-size: 14px; padding-left: 12px;">'''Telnet escape sequence''' <code> TELNET_SEQUENCE_* </code></div> |
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | | <code>TELNET_SEQUENCE_UP_ARROW = #27#91#65;</code> | ||
+ | | ESC[A | ||
+ | |- | ||
+ | | <code>TELNET_SEQUENCE_DOWN_ARROW = #27#91#66;</code> | ||
+ | | ESC[B | ||
+ | |- | ||
+ | | <code>TELNET_SEQUENCE_RIGHT_ARROW = #27#91#67;</code> | ||
+ | | ESC[C | ||
+ | |- | ||
+ | | <code>TELNET_SEQUENCE_LEFT_ARROW = #27#91#68;</code> | ||
+ | | ESC[D | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>TELNET_SEQUENCE_HOME = #27#91#49#126;</code> | ||
+ | | ESC[1~ | ||
+ | |- | ||
+ | | <code>TELNET_SEQUENCE_INSERT = #27#91#50#126;</code> | ||
+ | | ESC[2~ | ||
+ | |- | ||
+ | | <code>TELNET_SEQUENCE_DELETE = #27#91#51#126;</code> | ||
+ | | ESC[3~ | ||
+ | |- | ||
+ | | <code>TELNET_SEQUENCE_END = #27#91#52#126;</code> | ||
+ | | ESC[4~ | ||
+ | |- | ||
+ | | <code>TELNET_SEQUENCE_PGUP = #27#91#53#126;</code> | ||
+ | | ESC[5~ | ||
+ | |- | ||
+ | | <code>TELNET_SEQUENCE_PGDN = #27#91#54#126;</code> | ||
+ | | ESC[6~ | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>TELNET_SEQUENCE_F1 = #27#91#49#49#126;</code> | ||
+ | | ESC[11~ | ||
+ | |- | ||
+ | | <code>TELNET_SEQUENCE_F2 = #27#91#49#50#126;</code> | ||
+ | | ESC[12~ | ||
+ | |- | ||
+ | | <code>TELNET_SEQUENCE_F3 = #27#91#49#51#126;</code> | ||
+ | | ESC[13~ | ||
+ | |- | ||
+ | | <code>TELNET_SEQUENCE_F4 = #27#91#49#52#126;</code> | ||
+ | | ESC[14~ | ||
+ | |- | ||
+ | | <code>TELNET_SEQUENCE_F5 = #27#91#49#53#126;</code> | ||
+ | | ESC[15~ | ||
+ | |- | ||
+ | | <code>TELNET_SEQUENCE_F6 = #27#91#49#55#126;</code> | ||
+ | | ESC[17~ | ||
+ | |- | ||
+ | | <code>TELNET_SEQUENCE_F7 = #27#91#49#56#126;</code> | ||
+ | | ESC[18~ | ||
+ | |- | ||
+ | | <code>TELNET_SEQUENCE_F8 = #27#91#49#57#126;</code> | ||
+ | | ESC[19~ | ||
+ | |- | ||
+ | | <code>TELNET_SEQUENCE_F9 = #27#91#50#48#126;</code> | ||
+ | | ESC[20~ | ||
+ | |- | ||
+ | | <code>TELNET_SEQUENCE_F10 = #27#91#50#49#126;</code> | ||
+ | | ESC[21~ | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;"> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Telnet buffer''' <code> TELNET_BUFFER_* </code></div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | | <code>TELNET_BUFFER_SIZE = SIZE_2K;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;"> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Telnet state''' <code> TELNET_STATE_* </code></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;" | ||
Line 247: | Line 351: | ||
<br /> | <br /> | ||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;"> | ||
− | <div style="font-size: 14px; padding-left: 12px;">'''Telnet command | + | <div style="font-size: 14px; padding-left: 12px;">'''Telnet command''' <code> TELNET_COMMAND_* </code></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;" | ||
Line 267: | Line 371: | ||
|- | |- | ||
| <code>TELNET_COMMAND_IP = 244;</code> | | <code>TELNET_COMMAND_IP = 244;</code> | ||
− | | 0xF4 | + | | 0xF4 interrupt process command |
|- | |- | ||
| <code>TELNET_COMMAND_AO = 245;</code> | | <code>TELNET_COMMAND_AO = 245;</code> | ||
Line 306: | Line 410: | ||
<br /> | <br /> | ||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;"> | ||
− | <div style="font-size: 14px; padding-left: 12px;">'''Telnet option | + | <div style="font-size: 14px; padding-left: 12px;">'''Telnet option''' <code> TELNET_OPTION_* </code></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;" | ||
Line 335: | Line 439: | ||
<br /> | <br /> | ||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;"> | ||
− | <div style="font-size: 14px; padding-left: 12px;">'''SysLog facility code | + | <div style="font-size: 14px; padding-left: 12px;">'''SysLog logging''' <code> SYSLOG_LOGGING_* </code></div> |
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | | <code>SYSLOG_LOGGING_DESCRIPTION = 'SysLog Logging';</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;"> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''SysLog facility code''' <code> SYSLOG_FACILITY_* </code></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;" | ||
Line 415: | Line 530: | ||
<br /> | <br /> | ||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;"> | ||
− | <div style="font-size: 14px; padding-left: 12px;">'''SysLog severity code | + | <div style="font-size: 14px; padding-left: 12px;">'''SysLog severity code''' <code> SYSLOG_SEVERITY_* </code></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;" | ||
Line 447: | Line 562: | ||
<br /> | <br /> | ||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;"> | ||
− | <div style="font-size: 14px; padding-left: 12px;">'''Service logging | + | <div style="font-size: 14px; padding-left: 12px;">'''Service logging''' <code> SERVICE_LOG_* </code></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;" | ||
Line 456: | Line 571: | ||
| <code>SERVICE_LOG_LEVEL_INFO = LOG_LEVEL_INFO;</code> | | <code>SERVICE_LOG_LEVEL_INFO = LOG_LEVEL_INFO;</code> | ||
| Service informational messages, such as a service being created or destroyed | | Service informational messages, such as a service being created or destroyed | ||
+ | |- | ||
+ | | <code>SERVICE_LOG_LEVEL_WARN = LOG_LEVEL_WARN;</code> | ||
+ | | Service warning messages | ||
|- | |- | ||
| <code>SERVICE_LOG_LEVEL_ERROR = LOG_LEVEL_ERROR;</code> | | <code>SERVICE_LOG_LEVEL_ERROR = LOG_LEVEL_ERROR;</code> | ||
Line 470: | Line 588: | ||
---- | ---- | ||
− | '' | + | |
+ | '''NTP short''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>PNTPShort = ^TNTPShort;</code> | ||
+ | |||
+ | <code>TNTPShort = packed record</code> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | |colspan="2"|Note: NTP Short Format | ||
+ | |- | ||
+ | | <code>Seconds:Word;</code> | ||
+ | | Seconds | ||
+ | |- | ||
+ | | <code>Fraction:Word;</code> | ||
+ | | Fraction | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''NTP timestamp''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>PNTPTimestamp = ^TNTPTimestamp;</code> | ||
+ | |||
+ | <code>TNTPTimestamp = packed record</code> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | |colspan="2"|Note: NTP Timestamp Format | ||
+ | |- | ||
+ | | <code>Seconds:LongWord;</code> | ||
+ | | Seconds | ||
+ | |- | ||
+ | | <code>Fraction:LongWord;</code> | ||
+ | | Seconds Fraction (0-padded) | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''NTP date format''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>PNTPDate = ^TNTPDate;</code> | ||
+ | |||
+ | <code>TNTPDate = packed record</code> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | | <code>EraNumber:LongWord;</code> | ||
+ | | Era Number | ||
+ | |- | ||
+ | | <code>EraOffset:LongWord;</code> | ||
+ | | Era Offset | ||
+ | |- | ||
+ | | <code>Fraction:Int64;</code> | ||
+ | | Fraction | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''NTP packet''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>PNTPPacket = ^TNTPPacket;</code> | ||
+ | |||
+ | <code>TNTPPacket = packed record</code> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | | <code>LeapVersionMode:Byte;</code> | ||
+ | | Leap Indicator (2 bits)/Version (3 bits)/Mode (3 bits) | ||
+ | |- | ||
+ | | <code>Stratum:Byte;</code> | ||
+ | | This is an eight-bit unsigned integer indicating the stratum | ||
+ | |- | ||
+ | | <code>PollInterval:Byte;</code> | ||
+ | | This is an eight-bit unsigned integer used as an exponent of two, where the resulting value is the maximum interval between successive messages in seconds. | ||
+ | |- | ||
+ | | <code>Precision:ShortInt;</code> | ||
+ | | This is an eight-bit signed integer used as an exponent of two, where the resulting value is the precision of the system clock in seconds. | ||
+ | |- | ||
+ | | <code>RootDelay:LongInt;</code> | ||
+ | | This is a 32-bit signed fixed-point number indicating the total roundtrip delay to the primary reference source, in seconds with the fraction point between bits 15 and 16. | ||
+ | |- | ||
+ | | <code>RootDispersion:LongWord;</code> | ||
+ | | This is a 32-bit unsigned fixed-point number indicating the maximum error due to the clock frequency tolerance, in seconds with the fraction point between bits 15 and 16. | ||
+ | |- | ||
+ | | <code>ReferenceIdentifier:array[0..3] of Byte;</code> | ||
+ | | This is a 32-bit bitstring identifying the particular reference source | ||
+ | |- | ||
+ | | <code>ReferenceTimestamp:TNTPTimestamp;</code> | ||
+ | | This field is the time the system clock was last set or corrected, in 64-bit timestamp format. | ||
+ | |- | ||
+ | | <code>OriginateTimestamp:TNTPTimestamp;</code> | ||
+ | | This is the time at which the request departed the client for the server, in 64-bit timestamp format. | ||
+ | |- | ||
+ | | <code>ReceiveTimestamp:TNTPTimestamp;</code> | ||
+ | | This is the time at which the request arrived at the server or the reply arrived at the client, in 64-bit timestamp format. | ||
+ | |- | ||
+ | | <code>TransmitTimestamp:TNTPTimestamp;</code> | ||
+ | | This is the time at which the request departed the client or the reply departed the server, in 64-bit timestamp format. | ||
+ | |- | ||
+ | | <code>KeyIdentifier:LongWord;</code> | ||
+ | | Optional for NTP authentication | ||
+ | |- | ||
+ | | <code>MessageDigest:array[0..15] of Byte;</code> | ||
+ | | Optional for NTP authentication | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''Syslog logging''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>PSyslogLogging = ^TSyslogLogging;</code> | ||
+ | |||
+ | <code>TSyslogLogging = record</code> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | |colspan="2"|''Logging Properties'' | ||
+ | |- | ||
+ | | <code>Logging:TLoggingDevice;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | |colspan="2"|''Syslog Properties'' | ||
+ | |- | ||
+ | | <code>Client:TSyslogClient;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''Telnet host event''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>TTelnetHostEvent = function(AConnection:TTelnetConnection):Boolean of Object;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Telnet count event''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>TTelnetCountEvent = function(AConnection:TTelnetConnection):Boolean of Object;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Telnet initialize event''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>TTelnetInitEvent = function(AConnection:TTelnetConnection):Boolean of Object;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Telnet character event''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>TTelnetCharEvent = function(AConnection:TTelnetConnection; AChar:Char):Boolean of Object;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Telnet command event''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>TTelnetCommandEvent = function(AConnection:TTelnetConnection; ACommand,AOption:Byte; AData:Pointer; ASize:LongWord):Boolean of Object;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Telnet connection event''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>TTelnetConnectionEvent = procedure(AConnection:TTelnetConnection) of Object; </code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | <br /> | ||
=== Class definitions === | === Class definitions === | ||
---- | ---- | ||
− | '' | + | |
+ | '''Ping classes''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | [[TPingClient|<code>TPingClient = class(TWinsock2RAWClient)</code>]] | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | [[TNTPClient|<code>TNTPClient = class(TWinsock2UDPClient)</code>]] | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Telnet classes''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | [[TTelnetBuffer|<code>TTelnetBuffer = class(TObject)</code>]] | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | [[TTelnetConnection|<code>TTelnetConnection = class(TListObject)</code>]] | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | [[TTelnetListener|<code>TTelnetListener = class(TWinsock2TCPListener)</code>]] | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''SysLog classes''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | [[TSyslogClient|<code>TSyslogClient = class(TObject)</code>]] | ||
+ | |- | ||
+ | |} | ||
+ | <br /> | ||
=== Public variables === | === Public variables === | ||
Line 486: | Line 831: | ||
|- | |- | ||
| <code>SERVICE_DEFAULT_LOG_LEVEL:LongWord = SERVICE_LOG_LEVEL_DEBUG;</code> | | <code>SERVICE_DEFAULT_LOG_LEVEL:LongWord = SERVICE_LOG_LEVEL_DEBUG;</code> | ||
− | | style="width: | + | | style="width: 40%;"|Minimum level for Service messages. Only messages with level greater than or equal to this will be printed. |
|- | |- | ||
|} | |} | ||
Line 492: | Line 837: | ||
|- | |- | ||
| <code>SERVICE_LOG_ENABLED:Boolean;</code> | | <code>SERVICE_LOG_ENABLED:Boolean;</code> | ||
− | | style="width: | + | | style="width: 40%;"| |
|- | |- | ||
|} | |} | ||
Line 509: | Line 854: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 524: | Line 869: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! ''' | + | ! Note |
+ | | None documented | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <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 WholeSeconds(Time:Int64):Int64;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Truncate a time value in 100ns intervals to whole seconds only</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
| None documented | | None documented | ||
|- | |- | ||
Line 539: | Line 896: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 551: | Line 908: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 563: | Line 920: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 575: | Line 932: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 587: | Line 944: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 599: | Line 956: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 609: | Line 966: | ||
<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;">procedure ServiceLog(Level:LongWord;const AText:String);</pre> | + | <pre style="border: 0; padding-bottom:0px;">procedure ServiceLog(Level:LongWord; const AText:String);</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 |
| None documented | | None documented | ||
|- | |- | ||
Line 621: | Line 978: | ||
<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;">procedure ServiceLogInfo(const AText:String);</pre> | + | <pre style="border: 0; padding-bottom:0px;">procedure ServiceLogInfo(const AText:String); inline;</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 |
| None documented | | None documented | ||
|- | |- | ||
Line 633: | Line 990: | ||
<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;">procedure | + | <pre style="border: 0; padding-bottom:0px;">procedure ServiceLogWarn(const AText:String); inline;</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 |
| None documented | | None documented | ||
|- | |- | ||
Line 645: | Line 1,002: | ||
<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;">procedure | + | <pre style="border: 0; padding-bottom:0px;">procedure ServiceLogError(const AText:String); inline;</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 |
+ | | None documented | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <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 ServiceLogDebug(const AText:String); inline;</pre> | ||
+ | <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;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
| None documented | | None documented | ||
|- | |- | ||
Line 658: | Line 1,027: | ||
'''NTP helper functions''' | '''NTP 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 NTPTimestampToHost(const Timestamp:TNTPTimestamp):TNTPTimestamp;</pre> | <pre style="border: 0; padding-bottom:0px;">function NTPTimestampToHost(const Timestamp:TNTPTimestamp):TNTPTimestamp;</pre> | ||
Line 664: | Line 1,034: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 676: | Line 1,046: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 688: | Line 1,058: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | Expects Timestamp to be in | + | | Expects Timestamp to be in Network order. Returns Timestamp in Network order. |
|- | |- | ||
|} | |} | ||
Line 700: | Line 1,070: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! ''' | + | ! Note |
− | | Expects Timestamp to be in | + | | Expects Timestamp to be in Network order. Returns Timestamp in Network order. |
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <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 NTPTimestampDivide(const Timestamp:TNTPTimestamp; Divisor:LongWord):TNTPTimestamp;</pre> | ||
+ | <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;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | Expects Timestamp to be in Network order. Returns Timestamp in Network order. | ||
|- | |- | ||
|} | |} | ||
Line 712: | Line 1,094: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | Returns Timestamp in | + | | Returns Timestamp in Network order |
|- | |- | ||
|} | |} | ||
Line 724: | Line 1,106: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! ''' | + | ! Note |
− | | Expects Timestamp to be in | + | | Expects Timestamp to be in Network order |
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <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 NTPTimestampToString(const Timestamp:TNTPTimestamp):String;</pre> | ||
+ | <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;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | Expects Timestamp to be in Network order | ||
|- | |- | ||
|} | |} | ||
Line 739: | Line 1,133: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 751: | Line 1,145: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 763: | Line 1,157: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 778: | Line 1,172: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 790: | Line 1,184: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 802: | Line 1,196: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- |
Latest revision as of 04:43, 2 November 2022
Return to Unit Reference
Contents
Description
Ultibo Services Interface unit
Constants
PING_*
PING_DEFAULT_SIZE = 32;
|
Default number of bytes of data to send with echo (Ping) request |
PING_MAXIMUM_SIZE = 65500;
|
Maximum number of bytes of data to send with echo (Ping) request |
PING_DEFAULT_COUNT = 4;
|
Default number of echo (ping) requests to send in a sequence |
PING_DEFAULT_TIMEOUT = 3000;
|
Default time to wait for echo (Ping) response (Milliseconds) |
NTP_*
NTP_VERSION_1 = 1;
|
|
NTP_VERSION_2 = 2;
|
|
NTP_VERSION_3 = 3;
|
|
NTP_VERSION_4 = 4;
|
|
NTP_VERSION_MASK = $07;
|
shl 3 |
NTP_VERSION = NTP_VERSION_4;
|
Current NTP/SNTP version |
NTP_MIN_VERSION = NTP_VERSION_2;
|
Minimum acceptable NTP/SNTP version |
NTP_MAX_VERSION = NTP_VERSION_4;
|
Maximum acceptable NTP/SNTP version |
NTP_PACKET_SIZE = 48;
|
SizeOf(TNTPPacket) |
NTP_TIMESTAMP_START = 94354848000000000;
|
Offset between 1/1/1601 (Ultibo) and 1/1/1900 (NTP Timestamp) |
NTP_LEAP_*
NTP_LEAP_NONE = 0;
|
|
NTP_LEAP_LAST_61 = 1;
|
|
NTP_LEAP_LAST_59 = 2;
|
|
NTP_LEAP_ALARM = 3;
|
|
NTP_LEAP_MASK = $03;
|
shl 6 |
NTP_MODE_*
NTP_MODE_RESERVED = 0;
|
Reserved |
NTP_MODE_SYMMETRIC_ACTIVE = 1;
|
Symmetric active |
NTP_MODE_SYMMETRIC_PASSIVE = 2;
|
Symmetric passive |
NTP_MODE_CLIENT = 3;
|
Client |
NTP_MODE_SERVER = 4;
|
Server |
NTP_MODE_BROADCAST = 5;
|
Broadcast |
NTP_MODE_CONTROL = 6;
|
Reserved for NTP control message |
NTP_MODE_PRIVATE = 7;
|
Reserved for private use |
NTP_MODE_MASK = $07;
|
shl 0 |
NTP_STRATUM_*
NTP_STRATUM_INVALID = 0;
|
unspecified or invalid |
NTP_STRATUM_PRIMARY = 1;
|
primary server (e.g., equipped with a GPS receiver) |
NTP_STRATUM_SECONDARY2 = 2;
|
secondary server (via NTP) |
NTP_STRATUM_SECONDARY3 = 3;
|
secondary server (via NTP) |
NTP_STRATUM_SECONDARY4 = 4;
|
secondary server (via NTP) |
NTP_STRATUM_SECONDARY5 = 5;
|
secondary server (via NTP) |
NTP_STRATUM_SECONDARY6 = 6;
|
secondary server (via NTP) |
NTP_STRATUM_SECONDARY7 = 7;
|
secondary server (via NTP) |
NTP_STRATUM_SECONDARY8 = 8;
|
secondary server (via NTP) |
NTP_STRATUM_SECONDARY9 = 9;
|
secondary server (via NTP) |
NTP_STRATUM_SECONDARY10 = 10;
|
secondary server (via NTP) |
NTP_STRATUM_SECONDARY11 = 11;
|
secondary server (via NTP) |
NTP_STRATUM_SECONDARY12 = 12;
|
secondary server (via NTP) |
NTP_STRATUM_SECONDARY13 = 13;
|
secondary server (via NTP) |
NTP_STRATUM_SECONDARY14 = 14;
|
secondary server (via NTP) |
NTP_STRATUM_SECONDARY15 = 15;
|
secondary server (via NTP) |
NTP_STRATUM_UNSYNCRONIZED = 16;
|
unsynchronized |
NTP_STRATUM_RESERVED = 17;
|
reserved |
TELNET_CHAR_*
TELNET_CHAR_NUL = #0;
|
|
TELNET_CHAR_CR = #13;
|
|
TELNET_CHAR_LF = #10;
|
|
TELNET_CHAR_BELL = #7;
|
|
TELNET_CHAR_TAB = #9;
|
|
TELNET_CHAR_ESC = #27;
|
|
TELNET_CHAR_BACKSPACE = #127;
|
|
TELNET_BUFFER_SIZE = SIZE_2K;
|
TELNET_SEQUENCE_*
TELNET_SEQUENCE_UP_ARROW = #27#91#65;
|
ESC[A |
TELNET_SEQUENCE_DOWN_ARROW = #27#91#66;
|
ESC[B |
TELNET_SEQUENCE_RIGHT_ARROW = #27#91#67;
|
ESC[C |
TELNET_SEQUENCE_LEFT_ARROW = #27#91#68;
|
ESC[D |
TELNET_SEQUENCE_HOME = #27#91#49#126;
|
ESC[1~ |
TELNET_SEQUENCE_INSERT = #27#91#50#126;
|
ESC[2~ |
TELNET_SEQUENCE_DELETE = #27#91#51#126;
|
ESC[3~ |
TELNET_SEQUENCE_END = #27#91#52#126;
|
ESC[4~ |
TELNET_SEQUENCE_PGUP = #27#91#53#126;
|
ESC[5~ |
TELNET_SEQUENCE_PGDN = #27#91#54#126;
|
ESC[6~ |
TELNET_SEQUENCE_F1 = #27#91#49#49#126;
|
ESC[11~ |
TELNET_SEQUENCE_F2 = #27#91#49#50#126;
|
ESC[12~ |
TELNET_SEQUENCE_F3 = #27#91#49#51#126;
|
ESC[13~ |
TELNET_SEQUENCE_F4 = #27#91#49#52#126;
|
ESC[14~ |
TELNET_SEQUENCE_F5 = #27#91#49#53#126;
|
ESC[15~ |
TELNET_SEQUENCE_F6 = #27#91#49#55#126;
|
ESC[17~ |
TELNET_SEQUENCE_F7 = #27#91#49#56#126;
|
ESC[18~ |
TELNET_SEQUENCE_F8 = #27#91#49#57#126;
|
ESC[19~ |
TELNET_SEQUENCE_F9 = #27#91#50#48#126;
|
ESC[20~ |
TELNET_SEQUENCE_F10 = #27#91#50#49#126;
|
ESC[21~ |
TELNET_BUFFER_*
TELNET_BUFFER_SIZE = SIZE_2K;
|
TELNET_STATE_*
TELNET_STATE_NONE = $00000000;
|
|
TELNET_STATE_TRANSMIT_BINARY = $00000001;
|
|
TELNET_STATE_ECHO = $00000002;
|
|
TELNET_STATE_SUPPRESS_GA = $00000004;
|
|
TELNET_STATE_TERMINAL_TYPE = $00000008;
|
|
TELNET_STATE_WINDOW_SIZE = $00000010;
|
|
TELNET_STATE_TERMINAL_SPEED = $00000020;
|
|
TELNET_STATE_NEW_ENVIRONMENT = $00000040;
|
TELNET_COMMAND_*
TELNET_COMMAND_EOR = 239;
|
0xEF end of record command |
TELNET_COMMAND_SE = 240;
|
0xF0 end of subnegotiations command |
TELNET_COMMAND_NOP = 241;
|
0xF1 no operation command |
TELNET_COMMAND_DM = 242;
|
0xF2 data mark command |
TELNET_COMMAND_BRK = 243;
|
0xF3 break NVT charater |
TELNET_COMMAND_IP = 244;
|
0xF4 interrupt process command |
TELNET_COMMAND_AO = 245;
|
0xF5 abort output command |
TELNET_COMMAND_AYT = 246;
|
0xF6 are you there command |
TELNET_COMMAND_EC = 247;
|
0xF7 erase character command |
TELNET_COMMAND_EL = 248;
|
0xF8 erase line command |
TELNET_COMMAND_GA = 249;
|
0xF9 go ahead command |
TELNET_COMMAND_SB = 250;
|
0xFA begin option subnegotiations command |
TELNET_COMMAND_WILL = 251;
|
0xFB will enable option |
TELNET_COMMAND_WONT = 252;
|
0xFC won't enable option |
TELNET_COMMAND_DO = 253;
|
0xFD request other party enables option |
TELNET_COMMAND_DONT = 254;
|
0xFE request other party doesn't enable option |
TELNET_COMMAND_IAC = 255;
|
0xFF interpret as command |
TELNET_OPTION_*
TELNET_OPTION_TRANSMIT_BINARY = 0;
|
0x00 transmit binary option |
TELNET_OPTION_ECHO = 1;
|
0x01 echo option |
TELNET_OPTION_SUPPRESS_GA = 3;
|
0x03 suppress go ahead option |
TELNET_OPTION_TERMINAL_TYPE = 24;
|
0x18 terminal type |
TELNET_OPTION_WINDOW_SIZE = 31;
|
0x1F negotiate window size |
TELNET_OPTION_TERMINAL_SPEED = 32;
|
0x20 terminal speed |
TELNET_OPTION_NEW_ENVIRONMENT = 39;
|
0x27 new environment |
SYSLOG_LOGGING_*
SYSLOG_LOGGING_DESCRIPTION = 'SysLog Logging';
|
SYSLOG_FACILITY_*
SYSLOG_FACILITY_KERNEL = 0;
|
kernel messages |
SYSLOG_FACILITY_USER = 1;
|
user-level messages |
SYSLOG_FACILITY_MAIL = 2;
|
mail system |
SYSLOG_FACILITY_SYSTEM = 3;
|
system daemons |
SYSLOG_FACILITY_SECURITY = 4;
|
security/authorization messages (note 1) |
SYSLOG_FACILITY_SYSLOG = 5;
|
messages generated internally by syslogd |
SYSLOG_FACILITY_PRINTER = 6;
|
line printer subsystem |
SYSLOG_FACILITY_NEWS = 7;
|
network news subsystem |
SYSLOG_FACILITY_UUCP = 8;
|
UUCP subsystem |
SYSLOG_FACILITY_CLOCK = 9;
|
clock daemon (note 2) |
SYSLOG_FACILITY_AUTH = 10;
|
security/authorization messages (note 1) |
SYSLOG_FACILITY_FTP = 11;
|
FTP daemon |
SYSLOG_FACILITY_NTP = 12;
|
NTP subsystem |
SYSLOG_FACILITY_AUDIT = 13;
|
log audit (note 1) |
SYSLOG_FACILITY_ALERT = 14;
|
log alert (note 1) |
SYSLOG_FACILITY_CLOCK2 = 15;
|
clock daemon (note 2) |
SYSLOG_FACILITY_LOCAL0 = 16;
|
local use 0 (local0) |
SYSLOG_FACILITY_LOCAL1 = 17;
|
local use 1 (local1) |
SYSLOG_FACILITY_LOCAL2 = 18;
|
local use 2 (local2) |
SYSLOG_FACILITY_LOCAL3 = 19;
|
local use 3 (local3) |
SYSLOG_FACILITY_LOCAL4 = 20;
|
local use 4 (local4) |
SYSLOG_FACILITY_LOCAL5 = 21;
|
local use 5 (local5) |
SYSLOG_FACILITY_LOCAL6 = 22;
|
local use 6 (local6) |
SYSLOG_FACILITY_LOCAL7 = 23;
|
local use 7 (local7) |
SYSLOG_SEVERITY_*
SYSLOG_SEVERITY_EMERGENCY = 0;
|
Emergency: system is unusable |
SYSLOG_SEVERITY_ALERT = 1;
|
Alert: action must be taken immediately |
SYSLOG_SEVERITY_CRITICAL = 2;
|
Critical: critical conditions |
SYSLOG_SEVERITY_ERROR = 3;
|
Error: error conditions |
SYSLOG_SEVERITY_WARNING = 4;
|
Warning: warning conditions |
SYSLOG_SEVERITY_NOTICE = 5;
|
Notice: normal but significant condition |
SYSLOG_SEVERITY_INFORMATION = 6;
|
Informational: informational messages |
SYSLOG_SEVERITY_DEBUG = 7;
|
Debug: debug-level messages |
SERVICE_LOG_*
SERVICE_LOG_LEVEL_DEBUG = LOG_LEVEL_DEBUG;
|
Service debugging messages |
SERVICE_LOG_LEVEL_INFO = LOG_LEVEL_INFO;
|
Service informational messages, such as a service being created or destroyed |
SERVICE_LOG_LEVEL_WARN = LOG_LEVEL_WARN;
|
Service warning messages |
SERVICE_LOG_LEVEL_ERROR = LOG_LEVEL_ERROR;
|
Service error messages |
SERVICE_LOG_LEVEL_NONE = LOG_LEVEL_NONE;
|
No Service messages |
Type definitions
NTP short
PNTPShort = ^TNTPShort;
TNTPShort = packed record
Note: NTP Short Format | |
Seconds:Word;
|
Seconds |
Fraction:Word;
|
Fraction |
NTP timestamp
PNTPTimestamp = ^TNTPTimestamp;
TNTPTimestamp = packed record
Note: NTP Timestamp Format | |
Seconds:LongWord;
|
Seconds |
Fraction:LongWord;
|
Seconds Fraction (0-padded) |
NTP date format
PNTPDate = ^TNTPDate;
TNTPDate = packed record
EraNumber:LongWord;
|
Era Number |
EraOffset:LongWord;
|
Era Offset |
Fraction:Int64;
|
Fraction |
NTP packet
PNTPPacket = ^TNTPPacket;
TNTPPacket = packed record
LeapVersionMode:Byte;
|
Leap Indicator (2 bits)/Version (3 bits)/Mode (3 bits) |
Stratum:Byte;
|
This is an eight-bit unsigned integer indicating the stratum |
PollInterval:Byte;
|
This is an eight-bit unsigned integer used as an exponent of two, where the resulting value is the maximum interval between successive messages in seconds. |
Precision:ShortInt;
|
This is an eight-bit signed integer used as an exponent of two, where the resulting value is the precision of the system clock in seconds. |
RootDelay:LongInt;
|
This is a 32-bit signed fixed-point number indicating the total roundtrip delay to the primary reference source, in seconds with the fraction point between bits 15 and 16. |
RootDispersion:LongWord;
|
This is a 32-bit unsigned fixed-point number indicating the maximum error due to the clock frequency tolerance, in seconds with the fraction point between bits 15 and 16. |
ReferenceIdentifier:array[0..3] of Byte;
|
This is a 32-bit bitstring identifying the particular reference source |
ReferenceTimestamp:TNTPTimestamp;
|
This field is the time the system clock was last set or corrected, in 64-bit timestamp format. |
OriginateTimestamp:TNTPTimestamp;
|
This is the time at which the request departed the client for the server, in 64-bit timestamp format. |
ReceiveTimestamp:TNTPTimestamp;
|
This is the time at which the request arrived at the server or the reply arrived at the client, in 64-bit timestamp format. |
TransmitTimestamp:TNTPTimestamp;
|
This is the time at which the request departed the client or the reply departed the server, in 64-bit timestamp format. |
KeyIdentifier:LongWord;
|
Optional for NTP authentication |
MessageDigest:array[0..15] of Byte;
|
Optional for NTP authentication |
Syslog logging
PSyslogLogging = ^TSyslogLogging;
TSyslogLogging = record
Logging Properties | |
Logging:TLoggingDevice;
|
|
Syslog Properties | |
Client:TSyslogClient;
|
Telnet host event
TTelnetHostEvent = function(AConnection:TTelnetConnection):Boolean of Object;
|
Telnet count event
TTelnetCountEvent = function(AConnection:TTelnetConnection):Boolean of Object;
|
Telnet initialize event
TTelnetInitEvent = function(AConnection:TTelnetConnection):Boolean of Object;
|
Telnet character event
TTelnetCharEvent = function(AConnection:TTelnetConnection; AChar:Char):Boolean of Object;
|
Telnet command event
TTelnetCommandEvent = function(AConnection:TTelnetConnection; ACommand,AOption:Byte; AData:Pointer; ASize:LongWord):Boolean of Object;
|
Telnet connection event
TTelnetConnectionEvent = procedure(AConnection:TTelnetConnection) of Object;
|
Class definitions
Ping classes
TPingClient = class(TWinsock2RAWClient)
|
TNTPClient = class(TWinsock2UDPClient)
|
Telnet classes
TTelnetBuffer = class(TObject)
|
TTelnetConnection = class(TListObject)
|
TTelnetListener = class(TWinsock2TCPListener)
|
SysLog classes
TSyslogClient = class(TObject)
|
Public variables
Service logging
SERVICE_DEFAULT_LOG_LEVEL:LongWord = SERVICE_LOG_LEVEL_DEBUG;
|
Minimum level for Service messages. Only messages with level greater than or equal to this will be printed. |
SERVICE_LOG_ENABLED:Boolean;
|
Function declarations
Initialization functions
procedure ServicesInit;
Note | None documented |
---|
NTP functions
procedure NTPUpdateTime(Client:TNTPClient);
Note | None documented |
---|
function WholeSeconds(Time:Int64):Int64;
Note | None documented |
---|
SysLog functions
function SysLogLoggingStart(Logging:PLoggingDevice):LongWord;
Note | None documented |
---|
function SysLogLoggingStop(Logging:PLoggingDevice):LongWord;
Note | None documented |
---|
function SysLogLoggingOutput(Logging:PLoggingDevice; const Data:String):LongWord;
Note | None documented |
---|
function SysLogLoggingOutputEx(Logging:PLoggingDevice; Facility,Severity:LongWord; const Tag,Content:String):LongWord;
Note | None documented |
---|
function SysLogLoggingGetTarget(Logging:PLoggingDevice):String;
Note | None documented |
---|
function SysLogLoggingSetTarget(Logging:PLoggingDevice; const Target:String):LongWord;
Note | None documented |
---|
Service helper functions
procedure ServiceLog(Level:LongWord; const AText:String);
Note | None documented |
---|
procedure ServiceLogInfo(const AText:String); inline;
Note | None documented |
---|
procedure ServiceLogWarn(const AText:String); inline;
Note | None documented |
---|
procedure ServiceLogError(const AText:String); inline;
Note | None documented |
---|
procedure ServiceLogDebug(const AText:String); inline;
Note | None documented |
---|
NTP helper functions
function NTPTimestampToHost(const Timestamp:TNTPTimestamp):TNTPTimestamp;
Note | None documented |
---|
function NTPTimestampToNetwork(const Timestamp:TNTPTimestamp):TNTPTimestamp;
Note | None documented |
---|
function NTPTimestampAdd(const Timestamp1,Timestamp2:TNTPTimestamp):TNTPTimestamp;
Note | Expects Timestamp to be in Network order. Returns Timestamp in Network order. |
---|
function NTPTimestampSubtract(const Timestamp1,Timestamp2:TNTPTimestamp):TNTPTimestamp;
Note | Expects Timestamp to be in Network order. Returns Timestamp in Network order. |
---|
function NTPTimestampDivide(const Timestamp:TNTPTimestamp; Divisor:LongWord):TNTPTimestamp;
Note | Expects Timestamp to be in Network order. Returns Timestamp in Network order. |
---|
function ClockTimeToNTPTimestamp(const Time:Int64):TNTPTimestamp;
Note | Returns Timestamp in Network order |
---|
function NTPTimestampToClockTime(const Timestamp:TNTPTimestamp):Int64;
Note | Expects Timestamp to be in Network order |
---|
function NTPTimestampToString(const Timestamp:TNTPTimestamp):String;
Note | Expects Timestamp to be in Network order |
---|
Telnet helper functions
function TelnetCommandToString(Command:Byte):String;
Note | None documented |
---|
function TelnetCommandHasOption(Command:Byte):Boolean;
Note | None documented |
---|
function TelnetOptionToString(Option:Byte):String;
Note | None documented |
---|
SysLog helper functions
function FileTimeToSysLogDateTime(const AFileTime:TFileTime):String;
Note | None documented |
---|
function LoggingFacilityToSysLogFacility(Facility:LongWord):LongWord;
Note | None documented |
---|
function LoggingSeverityToSysLogSeverity(Severity:LongWord):LongWord;
Note | None documented |
---|
Return to Unit Reference