mirror of
https://github.com/dimoniche/solarium.vlad.git
synced 2026-01-30 04:53:30 +03:00
Очередные исправления
This commit is contained in:
parent
c2c93873d1
commit
a7f9632b11
@ -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
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
|
||||
@ -1058,6 +1058,10 @@ void TermAppTask(void *p_arg)
|
||||
// transaction mode (bit field)
|
||||
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);
|
||||
// îáùàÿ äëèíà äëÿ ïåðåäà÷è
|
||||
packet_len += 4;
|
||||
|
||||
@ -2420,6 +2420,7 @@ void OnChangeClearJournalCmd(void)
|
||||
{
|
||||
ClearEventJournal();
|
||||
ClearJournalCmd = 0;
|
||||
JournalInit();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -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
4238
sk-mlpc2368.dep
4238
sk-mlpc2368.dep
File diff suppressed because it is too large
Load Diff
@ -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>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user