Начало оформления бизнес логики и меню.

This commit is contained in:
Dmitriy 2025-04-11 01:22:16 +03:00
parent 3fd567f951
commit df80c00425
7 changed files with 1928 additions and 1713 deletions

View File

@ -57,6 +57,20 @@ typedef struct
#define USER_MENU_SKIN_ATTENTION_4 20 #define USER_MENU_SKIN_ATTENTION_4 20
/// ///
#define USER_MENU_SELECT_SERVICE_TIME 21 #define USER_MENU_SELECT_SERVICE_TIME 21
#define USER_MENU_WAIT_CARD 30
#define USER_MENU_BALANCE_CARD 31
#define USER_MENU_START_INSERT_CARD_MONEY 32
#define USER_MENU_ALL_PRICE 33
#define USER_MENU_SILVER_BONUS 34
#define USER_MENU_GOLD_BONUS 35
#define USER_MENU_PLATINUM_BONUS 36
#define USER_MENU_BRILLANCE_BONUS 37
#define USER_MENU_START_PAY_CARD 38
#define USER_MENU_INSERT_BANK_CARD 39
#define USER_MENU_INSERT_BONUS_CARD 40
#define USER_MENU_FINISH_PAY_BONUS_CARD 41
/// ///
#define USER_MENU_ERROR 255 #define USER_MENU_ERROR 255

View File

