diff --git a/PROJECT/app/app_serv.c b/PROJECT/app/app_serv.c
index b2a7d47..1a8a6d0 100644
--- a/PROJECT/app/app_serv.c
+++ b/PROJECT/app/app_serv.c
@@ -83,17 +83,6 @@ void AddOutPulses(int count, int len_ms)
int drawPostInfo[COUNT_POST + COUNT_VACUUM] = {0,0,0,0,0,0,0,0};
int currentPosition = 0;
-void DrawMenu(void)
-{
- if((SystemTime%2))
- {
- UserPrintMoneyMenu(currentPosition++);
- RefreshMenu();
-
- if(currentPosition >= COUNT_POST + COUNT_VACUUM) currentPosition = 0;
- }
-}
-
typedef enum {
waitMoney = 0,
@@ -103,7 +92,19 @@ typedef enum {
} washStateEnum;
-washStateEnum wash_State[COUNT_POST + COUNT_VACUUM] = {waitMoney,waitMoney,waitMoney,waitMoney,waitMoney,waitMoney,waitMoney,waitMoney};
+washStateEnum wash_State[COUNT_POST + COUNT_VACUUM] = {waitMoney, waitMoney, waitMoney, waitMoney, waitMoney, waitMoney, waitMoney, waitMoney};
+
+int countSecWait[COUNT_POST + COUNT_VACUUM] = {0, 0, 0, 0, 0, 0, 0, 0};
+
+void DrawMenu(void)
+{
+ if((SystemTime%2))
+ {
+ UserPrintMoneyMenu(currentPosition++);
+
+ if(currentPosition >= COUNT_POST + COUNT_VACUUM) currentPosition = 0;
+ }
+}
/*
Сервер обработки событий пользователя
@@ -122,6 +123,8 @@ void UserAppTask(void *p_arg)
was_critical_error = 0;
#endif
+ int testMoney = 0;
+
while (1)
{
if (GetUserEvent(&event))
@@ -208,6 +211,7 @@ void UserAppTask(void *p_arg)
if (labs(OSTimeGet() - money_timestamp[post]) > 1000UL * print_timeout)
{
SetAcceptedMoney(0, post);
+ wash_State[post] = waitMoney;
}
}
}
@@ -215,6 +219,14 @@ void UserAppTask(void *p_arg)
{
drawPostInfo[post] = 0;
}
+
+ if(countSecWait[post])
+ {
+ countSecWait[post]--;
+
+ // пришло время печати чека
+ if(!countSecWait[post]) PostUserEvent(EVENT_CASH_PRINT_CHECK_POST1 + post);
+ }
}
// принимаем деньги
@@ -242,7 +254,7 @@ void UserAppTask(void *p_arg)
GetData(&CoinPerPulseDesc, &cpp, number_post, DATA_FLAG_DIRECT_INDEX);
- money = cpp*GetResetCoinCount(number_post);
+ money = cpp * GetResetCoinCount(number_post) + testMoney;
accmoney = GetAcceptedMoney(number_post);
accmoney += money;
@@ -253,6 +265,7 @@ void UserAppTask(void *p_arg)
if (money) SaveEventRecord(number_post, JOURNAL_EVENT_MONEY_COIN_POST1 + number_post, money);
wash_State[number_post] = insertMoney;
+ testMoney = 0;
}
break;
case EVENT_CASH_INSERTED_POST1:
@@ -268,7 +281,7 @@ void UserAppTask(void *p_arg)
GetData(&CashPerPulseDesc, &cpp, number_post, DATA_FLAG_DIRECT_INDEX);
- money = cpp * GetResetCashCount(number_post);
+ money = cpp * GetResetCashCount(number_post) + testMoney;
accmoney = GetAcceptedMoney(number_post);
accmoney += money;
@@ -354,8 +367,27 @@ void UserAppTask(void *p_arg)
int number_post = event - EVENT_STOP_MONEY_POST1;
wash_State[number_post] = washing;
}
-
break;
+
+ case EVENT_WAIT_CASH_PRINT_CHECK_POST1:
+ case EVENT_WAIT_CASH_PRINT_CHECK_POST2:
+ case EVENT_WAIT_CASH_PRINT_CHECK_POST3:
+ case EVENT_WAIT_CASH_PRINT_CHECK_POST4:
+ case EVENT_WAIT_CASH_PRINT_CHECK_POST5:
+ case EVENT_WAIT_CASH_PRINT_CHECK_POST6:
+ case EVENT_WAIT_CASH_PRINT_CHECK_VACUUM1:
+ case EVENT_WAIT_CASH_PRINT_CHECK_VACUUM2:
+ if (GetMode() == MODE_WORK) //
+ {
+ int number_post = event - EVENT_WAIT_CASH_PRINT_CHECK_POST1;
+ int count_delay = 0;
+
+ // запустим задержку печати чека
+ GetData(&PrintTimeoutDesc, &count_delay, number_post, DATA_FLAG_DIRECT_INDEX);
+ countSecWait[number_post] = count_delay;
+ }
+ break;
+
case EVENT_CASH_PRINT_CHECK_POST1:
case EVENT_CASH_PRINT_CHECK_POST2:
case EVENT_CASH_PRINT_CHECK_POST3:
@@ -367,7 +399,7 @@ void UserAppTask(void *p_arg)
if (GetMode() == MODE_WORK) // печатаем только в рабочем режиме
{
int number_post = event - EVENT_CASH_PRINT_CHECK_POST1;
-
+
// здесь событие старта печати чека - включили насос или пылесос
CPU_INT32U accmoney = GetAcceptedMoney(number_post);
@@ -403,7 +435,10 @@ void UserAppTask(void *p_arg)
break;
case EVENT_KEY_F1:
- FIO4SET_bit.P4_28 = 1;
+ testMoney = 100;
+ PostUserEvent(EVENT_CASH_INSERTED_POST1);
+
+ /*FIO4SET_bit.P4_28 = 1;
OSTimeDly(50);
FIO4CLR_bit.P4_28 = 1;
OSTimeDly(50);
@@ -421,14 +456,14 @@ void UserAppTask(void *p_arg)
OSTimeDly(50);
FIO4SET_bit.P4_28 = 1;
OSTimeDly(50);
- FIO4CLR_bit.P4_28 = 1;
+ FIO4CLR_bit.P4_28 = 1;*/
break;
- /*case EVENT_KEY_F2:
- PostUserEvent(EVENT_CASH_INSERTED_POST2);
+ case EVENT_KEY_F2:
+ PostUserEvent(EVENT_STOP_MONEY_POST1);
break;
case EVENT_KEY_F3:
- PostUserEvent(EVENT_CASH_PRINT_CHECK_POST1);
- break;*/
+ PostUserEvent(EVENT_WAIT_CASH_PRINT_CHECK_POST1);
+ break;
#endif
default:
break;
@@ -532,12 +567,34 @@ void UserPrintMoneyMenu(int post)
strcpy(buf, " ");
PrintUserMenuStr(buf, 0);
- sprintf(buf, " Внесите деньги");
- PrintUserMenuStr(buf, 1);
- accmoney = GetAcceptedMoney(post);
- sprintf(buf, "Принято %d руб.", accmoney);
- PrintUserMenuStr(buf, 2);
-
+
+ if(wash_State[post] == waitMoney)
+ {
+ sprintf(buf, " Внесите деньги");
+ PrintUserMenuStr(buf, 1);
+
+ sprintf(buf, " ");
+ PrintUserMenuStr(buf, 2);
+ }
+ else if(wash_State[post] == insertMoney)
+ {
+ accmoney = GetAcceptedMoney(post);
+
+ sprintf(buf, " Внесите деньги");
+ PrintUserMenuStr(buf, 1);
+
+ sprintf(buf, "Принято %d руб.", accmoney);
+ PrintUserMenuStr(buf, 2);
+ }
+ else if(wash_State[post] == washing)
+ {
+ sprintf(buf, "Началась мойка");
+ PrintUserMenuStr(buf, 1);
+
+ sprintf(buf, " ");
+ PrintUserMenuStr(buf, 2);
+ }
+
if(post < COUNT_POST)
sprintf(buf, " Пост %d", post + 1);
else if(post < COUNT_POST + COUNT_VACUUM)
@@ -548,7 +605,7 @@ void UserPrintMoneyMenu(int post)
PrintUserMenuStr(buf, 3);
}
-// вывод меню о невозможости работы
+// вывод меню о невозможности работы
void UserPrintErrorMenu(void)
{
char buf[32];
diff --git a/PROJECT/app/app_serv.h b/PROJECT/app/app_serv.h
index 38f1692..552c4c6 100644
--- a/PROJECT/app/app_serv.h
+++ b/PROJECT/app/app_serv.h
@@ -63,13 +63,21 @@ enum{
EVENT_STOP_MONEY_VACUUM1,
EVENT_STOP_MONEY_VACUUM2,
+ EVENT_WAIT_CASH_PRINT_CHECK_POST1,
+ EVENT_WAIT_CASH_PRINT_CHECK_POST2,
+ EVENT_WAIT_CASH_PRINT_CHECK_POST3,
+ EVENT_WAIT_CASH_PRINT_CHECK_POST4,
+ EVENT_WAIT_CASH_PRINT_CHECK_POST5,
+ EVENT_WAIT_CASH_PRINT_CHECK_POST6,
+ EVENT_WAIT_CASH_PRINT_CHECK_VACUUM1,
+ EVENT_WAIT_CASH_PRINT_CHECK_VACUUM2,
+
EVENT_CASH_PRINT_CHECK_POST1,
EVENT_CASH_PRINT_CHECK_POST2,
EVENT_CASH_PRINT_CHECK_POST3,
EVENT_CASH_PRINT_CHECK_POST4,
EVENT_CASH_PRINT_CHECK_POST5,
EVENT_CASH_PRINT_CHECK_POST6,
-
EVENT_CASH_PRINT_CHECK_VACUUM1,
EVENT_CASH_PRINT_CHECK_VACUUM2,
diff --git a/PROJECT/data/datadesc.c b/PROJECT/data/datadesc.c
index 248278a..bb29bcb 100644
--- a/PROJECT/data/datadesc.c
+++ b/PROJECT/data/datadesc.c
@@ -614,7 +614,7 @@ TDataDescStruct const PrintTimeoutDesc = {
DATA_NO_INDEX, // признак индексного параметра (список строк)
NULL, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE,
- 1 // значение по умолчанию
+ 5 // значение по умолчанию
};
/*************************************
diff --git a/PROJECT/menu/menudesc.c b/PROJECT/menu/menudesc.c
index 7448210..3331e1e 100644
--- a/PROJECT/menu/menudesc.c
+++ b/PROJECT/menu/menudesc.c
@@ -868,8 +868,8 @@ const TMenuLine line_FrMenu_12 = {
NULL
};
-const TMenuLineArray arr_FrMenuArray[] = {&line_FrMenu_0, &line_FrMenu_1, /*&line_FrMenu_2, &line_FrMenu_3,*/ &line_FrMenu_4, &line_FrMenu_5, &line_FrMenu_6, &line_FrMenu_7, &line_FrMenu_8, &line_FrMenu_9, &line_FrMenu_10, &line_FrMenu_11, &line_FrMenu_12, NULL};
-const TMenuPanel FrMenuPanel[] = {arr_FrMenuArray, NULL, 11, MENU_PANEL_STANDARD};
+const TMenuLineArray arr_FrMenuArray[] = {&line_FrMenu_0, &line_FrMenu_1, /*&line_FrMenu_2,*/ &line_FrMenu_3, &line_FrMenu_4, &line_FrMenu_5, &line_FrMenu_6, &line_FrMenu_7, &line_FrMenu_8, &line_FrMenu_9, &line_FrMenu_10, &line_FrMenu_11, &line_FrMenu_12, NULL};
+const TMenuPanel FrMenuPanel[] = {arr_FrMenuArray, NULL, 12, MENU_PANEL_STANDARD};
/***********************************
МЕНЮ НАСТРОЙКА МОНЕТОПРИЕМНИКОВ
diff --git a/PROJECT/services/coin.c b/PROJECT/services/coin.c
index b6eb90a..dae1f9c 100644
--- a/PROJECT/services/coin.c
+++ b/PROJECT/services/coin.c
@@ -110,7 +110,7 @@ void CoinTask(void *p_arg)
if (OSTimeGet() - pend_signal_timestamp[i] > signal_pulse[i])
{
// есть удержание сигнала печати
- PostUserEvent(EVENT_CASH_PRINT_CHECK_POST1 + i);
+ PostUserEvent(EVENT_WAIT_CASH_PRINT_CHECK_POST1 + i);
pend_upsignal_counter[i] = 0;
}
}
@@ -805,7 +805,7 @@ void InitImpInput (void)
// сигнал печати чека пост 1
PINSEL9_bit.P4_28 = 0;
PINMODE9_bit.P4_28 = 0;
- FIO4DIR_bit.P4_28 = 1;
+ FIO4DIR_bit.P4_28 = 0;
FIO4MASK_bit.P4_28 = 0;
// купюроприемник 2
@@ -947,6 +947,8 @@ void InitImpInput (void)
T3IR = 0xFF;
+ prev_input = curr_input = input_register();
+
OS_EXIT_CRITICAL();
}
diff --git a/settings/sk-mlpc2368.dni b/settings/sk-mlpc2368.dni
index a803084..d512ab4 100644
--- a/settings/sk-mlpc2368.dni
+++ b/settings/sk-mlpc2368.dni
@@ -14,7 +14,7 @@ Count=0
Enabled=0
ShowSource=1
[DebugChecksum]
-Checksum=-1718622406
+Checksum=-216480961
[Exceptions]
StopOnUncaught=_ 0
StopOnThrow=_ 0
@@ -155,7 +155,9 @@ Fmt0={W}0:curr_input 4 0
[Disassemble mode]
mode=0
[Breakpoints2]
-Count=0
+Bp0=_ 1 "EMUL_CODE" "{$PROJ_DIR$\PROJECT\services\coin.c}.113.21" 0 0 1 "" 0 "" 0
+Bp1=_ 1 "EMUL_CODE" "{$PROJ_DIR$\PROJECT\services\coin.c}.122.21" 0 0 1 "" 0 "" 0
+Count=2
[Log file]
LoggingEnabled=_ 0
LogFile=_ ""
diff --git a/settings/sk-mlpc2368.wsdt b/settings/sk-mlpc2368.wsdt
index 234681b..d9286de 100644
--- a/settings/sk-mlpc2368.wsdt
+++ b/settings/sk-mlpc2368.wsdt
@@ -52,14 +52,14 @@
- TextEditor$WS_DIR$\OS\app\app_cfg.h005858TextEditor$WS_DIR$\..\..\8\positive_6_24\OS\app\app.c02614311431TextEditor$WS_DIR$\PROJECT\services\console.c010933323332TextEditor$WS_DIR$\OS\uc\lib\lib_def.h011159735981TextEditor$WS_DIR$\PROJECT\data\fram_map.h020665665TextEditor$WS_DIR$\PROJECT\app\journal.c03901170811708TextEditor$WS_DIR$\PROJECT\services\time.c081625625TextEditor$WS_DIR$\PROJECT\app\journal.h03930573070TextEditor$WS_DIR$\PROJECT\menu\menudesc.c07313191931939TextEditor$WS_DIR$\PROJECT\data\data.h027688702TextEditor$WS_DIR$\PROJECT\data\datadesc.c04215771597TextEditor$WS_DIR$\PROJECT\data\data.c034494269426TextEditor$WS_DIR$\PROJECT\services\coin.h00697697TextEditor$WS_DIR$\PROJECT\services\coin.c010233533368TextEditor$WS_DIR$\PROJECT\app\app_serv.c0376128201282014TextEditor$WS_DIR$\PROJECT\data\datadesc.h02513631363TextEditor$WS_DIR$\OS\app\app.c02711311131TextEditor$WS_DIR$\PROJECT\drivers\fiscal\fiscal.c015137963796TextEditor$WS_DIR$\PROJECT\services\fr.c010402708627086TextEditor$WS_DIR$\PROJECT\drivers\fiscal\fiscal.h012575157517TextEditor$WS_DIR$\PROJECT\services\mode.c028763763TextEditor$WS_DIR$\PROJECT\drivers\keyboard\keyboard.h00470470TextEditor$WS_DIR$\OS\uc\cpu\cpu.h08547014701TextEditor$WS_DIR$\PROJECT\menu\menu.h014928928TextEditor$WS_DIR$\OS\uc\os_ii\source\os_core.c013595686956869TextEditor$WS_DIR$\PROJECT\app\app_serv.h049153615580100000010000001
+ TextEditor$WS_DIR$\OS\app\app_cfg.h005858TextEditor$WS_DIR$\..\..\8\positive_6_24\OS\app\app.c02614311431TextEditor$WS_DIR$\PROJECT\services\console.c010933323332TextEditor$WS_DIR$\OS\uc\lib\lib_def.h011159735981TextEditor$WS_DIR$\PROJECT\data\fram_map.h020665665TextEditor$WS_DIR$\PROJECT\app\journal.c03901170811708TextEditor$WS_DIR$\PROJECT\services\time.c081625625TextEditor$WS_DIR$\PROJECT\app\journal.h03930573070TextEditor$WS_DIR$\PROJECT\data\data.h027688702TextEditor$WS_DIR$\PROJECT\data\datadesc.c05882625226268TextEditor$WS_DIR$\PROJECT\data\data.c034494269426TextEditor$WS_DIR$\PROJECT\menu\menudesc.c08403419934199TextEditor$WS_DIR$\PROJECT\services\coin.h00697697TextEditor$WS_DIR$\PROJECT\services\coin.c036981278127TextEditor$WS_DIR$\PROJECT\app\app_serv.c02397451745114TextEditor$WS_DIR$\PROJECT\data\datadesc.h01214641464TextEditor$WS_DIR$\OS\app\app.c02711311131TextEditor$WS_DIR$\PROJECT\drivers\fiscal\fiscal.c015137963796TextEditor$WS_DIR$\PROJECT\services\fr.c010402708627086TextEditor$WS_DIR$\PROJECT\drivers\fiscal\fiscal.h012575157517TextEditor$WS_DIR$\PROJECT\services\mode.c028763763TextEditor$WS_DIR$\PROJECT\drivers\keyboard\keyboard.h00470470TextEditor$WS_DIR$\OS\uc\cpu\cpu.h08547014701TextEditor$WS_DIR$\PROJECT\menu\menu.h014928928TextEditor$WS_DIR$\OS\uc\os_ii\source\os_core.c013595689856898TextEditor$WS_DIR$\PROJECT\app\app_serv.h061223922390100000010000001
- iaridepm.enu1-2-2540253-2-2200146156250210072199219779856-2-21101282-2-212841121003125161151156250210072
+ iaridepm.enu1-2-2628253-2-2200146156250153523199219662461-2-22781282-2-212842801003125294427156250153523