Ограничение добавили

This commit is contained in:
dimoniche 2025-06-03 23:41:04 +03:00
parent 766505b914
commit 0da9014b61
11 changed files with 1591 additions and 1519 deletions

View File

@ -2305,6 +2305,19 @@ void UserPrintPaymentErrorMenu(void)
PrintUserMenuStr(buf, 3);
}
void UserPrintAbonementPaymentErrorMenu(void)
{
char buf[32];
sprintf(buf, " ");
PrintUserMenuStr(buf, 0);
sprintf(buf, " Ïî ıòîé ÊÀĞÒÅ ÇÀÃÀĞÀ");
PrintUserMenuStr(buf, 1);
sprintf(buf, " ñåãîäíÿ ïîñåùåíèÿ");
PrintUserMenuStr(buf, 2);
sprintf(buf, " èñ÷åğïàíû");
PrintUserMenuStr(buf, 3);
}
int ChannelBusy(CPU_INT08U ch)
{
CPU_INT32U ch_en = 0;

View File

@ -76,6 +76,8 @@ typedef struct
#define USER_MENU_ABONENT_PROCESSING 43
#define USER_MENU_ABONENT_WRONG 44
#define USER_MENU_ABONEMENT_FAIL 45
///
#define USER_MENU_ERROR 255
@ -327,6 +329,7 @@ extern void SetAcceptedMoney(CPU_INT32U money);
extern void PrintCardBill(void);
extern void UserPrintTerminalRequestMenu();
extern void UserPrintPaymentErrorMenu(void);
extern void UserPrintAbonementPaymentErrorMenu(void);
extern void UserPrintResultMenu(void);
#endif //#ifndef _APP_SERV_H_

View File

@ -1035,7 +1035,8 @@ void AppVladEventProcess(CPU_INT32U event)
{
TRTC_Data rtc_data_currnet, rtc_data_abonement;
uint32_t time_current = GetTimeSec();
uint8_t count_use = 0;
uint32_t count_use = 0;
GetData(&CountUseAbonementDesc, &count_use, 0, DATA_FLAG_SYSTEM_INDEX);
Sec2Date(&rtc_data_currnet, time_current);
Sec2Date(&rtc_data_abonement, data->fileds.time_use);
@ -1050,7 +1051,14 @@ void AppVladEventProcess(CPU_INT32U event)
&& data->fileds.count_use >= count_use)
{
// ñåãîäíÿ îïëàòà óæå áûëà óêàçàííîå êîëè÷åñòâî ðàç - óõîäèì â îøèáêó
UserPrintAbonementPaymentErrorMenu();
RefreshMenu();
app_state.user_menu = USER_MENU_ABONEMENT_FAIL;
app_state.menu_timeout = MENU_CARD_FAIL_TIMEOUT;
write_mifare_card();
stop_card_working();
break;
}
else
{
@ -1419,6 +1427,18 @@ void AppVladEventProcess(CPU_INT32U event)
app_state.menu_timeout--;
}
}
else if (app_state.user_menu == USER_MENU_ABONEMENT_FAIL)
{
if (!app_state.menu_timeout)
{
PostUserEvent(EVENT_KEY_CANSEL);
}
else
{
UserPrintAbonementPaymentErrorMenu();
app_state.menu_timeout--;
}
}
else if (app_state.user_menu == USER_MENU_ERROR_BANK_CARD)
{
if (!app_state.menu_timeout)
@ -2386,6 +2406,7 @@ void AppVladEventProcess(CPU_INT32U event)
|| app_state.user_menu == USER_MENU_BRILLANCE_BONUS
|| app_state.user_menu == USER_MENU_ERROR_BANK_CARD
|| app_state.user_menu == USER_MENU_FINISH_PAY_BONUS_CARD
|| app_state.user_menu == USER_MENU_ABONEMENT_FAIL
)
{
app_state.user_menu = USER_MENU_IDLE;

View File

@ -697,6 +697,34 @@ TDataDescStruct const EnableAbonementDesc = {
0
};
/*************************************
Êîëè÷åñòâî èñïîëüçîâàíèé àáîíåìåíòà â äåíü
*************************************/
TRangeValueULONG const CountUseAbonementRange = {1, 9};
CPU_INT08U const CountUseAbonementName[] = "Êîë.èñïîëüç.";
void OnchangeCountUseAbonement(void)
{
}
TDataDescStruct const CountUseAbonementDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
0, // óêàçàòåëü íà äåñêðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.CountUseAbonement), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&CountUseAbonementRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnchangeCountUseAbonement, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
CountUseAbonementName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_ENABLE,
2
};
/*************************************
Êîìàíäà íà î÷èñòêó ñòàòèñòèêè àáîíåìåíòîâ
*************************************/
@ -7468,6 +7496,7 @@ char const PostPauseLenCostDescId[] = "PostPauseLenCostDesc";
char const AbonementMoneyDescId[] = "AbonementMoneyDesc";
char const AbonementBonusDescId[] = "AbonementBonusDesc";
char const AbonementBestBeforeDescId[] = "AbonementBestBeforeDesc";
char const CountUseAbonementDescId[] = "CountUseAbonementDesc";
#if defined(BOARD_SOLARIUM_WEB)
char const SolariumTypeDescId[] = "SolariumTypeDescId";
@ -7708,6 +7737,7 @@ const TDataDescArrayStruct AllDataArray[] =
{&AbonementMoneyDesc, AbonementMoneyDescId},
{&AbonementBonusDesc, AbonementBonusDescId},
{&AbonementBestBeforeDesc, AbonementBestBeforeDescId},
{&CountUseAbonementDesc, CountUseAbonementDescId},
{NULL, NULL}
};

