Difference between revisions of "Unit RTC"
From Ultibo.org
								
												
				| Line 12: | Line 12: | ||
| ---- | ---- | ||
| − | '' | + | |
| + | <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;">'''RTC specific constants''' <code> RTC_* </code></div> | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;" | ||
| + | |- | ||
| + | | <code>RTC_NAME_PREFIX = 'RTC';</code> | ||
| + | | Name prefix for RTC Devices | ||
| + | |- | ||
| + | |} | ||
| + | </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;">'''RTC device type constants''' <code> RTC_TYPE_* </code></div> | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;" | ||
| + | |- | ||
| + | | <code>RTC_TYPE_NONE = 0;</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;">'''RTC device state constants''' <code> RTC_STATE_* </code></div> | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;" | ||
| + | |- | ||
| + | | <code>RTC_STATE_DISABLED = 0;</code> | ||
| + | | style="width: 50%;"|  | ||
| + | |- | ||
| + | | <code>RTC_STATE_ENABLED = 1;</code> | ||
| + | |   | ||
| + | |- | ||
| + | |} | ||
| + | </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;">'''RTC device flag constants''' <code> RTC_FLAG_* </code></div> | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;" | ||
| + | |- | ||
| + | | <code>RTC_FLAG_NONE = $00000000;</code> | ||
| + | |   | ||
| + | |- | ||
| + | | <code>RTC_FLAG_ALARM = $00000001;</code> | ||
| + | | Device supports one or more alarms | ||
| + | |- | ||
| + | | <code>RTC_FLAG_WATCHDOG = $00000002;</code> | ||
| + | | Device has a watchdog timer function | ||
| + | |- | ||
| + | |} | ||
| + | </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;">'''RTC logging constants''' <code> RTC_LOG_* </code></div> | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;" | ||
| + | |- | ||
| + | | <code>RTC_LOG_LEVEL_DEBUG = LOG_LEVEL_DEBUG;</code> | ||
| + | | RTC debugging messages | ||
| + | |- | ||
| + | | <code>RTC_LOG_LEVEL_INFO = LOG_LEVEL_INFO;</code> | ||
| + | | RTC informational messages, such as a device being attached or detached | ||
| + | |- | ||
| + | | <code>RTC_LOG_LEVEL_ERROR = LOG_LEVEL_ERROR;</code> | ||
| + | | RTC error messages | ||
| + | |- | ||
| + | | <code>RTC_LOG_LEVEL_NONE = LOG_LEVEL_NONE;</code> | ||
| + | | No RTC messages | ||
| + | |- | ||
| + | |} | ||
| + | </div></div> | ||
| + | <br /> | ||
| === Type definitions === | === Type definitions === | ||
Revision as of 04:54, 28 November 2016
Return to Unit Reference
Description
The RTC unit provides the device interface for real time clock modules to be registered with Ultibo core. Each RTC module requires a driver that communicates with the specific hardware to implement the device interface although many devices may use the same chip and will be covered by a single driver.
This unit registers the RTCGetTime and RTCSetTime functions with the Platform unit to enable hardware independent access to a real time clock module. 
Constants
RTC specific constants 
 RTC_* | RTC_NAME_PREFIX = 'RTC'; | Name prefix for RTC Devices | 
RTC device type constants 
 RTC_TYPE_* | RTC_TYPE_NONE = 0; | 
RTC device state constants 
 RTC_STATE_* | RTC_STATE_DISABLED = 0; | |
| RTC_STATE_ENABLED = 1; | 
RTC device flag constants 
 RTC_FLAG_* | RTC_FLAG_NONE = $00000000; | |
| RTC_FLAG_ALARM = $00000001; | Device supports one or more alarms | 
| RTC_FLAG_WATCHDOG = $00000002; | Device has a watchdog timer function | 
RTC logging constants 
 RTC_LOG_* | RTC_LOG_LEVEL_DEBUG = LOG_LEVEL_DEBUG; | RTC debugging messages | 
| RTC_LOG_LEVEL_INFO = LOG_LEVEL_INFO; | RTC informational messages, such as a device being attached or detached | 
| RTC_LOG_LEVEL_ERROR = LOG_LEVEL_ERROR; | RTC error messages | 
| RTC_LOG_LEVEL_NONE = LOG_LEVEL_NONE; | No RTC messages | 
Type definitions
To be documented
Public variables
To be documented
Function declarations
Initialization functions
procedure RTCInit;
Description: To be documented
| Note | None documented | 
|---|
RTC functions
function RTCDeviceStart(RTC:PRTCDevice):LongWord;
Description: To be documented
| Note | None documented | 
|---|
function RTCDeviceStop(RTC:PRTCDevice):LongWord;
Description: To be documented
| Note | None documented | 
|---|
function RTCDeviceGetTime(RTC:PRTCDevice):Int64;
Description: To be documented
| Note | None documented | 
|---|
function RTCDeviceSetTime(RTC:PRTCDevice; const Time:Int64):Int64;
Description: To be documented
| Note | None documented | 
|---|
function RTCDeviceProperties(RTC:PRTCDevice; Properties:PRTCProperties):LongWord;
Description: To be documented
| Note | None documented | 
|---|
function RTCDeviceCreate:PRTCDevice;
Description: Create a new RTC entry
| Return | Pointer to new RTC entry or nil if RTC could not be created | 
|---|
function RTCDeviceCreateEx(Size:LongWord):PRTCDevice;
Description: Create a new RTC entry
| Size | Size in bytes to allocate for new RTC (Including the RTC entry) | 
|---|---|
| Return | Pointer to new RTC entry or nil if RTC could not be created | 
function RTCDeviceDestroy(RTC:PRTCDevice):LongWord;
Description: Destroy an existing RTC entry
| Note | None documented | 
|---|
function RTCDeviceRegister(RTC:PRTCDevice):LongWord;
Description: Register a new RTC in the RTC table
| Note | None documented | 
|---|
function RTCDeviceDeregister(RTC:PRTCDevice):LongWord;
Description: Deregister a RTC from the RTC table
| Note | None documented | 
|---|
function RTCDeviceFind(RTCId:LongWord):PRTCDevice;
Description: To be documented
| Note | None documented | 
|---|
function RTCDeviceFindByName(const Name:String):PRTCDevice; inline;
Description: To be documented
| Note | None documented | 
|---|
function RTCDeviceFindByDescription(const Description:String):PRTCDevice; inline;
Description: To be documented
| Note | None documented | 
|---|
function RTCDeviceEnumerate(Callback:TRTCEnumerate; Data:Pointer):LongWord;
Description: To be documented
| Note | None documented | 
|---|
function RTCDeviceNotification(RTC:PRTCDevice; Callback:TRTCNotification; Data:Pointer; Notification,Flags:LongWord):LongWord;
Description: To be documented
| Note | None documented | 
|---|
RTL RTC functions
function SysRTCAvailable:Boolean;
Description: Check if an RTC device is available
| Note | None documented | 
|---|
function SysRTCGetTime:Int64;
Description: Get the current time from a RTC device
| Note | Returned time is 100 nanosecond ticks since 1 January 1601 | 
|---|
function SysRTCSetTime(const Time:Int64):Int64;
Description: Set the current time for a RTC device
| Time | The time to be set | 
|---|---|
| Return | The device time after setting (or 0 on failure) | 
| Note | Time and returned time is 100 nanosecond ticks since 1 January 1601 | 
RTC helper functions
function RTCGetCount:LongWord; inline;
Description: Get the current RTC count
| Note | None documented | 
|---|
function RTCDeviceGetDefault:PRTCDevice; inline;
Description: Get the current default RTC device
| Note | None documented | 
|---|
function RTCDeviceSetDefault(RTC:PRTCDevice):LongWord;
Description: Set the current default RTC device
| Note | None documented | 
|---|
function RTCDeviceCheck(RTC:PRTCDevice):PRTCDevice;
Description: Check if the supplied RTC is in the RTC table
| Note | None documented | 
|---|
function RTCTimeIsValid(const Time:TSystemTime):Boolean;
Description: To be documented
| Note | None documented | 
|---|
function RTCSystemTimeToFileTime(const SystemTime:TSystemTime; var FileTime:Int64):Boolean;
Description: System time is assumed to be UTC and returned file time is UTC
| Note | None documented | 
|---|
function RTCFileTimeToSystemTime(const FileTime:Int64; var SystemTime:TSystemTime):Boolean;
Description: File time is assumed to be UTC and returned system time is UTC
| Note | None documented | 
|---|
procedure RTCLog(Level:LongWord; RTC:PRTCDevice; const AText:String);
Description: To be documented
| Note | None documented | 
|---|
procedure RTCLogInfo(RTC:PRTCDevice; const AText:String); inline;
Description: To be documented
| Note | None documented | 
|---|
procedure RTCLogError(RTC:PRTCDevice; const AText:String); inline;
Description: To be documented
| Note | None documented | 
|---|
procedure RTCLogDebug(RTC:PRTCDevice; const AText:String); inline;
Description: To be documented
| Note | None documented | 
|---|
Return to Unit Reference

