ctr_card_test/trunk/FunctionTest.cpp
(no author) 5ca4e48ce9 結合テスト準備
git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-09-30%20-%20paladin.7z/paladin/ctr_card_test@11 ff8ce827-af98-4349-adb5-4c00699b5328
2010-02-23 01:42:22 +00:00

248 lines
5.1 KiB
C++

#include "nakayama.h"
using namespace nn::red::nakayama;
class CardFunctionTest: public CardTestProgram
{
public:
virtual void Execute()
{
bool run = false;
Page page;
Label title;
title.X = 10;
title.Y = 10;
if ( card_type == CARD_TYPE_S1 )
{
title.Text = "[S1 Function Test]";
}
else
{
title.Text = "[S2 Function Test]";
}
page.Add(title);
Label running;
running.X = 120;
running.Y = 100;
running.Text = "Running";
page.Add(running);
Label loop;
loop.X = 10;
loop.Y = 200;
loop.Text = "Loop:";
page.Add(loop);
Label count;
count.X = 60;
count.Y = 200;
count.Text = "0000000000000";
page.Add(count);
KeyPad& pad = KeyPad::GetInstance();
while (1)
{
pad.ReadKey();
page.Show(Display::GetInstance(Display::Lower));
if (pad.IsTrigger(KeyPad::A))
{
// 実行中でなければ
if( !run )
{
run = true;
#ifdef INTEGRATION_TEST
setting.up_down = 0;
setting.StartAddress = 0;
setting.size = 0;
setting.EndAddress = 0;
setting.data = 0;
setting.reserved1 = 0;
setting.reserved2 = 0;
if ( card_type == CARD_TYPE_S1 )
{
// パラメータ設定
cardSettingMenu( TID_FUNC_TEST1, &setting );
// S1なら 引数:buffer, BUFFER_SIZE, TestCaseID(TID_FUNC_TEST1), detailInfo
cardFunctionTestStart( (u8*)card_test_buffer, BUFFER_SIZE, TID_FUNC_TEST1, &detail);
}
else
{
// パラメータ設定
cardSettingMenu( TID_FUNC_TEST2, &setting );
// S2なら 引数:buffer, BUFFER_SIZE, TestCaseID(TID_FUNC_TEST2), detailInfo
cardFunctionTestStart( (u8*)card_test_buffer, BUFFER_SIZE, TID_FUNC_TEST2, &detail);
}
#endif
}
}
if (pad.IsTrigger(KeyPad::B))
{
// 実行中であれば
if( run )
{
run = false;
#ifdef INTEGRATION_TEST
cardFunctionTestEnd();
#endif
}
else
{
Display::GetInstance(Display::Lower).Clear();
Display::GetInstance(Display::Lower).SwapBuffer();
break;
}
}
}
};
};
class IrregularAccessTest: public CardTestProgram
{
public:
virtual void Execute()
{
bool run = false;
Page page;
Label title;
title.X = 10;
title.Y = 10;
title.Text = "[Irregular Access Test]";
page.Add(title);
Label loop;
loop.X = 10;
loop.Y = 200;
loop.Text = "Loop:";
page.Add(loop);
Label count;
count.X = 60;
count.Y = 200;
count.Text = "0000000000000";
page.Add(count);
KeyPad& pad = KeyPad::GetInstance();
while (1)
{
pad.ReadKey();
page.Show(Display::GetInstance(Display::Lower));
if (pad.IsTrigger(KeyPad::A))
{
// 実行中でなければ
if( !run )
{
run = true;
#ifdef INTEGRATION_TEST
setting.up_down = 0;
setting.StartAddress = 0;
setting.size = 0;
setting.EndAddress = 0;
setting.data = 0;
setting.reserved1 = 0;
setting.reserved2 = 0;
// パラメータ設定
cardSettingMenu( TID_FUNC_INTEG, &setting );
// 処理開始
cardFunctionTestStart( (u8*)card_test_buffer, BUFFER_SIZE, TID_FUNC_INTEG, &detail);
#endif
}
}
if (pad.IsTrigger(KeyPad::B))
{
// 実行中であれば
if( run )
{
run = false;
#ifdef INTEGRATION_TEST
cardFunctionTestEnd();
#endif
}
else
{
Display::GetInstance(Display::Lower).Clear();
Display::GetInstance(Display::Lower).SwapBuffer();
break;
}
}
}
};
};
class FunctionTest: public CardTestProgram
{
virtual void Execute()
{
string test_label;
Page page;
Label title;
title.X = 20;
title.Y = 10;
title.Text = "Function Test";
page.Add(title);
Label date;
date.X = 250;
date.Y = 10;
date.Text = __DATE__;
page.Add(date);
Selector<CardTestProgram> menu;
menu.X = 30;
menu.Y = 40;
page.Add(menu);
// [TODO] カードID読み出し
card_type = CARD_TYPE_S1;
if ( card_type == CARD_TYPE_S1 )
{
test_label = "S1 Function Test";
}
else
{
test_label = "S2 Function Test";
}
menu.Register(test_label , *(new CardFunctionTest()));
menu.Register("Irregular Access Test", *(new IrregularAccessTest()));
while (1)
{
page.Show(Display::GetInstance(Display::Upper));
if (menu.Selected)
{
menu.GetSelectedItem()->Execute();
menu.Selected = false;
}
if (menu.Canceled)
{
menu.Canceled = false;
break;
}
}
};
};