#include"context.h"
#include"day.h"

// プロトタイプ宣言
void ChangeState(STATE* state);

// コンテキスト
static S_CONTEXT context;

// 時間
static unsigned int hour = 0;

void setup() {
    // 初期化
    Serial.begin(9600);
    memset(&context, 0x00, sizeof(context));

    context.state = GetDayInstans();
    context.ChangeState = ChangeState;
    hour = 0;
    Serial.print("start\n");
}

void loop() {
    // モードの処理
    context.state->SetTime(&context, hour);

    // 挨拶をする (状態の処理)
    context.state->Greeting();

    // 時間を更新する
    hour++;
    if (hour > 24) {
        hour = 0;
    }
    delay(1000);
}

// 状態変更
void ChangeState(STATE* state){
    Serial.print("状態が変更された\n");
    context.state = state;

    // モードが変わったら初期化する
    context.state->SetTime(&context, hour);
}

