From 46590d83f3b4f90de60cfb05360803a9a76e9345 Mon Sep 17 00:00:00 2001 From: dimoniche Date: Tue, 6 Aug 2019 22:27:27 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BF=D0=BE=D1=87=D1=82=D0=B8=20=D0=BF=D0=BE?= =?UTF-8?q?=D1=81=D0=BB=D0=B5=D0=B4=D0=BD=D0=B8=D0=B5=20=D0=B8=D1=81=D0=BF?= =?UTF-8?q?=D1=80=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PROJECT/app/app_serv.c | 48 +++++++++++++++------------------ PROJECT/app/app_serv.h | 7 ++--- PROJECT/data/datadesc.c | 24 ++++++++--------- PROJECT/services/coin.c | 56 +++++++++++++++++++-------------------- settings/sk-mlpc2368.dni | 2 +- settings/sk-mlpc2368.wsdt | 6 ++--- sk-mlpc2368.dep | 4 --- 7 files changed, 67 insertions(+), 80 deletions(-) diff --git a/PROJECT/app/app_serv.c b/PROJECT/app/app_serv.c index 0b6f426..c0f9a20 100644 --- a/PROJECT/app/app_serv.c +++ b/PROJECT/app/app_serv.c @@ -22,16 +22,13 @@ CPU_INT32U SystemTime; CPU_INT32U money_timestamp[COUNT_POST + COUNT_VACUUM]; -CPU_INT08U ChannelsState[COUNT_POST + COUNT_VACUUM]; +//CPU_INT08U ChannelsState[COUNT_POST + COUNT_VACUUM]; #define CHANNEL_STATE_FREE 0 #define CHANNEL_STATE_BUSY 1 #define CHANNEL_STATE_DISABLED 2 -CPU_INT32U ChannelsCounters[COUNT_POST + COUNT_VACUUM]; +//CPU_INT32U ChannelsCounters[COUNT_POST + COUNT_VACUUM]; CPU_INT32U ChannelsPayedTime[COUNT_POST + COUNT_VACUUM]; -CPU_INT32U incas_bill_nom_counter[24]; -CPU_INT32U incas_common_bill_counter; - #define USER_QUERY_LEN 64 OS_STK UserTaskStk[USER_TASK_STK_SIZE]; @@ -86,8 +83,7 @@ void AddOutPulses(int count, int len_ms) #endif -int drawPostInfo[COUNT_POST + COUNT_VACUUM] = {0,0,0,0,0,0,0,0}; -int currentPosition = 0; +static int currentPosition = 0; typedef enum { @@ -98,15 +94,14 @@ typedef enum { } washStateEnum; -washStateEnum wash_State[COUNT_POST + COUNT_VACUUM] = {waitMoney, waitMoney, waitMoney, waitMoney, waitMoney, waitMoney, waitMoney, waitMoney}; +static 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}; - -CPU_INT32U enable_coin[COUNT_POST + COUNT_VACUUM]; -CPU_INT32U cash_enable[COUNT_POST]; -CPU_INT32U bank_enable[COUNT_POST]; -CPU_INT32U enable_signal[COUNT_POST]; -CPU_INT32U fiscal_enable; +static int countSecWait[COUNT_POST + COUNT_VACUUM] = {0, 0, 0, 0, 0, 0, 0, 0}; +static CPU_INT32U enable_coin[COUNT_POST + COUNT_VACUUM]; +static CPU_INT32U cash_enable[COUNT_POST]; +static CPU_INT32U bank_enable[COUNT_POST]; +static CPU_INT32U enable_signal[COUNT_POST]; +static CPU_INT32U fiscal_enable; void DrawMenu(void) { @@ -230,9 +225,6 @@ void UserAppTask(void *p_arg) if (accmoney > 0) { - // есть принятые деньги - drawPostInfo[post] = 1; - if(wash_State[post] != washing) { // печать по внешнему сигналу, ждем таймаут отмены, но не в режиме мойки @@ -253,10 +245,6 @@ void UserAppTask(void *p_arg) money_timestamp[post] = OSTimeGet(); } } - else - { - drawPostInfo[post] = 0; - } if(countSecWait[post]) { @@ -679,10 +667,10 @@ void UserStartupFunc(void) OSTaskCreate(UserAppTask, (void *)0, (OS_STK *)&UserTaskStk[USER_TASK_STK_SIZE-1], USER_TASK_PRIO); } - InitConsole(); + //InitConsole(); #ifdef BOARD_CENTRAL_CFG - InitHostApp(); + //InitHostApp(); #endif SystemTime = GetTimeSec(); @@ -723,6 +711,14 @@ void UserPrintMoneyMenu(int post) strcpy(buf, " "); PrintUserMenuStr(buf, 0); + accmoney = GetAcceptedMoney(post) + GetAcceptedBankMoney(post); + + if((wash_State[post] == waitMoney) && (accmoney > 0)) + { + // если была перезагрузка и есть деньги - сразу переходим на ожидание денег + wash_State[post] = insertMoney; + } + if(wash_State[post] == waitMoney) { sprintf(buf, " Внесите деньги"); @@ -733,8 +729,6 @@ void UserPrintMoneyMenu(int post) } else if(wash_State[post] == insertMoney) { - accmoney = GetAcceptedMoney(post) + GetAcceptedBankMoney(post); - sprintf(buf, " Внесите деньги"); PrintUserMenuStr(buf, 1); @@ -757,7 +751,7 @@ void UserPrintMoneyMenu(int post) sprintf(buf, " "); PrintUserMenuStr(buf, 2); } - + if(post < COUNT_POST) sprintf(buf, " Пост %d", post + 1); else if(post < COUNT_POST + COUNT_VACUUM) diff --git a/PROJECT/app/app_serv.h b/PROJECT/app/app_serv.h index 16fe869..d0851d0 100644 --- a/PROJECT/app/app_serv.h +++ b/PROJECT/app/app_serv.h @@ -5,13 +5,10 @@ #define CONSOLE_TCP_DEFAULT_PORT 10000 -extern CPU_INT32U incas_bill_nom_counter[24]; -extern CPU_INT32U incas_common_bill_counter; - #define KBRD_TASK_STK_SIZE 128 -#define USER_TASK_STK_SIZE 384 +#define USER_TASK_STK_SIZE 512 #define MENU_TASK_STK_SIZE 384 -#define COIN_TASK_STK_SIZE 128 +#define COIN_TASK_STK_SIZE 384 #define VALIDATOR_TASK_STK_SIZE 384 #define FISCAL_TASK_STK_SIZE 384 #define MODEM_TASK_STK_SIZE 768 diff --git a/PROJECT/data/datadesc.c b/PROJECT/data/datadesc.c index 1939196..0660542 100644 --- a/PROJECT/data/datadesc.c +++ b/PROJECT/data/datadesc.c @@ -30,7 +30,7 @@ CPU_INT08U const CoinPulseLenName[] = " void OnChangeCoinPulseLen() { CPU_INT32U pulse, pause; - for(int post = 0; post < COUNT_POST; post++) + for(int post = 0; post < COUNT_POST + COUNT_VACUUM; post++) { GetData(&CoinPulseLenDesc, &pulse, post, DATA_FLAG_DIRECT_INDEX); GetData(&CoinPauseLenDesc, &pause, post, DATA_FLAG_DIRECT_INDEX); @@ -43,7 +43,7 @@ TDataDescStruct const CoinPulseLenDesc = { DATA_TYPE_ULONG, // тип параметра DATA_LOC_FRAM, // расположение параметра DATA_IS_ARRAY, // признак массива - COUNT_POST, // размер массива + COUNT_POST + COUNT_VACUUM, // размер массива &CoinIndexDesc, // указатель на десриптор индекса массива (void*)offsetof(TFramMap, coin_pulse_len), // указатель на переменную или адрес FRAM (void*)&CoinPulseLenRange, // указатель на границы параметра @@ -137,7 +137,7 @@ TDataDescStruct const CoinPauseLenDesc = { DATA_TYPE_ULONG, // тип параметра DATA_LOC_FRAM, // расположение параметра DATA_IS_ARRAY, // признак массива - COUNT_POST, // размер массива + COUNT_POST + COUNT_VACUUM, // размер массива &CoinIndexDesc, // указатель на десриптор индекса массива (void*)offsetof(TFramMap, coin_pause_len), // указатель на переменную или адрес FRAM (void*)&CoinPauseLenRange, // указатель на границы параметра @@ -250,7 +250,7 @@ TDataDescStruct const EnableValidatorDesc = { DATA_IS_INDEX, // признак индексного параметра (список строк) EnableValidatorList, // указатель на список строк для индексного параметра DATA_INIT_DISABLE, - 1 // значение по умолчанию + 0 // значение по умолчанию }; /************************************* @@ -274,7 +274,7 @@ TDataDescStruct const EnableBankDesc = { DATA_IS_INDEX, // признак индексного параметра (список строк) EnableValidatorList, // указатель на список строк для индексного параметра DATA_INIT_DISABLE, - 1 // значение по умолчанию + 0 // значение по умолчанию }; /************************************* @@ -503,7 +503,7 @@ TDataDescStruct const EnableSignalDesc = { DATA_IS_INDEX, // признак индексного параметра (список строк) EnableSignalList, // указатель на список строк для индексного параметра DATA_INIT_DISABLE, - 1 + 0 }; /************************************* @@ -627,7 +627,7 @@ TDataDescStruct const CoinPerPulseDesc = { DATA_NO_INDEX, // признак индексного параметра (список строк) NULL, // указатель на список строк для индексного параметра DATA_INIT_DISABLE, - 1 // значение по умолчанию + 10 // значение по умолчанию }; /************************************* @@ -817,7 +817,7 @@ TDataDescStruct const PrintTimeoutAfterDesc = { DATA_NO_INDEX, // признак индексного параметра (список строк) NULL, // указатель на список строк для индексного параметра DATA_INIT_DISABLE, - 60 // значение по умолчанию + 0 // значение по умолчанию }; /************************************* @@ -935,7 +935,7 @@ TDataDescStruct const CashLevelDesc = { DATA_IS_INDEX, // признак индексного параметра (список строк) LevelList, // указатель на список строк для индексного параметра DATA_INIT_DISABLE, - 1 // значение по умолчанию + 0 // значение по умолчанию }; /************************************* @@ -956,7 +956,7 @@ TDataDescStruct const BankLevelDesc = { DATA_IS_INDEX, // признак индексного параметра (список строк) LevelList, // указатель на список строк для индексного параметра DATA_INIT_DISABLE, - 1 // значение по умолчанию + 0 // значение по умолчанию }; /************************************* @@ -977,7 +977,7 @@ TDataDescStruct const CoinLevelDesc = { DATA_IS_INDEX, // признак индексного параметра (список строк) LevelList, // указатель на список строк для индексного параметра DATA_INIT_DISABLE, - 1 // значение по умолчанию + 0 // значение по умолчанию }; /************************************* @@ -1049,7 +1049,7 @@ TDataDescStruct const EnableFiscalDesc = { DATA_IS_INDEX, // признак индексного параметра (список строк) EnableFiscalList, // указатель на список строк для индексного параметра DATA_INIT_DISABLE, - 1 + 0 }; /************************************* diff --git a/PROJECT/services/coin.c b/PROJECT/services/coin.c index b1d8fa2..d112313 100644 --- a/PROJECT/services/coin.c +++ b/PROJECT/services/coin.c @@ -11,9 +11,9 @@ OS_STK CoinTaskStk[COIN_TASK_STK_SIZE]; void InitImpInput(void); -CPU_INT32U CoinImpCounter[COUNT_POST + COUNT_VACUUM]; -CPU_INT32U CashImpCounter[COUNT_POST + COUNT_VACUUM]; -CPU_INT32U BankImpCounter[COUNT_POST + COUNT_VACUUM]; +static CPU_INT32U CoinImpCounter[COUNT_POST + COUNT_VACUUM]; +static CPU_INT32U CashImpCounter[COUNT_POST + COUNT_VACUUM]; +static CPU_INT32U BankImpCounter[COUNT_POST + COUNT_VACUUM]; static CPU_INT32U coin_pulse[COUNT_POST + COUNT_VACUUM]; static CPU_INT32U coin_pause[COUNT_POST + COUNT_VACUUM]; @@ -35,12 +35,12 @@ static char pend_upsignal_counter[COUNT_POST + COUNT_VACUUM]; static char pend_downsignal_counter[COUNT_POST + COUNT_VACUUM]; static CPU_INT32U pend_signal_timestamp[COUNT_POST + COUNT_VACUUM]; -CPU_INT32U cashLevel[COUNT_POST + COUNT_VACUUM]; -CPU_INT32U coinLevel[COUNT_POST + COUNT_VACUUM]; -CPU_INT32U SignalLevel[COUNT_POST + COUNT_VACUUM]; -CPU_INT32U bankLevel[COUNT_POST + COUNT_VACUUM]; +static CPU_INT32U cashLevel[COUNT_POST + COUNT_VACUUM]; +static CPU_INT32U coinLevel[COUNT_POST + COUNT_VACUUM]; +static CPU_INT32U SignalLevel[COUNT_POST + COUNT_VACUUM]; +static CPU_INT32U bankLevel[COUNT_POST + COUNT_VACUUM]; -void SetCashPulseParam(CPU_INT32U pulse, CPU_INT32U pause, CPU_INT32U post) +void SetCoinPulseParam(CPU_INT32U pulse, CPU_INT32U pause, CPU_INT32U post) { #if OS_CRITICAL_METHOD == 3 OS_CPU_SR cpu_sr = 0; @@ -51,7 +51,7 @@ void SetCashPulseParam(CPU_INT32U pulse, CPU_INT32U pause, CPU_INT32U post) OS_EXIT_CRITICAL(); } -void SetCoinPulseParam(CPU_INT32U pulse, CPU_INT32U pause, CPU_INT32U post) +void SetCashPulseParam(CPU_INT32U pulse, CPU_INT32U pause, CPU_INT32U post) { #if OS_CRITICAL_METHOD == 3 OS_CPU_SR cpu_sr = 0; @@ -101,22 +101,22 @@ void SetLevelParam(CPU_INT32U level1, CPU_INT32U level2, CPU_INT32U level3, CPU_ OS_EXIT_CRITICAL(); } +static CPU_INT32U enable_coin[COUNT_POST + COUNT_VACUUM]; +static CPU_INT32U cash_enable[COUNT_POST]; +static CPU_INT32U enable_signal[COUNT_POST]; +static CPU_INT32U bank_enable[COUNT_POST]; + +static CPU_INT32U last_coin_count[COUNT_POST]; +static CPU_INT32U last_coin_time[COUNT_POST]; + +static CPU_INT32U last_cash_count[COUNT_POST]; +static CPU_INT32U last_cash_time[COUNT_POST]; + +static CPU_INT32U last_bank_count[COUNT_POST]; +static CPU_INT32U last_bank_time[COUNT_POST]; + void CoinTask(void *p_arg) { - CPU_INT32U enable_coin[COUNT_POST + COUNT_VACUUM]; - CPU_INT32U cash_enable[COUNT_POST]; - CPU_INT32U enable_signal[COUNT_POST]; - CPU_INT32U bank_enable[COUNT_POST]; - - CPU_INT32U last_coin_count[COUNT_POST]; - CPU_INT32U last_coin_time[COUNT_POST]; - - CPU_INT32U last_cash_count[COUNT_POST]; - CPU_INT32U last_cash_time[COUNT_POST]; - - CPU_INT32U last_bank_count[COUNT_POST]; - CPU_INT32U last_bank_time[COUNT_POST]; - CPU_INT32U last_settings_time = 0; while(1) @@ -532,9 +532,9 @@ CPU_INT32U input_register() return input; } -CPU_INT32U input_event = 0; -CPU_INT32U prev_input = 0; -CPU_INT32U curr_input = 0; +static CPU_INT32U input_event = 0; +static CPU_INT32U prev_input = 0; +static CPU_INT32U curr_input = 0; void InputCapture_ISR(void) { @@ -1262,6 +1262,8 @@ void InitInputPorts() else PINMODE0_bit.P0_1 = 0; FIO0DIR_bit.P0_1 = 0; FIO0MASK_bit.P0_1 = 0; + + prev_input = curr_input = input_register(); } // инициализация импульсных входов @@ -1311,8 +1313,6 @@ void InitImpInput (void) VICINTENABLE = (1 << VIC_TIMER3); T3IR = 0xFF; - - prev_input = curr_input = input_register(); OS_EXIT_CRITICAL(); } diff --git a/settings/sk-mlpc2368.dni b/settings/sk-mlpc2368.dni index 5bac420..3e3fb48 100644 --- a/settings/sk-mlpc2368.dni +++ b/settings/sk-mlpc2368.dni @@ -14,7 +14,7 @@ Count=0 Enabled=0 ShowSource=1 [DebugChecksum] -Checksum=-853996095 +Checksum=839030362 [Exceptions] StopOnUncaught=_ 0 StopOnThrow=_ 0 diff --git a/settings/sk-mlpc2368.wsdt b/settings/sk-mlpc2368.wsdt index 140a3fc..d100434 100644 --- a/settings/sk-mlpc2368.wsdt +++ b/settings/sk-mlpc2368.wsdt @@ -18,7 +18,7 @@ - 202272727 + 157272727 44062754221219 @@ -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\services\time.c081625625TextEditor$WS_DIR$\PROJECT\services\mode.c028763763TextEditor$WS_DIR$\PROJECT\app\app_serv.h05820912091TextEditor$WS_DIR$\PROJECT\app\journal.h03437643785TextEditor$WS_DIR$\PROJECT\data\datadesc.h03503526TextEditor$WS_DIR$\PROJECT\drivers\fiscal\fiscal.h03421786617866TextEditor$WS_DIR$\PROJECT\services\fr.h00348348TextEditor$WS_DIR$\OS\uc\os_ii\source\os_core.c013595689856898TextEditor$WS_DIR$\PROJECT\menu\menudesc.c011514628046280TextEditor$WS_DIR$\PROJECT\app\app_serv.c03691159311593TextEditor$WS_DIR$\PROJECT\drivers\fiscal\fiscal.c06951805818058TextEditor$WS_DIR$\PROJECT\services\fr.c03901206712067TextEditor$WS_DIR$\PROJECT\services\coin.h03390390TextEditor$WS_DIR$\OS\app\app.c02711311131TextEditor$WS_DIR$\PROJECT\menu\menudesc.h02613901532TextEditor$WS_DIR$\PROJECT\data\data.c011535403540TextEditor$WS_DIR$\PROJECT\menu\menu.c04911513515135TextEditor$WS_DIR$\PROJECT\data\datadesc.c022149956099560TextEditor$WS_DIR$\PROJECT\services\coin.c0962234112341622TextEditor$WS_DIR$\PROJECT\drivers\keyboard\keyboard.h00420429TextEditor$WS_DIR$\PROJECT\app\journal.c010931023102TextEditor$WS_DIR$\PROJECT\data\fram_map.h062992990100000010000001 + TextEditor$WS_DIR$\OS\app\app_cfg.h005858TextEditor$WS_DIR$\..\..\8\positive_6_24\OS\app\app.c02614311431TextEditor$WS_DIR$\OS\uc\lib\lib_def.h011159735981TextEditor$WS_DIR$\PROJECT\services\time.c081625625TextEditor$WS_DIR$\PROJECT\services\mode.c028763763TextEditor$WS_DIR$\PROJECT\drivers\fiscal\fiscal.h03421786617866TextEditor$WS_DIR$\PROJECT\services\fr.h00348348TextEditor$WS_DIR$\PROJECT\menu\menudesc.c011514628046280TextEditor$WS_DIR$\PROJECT\app\app_serv.c06982265422654TextEditor$WS_DIR$\PROJECT\drivers\fiscal\fiscal.c06951805818058TextEditor$WS_DIR$\PROJECT\services\fr.c03901177111771TextEditor$WS_DIR$\PROJECT\services\coin.h03390390TextEditor$WS_DIR$\PROJECT\menu\menudesc.h02613901532TextEditor$WS_DIR$\PROJECT\data\data.c011535403540TextEditor$WS_DIR$\PROJECT\menu\menu.c04911513515135TextEditor$WS_DIR$\PROJECT\data\datadesc.c02413081308TextEditor$WS_DIR$\PROJECT\services\coin.c04228132813TextEditor$WS_DIR$\PROJECT\drivers\keyboard\keyboard.h00420429TextEditor$WS_DIR$\PROJECT\app\journal.c010931023102TextEditor$WS_DIR$\PROJECT\data\fram_map.h03547561TextEditor$WS_DIR$\PROJECT\app\app_serv.h00777777TextEditor$WS_DIR$\PROJECT\app\journal.h08444024402TextEditor$WS_DIR$\PROJECT\data\datadesc.h03236248TextEditor$WS_DIR$\OS\app\app.c0871659165923TextEditor$WS_DIR$\OS\uc\os_ii\source\os_core.c0135956869568690100000010000001 - iaridepm.enu1-2-2710293-2-2254205198438215563230469748686-2-21961282-2-212841981003125208202198438215563 + iaridepm.enu1-2-2710248-2-2254205198438215563195313748686-2-21961282-2-212841981003125208202198438215563 diff --git a/sk-mlpc2368.dep b/sk-mlpc2368.dep index 7f84a86..acfc471 100644 --- a/sk-mlpc2368.dep +++ b/sk-mlpc2368.dep @@ -862,10 +862,6 @@ - - BICOMP - 64 18 7 9 45 10 78 1 11 50 88 68 51 80 71 48 84 92 16 61 30 12 22 38 40 52 43 91 77 83 67 65 56 89 46 62 59 - ICCARM 64 18 7 9 45 10 78 1 11 50 88 68 51 80 71 48 84 92 16 61 30 12 22 38 40 52 43 91 77 83 67 65 56 89 46 62 59