mirror of
https://github.com/rvtr/ctr_card_test.git
synced 2025-06-18 14:45:42 -04:00

git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-09-30%20-%20paladin.7z/paladin/ctr_card_test@11 ff8ce827-af98-4349-adb5-4c00699b5328
248 lines
5.1 KiB
C++
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;
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
|