diff --git a/PROJECT/app/app_serv.c b/PROJECT/app/app_serv.c
index 1a8a6d0..c78f51a 100644
--- a/PROJECT/app/app_serv.c
+++ b/PROJECT/app/app_serv.c
@@ -172,48 +172,35 @@ void UserAppTask(void *p_arg)
{
break;
}
-
- // если есть ошибки, не работаем
- if (TstCriticalErrors())
- {
- UserPrintErrorMenu();
- RefreshMenu();
-
- // выключим прием денег
- if (was_critical_error == 0)
- {
- CoinDisable();
- was_critical_error = 1;
- }
- break;
- }
- // включим заново прием денег, если была ошибка
- if (was_critical_error)
- {
- was_critical_error = 0;
- break;
- }
-
for(int post = 0; post < COUNT_POST + COUNT_VACUUM; post++)
{
accmoney = GetAcceptedMoney(post);
if (accmoney > 0)
{
+ // есть принятые деньги
drawPostInfo[post] = 1;
- // печать по внешнему сигналу, ждем таймаут отмены
- GetData(&PrintTimeoutAfterDesc, &print_timeout, 0, DATA_FLAG_SYSTEM_INDEX);
- if(print_timeout)
+ if(wash_State[post] != washing)
{
- // если указан таймаут обнуления денег - просто их обнуляем
- if (labs(OSTimeGet() - money_timestamp[post]) > 1000UL * print_timeout)
+ // печать по внешнему сигналу, ждем таймаут отмены, но не в режиме мойки
+ GetData(&PrintTimeoutAfterDesc, &print_timeout, 0, DATA_FLAG_SYSTEM_INDEX);
+ if(print_timeout)
{
- SetAcceptedMoney(0, post);
- wash_State[post] = waitMoney;
+ // если указан таймаут обнуления денег - просто их обнуляем
+ if (labs(OSTimeGet() - money_timestamp[post]) > 1000UL * print_timeout)
+ {
+ SetAcceptedMoney(0, post);
+ wash_State[post] = waitMoney;
+ }
}
}
+ else
+ {
+ // в режиме мойки продлеваем ожидание
+ money_timestamp[post] = OSTimeGet();
+ }
}
else
{
@@ -232,6 +219,27 @@ void UserAppTask(void *p_arg)
// принимаем деньги
DrawMenu();
+ // если есть ошибки, не работаем
+ if (TstCriticalErrors())
+ {
+ UserPrintErrorMenu();
+ RefreshMenu();
+
+ // выключим прием денег
+ if (was_critical_error == 0)
+ {
+ was_critical_error = 1;
+ }
+ break;
+ }
+
+ // включим заново прием денег, если была ошибка
+ if (was_critical_error)
+ {
+ was_critical_error = 0;
+ break;
+ }
+
break;
case EVENT_MODE_CHANGE:
@@ -365,7 +373,12 @@ void UserAppTask(void *p_arg)
if (GetMode() == MODE_WORK) //
{
int number_post = event - EVENT_STOP_MONEY_POST1;
- wash_State[number_post] = washing;
+
+ accmoney = GetAcceptedMoney(number_post);
+ if (accmoney > 0)
+ {
+ wash_State[number_post] = washing;
+ }
}
break;
@@ -382,9 +395,18 @@ void UserAppTask(void *p_arg)
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;
+ accmoney = GetAcceptedMoney(number_post);
+ if (accmoney > 0)
+ {
+ // запустим задержку печати чека
+ GetData(&PrintTimeoutDesc, &count_delay, number_post, DATA_FLAG_DIRECT_INDEX);
+ countSecWait[number_post] = count_delay;
+
+ // если задержки нет - сразу печатаем
+ if(countSecWait[number_post] == 0) PostUserEvent(EVENT_CASH_PRINT_CHECK_POST1 + number_post);
+
+ wash_State[number_post] = printCheck;
+ }
}
break;
@@ -435,8 +457,8 @@ void UserAppTask(void *p_arg)
break;
case EVENT_KEY_F1:
- testMoney = 100;
- PostUserEvent(EVENT_CASH_INSERTED_POST1);
+ //testMoney = 100;
+ //PostUserEvent(EVENT_CASH_INSERTED_POST1);
/*FIO4SET_bit.P4_28 = 1;
OSTimeDly(50);
@@ -459,10 +481,10 @@ void UserAppTask(void *p_arg)
FIO4CLR_bit.P4_28 = 1;*/
break;
case EVENT_KEY_F2:
- PostUserEvent(EVENT_STOP_MONEY_POST1);
+ //PostUserEvent(EVENT_STOP_MONEY_POST1);
break;
case EVENT_KEY_F3:
- PostUserEvent(EVENT_WAIT_CASH_PRINT_CHECK_POST1);
+ //PostUserEvent(EVENT_WAIT_CASH_PRINT_CHECK_POST1);
break;
#endif
default:
@@ -594,6 +616,14 @@ void UserPrintMoneyMenu(int post)
sprintf(buf, " ");
PrintUserMenuStr(buf, 2);
}
+ else if(wash_State[post] == printCheck)
+ {
+ sprintf(buf, "Ожидание печати");
+ PrintUserMenuStr(buf, 1);
+
+ sprintf(buf, " ");
+ PrintUserMenuStr(buf, 2);
+ }
if(post < COUNT_POST)
sprintf(buf, " Пост %d", post + 1);
diff --git a/PROJECT/menu/menu.h b/PROJECT/menu/menu.h
index 8d95b86..7afc0ee 100644
--- a/PROJECT/menu/menu.h
+++ b/PROJECT/menu/menu.h
@@ -11,12 +11,10 @@
#define SYMB_GO_UP 0x87
#define SYMB_GO_DOWN 0x86
-#define SYMB_RIGHT_ARROW 0x13
-#define SYMB_DESC_MARK 0x84
-#define SYMB_IND_MARK 0x85
-#define SYMB_POINT_MARK 0xDF
-
-
+#define SYMB_RIGHT_ARROW 0x3E
+#define SYMB_DESC_MARK 0x3E
+#define SYMB_IND_MARK 0x3C
+#define SYMB_POINT_MARK 0x3E
// структура описания пункта меню
typedef struct{
diff --git a/PROJECT/services/coin.c b/PROJECT/services/coin.c
index dae1f9c..adc83e3 100644
--- a/PROJECT/services/coin.c
+++ b/PROJECT/services/coin.c
@@ -86,10 +86,14 @@ void CoinTask(void *p_arg)
last_settings_time = OSTimeGet();
}
+ OSTimeDly(1);
+
+ #if OS_CRITICAL_METHOD == 3
+ OS_CPU_SR cpu_sr = 0;
+ #endif
+
for(int i = 0; i < COUNT_POST + COUNT_VACUUM; i++)
{
- OSTimeDly(1);
-
if (enable_coin[i])
{
if (GetCoinCount(i))
@@ -103,6 +107,7 @@ void CoinTask(void *p_arg)
GetResetCoinCount(i);
}
+ OS_ENTER_CRITICAL();
if (enable_signal[i])
{
if (pend_upsignal_counter[i])
@@ -124,15 +129,12 @@ void CoinTask(void *p_arg)
}
}
}
+ OS_EXIT_CRITICAL();
if (!cash_enable[i]) {GetResetCashCount(i); continue;}
if(i >= COUNT_POST) continue;
- #if OS_CRITICAL_METHOD == 3
- OS_CPU_SR cpu_sr = 0;
- #endif
OS_ENTER_CRITICAL();
-
if (pend_cash_counter[i])
{
// импульсы инкрементируем только после выдержки паузы
diff --git a/settings/sk-mlpc2368.dni b/settings/sk-mlpc2368.dni
index d512ab4..46bfeaa 100644
--- a/settings/sk-mlpc2368.dni
+++ b/settings/sk-mlpc2368.dni
@@ -14,7 +14,7 @@ Count=0
Enabled=0
ShowSource=1
[DebugChecksum]
-Checksum=-216480961
+Checksum=-1687745374
[Exceptions]
StopOnUncaught=_ 0
StopOnThrow=_ 0
@@ -155,9 +155,7 @@ Fmt0={W}0:curr_input 4 0
[Disassemble mode]
mode=0
[Breakpoints2]
-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
+Count=0
[Log file]
LoggingEnabled=_ 0
LogFile=_ ""
diff --git a/settings/sk-mlpc2368.wsdt b/settings/sk-mlpc2368.wsdt
index d9286de..6366f1c 100644
--- a/settings/sk-mlpc2368.wsdt
+++ b/settings/sk-mlpc2368.wsdt
@@ -18,7 +18,7 @@
- 162272727
+ 168272727
44062754221219
@@ -42,7 +42,7 @@
Workspace
- sk-mlpc2368sk-mlpc2368/PROJECTsk-mlpc2368/PROJECT/appsk-mlpc2368/PROJECT/datask-mlpc2368/PROJECT/driverssk-mlpc2368/PROJECT/drivers/keyboardsk-mlpc2368/PROJECT/libssk-mlpc2368/PROJECT/menusk-mlpc2368/PROJECT/services
+ sk-mlpc2368sk-mlpc2368/PROJECTsk-mlpc2368/PROJECT/appsk-mlpc2368/PROJECT/datask-mlpc2368/PROJECT/driverssk-mlpc2368/PROJECT/drivers/keyboardsk-mlpc2368/PROJECT/drivers/lcdsk-mlpc2368/PROJECT/libssk-mlpc2368/PROJECT/menusk-mlpc2368/PROJECT/services
@@ -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\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
+ 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.c010037013701TextEditor$WS_DIR$\PROJECT\app\app_serv.c0428131621316214TextEditor$WS_DIR$\PROJECT\data\datadesc.h01214641464TextEditor$WS_DIR$\OS\app\app.c02711311131TextEditor$WS_DIR$\PROJECT\drivers\fiscal\fiscal.h012575157517TextEditor$WS_DIR$\PROJECT\services\mode.c028763763TextEditor$WS_DIR$\PROJECT\drivers\keyboard\keyboard.h00470470TextEditor$WS_DIR$\OS\uc\os_ii\source\os_core.c013595689856898TextEditor$WS_DIR$\PROJECT\app\app_serv.h06122392239TextEditor$WS_DIR$\PROJECT\menu\menu.c016245484548TextEditor$WS_DIR$\PROJECT\drivers\lcd\lcd.c028669536953TextEditor$WS_DIR$\PROJECT\menu\menu.h062922920100000010000001
- iaridepm.enu1-2-2628253-2-2200146156250153523199219662461-2-22781282-2-212842801003125294427156250153523
+ iaridepm.enu1-2-2715259-2-2200146156250153523203906753943-2-21911282-2-212841931003125202944156250153523