Задержка нажатия кнопки старт после последнего импульса приема денег (от 1 до 2 сек)

This commit is contained in:
Dmitriy 2023-07-25 01:20:33 +03:00
parent 50e2f3b976
commit 57fd9c09ab
7 changed files with 5840 additions and 601 deletions

Binary file not shown.

5217
Flash/Exe/solarium_3_42.hex Normal file

File diff suppressed because it is too large Load Diff

View File

@ -81,6 +81,8 @@ void UserAppTask(void *p_arg)
int event;
CPU_INT32U temp;
static CPU_INT08U fr_conn_ctr = 0;
// время последнего внесения денег по импульсному входу
static CPU_INT32U time_last_insert_coin = 0;
{
CPU_INT32U m=0;
@ -164,7 +166,7 @@ void UserAppTask(void *p_arg)
}
break;
}
if (ChannelsWaitDeffered[RecentChannel] != 0)
{
UserPrintDeferredWaitMenu(RecentChannel);
@ -262,6 +264,9 @@ void UserAppTask(void *p_arg)
CPU_INT32U money, accmoney;
GetData(&CoinPerPulseDesc, &cpp, 0, DATA_FLAG_SYSTEM_INDEX);
// время внесения монеты (+1 дополнительная пауза против ложного срабатывания в случае если секунда произойдет сразу же)
time_last_insert_coin = GetTimeSec() + 1;
money = cpp*GetResetCoinCount();
accmoney = GetAcceptedBankMoney();
accmoney += money;
@ -524,7 +529,9 @@ void UserAppTask(void *p_arg)
max_msg = 0;
break;
}
// еще не прошло время с последнего внесения монеты (больше секунды должно пройти)
if(GetTimeSec() <= time_last_insert_coin) break;
if (UserMenuState == USER_STATE_ACCEPT_MONEY)
{ // ïîëüçîâàòåëü âíåñ äåíüãè è íàæàë ÑÒÀÐÒ
@ -1075,8 +1082,23 @@ void UserPrintFirstMenu(CPU_INT08U recentchannel)
{
sprintf(buf, "ÀÏÏÀÐÀÒ ÐÀÁÎÒÀÅÒ");
PrintUserMenuStr(buf, 1);
sprintf(buf, "ÄÎ ÑËÅÄ.ÑÅÀÍÑÀ:");
switch (ChannelsState[recentchannel])
{
case CHANNEL_STATE_EMPTY:
break;
case CHANNEL_STATE_PAUSE_BEFORE:
sprintf(buf, "ДО ВКЛ.ЛАМП:");
break;
case CHANNEL_STATE_WORK:
sprintf(buf, "ДО ОКОН.ЗАГАРА:");
break;
case CHANNEL_STATE_PAUSE_AFTER:
sprintf(buf, "ДО ОКОН.ВЕНТИЛ:");
break;
}
PrintUserMenuStr(buf, 2);
PrintSecToHourMinSec(buf, GetChannelsTimeForFree(recentchannel));
PrintUserMenuStr(buf, 3);
}
@ -1133,10 +1155,10 @@ CPU_INT32U GetChannelsTimeForFree(CPU_INT08U ch)
case CHANNEL_STATE_EMPTY:
break;
case CHANNEL_STATE_PAUSE_BEFORE:
res = payedtime+aftertime+ChannelsCounters[ch];
res = payedtime;
break;
case CHANNEL_STATE_WORK:
res = aftertime+ChannelsCounters[ch];
res = aftertime;
break;
case CHANNEL_STATE_PAUSE_AFTER:
res = ChannelsCounters[ch];

View File

@ -1,7 +1,7 @@
#ifndef _VERSION_H_
#define _VERSION_H_
#define DEVICE_FW_VERSION "03.41"
#define DEVICE_FW_VERSION "03.42"
#endif // #ifndef _VERSION_H_

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -650,7 +650,7 @@
</option>
<option>
<name>OOCOutputFile</name>
<state>solarium_3_41.hex</state>
<state>solarium_3_42.hex</state>
</option>
<option>
<name>OOCCommandLineProducer</name>
@ -668,7 +668,7 @@
<data>
<extensions></extensions>
<cmdline></cmdline>
<hasPrio>1</hasPrio>
<hasPrio>208</hasPrio>
<buildSequence>inputOutputBased</buildSequence>
</data>
</settings>