From c304a1aec3a80ea96773a6261e39ce8400a642bd Mon Sep 17 00:00:00 2001 From: Dmitriy Date: Wed, 22 Sep 2021 20:37:45 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20=D1=82=D0=B0=D0=B9=D0=BC=D0=B0=D1=83=D1=82=20=D1=81?= =?UTF-8?q?=D1=82=D0=B0=D1=80=D1=82=D0=B0=20=D0=BD=D0=B0=D1=87=D0=B0=D0=BB?= =?UTF-8?q?=D0=B0=20=D0=BC=D0=BE=D0=B9=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PROJECT/app/app_serv.c | 14 ++++++++++++-- PROJECT/data/datadesc.c | 25 +++++++++++++++++++++++++ PROJECT/data/datadesc.h | 1 + PROJECT/data/fram_map.h | 3 +++ PROJECT/menu/menudesc.c | 11 +++++++++-- settings/sk-mlpc2368.wsdt | 4 ++-- 6 files changed, 52 insertions(+), 6 deletions(-) diff --git a/PROJECT/app/app_serv.c b/PROJECT/app/app_serv.c index b7bfb12..4de7da7 100644 --- a/PROJECT/app/app_serv.c +++ b/PROJECT/app/app_serv.c @@ -230,10 +230,20 @@ void UserAppTask(void *p_arg) if (accmoney > 0 && !was_critical_error) { CPU_INT32U tick = labs(OSTimeGet() - money_timestamp[post]); - + // есть деньги и нет ошибок if(wash_State[post] != washing) - { + { + // если задан тайм аут начала мойки и он прошел - запускаем мойку - только для постов мойки + GetData(&SignalTimeOutDesc, &print_timeout, 0, DATA_FLAG_SYSTEM_INDEX); + if((print_timeout > 0) && (tick > print_timeout * 1000L) && (post < COUNT_POST)) + { + PostUserEvent(EVENT_STOP_MONEY_POST1 + post); // начинаем мойку + + // событие послали - к следующему каналу + continue; + } + // аварийный тайм аут ожидания начала мойки if (tick > 300000UL) { diff --git a/PROJECT/data/datadesc.c b/PROJECT/data/datadesc.c index 7862c82..b56f043 100644 --- a/PROJECT/data/datadesc.c +++ b/PROJECT/data/datadesc.c @@ -541,6 +541,30 @@ TDataDescStruct const SignalPulseDesc = { 1 // значение по умолчанию }; +/************************************* + Таймаут сигнала начала мойки +*************************************/ +TRangeValueULONG const SignalTimeOutRange = {1, 300}; +CPU_INT08U const SignalTimeOutName[] = "Таймаут,сек."; + +TDataDescStruct const SignalTimeOutDesc = { + DATA_DESC_EDIT, // тип дескриптора + DATA_TYPE_ULONG, // тип параметра + DATA_LOC_FRAM, // расположение параметра + DATA_NO_ARRAY, // признак массива + 0, // размер массива + 0, // указатель на десриптор индекса массива + (void*)offsetof(TFramMap, signal_print_timeout_len), // указатель на переменную или адрес FRAM + (void*)&SignalTimeOutRange, // указатель на границы параметра + NULL, // функция по изменению + 0, // смещение между элементами в массиве + SignalTimeOutName, // указатель на строку названия параметра + DATA_NO_INDEX, // признак индексного параметра (список строк) + NULL, // указатель на список строк для индексного параметра + DATA_INIT_DISABLE, + 0 // значение по умолчанию +}; + /************************************* Индекс при настройке монетоприемников *************************************/ @@ -2751,6 +2775,7 @@ const TDataDescArrayStruct AllDataArray[] = {&DisableFiscalErrorsDesc, "DisableFiscalErrorsDesc"}, {&EnableSignalDesc, "EnableSignalDesc"}, {&SignalPulseDesc, "SignalPulseDesc"}, + {&SignalTimeOutDesc, "SignalTimeOutDesc"}, {&CashPerMinuteDesc, "CashPerMinuteDesc"}, {&CashLevelDesc, "CashLevelDesc"}, diff --git a/PROJECT/data/datadesc.h b/PROJECT/data/datadesc.h index 7ee3412..c7af9d7 100644 --- a/PROJECT/data/datadesc.h +++ b/PROJECT/data/datadesc.h @@ -180,6 +180,7 @@ extern CPU_INT32U CoinIndex; extern TDataDescStruct const SignalIndexDesc; extern TDataDescStruct const EnableSignalDesc; extern TDataDescStruct const SignalPulseDesc; +extern TDataDescStruct const SignalTimeOutDesc; extern TDataDescStruct const CashLevelDesc; extern TDataDescStruct const CoinLevelDesc; diff --git a/PROJECT/data/fram_map.h b/PROJECT/data/fram_map.h index 0efc5a1..1265a5a 100644 --- a/PROJECT/data/fram_map.h +++ b/PROJECT/data/fram_map.h @@ -52,6 +52,9 @@ typedef struct TCountersLong CountersLong; CPU_INT32U StartButtonName; + + // таймаут начала мойки без внешнего сигнала - общий на все каналы + CPU_INT32U signal_print_timeout_len; #endif CPU_INT08U mac_addr[6]; diff --git a/PROJECT/menu/menudesc.c b/PROJECT/menu/menudesc.c index 7eb143a..21e01f5 100644 --- a/PROJECT/menu/menudesc.c +++ b/PROJECT/menu/menudesc.c @@ -627,6 +627,13 @@ const TMenuLine line_SignalMenu_1 = { NULL // панель для перехода }; +const TMenuLine line_SignalMenu_6 = { + MENU_LINE_SHOW_DESC, // тип пункта меню + 0, // доп. флаги + (void*)&SignalTimeOutDesc, // указатель на текстовую строку или дескриптор + NULL // панель для перехода +}; + const TMenuLine line_SignalMenu_2 = { MENU_LINE_SHOW_DESC, // тип пункта меню 0, // доп. флаги @@ -660,8 +667,8 @@ void OnEnterSignalMenu(void) CoinIndex = 0; } -const TMenuLineArray arr_SignalMenuArray[] = {&line_SignalMenu_0, &line_SignalMenu_1, &line_SignalMenu_2, &line_SignalMenu_3, &line_SignalMenu_4, &line_SignalMenu_5, NULL}; -const TMenuPanel SignalSetupPanel[] = {arr_SignalMenuArray, OnEnterSignalMenu, 6, MENU_PANEL_STANDARD}; +const TMenuLineArray arr_SignalMenuArray[] = {&line_SignalMenu_0, &line_SignalMenu_1, &line_SignalMenu_6, &line_SignalMenu_2, &line_SignalMenu_3, &line_SignalMenu_4, &line_SignalMenu_5, NULL}; +const TMenuPanel SignalSetupPanel[] = {arr_SignalMenuArray, OnEnterSignalMenu, 7, MENU_PANEL_STANDARD}; /*********************************** diff --git a/settings/sk-mlpc2368.wsdt b/settings/sk-mlpc2368.wsdt index 7e101cc..321cc92 100644 --- a/settings/sk-mlpc2368.wsdt +++ b/settings/sk-mlpc2368.wsdt @@ -34,7 +34,7 @@ TabID-28963-15244Find in FilesFind-in-FilesTabID-3677-8150Debug LogDebug-Log - 1 + 0 TabID-1122-24249 @@ -52,7 +52,7 @@ - TextEditor$WS_DIR$\PROJECT\data\datadesc.h010337223884TextEditor$WS_DIR$\PROJECT\version.h007777TextEditor$WS_DIR$\PROJECT\app\journal.h06340234023TextEditor$WS_DIR$\PROJECT\data\fram_map.h03286382TextEditor$WS_DIR$\PROJECT\app\app_serv.c06042312823128TextEditor$WS_DIR$\PROJECT\data\data.c00449449TextEditor$WS_DIR$\PROJECT\data\data.h039688702TextEditor$WS_DIR$\PROJECT\services\fr.c079219145191457TextEditor$WS_DIR$\PROJECT\app\app_serv.h00238238TextEditor$WS_DIR$\PROJECT\menu\menu.h00540540TextEditor$WS_DIR$\PROJECT\services\coin.c027959455945TextEditor$WS_DIR$\PROJECT\services\coin.h00155155TextEditor$WS_DIR$\OS\app\app.c03011311131TextEditor$WS_DIR$\PROJECT\drivers\fiscal\fiscal.c09362521025210TextEditor$WS_DIR$\PROJECT\drivers\fiscal\fiscal.h05325452545TextEditor$WS_DIR$\PROJECT\app\journal.c04591318613188TextEditor$WS_DIR$\PROJECT\menu\menu.c020660496049TextEditor$WS_DIR$\PROJECT\menu\menudesc.h02721162116TextEditor$WS_DIR$\PROJECT\menu\menudesc.c013535575455754TextEditor$WS_DIR$\PROJECT\services\fr.h00927927TextEditor$WS_DIR$\PROJECT\data\datadesc.c0216196286962860100000010000001 + TextEditor$WS_DIR$\PROJECT\version.h007777TextEditor$WS_DIR$\PROJECT\app\journal.h06340234023TextEditor$WS_DIR$\PROJECT\data\data.c00449449TextEditor$WS_DIR$\PROJECT\data\data.h07621012101TextEditor$WS_DIR$\PROJECT\services\fr.c07921914519145TextEditor$WS_DIR$\PROJECT\app\app_serv.h00238238TextEditor$WS_DIR$\PROJECT\menu\menu.h00540540TextEditor$WS_DIR$\PROJECT\services\coin.c05423712371TextEditor$WS_DIR$\PROJECT\services\coin.h00155155TextEditor$WS_DIR$\OS\app\app.c03011311131TextEditor$WS_DIR$\PROJECT\drivers\fiscal\fiscal.c09362521025210TextEditor$WS_DIR$\PROJECT\drivers\fiscal\fiscal.h05325452545TextEditor$WS_DIR$\PROJECT\app\journal.c04591318613188TextEditor$WS_DIR$\PROJECT\menu\menu.c020660496049TextEditor$WS_DIR$\PROJECT\menu\menudesc.h02721162116TextEditor$WS_DIR$\PROJECT\menu\menudesc.c06132660726607TextEditor$WS_DIR$\PROJECT\services\fr.h00927927TextEditor$WS_DIR$\PROJECT\data\datadesc.c06592936329363TextEditor$WS_DIR$\PROJECT\data\datadesc.h016061106110TextEditor$WS_DIR$\PROJECT\data\fram_map.h03512721272TextEditor$WS_DIR$\PROJECT\app\app_serv.c023068106810200100000010000001