mirror of
https://github.com/dimoniche/solarium.vlad.git
synced 2026-01-30 04:53:30 +03:00
Оплату соляиев картой сделал вроде)
This commit is contained in:
parent
ae0a42bc74
commit
ad89ab9780
@ -73,6 +73,8 @@ typedef struct
|
||||
#define USER_MENU_INSERT_BONUS_CARD 41
|
||||
#define USER_MENU_FINISH_PAY_BONUS_CARD 42
|
||||
|
||||
#define USER_MENU_ABONENT_PROCESSING 43
|
||||
|
||||
///
|
||||
#define USER_MENU_ERROR 255
|
||||
|
||||
|
||||
@ -780,7 +780,8 @@ void AppVladEventProcess(CPU_INT32U event)
|
||||
|
||||
// Select one of the cards
|
||||
if (picc_read_card_serial()) {
|
||||
if(app_state.user_menu != USER_MENU_INSERT_BONUS_CARD) {
|
||||
if(app_state.user_menu != USER_MENU_INSERT_BONUS_CARD
|
||||
&& app_state.user_menu != USER_MENU_ABONENT_PROCESSING) {
|
||||
if(read_mifare_card() != NULL) {
|
||||
if(is_empty_mifare_card()) {
|
||||
init_mifare_card_data();
|
||||
@ -818,7 +819,10 @@ void AppVladEventProcess(CPU_INT32U event)
|
||||
}
|
||||
}
|
||||
|
||||
if(app_state.user_menu == USER_MENU_INSERT_BONUS_CARD) {
|
||||
if(app_state.user_menu == USER_MENU_INSERT_BONUS_CARD)
|
||||
{
|
||||
if(read_mifare_card() != NULL)
|
||||
{
|
||||
// ïîïîëíÿåì êàðòó
|
||||
mifaredata_t* data = get_mifare_data();
|
||||
|
||||
@ -845,6 +849,46 @@ void AppVladEventProcess(CPU_INT32U event)
|
||||
RefreshMenu();
|
||||
PlayMusicFile(52);
|
||||
}
|
||||
}
|
||||
|
||||
stop_card_working();
|
||||
}
|
||||
|
||||
if(app_state.user_menu == USER_MENU_ABONENT_PROCESSING)
|
||||
{
|
||||
mifaredata_t* data = get_mifare_data();
|
||||
|
||||
if(data->money + data->bonus > app_state.moneytopay
|
||||
&& read_mifare_card() != NULL)
|
||||
{
|
||||
int delta = data->bonus - app_state.moneytopay;
|
||||
data->money -= (delta < 0) ? delta : 0;
|
||||
data->bonus -= (delta < 0) ? data->bonus : app_state.moneytopay;
|
||||
|
||||
if(!write_mifare_card())
|
||||
{
|
||||
SaveEventRecord(app_state.ch_index, JOURNAL_EVENT_CARD_REJECTED, 0);
|
||||
UserPrintPaymentErrorMenu();
|
||||
RefreshMenu();
|
||||
app_state.user_menu = USER_MENU_CARD_FAIL;
|
||||
app_state.menu_timeout = MENU_CARD_FAIL_TIMEOUT;
|
||||
}
|
||||
else
|
||||
{
|
||||
SetAcceptedMoney(app_state.moneytopay);
|
||||
SaveEventRecord(app_state.ch_index, JOURNAL_EVENT_CARD_ACCEPTED, app_state.moneytopay);
|
||||
app_state.user_menu = USER_MENU_CARD_OK;
|
||||
PostUserEvent(EVENT_FINISH_PAYMENT);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
SaveEventRecord(app_state.ch_index, JOURNAL_EVENT_CARD_REJECTED, 0);
|
||||
UserPrintPaymentErrorMenu();
|
||||
RefreshMenu();
|
||||
app_state.user_menu = USER_MENU_CARD_FAIL;
|
||||
app_state.menu_timeout = MENU_CARD_FAIL_TIMEOUT;
|
||||
}
|
||||
|
||||
stop_card_working();
|
||||
}
|
||||
@ -1014,10 +1058,10 @@ void AppVladEventProcess(CPU_INT32U event)
|
||||
RefreshMenu();
|
||||
|
||||
// temporally
|
||||
SetAcceptedMoney(app_state.abonementtopay);
|
||||
SaveEventRecord(app_state.current_abonement, JOURNAL_EVENT_CARD_ACCEPTED, app_state.abonementtopay);
|
||||
app_state.user_menu = USER_MENU_INSERT_BONUS_CARD;
|
||||
PostUserEvent(EVENT_FINISH_PAYMENT_ABONEMENT);
|
||||
//SetAcceptedMoney(app_state.abonementtopay);
|
||||
//SaveEventRecord(app_state.current_abonement, JOURNAL_EVENT_CARD_ACCEPTED, app_state.abonementtopay);
|
||||
//app_state.user_menu = USER_MENU_INSERT_BONUS_CARD;
|
||||
//PostUserEvent(EVENT_FINISH_PAYMENT_ABONEMENT);
|
||||
}
|
||||
}
|
||||
else if (app_state.user_menu == USER_MENU_SHOW_THANKS)
|
||||
@ -1428,6 +1472,8 @@ void AppVladEventProcess(CPU_INT32U event)
|
||||
PostUserEvent(EVENT_FINISH_PAYMENT);
|
||||
}
|
||||
else if (app_state.user_menu == USER_MENU_CARD_PAYING)
|
||||
{
|
||||
if(app_state.pay_index == PAY_TYPE_CARD)
|
||||
{
|
||||
uint32_t param[TERM_PARAM_COUNT];
|
||||
param[0] = app_state.moneytopay;
|
||||
@ -1436,6 +1482,14 @@ void AppVladEventProcess(CPU_INT32U event)
|
||||
PrintTerminalRequestMenu();
|
||||
RefreshMenu();
|
||||
}
|
||||
else if(app_state.pay_index == PAY_TYPE_CARD_ABONEMENT)
|
||||
{
|
||||
app_state.user_menu = USER_MENU_ABONENT_PROCESSING;
|
||||
|
||||
PrintAnotherCardMenu();
|
||||
RefreshMenu();
|
||||
}
|
||||
}
|
||||
else if (app_state.user_menu == USER_MENU_SELECT_SERVICE_TIME)
|
||||
{
|
||||
// çàïóñêàåì òàéìàóò äî ñòàðòà ñîëÿðèÿ
|
||||
|
||||
@ -158,13 +158,16 @@ bool write_mifare_card()
|
||||
0,
|
||||
255, 255, 255, 255, 255, 255}; // Keep default key B
|
||||
|
||||
for (uint8_t i = 0; i < MF_KEY_SIZE; i++){
|
||||
trailerBuffer[i] = knownKeys[1][i];
|
||||
trailerBuffer[i + 10] = knownKeys[1][i];
|
||||
}
|
||||
MIFARE_SetAccessBits(&trailerBuffer[6], 4, 4, 4, 1);
|
||||
|
||||
MIFARE_Key key;
|
||||
for (uint8_t k = 0; k < NR_KNOWN_KEYS; k++) {
|
||||
for (uint8_t i = 0; i < MF_KEY_SIZE; i++) {
|
||||
key.keyByte[i] = knownKeys[k][i];
|
||||
|
||||
trailerBuffer[i] = knownKeys[k][i];
|
||||
trailerBuffer[i + 10] = knownKeys[k][i];
|
||||
}
|
||||
|
||||
if (try_key_b(&key)) {
|
||||
@ -182,8 +185,6 @@ bool write_mifare_card()
|
||||
return false;
|
||||
}
|
||||
|
||||
MIFARE_SetAccessBits(&trailerBuffer[6], 4, 4, 4, 1);
|
||||
|
||||
for(uint8_t i = 0; i < sizeof(mifare_card_data); i += 16)
|
||||
{
|
||||
status = pcd_authenticate(PICC_CMD_MF_AUTH_KEY_B, block, &key, get_uid());
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -46,11 +46,11 @@
|
||||
<MultiCoreRunAll>1</MultiCoreRunAll>
|
||||
</Simulator>
|
||||
<PlDriver>
|
||||
<MemConfigValue>C:\Program Files\IAR Systems\Embedded Workbench 9.0\arm\CONFIG\debugger\NXP\LPC2368.ddf</MemConfigValue>
|
||||
<FirstRun>0</FirstRun>
|
||||
<MemConfigValue>C:\Program Files\IAR Systems\Embedded Workbench 9.0\arm\CONFIG\debugger\NXP\LPC2368.ddf</MemConfigValue>
|
||||
</PlDriver>
|
||||
<DebugChecksum>
|
||||
<Checksum>959379000</Checksum>
|
||||
<Checksum>2053374073</Checksum>
|
||||
</DebugChecksum>
|
||||
<Exceptions>
|
||||
<StopOnUncaught>_ 0</StopOnUncaught>
|
||||
@ -67,10 +67,10 @@
|
||||
<WatchCond>_ 0</WatchCond>
|
||||
<Watch0>_ 0 "0x00000000" 4294967295 "0xFFFFFFFF" 0 "0x00000000" 4294967295 "0xFFFFFFFF" 3 0 0 0</Watch0>
|
||||
<Watch1>_ 0 "0x00000000" 4294967295 "0xFFFFFFFF" 0 "0x00000000" 4294967295 "0xFFFFFFFF" 3 0 0 0</Watch1>
|
||||
<LeaveTargetRunning>_ 0</LeaveTargetRunning>
|
||||
<CStepIntDis>_ 0</CStepIntDis>
|
||||
<jlinkResetStyle>12</jlinkResetStyle>
|
||||
<jlinkResetStrategy>0</jlinkResetStrategy>
|
||||
<LeaveTargetRunning>_ 0</LeaveTargetRunning>
|
||||
<CStepIntDis>_ 0</CStepIntDis>
|
||||
</JLinkDriver>
|
||||
<ArmDriver>
|
||||
<EnableCache>0</EnableCache>
|
||||
@ -89,29 +89,15 @@
|
||||
<Enabled>0</Enabled>
|
||||
<ShowSource>0</ShowSource>
|
||||
</Trace2>
|
||||
<DisassembleMode>
|
||||
<mode>0</mode>
|
||||
</DisassembleMode>
|
||||
<Breakpoints2>
|
||||
<Bp0>_ 1 "EMUL_CODE" "{$PROJ_DIR$\PROJECT\drivers\mfrc522\rfid-spi.c}.321.7" 0 0 1 "" 0 "" 0</Bp0>
|
||||
<Bp1>_ 1 "EMUL_CODE" "{$PROJ_DIR$\PROJECT\drivers\mfrc522\rfid-spi.c}.190.3" 0 0 1 "" 0 "" 0</Bp1>
|
||||
<Bp2>_ 1 "EMUL_CODE" "{$PROJ_DIR$\PROJECT\drivers\mfrc522\mfrc522data.c}.185.5" 0 0 1 "" 0 "" 0</Bp2>
|
||||
<Bp3>_ 1 "EMUL_CODE" "{$PROJ_DIR$\PROJECT\drivers\mfrc522\mfrc522data.c}.209.15" 0 0 1 "" 0 "" 0</Bp3>
|
||||
<Bp4>_ 1 "EMUL_CODE" "{$PROJ_DIR$\PROJECT\drivers\mfrc522\mfrc522data.c}.215.5" 0 0 1 "" 0 "" 0</Bp4>
|
||||
<Bp5>_ 1 "EMUL_CODE" "{$PROJ_DIR$\PROJECT\app\app_vlad.c}.823.50" 0 0 1 "" 0 "" 0</Bp5>
|
||||
<Bp6>_ 1 "EMUL_CODE" "{$PROJ_DIR$\PROJECT\app\app_vlad.c}.783.25" 0 0 1 "" 0 "" 0</Bp6>
|
||||
<Bp7>_ 1 "EMUL_CODE" "{$PROJ_DIR$\PROJECT\app\app_vlad.c}.1111.39" 0 0 1 "" 0 "" 0</Bp7>
|
||||
<Count>8</Count>
|
||||
</Breakpoints2>
|
||||
<TermIOLog>
|
||||
<LoggingEnabled>_ 0</LoggingEnabled>
|
||||
<LogFile>_ ""</LogFile>
|
||||
</TermIOLog>
|
||||
<LogFile>
|
||||
<LoggingEnabled>_ 0</LoggingEnabled>
|
||||
<LogFile>_ ""</LogFile>
|
||||
<Category>_ 0</Category>
|
||||
</LogFile>
|
||||
<Aliases>
|
||||
<Count>0</Count>
|
||||
<SuppressDialog>0</SuppressDialog>
|
||||
</Aliases>
|
||||
<DriverProfiling>
|
||||
<Enabled>0</Enabled>
|
||||
<Mode>1</Mode>
|
||||
@ -124,8 +110,18 @@
|
||||
<CallStackStripe>
|
||||
<ShowTiming>1</ShowTiming>
|
||||
</CallStackStripe>
|
||||
<TermIOLog>
|
||||
<LoggingEnabled>_ 0</LoggingEnabled>
|
||||
<LogFile>_ ""</LogFile>
|
||||
</TermIOLog>
|
||||
<DisassembleMode>
|
||||
<mode>0</mode>
|
||||
</DisassembleMode>
|
||||
<Breakpoints2>
|
||||
<Bp0>_ 1 "EMUL_CODE" "{$PROJ_DIR$\PROJECT\drivers\mfrc522\rfid-spi.c}.321.7" 0 0 1 "" 0 "" 0</Bp0>
|
||||
<Bp1>_ 1 "EMUL_CODE" "{$PROJ_DIR$\PROJECT\drivers\mfrc522\rfid-spi.c}.190.3" 0 0 1 "" 0 "" 0</Bp1>
|
||||
<Bp2>_ 1 "EMUL_CODE" "{$PROJ_DIR$\PROJECT\drivers\mfrc522\mfrc522data.c}.210.15" 0 0 1 "" 0 "" 0</Bp2>
|
||||
<Bp3>_ 1 "EMUL_CODE" "{$PROJ_DIR$\PROJECT\drivers\mfrc522\mfrc522data.c}.216.5" 0 0 1 "" 0 "" 0</Bp3>
|
||||
<Count>4</Count>
|
||||
</Breakpoints2>
|
||||
<Aliases>
|
||||
<Count>0</Count>
|
||||
<SuppressDialog>0</SuppressDialog>
|
||||
</Aliases>
|
||||
</settings>
|
||||
|
||||
File diff suppressed because one or more lines are too long
4532
sk-mlpc2368.dep
4532
sk-mlpc2368.dep
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user