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