RTC Alarm Synchronized Scheduler
このライブラリは、RTCオブジェクトのアラーム発生時刻設定を補助する機能を提供する組み込みクラスです。
| Library usage requirements | |
|---|---|
| Type | Utils |
| Name | ALMSYNC |
| Version | 1_00_00 |
| Code size used | 1.2KB |
| Resources used | RTC x 1 |
Abstracts
| Methods()/Properties | Summary | Note |
|---|---|---|
| new ALMSYNC() | ALMSYNCインスタンスを生成します。 |
{ALMSYNC} Instance
| Methods()/Properties | Summary | Note |
|---|---|---|
| .start() | 初回のアラームを起動します。 | |
| .setNext() | 初回アラーム時刻を基準とした次のアラームを起動します。 | |
| .getNext() | 現在設定されている次のアラーム時刻を取得します。 | |
| .check() | アラーム発生状態を確認します。 | |
| .stop() | アラームを停止します。 | |
| .VERSION | バージョン情報 maj : {number} Main Version min : {number} Minor Version rev : {number} Revision |
Details
new ALMSYNC()
ALMSYNCインスタンスを生成します。
| Name | Type | M/O | Description | Note |
|---|---|---|---|---|
| return | {ALMSYNC} | - | {ALMSYNC} : 生成された{ALMSYNC} | 異常が発生した時は、例外となります。 |
.start(stepUnit,interval)
初回のアラームを起動します。
初回のアラームは、絶対時刻00:00:00から指定した秒間隔でステップアップした時刻のうち、現在時刻に最も近い時刻に設定されます。
以降、.setNext()メソッドを用いて、指定されたアラーム周期で初回アラーム時刻を基準とした次のアラームを起動します。
| Name | Type | M/O | Description | Note |
|---|---|---|---|---|
| stepUnit | number | mandatory | 初回アラームステップ単位[s] 設定範囲: 1~86400 | ステップ単位を30秒とした場合 : 最初のアラームは、現在時刻から最も近い hh:mm:00またはhh:mm:30となります。ステップ単位を60秒とした場合 : 最初のアラームは、現在時刻から最も近い hh:[mm+1]:00となります。ステップ単位を300秒とした場合 : 最初のアラームは、現在時刻から最も近い hh:05:00, hh:10:00, hh:15:00, ... , hh:55:00, [hh+1]:00:00のいずれかとなります。 |
| interval | number | mandatory | アラーム周期[s] 次回から適用される継続的なアラーム周期を設定します。 設定範囲: 1~86400 | |
| return | boolean | - | アラーム起動結果 true: 成功 false: 失敗 |
.setNext()
初回アラーム時刻を基準とした次のアラームを起動します。
事前に.start()メソッドが実行されている必要があります。
| Name | Type | M/O | Description | Note |
|---|---|---|---|---|
| return | boolean | - | アラーム起動結果 true: 成功 false: 失敗 |
.getNext()
現在設定されている次のアラーム時刻を取得します。
| Name | Type | M/O | Description | Note |
|---|---|---|---|---|
| return | {Date}, null | - | {Date} : 現在設定されている次のアラーム時刻 アラーム時刻は Dateオブジェクトとなります。アラームが起動されていない場合は、nullが返却されます。 |
.check()
アラーム発生状態を確認します。
| Name | Type | M/O | Description | Note |
|---|---|---|---|---|
| return | number | - | アラーム発生状態 0: アラーム未発生 1: アラーム発生 | アラームが起動されていない場合は、0となります。 |
.stop()
アラームを停止します。
| Name | Type | M/O | Description | Note |
|---|---|---|---|---|
| return | undefined | - |
Usage Examples
Sample 1
n分00秒に初回のアラームを発生させ、以降、10秒毎にアラームを発生させます。
// IMPORTED LIBRARIES
// - ALMSYNC
//Logging setup
log.setLevel(0,2); //-1:NONE 0:ERROR 1:WARNING 2:DEBUG 3:TRACE, 0:DISABLE 1:LOG 2:CONSOLE 3:BOTH
log.printLevel(2); //0:DISABLE 1:LOG 2:CONSOLE 3:BOTH
//Alarm config
var alarm = new ALMSYNC();
var stepUnit = 60;
var interval = 10;
alarm.start(stepUnit, interval);
print(alarm.getNext() + ' first alarm event');
//Main loop
while(1) {
if(alarm.check()) {
print(Date() + ' alarm event');
alarm.setNext();
print(alarm.getNext() + ' next alarm event');
}
}
Updated: 2021-10-19
