「WEEKLY_INI」の編集履歴(バックアップ)一覧に戻る

WEEKLY_INI - (2008/11/08 (土) 21:42:04) の編集履歴(バックアップ)


WEEKLY.INI

weekly.iniはRuputerのSYSTEM直下にあるINIファイルで、
Ruputerの週アラーム(ウィークリーアラーム)を管理している設定ファイルだ。

そのサイズは76bytes。

MANUALによれば、先頭から4つ分(4CH分)の週アラームデータが保管されている。
その構造は、

#define SNDFILENAMESIZE    8
typedef struct {
   unsigned short week;
   unsigned short hour;
   unsigned short min;
   char snd[SNDFILENAMESIZE];
} WEEKLYTABLE;
(引用元:『RupSDK rupsys.h』)


これが連続して4つ。
なお、char snd[SNDFILENAMESIZE] には '.snd'は含めないことになっている。

しかし、これだけでは、14 * 4 = 56(bytes)なので、あと20bytes足りない。

残りの20bytesは次のとおり。
typedef struct{
   short DISPno;
   short Chaim;
   short ALmode[4];
   unsigned short ALweek[4];
}WATCH;
(引用元:『RupSDK DQalarm alarm.c』)

DISPno:用途不明
Chaim :用途不明

short ALmode[4];
これは、 0 = OFF / 1 = DAY / 2 = WEEK だ。
WEEKで全ての曜日にアラームを指定した状態でも、DAYと同じ扱い(表示)にならないのは、
ここにそれぞれのCHについて、WEEKLYTABLE構造体とは別にアラームモードの情報をもっているため。

unsigned short ALweek[4];
これは、WEEKLYTABLE構造体の week のバックアップだと、考えるといい。
例えば、(1)WEEK -> DAY に設定を変更し、適用した後、(2)もう一度その逆の操作をしても、
(1)の設定の前、どの曜日にアラームをONにしていたかの情報が残っている。それはこのため。
OFFやDAYモードへ変更する際にはこのエリアに前のweekの情報を残しておくこと。


なお、weekly.iniを週アラームへ反映させるには、Rupsys関数の setWeeklyAlarm() を実行する。