Очередные исправления

This commit is contained in:
dimoniche 2025-05-27 01:22:53 +03:00
parent c2c93873d1
commit a7f9632b11
8 changed files with 2181 additions and 2147 deletions

View File

@ -84,6 +84,7 @@ typedef struct
CPU_INT08U menu_timeout;
#define MENU_THANKS_TIMEOUT 5
#define MENU_CARD_FAIL_TIMEOUT 3
#define MENU_CARD_ABONEMENT_FAIL_TIMEOUT 6
#define MENU_ATTENTION_TIMEOUT 5
CPU_INT08U ch_index;
@ -129,6 +130,7 @@ typedef struct
CPU_INT32U last_card_manipulation_time;
#define MENU_CARD_MANIPULATION_TIMEOUT_MS 10000
#define MENU_CARD_WRONG_TIMEOUT_MS 3000
#define MENU_WAIT_CARD_ABONEMENT_TIMEOUT_MS 20000
CPU_INT08U current_abonement;
#define SILVER_ABONEMENT 0

View File

@ -103,8 +103,6 @@ void IncAbonentCounters(CPU_INT08U abonement, CPU_INT32U money, CPU_INT32U bonus
counters.abonement[4].card_bonus += bonus;
counters.abonement[4].runs++;
counters.abonement_money += money;
counters.checksum = crc16((unsigned char*)&counters, offsetof(SolarCounters, checksum));
WriteArrayFram(offsetof(TFramMap, solar_counters), sizeof(SolarCounters), (unsigned char*)&counters);
}
@ -148,7 +146,12 @@ void IncSolarCounters(CPU_INT08U ch, CPU_INT08U mode, CPU_INT32U worktime, CPU_I
}
counters.common_money += money;
if (card != 2 && card)
if(card == 2)
{
counters.abonement_money += money;
}
else if (card)
{
counters.card_money += money;
}
@ -839,10 +842,11 @@ void AppVladEventProcess(CPU_INT32U event)
app_state.user_menu = USER_MENU_ABONENT_WRONG;
PrintWrongAbonementMenu();
RefreshMenu();
StopMusic();
stop_card_working();
SaveEventRecord(get_abonement_data()->number_abonement, JOURNAL_EVENT_ABONEMENT_WRONG, password);
SaveEventRecord(get_abonement_data()->number_abonement, JOURNAL_EVENT_ABONEMENT_WRONG, get_abonement_data()->uid[0]);
break;
}
@ -920,6 +924,7 @@ void AppVladEventProcess(CPU_INT32U event)
app_state.user_menu = USER_MENU_ABONENT_WRONG;
PrintWrongAbonementMenu();
RefreshMenu();
StopMusic();
SaveEventRecord(get_abonement_data()->number_abonement, JOURNAL_EVENT_ABONEMENT_WRONG, password);
}
@ -941,8 +946,11 @@ void AppVladEventProcess(CPU_INT32U event)
&& data->uid[0] == password)
{
int32_t delta = data->money - moneytopay;
data->bonus -= (delta < 0) ? delta : 0;
data->money -= (delta < 0) ? data->money : moneytopay;
uint16_t bonus = (delta < 0) ? delta : 0;
uint16_t money = (delta < 0) ? data->money : moneytopay;
data->bonus -= bonus;
data->money -= money;
if(!write_mifare_card())
{
@ -955,7 +963,7 @@ void AppVladEventProcess(CPU_INT32U event)
else
{
SetAcceptedMoney(app_state.moneytopay);
SaveEventRecord(app_state.ch_index, JOURNAL_EVENT_ABONEMENT_ACCEPTED, app_state.moneytopay);
SaveEventRecord(bonus, JOURNAL_EVENT_ABONEMENT_ACCEPTED, money);
app_state.user_menu = USER_MENU_CARD_OK;
PostUserEvent(EVENT_FINISH_PAYMENT_ABONEMENT_SOLARIUM);
}
@ -967,6 +975,7 @@ void AppVladEventProcess(CPU_INT32U event)
app_state.user_menu = USER_MENU_ABONENT_WRONG;
PrintWrongAbonementMenu();
RefreshMenu();
StopMusic();
SaveEventRecord(get_abonement_data()->number_abonement, JOURNAL_EVENT_ABONEMENT_WRONG, password);
}
@ -1033,6 +1042,18 @@ void AppVladEventProcess(CPU_INT32U event)
RefreshMenu();
}
}
else if(app_state.user_menu == USER_MENU_ABONENT_PROCESSING)
{
if (OSTimeGet() - app_state.last_card_manipulation_time > MENU_WAIT_CARD_ABONEMENT_TIMEOUT_MS)
{
app_state.user_menu = USER_MENU_SELECT_PAY_TYPE;
app_state.pay_index = 0;
app_state.blink_ctr = 0;
PrintSelectPayTypeMenu(0);
RefreshMenu();
PlayMusicFile(8);
}
}
else if(app_state.user_menu == USER_MENU_ALL_PRICE)
{
//PrintMenuAllPrice(app_state.blink_ctr >= 500);
@ -1143,7 +1164,7 @@ void AppVladEventProcess(CPU_INT32U event)
RefreshMenu();
PlayMusicFile(51);
app_state.user_menu = USER_MENU_ERROR_BANK_CARD;
app_state.menu_timeout = MENU_CARD_FAIL_TIMEOUT;
app_state.menu_timeout = MENU_CARD_ABONEMENT_FAIL_TIMEOUT;
}
else
{
@ -1375,7 +1396,7 @@ void AppVladEventProcess(CPU_INT32U event)
app_state.abonementtopay = pay;
uint32_t param[TERM_PARAM_COUNT];
param[0] = app_state.abonementtopay;
param[0] = app_state.abonementtopay * 100; // ñóììà â êîïåéêàõ
SetTermCommand(TERM_COMMAND_PEND_PUR, param);
app_state.user_menu = USER_MENU_INSERT_BANK_CARD;
PrintInsertBankCardMenu();
@ -1583,6 +1604,7 @@ void AppVladEventProcess(CPU_INT32U event)
else if(app_state.pay_index == PAY_TYPE_CARD_ABONEMENT)
{
app_state.user_menu = USER_MENU_ABONENT_PROCESSING;
app_state.last_card_manipulation_time = OSTimeGet();
PrintInsertBonusCardMenu();
RefreshMenu();
@ -2203,6 +2225,15 @@ void AppVladEventProcess(CPU_INT32U event)
RefreshMenu();
StopMusic();
}
else if(app_state.user_menu == USER_MENU_ABONENT_PROCESSING)
{
app_state.user_menu = USER_MENU_SELECT_PAY_TYPE;
app_state.pay_index = 0;
app_state.blink_ctr = 0;
PrintSelectPayTypeMenu(0);
RefreshMenu();
PlayMusicFile(8);
}
else if ((app_state.user_menu == USER_MENU_SELECT_CH_SERVICE)
|| (app_state.user_menu == USER_MENU_SELECT_CH_TESTMODE)
)
@ -2756,7 +2787,7 @@ void PrintWrongAbonementMenu(void)
{
PrintUserMenuStrUnalign(" Âàøà ÊÀÐÒÀ ÇÀÃÀÐÀ ", 0);
PrintUserMenuStrUnalign(" íå ìîæåò áûòü ", 1);
PrintUserMenuStrUnalign(" îçíàêîìèòüñÿ ", 2);
PrintUserMenuStrUnalign(" èñïîëüçîâàíà ", 2);
PrintUserMenuStrUnalign(" íà ýòîì ÀÂÒÎÌÀÒÅ ", 3);
}

View File

@ -1056,7 +1056,11 @@ void TermAppTask(void *p_arg)
sprintf(str, "%d", money);
packet_len += ttk2_tag_add(&content[packet_len], 0x04, str, strlen(str));
// transaction mode (bit field)
packet_len += ttk2_tag_add(&content[packet_len], 0x08, "\xC0", 1);
packet_len += ttk2_tag_add(&content[packet_len], 0x08, "\xC0", 1);
sprintf(str, "%s", "Óñëóãà çàãàðà â ñîëÿðèè");
// Product name
packet_len += ttk2_tag_add(&content[packet_len], 0x0F, str, strlen(str));
ttk2_tag_setlen(term_buffer, packet_len + 2);
// îáùàÿ äëèíà äëÿ ïåðåäà÷è

View File

@ -2420,6 +2420,7 @@ void OnChangeClearJournalCmd(void)
{
ClearEventJournal();
ClearJournalCmd = 0;
JournalInit();
}
}

View File

@ -4,7 +4,7 @@
#if defined(BOARD_SOLARIUM_WEB)
#define DEVICE_FW_VERSION "7.09"
#elif defined(BOARD_SOLARIUM_VLAD)
#define DEVICE_FW_VERSION "8.47"
#define DEVICE_FW_VERSION "8.48"
#elif defined(BOARD_CENTRAL_CARWASH) || defined(BOARD_POST_CARWASH)
#define DEVICE_FW_VERSION "5.55"
#endif

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -5003,7 +5003,7 @@
</option>
<option>
<name>OOCOutputFile</name>
<state>sk_mlpc2368.hex</state>
<state>solarium_vlad_8_48.hex</state>
</option>
<option>
<name>OOCCommandLineProducer</name>
@ -5021,7 +5021,7 @@
<data>
<extensions></extensions>
<cmdline></cmdline>
<hasPrio>1</hasPrio>
<hasPrio>176</hasPrio>
<buildSequence>inputOutputBased</buildSequence>
</data>
</settings>