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_INSERT_BONUS_CARD 41
|
||||||
#define USER_MENU_FINISH_PAY_BONUS_CARD 42
|
#define USER_MENU_FINISH_PAY_BONUS_CARD 42
|
||||||
|
|
||||||
|
#define USER_MENU_ABONENT_PROCESSING 43
|
||||||
|
|
||||||
///
|
///
|
||||||
#define USER_MENU_ERROR 255
|
#define USER_MENU_ERROR 255
|
||||||
|
|
||||||
|
|||||||
@ -780,7 +780,8 @@ void AppVladEventProcess(CPU_INT32U event)
|
|||||||
|
|
||||||
// Select one of the cards
|
// Select one of the cards
|
||||||
if (picc_read_card_serial()) {
|
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(read_mifare_card() != NULL) {
|
||||||
if(is_empty_mifare_card()) {
|
if(is_empty_mifare_card()) {
|
||||||
init_mifare_card_data();
|
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();
|
mifaredata_t* data = get_mifare_data();
|
||||||
|
|
||||||
@ -845,6 +849,46 @@ void AppVladEventProcess(CPU_INT32U event)
|
|||||||
RefreshMenu();
|
RefreshMenu();
|
||||||
PlayMusicFile(52);
|
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();
|
stop_card_working();
|
||||||
}
|
}
|
||||||
@ -1014,10 +1058,10 @@ void AppVladEventProcess(CPU_INT32U event)
|
|||||||
RefreshMenu();
|
RefreshMenu();
|
||||||
|
|
||||||
// temporally
|
// temporally
|
||||||
SetAcceptedMoney(app_state.abonementtopay);
|
//SetAcceptedMoney(app_state.abonementtopay);
|
||||||
SaveEventRecord(app_state.current_abonement, JOURNAL_EVENT_CARD_ACCEPTED, app_state.abonementtopay);
|
//SaveEventRecord(app_state.current_abonement, JOURNAL_EVENT_CARD_ACCEPTED, app_state.abonementtopay);
|
||||||
app_state.user_menu = USER_MENU_INSERT_BONUS_CARD;
|
//app_state.user_menu = USER_MENU_INSERT_BONUS_CARD;
|
||||||
PostUserEvent(EVENT_FINISH_PAYMENT_ABONEMENT);
|
//PostUserEvent(EVENT_FINISH_PAYMENT_ABONEMENT);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (app_state.user_menu == USER_MENU_SHOW_THANKS)
|
else if (app_state.user_menu == USER_MENU_SHOW_THANKS)
|
||||||
@ -1428,6 +1472,8 @@ void AppVladEventProcess(CPU_INT32U event)
|
|||||||
PostUserEvent(EVENT_FINISH_PAYMENT);
|
PostUserEvent(EVENT_FINISH_PAYMENT);
|
||||||
}
|
}
|
||||||
else if (app_state.user_menu == USER_MENU_CARD_PAYING)
|
else if (app_state.user_menu == USER_MENU_CARD_PAYING)
|
||||||
|
{
|
||||||
|
if(app_state.pay_index == PAY_TYPE_CARD)
|
||||||
{
|
{
|
||||||
uint32_t param[TERM_PARAM_COUNT];
|
uint32_t param[TERM_PARAM_COUNT];
|
||||||
param[0] = app_state.moneytopay;
|
param[0] = app_state.moneytopay;
|
||||||
@ -1436,6 +1482,14 @@ void AppVladEventProcess(CPU_INT32U event)
|
|||||||
PrintTerminalRequestMenu();
|
PrintTerminalRequestMenu();
|
||||||
RefreshMenu();
|
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)
|
else if (app_state.user_menu == USER_MENU_SELECT_SERVICE_TIME)
|
||||||
{
|
{
|
||||||
// çàïóñêàåì òàéìàóò äî ñòàðòà ñîëÿðèÿ
|
// çàïóñêàåì òàéìàóò äî ñòàðòà ñîëÿðèÿ
|
||||||
|
|||||||
@ -158,13 +158,16 @@ bool write_mifare_card()
|
|||||||
0,
|
0,
|
||||||
255, 255, 255, 255, 255, 255}; // Keep default key B
|
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;
|
MIFARE_Key key;
|
||||||
for (uint8_t k = 0; k < NR_KNOWN_KEYS; k++) {
|
for (uint8_t k = 0; k < NR_KNOWN_KEYS; k++) {
|
||||||
for (uint8_t i = 0; i < MF_KEY_SIZE; i++) {
|
for (uint8_t i = 0; i < MF_KEY_SIZE; i++) {
|
||||||
key.keyByte[i] = knownKeys[k][i];
|
key.keyByte[i] = knownKeys[k][i];
|
||||||
|
|
||||||
trailerBuffer[i] = knownKeys[k][i];
|
|
||||||
trailerBuffer[i + 10] = knownKeys[k][i];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (try_key_b(&key)) {
|
if (try_key_b(&key)) {
|
||||||
@ -182,8 +185,6 @@ bool write_mifare_card()
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
MIFARE_SetAccessBits(&trailerBuffer[6], 4, 4, 4, 1);
|
|
||||||
|
|
||||||
for(uint8_t i = 0; i < sizeof(mifare_card_data); i += 16)
|
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());
|
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>
|
<MultiCoreRunAll>1</MultiCoreRunAll>
|
||||||
</Simulator>
|
</Simulator>
|
||||||
<PlDriver>
|
<PlDriver>
|
||||||
<MemConfigValue>C:\Program Files\IAR Systems\Embedded Workbench 9.0\arm\CONFIG\debugger\NXP\LPC2368.ddf</MemConfigValue>
|
|
||||||
<FirstRun>0</FirstRun>
|
<FirstRun>0</FirstRun>
|
||||||
|
<MemConfigValue>C:\Program Files\IAR Systems\Embedded Workbench 9.0\arm\CONFIG\debugger\NXP\LPC2368.ddf</MemConfigValue>
|
||||||
</PlDriver>
|
</PlDriver>
|
||||||
<DebugChecksum>
|
<DebugChecksum>
|
||||||
<Checksum>959379000</Checksum>
|
<Checksum>2053374073</Checksum>
|
||||||
</DebugChecksum>
|
</DebugChecksum>
|
||||||
<Exceptions>
|
<Exceptions>
|
||||||
<StopOnUncaught>_ 0</StopOnUncaught>
|
<StopOnUncaught>_ 0</StopOnUncaught>
|
||||||
@ -67,10 +67,10 @@
|
|||||||
<WatchCond>_ 0</WatchCond>
|
<WatchCond>_ 0</WatchCond>
|
||||||
<Watch0>_ 0 "0x00000000" 4294967295 "0xFFFFFFFF" 0 "0x00000000" 4294967295 "0xFFFFFFFF" 3 0 0 0</Watch0>
|
<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>
|
<Watch1>_ 0 "0x00000000" 4294967295 "0xFFFFFFFF" 0 "0x00000000" 4294967295 "0xFFFFFFFF" 3 0 0 0</Watch1>
|
||||||
<LeaveTargetRunning>_ 0</LeaveTargetRunning>
|
|
||||||
<CStepIntDis>_ 0</CStepIntDis>
|
|
||||||
<jlinkResetStyle>12</jlinkResetStyle>
|
<jlinkResetStyle>12</jlinkResetStyle>
|
||||||
<jlinkResetStrategy>0</jlinkResetStrategy>
|
<jlinkResetStrategy>0</jlinkResetStrategy>
|
||||||
|
<LeaveTargetRunning>_ 0</LeaveTargetRunning>
|
||||||
|
<CStepIntDis>_ 0</CStepIntDis>
|
||||||
</JLinkDriver>
|
</JLinkDriver>
|
||||||
<ArmDriver>
|
<ArmDriver>
|
||||||
<EnableCache>0</EnableCache>
|
<EnableCache>0</EnableCache>
|
||||||
@ -89,29 +89,15 @@
|
|||||||
<Enabled>0</Enabled>
|
<Enabled>0</Enabled>
|
||||||
<ShowSource>0</ShowSource>
|
<ShowSource>0</ShowSource>
|
||||||
</Trace2>
|
</Trace2>
|
||||||
<DisassembleMode>
|
<TermIOLog>
|
||||||
<mode>0</mode>
|
<LoggingEnabled>_ 0</LoggingEnabled>
|
||||||
</DisassembleMode>
|
<LogFile>_ ""</LogFile>
|
||||||
<Breakpoints2>
|
</TermIOLog>
|
||||||
<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>
|
|
||||||
<LogFile>
|
<LogFile>
|
||||||
<LoggingEnabled>_ 0</LoggingEnabled>
|
<LoggingEnabled>_ 0</LoggingEnabled>
|
||||||
<LogFile>_ ""</LogFile>
|
<LogFile>_ ""</LogFile>
|
||||||
<Category>_ 0</Category>
|
<Category>_ 0</Category>
|
||||||
</LogFile>
|
</LogFile>
|
||||||
<Aliases>
|
|
||||||
<Count>0</Count>
|
|
||||||
<SuppressDialog>0</SuppressDialog>
|
|
||||||
</Aliases>
|
|
||||||
<DriverProfiling>
|
<DriverProfiling>
|
||||||
<Enabled>0</Enabled>
|
<Enabled>0</Enabled>
|
||||||
<Mode>1</Mode>
|
<Mode>1</Mode>
|
||||||
@ -124,8 +110,18 @@
|
|||||||
<CallStackStripe>
|
<CallStackStripe>
|
||||||
<ShowTiming>1</ShowTiming>
|
<ShowTiming>1</ShowTiming>
|
||||||
</CallStackStripe>
|
</CallStackStripe>
|
||||||
<TermIOLog>
|
<DisassembleMode>
|
||||||
<LoggingEnabled>_ 0</LoggingEnabled>
|
<mode>0</mode>
|
||||||
<LogFile>_ ""</LogFile>
|
</DisassembleMode>
|
||||||
</TermIOLog>
|
<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>
|
</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