View File

@ -77,6 +77,7 @@ typedef struct{
CPU_INT32U EnableValidator;
CPU_INT32U EnableCoinAcceptor;
CPU_INT32U EnableAbonementAcceptor;
CPU_INT32U CountUseAbonement;
CPU_INT32U EnableModem;
CPU_INT32U EnableFiscal;
CPU_INT32U EnableFiscalDayClear;
@ -142,6 +143,7 @@ extern TDataDescStruct const T_End_WeekendDesc;
extern TDataDescStruct const EnableFiscalDesc;
extern TDataDescStruct const EnableCoinDesc;
extern TDataDescStruct const EnableAbonementDesc;
extern TDataDescStruct const CountUseAbonementDesc;
extern TDataDescStruct const ClearStatAbonementCmdDesc;
extern TDataDescStruct const AbonementCounterIndexDesc;
extern TDataDescStruct const EnableModemDesc;

View File

@ -1577,14 +1577,21 @@ const TMenuLine line_AbonementMenuSet_1 = {
};
const TMenuLine line_AbonementMenuSet_2 = {
MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ
0, // äîï. ôëàãè
(void*)&CountUseAbonementDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
NULL // ïàíåëü äëÿ ïåðåõîäà
};
const TMenuLine line_AbonementMenuSet_3 = {
MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ
0, // äîï. ôëàãè
(void*)&ClearStatAbonementCmdDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
NULL // ïàíåëü äëÿ ïåðåõîäà
};
const TMenuLineArray arr_AbonementMenuArray[] = {&line_AbonementMenuSet_0, &line_AbonementMenuSet_1, &line_AbonementMenuSet_2, NULL};
const TMenuPanel AbonementSetupPanel[] = {arr_AbonementMenuArray, NULL, 3, MENU_PANEL_STANDARD};
const TMenuLineArray arr_AbonementMenuArray[] = {&line_AbonementMenuSet_0, &line_AbonementMenuSet_1, &line_AbonementMenuSet_2, &line_AbonementMenuSet_2, NULL};
const TMenuPanel AbonementSetupPanel[] = {arr_AbonementMenuArray, NULL, 4, MENU_PANEL_STANDARD};
/***********************************
ÌÅÍÞ ÍÀÑÒÐÎÉÊÀ ÌÎÄÅÌÀ

View File

@ -25,7 +25,7 @@ if not "%~1" == "" goto debugFile
@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
goto end
@ -34,7 +34,7 @@ goto end
@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
:end

View File

@ -23,9 +23,9 @@
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
{
& "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:\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"

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff