Unit RTC
From Ultibo.org
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