@ -38,6 +38,20 @@ extern int player_conn;
CPU_INT08U start_pass_ok = 0; CPU_INT08U start_pass_ok = 0;
void PrintHelloMenu(void); void PrintHelloMenu(void);
void PrintStartReadCardMenu(void);
void PrintBalanceMenu(void);
void PrintMenuStartPay(void);
void PrintMenuAllPrice(void);
void PrintSilverMenu(void);
void PrintGoldMenu(void);
void PrintPlatMenu(void);
void PrintDiamondMenu(void);
void PrintStartPayCardMenu(void);
void PrintInsertBankCardMenu(void);
void PrintInsertBonusCardMenu(void);
void PrintFinishPayMenu(void);
void PrintAnotherCardMenu(void);
void PrintWarning1Menu(void); void PrintWarning1Menu(void);
void PrintWarning2Menu(void); void PrintWarning2Menu(void);
void PrintSelectChMenu(CPU_INT08U blink); void PrintSelectChMenu(CPU_INT08U blink);
@ -756,8 +770,28 @@ void AppVladEventProcess(CPU_INT32U event)
// Look for new cards // Look for new cards
if (picc_is_new_card_present() ) { if (picc_is_new_card_present() ) {
PrintStartReadCardMenu();
RefreshMenu();
// Select one of the cards // Select one of the cards
if (picc_read_card_serial()) { if (picc_read_card_serial()) {
if(is_empty_mifare_card()) {
init_mifare_card_data();
if(!write_mifare_card())
{
app_state.user_menu = USER_MENU_IDLE;
break;
}
}
if(read_mifare_card() != NULL) {
app_state.user_menu = USER_MENU_BALANCE_CARD;
} else {
app_state.user_menu = USER_MENU_IDLE;
}
} else {
app_state.user_menu = USER_MENU_IDLE;
} }
} }
@ -789,6 +823,10 @@ void AppVladEventProcess(CPU_INT32U event)
app_state.skin_flags = 0; app_state.skin_flags = 0;
PrintHelloMenu(); PrintHelloMenu();
} }
else if(app_state.user_menu == USER_MENU_BALANCE_CARD)
{
PrintBalanceMenu();
}
else if (app_state.user_menu == USER_MENU_WARNING_1) else if (app_state.user_menu == USER_MENU_WARNING_1)
{ {
app_state.skin_flags = 0; app_state.skin_flags = 0;
@ -1958,6 +1996,173 @@ void AppVladEventProcess(CPU_INT32U event)
} // switch (event) } // switch (event)
} }
void PrintStartReadCardMenu(void)
{
PrintUserMenuStr(" ", 0);
PrintUserMenuStr(" Óäåðæèâàéòå êàðòó ", 1);
PrintUserMenuStr("ó ñïåöèàëüíîãî îêíà!", 2);
PrintUserMenuStr(" ", 3);
}
void PrintBalanceMenu(void)
{
char str[32];
mifaredata_t* data = get_mifare_data();
PrintUserMenuStr(" Âàøà êàðòà çàãàðà: ", 0);
sprintf(str, " %d ðóáëåé", data->money);
PrintUserMenuStr(str, 1);
sprintf(str, "%d áîíóñîâ, ñãîðÿò:", data->bonus);
PrintUserMenuStr(str, 2);
PrintTimeString(str, data->best_before);
PrintUserMenuStr(str, 3);
}
void PrintMenuStartPay(void)
{
PrintUserMenuStr("Íå æåëàåòå ïîïîëíèòü", 0);
PrintUserMenuStr(" êàðòó çàãàðà? ", 1);
PrintUserMenuStr("(Êóïèòü áîíóñíûé ", 2);
PrintUserMenuStr(" àáîíåìåíò?) ", 3);
}
void PrintMenuAllPrice(void)
{
char str[32];
uint32_t pay_silver = 0, bonus_silver = 0;
uint32_t pay_gold = 0, bonus_gold = 0;
uint32_t pay_plat = 0, bonus_plat = 0;
uint32_t pay_diamond = 0, bonus_diamond = 0;
sprintf(str, "ÑÅÐÅÁ-%d ð %d áîí", pay_silver, bonus_silver);
PrintUserMenuStr(str, 0);
sprintf(str, "ÇÎËÎÒ-%d ð %d áîí", pay_gold, bonus_gold);
PrintUserMenuStr(str, 1);
sprintf(str, "ÏËÀÒ.-%d ð %d áîí", pay_plat, bonus_plat);
PrintUserMenuStr(str, 2);
sprintf(str, "ÀËÌÀÇ-%d ð %d áîí", pay_diamond, bonus_diamond);
PrintUserMenuStr(str, 3);
}
void PrintSilverMenu(void)
{
char str[32];
char str1[16];
uint32_t pay_silver = 0, bonus_silver = 0, best_before = 0;
PrintUserMenuStr("Ñåðåáðÿííûé àáîíåìåíò", 0);
sprintf(str, "Ñòîèìîñòü - %d ðóá", pay_silver);
PrintUserMenuStr(str, 1);
sprintf(str, "Äîï.áîíóñû- %d ðóá", bonus_silver);
PrintUserMenuStr(str, 2);
PrintTimeString(str1, best_before);
sprintf(str, "Áîíóñû äî %s", str1);
PrintUserMenuStr(str, 3);
}
void PrintGoldMenu(void)
{
char str[32];
char str1[16];
uint32_t pay_gold = 0, bonus_gold = 0, best_before = 0;
PrintUserMenuStr(" Çîëîòîé àáîíåìåíò ", 0);
sprintf(str, "Ñòîèìîñòü - %d ðóá", pay_gold);
PrintUserMenuStr(str, 1);
sprintf(str, "Äîï.áîíóñû- %d ðóá", bonus_gold);
PrintUserMenuStr(str, 2);
PrintTimeString(str1, best_before);
sprintf(str, "Áîíóñû äî %s", str1);
PrintUserMenuStr(str, 3);
}
void PrintPlatMenu(void)
{
char str[32];
char str1[16];
uint32_t pay_plat = 0, bonus_plat = 0, best_before = 0;
PrintUserMenuStr("Ïëàòèíîâûé àáîíåìåíò", 0);
sprintf(str, "Ñòîèìîñòü - %d ðóá", pay_plat);
PrintUserMenuStr(str, 1);
sprintf(str, "Äîï.áîíóñû- %d ðóá", bonus_plat);
PrintUserMenuStr(str, 2);
PrintTimeString(str1, best_before);
sprintf(str, "Áîíóñû äî %s", str1);
PrintUserMenuStr(str, 3);
}
void PrintDiamondMenu(void)
{
char str[32];
char str1[16];
uint32_t pay_diamond = 0, bonus_diamond = 0, best_before = 0;
PrintUserMenuStr(" Àëìàçíûé àáîíåìåíò ", 0);
sprintf(str, "Ñòîèìîñòü - %d ðóá", pay_diamond);
PrintUserMenuStr(str, 1);
sprintf(str, "Äîï.áîíóñû- %d ðóá", bonus_diamond);
PrintUserMenuStr(str, 2);
PrintTimeString(str1, best_before);
sprintf(str, "Áîíóñû äî %s", str1);
PrintUserMenuStr(str, 3);
}
void PrintStartPayCardMenu(void)
{
PrintUserMenuStr("Ïðè îïëàòå:", 0);
PrintUserMenuStr("Äåíüãè - ñóììèðóþòñÿ", 1);
PrintUserMenuStr("Ñòàð. áîíóñû ñãîðàþò", 2);
PrintUserMenuStr("Ñðîêè áîíóñîâ-íîâûå ", 3);
}
void PrintInsertBankCardMenu(void)
{
PrintUserMenuStr("Ïðèëîæèòå áàíêîâñêóþ", 0);
PrintUserMenuStr(" êàðòó ê òåðìèíàëó ", 1);
PrintUserMenuStr(" èëè îïëàòèòå ïî ", 2);
PrintUserMenuStr(" Q-êîäó ", 3);
}
void PrintInsertBonusCardMenu(void)
{
PrintUserMenuStr(" Ïðèëîæèòå ", 0);
PrintUserMenuStr(" ÊÀÐÒÓ ÇÀÃÀÐÀ ", 1);
PrintUserMenuStr("ê ñïåöèàëüíîìó îêíó!", 2);
PrintUserMenuStr(" ", 3);
}
void PrintFinishPayMenu(void)
{
PrintUserMenuStr(" Âàøà ÊÀÐÒÀ ÇÀÃÀÐÀ ", 0);
PrintUserMenuStr(" ãîòîâà ", 1);
PrintUserMenuStr(" Äëÿ ïðîäîëæåíèÿ ", 2);
PrintUserMenuStr(" íàæìèòå ÑÒÀÐÒ! ", 3);
}
void PrintAnotherCardMenu(void)
{
PrintUserMenuStr(" Ïðèëîæèòå äðóãóþ ", 0);
PrintUserMenuStr(" êàðòó ê òåðìèíàëó! ", 1);
PrintUserMenuStr(" èëè îïëàòèòå ïî ", 2);
PrintUserMenuStr(" Q-êîäó ", 3);
}
void PrintHelloMenu(void) void PrintHelloMenu(void)
{ {
PrintUserMenuStr(" Çäðàâñòâóéòå!", 0); PrintUserMenuStr(" Çäðàâñòâóéòå!", 0);

View File

@ -25,7 +25,7 @@ if not "%~1" == "" goto debugFile
@echo on @echo on
"C:\Program Files\IAR Systems\Embedded Workbench 9.0\common\bin\cspybat" -f "C:\git_work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.general.xcl" --backend -f "C:\git_work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.driver.xcl" "C:\Program Files\IAR Systems\Embedded Workbench 9.0\common\bin\cspybat" -f "C:\work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.general.xcl" --backend -f "C:\work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.driver.xcl"
@echo off @echo off
goto end goto end
@ -34,7 +34,7 @@ goto end
@echo on @echo on
"C:\Program Files\IAR Systems\Embedded Workbench 9.0\common\bin\cspybat" -f "C:\git_work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.general.xcl" "--debug_file=%~1" --backend -f "C:\git_work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.driver.xcl" "C:\Program Files\IAR Systems\Embedded Workbench 9.0\common\bin\cspybat" -f "C:\work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.general.xcl" "--debug_file=%~1" --backend -f "C:\work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.driver.xcl"
@echo off @echo off
:end :end

View File

@ -23,9 +23,9 @@
if ($debugfile -eq "") if ($debugfile -eq "")
{ {
& "C:\Program Files\IAR Systems\Embedded Workbench 9.0\common\bin\cspybat" -f "C:\git_work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.general.xcl" --backend -f "C:\git_work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.driver.xcl" & "C:\Program Files\IAR Systems\Embedded Workbench 9.0\common\bin\cspybat" -f "C:\work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.general.xcl" --backend -f "C:\work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.driver.xcl"
} }
else else
{ {
& "C:\Program Files\IAR Systems\Embedded Workbench 9.0\common\bin\cspybat" -f "C:\git_work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.general.xcl" --debug_file=$debugfile --backend -f "C:\git_work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.driver.xcl" & "C:\Program Files\IAR Systems\Embedded Workbench 9.0\common\bin\cspybat" -f "C:\work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.general.xcl" --debug_file=$debugfile --backend -f "C:\work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.driver.xcl"
} }

View File

@ -2,7 +2,7 @@
"C:\Program Files\IAR Systems\Embedded Workbench 9.0\arm\bin\armJLINK.dll" "C:\Program Files\IAR Systems\Embedded Workbench 9.0\arm\bin\armJLINK.dll"
"C:\git_work\solarium.vlad\Solarium Vlad\Exe\sk_mlpc2368.out" "C:\work\solarium.vlad\Solarium Vlad\Exe\sk_mlpc2368.out"
--plugin="C:\Program Files\IAR Systems\Embedded Workbench 9.0\arm\bin\armbat.dll" --plugin="C:\Program Files\IAR Systems\Embedded Workbench 9.0\arm\bin\armbat.dll"

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff